vendor: 7,276 bytes, lines 1-18
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/v0.49.3/mermaid-GHXKKRXX-CGcEX0fW.js","assets/v0.49.3/mermaid-GHXKKRXX-_oI6jiaa.css"])))=>i.map(i=>d[i]); 2var Zte=Object.defineProperty;var bI=e=>{throw TypeError(e)};var Jte=(e,t,n)=>t in e?Zte(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Bo=(e,t,n)=>Jte(e,typeof t!="symbol"?t+"":t,n),d1=(e,t,n)=>t.has(e)||bI("Cannot "+n);var J=(e,t,n)=>(d1(e,t,"read from private field"),n?n.call(e):t.get(e)),We=(e,t,n)=>t.has(e)?bI("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Le=(e,t,n,a)=>(d1(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),pt=(e,t,n)=>(d1(e,t,"access private method"),n);var Yv=(e,t,n,a)=>({set _(s){Le(e,t,s,n)},get _(){return J(e,t,a)}});function ene(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const s in a)if(s!=="default"&&!(s in e)){const r=Object.getOwnPropertyDescriptor(a,s);r&&Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:()=>a[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(s){if(s.ep)return;s.ep=!0;const r=n(s);fetch(s.href,r)}})();var xI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function il(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u1={exports:{}},Yf={};/** 3 * @license React 4 * react-jsx-runtime.production.js 5 * 6 * Copyright (c) Meta Platforms, Inc. and affiliates. 7 * 8 * This source code is licensed under the MIT license found in the 9 * LICENSE file in the root directory of this source tree. 10 */var $I;function tne(){if($I)return Yf;$I=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(a,s,r){var i=null;if(r!==void 0&&(i=""+r),s.key!==void 0&&(i=""+s.key),"key"in s){r={};for(var c in s)c!=="key"&&(r[c]=s[c])}else r=s;return s=r.ref,{$$typeof:e,type:a,key:i,ref:s!==void 0?s:null,props:r}}return Yf.Fragment=t,Yf.jsx=n,Yf.jsxs=n,Yf}var wI;function nne(){return wI||(wI=1,u1.exports=tne()),u1.exports}var o=nne(),m1={exports:{}},lt={};/** 11 * @license React 12 * react.production.js 13 * 14 * Copyright (c) Meta Platforms, Inc. and affiliates. 15 * 16 * This source code is licensed under the MIT license found in the 17 * LICENSE file in the root directory of this source tree. 18 */var kI;function ane(){if(kI)return lt;kI=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),i=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),y=Symbol.iterator;function v(B){return B===null||typeof B!="object"?null:(B=y&&B[y]||B["@@iterator"],typeof B=="function"?B:null)}var $={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,w={};function S(B,G,Q){this.props=B,this.context=G,this.refs=w,this.updater=Q||$}S.prototype.isReactComponent={},S.prototype.setState=function(B,G){if(typeof B!="object"&&typeof B!="function"&&B!=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,B,G,"setState")},S.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function k(){}k.prototype=S.prototype;function T(B,G,Q){this.props=B,this.context=G,this.refs=w,this.updater=Q||$}var R=T.prototype=new k;R.constructor=T,x(R,S.prototype),R.isPureReactComponent=!0;var _=Array.isArray;function P(){}var j={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function I(B,G,Q){var de=Q.ref;return{$$typeof:e,type:B,key:G,ref:de!==void 0?de:null,props:Q}}function z(B,G){return I(B.type,G,B.props)}function E(B){return typeof B=="object"&&B!==null&&B.$$typeof===e}function L(B){var G={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(Q){return G[Q]})}var O=/\/+/g;function V(B,G){return typeof B=="object"&&B!==null&&B.key!=null?L(""+B.key):G.toString(36)}function ne(B){switch(B.status){case"fulfilled":return B.value;case"rejected":throw B.reason;default:switch(typeof B.status=="string"?B.then(P,P):(B.status="pending",B.then(function(G){B.status==="pending"&&(B.status="fulfilled",B.value=G)},function(G){B.status==="pending"&&(B.status="rejected",B.reason=G)})),B.status){case"fulfilled":return B.value;case"rejected":throw B.reason}}throw B}function q(B,G,Q,de,Y){var pe=typeof B;(pe==="undefined"||pe==="boolean")&&(B=null);var se=!1;if(B===null)se=!0;else switch(pe){case"bigint":case"string":case"number":se=!0;break;case"object":switch(B.$$typeof){case e:case t:se=!0;break;case f:return se=B._init,q(se(B._payload),G,Q,de,Y)}}if(se)return Y=Y(B),se=de===""?"."+V(B,0):de,_(Y)?(Q="",se!=null&&(Q=se.replace(O,"$&/")+"/"),q(Y,G,Q,"",function(ye){return ye})):Y!=null&&(E(Y)&&(Y=z(Y,Q+(Y.key==null||B&&B.key===Y.key?"":(""+Y.key).replace(O,"$&/")+"/")+se)),G.push(Y)),1;se=0;var we=de===""?".":de+":";if(_(B))for(var me=0;me<B.length;me++)de=B[me],pe=we+V(de,me),se+=q(de,G,Q,pe,Y);else if(me=v(B),typeof me=="function")for(B=me.call(B),me=0;!(de=B.next()).done;)de=de.value,pe=we+V(de,me++),se+=q(de,G,Q,pe,Y);else if(pe==="object"){if(typeof B.then=="function")return q(ne(B),G,Q,de,Y);throw G=String(B),Error("Objects are not valid as a React child (found: "+(G==="[object Object]"?"object with keys {"+Object.keys(B).join(", ")+"}":G)+"). If you meant to render a collection of children, use an array instead.")}return se}function M(B,G,Q){if(B==null)return B;var de=[],Y=0;return q(B,de,"","",function(pe){return G.call(Q,pe,Y++)}),de}function F(B){if(B._status===-1){var G=B._result;G=G(),G.then(function(Q){(B._status===0||B._status===-1)&&(B._status=1,B._result=Q)},function(Q){(B._status===0||B._status===-1)&&(B._status=2,B._result=Q)}),B._status===-1&&(B._status=0,B._result=G)}if(B._status===1)return B._result.default;throw B._result}var H=typeof reportError=="function"?reportError:function(B){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var G=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof B=="object"&&B!==null&&typeof B.message=="string"?String(B.message):String(B),error:B});if(!window.dispatchEvent(G))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",B);return}console.error(B)}
vendor: 2,715 bytes, line 18
18,ee={map:M,forEach:function(B,G,Q){M(B,function(){G.apply(this,arguments)},Q)},count:function(B){var G=0;return M(B,function(){G++}),G},toArray:function(B){return M(B,function(G){return G})||[]},only:function(B){if(!E(B))throw Error("React.Children.only expected to receive a single React element child.");return B}};return lt.Activity=p,lt.Children=ee,lt.Component=S,lt.Fragment=n,lt.Profiler=s,lt.PureComponent=T,lt.StrictMode=a,lt.Suspense=d,lt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,lt.__COMPILER_RUNTIME={__proto__:null,c:function(B){return j.H.useMemoCache(B)}},lt.cache=function(B){return function(){return B.apply(null,arguments)}},lt.cacheSignal=function(){return null},lt.cloneElement=function(B,G,Q){if(B==null)throw Error("The argument must be a React element, but you passed "+B+".");var de=x({},B.props),Y=B.key;if(G!=null)for(pe in G.key!==void 0&&(Y=""+G.key),G)!N.call(G,pe)||pe==="key"||pe==="__self"||pe==="__source"||pe==="ref"&&G.ref===void 0||(de[pe]=G[pe]);var pe=arguments.length-2;if(pe===1)de.children=Q;else if(1<pe){for(var se=Array(pe),we=0;we<pe;we++)se[we]=arguments[we+2];de.children=se}return I(B.type,Y,de)},lt.createContext=function(B){return B={$$typeof:i,_currentValue:B,_currentValue2:B,_threadCount:0,Provider:null,Consumer:null},B.Provider=B,B.Consumer={$$typeof:r,_context:B},B},lt.createElement=function(B,G,Q){var de,Y={},pe=null;if(G!=null)for(de in G.key!==void 0&&(pe=""+G.key),G)N.call(G,de)&&de!=="key"&&de!=="__self"&&de!=="__source"&&(Y[de]=G[de]);var se=arguments.length-2;if(se===1)Y.children=Q;else if(1<se){for(var we=Array(se),me=0;me<se;me++)we[me]=arguments[me+2];Y.children=we}if(B&&B.defaultProps)for(de in se=B.defaultProps,se)Y[de]===void 0&&(Y[de]=se[de]);return I(B,pe,Y)},lt.createRef=function(){return{current:null}},lt.forwardRef=function(B){return{$$typeof:c,render:B}},lt.isValidElement=E,lt.lazy=function(B){return{$$typeof:f,_payload:{_status:-1,_result:B},_init:F}},lt.memo=function(B,G){return{$$typeof:m,type:B,compare:G===void 0?null:G}},lt.startTransition=function(B){var G=j.T,Q={};j.T=Q;try{var de=B(),Y=j.S;Y!==null&&Y(Q,de),typeof de=="object"&&de!==null&&typeof de.then=="function"&&de.then(P,H)}catch(pe){H(pe)}finally{G!==null&&Q.types!==null&&(G.types=Q.types),j.T=G}},lt.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},lt.use=function(B){return j.H.use(B)},lt.useActionState=function(B,G,Q){return j.H.useActionState(B,G,Q)},lt.useCallback=function(B,G){return j.H.useCallback(B,G)},lt.useContext=function(B){return j.H.useContext(B)},lt.useDebugValue=function(){},lt.useDeferredValue=function(B,G){return j.H.useDeferredValue(B,G)},lt.useEffect=function(B,G){return j.H.useEffect(B,G)}
vendor: 6,201 bytes, lines 18-34
18,lt.useEffectEvent=function(B){return j.H.useEffectEvent(B)},lt.useId=function(){return j.H.useId()},lt.useImperativeHandle=function(B,G,Q){return j.H.useImperativeHandle(B,G,Q)},lt.useInsertionEffect=function(B,G){return j.H.useInsertionEffect(B,G)},lt.useLayoutEffect=function(B,G){return j.H.useLayoutEffect(B,G)},lt.useMemo=function(B,G){return j.H.useMemo(B,G)},lt.useOptimistic=function(B,G){return j.H.useOptimistic(B,G)},lt.useReducer=function(B,G,Q){return j.H.useReducer(B,G,Q)},lt.useRef=function(B){return j.H.useRef(B)},lt.useState=function(B){return j.H.useState(B)},lt.useSyncExternalStore=function(B,G,Q){return j.H.useSyncExternalStore(B,G,Q)},lt.useTransition=function(){return j.H.useTransition()},lt.version="19.2.6",lt}var CI;function jp(){return CI||(CI=1,m1.exports=ane()),m1.exports}var h=jp();const Se=il(h),Lh=ene({__proto__:null,default:Se},[h]);var p1={exports:{}},Qf={},f1={exports:{}},g1={};/** 19 * @license React 20 * scheduler.production.js 21 * 22 * Copyright (c) Meta Platforms, Inc. and affiliates. 23 * 24 * This source code is licensed under the MIT license found in the 25 * LICENSE file in the root directory of this source tree. 26 */var SI;function one(){return SI||(SI=1,(function(e){function t(q,M){var F=q.length;q.push(M);e:for(;0<F;){var H=F-1>>>1,ee=q[H];if(0<s(ee,M))q[H]=M,q[F]=ee,F=H;else break e}}function n(q){return q.length===0?null:q[0]}function a(q){if(q.length===0)return null;var M=q[0],F=q.pop();if(F!==M){q[0]=F;e:for(var H=0,ee=q.length,B=ee>>>1;H<B;){var G=2*(H+1)-1,Q=q[G],de=G+1,Y=q[de];if(0>s(Q,F))de<ee&&0>s(Y,Q)?(q[H]=Y,q[de]=F,H=de):(q[H]=Q,q[G]=F,H=G);else if(de<ee&&0>s(Y,F))q[H]=Y,q[de]=F,H=de;else break e}}return M}function s(q,M){var F=q.sortIndex-M.sortIndex;return F!==0?F:q.id-M.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var i=Date,c=i.now();e.unstable_now=function(){return i.now()-c}}var d=[],m=[],f=1,p=null,y=3,v=!1,$=!1,x=!1,w=!1,S=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;function R(q){for(var M=n(m);M!==null;){if(M.callback===null)a(m);else if(M.startTime<=q)a(m),M.sortIndex=M.expirationTime,t(d,M);else break;M=n(m)}}function _(q){if(x=!1,R(q),!$)if(n(d)!==null)$=!0,P||(P=!0,L());else{var M=n(m);M!==null&&ne(_,M.startTime-q)}}var P=!1,j=-1,N=5,I=-1;function z(){return w?!0:!(e.unstable_now()-I<N)}function E(){if(w=!1,P){var q=e.unstable_now();I=q;var M=!0;try{e:{$=!1,x&&(x=!1,k(j),j=-1),v=!0;var F=y;try{t:{for(R(q),p=n(d);p!==null&&!(p.expirationTime>q&&z());){var H=p.callback;if(typeof H=="function"){p.callback=null,y=p.priorityLevel;var ee=H(p.expirationTime<=q);if(q=e.unstable_now(),typeof ee=="function"){p.callback=ee,R(q),M=!0;break t}p===n(d)&&a(d),R(q)}else a(d);p=n(d)}if(p!==null)M=!0;else{var B=n(m);B!==null&&ne(_,B.startTime-q),M=!1}}break e}finally{p=null,y=F,v=!1}M=void 0}}finally{M?L():P=!1}}}var L;if(typeof T=="function")L=function(){T(E)};else if(typeof MessageChannel<"u"){var O=new MessageChannel,V=O.port2;O.port1.onmessage=E,L=function(){V.postMessage(null)}}else L=function(){S(E,0)};function ne(q,M){j=S(function(){q(e.unstable_now())},M)}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(q){q.callback=null},e.unstable_forceFrameRate=function(q){0>q||125<q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<q?Math.floor(1e3/q):5},e.unstable_getCurrentPriorityLevel=function(){return y},e.unstable_next=function(q){switch(y){case 1:case 2:case 3:var M=3;break;default:M=y}var F=y;y=M;try{return q()}finally{y=F}},e.unstable_requestPaint=function(){w=!0},e.unstable_runWithPriority=function(q,M){switch(q){case 1:case 2:case 3:case 4:case 5:break;default:q=3}var F=y;y=q;try{return M()}finally{y=F}},e.unstable_scheduleCallback=function(q,M,F){var H=e.unstable_now();switch(typeof F=="object"&&F!==null?(F=F.delay,F=typeof F=="number"&&0<F?H+F:H):F=H,q){case 1:var ee=-1;break;case 2:ee=250;break;case 5:ee=1073741823;break;case 4:ee=1e4;break;default:ee=5e3}return ee=F+ee,q={id:f++,callback:M,priorityLevel:q,startTime:F,expirationTime:ee,sortIndex:-1},F>H?(q.sortIndex=F,t(m,q),n(d)===null&&q===n(m)&&(x?(k(j),j=-1):x=!0,ne(_,F-H))):(q.sortIndex=ee,t(d,q),$||v||($=!0,P||(P=!0,L()))),q},e.unstable_shouldYield=z,e.unstable_wrapCallback=function(q){var M=y;return function(){var F=y;y=M;try{return q.apply(this,arguments)}finally{y=F}}}})(g1)),g1}var AI;function sne(){return AI||(AI=1,f1.exports=one()),f1.exports}var h1={exports:{}},ja={};/** 27 * @license React 28 * react-dom.production.js 29 * 30 * Copyright (c) Meta Platforms, Inc. and affiliates. 31 * 32 * This source code is licensed under the MIT license found in the 33 * LICENSE file in the root directory of this source tree. 34 */var TI;function rne(){if(TI)return ja;TI=1;var e=jp();function t(d){var m="https://react.dev/errors/"+d;if(1<arguments.length){m+="?args[]="+encodeURIComponent(arguments[1]);for(var f=2;f<arguments.length;f++)m+="&args[]="+encodeURIComponent(arguments[f])}return"Minified React error #"+d+"; visit "+m+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var a={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function r(d,m,f){var p=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:p==null?null:""+p,children:d,containerInfo:m,implementation:f}}var i=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(d,m){if(d==="font")return"";if(typeof m=="string")return m==="use-credentials"?m:""}return ja.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,ja.createPortal=function(d,m){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!m||m.nodeType!==1&&m.nodeType!==9&&m.nodeType!==11)throw Error(t(299));return r(d,m,null,f)}
vendor: 7,651 bytes, lines 34-44
34,ja.flushSync=function(d){var m=i.T,f=a.p;try{if(i.T=null,a.p=2,d)return d()}finally{i.T=m,a.p=f,a.d.f()}},ja.preconnect=function(d,m){typeof d=="string"&&(m?(m=m.crossOrigin,m=typeof m=="string"?m==="use-credentials"?m:"":void 0):m=null,a.d.C(d,m))},ja.prefetchDNS=function(d){typeof d=="string"&&a.d.D(d)},ja.preinit=function(d,m){if(typeof d=="string"&&m&&typeof m.as=="string"){var f=m.as,p=c(f,m.crossOrigin),y=typeof m.integrity=="string"?m.integrity:void 0,v=typeof m.fetchPriority=="string"?m.fetchPriority:void 0;f==="style"?a.d.S(d,typeof m.precedence=="string"?m.precedence:void 0,{crossOrigin:p,integrity:y,fetchPriority:v}):f==="script"&&a.d.X(d,{crossOrigin:p,integrity:y,fetchPriority:v,nonce:typeof m.nonce=="string"?m.nonce:void 0})}},ja.preinitModule=function(d,m){if(typeof d=="string")if(typeof m=="object"&&m!==null){if(m.as==null||m.as==="script"){var f=c(m.as,m.crossOrigin);a.d.M(d,{crossOrigin:f,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0})}}else m==null&&a.d.M(d)},ja.preload=function(d,m){if(typeof d=="string"&&typeof m=="object"&&m!==null&&typeof m.as=="string"){var f=m.as,p=c(f,m.crossOrigin);a.d.L(d,f,{crossOrigin:p,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0,type:typeof m.type=="string"?m.type:void 0,fetchPriority:typeof m.fetchPriority=="string"?m.fetchPriority:void 0,referrerPolicy:typeof m.referrerPolicy=="string"?m.referrerPolicy:void 0,imageSrcSet:typeof m.imageSrcSet=="string"?m.imageSrcSet:void 0,imageSizes:typeof m.imageSizes=="string"?m.imageSizes:void 0,media:typeof m.media=="string"?m.media:void 0})}},ja.preloadModule=function(d,m){if(typeof d=="string")if(m){var f=c(m.as,m.crossOrigin);a.d.m(d,{as:typeof m.as=="string"&&m.as!=="script"?m.as:void 0,crossOrigin:f,integrity:typeof m.integrity=="string"?m.integrity:void 0})}else a.d.m(d)},ja.requestFormReset=function(d){a.d.r(d)},ja.unstable_batchedUpdates=function(d,m){return d(m)},ja.useFormState=function(d,m,f){return i.H.useFormState(d,m,f)},ja.useFormStatus=function(){return i.H.useHostTransitionStatus()},ja.version="19.2.6",ja}var RI;function q8(){if(RI)return h1.exports;RI=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),h1.exports=rne(),h1.exports}/** 35 * @license React 36 * react-dom-client.production.js 37 * 38 * Copyright (c) Meta Platforms, Inc. and affiliates. 39 * 40 * This source code is licensed under the MIT license found in the 41 * LICENSE file in the root directory of this source tree. 42 */var PI;function ine(){if(PI)return Qf;PI=1;var e=sne(),t=jp(),n=q8();function a(l){var u="https://react.dev/errors/"+l;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var g=2;g<arguments.length;g++)u+="&args[]="+encodeURIComponent(arguments[g])}return"Minified React error #"+l+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function r(l){var u=l,g=l;if(l.alternate)for(;u.return;)u=u.return;else{l=u;do u=l,(u.flags&4098)!==0&&(g=u.return),l=u.return;while(l)}return u.tag===3?g:null}function i(l){if(l.tag===13){var u=l.memoizedState;if(u===null&&(l=l.alternate,l!==null&&(u=l.memoizedState)),u!==null)return u.dehydrated}return null}function c(l){if(l.tag===31){var u=l.memoizedState;if(u===null&&(l=l.alternate,l!==null&&(u=l.memoizedState)),u!==null)return u.dehydrated}return null}function d(l){if(r(l)!==l)throw Error(a(188))}function m(l){var u=l.alternate;if(!u){if(u=r(l),u===null)throw Error(a(188));return u!==l?null:l}for(var g=l,b=u;;){var C=g.return;if(C===null)break;var A=C.alternate;if(A===null){if(b=C.return,b!==null){g=b;continue}break}if(C.child===A.child){for(A=C.child;A;){if(A===g)return d(C),l;if(A===b)return d(C),u;A=A.sibling}throw Error(a(188))}if(g.return!==b.return)g=C,b=A;else{for(var D=!1,U=C.child;U;){if(U===g){D=!0,g=C,b=A;break}if(U===b){D=!0,b=C,g=A;break}U=U.sibling}if(!D){for(U=A.child;U;){if(U===g){D=!0,g=A,b=C;break}if(U===b){D=!0,b=A,g=C;break}U=U.sibling}if(!D)throw Error(a(189))}}if(g.alternate!==b)throw Error(a(190))}if(g.tag!==3)throw Error(a(188));return g.stateNode.current===g?l:u}function f(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l;for(l=l.child;l!==null;){if(u=f(l),u!==null)return u;l=l.sibling}return null}var p=Object.assign,y=Symbol.for("react.element"),v=Symbol.for("react.transitional.element"),$=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),T=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),P=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),I=Symbol.for("react.activity"),z=Symbol.for("react.memo_cache_sentinel"),E=Symbol.iterator;function L(l){return l===null||typeof l!="object"?null:(l=E&&l[E]||l["@@iterator"],typeof l=="function"?l:null)}var O=Symbol.for("react.client.reference");function V(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===O?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case x:return"Fragment";case S:return"Profiler";case w:return"StrictMode";case _:return"Suspense";case P:return"SuspenseList";case I:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case $:return"Portal";case T:return l.displayName||"Context";case k:return(l._context.displayName||"Context")+".Consumer";case R:var u=l.render;return l=l.displayName,l||(l=u.displayName||u.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case j:return u=l.displayName||null,u!==null?u:V(l.type)||"Memo";case N:u=l._payload,l=l._init;try{return V(l(u))}catch{}}return null}var ne=Array.isArray,q=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F={pending:!1,data:null,method:null,action:null},H=[],ee=-1;function B(l){return{current:l}}function G(l){0>ee||(l.current=H[ee],H[ee]=null,ee--)}function Q(l,u){ee++,H[ee]=l.current,l.current=u}var de=B(null),Y=B(null),pe=B(null),se=B(null);function we(l,u){switch(Q(pe,u),Q(Y,l),Q(de,null),u.nodeType){case 9:case 11:l=(l=u.documentElement)&&(l=l.namespaceURI)?zE(l):0;break;default:if(l=u.tagName,u=u.namespaceURI)u=zE(u),l=qE(u,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}G(de),Q(de,l)}function me(){G(de),G(Y),G(pe)}function ye(l){l.memoizedState!==null&&Q(se,l);var u=de.current,g=qE(u,l.type);u!==g&&(Q(Y,l),Q(de,g))}function _e(l){Y.current===l&&(G(de),G(Y)),se.current===l&&(G(se),Vf._currentValue=F)}var ae,Je;function Ae(l){if(ae===void 0)try{throw Error()}catch(g){var u=g.stack.trim().match(/\n( *(at )?)/);ae=u&&u[1]||"",Je=-1<g.stack.indexOf(` 43 at`)?" (<anonymous>)":-1<g.stack.indexOf("@")?"@unknown:0:0":""}return` 44`+ae+l+Je}var tt=!1;function Tt(l,u){if(!l||tt)return"";tt=!0;var g=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var b={DetermineComponentFrameRoot:function(){try{if(u){var $e=function(){throw Error()};if(Object.defineProperty($e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct($e,[])}catch(he){var ue=he}Reflect.construct(l,[],$e)}else{try{$e.call()}catch(he){ue=he}l.call($e.prototype)}}else{try{throw Error()}catch(he){ue=he}($e=l())&&typeof $e.catch=="function"&&$e.catch(function(){})}}
vendor: 10,882 bytes, lines 44-49
44catch(he){if(he&&ue&&typeof he.stack=="string")return[he.stack,ue.stack]}return[null,null]}};b.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var C=Object.getOwnPropertyDescriptor(b.DetermineComponentFrameRoot,"name");C&&C.configurable&&Object.defineProperty(b.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var A=b.DetermineComponentFrameRoot(),D=A[0],U=A[1];if(D&&U){var Z=D.split(` 45`),le=U.split(` 46`);for(C=b=0;b<Z.length&&!Z[b].includes("DetermineComponentFrameRoot");)b++;for(;C<le.length&&!le[C].includes("DetermineComponentFrameRoot");)C++;if(b===Z.length||C===le.length)for(b=Z.length-1,C=le.length-1;1<=b&&0<=C&&Z[b]!==le[C];)C--;for(;1<=b&&0<=C;b--,C--)if(Z[b]!==le[C]){if(b!==1||C!==1)do if(b--,C--,0>C||Z[b]!==le[C]){var be=` 47`+Z[b].replace(" at new "," at ");return l.displayName&&be.includes("<anonymous>")&&(be=be.replace("<anonymous>",l.displayName)),be}while(1<=b&&0<=C);break}}}finally{tt=!1,Error.prepareStackTrace=g}return(g=l?l.displayName||l.name:"")?Ae(g):""}function an(l,u){switch(l.tag){case 26:case 27:case 5:return Ae(l.type);case 16:return Ae("Lazy");case 13:return l.child!==u&&u!==null?Ae("Suspense Fallback"):Ae("Suspense");case 19:return Ae("SuspenseList");case 0:case 15:return Tt(l.type,!1);case 11:return Tt(l.type.render,!1);case 1:return Tt(l.type,!0);case 31:return Ae("Activity");default:return""}}function ta(l){try{var u="",g=null;do u+=an(l,g),g=l,l=l.return;while(l);return u}catch(b){return` 48Error generating stack: `+b.message+` 49`+b.stack}}var lo=Object.prototype.hasOwnProperty,qs=e.unstable_scheduleCallback,yt=e.unstable_cancelCallback,fe=e.unstable_shouldYield,Ne=e.unstable_requestPaint,rt=e.unstable_now,na=e.unstable_getCurrentPriorityLevel,cn=e.unstable_ImmediatePriority,vn=e.unstable_UserBlockingPriority,ds=e.unstable_NormalPriority,Vc=e.unstable_LowPriority,Kc=e.unstable_IdlePriority,Q0=e.log,Ey=e.unstable_setDisableYieldValue,hi=null,Mn=null;function Hs(l){if(typeof Q0=="function"&&Ey(l),Mn&&typeof Mn.setStrictMode=="function")try{Mn.setStrictMode(hi,l)}catch{}}var En=Math.clz32?Math.clz32:Iy,X0=Math.log,Z0=Math.LN2;function Iy(l){return l>>>=0,l===0?32:31-(X0(l)/Z0|0)|0}var Gc=256,_u=262144,vl=4194304;function _a(l){var u=l&42;if(u!==0)return u;switch(l&-l){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 l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function ju(l,u,g){var b=l.pendingLanes;if(b===0)return 0;var C=0,A=l.suspendedLanes,D=l.pingedLanes;l=l.warmLanes;var U=b&134217727;return U!==0?(b=U&~A,b!==0?C=_a(b):(D&=U,D!==0?C=_a(D):g||(g=U&~l,g!==0&&(C=_a(g))))):(U=b&~A,U!==0?C=_a(U):D!==0?C=_a(D):g||(g=b&~l,g!==0&&(C=_a(g)))),C===0?0:u!==0&&u!==C&&(u&A)===0&&(A=C&-C,g=u&-u,A>=g||A===32&&(g&4194048)!==0)?u:C}function nt(l,u){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&u)===0}function Et(l,u){switch(l){case 1:case 2:case 4:case 8:case 64:return u+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 u+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 Jt(){var l=vl;return vl<<=1,(vl&62914560)===0&&(vl=4194304),l}function Wa(l){for(var u=[],g=0;31>g;g++)u.push(l);return u}function ha(l,u){l.pendingLanes|=u,u!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Rr(l,u,g,b,C,A){var D=l.pendingLanes;l.pendingLanes=g,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=g,l.entangledLanes&=g,l.errorRecoveryDisabledLanes&=g,l.shellSuspendCounter=0;var U=l.entanglements,Z=l.expirationTimes,le=l.hiddenUpdates;for(g=D&~g;0<g;){var be=31-En(g),$e=1<<be;U[be]=0,Z[be]=-1;var ue=le[be];if(ue!==null)for(le[be]=null,be=0;be<ue.length;be++){var he=ue[be];he!==null&&(he.lane&=-536870913)}g&=~$e}b!==0&&Pr(l,b,0),A!==0&&C===0&&l.tag!==0&&(l.suspendedLanes|=A&~(D&~u))}function Pr(l,u,g){l.pendingLanes|=u,l.suspendedLanes&=~u;var b=31-En(u);l.entangledLanes|=u,l.entanglements[b]=l.entanglements[b]|1073741824|g&261930}function co(l,u){var g=l.entangledLanes|=u;for(l=l.entanglements;g;){var b=31-En(g),C=1<<b;C&u|l[b]&u&&(l[b]|=u),g&=~C}}function Vs(l,u){var g=u&-u;return g=(g&42)!==0?1:J0(g),(g&(l.suspendedLanes|u))!==0?0:g}function J0(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=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:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function ek(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function TN(){var l=M.p;return l!==0?l:(l=window.event,l===void 0?32:mI(l.type))}function RN(l,u){var g=M.p;try{return M.p=l,u()}finally{M.p=g}}var bl=Math.random().toString(36).slice(2),ya="__reactFiber$"+bl,uo="__reactProps$"+bl,Nu="__reactContainer$"+bl,tk="__reactEvents$"+bl,FJ="__reactListeners$"+bl,zJ="__reactHandles$"+bl,PN="__reactResources$"+bl,sf="__reactMarker$"+bl;function nk(l){delete l[ya],delete l[uo],delete l[tk],delete l[FJ],delete l[zJ]}function Du(l){var u=l[ya];if(u)return u;for(var g=l.parentNode;g;){if(u=g[Nu]||g[ya]){if(g=u.alternate,u.child!==null||g!==null&&g.child!==null)for(l=QE(l);l!==null;){if(g=l[ya])return g;l=QE(l)}return u}l=g,g=l.parentNode}return null}function Mu(l){if(l=l[ya]||l[Nu]){var u=l.tag;if(u===5||u===6||u===13||u===31||u===26||u===27||u===3)return l}return null}function rf(l){var u=l.tag;if(u===5||u===26||u===27||u===6)return l.stateNode;throw Error(a(33))}function Eu(l){var u=l[PN];return u||(u=l[PN]={hoistableStyles:new Map,hoistableScripts:new Map}),u}function aa(l){l[sf]=!0}var _N=new Set,jN={};function Wc(l,u){Iu(l,u),Iu(l+"Capture",u)}function Iu(l,u){for(jN[l]=u,l=0;l<u.length;l++)_N.add(u[l])}var qJ=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]*$"),NN={},DN={};function HJ(l){return lo.call(DN,l)?!0:lo.call(NN,l)?!1:qJ.test(l)?DN[l]=!0:(NN[l]=!0,!1)}function Oy(l,u,g){if(HJ(u))if(g===null)l.removeAttribute(u);else{switch(typeof g){case"undefined":case"function":case"symbol":l.removeAttribute(u);return;case"boolean":var b=u.toLowerCase().slice(0,5);if(b!=="data-"&&b!=="aria-"){l.removeAttribute(u);return}}l.setAttribute(u,""+g)}}function Ly(l,u,g){if(g===null)l.removeAttribute(u);else{switch(typeof g){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(u);return}l.setAttribute(u,""+g)}}function yi(l,u,g,b){if(b===null)l.removeAttribute(g);else{switch(typeof b){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(g);return}l.setAttributeNS(u,g,""+b)}}function us(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function MN(l){var u=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(u==="checkbox"||u==="radio")}function VJ(l,u,g){var b=Object.getOwnPropertyDescriptor(l.constructor.prototype,u);if(!l.hasOwnProperty(u)&&typeof b<"u"&&typeof b.get=="function"&&typeof b.set=="function"){var C=b.get,A=b.set;return Object.defineProperty(l,u,{configurable:!0,get:function(){return C.call(this)},set:function(D){g=""+D,A.call(this,D)}}),Object.defineProperty(l,u,{enumerable:b.enumerable}),{getValue:function(){return g},setValue:function(D){g=""+D},stopTracking:function(){l._valueTracker=null,delete l[u]}}}}function ak(l){if(!l._valueTracker){var u=MN(l)?"checked":"value";l._valueTracker=VJ(l,u,""+l[u])}}function EN(l){if(!l)return!1;var u=l._valueTracker;if(!u)return!0;var g=u.getValue(),b="";return l&&(b=MN(l)?l.checked?"true":"false":l.value),l=b,l!==g?(u.setValue(l),!0):!1}function Uy(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var KJ=/[\n"\\]/g;function ms(l){return l.replace(KJ,function(u){return"\\"+u.charCodeAt(0).toString(16)+" "})}function ok(l,u,g,b,C,A,D,U){l.name="",D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"?l.type=D:l.removeAttribute("type"),u!=null?D==="number"?(u===0&&l.value===""||l.value!=u)&&(l.value=""+us(u)):l.value!==""+us(u)&&(l.value=""+us(u)):D!=="submit"&&D!=="reset"||l.removeAttribute("value"),u!=null?sk(l,D,us(u)):g!=null?sk(l,D,us(g)):b!=null&&l.removeAttribute("value"),C==null&&A!=null&&(l.defaultChecked=!!A),C!=null&&(l.checked=C&&typeof C!="function"&&typeof C!="symbol"),U!=null&&typeof U!="function"&&typeof U!="symbol"&&typeof U!="boolean"?l.name=""+us(U):l.removeAttribute("name")}function IN(l,u,g,b,C,A,D,U){if(A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"&&(l.type=A),u!=null||g!=null){if(!(A!=="submit"&&A!=="reset"||u!=null)){ak(l);return}g=g!=null?""+us(g):"",u=u!=null?""+us(u):g,U||u===l.value||(l.value=u),l.defaultValue=u}b=b??C,b=typeof b!="function"&&typeof b!="symbol"&&!!b,l.checked=U?l.checked:!!b,l.defaultChecked=!!b,D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"&&(l.name=D),ak(l)}function sk(l,u,g){u==="number"&&Uy(l.ownerDocument)===l||l.defaultValue===""+g||(l.defaultValue=""+g)}function Ou(l,u,g,b){if(l=l.options,u){u={};for(var C=0;C<g.length;C++)u["$"+g[C]]=!0;for(g=0;g<l.length;g++)C=u.hasOwnProperty("$"+l[g].value),l[g].selected!==C&&(l[g].selected=C),C&&b&&(l[g].defaultSelected=!0)}else{for(g=""+us(g),u=null,C=0;C<l.length;C++){if(l[C].value===g){l[C].selected=!0,b&&(l[C].defaultSelected=!0);return}u!==null||l[C].disabled||(u=l[C])}u!==null&&(u.selected=!0)}}function ON(l,u,g){if(u!=null&&(u=""+us(u),u!==l.value&&(l.value=u),g==null)){l.defaultValue!==u&&(l.defaultValue=u);return}l.defaultValue=g!=null?""+us(g):""}function LN(l,u,g,b){if(u==null){if(b!=null){if(g!=null)throw Error(a(92));if(ne(b)){if(1<b.length)throw Error(a(93));b=b[0]}g=b}g==null&&(g=""),u=g}g=us(u),l.defaultValue=g,b=l.textContent,b===g&&b!==""&&b!==null&&(l.value=b),ak(l)}function Lu(l,u){if(u){var g=l.firstChild;
vendor: 4,140 bytes, line 49
49if(g&&g===l.lastChild&&g.nodeType===3){g.nodeValue=u;return}}l.textContent=u}var GJ=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 UN(l,u,g){var b=u.indexOf("--")===0;g==null||typeof g=="boolean"||g===""?b?l.setProperty(u,""):u==="float"?l.cssFloat="":l[u]="":b?l.setProperty(u,g):typeof g!="number"||g===0||GJ.has(u)?u==="float"?l.cssFloat=g:l[u]=(""+g).trim():l[u]=g+"px"}function BN(l,u,g){if(u!=null&&typeof u!="object")throw Error(a(62));if(l=l.style,g!=null){for(var b in g)!g.hasOwnProperty(b)||u!=null&&u.hasOwnProperty(b)||(b.indexOf("--")===0?l.setProperty(b,""):b==="float"?l.cssFloat="":l[b]="");for(var C in u)b=u[C],u.hasOwnProperty(C)&&g[C]!==b&&UN(l,C,b)}else for(var A in u)u.hasOwnProperty(A)&&UN(l,A,u[A])}function rk(l){if(l.indexOf("-")===-1)return!1;switch(l){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 WJ=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
49-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"]]),YJ=/^[\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 By(l){return YJ.test(""+l)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":l}function vi(){}var ik=null;function lk(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var Uu=null,Bu=null;function FN(l){var u=Mu(l);if(u&&(l=u.stateNode)){var g=l[uo]||null;e:switch(l=u.stateNode,u.type){case"input":if(ok(l,g.value,g.defaultValue,g.defaultValue,g.checked,g.defaultChecked,g.type,g.name),u=g.name,g.type==="radio"&&u!=null){for(g=l;g.parentNode;)g=g.parentNode;for(g=g.querySelectorAll('input[name="'+ms(""+u)+'"][type="radio"]'),u=0;u<g.length;u++){var b=g[u];if(b!==l&&b.form===l.form){var C=b[uo]||null;if(!C)throw Error(a(90));ok(b,C.value,C.defaultValue,C.defaultValue,C.checked,C.defaultChecked,C.type,C.name)}}for(u=0;u<g.length;u++)b=g[u],b.form===l.form&&EN(b)}break e;case"textarea":ON(l,g.value,g.defaultValue);break e;case"select":u=g.value,u!=null&&Ou(l,!!g.multiple,u,!1)}}}var ck=!1;function zN(l,u,g){if(ck)return l(u,g);ck=!0;try{var b=l(u);return b}finally{if(ck=!1,(Uu!==null||Bu!==null)&&(Tv(),Uu&&(u=Uu,l=Bu,Bu=Uu=null,FN(u),l)))for(u=0;u<l.length;u++)FN(l[u])}}function lf(l,u){var g=l.stateNode;if(g===null)return null;var b=g[uo]||null;if(b===null)return null;g=b[u];e:switch(u){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(b=!b.disabled)||(l=l.type,b=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!b;break e;default:l=!1}if(l)return null;if(g&&typeof g!="function")throw Error(a(231,u,typeof g));return g}var bi=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),dk=!1;if(bi)try{var cf={};Object.defineProperty(cf,"passive",{get:function(){dk=!0}}),window.addEventListener("test",cf,cf),window.removeEventListener("test",cf,cf)}catch{dk=!1}var xl=null,uk=null,Fy=null;function qN(){if(Fy)return Fy;var l,u=uk,g=u.length,b,C="value"in xl?xl.value:xl.textContent,A=C.length;for(l=0;l<g&&u[l]===C[l];l++);var D=g-l;for(b=1;b<=D&&u[g-b]===C[A-b];b++);return Fy=C.slice(l,1<b?1-b:void 0)}function zy(l){var u=l.keyCode;return"charCode"in l?(l=l.charCode,l===0&&u===13&&(l=13)):l=u,l===10&&(l=13),32<=l||l===13?l:0}function qy(){return!0}function HN(){return!1}function mo(l){function u(g,b,C,A,D){this._reactName=g,this._targetInst=C,this.type=b,this.nativeEvent=A,this.target=D,this.currentTarget=null;for(var U in l)l.hasOwnProperty(U)&&(g=l[U],this[U]=g?g(A):A[U]);return this.isDefaultPrevented=(A.defaultPrevented!=null?A.defaultPrevented:A.returnValue===!1)?qy:HN,this.isPropagationStopped=HN,this}return p(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var g=this.nativeEvent;g&&(g.preventDefault?g.preventDefault():typeof g.returnValue!="unknown"&&(g.returnValue=!1),this.isDefaultPrevented=qy)},stopPropagation:function(){var g=this.nativeEvent;g&&(g.stopPropagation?g.stopPropagation():typeof g.cancelBubble!="unknown"&&(g.cancelBubble=!0),this.isPropagationStopped=qy)},persist:function(){},isPersistent:qy}),u}var Yc={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Hy=mo(Yc),df=p({},Yc,{view:0,detail:0}),QJ=mo(df),mk,pk,uf,Vy=p({},df,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:gk,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return"movementX"in l?l.movementX:(l!==uf&&(uf&&l.type==="mousemove"?(mk=l.screenX-uf.screenX,pk=l.screenY-uf.screenY):pk=mk=0,uf=l),mk)},movementY:function(l){return"movementY"in l?l.movementY:pk}}),VN=mo(Vy),XJ=p({},Vy,{dataTransfer:0}),ZJ=mo(XJ),JJ=p({},df,{relatedTarget:0}),fk=mo(JJ),eee=p({},Yc,{animationName:0,elapsedTime:0,pseudoElement:0}),tee=mo(eee),nee=p({},Yc,{clipboardData:function(l){return"clipboardData"in l?l.clipboardData:window.clipboardData}}),aee=mo(nee),oee=p({},Yc,{data:0}),KN=mo(oee),see={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},ree={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"},iee={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function lee(l){var u=this.nativeEvent;return u.getModifierState?u.getModifierState(l):(l=iee[l])?!!u[l]:!1}function gk(){return lee}var cee=p({},df,{key:function(l){if(l.key){var u=see[l.key]||l.key;if(u!=="Unidentified")return u}
vendor: 4,899 bytes, line 49
49return l.type==="keypress"?(l=zy(l),l===13?"Enter":String.fromCharCode(l)):l.type==="keydown"||l.type==="keyup"?ree[l.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:gk,charCode:function(l){return l.type==="keypress"?zy(l):0},keyCode:function(l){return l.type==="keydown"||l.type==="keyup"?l.keyCode:0},which:function(l){return l.type==="keypress"?zy(l):l.type==="keydown"||l.type==="keyup"?l.keyCode:0}}),dee=mo(cee),uee=p({},Vy,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),GN=mo(uee),mee=p({},df,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:gk}),pee=mo(mee),fee=p({},Yc,{propertyName:0,elapsedTime:0,pseudoElement:0}),gee=mo(fee),hee=p({},Vy,{deltaX:function(l){return"deltaX"in l?l.deltaX:"wheelDeltaX"in l?-l.wheelDeltaX:0},deltaY:function(l){return"deltaY"in l?l.deltaY:"wheelDeltaY"in l?-l.wheelDeltaY:"wheelDelta"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),yee=mo(hee),vee=p({},Yc,{newState:0,oldState:0}),bee=mo(vee),xee=[9,13,27,32],hk=bi&&"CompositionEvent"in window,mf=null;bi&&"documentMode"in document&&(mf=document.documentMode);var $ee=bi&&"TextEvent"in window&&!mf,WN=bi&&(!hk||mf&&8<mf&&11>=mf),YN=" ",QN=!1;function XN(l,u){switch(l){case"keyup":return xee.indexOf(u.keyCode)!==-1;case"keydown":return u.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ZN(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Fu=!1;function wee(l,u){switch(l){case"compositionend":return ZN(u);case"keypress":return u.which!==32?null:(QN=!0,YN);case"textInput":return l=u.data,l===YN&&QN?null:l;default:return null}}function kee(l,u){if(Fu)return l==="compositionend"||!hk&&XN(l,u)?(l=qN(),Fy=uk=xl=null,Fu=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(u.ctrlKey||u.altKey||u.metaKey)||u.ctrlKey&&u.altKey){if(u.char&&1<u.char.length)return u.char;if(u.which)return String.fromCharCode(u.which)}return null;case"compositionend":return WN&&u.locale!=="ko"?null:u.data;default:return null}}var Cee={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 JN(l){var u=l&&l.nodeName&&l.nodeName.toLowerCase();return u==="input"?!!Cee[l.type]:u==="textarea"}function eD(l,u,g,b){Uu?Bu?Bu.push(b):Bu=[b]:Uu=b,u=Mv(u,"onChange"),0<u.length&&(g=new Hy("onChange","change",null,g,b),l.push({event:g,listeners:u}))}var pf=null,ff=null;function See(l){IE(l,0)}function Ky(l){var u=rf(l);if(EN(u))return l}function tD(l,u){if(l==="change")return u}var nD=!1;if(bi){var yk;if(bi){var vk="oninput"in document;if(!vk){var aD=document.createElement("div");aD.setAttribute("oninput","return;"),vk=typeof aD.oninput=="function"}yk=vk}else yk=!1;nD=yk&&(!document.documentMode||9<document.documentMode)}function oD(){pf&&(pf.detachEvent("onpropertychange",sD),ff=pf=null)}function sD(l){if(l.propertyName==="value"&&Ky(ff)){var u=[];eD(u,ff,l,lk(l)),zN(See,u)}}function Aee(l,u,g){l==="focusin"?(oD(),pf=u,ff=g,pf.attachEvent("onpropertychange",sD)):l==="focusout"&&oD()}function Tee(l){if(l==="selectionchange"||l==="keyup"||l==="keydown")return Ky(ff)}function Ree(l,u){if(l==="click")return Ky(u)}function Pee(l,u){if(l==="input"||l==="change")return Ky(u)}function _ee(l,u){return l===u&&(l!==0||1/l===1/u)||l!==l&&u!==u}var Do=typeof Object.is=="function"?Object.is:_ee;function gf(l,u){if(Do(l,u))return!0;if(typeof l!="object"||l===null||typeof u!="object"||u===null)return!1;var g=Object.keys(l),b=Object.keys(u);if(g.length!==b.length)return!1;for(b=0;b<g.length;b++){var C=g[b];if(!lo.call(u,C)||!Do(l[C],u[C]))return!1}return!0}function rD(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function iD(l,u){var g=rD(l);l=0;for(var b;g;){if(g.nodeType===3){if(b=l+g.textContent.length,l<=u&&b>=u)return{node:g,offset:u-l};l=b}e:{for(;g;){if(g.nextSibling){g=g.nextSibling;break e}g=g.parentNode}g=void 0}g=rD(g)}}function lD(l,u){return l&&u?l===u?!0:l&&l.nodeType===3?!1:u&&u.nodeType===3?lD(l,u.parentNode):"contains"in l?l.contains(u):l.compareDocumentPosition?!!(l.compareDocumentPosition(u)&16):!1:!1}function cD(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var u=Uy(l.document);u instanceof l.HTMLIFrameElement;){try{var g=typeof u.contentWindow.location.href=="string"}catch{g=!1}if(g)l=u.contentWindow;else break;u=Uy(l.document)}return u}function bk(l){var u=l&&l.nodeName&&l.nodeName.toLowerCase();return u&&(u==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||u==="textarea"||l.contentEditable==="true")}var jee=bi&&"documentMode"in document&&11>=document.documentMode,zu=null,xk=null,hf=null,$k=!1;
vendor: 21,352 bytes, line 49
49function dD(l,u,g){var b=g.window===g?g.document:g.nodeType===9?g:g.ownerDocument;$k||zu==null||zu!==Uy(b)||(b=zu,"selectionStart"in b&&bk(b)?b={start:b.selectionStart,end:b.selectionEnd}:(b=(b.ownerDocument&&b.ownerDocument.defaultView||window).getSelection(),b={anchorNode:b.anchorNode,anchorOffset:b.anchorOffset,focusNode:b.focusNode,focusOffset:b.focusOffset}),hf&&gf(hf,b)||(hf=b,b=Mv(xk,"onSelect"),0<b.length&&(u=new Hy("onSelect","select",null,u,g),l.push({event:u,listeners:b}),u.target=zu)))}function Qc(l,u){var g={};return g[l.toLowerCase()]=u.toLowerCase(),g["Webkit"+l]="webkit"+u,g["Moz"+l]="moz"+u,g}var qu={animationend:Qc("Animation","AnimationEnd"),animationiteration:Qc("Animation","AnimationIteration"),animationstart:Qc("Animation","AnimationStart"),transitionrun:Qc("Transition","TransitionRun"),transitionstart:Qc("Transition","TransitionStart"),transitioncancel:Qc("Transition","TransitionCancel"),transitionend:Qc("Transition","TransitionEnd")},wk={},uD={};bi&&(uD=document.createElement("div").style,"AnimationEvent"in window||(delete qu.animationend.animation,delete qu.animationiteration.animation,delete qu.animationstart.animation),"TransitionEvent"in window||delete qu.transitionend.transition);function Xc(l){if(wk[l])return wk[l];if(!qu[l])return l;var u=qu[l],g;for(g in u)if(u.hasOwnProperty(g)&&g in uD)return wk[l]=u[g];return l}var mD=Xc("animationend"),pD=Xc("animationiteration"),fD=Xc("animationstart"),Nee=Xc("transitionrun"),Dee=Xc("transitionstart"),Mee=Xc("transitioncancel"),gD=Xc("transitionend"),hD=new Map,kk="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(" ");kk.push("scrollEnd");function Ks(l,u){hD.set(l,u),Wc(u,[l])}var Gy=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var u=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(u))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)},ps=[],Hu=0,Ck=0;function Wy(){for(var l=Hu,u=Ck=Hu=0;u<l;){var g=ps[u];ps[u++]=null;var b=ps[u];ps[u++]=null;var C=ps[u];ps[u++]=null;var A=ps[u];if(ps[u++]=null,b!==null&&C!==null){var D=b.pending;D===null?C.next=C:(C.next=D.next,D.next=C),b.pending=C}A!==0&&yD(g,C,A)}}function Yy(l,u,g,b){ps[Hu++]=l,ps[Hu++]=u,ps[Hu++]=g,ps[Hu++]=b,Ck|=b,l.lanes|=b,l=l.alternate,l!==null&&(l.lanes|=b)}function Sk(l,u,g,b){return Yy(l,u,g,b),Qy(l)}function Zc(l,u){return Yy(l,null,null,u),Qy(l)}function yD(l,u,g){l.lanes|=g;var b=l.alternate;b!==null&&(b.lanes|=g);for(var C=!1,A=l.return;A!==null;)A.childLanes|=g,b=A.alternate,b!==null&&(b.childLanes|=g),A.tag===22&&(l=A.stateNode,l===null||l._visibility&1||(C=!0)),l=A,A=A.return;return l.tag===3?(A=l.stateNode,C&&u!==null&&(C=31-En(g),l=A.hiddenUpdates,b=l[C],b===null?l[C]=[u]:b.push(u),u.lane=g|536870912),A):null}function Qy(l){if(50<Lf)throw Lf=0,MC=null,Error(a(185));for(var u=l.return;u!==null;)l=u,u=l.return;return l.tag===3?l.stateNode:null}var Vu={};function Eee(l,u,g,b){this.tag=l,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=b,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mo(l,u,g,b){return new Eee(l,u,g,b)}function Ak(l){return l=l.prototype,!(!l||!l.isReactComponent)}function xi(l,u){var g=l.alternate;return g===null?(g=Mo(l.tag,u,l.key,l.mode),g.elementType=l.elementType,g.type=l.type,g.stateNode=l.stateNode,g.alternate=l,l.alternate=g):(g.pendingProps=u,g.type=l.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=l.flags&65011712,g.childLanes=l.childLanes,g.lanes=l.lanes,g.child=l.child,g.memoizedProps=l.memoizedProps,g.memoizedState=l.memoizedState,g.updateQueue=l.updateQueue,u=l.dependencies,g.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},g.sibling=l.sibling,g.index=l.index,g.ref=l.ref,g.refCleanup=l.refCleanup,g}function vD(l,u){l.flags&=65011714;var g=l.alternate;return g===null?(l.childLanes=0,l.lanes=u,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=g.childLanes,l.lanes=g.lanes,l.child=g.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=g.memoizedProps,l.memoizedState=g.memoizedState,l.updateQueue=g.updateQueue,l.type=g.type,u=g.dependencies,l.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),l}function Xy(l,u,g,b,C,A){var D=0;if(b=l,typeof l=="function")Ak(l)&&(D=1);else if(typeof l=="string")D=Bte(l,g,de.current)?26:l==="html"||l==="head"||l==="body"?27:5;else e:switch(l){case I:return l=Mo(31,g,u,C),l.elementType=I,l.lanes=A,l;case x:return Jc(g.children,C,A,u);case w:D=8,C|=24;break;case S:return l=Mo(12,g,u,C|2),l.elementType=S,l.lanes=A,l;case _:return l=Mo(13,g,u,C),l.elementType=_,l.lanes=A,l;case P:return l=Mo(19,g,u,C),l.elementType=P,l.lanes=A,l;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case T:D=10;break e;case k:D=9;break e;case R:D=11;break e;case j:D=14;break e;case N:D=16,b=null;break e}D=29,g=Error(a(130,l===null?"null":typeof l,"")),b=null}return u=Mo(D,g,u,C),u.elementType=l,u.type=b,u.lanes=A,u}function Jc(l,u,g,b){return l=Mo(7,l,b,u),l.lanes=g,l}function Tk(l,u,g){return l=Mo(6,l,null,u),l.lanes=g,l}function bD(l){var u=Mo(18,null,null,0);return u.stateNode=l,u}function Rk(l,u,g){return u=Mo(4,l.children!==null?l.children:[],l.key,u),u.lanes=g,u.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},u}var xD=new WeakMap;function fs(l,u){if(typeof l=="object"&&l!==null){var g=xD.get(l);return g!==void 0?g:(u={value:l,source:u,stack:ta(u)},xD.set(l,u),u)}return{value:l,source:u,stack:ta(u)}}var Ku=[],Gu=0,Zy=null,yf=0,gs=[],hs=0,$l=null,_r=1,jr="";function $i(l,u){Ku[Gu++]=yf,Ku[Gu++]=Zy,Zy=l,yf=u}function $D(l,u,g){gs[hs++]=_r,gs[hs++]=jr,gs[hs++]=$l,$l=l;var b=_r;l=jr;var C=32-En(b)-1;b&=~(1<<C),g+=1;var A=32-En(u)+C;if(30<A){var D=C-C%5;A=(b&(1<<D)-1).toString(32),b>>=D,C-=D,_r=1<<32-En(u)+C|g<<C|b,jr=A+l}else _r=1<<A|g<<C|b,jr=l}function Pk(l){l.return!==null&&($i(l,1),$D(l,1,0))}function _k(l){for(;l===Zy;)Zy=Ku[--Gu],Ku[Gu]=null,yf=Ku[--Gu],Ku[Gu]=null;for(;l===$l;)$l=gs[--hs],gs[hs]=null,jr=gs[--hs],gs[hs]=null,_r=gs[--hs],gs[hs]=null}function wD(l,u){gs[hs++]=_r,gs[hs++]=jr,gs[hs++]=$l,_r=u.id,jr=u.overflow,$l=l}var va=null,dn=null,kt=!1,wl=null,ys=!1,jk=Error(a(519));function kl(l){var u=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw vf(fs(u,l)),jk}function kD(l){var u=l.stateNode,g=l.type,b=l.memoizedProps;switch(u[ya]=l,u[uo]=b,g){case"dialog":xt("cancel",u),xt("close",u);break;case"iframe":case"object":case"embed":xt("load",u);break;case"video":case"audio":for(g=0;g<Bf.length;g++)xt(Bf[g],u);break;case"source":xt("error",u);break;case"img":case"image":case"link":xt("error",u),xt("load",u);break;case"details":xt("toggle",u);break;case"input":xt("invalid",u),IN(u,b.value,b.defaultValue,b.checked,b.defaultChecked,b.type,b.name,!0);break;case"select":xt("invalid",u);break;case"textarea":xt("invalid",u),LN(u,b.value,b.defaultValue,b.children)}g=b.children,typeof g!="string"&&typeof g!="number"&&typeof g!="bigint"||u.textContent===""+g||b.suppressHydrationWarning===!0||BE(u.textContent,g)?(b.popover!=null&&(xt("beforetoggle",u),xt("toggle",u)),b.onScroll!=null&&xt("scroll",u),b.onScrollEnd!=null&&xt("scrollend",u),b.onClick!=null&&(u.onclick=vi),u=!0):u=!1,u||kl(l,!0)}function CD(l){for(va=l.return;va;)switch(va.tag){case 5:case 31:case 13:ys=!1;return;case 27:case 3:ys=!0;return;default:va=va.return}}function Wu(l){if(l!==va)return!1;if(!kt)return CD(l),kt=!0,!1;var u=l.tag,g;if((g=u!==3&&u!==27)&&((g=u===5)&&(g=l.type,g=!(g!=="form"&&g!=="button")||YC(l.type,l.memoizedProps)),g=!g),g&&dn&&kl(l),CD(l),u===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(a(317));dn=YE(l)}else if(u===31){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(a(317));dn=YE(l)}else u===27?(u=dn,Ol(l.type)?(l=e1,e1=null,dn=l):dn=u):dn=va?bs(l.stateNode.nextSibling):null;return!0}function ed(){dn=va=null,kt=!1}function Nk(){var l=wl;return l!==null&&(ho===null?ho=l:ho.push.apply(ho,l),wl=null),l}function vf(l){wl===null?wl=[l]:wl.push(l)}var Dk=B(null),td=null,wi=null;function Cl(l,u,g){Q(Dk,u._currentValue),u._currentValue=g}function ki(l){l._currentValue=Dk.current,G(Dk)}function Mk(l,u,g){for(;l!==null;){var b=l.alternate;if((l.childLanes&u)!==u?(l.childLanes|=u,b!==null&&(b.childLanes|=u)):b!==null&&(b.childLanes&u)!==u&&(b.childLanes|=u),l===g)break;l=l.return}}function Ek(l,u,g,b){var C=l.child;for(C!==null&&(C.return=l);C!==null;){var A=C.dependencies;if(A!==null){var D=C.child;A=A.firstContext;e:for(;A!==null;){var U=A;A=C;for(var Z=0;Z<u.length;Z++)if(U.context===u[Z]){A.lanes|=g,U=A.alternate,U!==null&&(U.lanes|=g),Mk(A.return,g,l),b||(D=null);break e}A=U.next}}else if(C.tag===18){if(D=C.return,D===null)throw Error(a(341));D.lanes|=g,A=D.alternate,A!==null&&(A.lanes|=g),Mk(D,g,l),D=null}else D=C.child;if(D!==null)D.return=C;else for(D=C;D!==null;){if(D===l){D=null;break}if(C=D.sibling,C!==null){C.return=D.return,D=C;break}D=D.return}C=D}}function Yu(l,u,g,b){l=null;for(var C=u,A=!1;C!==null;){if(!A){if((C.flags&524288)!==0)A=!0;else if((C.flags&262144)!==0)break}if(C.tag===10){var D=C.alternate;if(D===null)throw Error(a(387));if(D=D.memoizedProps,D!==null){var U=C.type;Do(C.pendingProps.value,D.value)||(l!==null?l.push(U):l=[U])}}else if(C===se.current){if(D=C.alternate,D===null)throw Error(a(387));D.memoizedState.memoizedState!==C.memoizedState.memoizedState&&(l!==null?l.push(Vf):l=[Vf])}C=C.return}l!==null&&Ek(u,l,g,b),u.flags|=262144}function Jy(l){for(l=l.firstContext;l!==null;){if(!Do(l.context._currentValue,l.memoizedValue))return!0;l=l.next}return!1}function nd(l){td=l,wi=null,l=l.dependencies,l!==null&&(l.firstContext=null)}function ba(l){return SD(td,l)}function ev(l,u){return td===null&&nd(l),SD(l,u)}function SD(l,u){var g=u._currentValue;if(u={context:u,memoizedValue:g,next:null},wi===null){if(l===null)throw Error(a(308));wi=u,l.dependencies={lanes:0,firstContext:u},l.flags|=524288}else wi=wi.next=u;return g}var Iee=typeof AbortController<"u"?AbortController:function(){var l=[],u=this.signal={aborted:!1,addEventListener:function(g,b){l.push(b)}};this.abort=function(){u.aborted=!0,l.forEach(function(g){return g()})}},Oee=e.unstable_scheduleCallback,Lee=e.unstable_NormalPriority,In={$$typeof:T,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ik(){return{controller:new Iee,data:new Map,refCount:0}}function bf(l){l.refCount--,l.refCount===0&&Oee(Lee,function(){l.controller.abort()})}var xf=null,Ok=0,Qu=0,Xu=null;function Uee(l,u){if(xf===null){var g=xf=[];Ok=0,Qu=BC(),Xu={status:"pending",value:void 0,then:function(b){g.push(b)}}}return Ok++,u.then(AD,AD),u}function AD(){if(--Ok===0&&xf!==null){Xu!==null&&(Xu.status="fulfilled");var l=xf;xf=null,Qu=0,Xu=null;for(var u=0;u<l.length;u++)(0,l[u])()}}function Bee(l,u){var g=[],b={status:"pending",value:null,reason:null,then:function(C){g.push(C)}};return l.then(function(){b.status="fulfilled",b.value=u;for(var C=0;C<g.length;C++)(0,g[C])(u)},function(C){for(b.status="rejected",b.reason=C,C=0;C<g.length;C++)(0,g[C])(void 0)}),b}var TD=q.S;q.S=function(l,u){dE=rt(),typeof u=="object"&&u!==null&&typeof u.then=="function"&&Uee(l,u),TD!==null&&TD(l,u)};var ad=B(null);function Lk(){var l=ad.current;return l!==null?l:en.pooledCache}function tv(l,u){u===null?Q(ad,ad.current):Q(ad,u.pool)}function RD(){var l=Lk();return l===null?null:{parent:In._currentValue,pool:l}}var Zu=Error(a(460)),Uk=Error(a(474)),nv=Error(a(542)),av={then:function(){}};function PD(l){return l=l.status,l==="fulfilled"||l==="rejected"}function _D(l,u,g){switch(g=l[g],g===void 0?l.push(u):g!==u&&(u.then(vi,vi),u=g),u.status){case"fulfilled":return u.value;case"rejected":throw l=u.reason,ND(l),l;default:if(typeof u.status=="string")u.then(vi,vi);else{if(l=en,l!==null&&100<l.shellSuspendCounter)throw Error(a(482));l=u,l.status="pending",l.then(function(b){if(u.status==="pending"){var C=u;C.status="fulfilled",C.value=b}},function(b){if(u.status==="pending"){var C=u;C.status="rejected",C.reason=b}})}switch(u.status){case"fulfilled":return u.value;case"rejected":throw l=u.reason,ND(l),l}throw sd=u,Zu}}function od(l){try{var u=l._init;return u(l._payload)}catch(g){throw g!==null&&typeof g=="object"&&typeof g.then=="function"?(sd=g,Zu):g}}var sd=null;function jD(){if(sd===null)throw Error(a(459));var l=sd;return sd=null,l}function ND(l){if(l===Zu||l===nv)throw Error(a(483))}var Ju=null,$f=0;function ov(l){var u=$f;return $f+=1,Ju===null&&(Ju=[]),_D(Ju,l,u)}function wf(l,u){u=u.props.ref,l.ref=u!==void 0?u:null}function sv(l,u){throw u.$$typeof===y?Error(a(525)):(l=Object.prototype.toString.call(u),Error(a(31,l==="[object Object]"?"object with keys {"+Object.keys(u).join(", ")+"}":l)))}function DD(l){function u(oe,te){if(l){var re=oe.deletions;re===null?(oe.deletions=[te],oe.flags|=16):re.push(te)}}function g(oe,te){if(!l)return null;for(;te!==null;)u(oe,te),te=te.sibling;return null}function b(oe){for(var te=new Map;oe!==null;)oe.key!==null?te.set(oe.key,oe):te.set(oe.index,oe),oe=oe.sibling;return te}function C(oe,te){return oe=xi(oe,te),oe.index=0,oe.sibling=null,oe}function A(oe,te,re){return oe.index=re,l?(re=oe.alternate,re!==null?(re=re.index,re<te?(oe.flags|=67108866,te):re):(oe.flags|=67108866,te)):(oe.flags|=1048576,te)}function D(oe){return l&&oe.alternate===null&&(oe.flags|=67108866),oe}function U(oe,te,re,xe){return te===null||te.tag!==6?(te=Tk(re,oe.mode,xe),te.return=oe,te):(te=C(te,re),te.return=oe,te)}function Z(oe,te,re,xe){var Xe=re.type;return Xe===x?be(oe,te,re.props.children,xe,re.key):te!==null&&(te.elementType===Xe||typeof Xe=="object"&&Xe!==null&&Xe.$$typeof===N&&od(Xe)===te.type)?(te=C(te,re.props),wf(te,re),te.return=oe,te):(te=Xy(re.type,re.key,re.props,null,oe.mode,xe),wf(te,re),te.return=oe,te)}function le(oe,te,re,xe){return te===null||te.tag!==4||te.stateNode.containerInfo!==re.containerInfo||te.stateNode.implementation!==re.implementation?(te=Rk(re,oe.mode,xe),te.return=oe,te):(te=C(te,re.children||[]),te.return=oe,te)}function be(oe,te,re,xe,Xe){return te===null||te.tag!==7?(te=Jc(re,oe.mode,xe,Xe),te.return=oe,te):(te=C(te,re),te.return=oe,te)}function $e(oe,te,re){if(typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint")return te=Tk(""+te,oe.mode,re),te.return=oe,te;if(typeof te=="object"&&te!==null){switch(te.$$typeof){case v:return re=Xy(te.type,te.key,te.props,null,oe.mode,re),wf(re,te),re.return=oe,re;case $:return te=Rk(te,oe.mode,re),te.return=oe,te;case N:return te=od(te),$e(oe,te,re)}if(ne(te)||L(te))return te=Jc(te,oe.mode,re,null),te.return=oe,te;if(typeof te.then=="function")return $e(oe,ov(te),re);if(te.$$typeof===T)return $e(oe,ev(oe,te),re);sv(oe,te)}return null}function ue(oe,te,re,xe){var Xe=te!==null?te.key:null;if(typeof re=="string"&&re!==""||typeof re=="number"||typeof re=="bigint")return Xe!==null?null:U(oe,te,""+re,xe);if(typeof re=="object"&&re!==null){switch(re.$$typeof){case v:return re.key===Xe?Z(oe,te,re,xe):null;case $:return re.key===Xe?le(oe,te,re,xe):null;case N:return re=od(re),ue(oe,te,re,xe)}if(ne(re)||L(re))return Xe!==null?null:be(oe,te,re,xe,null);if(typeof re.then=="function")return ue(oe,te,ov(re),xe);if(re.$$typeof===T)return ue(oe,te,ev(oe,re),xe);sv(oe,re)}return null}function he(oe,te,re,xe,Xe){if(typeof xe=="string"&&xe!==""||typeof xe=="number"||typeof xe=="bigint")return oe=oe.get(re)||null,U(te,oe,""+xe,Xe);if(typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case v:return oe=oe.get(xe.key===null?re:xe.key)||null,Z(te,oe,xe,Xe);case $:return oe=oe.get(xe.key===null?re:xe.key)||null,le(te,oe,xe,Xe);case N:return xe=od(xe),he(oe,te,re,xe,Xe)}if(ne(xe)||L(xe))return oe=oe.get(re)||null,be(te,oe,xe,Xe,null);if(typeof xe.then=="function")return he(oe,te,re,ov(xe),Xe);if(xe.$$typeof===T)return he(oe,te,re,ev(te,xe),Xe);sv(te,xe)}return null}function Ve(oe,te,re,xe){for(var Xe=null,_t=null,Ke=te,mt=te=0,wt=null;Ke!==null&&mt<re.length;mt++){Ke.index>mt?(wt=Ke,Ke=null):wt=Ke.sibling;var jt=ue(oe,Ke,re[mt],xe);if(jt===null){Ke===null&&(Ke=wt);break}l&&Ke&&jt.alternate===null&&u(oe,Ke),te=A(jt,te,mt),_t===null?Xe=jt:_t.sibling=jt,_t=jt,Ke=wt}if(mt===re.length)return g(oe,Ke),kt&&$i(oe,mt),Xe;if(Ke===null){for(;mt<re.length;mt++)Ke=$e(oe,re[mt],xe),Ke!==null&&(te=A(Ke,te,mt),_t===null?Xe=Ke:_t.sibling=Ke,_t=Ke);return kt&&$i(oe,mt),Xe}for(Ke=b(Ke);mt<re.length;mt++)wt=he(Ke,oe,mt,re[mt],xe),wt!==null&&(l&&wt.alternate!==null&&Ke.delete(wt.key===null?mt:wt.key),te=A(wt,te,mt),_t===null?Xe=wt:_t.sibling=wt,_t=wt);return l&&Ke.forEach(function(zl){return u(oe,zl)}),kt&&$i(oe,mt),Xe}function et(oe,te,re,xe){if(re==null)throw Error(a(151));for(var Xe=null,_t=null,Ke=te,mt=te=0,wt=null,jt=re.next();Ke!==null&&!jt.done;mt++,jt=re.next()){Ke.index>mt?(wt=Ke,Ke=null):wt=Ke.sibling;var zl=ue(oe,Ke,jt.value,xe);if(zl===null){Ke===null&&(Ke=wt);break}l&&Ke&&zl.alternate===null&&u(oe,Ke),te=A(zl,te,mt),_t===null?Xe=zl:_t.sibling=zl,_t=zl,Ke=wt}if(jt.done)return g(oe,Ke),kt&&$i(oe,mt),Xe;if(Ke===null){for(;!jt.done;mt++,jt=re.next())jt=$e(oe,jt.value,xe),jt!==null&&(te=A(jt,te,mt),_t===null?Xe=jt:_t.sibling=jt,_t=jt);return kt&&$i(oe,mt),Xe}for(Ke=b(Ke);!jt.done;mt++,jt=re.next())jt=he(Ke,oe,mt,jt.value,xe),jt!==null&&(l&&jt.alternate!==null&&Ke.delete(jt.key===null?mt:jt.key),te=A(jt,te,mt),_t===null?Xe=jt:_t.sibling=jt,_t=jt);return l&&Ke.forEach(function(Xte){return u(oe,Xte)}),kt&&$i(oe,mt),Xe}function Wt(oe,te,re,xe){if(typeof re=="object"&&re!==null&&re.type===x&&re.key===null&&(re=re.props.children),typeof re=="object"&&re!==null){switch(re.$$typeof){case v:e:{for(var Xe=re.key;te!==null;){if(te.key===Xe){if(Xe=re.type,Xe===x){if(te.tag===7){g(oe,te.sibling),xe=C(te,re.props.children),xe.return=oe,oe=xe;break e}}else if(te.elementType===Xe||typeof Xe=="object"&&Xe!==null&&Xe.$$typeof===N&&od(Xe)===te.type){g(oe,te.sibling),xe=C(te,re.props),wf(xe,re),xe.return=oe,oe=xe;break e}g(oe,te);break}else u(oe,te);te=te.sibling}re.type===x?(xe=Jc(re.props.children,oe.mode,xe,re.key),xe.return=oe,oe=xe):(xe=Xy(re.type,re.key,re.props,null,oe.mode,xe),wf(xe,re),xe.return=oe,oe=xe)}return D(oe);case $:e:{for(Xe=re.key;te!==null;){if(te.key===Xe)if(te.tag===4&&te.stateNode.containerInfo===re.containerInfo&&te.stateNode.implementation===re.implementation){g(oe,te.sibling),xe=C(te,re.children||[]),xe.return=oe,oe=xe;break e}else{g(oe,te);break}else u(oe,te);te=te.sibling}xe=Rk(re,oe.mode,xe),xe.return=oe,oe=xe}return D(oe);case N:return re=od(re),Wt(oe,te,re,xe)}if(ne(re))return Ve(oe,te,re,xe);if(L(re)){if(Xe=L(re),typeof Xe!="function")throw Error(a(150));return re=Xe.call(re),et(oe,te,re,xe)}if(typeof re.then=="function")return Wt(oe,te,ov(re),xe);if(re.$$typeof===T)return Wt(oe,te,ev(oe,re),xe);sv(oe,re)}return typeof re=="string"&&re!==""||typeof re=="number"||typeof re=="bigint"?(re=""+re,te!==null&&te.tag===6?(g(oe,te.sibling),xe=C(te,re),xe.return=oe,oe=xe):(g(oe,te),xe=Tk(re,oe.mode,xe),xe.return=oe,oe=xe),D(oe)):g(oe,te)}return function(oe,te,re,xe){try{$f=0;var Xe=Wt(oe,te,re,xe);return Ju=null,Xe}catch(Ke){if(Ke===Zu||Ke===nv)throw Ke;var _t=Mo(29,Ke,null,oe.mode);return _t.lanes=xe,_t.return=oe,_t}finally{}}}var rd=DD(!0),MD=DD(!1),Sl=!1;function Bk(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fk(l,u){l=l.updateQueue,u.updateQueue===l&&(u.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function Al(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function Tl(l,u,g){var b=l.updateQueue;if(b===null)return null;if(b=b.shared,(Dt&2)!==0){var C=b.pending;return C===null?u.next=u:(u.next=C.next,C.next=u),b.pending=u,u=Qy(l),yD(l,null,g),u}return Yy(l,b,u,g),Qy(l)}function kf(l,u,g){if(u=u.updateQueue,u!==null&&(u=u.shared,(g&4194048)!==0)){var b=u.lanes;b&=l.pendingLanes,g|=b,u.lanes=g,co(l,g)}}function zk(l,u){var g=l.updateQueue,b=l.alternate;if(b!==null&&(b=b.updateQueue,g===b)){var C=null,A=null;if(g=g.firstBaseUpdate,g!==null){do{var D={lane:g.lane,tag:g.tag,payload:g.payload,callback:null,next:null};A===null?C=A=D:A=A.next=D,g=g.next}
vendor: 6,831 bytes, line 49
49while(g!==null);A===null?C=A=u:A=A.next=u}else C=A=u;g={baseState:b.baseState,firstBaseUpdate:C,lastBaseUpdate:A,shared:b.shared,callbacks:b.callbacks},l.updateQueue=g;return}l=g.lastBaseUpdate,l===null?g.firstBaseUpdate=u:l.next=u,g.lastBaseUpdate=u}var qk=!1;function Cf(){if(qk){var l=Xu;if(l!==null)throw l}}function Sf(l,u,g,b){qk=!1;var C=l.updateQueue;Sl=!1;var A=C.firstBaseUpdate,D=C.lastBaseUpdate,U=C.shared.pending;if(U!==null){C.shared.pending=null;var Z=U,le=Z.next;Z.next=null,D===null?A=le:D.next=le,D=Z;var be=l.alternate;be!==null&&(be=be.updateQueue,U=be.lastBaseUpdate,U!==D&&(U===null?be.firstBaseUpdate=le:U.next=le,be.lastBaseUpdate=Z))}if(A!==null){var $e=C.baseState;D=0,be=le=Z=null,U=A;do{var ue=U.lane&-536870913,he=ue!==U.lane;if(he?($t&ue)===ue:(b&ue)===ue){ue!==0&&ue===Qu&&(qk=!0),be!==null&&(be=be.next={lane:0,tag:U.tag,payload:U.payload,callback:null,next:null});e:{var Ve=l,et=U;ue=u;var Wt=g;switch(et.tag){case 1:if(Ve=et.payload,typeof Ve=="function"){$e=Ve.call(Wt,$e,ue);break e}$e=Ve;break e;case 3:Ve.flags=Ve.flags&-65537|128;case 0:if(Ve=et.payload,ue=typeof Ve=="function"?Ve.call(Wt,$e,ue):Ve,ue==null)break e;$e=p({},$e,ue);break e;case 2:Sl=!0}}ue=U.callback,ue!==null&&(l.flags|=64,he&&(l.flags|=8192),he=C.callbacks,he===null?C.callbacks=[ue]:he.push(ue))}else he={lane:ue,tag:U.tag,payload:U.payload,callback:U.callback,next:null},be===null?(le=be=he,Z=$e):be=be.next=he,D|=ue;if(U=U.next,U===null){if(U=C.shared.pending,U===null)break;he=U,U=he.next,he.next=null,C.lastBaseUpdate=he,C.shared.pending=null}}while(!0);be===null&&(Z=$e),C.baseState=Z,C.firstBaseUpdate=le,C.lastBaseUpdate=be,A===null&&(C.shared.lanes=0),Nl|=D,l.lanes=D,l.memoizedState=$e}}function ED(l,u){if(typeof l!="function")throw Error(a(191,l));l.call(u)}function ID(l,u){var g=l.callbacks;if(g!==null)for(l.callbacks=null,l=0;l<g.length;l++)ED(g[l],u)}var em=B(null),rv=B(0);function OD(l,u){l=Ni,Q(rv,l),Q(em,u),Ni=l|u.baseLanes}function Hk(){Q(rv,Ni),Q(em,em.current)}function Vk(){Ni=rv.current,G(em),G(rv)}var Eo=B(null),vs=null;function Rl(l){var u=l.alternate;Q(Pn,Pn.current&1),Q(Eo,l),vs===null&&(u===null||em.current!==null||u.memoizedState!==null)&&(vs=l)}function Kk(l){Q(Pn,Pn.current),Q(Eo,l),vs===null&&(vs=l)}function LD(l){l.tag===22?(Q(Pn,Pn.current),Q(Eo,l),vs===null&&(vs=l)):Pl()}function Pl(){Q(Pn,Pn.current),Q(Eo,Eo.current)}function Io(l){G(Eo),vs===l&&(vs=null),G(Pn)}var Pn=B(0);function iv(l){for(var u=l;u!==null;){if(u.tag===13){var g=u.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||ZC(g)||JC(g)))return u}else if(u.tag===19&&(u.memoizedProps.revealOrder==="forwards"||u.memoizedProps.revealOrder==="backwards"||u.memoizedProps.revealOrder==="unstable_legacy-backwards"||u.memoizedProps.revealOrder==="together")){if((u.flags&128)!==0)return u}else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return null;u=u.return}u.sibling.return=u.return,u=u.sibling}return null}var Ci=0,ut=null,Kt=null,On=null,lv=!1,tm=!1,id=!1,cv=0,Af=0,nm=null,Fee=0;function wn(){throw Error(a(321))}function Gk(l,u){if(u===null)return!1;for(var g=0;g<u.length&&g<l.length;g++)if(!Do(l[g],u[g]))return!1;return!0}function Wk(l,u,g,b,C,A){return Ci=A,ut=u,u.memoizedState=null,u.updateQueue=null,u.lanes=0,q.H=l===null||l.memoizedState===null?$M:cC,id=!1,A=g(b,C),id=!1,tm&&(A=BD(u,g,b,C)),UD(l),A}function UD(l){q.H=Pf;var u=Kt!==null&&Kt.next!==null;if(Ci=0,On=Kt=ut=null,lv=!1,Af=0,nm=null,u)throw Error(a(300));l===null||Ln||(l=l.dependencies,l!==null&&Jy(l)&&(Ln=!0))}function BD(l,u,g,b){ut=l;var C=0;do{if(tm&&(nm=null),Af=0,tm=!1,25<=C)throw Error(a(301));if(C+=1,On=Kt=null,l.updateQueue!=null){var A=l.updateQueue;A.lastEffect=null,A.events=null,A.stores=null,A.memoCache!=null&&(A.memoCache.index=0)}q.H=wM,A=u(g,b)}while(tm);return A}function zee(){var l=q.H,u=l.useState()[0];return u=typeof u.then=="function"?Tf(u):u,l=l.useState()[0],(Kt!==null?Kt.memoizedState:null)!==l&&(ut.flags|=1024),u}function Yk(){var l=cv!==0;return cv=0,l}function Qk(l,u,g){u.updateQueue=l.updateQueue,u.flags&=-2053,l.lanes&=~g}function Xk(l){if(lv){for(l=l.memoizedState;l!==null;){var u=l.queue;u!==null&&(u.pending=null),l=l.next}lv=!1}Ci=0,On=Kt=ut=null,tm=!1,Af=cv=0,nm=null}function Ya(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return On===null?ut.memoizedState=On=l:On=On.next=l,On}function _n(){if(Kt===null){var l=ut.alternate;l=l!==null?l.memoizedState:null}else l=Kt.next;var u=On===null?ut.memoizedState:On.next;if(u!==null)On=u,Kt=l;else{if(l===null)throw ut.alternate===null?Error(a(467)):Error(a(310));Kt=l,l={memoizedState:Kt.memoizedState,baseState:Kt.baseState,baseQueue:Kt.baseQueue,queue:Kt.queue,next:null},On===null?ut.memoizedState=On=l:On=On.next=l}return On}function dv(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Tf(l){var u=Af;return Af+=1,nm===null&&(nm=[]),l=_D(nm,l,u),u=ut,(On===null?u.memoizedState:On.next)===null&&(u=u.alternate,q.H=u===null||u.memoizedState===null?$M:cC),l}function uv(l){if(l!==null&&typeof l=="object"){if(typeof l.then=="function")return Tf(l);if(l.$$typeof===T)return ba(l)}throw Error(a(438,String(l)))}function Zk(l){var u=null,g=ut.updateQueue;if(g!==null&&(u=g.memoCache),u==null){var b=ut.alternate;b!==null&&(b=b.updateQueue,b!==null&&(b=b.memoCache,b!=null&&(u={data:b.data.map(function(C){return C.slice()}),index:0})))}if(u==null&&(u={data:[],index:0}),g===null&&(g=dv(),ut.updateQueue=g),g.memoCache=u,g=u.data[u.index],g===void 0)for(g=u.data[u.index]=Array(l),b=0;b<l;b++)g[b]=z;return u.index++,g}function Si(l,u){return typeof u=="function"?u(l):u}function mv(l){var u=_n();return Jk(u,Kt,l)}function Jk(l,u,g){var b=l.queue;if(b===null)throw Error(a(311));b.lastRenderedReducer=g;var C=l.baseQueue,A=b.pending;if(A!==null){if(C!==null){var D=C.next;C.next=A.next,A.next=D}u.baseQueue=C=A,b.pending=null}if(A=l.baseState,C===null)l.memoizedState=A;else{u=C.next;var U=D=null,Z=null,le=u,be=!1;do{var $e=le.lane&-536870913;if($e!==le.lane?($t&$e)===$e:(Ci&$e)===$e){var ue=le.revertLane;if(ue===0)Z!==null&&(Z=Z.next={lane:0,revertLane:0,gesture:null,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null}),$e===Qu&&(be=!0);else if((Ci&ue)===ue){le=le.next,ue===Qu&&(be=!0);continue}else $e={lane:0,revertLane:le.revertLane,gesture:null,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null},Z===null?(U=Z=$e,D=A):Z=Z.next=$e,ut.lanes|=ue,Nl|=ue;$e=le.action,id&&g(A,$e),A=le.hasEagerState?le.eagerState:g(A,$e)}else ue={lane:$e,revertLane:le.revertLane,gesture:le.gesture,action:le.action,hasEagerState:le.hasEagerState,eagerState:le.eagerState,next:null},Z===null?(U=Z=ue,D=A):Z=Z.next=ue,ut.lanes|=$e,Nl|=$e;le=le.next}
vendor: 14,006 bytes, line 49
49while(le!==null&&le!==u);if(Z===null?D=A:Z.next=U,!Do(A,l.memoizedState)&&(Ln=!0,be&&(g=Xu,g!==null)))throw g;l.memoizedState=A,l.baseState=D,l.baseQueue=Z,b.lastRenderedState=A}return C===null&&(b.lanes=0),[l.memoizedState,b.dispatch]}function eC(l){var u=_n(),g=u.queue;if(g===null)throw Error(a(311));g.lastRenderedReducer=l;var b=g.dispatch,C=g.pending,A=u.memoizedState;if(C!==null){g.pending=null;var D=C=C.next;do A=l(A,D.action),D=D.next;while(D!==C);Do(A,u.memoizedState)||(Ln=!0),u.memoizedState=A,u.baseQueue===null&&(u.baseState=A),g.lastRenderedState=A}return[A,b]}function FD(l,u,g){var b=ut,C=_n(),A=kt;if(A){if(g===void 0)throw Error(a(407));g=g()}else g=u();var D=!Do((Kt||C).memoizedState,g);if(D&&(C.memoizedState=g,Ln=!0),C=C.queue,aC(HD.bind(null,b,C,l),[l]),C.getSnapshot!==u||D||On!==null&&On.memoizedState.tag&1){if(b.flags|=2048,am(9,{destroy:void 0},qD.bind(null,b,C,g,u),null),en===null)throw Error(a(349));A||(Ci&127)!==0||zD(b,u,g)}return g}function zD(l,u,g){l.flags|=16384,l={getSnapshot:u,value:g},u=ut.updateQueue,u===null?(u=dv(),ut.updateQueue=u,u.stores=[l]):(g=u.stores,g===null?u.stores=[l]:g.push(l))}function qD(l,u,g,b){u.value=g,u.getSnapshot=b,VD(u)&&KD(l)}function HD(l,u,g){return g(function(){VD(u)&&KD(l)})}function VD(l){var u=l.getSnapshot;l=l.value;try{var g=u();return!Do(l,g)}catch{return!0}}function KD(l){var u=Zc(l,2);u!==null&&yo(u,l,2)}function tC(l){var u=Ya();if(typeof l=="function"){var g=l;if(l=g(),id){Hs(!0);try{g()}finally{Hs(!1)}}}return u.memoizedState=u.baseState=l,u.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Si,lastRenderedState:l},u}function GD(l,u,g,b){return l.baseState=g,Jk(l,Kt,typeof b=="function"?b:Si)}function qee(l,u,g,b,C){if(gv(l))throw Error(a(485));if(l=u.action,l!==null){var A={payload:C,action:l,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(D){A.listeners.push(D)}};q.T!==null?g(!0):A.isTransition=!1,b(A),g=u.pending,g===null?(A.next=u.pending=A,WD(u,A)):(A.next=g.next,u.pending=g.next=A)}}function WD(l,u){var g=u.action,b=u.payload,C=l.state;if(u.isTransition){var A=q.T,D={};q.T=D;try{var U=g(C,b),Z=q.S;Z!==null&&Z(D,U),YD(l,u,U)}catch(le){nC(l,u,le)}finally{A!==null&&D.types!==null&&(A.types=D.types),q.T=A}}else try{A=g(C,b),YD(l,u,A)}catch(le){nC(l,u,le)}}function YD(l,u,g){g!==null&&typeof g=="object"&&typeof g.then=="function"?g.then(function(b){QD(l,u,b)},function(b){return nC(l,u,b)}):QD(l,u,g)}function QD(l,u,g){u.status="fulfilled",u.value=g,XD(u),l.state=g,u=l.pending,u!==null&&(g=u.next,g===u?l.pending=null:(g=g.next,u.next=g,WD(l,g)))}function nC(l,u,g){var b=l.pending;if(l.pending=null,b!==null){b=b.next;do u.status="rejected",u.reason=g,XD(u),u=u.next;while(u!==b)}l.action=null}function XD(l){l=l.listeners;for(var u=0;u<l.length;u++)(0,l[u])()}function ZD(l,u){return u}function JD(l,u){if(kt){var g=en.formState;if(g!==null){e:{var b=ut;if(kt){if(dn){t:{for(var C=dn,A=ys;C.nodeType!==8;){if(!A){C=null;break t}if(C=bs(C.nextSibling),C===null){C=null;break t}}A=C.data,C=A==="F!"||A==="F"?C:null}if(C){dn=bs(C.nextSibling),b=C.data==="F!";break e}}kl(b)}b=!1}b&&(u=g[0])}}return g=Ya(),g.memoizedState=g.baseState=u,b={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ZD,lastRenderedState:u},g.queue=b,g=vM.bind(null,ut,b),b.dispatch=g,b=tC(!1),A=lC.bind(null,ut,!1,b.queue),b=Ya(),C={state:u,dispatch:null,action:l,pending:null},b.queue=C,g=qee.bind(null,ut,C,A,g),C.dispatch=g,b.memoizedState=l,[u,g,!1]}function eM(l){var u=_n();return tM(u,Kt,l)}function tM(l,u,g){if(u=Jk(l,u,ZD)[0],l=mv(Si)[0],typeof u=="object"&&u!==null&&typeof u.then=="function")try{var b=Tf(u)}catch(D){throw D===Zu?nv:D}else b=u;u=_n();var C=u.queue,A=C.dispatch;return g!==u.memoizedState&&(ut.flags|=2048,am(9,{destroy:void 0},Hee.bind(null,C,g),null)),[b,A,l]}function Hee(l,u){l.action=u}function nM(l){var u=_n(),g=Kt;if(g!==null)return tM(u,g,l);_n(),u=u.memoizedState,g=_n();var b=g.queue.dispatch;return g.memoizedState=l,[u,b,!1]}function am(l,u,g,b){return l={tag:l,create:g,deps:b,inst:u,next:null},u=ut.updateQueue,u===null&&(u=dv(),ut.updateQueue=u),g=u.lastEffect,g===null?u.lastEffect=l.next=l:(b=g.next,g.next=l,l.next=b,u.lastEffect=l),l}function aM(){return _n().memoizedState}function pv(l,u,g,b){var C=Ya();ut.flags|=l,C.memoizedState=am(1|u,{destroy:void 0},g,b===void 0?null:b)}function fv(l,u,g,b){var C=_n();b=b===void 0?null:b;var A=C.memoizedState.inst;Kt!==null&&b!==null&&Gk(b,Kt.memoizedState.deps)?C.memoizedState=am(u,A,g,b):(ut.flags|=l,C.memoizedState=am(1|u,A,g,b))}function oM(l,u){pv(8390656,8,l,u)}function aC(l,u){fv(2048,8,l,u)}function Vee(l){ut.flags|=4;var u=ut.updateQueue;if(u===null)u=dv(),ut.updateQueue=u,u.events=[l];else{var g=u.events;g===null?u.events=[l]:g.push(l)}}function sM(l){var u=_n().memoizedState;return Vee({ref:u,nextImpl:l}),function(){if((Dt&2)!==0)throw Error(a(440));return u.impl.apply(void 0,arguments)}}function rM(l,u){return fv(4,2,l,u)}function iM(l,u){return fv(4,4,l,u)}function lM(l,u){if(typeof u=="function"){l=l();var g=u(l);return function(){typeof g=="function"?g():u(null)}}if(u!=null)return l=l(),u.current=l,function(){u.current=null}}function cM(l,u,g){g=g!=null?g.concat([l]):null,fv(4,4,lM.bind(null,u,l),g)}function oC(){}function dM(l,u){var g=_n();u=u===void 0?null:u;var b=g.memoizedState;return u!==null&&Gk(u,b[1])?b[0]:(g.memoizedState=[l,u],l)}function uM(l,u){var g=_n();u=u===void 0?null:u;var b=g.memoizedState;if(u!==null&&Gk(u,b[1]))return b[0];if(b=l(),id){Hs(!0);try{l()}finally{Hs(!1)}}return g.memoizedState=[b,u],b}function sC(l,u,g){return g===void 0||(Ci&1073741824)!==0&&($t&261930)===0?l.memoizedState=u:(l.memoizedState=g,l=mE(),ut.lanes|=l,Nl|=l,g)}function mM(l,u,g,b){return Do(g,u)?g:em.current!==null?(l=sC(l,g,b),Do(l,u)||(Ln=!0),l):(Ci&42)===0||(Ci&1073741824)!==0&&($t&261930)===0?(Ln=!0,l.memoizedState=g):(l=mE(),ut.lanes|=l,Nl|=l,u)}function pM(l,u,g,b,C){var A=M.p;M.p=A!==0&&8>A?A:8;var D=q.T,U={};q.T=U,lC(l,!1,u,g);try{var Z=C(),le=q.S;if(le!==null&&le(U,Z),Z!==null&&typeof Z=="object"&&typeof Z.then=="function"){var be=Bee(Z,b);Rf(l,u,be,Uo(l))}else Rf(l,u,b,Uo(l))}catch($e){Rf(l,u,{then:function(){},status:"rejected",reason:$e},Uo())}finally{M.p=A,D!==null&&U.types!==null&&(D.types=U.types),q.T=D}}function Kee(){}function rC(l,u,g,b){if(l.tag!==5)throw Error(a(476));var C=fM(l).queue;pM(l,C,u,F,g===null?Kee:function(){return gM(l),g(b)})}function fM(l){var u=l.memoizedState;if(u!==null)return u;u={memoizedState:F,baseState:F,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Si,lastRenderedState:F},next:null};var g={};return u.next={memoizedState:g,baseState:g,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Si,lastRenderedState:g},next:null},l.memoizedState=u,l=l.alternate,l!==null&&(l.memoizedState=u),u}function gM(l){var u=fM(l);u.next===null&&(u=l.alternate.memoizedState),Rf(l,u.next.queue,{},Uo())}function iC(){return ba(Vf)}function hM(){return _n().memoizedState}function yM(){return _n().memoizedState}function Gee(l){for(var u=l.return;u!==null;){switch(u.tag){case 24:case 3:var g=Uo();l=Al(g);var b=Tl(u,l,g);b!==null&&(yo(b,u,g),kf(b,u,g)),u={cache:Ik()},l.payload=u;return}u=u.return}}function Wee(l,u,g){var b=Uo();g={lane:b,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null},gv(l)?bM(u,g):(g=Sk(l,u,g,b),g!==null&&(yo(g,l,b),xM(g,u,b)))}function vM(l,u,g){var b=Uo();Rf(l,u,g,b)}function Rf(l,u,g,b){var C={lane:b,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null};if(gv(l))bM(u,C);else{var A=l.alternate;if(l.lanes===0&&(A===null||A.lanes===0)&&(A=u.lastRenderedReducer,A!==null))try{var D=u.lastRenderedState,U=A(D,g);if(C.hasEagerState=!0,C.eagerState=U,Do(U,D))return Yy(l,u,C,0),en===null&&Wy(),!1}catch{}finally{}if(g=Sk(l,u,C,b),g!==null)return yo(g,l,b),xM(g,u,b),!0}return!1}function lC(l,u,g,b){if(b={lane:2,revertLane:BC(),gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null},gv(l)){if(u)throw Error(a(479))}else u=Sk(l,g,b,2),u!==null&&yo(u,l,2)}function gv(l){var u=l.alternate;return l===ut||u!==null&&u===ut}function bM(l,u){tm=lv=!0;var g=l.pending;g===null?u.next=u:(u.next=g.next,g.next=u),l.pending=u}function xM(l,u,g){if((g&4194048)!==0){var b=u.lanes;b&=l.pendingLanes,g|=b,u.lanes=g,co(l,g)}}var Pf={readContext:ba,use:uv,useCallback:wn,useContext:wn,useEffect:wn,useImperativeHandle:wn,useLayoutEffect:wn,useInsertionEffect:wn,useMemo:wn,useReducer:wn,useRef:wn,useState:wn,useDebugValue:wn,useDeferredValue:wn,useTransition:wn,useSyncExternalStore:wn,useId:wn,useHostTransitionStatus:wn,useFormState:wn,useActionState:wn,useOptimistic:wn,useMemoCache:wn,useCacheRefresh:wn};Pf.useEffectEvent=wn;var $M={readContext:ba,use:uv,useCallback:function(l,u){return Ya().memoizedState=[l,u===void 0?null:u],l},useContext:ba,useEffect:oM,useImperativeHandle:function(l,u,g){g=g!=null?g.concat([l]):null,pv(4194308,4,lM.bind(null,u,l),g)},useLayoutEffect:function(l,u){return pv(4194308,4,l,u)},useInsertionEffect:function(l,u){pv(4,2,l,u)},useMemo:function(l,u){var g=Ya();u=u===void 0?null:u;var b=l();if(id){Hs(!0);try{l()}finally{Hs(!1)}}return g.memoizedState=[b,u],b},useReducer:function(l,u,g){var b=Ya();if(g!==void 0){var C=g(u);if(id){Hs(!0);try{g(u)}finally{Hs(!1)}}}else C=u;return b.memoizedState=b.baseState=C,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:C},b.queue=l,l=l.dispatch=Wee.bind(null,ut,l),[b.memoizedState,l]},useRef:function(l){var u=Ya();return l={current:l},u.memoizedState=l},useState:function(l){l=tC(l);var u=l.queue,g=vM.bind(null,ut,u);return u.dispatch=g,[l.memoizedState,g]},useDebugValue:oC,useDeferredValue:function(l,u){var g=Ya();return sC(g,l,u)},useTransition:function(){var l=tC(!1);return l=pM.bind(null,ut,l.queue,!0,!1),Ya().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,u,g){var b=ut,C=Ya();if(kt){if(g===void 0)throw Error(a(407));g=g()}else{if(g=u(),en===null)throw Error(a(349));($t&127)!==0||zD(b,u,g)}C.memoizedState=g;var A={value:g,getSnapshot:u};return C.queue=A,oM(HD.bind(null,b,A,l),[l]),b.flags|=2048,am(9,{destroy:void 0},qD.bind(null,b,A,g,u),null),g},useId:function(){var l=Ya(),u=en.identifierPrefix;if(kt){var g=jr,b=_r;g=(b&~(1<<32-En(b)-1)).toString(32)+g,u="_"+u+"R_"+g,g=cv++,0<g&&(u+="H"+g.toString(32)),u+="_"}else g=Fee++,u="_"+u+"r_"+g.toString(32)+"_";return l.memoizedState=u},useHostTransitionStatus:iC,useFormState:JD,useActionState:JD,useOptimistic:function(l){var u=Ya();u.memoizedState=u.baseState=l;var g={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return u.queue=g,u=lC.bind(null,ut,!0,g),g.dispatch=u,[l,u]},useMemoCache:Zk,useCacheRefresh:function(){return Ya().memoizedState=Gee.bind(null,ut)},useEffectEvent:function(l){var u=Ya(),g={impl:l};return u.memoizedState=g,function(){if((Dt&2)!==0)throw Error(a(440));return g.impl.apply(void 0,arguments)}}},cC={readContext:ba,use:uv,useCallback:dM,useContext:ba,useEffect:aC,useImperativeHandle:cM,useInsertionEffect:rM,useLayoutEffect:iM,useMemo:uM,useReducer:mv,useRef:aM,useState:function(){return mv(Si)},useDebugValue:oC,useDeferredValue:function(l,u){var g=_n();return mM(g,Kt.memoizedState,l,u)},useTransition:function(){var l=mv(Si)[0],u=_n().memoizedState;return[typeof l=="boolean"?l:Tf(l),u]},useSyncExternalStore:FD,useId:hM,useHostTransitionStatus:iC,useFormState:eM,useActionState:eM,useOptimistic:function(l,u){var g=_n();return GD(g,Kt,l,u)},useMemoCache:Zk,useCacheRefresh:yM};cC.useEffectEvent=sM;var wM={readContext:ba,use:uv,useCallback:dM,useContext:ba,useEffect:aC,useImperativeHandle:cM,useInsertionEffect:rM,useLayoutEffect:iM,useMemo:uM,useReducer:eC,useRef:aM,useState:function(){return eC(Si)},useDebugValue:oC,useDeferredValue:function(l,u){var g=_n();return Kt===null?sC(g,l,u):mM(g,Kt.memoizedState,l,u)},useTransition:function(){var l=eC(Si)[0],u=_n().memoizedState;return[typeof l=="boolean"?l:Tf(l),u]},useSyncExternalStore:FD,useId:hM,useHostTransitionStatus:iC,useFormState:nM,useActionState:nM,useOptimistic:function(l,u){var g=_n();return Kt!==null?GD(g,Kt,l,u):(g.baseState=l,[l,g.queue.dispatch])},useMemoCache:Zk,useCacheRefresh:yM};wM.useEffectEvent=sM;function dC(l,u,g,b){u=l.memoizedState,g=g(b,u),g=g==null?u:p({},u,g),l.memoizedState=g,l.lanes===0&&(l.updateQueue.baseState=g)}var uC={enqueueSetState:function(l,u,g){l=l._reactInternals;var b=Uo(),C=Al(b);C.payload=u,g!=null&&(C.callback=g),u=Tl(l,C,b),u!==null&&(yo(u,l,b),kf(u,l,b))},enqueueReplaceState:function(l,u,g){l=l._reactInternals;var b=Uo(),C=Al(b);C.tag=1,C.payload=u,g!=null&&(C.callback=g),u=Tl(l,C,b),u!==null&&(yo(u,l,b),kf(u,l,b))},enqueueForceUpdate:function(l,u){l=l._reactInternals;var g=Uo(),b=Al(g);b.tag=2,u!=null&&(b.callback=u),u=Tl(l,b,g),u!==null&&(yo(u,l,g),kf(u,l,g))}};function kM(l,u,g,b,C,A,D){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(b,A,D):u.prototype&&u.prototype.isPureReactComponent?!gf(g,b)||!gf(C,A):!0}function CM(l,u,g,b){l=u.state,typeof u.componentWillReceiveProps=="function"&&u.componentWillReceiveProps(g,b),typeof u.UNSAFE_componentWillReceiveProps=="function"&&u.UNSAFE_componentWillReceiveProps(g,b),u.state!==l&&uC.enqueueReplaceState(u,u.state,null)}function ld(l,u){var g=u;if("ref"in u){g={};for(var b in u)b!=="ref"&&(g[b]=u[b])}if(l=l.defaultProps){g===u&&(g=p({},g));for(var C in l)g[C]===void 0&&(g[C]=l[C])}return g}function SM(l){Gy(l)}function AM(l){console.error(l)}function TM(l){Gy(l)}function hv(l,u){try{var g=l.onUncaughtError;g(u.value,{componentStack:u.stack})}catch(b){setTimeout(function(){throw b})}}function RM(l,u,g){try{var b=l.onCaughtError;b(g.value,{componentStack:g.stack,errorBoundary:u.tag===1?u.stateNode:null})}catch(C){setTimeout(function(){throw C})}}function mC(l,u,g){return g=Al(g),g.tag=3,g.payload={element:null},g.callback=function(){hv(l,u)},g}function PM(l){return l=Al(l),l.tag=3,l}
vendor: 11,936 bytes, line 49
49function _M(l,u,g,b){var C=g.type.getDerivedStateFromError;if(typeof C=="function"){var A=b.value;l.payload=function(){return C(A)},l.callback=function(){RM(u,g,b)}}var D=g.stateNode;D!==null&&typeof D.componentDidCatch=="function"&&(l.callback=function(){RM(u,g,b),typeof C!="function"&&(Dl===null?Dl=new Set([this]):Dl.add(this));var U=b.stack;this.componentDidCatch(b.value,{componentStack:U!==null?U:""})})}function Yee(l,u,g,b,C){if(g.flags|=32768,b!==null&&typeof b=="object"&&typeof b.then=="function"){if(u=g.alternate,u!==null&&Yu(u,g,C,!0),g=Eo.current,g!==null){switch(g.tag){case 31:case 13:return vs===null?Rv():g.alternate===null&&kn===0&&(kn=3),g.flags&=-257,g.flags|=65536,g.lanes=C,b===av?g.flags|=16384:(u=g.updateQueue,u===null?g.updateQueue=new Set([b]):u.add(b),OC(l,b,C)),!1;case 22:return g.flags|=65536,b===av?g.flags|=16384:(u=g.updateQueue,u===null?(u={transitions:null,markerInstances:null,retryQueue:new Set([b])},g.updateQueue=u):(g=u.retryQueue,g===null?u.retryQueue=new Set([b]):g.add(b)),OC(l,b,C)),!1}throw Error(a(435,g.tag))}return OC(l,b,C),Rv(),!1}if(kt)return u=Eo.current,u!==null?((u.flags&65536)===0&&(u.flags|=256),u.flags|=65536,u.lanes=C,b!==jk&&(l=Error(a(422),{cause:b}),vf(fs(l,g)))):(b!==jk&&(u=Error(a(423),{cause:b}),vf(fs(u,g))),l=l.current.alternate,l.flags|=65536,C&=-C,l.lanes|=C,b=fs(b,g),C=mC(l.stateNode,b,C),zk(l,C),kn!==4&&(kn=2)),!1;var A=Error(a(520),{cause:b});if(A=fs(A,g),Of===null?Of=[A]:Of.push(A),kn!==4&&(kn=2),u===null)return!0;b=fs(b,g),g=u;do{switch(g.tag){case 3:return g.flags|=65536,l=C&-C,g.lanes|=l,l=mC(g.stateNode,b,l),zk(g,l),!1;case 1:if(u=g.type,A=g.stateNode,(g.flags&128)===0&&(typeof u.getDerivedStateFromError=="function"||A!==null&&typeof A.componentDidCatch=="function"&&(Dl===null||!Dl.has(A))))return g.flags|=65536,C&=-C,g.lanes|=C,C=PM(C),_M(C,l,g,b),zk(g,C),!1}g=g.return}while(g!==null);return!1}var pC=Error(a(461)),Ln=!1;function xa(l,u,g,b){u.child=l===null?MD(u,null,g,b):rd(u,l.child,g,b)}function jM(l,u,g,b,C){g=g.render;var A=u.ref;if("ref"in b){var D={};for(var U in b)U!=="ref"&&(D[U]=b[U])}else D=b;return nd(u),b=Wk(l,u,g,D,A,C),U=Yk(),l!==null&&!Ln?(Qk(l,u,C),Ai(l,u,C)):(kt&&U&&Pk(u),u.flags|=1,xa(l,u,b,C),u.child)}function NM(l,u,g,b,C){if(l===null){var A=g.type;return typeof A=="function"&&!Ak(A)&&A.defaultProps===void 0&&g.compare===null?(u.tag=15,u.type=A,DM(l,u,A,b,C)):(l=Xy(g.type,null,b,u,u.mode,C),l.ref=u.ref,l.return=u,u.child=l)}if(A=l.child,!$C(l,C)){var D=A.memoizedProps;if(g=g.compare,g=g!==null?g:gf,g(D,b)&&l.ref===u.ref)return Ai(l,u,C)}return u.flags|=1,l=xi(A,b),l.ref=u.ref,l.return=u,u.child=l}function DM(l,u,g,b,C){if(l!==null){var A=l.memoizedProps;if(gf(A,b)&&l.ref===u.ref)if(Ln=!1,u.pendingProps=b=A,$C(l,C))(l.flags&131072)!==0&&(Ln=!0);else return u.lanes=l.lanes,Ai(l,u,C)}return fC(l,u,g,b,C)}function MM(l,u,g,b){var C=b.children,A=l!==null?l.memoizedState:null;if(l===null&&u.stateNode===null&&(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),b.mode==="hidden"){if((u.flags&128)!==0){if(A=A!==null?A.baseLanes|g:g,l!==null){for(b=u.child=l.child,C=0;b!==null;)C=C|b.lanes|b.childLanes,b=b.sibling;b=C&~A}else b=0,u.child=null;return EM(l,u,A,g,b)}if((g&536870912)!==0)u.memoizedState={baseLanes:0,cachePool:null},l!==null&&tv(u,A!==null?A.cachePool:null),A!==null?OD(u,A):Hk(),LD(u);else return b=u.lanes=536870912,EM(l,u,A!==null?A.baseLanes|g:g,g,b)}else A!==null?(tv(u,A.cachePool),OD(u,A),Pl(),u.memoizedState=null):(l!==null&&tv(u,null),Hk(),Pl());return xa(l,u,C,g),u.child}function _f(l,u){return l!==null&&l.tag===22||u.stateNode!==null||(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),u.sibling}function EM(l,u,g,b,C){var A=Lk();return A=A===null?null:{parent:In._currentValue,pool:A},u.memoizedState={baseLanes:g,cachePool:A},l!==null&&tv(u,null),Hk(),LD(u),l!==null&&Yu(l,u,b,!0),u.childLanes=C,null}function yv(l,u){return u=bv({mode:u.mode,children:u.children},l.mode),u.ref=l.ref,l.child=u,u.return=l,u}function IM(l,u,g){return rd(u,l.child,null,g),l=yv(u,u.pendingProps),l.flags|=2,Io(u),u.memoizedState=null,l}function Qee(l,u,g){var b=u.pendingProps,C=(u.flags&128)!==0;if(u.flags&=-129,l===null){if(kt){if(b.mode==="hidden")return l=yv(u,b),u.lanes=536870912,_f(null,l);if(Kk(u),(l=dn)?(l=WE(l,ys),l=l!==null&&l.data==="&"?l:null,l!==null&&(u.memoizedState={dehydrated:l,treeContext:$l!==null?{id:_r,overflow:jr}:null,retryLane:536870912,hydrationErrors:null},g=bD(l),g.return=u,u.child=g,va=u,dn=null)):l=null,l===null)throw kl(u);return u.lanes=536870912,null}return yv(u,b)}var A=l.memoizedState;if(A!==null){var D=A.dehydrated;if(Kk(u),C)if(u.flags&256)u.flags&=-257,u=IM(l,u,g);else if(u.memoizedState!==null)u.child=l.child,u.flags|=128,u=null;else throw Error(a(558));else if(Ln||Yu(l,u,g,!1),C=(g&l.childLanes)!==0,Ln||C){if(b=en,b!==null&&(D=Vs(b,g),D!==0&&D!==A.retryLane))throw A.retryLane=D,Zc(l,D),yo(b,l,D),pC;Rv(),u=IM(l,u,g)}else l=A.treeContext,dn=bs(D.nextSibling),va=u,kt=!0,wl=null,ys=!1,l!==null&&wD(u,l),u=yv(u,b),u.flags|=4096;return u}return l=xi(l.child,{mode:b.mode,children:b.children}),l.ref=u.ref,u.child=l,l.return=u,l}function vv(l,u){var g=u.ref;if(g===null)l!==null&&l.ref!==null&&(u.flags|=4194816);else{if(typeof g!="function"&&typeof g!="object")throw Error(a(284));(l===null||l.ref!==g)&&(u.flags|=4194816)}}function fC(l,u,g,b,C){return nd(u),g=Wk(l,u,g,b,void 0,C),b=Yk(),l!==null&&!Ln?(Qk(l,u,C),Ai(l,u,C)):(kt&&b&&Pk(u),u.flags|=1,xa(l,u,g,C),u.child)}function OM(l,u,g,b,C,A){return nd(u),u.updateQueue=null,g=BD(u,b,g,C),UD(l),b=Yk(),l!==null&&!Ln?(Qk(l,u,A),Ai(l,u,A)):(kt&&b&&Pk(u),u.flags|=1,xa(l,u,g,A),u.child)}function LM(l,u,g,b,C){if(nd(u),u.stateNode===null){var A=Vu,D=g.contextType;typeof D=="object"&&D!==null&&(A=ba(D)),A=new g(b,A),u.memoizedState=A.state!==null&&A.state!==void 0?A.state:null,A.updater=uC,u.stateNode=A,A._reactInternals=u,A=u.stateNode,A.props=b,A.state=u.memoizedState,A.refs={},Bk(u),D=g.contextType,A.context=typeof D=="object"&&D!==null?ba(D):Vu,A.state=u.memoizedState,D=g.getDerivedStateFromProps,typeof D=="function"&&(dC(u,g,D,b),A.state=u.memoizedState),typeof g.getDerivedStateFromProps=="function"||typeof A.getSnapshotBeforeUpdate=="function"||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(D=A.state,typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount(),D!==A.state&&uC.enqueueReplaceState(A,A.state,null),Sf(u,b,A,C),Cf(),A.state=u.memoizedState),typeof A.componentDidMount=="function"&&(u.flags|=4194308),b=!0}else if(l===null){A=u.stateNode;var U=u.memoizedProps,Z=ld(g,U);A.props=Z;var le=A.context,be=g.contextType;D=Vu,typeof be=="object"&&be!==null&&(D=ba(be));var $e=g.getDerivedStateFromProps;be=typeof $e=="function"||typeof A.getSnapshotBeforeUpdate=="function",U=u.pendingProps!==U,be||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(U||le!==D)&&CM(u,A,b,D),Sl=!1;var ue=u.memoizedState;A.state=ue,Sf(u,b,A,C),Cf(),le=u.memoizedState,U||ue!==le||Sl?(typeof $e=="function"&&(dC(u,g,$e,b),le=u.memoizedState),(Z=Sl||kM(u,g,Z,b,ue,le,D))?(be||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"&&(u.flags|=4194308)):(typeof A.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=b,u.memoizedState=le),A.props=b,A.state=le,A.context=D,b=Z):(typeof A.componentDidMount=="function"&&(u.flags|=4194308),b=!1)}else{A=u.stateNode,Fk(l,u),D=u.memoizedProps,be=ld(g,D),A.props=be,$e=u.pendingProps,ue=A.context,le=g.contextType,Z=Vu,typeof le=="object"&&le!==null&&(Z=ba(le)),U=g.getDerivedStateFromProps,(le=typeof U=="function"||typeof A.getSnapshotBeforeUpdate=="function")||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(D!==$e||ue!==Z)&&CM(u,A,b,Z),Sl=!1,ue=u.memoizedState,A.state=ue,Sf(u,b,A,C),Cf();var he=u.memoizedState;D!==$e||ue!==he||Sl||l!==null&&l.dependencies!==null&&Jy(l.dependencies)?(typeof U=="function"&&(dC(u,g,U,b),he=u.memoizedState),(be=Sl||kM(u,g,be,b,ue,he,Z)||l!==null&&l.dependencies!==null&&Jy(l.dependencies))?(le||typeof A.UNSAFE_componentWillUpdate!="function"&&typeof A.componentWillUpdate!="function"||(typeof A.componentWillUpdate=="function"&&A.componentWillUpdate(b,he,Z),typeof A.UNSAFE_componentWillUpdate=="function"&&A.UNSAFE_componentWillUpdate(b,he,Z)),typeof A.componentDidUpdate=="function"&&(u.flags|=4),typeof A.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof A.componentDidUpdate!="function"||D===l.memoizedProps&&ue===l.memoizedState||(u.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||D===l.memoizedProps&&ue===l.memoizedState||(u.flags|=1024),u.memoizedProps=b,u.memoizedState=he),A.props=b,A.state=he,A.context=Z,b=be):(typeof A.componentDidUpdate!="function"||D===l.memoizedProps&&ue===l.memoizedState||(u.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||D===l.memoizedProps&&ue===l.memoizedState||(u.flags|=1024),b=!1)}return A=b,vv(l,u),b=(u.flags&128)!==0,A||b?(A=u.stateNode,g=b&&typeof g.getDerivedStateFromError!="function"?null:A.render(),u.flags|=1,l!==null&&b?(u.child=rd(u,l.child,null,C),u.child=rd(u,null,g,C)):xa(l,u,g,C),u.memoizedState=A.state,l=u.child):l=Ai(l,u,C),l}function UM(l,u,g,b){return ed(),u.flags|=256,xa(l,u,g,b),u.child}var gC={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function hC(l){return{baseLanes:l,cachePool:RD()}}function yC(l,u,g){return l=l!==null?l.childLanes&~g:0,u&&(l|=Lo),l}function BM(l,u,g){var b=u.pendingProps,C=!1,A=(u.flags&128)!==0,D;if((D=A)||(D=l!==null&&l.memoizedState===null?!1:(Pn.current&2)!==0),D&&(C=!0,u.flags&=-129),D=(u.flags&32)!==0,u.flags&=-33,l===null){if(kt){if(C?Rl(u):Pl(),(l=dn)?(l=WE(l,ys),l=l!==null&&l.data!=="&"?l:null,l!==null&&(u.memoizedState={dehydrated:l,treeContext:$l!==null?{id:_r,overflow:jr}:null,retryLane:536870912,hydrationErrors:null},g=bD(l),g.return=u,u.child=g,va=u,dn=null)):l=null,l===null)throw kl(u);return JC(l)?u.lanes=32:u.lanes=536870912,null}var U=b.children;return b=b.fallback,C?(Pl(),C=u.mode,U=bv({mode:"hidden",children:U},C),b=Jc(b,C,g,null),U.return=u,b.return=u,U.sibling=b,u.child=U,b=u.child,b.memoizedState=hC(g),b.childLanes=yC(l,D,g),u.memoizedState=gC,_f(null,b)):(Rl(u),vC(u,U))}var Z=l.memoizedState;if(Z!==null&&(U=Z.dehydrated,U!==null)){if(A)u.flags&256?(Rl(u),u.flags&=-257,u=bC(l,u,g)):u.memoizedState!==null?(Pl(),u.child=l.child,u.flags|=128,u=null):(Pl(),U=b.fallback,C=u.mode,b=bv({mode:"visible",children:b.children},C),U=Jc(U,C,g,null),U.flags|=2,b.return=u,U.return=u,b.sibling=U,u.child=b,rd(u,l.child,null,g),b=u.child,b.memoizedState=hC(g),b.childLanes=yC(l,D,g),u.memoizedState=gC,u=_f(null,b));else if(Rl(u),JC(U)){if(D=U.nextSibling&&U.nextSibling.dataset,D)var le=D.dgst;D=le,b=Error(a(419)),b.stack="",b.digest=D,vf({value:b,source:null,stack:null}),u=bC(l,u,g)}else if(Ln||Yu(l,u,g,!1),D=(g&l.childLanes)!==0,Ln||D){if(D=en,D!==null&&(b=Vs(D,g),b!==0&&b!==Z.retryLane))throw Z.retryLane=b,Zc(l,b),yo(D,l,b),pC;ZC(U)||Rv(),u=bC(l,u,g)}else ZC(U)?(u.flags|=192,u.child=l.child,u=null):(l=Z.treeContext,dn=bs(U.nextSibling),va=u,kt=!0,wl=null,ys=!1,l!==null&&wD(u,l),u=vC(u,b.children),u.flags|=4096);return u}return C?(Pl(),U=b.fallback,C=u.mode,Z=l.child,le=Z.sibling,b=xi(Z,{mode:"hidden",children:b.children}),b.subtreeFlags=Z.subtreeFlags&65011712,le!==null?U=xi(le,U):(U=Jc(U,C,g,null),U.flags|=2),U.return=u,b.return=u,b.sibling=U,u.child=b,_f(null,b),b=u.child,U=l.child.memoizedState,U===null?U=hC(g):(C=U.cachePool,C!==null?(Z=In._currentValue,C=C.parent!==Z?{parent:Z,pool:Z}
vendor: 5,170 bytes, line 49
49:C):C=RD(),U={baseLanes:U.baseLanes|g,cachePool:C}),b.memoizedState=U,b.childLanes=yC(l,D,g),u.memoizedState=gC,_f(l.child,b)):(Rl(u),g=l.child,l=g.sibling,g=xi(g,{mode:"visible",children:b.children}),g.return=u,g.sibling=null,l!==null&&(D=u.deletions,D===null?(u.deletions=[l],u.flags|=16):D.push(l)),u.child=g,u.memoizedState=null,g)}function vC(l,u){return u=bv({mode:"visible",children:u},l.mode),u.return=l,l.child=u}function bv(l,u){return l=Mo(22,l,null,u),l.lanes=0,l}function bC(l,u,g){return rd(u,l.child,null,g),l=vC(u,u.pendingProps.children),l.flags|=2,u.memoizedState=null,l}function FM(l,u,g){l.lanes|=u;var b=l.alternate;b!==null&&(b.lanes|=u),Mk(l.return,u,g)}function xC(l,u,g,b,C,A){var D=l.memoizedState;D===null?l.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:b,tail:g,tailMode:C,treeForkCount:A}:(D.isBackwards=u,D.rendering=null,D.renderingStartTime=0,D.last=b,D.tail=g,D.tailMode=C,D.treeForkCount=A)}function zM(l,u,g){var b=u.pendingProps,C=b.revealOrder,A=b.tail;b=b.children;var D=Pn.current,U=(D&2)!==0;if(U?(D=D&1|2,u.flags|=128):D&=1,Q(Pn,D),xa(l,u,b,g),b=kt?yf:0,!U&&l!==null&&(l.flags&128)!==0)e:for(l=u.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&FM(l,g,u);else if(l.tag===19)FM(l,g,u);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===u)break e;for(;l.sibling===null;){if(l.return===null||l.return===u)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(C){case"forwards":for(g=u.child,C=null;g!==null;)l=g.alternate,l!==null&&iv(l)===null&&(C=g),g=g.sibling;g=C,g===null?(C=u.child,u.child=null):(C=g.sibling,g.sibling=null),xC(u,!1,C,g,A,b);break;case"backwards":case"unstable_legacy-backwards":for(g=null,C=u.child,u.child=null;C!==null;){if(l=C.alternate,l!==null&&iv(l)===null){u.child=C;break}l=C.sibling,C.sibling=g,g=C,C=l}xC(u,!0,g,null,A,b);break;case"together":xC(u,!1,null,null,void 0,b);break;default:u.memoizedState=null}return u.child}function Ai(l,u,g){if(l!==null&&(u.dependencies=l.dependencies),Nl|=u.lanes,(g&u.childLanes)===0)if(l!==null){if(Yu(l,u,g,!1),(g&u.childLanes)===0)return null}else return null;if(l!==null&&u.child!==l.child)throw Error(a(153));if(u.child!==null){for(l=u.child,g=xi(l,l.pendingProps),u.child=g,g.return=u;l.sibling!==null;)l=l.sibling,g=g.sibling=xi(l,l.pendingProps),g.return=u;g.sibling=null}return u.child}function $C(l,u){return(l.lanes&u)!==0?!0:(l=l.dependencies,!!(l!==null&&Jy(l)))}function Xee(l,u,g){switch(u.tag){case 3:we(u,u.stateNode.containerInfo),Cl(u,In,l.memoizedState.cache),ed();break;case 27:case 5:ye(u);break;case 4:we(u,u.stateNode.containerInfo);break;case 10:Cl(u,u.type,u.memoizedProps.value);break;case 31:if(u.memoizedState!==null)return u.flags|=128,Kk(u),null;break;case 13:var b=u.memoizedState;if(b!==null)return b.dehydrated!==null?(Rl(u),u.flags|=128,null):(g&u.child.childLanes)!==0?BM(l,u,g):(Rl(u),l=Ai(l,u,g),l!==null?l.sibling:null);Rl(u);break;case 19:var C=(l.flags&128)!==0;if(b=(g&u.childLanes)!==0,b||(Yu(l,u,g,!1),b=(g&u.childLanes)!==0),C){if(b)return zM(l,u,g);u.flags|=128}if(C=u.memoizedState,C!==null&&(C.rendering=null,C.tail=null,C.lastEffect=null),Q(Pn,Pn.current),b)break;return null;case 22:return u.lanes=0,MM(l,u,g,u.pendingProps);case 24:Cl(u,In,l.memoizedState.cache)}return Ai(l,u,g)}function qM(l,u,g){if(l!==null)if(l.memoizedProps!==u.pendingProps)Ln=!0;else{if(!$C(l,g)&&(u.flags&128)===0)return Ln=!1,Xee(l,u,g);Ln=(l.flags&131072)!==0}else Ln=!1,kt&&(u.flags&1048576)!==0&&$D(u,yf,u.index);switch(u.lanes=0,u.tag){case 16:e:{var b=u.pendingProps;if(l=od(u.elementType),u.type=l,typeof l=="function")Ak(l)?(b=ld(l,b),u.tag=1,u=LM(null,u,l,b,g)):(u.tag=0,u=fC(null,u,l,b,g));else{if(l!=null){var C=l.$$typeof;if(C===R){u.tag=11,u=jM(null,u,l,b,g);break e}else if(C===j){u.tag=14,u=NM(null,u,l,b,g);break e}}throw u=V(l)||l,Error(a(306,u,""))}}return u;case 0:return fC(l,u,u.type,u.pendingProps,g);case 1:return b=u.type,C=ld(b,u.pendingProps),LM(l,u,b,C,g);case 3:e:{if(we(u,u.stateNode.containerInfo),l===null)throw Error(a(387));b=u.pendingProps;var A=u.memoizedState;C=A.element,Fk(l,u),Sf(u,b,null,g);var D=u.memoizedState;if(b=D.cache,Cl(u,In,b),b!==A.cache&&Ek(u,[In],g,!0),Cf(),b=D.element,A.isDehydrated)if(A={element:b,isDehydrated:!1,cache:D.cache},u.updateQueue.baseState=A,u.memoizedState=A,u.flags&256){u=UM(l,u,b,g);break e}else if(b!==C){C=fs(Error(a(424)),u),vf(C),u=UM(l,u,b,g);break e}else{switch(l=u.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(dn=bs(l.firstChild),va=u,kt=!0,wl=null,ys=!0,g=MD(u,null,b,g),u.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling}else{if(ed(),b===C){u=Ai(l,u,g);break e}xa(l,u,b,g)}u=u.child}return u;case 26:return vv(l,u),l===null?(g=eI(u.type,null,u.pendingProps,null))?u.memoizedState=g:kt||(g=u.type,l=u.pendingProps,b=Ev(pe.current).createElement(g),b[ya]=u,b[uo]=l,$a(b,g,l),aa(b),u.stateNode=b):u.memoizedState=eI(u.type,l.memoizedProps,u.pendingProps,l.memoizedState),null;case 27:return ye(u),l===null&&kt&&(b=u.stateNode=XE(u.type,u.pendingProps,pe.current),va=u,ys=!0,C=dn,Ol(u.type)?(e1=C,dn=bs(b.firstChild)):dn=C),xa(l,u,u.pen
vendor: 4,633 bytes, line 49
49dingProps.children,g),vv(l,u),l===null&&(u.flags|=4194304),u.child;case 5:return l===null&&kt&&((C=b=dn)&&(b=Tte(b,u.type,u.pendingProps,ys),b!==null?(u.stateNode=b,va=u,dn=bs(b.firstChild),ys=!1,C=!0):C=!1),C||kl(u)),ye(u),C=u.type,A=u.pendingProps,D=l!==null?l.memoizedProps:null,b=A.children,YC(C,A)?b=null:D!==null&&YC(C,D)&&(u.flags|=32),u.memoizedState!==null&&(C=Wk(l,u,zee,null,null,g),Vf._currentValue=C),vv(l,u),xa(l,u,b,g),u.child;case 6:return l===null&&kt&&((l=g=dn)&&(g=Rte(g,u.pendingProps,ys),g!==null?(u.stateNode=g,va=u,dn=null,l=!0):l=!1),l||kl(u)),null;case 13:return BM(l,u,g);case 4:return we(u,u.stateNode.containerInfo),b=u.pendingProps,l===null?u.child=rd(u,null,b,g):xa(l,u,b,g),u.child;case 11:return jM(l,u,u.type,u.pendingProps,g);case 7:return xa(l,u,u.pendingProps,g),u.child;case 8:return xa(l,u,u.pendingProps.children,g),u.child;case 12:return xa(l,u,u.pendingProps.children,g),u.child;case 10:return b=u.pendingProps,Cl(u,u.type,b.value),xa(l,u,b.children,g),u.child;case 9:return C=u.type._context,b=u.pendingProps.children,nd(u),C=ba(C),b=b(C),u.flags|=1,xa(l,u,b,g),u.child;case 14:return NM(l,u,u.type,u.pendingProps,g);case 15:return DM(l,u,u.type,u.pendingProps,g);case 19:return zM(l,u,g);case 31:return Qee(l,u,g);case 22:return MM(l,u,g,u.pendingProps);case 24:return nd(u),b=ba(In),l===null?(C=Lk(),C===null&&(C=en,A=Ik(),C.pooledCache=A,A.refCount++,A!==null&&(C.pooledCacheLanes|=g),C=A),u.memoizedState={parent:b,cache:C},Bk(u),Cl(u,In,C)):((l.lanes&g)!==0&&(Fk(l,u),Sf(u,null,null,g),Cf()),C=l.memoizedState,A=u.memoizedState,C.parent!==b?(C={parent:b,cache:b},u.memoizedState=C,u.lanes===0&&(u.memoizedState=u.updateQueue.baseState=C),Cl(u,In,b)):(b=A.cache,Cl(u,In,b),b!==C.cache&&Ek(u,[In],g,!0))),xa(l,u,u.pendingProps.children,g),u.child;case 29:throw u.pendingProps}throw Error(a(156,u.tag))}function Ti(l){l.flags|=4}function wC(l,u,g,b,C){if((u=(l.mode&32)!==0)&&(u=!1),u){if(l.flags|=16777216,(C&335544128)===C)if(l.stateNode.complete)l.flags|=8192;else if(hE())l.flags|=8192;else throw sd=av,Uk}else l.flags&=-16777217}function HM(l,u){if(u.type!=="stylesheet"||(u.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!sI(u))if(hE())l.flags|=8192;else throw sd=av,Uk}function xv(l,u){u!==null&&(l.flags|=4),l.flags&16384&&(u=l.tag!==22?Jt():536870912,l.lanes|=u,im|=u)}function jf(l,u){if(!kt)switch(l.tailMode){case"hidden":u=l.tail;for(var g=null;u!==null;)u.alternate!==null&&(g=u),u=u.sibling;g===null?l.tail=null:g.sibling=null;break;case"collapsed":g=l.tail;for(var b=null;g!==null;)g.alternate!==null&&(b=g),g=g.sibling;b===null?u||l.tail===null?l.tail=null:l.tail.sibling=null:b.sibling=null}}function un(l){var u=l.alternate!==null&&l.alternate.child===l.child,g=0,b=0;if(u)for(var C=l.child;C!==null;)g|=C.lanes|C.childLanes,b|=C.subtreeFlags&65011712,b|=C.flags&65011712,C.return=l,C=C.sibling;else for(C=l.child;C!==null;)g|=C.lanes|C.childLanes,b|=C.subtreeFlags,b|=C.flags,C.return=l,C=C.sibling;return l.subtreeFlags|=b,l.childLanes=g,u}function Zee(l,u,g){var b=u.pendingProps;switch(_k(u),u.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return un(u),null;case 1:return un(u),null;case 3:return g=u.stateNode,b=null,l!==null&&(b=l.memoizedState.cache),u.memoizedState.cache!==b&&(u.flags|=2048),ki(In),me(),g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),(l===null||l.child===null)&&(Wu(u)?Ti(u):l===null||l.memoizedState.isDehydrated&&(u.flags&256)===0||(u.flags|=1024,Nk())),un(u),null;case 26:var C=u.type,A=u.memoizedState;return l===null?(Ti(u),A!==null?(un(u),HM(u,A)):(un(u),wC(u,C,null,b,g))):A?A!==l.memoizedState?(Ti(u),un(u),HM(u,A)):(un(u),u.flags&=-16777217):(l=l.memoizedProps,l!==b&&Ti(u),un(u),wC(u,C,l,b,g)),null;case 27:if(_e(u),g=pe.current,C=u.type,l!==null&&u.stateNode!=null)l.memoizedProps!==b&&Ti(u);else{if(!b){if(u.stateNode===null)throw Error(a(166));return un(u),null}l=de.current,Wu(u)?kD(u):(l=XE(C,b,g),u.stateNode=l,Ti(u))}return un(u),null;case 5:if(_e(u),C=u.type,l!==null&&u.stateNode!=null)l.memoizedProps!==b&&Ti(u);else{if(!b){if(u.stateNode===null)throw Error(a(166));return un(u),null}if(A=de.current,Wu(u))kD(u);else{var D=Ev(pe.current);switch(A){case 1:A=D.createElementNS("http://www.w3.org/2000/svg",C);break;case 2:A=D.createElementNS("http://www.w3.org/1998/Math/MathML",C);break;default:switch(C){case"svg":A=D.createElementNS("http://www.w3.org/2000/svg",C);break;case"math":A=D.createElementNS("http://www.w3.org/1998/Math/MathML",C);break;case"script":A=D.createElement("div"),A.innerHTML="<script><\/script>",A=A.removeChild(A.firstChild);break;
vendor: 25,095 bytes, line 49
49case"select":A=typeof b.is=="string"?D.createElement("select",{is:b.is}):D.createElement("select"),b.multiple?A.multiple=!0:b.size&&(A.size=b.size);break;default:A=typeof b.is=="string"?D.createElement(C,{is:b.is}):D.createElement(C)}}A[ya]=u,A[uo]=b;e:for(D=u.child;D!==null;){if(D.tag===5||D.tag===6)A.appendChild(D.stateNode);else if(D.tag!==4&&D.tag!==27&&D.child!==null){D.child.return=D,D=D.child;continue}if(D===u)break e;for(;D.sibling===null;){if(D.return===null||D.return===u)break e;D=D.return}D.sibling.return=D.return,D=D.sibling}u.stateNode=A;e:switch($a(A,C,b),C){case"button":case"input":case"select":case"textarea":b=!!b.autoFocus;break e;case"img":b=!0;break e;default:b=!1}b&&Ti(u)}}return un(u),wC(u,u.type,l===null?null:l.memoizedProps,u.pendingProps,g),null;case 6:if(l&&u.stateNode!=null)l.memoizedProps!==b&&Ti(u);else{if(typeof b!="string"&&u.stateNode===null)throw Error(a(166));if(l=pe.current,Wu(u)){if(l=u.stateNode,g=u.memoizedProps,b=null,C=va,C!==null)switch(C.tag){case 27:case 5:b=C.memoizedProps}l[ya]=u,l=!!(l.nodeValue===g||b!==null&&b.suppressHydrationWarning===!0||BE(l.nodeValue,g)),l||kl(u,!0)}else l=Ev(l).createTextNode(b),l[ya]=u,u.stateNode=l}return un(u),null;case 31:if(g=u.memoizedState,l===null||l.memoizedState!==null){if(b=Wu(u),g!==null){if(l===null){if(!b)throw Error(a(318));if(l=u.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(a(557));l[ya]=u}else ed(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;un(u),l=!1}else g=Nk(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=g),l=!0;if(!l)return u.flags&256?(Io(u),u):(Io(u),null);if((u.flags&128)!==0)throw Error(a(558))}return un(u),null;case 13:if(b=u.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(C=Wu(u),b!==null&&b.dehydrated!==null){if(l===null){if(!C)throw Error(a(318));if(C=u.memoizedState,C=C!==null?C.dehydrated:null,!C)throw Error(a(317));C[ya]=u}else ed(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;un(u),C=!1}else C=Nk(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=C),C=!0;if(!C)return u.flags&256?(Io(u),u):(Io(u),null)}return Io(u),(u.flags&128)!==0?(u.lanes=g,u):(g=b!==null,l=l!==null&&l.memoizedState!==null,g&&(b=u.child,C=null,b.alternate!==null&&b.alternate.memoizedState!==null&&b.alternate.memoizedState.cachePool!==null&&(C=b.alternate.memoizedState.cachePool.pool),A=null,b.memoizedState!==null&&b.memoizedState.cachePool!==null&&(A=b.memoizedState.cachePool.pool),A!==C&&(b.flags|=2048)),g!==l&&g&&(u.child.flags|=8192),xv(u,u.updateQueue),un(u),null);case 4:return me(),l===null&&HC(u.stateNode.containerInfo),un(u),null;case 10:return ki(u.type),un(u),null;case 19:if(G(Pn),b=u.memoizedState,b===null)return un(u),null;if(C=(u.flags&128)!==0,A=b.rendering,A===null)if(C)jf(b,!1);else{if(kn!==0||l!==null&&(l.flags&128)!==0)for(l=u.child;l!==null;){if(A=iv(l),A!==null){for(u.flags|=128,jf(b,!1),l=A.updateQueue,u.updateQueue=l,xv(u,l),u.subtreeFlags=0,l=g,g=u.child;g!==null;)vD(g,l),g=g.sibling;return Q(Pn,Pn.current&1|2),kt&&$i(u,b.treeForkCount),u.child}l=l.sibling}b.tail!==null&&rt()>Sv&&(u.flags|=128,C=!0,jf(b,!1),u.lanes=4194304)}else{if(!C)if(l=iv(A),l!==null){if(u.flags|=128,C=!0,l=l.updateQueue,u.updateQueue=l,xv(u,l),jf(b,!0),b.tail===null&&b.tailMode==="hidden"&&!A.alternate&&!kt)return un(u),null}else 2*rt()-b.renderingStartTime>Sv&&g!==536870912&&(u.flags|=128,C=!0,jf(b,!1),u.lanes=4194304);b.isBackwards?(A.sibling=u.child,u.child=A):(l=b.last,l!==null?l.sibling=A:u.child=A,b.last=A)}return b.tail!==null?(l=b.tail,b.rendering=l,b.tail=l.sibling,b.renderingStartTime=rt(),l.sibling=null,g=Pn.current,Q(Pn,C?g&1|2:g&1),kt&&$i(u,b.treeForkCount),l):(un(u),null);case 22:case 23:return Io(u),Vk(),b=u.memoizedState!==null,l!==null?l.memoizedState!==null!==b&&(u.flags|=8192):b&&(u.flags|=8192),b?(g&536870912)!==0&&(u.flags&128)===0&&(un(u),u.subtreeFlags&6&&(u.flags|=8192)):un(u),g=u.updateQueue,g!==null&&xv(u,g.retryQueue),g=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(g=l.memoizedState.cachePool.pool),b=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(b=u.memoizedState.cachePool.pool),b!==g&&(u.flags|=2048),l!==null&&G(ad),null;case 24:return g=null,l!==null&&(g=l.memoizedState.cache),u.memoizedState.cache!==g&&(u.flags|=2048),ki(In),un(u),null;case 25:return null;case 30:return null}throw Error(a(156,u.tag))}function Jee(l,u){switch(_k(u),u.tag){case 1:return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 3:return ki(In),me(),l=u.flags,(l&65536)!==0&&(l&128)===0?(u.flags=l&-65537|128,u):null;case 26:case 27:case 5:return _e(u),null;case 31:if(u.memoizedState!==null){if(Io(u),u.alternate===null)throw Error(a(340));ed()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 13:if(Io(u),l=u.memoizedState,l!==null&&l.dehydrated!==null){if(u.alternate===null)throw Error(a(340));ed()}return l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 19:return G(Pn),null;case 4:return me(),null;case 10:return ki(u.type),null;case 22:case 23:return Io(u),Vk(),l!==null&&G(ad),l=u.flags,l&65536?(u.flags=l&-65537|128,u):null;case 24:return ki(In),null;case 25:return null;default:return null}}function VM(l,u){switch(_k(u),u.tag){case 3:ki(In),me();break;case 26:case 27:case 5:_e(u);break;case 4:me();break;case 31:u.memoizedState!==null&&Io(u);break;case 13:Io(u);break;case 19:G(Pn);break;case 10:ki(u.type);break;case 22:case 23:Io(u),Vk(),l!==null&&G(ad);break;case 24:ki(In)}}function Nf(l,u){try{var g=u.updateQueue,b=g!==null?g.lastEffect:null;if(b!==null){var C=b.next;g=C;do{if((g.tag&l)===l){b=void 0;var A=g.create,D=g.inst;b=A(),D.destroy=b}g=g.next}while(g!==C)}}catch(U){Ft(u,u.return,U)}}function _l(l,u,g){try{var b=u.updateQueue,C=b!==null?b.lastEffect:null;if(C!==null){var A=C.next;b=A;do{if((b.tag&l)===l){var D=b.inst,U=D.destroy;if(U!==void 0){D.destroy=void 0,C=u;var Z=g,le=U;try{le()}catch(be){Ft(C,Z,be)}}}b=b.next}while(b!==A)}}catch(be){Ft(u,u.return,be)}}function KM(l){var u=l.updateQueue;if(u!==null){var g=l.stateNode;try{ID(u,g)}catch(b){Ft(l,l.return,b)}}}function GM(l,u,g){g.props=ld(l.type,l.memoizedProps),g.state=l.memoizedState;try{g.componentWillUnmount()}catch(b){Ft(l,u,b)}}function Df(l,u){try{var g=l.ref;if(g!==null){switch(l.tag){case 26:case 27:case 5:var b=l.stateNode;break;case 30:b=l.stateNode;break;default:b=l.stateNode}typeof g=="function"?l.refCleanup=g(b):g.current=b}}catch(C){Ft(l,u,C)}}function Nr(l,u){var g=l.ref,b=l.refCleanup;if(g!==null)if(typeof b=="function")try{b()}catch(C){Ft(l,u,C)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof g=="function")try{g(null)}catch(C){Ft(l,u,C)}else g.current=null}function WM(l){var u=l.type,g=l.memoizedProps,b=l.stateNode;try{e:switch(u){case"button":case"input":case"select":case"textarea":g.autoFocus&&b.focus();break e;case"img":g.src?b.src=g.src:g.srcSet&&(b.srcset=g.srcSet)}}catch(C){Ft(l,l.return,C)}}function kC(l,u,g){try{var b=l.stateNode;$te(b,l.type,g,u),b[uo]=u}catch(C){Ft(l,l.return,C)}}function YM(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&Ol(l.type)||l.tag===4}function CC(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||YM(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&Ol(l.type)||l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function SC(l,u,g){var b=l.tag;if(b===5||b===6)l=l.stateNode,u?(g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g).insertBefore(l,u):(u=g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g,u.appendChild(l),g=g._reactRootContainer,g!=null||u.onclick!==null||(u.onclick=vi));else if(b!==4&&(b===27&&Ol(l.type)&&(g=l.stateNode,u=null),l=l.child,l!==null))for(SC(l,u,g),l=l.sibling;l!==null;)SC(l,u,g),l=l.sibling}function $v(l,u,g){var b=l.tag;if(b===5||b===6)l=l.stateNode,u?g.insertBefore(l,u):g.appendChild(l);else if(b!==4&&(b===27&&Ol(l.type)&&(g=l.stateNode),l=l.child,l!==null))for($v(l,u,g),l=l.sibling;l!==null;)$v(l,u,g),l=l.sibling}function QM(l){var u=l.stateNode,g=l.memoizedProps;try{for(var b=l.type,C=u.attributes;C.length;)u.removeAttributeNode(C[0]);$a(u,b,g),u[ya]=l,u[uo]=g}catch(A){Ft(l,l.return,A)}}var Ri=!1,Un=!1,AC=!1,XM=typeof WeakSet=="function"?WeakSet:Set,oa=null;function ete(l,u){if(l=l.containerInfo,GC=zv,l=cD(l),bk(l)){if("selectionStart"in l)var g={start:l.selectionStart,end:l.selectionEnd};else e:{g=(g=l.ownerDocument)&&g.defaultView||window;var b=g.getSelection&&g.getSelection();if(b&&b.rangeCount!==0){g=b.anchorNode;var C=b.anchorOffset,A=b.focusNode;b=b.focusOffset;try{g.nodeType,A.nodeType}catch{g=null;break e}var D=0,U=-1,Z=-1,le=0,be=0,$e=l,ue=null;t:for(;;){for(var he;$e!==g||C!==0&&$e.nodeType!==3||(U=D+C),$e!==A||b!==0&&$e.nodeType!==3||(Z=D+b),$e.nodeType===3&&(D+=$e.nodeValue.length),(he=$e.firstChild)!==null;)ue=$e,$e=he;for(;;){if($e===l)break t;if(ue===g&&++le===C&&(U=D),ue===A&&++be===b&&(Z=D),(he=$e.nextSibling)!==null)break;$e=ue,ue=$e.parentNode}$e=he}g=U===-1||Z===-1?null:{start:U,end:Z}}else g=null}g=g||{start:0,end:0}}else g=null;for(WC={focusedElem:l,selectionRange:g},zv=!1,oa=u;oa!==null;)if(u=oa,l=u.child,(u.subtreeFlags&1028)!==0&&l!==null)l.return=u,oa=l;else for(;oa!==null;){switch(u=oa,A=u.alternate,l=u.flags,u.tag){case 0:if((l&4)!==0&&(l=u.updateQueue,l=l!==null?l.events:null,l!==null))for(g=0;g<l.length;g++)C=l[g],C.ref.impl=C.nextImpl;break;case 11:case 15:break;case 1:if((l&1024)!==0&&A!==null){l=void 0,g=u,C=A.memoizedProps,A=A.memoizedState,b=g.stateNode;try{var Ve=ld(g.type,C);l=b.getSnapshotBeforeUpdate(Ve,A),b.__reactInternalSnapshotBeforeUpdate=l}catch(et){Ft(g,g.return,et)}}break;case 3:if((l&1024)!==0){if(l=u.stateNode.containerInfo,g=l.nodeType,g===9)XC(l);else if(g===1)switch(l.nodeName){case"HEAD":case"HTML":case"BODY":XC(l);break;default:l.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&1024)!==0)throw Error(a(163))}if(l=u.sibling,l!==null){l.return=u.return,oa=l;break}oa=u.return}}function ZM(l,u,g){var b=g.flags;switch(g.tag){case 0:case 11:case 15:_i(l,g),b&4&&Nf(5,g);break;case 1:if(_i(l,g),b&4)if(l=g.stateNode,u===null)try{l.componentDidMount()}catch(D){Ft(g,g.return,D)}else{var C=ld(g.type,u.memoizedProps);u=u.memoizedState;try{l.componentDidUpdate(C,u,l.__reactInternalSnapshotBeforeUpdate)}catch(D){Ft(g,g.return,D)}}b&64&&KM(g),b&512&&Df(g,g.return);break;case 3:if(_i(l,g),b&64&&(l=g.updateQueue,l!==null)){if(u=null,g.child!==null)switch(g.child.tag){case 27:case 5:u=g.child.stateNode;break;case 1:u=g.child.stateNode}try{ID(l,u)}catch(D){Ft(g,g.return,D)}}break;case 27:u===null&&b&4&&QM(g);case 26:case 5:_i(l,g),u===null&&b&4&&WM(g),b&512&&Df(g,g.return);break;case 12:_i(l,g);break;case 31:_i(l,g),b&4&&tE(l,g);break;case 13:_i(l,g),b&4&&nE(l,g),b&64&&(l=g.memoizedState,l!==null&&(l=l.dehydrated,l!==null&&(g=cte.bind(null,g),Pte(l,g))));break;case 22:if(b=g.memoizedState!==null||Ri,!b){u=u!==null&&u.memoizedState!==null||Un,C=Ri;var A=Un;Ri=b,(Un=u)&&!A?ji(l,g,(g.subtreeFlags&8772)!==0):_i(l,g),Ri=C,Un=A}break;case 30:break;default:_i(l,g)}}function JM(l){var u=l.alternate;u!==null&&(l.alternate=null,JM(u)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(u=l.stateNode,u!==null&&nk(u)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}var hn=null,po=!1;function Pi(l,u,g){for(g=g.child;g!==null;)eE(l,u,g),g=g.sibling}function eE(l,u,g){if(Mn&&typeof Mn.onCommitFiberUnmount=="function")try{Mn.onCommitFiberUnmount(hi,g)}catch{}switch(g.tag){case 26:Un||Nr(g,u),Pi(l,u,g),g.memoizedState?g.memoizedState.count--:g.stateNode&&(g=g.stateNode,g.parentNode.removeChild(g));break;case 27:Un||Nr(g,u);var b=hn,C=po;Ol(g.type)&&(hn=g.stateNode,po=!1),Pi(l,u,g),zf(g.stateNode),hn=b,po=C;break;case 5:Un||Nr(g,u);case 6:if(b=hn,C=po,hn=null,Pi(l,u,g),hn=b,po=C,hn!==null)if(po)try{(hn.nodeType===9?hn.body:hn.nodeName==="HTML"?hn.ownerDocument.body:hn).removeChild(g.stateNode)}catch(A){Ft(g,u,A)}else try{hn.removeChild(g.stateNode)}catch(A){Ft(g,u,A)}break;case 18:hn!==null&&(po?(l=hn,KE(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,g.stateNode),gm(l)):KE(hn,g.stateNode));break;case 4:b=hn,C=po,hn=g.stateNode.containerInfo,po=!0,Pi(l,u,g),hn=b,po=C;break;case 0:case 11:case 14:case 15:_l(2,g,u),Un||_l(4,g,u),Pi(l,u,g);break;case 1:Un||(Nr(g,u),b=g.stateNode,typeof b.componentWillUnmount=="function"&&GM(g,u,b)),Pi(l,u,g);break;case 21:Pi(l,u,g);break;case 22:Un=(b=Un)||g.memoizedState!==null,Pi(l,u,g),Un=b;break;default:Pi(l,u,g)}}function tE(l,u){if(u.memoizedState===null&&(l=u.alternate,l!==null&&(l=l.memoizedState,l!==null))){l=l.dehydrated;try{gm(l)}catch(g){Ft(u,u.return,g)}}}function nE(l,u){if(u.memoizedState===null&&(l=u.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{gm(l)}catch(g){Ft(u,u.return,g)}}function tte(l){switch(l.tag){case 31:case 13:case 19:var u=l.stateNode;return u===null&&(u=l.stateNode=new XM),u;case 22:return l=l.stateNode,u=l._retryCache,u===null&&(u=l._retryCache=new XM),u;default:throw Error(a(435,l.tag))}}function wv(l,u){var g=tte(l);u.forEach(function(b){if(!g.has(b)){g.add(b);var C=dte.bind(null,l,b);b.then(C,C)}})}function fo(l,u){var g=u.deletions;if(g!==null)for(var b=0;b<g.length;b++){var C=g[b],A=l,D=u,U=D;e:for(;U!==null;){switch(U.tag){case 27:if(Ol(U.type)){hn=U.stateNode,po=!1;break e}break;case 5:hn=U.stateNode,po=!1;break e;case 3:case 4:hn=U.stateNode.containerInfo,po=!0;break e}U=U.return}if(hn===null)throw Error(a(160));eE(A,D,C),hn=null,po=!1,A=C.alternate,A!==null&&(A.return=null),C.return=null}if(u.subtreeFlags&13886)for(u=u.child;u!==null;)aE(u,l),u=u.sibling}var Gs=null;function aE(l,u){var g=l.alternate,b=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:fo(u,l),go(l),b&4&&(_l(3,l,l.return),Nf(3,l),_l(5,l,l.return));break;case 1:fo(u,l),go(l),b&512&&(Un||g===null||Nr(g,g.return)),b&64&&Ri&&(l=l.updateQueue,l!==null&&(b=l.callbacks,b!==null&&(g=l.shared.hiddenCallbacks,l.shared.hiddenCallbacks=g===null?b:g.concat(b))));break;case 26:var C=Gs;if(fo(u,l),go(l),b&512&&(Un||g===null||Nr(g,g.return)),b&4){var A=g!==null?g.memoizedState:null;if(b=l.memoizedState,g===null)if(b===null)if(l.stateNode===null){e:{b=l.type,g=l.memoizedProps,C=C.ownerDocument||C;t:switch(b){case"title":A=C.getElementsByTagName("title")[0],(!A||A[sf]||A[ya]||A.namespaceURI==="http://www.w3.org/2000/svg"||A.hasAttribute("itemprop"))&&(A=C.createElement(b),C.head.insertBefore(A,C.querySelector("head > title"))),$a(A,b,g),A[ya]=l,aa(A),b=A;break e;case"link":var D=aI("link","href",C).get(b+(g.href||""));if(D){for(var U=0;U<D.length;U++)if(A=D[U],A.getAttribute("href")===(g.href==null||g.href===""?null:g.href)&&A.getAttribute("rel")===(g.rel==null?null:g.rel)&&A.getAttribute("title")===(g.title==null?null:g.title)&&A.getAttribute("crossorigin")===(g.crossOrigin==null?null:g.crossOrigin)){D.splice(U,1);break t}}A=C.createElement(b),$a(A,b,g),C.head.appendChild(A);break;case"meta":if(D=aI("meta","content",C).get(b+(g.content||""))){for(U=0;U<D.length;U++)if(A=D[U],A.getAttribute("content")===(g.content==null?null:""+g.content)&&A.getAttribute("name")===(g.name==null?null:g.name)&&A.getAttribute("property")===(g.property==null?null:g.property)&&A.getAttribute("http-equiv")===(g.httpEquiv==null?null:g.httpEquiv)&&A.getAttribute("charset")===(g.charSet==null?null:g.charSet)){D.splice(U,1);break t}}A=C.createElement(b),$a(A,b,g),C.head.appendChild(A);break;default:throw Error(a(468,b))}A[ya]=l,aa(A),b=A}l.stateNode=b}else oI(C,l.type,l.stateNode);else l.stateNode=nI(C,b,l.memoizedProps);else A!==b?(A===null?g.stateNode!==null&&(g=g.stateNode,g.parentNode.removeChild(g)):A.count--,b===null?oI(C,l.type,l.stateNode):nI(C,b,l.memoizedProps)):b===null&&l.stateNode!==null&&kC(l,l.memoizedProps,g.memoizedProps)}break;case 27:fo(u,l),go(l),b&512&&(Un||g===null||Nr(g,g.return)),g!==null&&b&4&&kC(l,l.memoizedProps,g.memoizedProps);break;case 5:if(fo(u,l),go(l),b&512&&(Un||g===null||Nr(g,g.return)),l.flags&32){C=l.stateNode;try{Lu(C,"")}catch(Ve){Ft(l,l.return,Ve)}}b&4&&l.stateNode!=null&&(C=l.memoizedProps,kC(l,C,g!==null?g.memoizedProps:C)),b&1024&&(AC=!0);break;case 6:if(fo(u,l),go(l),b&4){if(l.stateNode===null)throw Error(a(162));b=l.memoizedProps,g=l.stateNode;try{g.nodeValue=b}catch(Ve){Ft(l,l.return,Ve)}}break;case 3:if(Lv=null,C=Gs,Gs=Iv(u.containerInfo),fo(u,l),Gs=C,go(l),b&4&&g!==null&&g.memoizedState.isDehydrated)try{gm(u.containerInfo)}catch(Ve){Ft(l,l.return,Ve)}AC&&(AC=!1,oE(l));break;case 4:b=Gs,Gs=Iv(l.stateNode.containerInfo),fo(u,l),go(l),Gs=b;break;case 12:fo(u,l),go(l);break;case 31:fo(u,l),go(l),b&4&&(b=l.updateQueue,b!==null&&(l.updateQueue=null,wv(l,b)));break;case 13:fo(u,l),go(l),l.child.flags&8192&&l.memoizedState!==null!=(g!==null&&g.memoizedState!==null)&&(Cv=rt()),b&4&&(b=l.updateQueue,b!==null&&(l.updateQueue=null,wv(l,b)));break;case 22:C=l.memoizedState!==null;var Z=g!==null&&g.memoizedState!==null,le=Ri,be=Un;if(Ri=le||C,Un=be||Z,fo(u,l),Un=be,Ri=le,go(l),b&8192)e:for(u=l.stateNode,u._visibility=C?u._visibility&-2:u._visibility|1,C&&(g===null||Z||Ri||Un||cd(l)),g=null,u=l;;){if(u.tag===5||u.tag===26){if(g===null){Z=g=u;try{if(A=Z.stateNode,C)D=A.style,typeof D.setProperty=="function"?D.setProperty("display","none","important"):D.display="none";else{U=Z.stateNode;var $e=Z.memoizedProps.style,ue=$e!=null&&$e.hasOwnProperty("display")?$e.display:null;U.style.display=ue==null||typeof ue=="boolean"?"":(""+ue).trim()}}catch(Ve){Ft(Z,Z.return,Ve)}}}else if(u.tag===6){if(g===null){Z=u;try{Z.stateNode.nodeValue=C?"":Z.memoizedProps}catch(Ve){Ft(Z,Z.return,Ve)}}}else if(u.tag===18){if(g===null){Z=u;try{var he=Z.stateNode;C?GE(he,!0):GE(Z.stateNode,!1)}catch(Ve){Ft(Z,Z.return,Ve)}}}else if((u.tag!==22&&u.tag!==23||u.memoizedState===null||u===l)&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break e;for(;u.sibling===null;){if(u.return===null||u.return===l)break e;g===u&&(g=null),u=u.return}g===u&&(g=null),u.sibling.return=u.return,u=u.sibling}b&4&&(b=l.updateQueue,b!==null&&(g=b.retryQueue,g!==null&&(b.retryQueue=null,wv(l,g))));break;case 19:fo(u,l),go(l),b&4&&(b=l.updateQueue,b!==null&&(l.updateQueue=null,wv(l,b)));break;case 30:break;case 21:break;default:fo(u,l),go(l)}}function go(l){var u=l.flags;if(u&2){try{for(var g,b=l.return;b!==null;){if(YM(b)){g=b;break}b=b.return}if(g==null)throw Error(a(160));switch(g.tag){case 27:var C=g.stateNode,A=CC(l);$v(l,A,C);break;case 5:var D=g.stateNode;g.flags&32&&(Lu(D,""),g.flags&=-33);var U=CC(l);$v(l,U,D);break;case 3:case 4:var Z=g.stateNode.containerInfo,le=CC(l);SC(l,le,Z);break;default:throw Error(a(161))}}catch(be){Ft(l,l.return,be)}l.flags&=-3}u&4096&&(l.flags&=-4097)}function oE(l){if(l.subtreeFlags&1024)for(l=l.child;l!==null;){var u=l;oE(u),u.tag===5&&u.flags&1024&&u.stateNode.reset(),l=l.sibling}}function _i(l,u){if(u.subtreeFlags&8772)for(u=u.child;u!==null;)ZM(l,u.alternate,u),u=u.sibling}function cd(l){for(l=l.child;l!==null;){var u=l;switch(u.tag){case 0:case 11:case 14:case 15:_l(4,u,u.return),cd(u);break;case 1:Nr(u,u.return);var g=u.stateNode;typeof g.componentWillUnmount=="function"&&GM(u,u.return,g),cd(u);break;case 27:zf(u.stateNode);case 26:case 5:Nr(u,u.return),cd(u);break;case 22:u.memoizedState===null&&cd(u);break;case 30:cd(u);break;default:cd(u)}l=l.sibling}}function ji(l,u,g){for(g=g&&(u.subtreeFlags&8772)!==0,u=u.child;u!==null;){var b=u.alternate,C=l,A=u,D=A.flags;switch(A.tag){case 0:case 11:case 15:ji(C,A,g),Nf(4,A);break;case 1:if(ji(C,A,g),b=A,C=b.stateNode,typeof C.componentDidMount=="function")try{C.componentDidMount()}catch(le){Ft(b,b.return,le)}if(b=A,C=b.updateQueue,C!==null){var U=b.stateNode;try{var Z=C.shared.hiddenCallbacks;if(Z!==null)for(C.shared.hiddenCallbacks=null,C=0;C<Z.length;C++)ED(Z[C],U)}catch(le){Ft(b,b.return,le)}}g&&D&64&&KM(A),Df(A,A.return);break;case 27:QM(A);case 26:case 5:ji(C,A,g),g&&b===null&&D&4&&WM(A),Df(A,A.return);break;case 12:ji(C,A,g);break;case 31:ji(C,A,g),g&&D&4&&tE(C,A);break;case 13:ji(C,A,g),g&&D&4&&nE(C,A);break;case 22:A.memoizedState===null&&ji(C,A,g),Df(A,A.return);break;case 30:break;default:ji(C,A,g)}u=u.sibling}}function TC(l,u){var g=null;l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(g=l.memoizedState.cachePool.pool),l=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(l=u.memoizedState.cachePool.pool),l!==g&&(l!=null&&l.refCount++,g!=null&&bf(g))}function RC(l,u){l=null,u.alternate!==null&&(l=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==l&&(u.refCount++,l!=null&&bf(l))}function Ws(l,u,g,b){if(u.subtreeFlags&10256)for(u=u.child;u!==null;)sE(l,u,g,b),u=u.sibling}function sE(l,u,g,b){var C=u.flags;switch(u.tag){case 0:case 11:case 15:Ws(l,u,g,b),C&2048&&Nf(9,u);break;case 1:Ws(l,u,g,b);break;case 3:Ws(l,u,g,b),C&2048&&(l=null,u.alternate!==null&&(l=u.alternate.memoizedState.cache),u=u.memoizedState.cache,u!==l&&(u.refCount++,l!=null&&bf(l)));break;case 12:if(C&2048){Ws(l,u,g,b),l=u.stateNode;try{var A=u.memoizedProps,D=A.id,U=A.onPostCommit;typeof U=="function"&&U(D,u.alternate===null?"mount":"update",l.passiveEffectDuration,-0)}catch(Z){Ft(u,u.return,Z)}}else Ws(l,u,g,b);break;case 31:Ws(l,u,g,b);break;case 13:Ws(l,u,g,b);break;case 23:break;case 22:A=u.stateNode,D=u.alternate,u.memoizedState!==null?A._visibility&2?Ws(l,u,g,b):Mf(l,u):A._visibility&2?Ws(l,u,g,b):(A._visibility|=2,om(l,u,g,b,(u.subtreeFlags&10256)!==0||!1)),C&2048&&TC(D,u);break;case 24:Ws(l,u,g,b),C&2048&&RC(u.alternate,u);break;default:Ws(l,u,g,b)}}function om(l,u,g,b,C){for(C=C&&((u.subtreeFlags&10256)!==0||!1),u=u.child;u!==null;){var A=l,D=u,U=g,Z=b,le=D.flags;switch(D.tag){case 0:case 11:case 15:om(A,D,U,Z,C),Nf(8,D);break;case 23:break;case 22:var be=D.stateNode;D.memoizedState!==null?be._visibility&2?om(A,D,U,Z,C):Mf(A,D):(be._visibility|=2,om(A,D,U,Z,C)),C&&le&2048&&TC(D.alternate,D);break;case 24:om(A,D,U,Z,C),C&&le&2048&&RC(D.alternate,D);break;default:om(A,D,U,Z,C)}u=u.sibling}}function Mf(l,u){if(u.subtreeFlags&10256)for(u=u.child;u!==null;){var g=l,b=u,C=b.flags;switch(b.tag){case 22:Mf(g,b),C&2048&&TC(b.alternate,b);break;case 24:Mf(g,b),C&2048&&RC(b.alternate,b);break;default:Mf(g,b)}u=u.sibling}}var Ef=8192;function sm(l,u,g){if(l.subtreeFlags&Ef)for(l=l.child;l!==null;)rE(l,u,g),l=l.sibling}function rE(l,u,g){switch(l.tag){case 26:sm(l,u,g),l.flags&Ef&&l.memoizedState!==null&&Fte(g,Gs,l.memoizedState,l.memoizedProps);break;case 5:sm(l,u,g);break;case 3:case 4:var b=Gs;Gs=Iv(l.stateNode.containerInfo),sm(l,u,g),Gs=b;break;case 22:l.memoizedState===null&&(b=l.alternate,b!==null&&b.memoizedState!==null?(b=Ef,Ef=16777216,sm(l,u,g),Ef=b):sm(l,u,g));break;default:sm(l,u,g)}}function iE(l){var u=l.alternate;if(u!==null&&(l=u.child,l!==null)){u.child=null;do u=l.sibling,l.sibling=null,l=u;while(l!==null)}}function If(l){var u=l.deletions;if((l.flags&16)!==0){if(u!==null)for(var g=0;g<u.length;g++){var b=u[g];oa=b,cE(b,l)}iE(l)}if(l.subtreeFlags&10256)for(l=l.child;l!==null;)lE(l),l=l.sibling}function lE(l){switch(l.tag){case 0:case 11:case 15:If(l),l.flags&2048&&_l(9,l,l.return);break;case 3:If(l);break;case 12:If(l);break;case 22:var u=l.stateNode;l.memoizedState!==null&&u._visibility&2&&(l.return===null||l.return.tag!==13)?(u._visibility&=-3,kv(l)):If(l);break;default:If(l)}}function kv(l){var u=l.deletions;if((l.flags&16)!==0){if(u!==null)for(var g=0;g<u.length;g++){var b=u[g];oa=b,cE(b,l)}iE(l)}for(l=l.child;l!==null;){switch(u=l,u.tag){case 0:case 11:case 15:_l(8,u,u.return),kv(u);break;case 22:g=u.stateNode,g._visibility&2&&(g._visibility&=-3,kv(u));break;default:kv(u)}l=l.sibling}}function cE(l,u){for(;oa!==null;){var g=oa;switch(g.tag){case 0:case 11:case 15:_l(8,g,u);break;case 23:case 22:if(g.memoizedState!==null&&g.memoizedState.cachePool!==null){var b=g.memoizedState.cachePool.pool;b!=null&&b.refCount++}break;case 24:bf(g.memoizedState.cache)}if(b=g.child,b!==null)b.return=g,oa=b;else e:for(g=l;oa!==null;){b=oa;var C=b.sibling,A=b.return;if(JM(b),b===g){oa=null;break e}if(C!==null){C.return=A,oa=C;break e}oa=A}}}var nte={getCacheForType:function(l){var u=ba(In),g=u.data.get(l);return g===void 0&&(g=l(),u.data.set(l,g)),g},cacheSignal:function(){return ba(In).controller.signal}},ate=typeof WeakMap=="function"?WeakMap:Map,Dt=0,en=null,bt=null,$t=0,Bt=0,Oo=null,jl=!1,rm=!1,PC=!1,Ni=0,kn=0,Nl=0,dd=0,_C=0,Lo=0,im=0,Of=null,ho=null,jC=!1,Cv=0,dE=0,Sv=1/0,Av=null,Dl=null,Kn=0,Ml=null,lm=null,Di=0,NC=0,DC=null,uE=null,Lf=0,MC=null;function Uo(){return(Dt&2)!==0&&$t!==0?$t&-$t:q.T!==null?BC():TN()}function mE(){if(Lo===0)if(($t&536870912)===0||kt){var l=_u;_u<<=1,(_u&3932160)===0&&(_u=262144),Lo=l}else Lo=536870912;return l=Eo.current,l!==null&&(l.flags|=32),Lo}function yo(l,u,g){(l===en&&(Bt===2||Bt===9)||l.cancelPendingCommit!==null)&&(cm(l,0),El(l,$t,Lo,!1)),ha(l,g),((Dt&2)===0||l!==en)&&(l===en&&((Dt&2)===0&&(
vendor: 15,825 bytes, line 49
49dd|=g),kn===4&&El(l,$t,Lo,!1)),Dr(l))}function pE(l,u,g){if((Dt&6)!==0)throw Error(a(327));var b=!g&&(u&127)===0&&(u&l.expiredLanes)===0||nt(l,u),C=b?rte(l,u):IC(l,u,!0),A=b;do{if(C===0){rm&&!b&&El(l,u,0,!1);break}else{if(g=l.current.alternate,A&&!ote(g)){C=IC(l,u,!1),A=!1;continue}if(C===2){if(A=u,l.errorRecoveryDisabledLanes&A)var D=0;else D=l.pendingLanes&-536870913,D=D!==0?D:D&536870912?536870912:0;if(D!==0){u=D;e:{var U=l;C=Of;var Z=U.current.memoizedState.isDehydrated;if(Z&&(cm(U,D).flags|=256),D=IC(U,D,!1),D!==2){if(PC&&!Z){U.errorRecoveryDisabledLanes|=A,dd|=A,C=4;break e}A=ho,ho=C,A!==null&&(ho===null?ho=A:ho.push.apply(ho,A))}C=D}if(A=!1,C!==2)continue}}if(C===1){cm(l,0),El(l,u,0,!0);break}e:{switch(b=l,A=C,A){case 0:case 1:throw Error(a(345));case 4:if((u&4194048)!==u)break;case 6:El(b,u,Lo,!jl);break e;case 2:ho=null;break;case 3:case 5:break;default:throw Error(a(329))}if((u&62914560)===u&&(C=Cv+300-rt(),10<C)){if(El(b,u,Lo,!jl),ju(b,0,!0)!==0)break e;Di=u,b.timeoutHandle=HE(fE.bind(null,b,g,ho,Av,jC,u,Lo,dd,im,jl,A,"Throttled",-0,0),C);break e}fE(b,g,ho,Av,jC,u,Lo,dd,im,jl,A,null,-0,0)}}break}while(!0);Dr(l)}function fE(l,u,g,b,C,A,D,U,Z,le,be,$e,ue,he){if(l.timeoutHandle=-1,$e=u.subtreeFlags,$e&8192||($e&16785408)===16785408){$e={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:vi},rE(u,A,$e);var Ve=(A&62914560)===A?Cv-rt():(A&4194048)===A?dE-rt():0;if(Ve=zte($e,Ve),Ve!==null){Di=A,l.cancelPendingCommit=Ve(wE.bind(null,l,u,A,g,b,C,D,U,Z,be,$e,null,ue,he)),El(l,A,D,!le);return}}wE(l,u,A,g,b,C,D,U,Z)}function ote(l){for(var u=l;;){var g=u.tag;if((g===0||g===11||g===15)&&u.flags&16384&&(g=u.updateQueue,g!==null&&(g=g.stores,g!==null)))for(var b=0;b<g.length;b++){var C=g[b],A=C.getSnapshot;C=C.value;try{if(!Do(A(),C))return!1}catch{return!1}}if(g=u.child,u.subtreeFlags&16384&&g!==null)g.return=u,u=g;else{if(u===l)break;for(;u.sibling===null;){if(u.return===null||u.return===l)return!0;u=u.return}u.sibling.return=u.return,u=u.sibling}}return!0}function El(l,u,g,b){u&=~_C,u&=~dd,l.suspendedLanes|=u,l.pingedLanes&=~u,b&&(l.warmLanes|=u),b=l.expirationTimes;for(var C=u;0<C;){var A=31-En(C),D=1<<A;b[A]=-1,C&=~D}g!==0&&Pr(l,g,u)}function Tv(){return(Dt&6)===0?(Uf(0),!1):!0}function EC(){if(bt!==null){if(Bt===0)var l=bt.return;else l=bt,wi=td=null,Xk(l),Ju=null,$f=0,l=bt;for(;l!==null;)VM(l.alternate,l),l=l.return;bt=null}}function cm(l,u){var g=l.timeoutHandle;g!==-1&&(l.timeoutHandle=-1,Cte(g)),g=l.cancelPendingCommit,g!==null&&(l.cancelPendingCommit=null,g()),Di=0,EC(),en=l,bt=g=xi(l.current,null),$t=u,Bt=0,Oo=null,jl=!1,rm=nt(l,u),PC=!1,im=Lo=_C=dd=Nl=kn=0,ho=Of=null,jC=!1,(u&8)!==0&&(u|=u&32);var b=l.entangledLanes;if(b!==0)for(l=l.entanglements,b&=u;0<b;){var C=31-En(b),A=1<<C;u|=l[C],b&=~A}return Ni=u,Wy(),g}function gE(l,u){ut=null,q.H=Pf,u===Zu||u===nv?(u=jD(),Bt=3):u===Uk?(u=jD(),Bt=4):Bt=u===pC?8:u!==null&&typeof u=="object"&&typeof u.then=="function"?6:1,Oo=u,bt===null&&(kn=1,hv(l,fs(u,l.current)))}function hE(){var l=Eo.current;return l===null?!0:($t&4194048)===$t?vs===null:($t&62914560)===$t||($t&536870912)!==0?l===vs:!1}function yE(){var l=q.H;return q.H=Pf,l===null?Pf:l}function vE(){var l=q.A;return q.A=nte,l}function Rv(){kn=4,jl||($t&4194048)!==$t&&Eo.current!==null||(rm=!0),(Nl&134217727)===0&&(dd&134217727)===0||en===null||El(en,$t,Lo,!1)}function IC(l,u,g){var b=Dt;Dt|=2;var C=yE(),A=vE();(en!==l||$t!==u)&&(Av=null,cm(l,u)),u=!1;var D=kn;e:do try{if(Bt!==0&&bt!==null){var U=bt,Z=Oo;switch(Bt){case 8:EC(),D=6;break e;case 3:case 2:case 9:case 6:Eo.current===null&&(u=!0);var le=Bt;if(Bt=0,Oo=null,dm(l,U,Z,le),g&&rm){D=0;break e}break;default:le=Bt,Bt=0,Oo=null,dm(l,U,Z,le)}}ste(),D=kn;break}catch(be){gE(l,be)}while(!0);return u&&l.shellSuspendCounter++,wi=td=null,Dt=b,q.H=C,q.A=A,bt===null&&(en=null,$t=0,Wy()),D}function ste(){for(;bt!==null;)bE(bt)}function rte(l,u){var g=Dt;Dt|=2;var b=yE(),C=vE();en!==l||$t!==u?(Av=null,Sv=rt()+500,cm(l,u)):rm=nt(l,u);e:do try{if(Bt!==0&&bt!==null){u=bt;var A=Oo;t:switch(Bt){case 1:Bt=0,Oo=null,dm(l,u,A,1);break;case 2:case 9:if(PD(A)){Bt=0,Oo=null,xE(u);break}u=function(){Bt!==2&&Bt!==9||en!==l||(Bt=7),Dr(l)},A.then(u,u);break e;case 3:Bt=7;break e;case 4:Bt=5;break e;case 7:PD(A)?(Bt=0,Oo=null,xE(u)):(Bt=0,Oo=null,dm(l,u,A,7));break;case 5:var D=null;switch(bt.tag){case 26:D=bt.memoizedState;case 5:case 27:var U=bt;if(D?sI(D):U.stateNode.complete){Bt=0,Oo=null;var Z=U.sibling;if(Z!==null)bt=Z;else{var le=U.return;le!==null?(bt=le,Pv(le)):bt=null}break t}}Bt=0,Oo=null,dm(l,u,A,5);break;case 6:Bt=0,Oo=null,dm(l,u,A,6);break;case 8:EC(),kn=6;break e;default:throw Error(a(462))}}ite();break}catch(be){gE(l,be)}while(!0);return wi=td=null,q.H=b,q.A=C,Dt=g,bt!==null?0:(en=null,$t=0,Wy(),kn)}function ite(){for(;bt!==null&&!fe();)bE(bt)}function bE(l){var u=qM(l.alternate,l,Ni);l.memoizedProps=l.pendingProps,u===null?Pv(l):bt=u}function xE(l){var u=l,g=u.alternate;switch(u.tag){case 15:case 0:u=OM(g,u,u.pendingProps,u.type,void 0,$t);break;case 11:u=OM(g,u,u.pendingProps,u.type.render,u.ref,$t);break;case 5:Xk(u);default:VM(g,u),u=bt=vD(u,Ni),u=qM(g,u,Ni)}l.memoizedProps=l.pendingProps,u===null?Pv(l):bt=u}function dm(l,u,g,b){wi=td=null,Xk(u),Ju=null,$f=0;var C=u.return;try{if(Yee(l,C,u,g,$t)){kn=1,hv(l,fs(g,l.current)),bt=null;return}}catch(A){if(C!==null)throw bt=C,A;kn=1,hv(l,fs(g,l.current)),bt=null;return}u.flags&32768?(kt||b===1?l=!0:rm||($t&536870912)!==0?l=!1:(jl=l=!0,(b===2||b===9||b===3||b===6)&&(b=Eo.current,b!==null&&b.tag===13&&(b.flags|=16384))),$E(u,l)):Pv(u)}function Pv(l){var u=l;do{if((u.flags&32768)!==0){$E(u,jl);return}l=u.return;var g=Zee(u.alternate,u,Ni);if(g!==null){bt=g;return}if(u=u.sibling,u!==null){bt=u;return}bt=u=l}while(u!==null);kn===0&&(kn=5)}function $E(l,u){do{var g=Jee(l.alternate,l);if(g!==null){g.flags&=32767,bt=g;return}if(g=l.return,g!==null&&(g.flags|=32768,g.subtreeFlags=0,g.deletions=null),!u&&(l=l.sibling,l!==null)){bt=l;return}bt=l=g}while(l!==null);kn=6,bt=null}function wE(l,u,g,b,C,A,D,U,Z){l.cancelPendingCommit=null;do _v();while(Kn!==0);if((Dt&6)!==0)throw Error(a(327));if(u!==null){if(u===l.current)throw Error(a(177));if(A=u.lanes|u.childLanes,A|=Ck,Rr(l,g,A,D,U,Z),l===en&&(bt=en=null,$t=0),lm=u,Ml=l,Di=g,NC=A,DC=C,uE=b,(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0?(l.callbackNode=null,l.callbackPriority=0,ute(ds,function(){return TE(),null})):(l.callbackNode=null,l.callbackPriority=0),b=(u.flags&13878)!==0,(u.subtreeFlags&13878)!==0||b){b=q.T,q.T=null,C=M.p,M.p=2,D=Dt,Dt|=4;try{ete(l,u,g)}finally{Dt=D,M.p=C,q.T=b}}Kn=1,kE(),CE(),SE()}}function kE(){if(Kn===1){Kn=0;var l=Ml,u=lm,g=(u.flags&13878)!==0;if((u.subtreeFlags&13878)!==0||g){g=q.T,q.T=null;var b=M.p;M.p=2;var C=Dt;Dt|=4;try{aE(u,l);var A=WC,D=cD(l.containerInfo),U=A.focusedElem,Z=A.selectionRange;if(D!==U&&U&&U.ownerDocument&&lD(U.ownerDocument.documentElement,U)){if(Z!==null&&bk(U)){var le=Z.start,be=Z.end;if(be===void 0&&(be=le),"selectionStart"in U)U.selectionStart=le,U.selectionEnd=Math.min(be,U.value.length);else{var $e=U.ownerDocument||document,ue=$e&&$e.defaultView||window;if(ue.getSelection){var he=ue.getSelection(),Ve=U.textContent.length,et=Math.min(Z.start,Ve),Wt=Z.end===void 0?et:Math.min(Z.end,Ve);!he.extend&&et>Wt&&(D=Wt,Wt=et,et=D);var oe=iD(U,et),te=iD(U,Wt);if(oe&&te&&(he.rangeCount!==1||he.anchorNode!==oe.node||he.anchorOffset!==oe.offset||he.focusNode!==te.node||he.focusOffset!==te.offset)){var re=$e.createRange();re.setStart(oe.node,oe.offset),he.removeAllRanges(),et>Wt?(he.addRange(re),he.extend(te.node,te.offset)):(re.setEnd(te.node,te.offset),he.addRange(re))}}}}for($e=[],he=U;he=he.parentNode;)he.nodeType===1&&$e.push({element:he,left:he.scrollLeft,top:he.scrollTop});for(typeof U.focus=="function"&&U.focus(),U=0;U<$e.length;U++){var xe=$e[U];xe.element.scrollLeft=xe.left,xe.element.scrollTop=xe.top}}zv=!!GC,WC=GC=null}finally{Dt=C,M.p=b,q.T=g}}l.current=u,Kn=2}}function CE(){if(Kn===2){Kn=0;var l=Ml,u=lm,g=(u.flags&8772)!==0;if((u.subtreeFlags&8772)!==0||g){g=q.T,q.T=null;var b=M.p;M.p=2;var C=Dt;Dt|=4;try{ZM(l,u.alternate,u)}finally{Dt=C,M.p=b,q.T=g}}Kn=3}}function SE(){if(Kn===4||Kn===3){Kn=0,Ne();var l=Ml,u=lm,g=Di,b=uE;(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0?Kn=5:(Kn=0,lm=Ml=null,AE(l,l.pendingLanes));var C=l.pendingLanes;if(C===0&&(Dl=null),ek(g),u=u.stateNode,Mn&&typeof Mn.onCommitFiberRoot=="function")try{Mn.onCommitFiberRoot(hi,u,void 0,(u.current.flags&128)===128)}catch{}if(b!==null){u=q.T,C=M.p,M.p=2,q.T=null;try{for(var A=l.onRecoverableError,D=0;D<b.length;D++){var U=b[D];A(U.value,{componentStack:U.stack})}}finally{q.T=u,M.p=C}}(Di&3)!==0&&_v(),Dr(l),C=l.pendingLanes,(g&261930)!==0&&(C&42)!==0?l===MC?Lf++:(Lf=0,MC=l):Lf=0,Uf(0)}}function AE(l,u){(l.pooledCacheLanes&=u)===0&&(u=l.pooledCache,u!=null&&(l.pooledCache=null,bf(u)))}function _v(){return kE(),CE(),SE(),TE()}function TE(){if(Kn!==5)return!1;var l=Ml,u=NC;NC=0;var g=ek(Di),b=q.T,C=M.p;try{M.p=32>g?32:g,q.T=null,g=DC,DC=null;var A=Ml,D=Di;if(Kn=0,lm=Ml=null,Di=0,(Dt&6)!==0)throw Error(a(331));var U=Dt;if(Dt|=4,lE(A.current),sE(A,A.current,D,g),Dt=U,Uf(0,!1),Mn&&typeof Mn.onPostCommitFiberRoot=="function")try{Mn.onPostCommitFiberRoot(hi,A)}catch{}return!0}finally{M.p=C,q.T=b,AE(l,u)}}function RE(l,u,g){u=fs(g,u),u=mC(l.stateNode,u,2),l=Tl(l,u,2),l!==null&&(ha(l,2),Dr(l))}function Ft(l,u,g){if(l.tag===3)RE(l,l,g);else for(;u!==null;){if(u.tag===3){RE(u,l,g);break}else if(u.tag===1){var b=u.stateNode;if(typeof u.type.getDerivedStateFromError=="function"||typeof b.componentDidCatch=="function"&&(Dl===null||!Dl.has(b))){l=fs(g,l),g=PM(2),b=Tl(u,g,2),b!==null&&(_M(g,b,u,l),ha(b,2),Dr(b));break}}u=u.return}}function OC(l,u,g){var b=l.pingCache;if(b===null){b=l.pingCache=new ate;var C=new Set;b.set(u,C)}else C=b.get(u),C===void 0&&(C=new Set,b.set(u,C));C.has(g)||(PC=!0,C.add(g),l=lte.bind(null,l,u,g),u.then(l,l))}function lte(l,u,g){var b=l.pingCache;b!==null&&b.delete(u),l.pingedLanes|=l.suspendedLanes&g,l.warmLanes&=~g,en===l&&($t&g)===g&&(kn===4||kn===3&&($t&62914560)===$t&&300>rt()-Cv?(Dt&2)===0&&cm(l,0):_C|=g,im===$t&&(im=0)),Dr(l)}function PE(l,u){u===0&&(u=Jt()),l=Zc(l,u),l!==null&&(ha(l,u),Dr(l))}function cte(l){var u=l.memoizedState,g=0;u!==null&&(g=u.retryLane),PE(l,g)}function dte(l,u){var g=0;switch(l.tag){case 31:case 13:var b=l.stateNode,C=l.memoizedState;C!==null&&(g=C.retryLane);break;case 19:b=l.stateNode;break;case 22:b=l.stateNode._retryCache;break;default:throw Error(a(314))}b!==null&&b.delete(u),PE(l,g)}function ute(l,u){return qs(l,u)}var jv=null,um=null,LC=!1,Nv=!1,UC=!1,Il=0;function Dr(l){l!==um&&l.next===null&&(um===null?jv=um=l:um=um.next=l),Nv=!0,LC||(LC=!0,pte())}function Uf(l,u){if(!UC&&Nv){UC=!0;do for(var g=!1,b=jv;b!==null;){if(l!==0){var C=b.pendingLanes;if(C===0)var A=0;else{var D=b.suspendedLanes,U=b.pingedLanes;A=(1<<31-En(42|l)+1)-1,A&=C&~(D&~U),A=A&201326741?A&201326741|1:A?A|2:0}A!==0&&(g=!0,DE(b,A))}else A=$t,A=ju(b,b===en?A:0,b.cancelPendingCommit!==null||b.timeoutHandle!==-1),(A&3)===0||nt(b,A)||(g=!0,DE(b,A));b=b.next}while(g);UC=!1}}function mte(){_E()}function _E(){Nv=LC=!1;var l=0;Il!==0&&kte()&&(l=Il);for(var u=rt(),g=null,b=jv;b!==null;){var C=b.next,A=jE(b,u);A===0?(b.next=null,g===null?jv=C:g.next=C,C===null&&(um=g)):(g=b,(l!==0||(A&3)!==0)&&(Nv=!0)),b=C}Kn!==0&&Kn!==5||Uf(l),Il!==0&&(Il=0)}function jE(l,u){for(var g=l.suspendedLanes,b=l.pingedLanes,C=l.expirationTimes,A=l.pendingLanes&-62914561;0<A;){var D=31-En(A),U=1<<D,Z=C[D];Z===-1?((U&g)===0||(U&b)!==0)&&(C[D]=Et(U,u)):Z<=u&&(l.expiredLanes|=U),A&=~U}if(u=en,g=$t,g=ju(l,l===u?g:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),b=l.callbackNode,g===0||l===u&&(Bt===2||Bt===9)||l.cancelPendingCommit!==null)return b!==null&&b!==null&&yt(b),l.callbackNode=null,l.callbackPriority=0;if((g&3)===0||nt(l,g)){if(u=g&-g,u===l.callbackPriority)return u;switch(b!==null&&yt(b),ek(g)){case 2:case 8:g=vn;break;case 32:g=ds;break;case 268435456:g=Kc;break;default:g=ds}return b=NE.bind(null,l),g=qs(g,b),l.callbackPriority=u,l.callbackNode=g,u}return b!==null&&b!==null&&yt(b),l.callbackPriority=2,l.callbackNode=null,2}function NE(l,u){if(Kn!==0&&Kn!==5)return l.callbackNode=null,l.callbackPriority=0,null;var g=l.callbackNode;if(_v()&&l.callbackNode!==g)return null;var b=$t;return b=ju(l,l===en?b:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),b===0?null:(pE(l,b,u),jE(l,rt()),l.callbackNode!=null&&l.callbackNode===g?NE.bind(null,l):null)}function DE(l,u){if(_v())return null;pE(l,u,!0)}function pte(){Ste(function(){(Dt&6)!==0?qs(cn,mte):_E()})}function BC(){if(Il===0){var l=Qu;l===0&&(l=Gc,Gc<<=1,(Gc&261888)===0&&(Gc=256)),Il=l}return Il}function ME(l){return l==null||typeof l=="symbol"||typeof l=="boolean"?null:typeof l=="function"?l:By(""+l)}function EE(l,u){var g=u.ownerDocument.createElement("input");return g.name=u.name,g.value=u.value,l.id&&g.setAttribute("form",l.id),u.parentNode.insertBefore(g,u),l=new FormData(l),g.parentNode.removeChild(g),l}function fte(l,u,g,b,C){if(u==="submit"&&g&&g.stateNode===C){var A=ME((C[uo]||null).action),D=b.submitter;D&&(u=(u=D[uo]||null)?ME(u.formAction):D.getAttribute("formAction"),u!==null&&(A=u,D=null));var U=new Hy("action","action",null,b,C);l.push({event:U,listeners:[{instance:null,listener:function(){if(b.defaultPrevented){if(Il!==0){var Z=D?EE(C,D):new FormData(C);rC(g,{pending:!0,data:Z,method:C.method,action:A},null,Z)}}else typeof A=="function"&&(U.preventDefault(),Z=D?EE(C,D):new FormData(C),rC(g,{pending:!0,data:Z,method:C.method,action:A},A,Z))},currentTarget:C}]})}}for(var FC=0;FC<kk.length;FC++){var zC=kk[FC],gte=zC.toLowerCase(),hte=zC[0].toUpperCase()+zC.slice(1);Ks(gte,"on"+hte)}Ks(mD,"onAnimationEnd"),Ks(pD,"onAnimationIteration"),Ks(fD,"onAnimationStart"),Ks("dblclick","onDoubleClick"),Ks("focusin","onFocus"),Ks("focusout","onBlur"),Ks(Nee,"onTransitionRun"),Ks(Dee,"onTransitionStart"),Ks(Mee,"onTransitionCancel"),Ks(gD,"onTransitionEnd"),Iu("onMouseEnter",["mouseout","mouseover"]),Iu("onMouseLeave",["mouseout","mouseover"]),Iu("onPointerEnter",["pointerout","pointerover"]),Iu("onPointerLeave",["pointerout","pointerover"]),Wc("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Wc("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Wc("onBeforeInput",["compositionend","keypress","textInput","paste"]),Wc("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Wc("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Wc("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Bf="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(" "),yte=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Bf));function IE(l,u){u=(u&4)!==0;for(var g=0;g<l.length;g++){var b=l[g],C=b.event;b=b.listeners;e:{var A=void 0;if(u)for(var D=b.length-1;0<=D;D--){var U=b[D],Z=U.instance,le=U.currentTarget;if(U=U.listener,Z!==A&&C.isPropagationStopped())break e;A=U,C.currentTarget=le;try{A(C)}catch(be){Gy(be)}C.currentTarget=null,A=Z}else for(D=0;D<b.length;D++){if(U=b[D],Z=U.instance,le=U.currentTarget,U=U.listener,Z!==A&&C.isPropagationStopped())break e;A=U,C.currentTarget=le;try{A(C)}catch(be){Gy(be)}C.currentTarget=null,A=Z}}}}function xt(l,u){var g=u[tk];g===void 0&&(g=u[tk]=new Set);var b=l+"__bubble";g.has(b)||(OE(u,l,2,!1),g.add(b))}function qC(l,u,g){var b=0;u&&(b|=4),OE(g,l,b,u)}var Dv="_reactListening"+Math.random().toString(36).slice(2);
vendor: 3,508 bytes, line 49
49function HC(l){if(!l[Dv]){l[Dv]=!0,_N.forEach(function(g){g!=="selectionchange"&&(yte.has(g)||qC(g,!1,l),qC(g,!0,l))});var u=l.nodeType===9?l:l.ownerDocument;u===null||u[Dv]||(u[Dv]=!0,qC("selectionchange",!1,u))}}function OE(l,u,g,b){switch(mI(u)){case 2:var C=Vte;break;case 8:C=Kte;break;default:C=s1}g=C.bind(null,u,g,l),C=void 0,!dk||u!=="touchstart"&&u!=="touchmove"&&u!=="wheel"||(C=!0),b?C!==void 0?l.addEventListener(u,g,{capture:!0,passive:C}):l.addEventListener(u,g,!0):C!==void 0?l.addEventListener(u,g,{passive:C}):l.addEventListener(u,g,!1)}function VC(l,u,g,b,C){var A=b;if((u&1)===0&&(u&2)===0&&b!==null)e:for(;;){if(b===null)return;var D=b.tag;if(D===3||D===4){var U=b.stateNode.containerInfo;if(U===C)break;if(D===4)for(D=b.return;D!==null;){var Z=D.tag;if((Z===3||Z===4)&&D.stateNode.containerInfo===C)return;D=D.return}for(;U!==null;){if(D=Du(U),D===null)return;if(Z=D.tag,Z===5||Z===6||Z===26||Z===27){b=A=D;continue e}U=U.parentNode}}b=b.return}zN(function(){var le=A,be=lk(g),$e=[];e:{var ue=hD.get(l);if(ue!==void 0){var he=Hy,Ve=l;switch(l){case"keypress":if(zy(g)===0)break e;case"keydown":case"keyup":he=dee;break;case"focusin":Ve="focus",he=fk;break;case"focusout":Ve="blur",he=fk;break;case"beforeblur":case"afterblur":he=fk;break;case"click":if(g.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":he=VN;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":he=ZJ;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":he=pee;break;case mD:case pD:case fD:he=tee;break;case gD:he=gee;break;case"scroll":case"scrollend":he=QJ;break;case"wheel":he=yee;break;case"copy":case"cut":case"paste":he=aee;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":he=GN;break;case"toggle":case"beforetoggle":he=bee}var et=(u&4)!==0,Wt=!et&&(l==="scroll"||l==="scrollend"),oe=et?ue!==null?ue+"Capture":null:ue;et=[];for(var te=le,re;te!==null;){var xe=te;if(re=xe.stateNode,xe=xe.tag,xe!==5&&xe!==26&&xe!==27||re===null||oe===null||(xe=lf(te,oe),xe!=null&&et.push(Ff(te,xe,re))),Wt)break;te=te.return}0<et.length&&(ue=new he(ue,Ve,null,g,be),$e.push({event:ue,listeners:et}))}}if((u&7)===0){e:{if(ue=l==="mouseover"||l==="pointerover",he=l==="mouseout"||l==="pointerout",ue&&g!==ik&&(Ve=g.relatedTarget||g.fromElement)&&(Du(Ve)||Ve[Nu]))break e;if((he||ue)&&(ue=be.window===be?be:(ue=be.ownerDocument)?ue.defaultView||ue.parentWindow:window,he?(Ve=g.relatedTarget||g.toElement,he=le,Ve=Ve?Du(Ve):null,Ve!==null&&(Wt=r(Ve),et=Ve.tag,Ve!==Wt||et!==5&&et!==27&&et!==6)&&(Ve=null)):(he=null,Ve=le),he!==Ve)){if(et=VN,xe="onMouseLeave",oe="onMouseEnter",te="mouse",(l==="pointerout"||l==="pointerover")&&(et=GN,xe="onPointerLeave",oe="onPointerEnter",te="pointer"),Wt=he==null?ue:rf(he),re=Ve==null?ue:rf(Ve),ue=new et(xe,te+"leave",he,g,be),ue.target=Wt,ue.relatedTarget=re,xe=null,Du(be)===le&&(et=new et(oe,te+"enter",Ve,g,be),et.target=re,et.relatedTarget=Wt,xe=et),Wt=xe,he&&Ve)t:{for(et=vte,oe=he,te=Ve,re=0,xe=oe;xe;xe=et(xe))re++;xe=0;for(var Xe=te;Xe;Xe=et(Xe))xe++;for(;0<re-xe;)oe=et(oe),re--;for(;0<xe-re;)te=et(te),xe--;for(;re--;){if(oe===te||te!==null&&oe===te.alternate){et=oe;break t}oe=et(oe),te=et(te)}et=null}else et=null;he!==null&&LE($e,ue,he,et,!1),Ve!==null&&Wt!==null&&LE($e,Wt,Ve,et,!0)}}
vendor: 5,258 bytes, lines 49-50
49e:{if(ue=le?rf(le):window,he=ue.nodeName&&ue.nodeName.toLowerCase(),he==="select"||he==="input"&&ue.type==="file")var _t=tD;else if(JN(ue))if(nD)_t=Pee;else{_t=Tee;var Ke=Aee}else he=ue.nodeName,!he||he.toLowerCase()!=="input"||ue.type!=="checkbox"&&ue.type!=="radio"?le&&rk(le.elementType)&&(_t=tD):_t=Ree;if(_t&&(_t=_t(l,le))){eD($e,_t,g,be);break e}Ke&&Ke(l,ue,le),l==="focusout"&&le&&ue.type==="number"&&le.memoizedProps.value!=null&&sk(ue,"number",ue.value)}switch(Ke=le?rf(le):window,l){case"focusin":(JN(Ke)||Ke.contentEditable==="true")&&(zu=Ke,xk=le,hf=null);break;case"focusout":hf=xk=zu=null;break;case"mousedown":$k=!0;break;case"contextmenu":case"mouseup":case"dragend":$k=!1,dD($e,g,be);break;case"selectionchange":if(jee)break;case"keydown":case"keyup":dD($e,g,be)}var mt;if(hk)e:{switch(l){case"compositionstart":var wt="onCompositionStart";break e;case"compositionend":wt="onCompositionEnd";break e;case"compositionupdate":wt="onCompositionUpdate";break e}wt=void 0}else Fu?XN(l,g)&&(wt="onCompositionEnd"):l==="keydown"&&g.keyCode===229&&(wt="onCompositionStart");wt&&(WN&&g.locale!=="ko"&&(Fu||wt!=="onCompositionStart"?wt==="onCompositionEnd"&&Fu&&(mt=qN()):(xl=be,uk="value"in xl?xl.value:xl.textContent,Fu=!0)),Ke=Mv(le,wt),0<Ke.length&&(wt=new KN(wt,l,null,g,be),$e.push({event:wt,listeners:Ke}),mt?wt.data=mt:(mt=ZN(g),mt!==null&&(wt.data=mt)))),(mt=$ee?wee(l,g):kee(l,g))&&(wt=Mv(le,"onBeforeInput"),0<wt.length&&(Ke=new KN("onBeforeInput","beforeinput",null,g,be),$e.push({event:Ke,listeners:wt}),Ke.data=mt)),fte($e,l,le,g,be)}IE($e,u)})}function Ff(l,u,g){return{instance:l,listener:u,currentTarget:g}}function Mv(l,u){for(var g=u+"Capture",b=[];l!==null;){var C=l,A=C.stateNode;if(C=C.tag,C!==5&&C!==26&&C!==27||A===null||(C=lf(l,g),C!=null&&b.unshift(Ff(l,C,A)),C=lf(l,u),C!=null&&b.push(Ff(l,C,A))),l.tag===3)return b;l=l.return}return[]}function vte(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5&&l.tag!==27);return l||null}function LE(l,u,g,b,C){for(var A=u._reactName,D=[];g!==null&&g!==b;){var U=g,Z=U.alternate,le=U.stateNode;if(U=U.tag,Z!==null&&Z===b)break;U!==5&&U!==26&&U!==27||le===null||(Z=le,C?(le=lf(g,A),le!=null&&D.unshift(Ff(g,le,Z))):C||(le=lf(g,A),le!=null&&D.push(Ff(g,le,Z)))),g=g.return}D.length!==0&&l.push({event:u,listeners:D})}var bte=/\r\n?/g,xte=/\u0000|\uFFFD/g;function UE(l){return(typeof l=="string"?l:""+l).replace(bte,` 50`).replace(xte,"")}function BE(l,u){return u=UE(u),UE(l)===u}function Gt(l,u,g,b,C,A){switch(g){case"children":typeof b=="string"?u==="body"||u==="textarea"&&b===""||Lu(l,b):(typeof b=="number"||typeof b=="bigint")&&u!=="body"&&Lu(l,""+b);break;case"className":Ly(l,"class",b);break;case"tabIndex":Ly(l,"tabindex",b);break;case"dir":case"role":case"viewBox":case"width":case"height":Ly(l,g,b);break;case"style":BN(l,b,A);break;case"data":if(u!=="object"){Ly(l,"data",b);break}case"src":case"href":if(b===""&&(u!=="a"||g!=="href")){l.removeAttribute(g);break}if(b==null||typeof b=="function"||typeof b=="symbol"||typeof b=="boolean"){l.removeAttribute(g);break}b=By(""+b),l.setAttribute(g,b);break;case"action":case"formAction":if(typeof b=="function"){l.setAttribute(g,"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 A=="function"&&(g==="formAction"?(u!=="input"&&Gt(l,u,"name",C.name,C,null),Gt(l,u,"formEncType",C.formEncType,C,null),Gt(l,u,"formMethod",C.formMethod,C,null),Gt(l,u,"formTarget",C.formTarget,C,null)):(Gt(l,u,"encType",C.encType,C,null),Gt(l,u,"method",C.method,C,null),Gt(l,u,"target",C.target,C,null)));if(b==null||typeof b=="symbol"||typeof b=="boolean"){l.removeAttribute(g);break}b=By(""+b),l.setAttribute(g,b);break;case"onClick":b!=null&&(l.onclick=vi);break;case"onScroll":b!=null&&xt("scroll",l);break;case"onScrollEnd":b!=null&&xt("scrollend",l);break;case"dangerouslySetInnerHTML":if(b!=null){if(typeof b!="object"||!("__html"in b))throw Error(a(61));if(g=b.__html,g!=null){if(C.children!=null)throw Error(a(60));l.innerHTML=g}}break;case"multiple":l.multiple=b&&typeof b!="function"&&typeof b!="symbol";break;case"muted":l.muted=b&&typeof b!="function"&&typeof b!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(b==null||typeof b=="function"||typeof b=="boolean"||typeof b=="symbol"){l.removeAttribute("xlink:href");break}g=By(""+b),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",g);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":b!=null&&typeof b!="function"&&typeof b!="symbol"?l.setAttribute(g,""+b):l.removeAttribute(g);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"playsInl
50ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":b&&typeof b!="function"&&typeof b!="symbol"?l.setAttribute(g,""):l.removeAttribute(g);break;case"capture":case"download":b===!0?l.setAttribute(g,""):b!==!1&&b!=null&&typeof b!="function"&&typeof b!="symbol"?l.setAttribute(g,b):l.removeAttribute(g);break;case"cols":case"rows":case"size":case"span":b!=null&&typeof b!="function"&&typeof b!="symbol"&&!isNaN(b)&&1<=b?l.setAttribute(g,b):l.removeAttribute(g);break;case"rowSpan":case"start":b==null||typeof b=="function"||typeof b=="symbol"||isNaN(b)?l.removeAttribute(g):l.setAttribute(g,b);break;case"popover":xt("beforetoggle",l),xt("toggle",l),Oy(l,"popover",b);break;case"xlinkActuate":yi(l,"http://www.w3.org/1999/xlink","xlink:actuate",b);break;case"xlinkArcrole":yi(l,"http://www.w3.org/1999/xlink","xlink:arcrole",b);break;case"xlinkRole":yi(l,"http://www.w3.org/1999/xlink","xlink:role",b);break;case"xlinkShow":yi(l,"http://www.w3.org/1999/xlink","xlink:show",b);break;case"xlinkTitle":yi(l,"http://www.w3.org/1999/xlink","xlink:title",b);break;case"xlinkType":yi(l,"http://www.w3.org/1999/xlink","xlink:type",b);break;case"xmlBase":yi(l,"http://www.w3.org/XML/1998/namespace","xml:base",b);break;case"xmlLang":yi(l,"http://www.w3.org/XML/1998/namespace","xml:lang",b);break;case"xmlSpace":yi(l,"http://www.w3.org/XML/1998/namespace","xml:space",b);break;case"is":Oy(l,"is",b);break;case"innerText":case"textContent":break;default:(!(2<g.length)||g[0]!=="o"&&g[0]!=="O"||g[1]!=="n"&&g[1]!=="N")&&(g=WJ.get(g)||g,Oy(l,g,b))}}function KC(l,u,g,b,C,A){switch(g){case"style":BN(l,b,A);break;case"dangerouslySetInnerHTML":if(b!=null){if(typeof b!="object"||!("__html"in b))throw Error(a(61));if(g=b.__html,g!=null){if(C.children!=null)throw Error(a(60));l.innerHTML=g}}break;case"children":typeof b=="string"?Lu(l,b):(typeof b=="number"||typeof b=="bigint")&&Lu(l,""+b);break;case"onScroll":b!=null&&xt("scroll",l);break;case"onScrollEnd":b!=null&&xt("scrollend",l);break;case"onClick":b!=null&&(l.onclick=vi);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!jN.hasOwnProperty(g))e:{if(g[0]==="o"&&g[1]==="n"&&(C=g.endsWith("Capture"),u=g.slice(2,C?g.length-7:void 0),A=l[uo]||null,A=A!=null?A[g]:null,typeof A=="function"&&l.removeEventListener(u,A,C),typeof b=="function")){typeof A!="function"&&A!==null&&(g in l?l[g]=null:l.hasAttribute(g)&&l.removeAttribute(g)),l.addEventListener(u,b,C);break e}g in l?l[g]=b:b===!0?l.setAttribute(g,""):Oy(l,g,b)}}}function $a(l,u,g){switch(u){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":xt("error",l),xt("load",l);var b=!1,C=!1,A;for(A in g)if(g.hasOwnProperty(A)){var D=g[A];if(D!=null)switch(A){case"src":b=!0;break;case"srcSet":C=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,u));default:Gt(l,u,A,D,g,null)}}C&&Gt(l,u,"srcSet",g.srcSet,g,null),b&&Gt(l,u,"src",g.src,g,null);return;case"input":xt("invalid",l);var U=A=D=C=null,Z=null,le=null;for(b in g)if(g.hasOwnProperty(b)){var be=g[b];if(be!=null)switch(b){case"name":C=be;break;case"type":D=be;break;case"checked":Z=be;break;case"defaultChecked":le=be;break;case"value":A=be;break;case"defaultValue":U=be;break;case"children":case"dangerouslySetInnerHTML":if(be!=null)throw Error(a(137,u));break;default:Gt(l,u,b,be,g,null)}}IN(l,A,U,Z,le,D,C,!1);return;case"select":xt("invalid",l),b=D=A=null;for(C in g)if(g.hasOwnProperty(C)&&(U=g[C],U!=null))switch(C){case"value":A=U;break;case"defaultValue":D=U;break;case"multiple":b=U;default:Gt(l,u,C,U,g,null)}u=A,g=D,l.multiple=!!b,u!=null?Ou(l,!!b,u,!1):g!=null&&Ou(l,!!b,g,!0);return;case"textarea":xt("invalid",l),A=C=b=null;for(D in g)if(g.hasOwnProperty(D)&&(U=g[D],U!=null))switch(D){case"value":b=U;break;case"defaultValue":C=U;break;case"children":A=U;break;case"dangerouslySetInnerHTML":if(U!=null)throw Error(a(91));break;default:Gt(l,u,D,U,g,null)}LN(l,b,C,A);return;case"option":for(Z in g)if(g.hasOwnProperty(Z)&&(b=g[Z],b!=null))switch(Z){case"selected":l.selected=b&&typeof b!="function"&&typeof b!="symbol";break;default:Gt(l,u,Z,b,g,null)}return;case"dialog":xt("beforetoggle",l),xt("toggle",l),xt("cancel",l),xt("close",l);break;case"iframe":case"object":xt("load",l);break;case"video":case"audio":for(b=0;b<Bf.length;b++)xt(Bf[b],l);break;case"image":xt("error",l),xt("load",l);break;case"details":xt("toggle",l);break;case"embed":case"source":case"link":xt("error",l),xt("load",l);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(le in g)if(g.hasOwnProperty(le)&&(b=g[le],b!=null))switch(le){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,u));default:Gt(l,u,le,b,g,null)}return;default:if(rk(u)){for(be in g)g.hasOwnProperty(be)&&(b=g[be],b!==void 0&&KC(l,u,be,b,g,void 0));return}}for(U in g)g.hasOwnProperty(U)&&(b=g[U],b!=null&&Gt(l,u,U,b,g,null))}function $te(l,u,g,b){switch(u){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var C=null,A=null,D=null,U=null,Z=null,le=null,be=null;for(he in g){var $e=g[he];if(g.hasOwnProperty(he)&&$e!=null)switch(he){case"checked":break;case"value":break;case"defaultValue":Z=$e;default:b.hasOwnProperty(he)||Gt(l,u,he,null,b,$e)}}for(var ue in b){var he=b[ue];if($e=g[ue],b.hasOwnProperty(ue)&&(he!=null||$e!=null))switch(ue){case"type":A=he;break;case"name":C=he;break;case"checked":le=he;break;case"defaultChecked":be=he;break;case"value":D=he;break;case"defaultValue":U=he;break;case"children":case"dangerouslySetInnerHTML":if(he!=null)throw Error(a(137,u));break;default:he!==$e&&Gt(l,u,ue,he,b,$e)}}ok(l,D,U,Z,le,be,A,C);return;case"select":he=D=U=ue=null;for(A in g)if(Z=g[A],g.hasOwnProperty(A)&&Z!=null)switch(A){case"value":break;case"multiple":he=Z;default:b.hasOwnProperty(A)||Gt(l,u,A,null,b,Z)}for(C in b)if(A=b[C],Z=g[C],b.hasOwnProperty(C)&&(A!=null||Z!=null))switch(C){case"value":ue=A;break;case"defaultValue":U=A;break;case"multiple":D=A;default:A!==Z&&Gt(l,u,C,A,b,Z)}u=U,g=D,b=he,ue!=null?Ou(l,!!g,ue,!1):!!b!=!!g&&(u!=null?Ou(l,!!g,u,!0):Ou(l,!!g,g?[]:"",!1));return;case"textarea":he=ue=null;for(U in g)if(C=g[U],g.hasOwnProperty(U)&&C!=null&&!b.hasOwnProperty(U))switch(U){case"value":break;case"children":break;default:Gt(l,u,U,null,b,C)}for(D in b)if(C=b[D],A=g[D],b.hasOwnProperty(D)&&(C!=null||A!=null))switch(D){case"value":ue=C;break;case"defaultValue":he=C;break;case"children":break;case"dangerouslySetInnerHTML":if(C!=null)throw Error(a(91));break;default:C!==A&&Gt(l,u,D,C,b,A)}ON(l,ue,he);return;case"option":for(var Ve in g)if(ue=g[Ve],g.hasOwnProperty(Ve)&&ue!=null&&!b.hasOwnProperty(Ve))switch(Ve){case"selected":l.selected=!1;break;default:Gt(l,u,Ve,null,b,ue)}for(Z in b)if(ue=b[Z],he=g[Z],b.hasOwnProperty(Z)&&ue!==he&&(ue!=null||he!=null))switch(Z){case"selected":l.selected=ue&&typeof ue!="function"&&typeof ue!="symbol";break;default:Gt(l,u,Z,ue,b,he)}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 et in g)ue=g[et],g.hasOwnProperty(et)&&ue!=null&&!b.hasOwnProperty(et)&&Gt(l,u,et,null,b,ue);for(le in b)if(ue=b[le],he=g[le],b.hasOwnProperty(le)&&ue!==he&&(ue!=null||he!=null))switch(le){case"children":case"dangerouslySetInnerHTML":if(ue!=null)throw Error(a(137,u));break;default:Gt(l,u,le,ue,b,he)}return;default:if(rk(u)){for(var Wt in g)ue=g[Wt],g.hasOwnProperty(Wt)&&ue!==void 0&&!b.hasOwnProperty(Wt)&&KC(l,u,Wt,void 0,b,ue);for(be in b)ue=b[be],he=g[be],!b.hasOwnProperty(be)||ue===he||ue===void 0&&he===void 0||KC(l,u,be,ue,b,he);return}}for(var oe in g)ue=g[oe],g.hasOwnProperty(oe)&&ue!=null&&!b.hasOwnProperty(oe)&&Gt(l,u,oe,null,b,ue);for($e in b)ue=b[$e],he=g[$e],!b.hasOwnProperty($e)||ue===he||ue==null&&he==null||Gt(l,u,$e,ue,b,he)}function FE(l){switch(l){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function wte(){if(typeof performance.getEntriesByType=="function"){for(var l=0,u=0,g=performance.getEntriesByType("resource"),b=0;b<g.length;b++){var C=g[b],A=C.transferSize,D=C.initiatorType,U=C.duration;if(A&&U&&FE(D)){for(D=0,U=C.responseEnd,b+=1;b<g.length;b++){var Z=g[b],le=Z.startTime;if(le>U)break;var be=Z.transferSize,$e=Z.initiatorType;be&&FE($e)&&(Z=Z.responseEnd,D+=be*(Z<U?1:(U-le)/(Z-le)))}if(--b,u+=8*(A+D)/(C.duration/1e3),l++,10<l)break}}if(0<l)return u/l/1e6}return navigator.connection&&(l=navigator.connection.downlink,typeof l=="number")?l:5}var GC=null,WC=null;function Ev(l){return l.nodeType===9?l:l.ownerDocument}function zE(l){switch(l){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function qE(l,u){if(l===0)switch(u){case"svg":return 1;case"math":return 2;default:return 0}return l===1&&u==="foreignObject"?0:l}function YC(l,u){return l==="textarea"||l==="noscript"||typeof u.children=="string"||typeof u.children=="number"||typeof u.children=="bigint"||typeof u.dangerouslySetInnerHTML=="object"&&u.dangerouslySetInnerHTML!==null&&u.dangerouslySetInnerHTML.__html!=null}var QC=null;function kte(){var l=window.event;return l&&l.type==="popstate"?l===QC?!1:(QC=l,!0):(QC=null,!1)}var HE=typeof setTimeout=="function"?setTimeout:void 0,Cte=typeof clearTimeout=="function"?clearTimeout:void 0,VE=typeof Promise=="function"?Promise:void 0,Ste=typeof queueMicrotask=="function"?queueMicrotask:typeof VE<"u"?function(l){return VE.resolve(null).then(l).catch(Ate)}:HE;function Ate(l){setTimeout(function(){throw l})}function Ol(l){return l==="head"}function KE(l,u){var g=u,b=0;do{var C=g.nextSibling;if(l.removeChild(g),C&&C.nodeType===8)if(g=C.data,g==="/$"||g==="/&"){if(b===0){l.removeChild(C),gm(u);return}b--}else if(g==="$"||g==="$?"||g==="$~"||g==="$!"||g==="&")b++;else if(g==="html")zf(l.ownerDocument.documentElement);else if(g==="head"){g=l.ownerDocument.head,zf(g);for(var A=g.firstChild;A;){var D=A.nextSibling,U=A.nodeName;A[sf]||U==="SCRIPT"||U==="STYLE"||U==="LINK"&&A.rel.toLowerCase()==="stylesheet"||g.removeChild(A),A=D}}else g==="body"&&zf(l.ownerDocument.body);g=C}while(g);gm(u)}function GE(l,u){var g=l;l=0;do{var b=g.nextSibling;if(g.nodeType===1?u?(g._stashedDisplay=g.style.display,g.style.display="none"):(g.style.display=g._stashedDisplay||"",g.getAttribute("style")===""&&g.removeAttribute("style")):g.nodeType===3&&(u?(g._stashedText=g.nodeValue,g.nodeValue=""):g.nodeValue=g._stashedText||""),b&&b.nodeType===8)if(g=b.data,g==="/$"){if(l===0)break;l--}else g!=="$"&&g!=="$?"&&g!=="$~"&&g!=="$!"||l++;g=b}while(g)}function XC(l){var u=l.firstChild;for(u&&u.nodeType===10&&(u=u.nextSibling);u;){var g=u;switch(u=u.nextSibling,g.nodeName){case"HTML":case"HEAD":case"BODY":XC(g),nk(g);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(g.rel.toLowerCase()==="stylesheet")continue}l.removeChild(g)}}function Tte(l,u,g,b){for(;l.nodeType===1;
vendor: 10,823 bytes, line 50
50){var C=g;if(l.nodeName.toLowerCase()!==u.toLowerCase()){if(!b&&(l.nodeName!=="INPUT"||l.type!=="hidden"))break}else if(b){if(!l[sf])switch(u){case"meta":if(!l.hasAttribute("itemprop"))break;return l;case"link":if(A=l.getAttribute("rel"),A==="stylesheet"&&l.hasAttribute("data-precedence"))break;if(A!==C.rel||l.getAttribute("href")!==(C.href==null||C.href===""?null:C.href)||l.getAttribute("crossorigin")!==(C.crossOrigin==null?null:C.crossOrigin)||l.getAttribute("title")!==(C.title==null?null:C.title))break;return l;case"style":if(l.hasAttribute("data-precedence"))break;return l;case"script":if(A=l.getAttribute("src"),(A!==(C.src==null?null:C.src)||l.getAttribute("type")!==(C.type==null?null:C.type)||l.getAttribute("crossorigin")!==(C.crossOrigin==null?null:C.crossOrigin))&&A&&l.hasAttribute("async")&&!l.hasAttribute("itemprop"))break;return l;default:return l}}else if(u==="input"&&l.type==="hidden"){var A=C.name==null?null:""+C.name;if(C.type==="hidden"&&l.getAttribute("name")===A)return l}else return l;if(l=bs(l.nextSibling),l===null)break}return null}function Rte(l,u,g){if(u==="")return null;for(;l.nodeType!==3;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!g||(l=bs(l.nextSibling),l===null))return null;return l}function WE(l,u){for(;l.nodeType!==8;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!u||(l=bs(l.nextSibling),l===null))return null;return l}function ZC(l){return l.data==="$?"||l.data==="$~"}function JC(l){return l.data==="$!"||l.data==="$?"&&l.ownerDocument.readyState!=="loading"}function Pte(l,u){var g=l.ownerDocument;if(l.data==="$~")l._reactRetry=u;else if(l.data!=="$?"||g.readyState!=="loading")u();else{var b=function(){u(),g.removeEventListener("DOMContentLoaded",b)};g.addEventListener("DOMContentLoaded",b),l._reactRetry=b}}function bs(l){for(;l!=null;l=l.nextSibling){var u=l.nodeType;if(u===1||u===3)break;if(u===8){if(u=l.data,u==="$"||u==="$!"||u==="$?"||u==="$~"||u==="&"||u==="F!"||u==="F")break;if(u==="/$"||u==="/&")return null}}return l}var e1=null;function YE(l){l=l.nextSibling;for(var u=0;l;){if(l.nodeType===8){var g=l.data;if(g==="/$"||g==="/&"){if(u===0)return bs(l.nextSibling);u--}else g!=="$"&&g!=="$!"&&g!=="$?"&&g!=="$~"&&g!=="&"||u++}l=l.nextSibling}return null}function QE(l){l=l.previousSibling;for(var u=0;l;){if(l.nodeType===8){var g=l.data;if(g==="$"||g==="$!"||g==="$?"||g==="$~"||g==="&"){if(u===0)return l;u--}else g!=="/$"&&g!=="/&"||u++}l=l.previousSibling}return null}function XE(l,u,g){switch(u=Ev(g),l){case"html":if(l=u.documentElement,!l)throw Error(a(452));return l;case"head":if(l=u.head,!l)throw Error(a(453));return l;case"body":if(l=u.body,!l)throw Error(a(454));return l;default:throw Error(a(451))}}function zf(l){for(var u=l.attributes;u.length;)l.removeAttributeNode(u[0]);nk(l)}var xs=new Map,ZE=new Set;function Iv(l){return typeof l.getRootNode=="function"?l.getRootNode():l.nodeType===9?l:l.ownerDocument}var Mi=M.d;M.d={f:_te,r:jte,D:Nte,C:Dte,L:Mte,m:Ete,X:Ote,S:Ite,M:Lte};function _te(){var l=Mi.f(),u=Tv();return l||u}function jte(l){var u=Mu(l);u!==null&&u.tag===5&&u.type==="form"?gM(u):Mi.r(l)}var mm=typeof document>"u"?null:document;function JE(l,u,g){var b=mm;if(b&&typeof u=="string"&&u){var C=ms(u);C='link[rel="'+l+'"][href="'+C+'"]',typeof g=="string"&&(C+='[crossorigin="'+g+'"]'),ZE.has(C)||(ZE.add(C),l={rel:l,crossOrigin:g,href:u},b.querySelector(C)===null&&(u=b.createElement("link"),$a(u,"link",l),aa(u),b.head.appendChild(u)))}}function Nte(l){Mi.D(l),JE("dns-prefetch",l,null)}function Dte(l,u){Mi.C(l,u),JE("preconnect",l,u)}function Mte(l,u,g){Mi.L(l,u,g);var b=mm;if(b&&l&&u){var C='link[rel="preload"][as="'+ms(u)+'"]';u==="image"&&g&&g.imageSrcSet?(C+='[imagesrcset="'+ms(g.imageSrcSet)+'"]',typeof g.imageSizes=="string"&&(C+='[imagesizes="'+ms(g.imageSizes)+'"]')):C+='[href="'+ms(l)+'"]';var A=C;switch(u){case"style":A=pm(l);break;case"script":A=fm(l)}xs.has(A)||(l=p({rel:"preload",href:u==="image"&&g&&g.imageSrcSet?void 0:l,as:u},g),xs.set(A,l),b.querySelector(C)!==null||u==="style"&&b.querySelector(qf(A))||u==="script"&&b.querySelector(Hf(A))||(u=b.createElement("link"),$a(u,"link",l),aa(u),b.head.appendChild(u)))}}function Ete(l,u){Mi.m(l,u);var g=mm;if(g&&l){var b=u&&typeof u.as=="string"?u.as:"script",C='link[rel="modulepreload"][as="'+ms(b)+'"][href="'+ms(l)+'"]',A=C;switch(b){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":A=fm(l)}if(!xs.has(A)&&(l=p({rel:"modulepreload",href:l},u),xs.set(A,l),g.querySelector(C)===null)){switch(b){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(g.querySelector(Hf(A)))return}b=g.createElement("link"),$a(b,"link",l),aa(b),g.head.appendChild(b)}}}function Ite(l,u,g){Mi.S(l,u,g);var b=mm;if(b&&l){var C=Eu(b).hoistableStyles,A=pm(l);u=u||"default";var D=C.get(A);if(!D){var U={loading:0,preload:null};if(D=b.querySelector(qf(A)))U.loading=5;else{l=p({rel:"stylesheet",href:l,"data-precedence":u},g),(g=xs.get(A))&&t1(l,g);var Z=D=b.createElement("link");aa(Z),$a(Z,"link",l),Z._p=new Promise(function(le,be){Z.onload=le,Z.onerror=be}),Z.addEventListener("load",function(){U.loading|=1}),Z.addEventListener("error",function(){U.loading|=2}),U.loading|=4,Ov(D,u,b)}D={type:"stylesheet",instance:D,count:1,state:U},C.set(A,D)}}}function Ote(l,u){Mi.X(l,u);var g=mm;if(g&&l){var b=Eu(g).hoistableScripts,C=fm(l),A=b.get(C);A||(A=g.querySelector(Hf(C)),A||(l=p({src:l,async:!0},u),(u=xs.get(C))&&n1(l,u),A=g.createElement("script"),aa(A),$a(A,"link",l),g.head.appendChild(A)),A={type:"script",instance:A,count:1,state:null},b.set(C,A))}}function Lte(l,u){Mi.M(l,u);var g=mm;if(g&&l){var b=Eu(g).hoistableScripts,C=fm(l),A=b.get(C);A||(A=g.querySelector(Hf(C)),A||(l=p({src:l,async:!0,type:"module"},u),(u=xs.get(C))&&n1(l,u),A=g.createElement("script"),aa(A),$a(A,"link",l),g.head.appendChild(A)),A={type:"script",instance:A,count:1,state:null},b.set(C,A))}}function eI(l,u,g,b){var C=(C=pe.current)?Iv(C):null;if(!C)throw Error(a(446));switch(l){case"meta":case"title":return null;case"style":return typeof g.precedence=="string"&&typeof g.href=="string"?(u=pm(g.href),g=Eu(C).hoistableStyles,b=g.get(u),b||(b={type:"style",instance:null,count:0,state:null},g.set(u,b)),b):{type:"void",instance:null,count:0,state:null};case"link":if(g.rel==="stylesheet"&&typeof g.href=="string"&&typeof g.precedence=="string"){l=pm(g.href);var A=Eu(C).hoistableStyles,D=A.get(l);if(D||(C=C.ownerDocument||C,D={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},A.set(l,D),(A=C.querySelector(qf(l)))&&!A._p&&(D.instance=A,D.state.loading=5),xs.has(l)||(g={rel:"preload",as:"style",href:g.href,crossOrigin:g.crossOrigin,integrity:g.integrity,media:g.media,hrefLang:g.hrefLang,referrerPolicy:g.referrerPolicy},xs.set(l,g),A||Ute(C,l,g,D.state))),u&&b===null)throw Error(a(528,""));return D}if(u&&b!==null)throw Error(a(529,""));return null;case"script":return u=g.async,g=g.src,typeof g=="string"&&u&&typeof u!="function"&&typeof u!="symbol"?(u=fm(g),g=Eu(C).hoistableScripts,b=g.get(u),b||(b={type:"script",instance:null,count:0,state:null},g.set(u,b)),b):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,l))}}function pm(l){return'href="'+ms(l)+'"'}function qf(l){return'link[rel="stylesheet"]['+l+"]"}function tI(l){return p({},l,{"data-precedence":l.precedence,precedence:null})}function Ute(l,u,g,b){l.querySelector('link[rel="preload"][as="style"]['+u+"]")?b.loading=1:(u=l.createElement("link"),b.preload=u,u.addEventListener("load",function(){return b.loading|=1}),u.addEventListener("error",function(){return b.loading|=2}),$a(u,"link",g),aa(u),l.head.appendChild(u))}function fm(l){return'[src="'+ms(l)+'"]'}function Hf(l){return"script[async]"+l}function nI(l,u,g){if(u.count++,u.instance===null)switch(u.type){case"style":var b=l.querySelector('style[data-href~="'+ms(g.href)+'"]');if(b)return u.instance=b,aa(b),b;var C=p({},g,{"data-href":g.href,"data-precedence":g.precedence,href:null,precedence:null});return b=(l.ownerDocument||l).createElement("style"),aa(b),$a(b,"style",C),Ov(b,g.precedence,l),u.instance=b;case"stylesheet":C=pm(g.href);var A=l.querySelector(qf(C));if(A)return u.state.loading|=4,u.instance=A,aa(A),A;b=tI(g),(C=xs.get(C))&&t1(b,C),A=(l.ownerDocument||l).createElement("link"),aa(A);var D=A;return D._p=new Promise(function(U,Z){D.onload=U,D.onerror=Z}),$a(A,"link",b),u.state.loading|=4,Ov(A,g.precedence,l),u.instance=A;case"script":return A=fm(g.src),(C=l.querySelector(Hf(A)))?(u.instance=C,aa(C),C):(b=g,(C=xs.get(A))&&(b=p({},g),n1(b,C)),l=l.ownerDocument||l,C=l.createElement("script"),aa(C),$a(C,"link",b),l.head.appendChild(C),u.instance=C);case"void":return null;default:throw Error(a(443,u.type))}else u.type==="stylesheet"&&(u.state.loading&4)===0&&(b=u.instance,u.state.loading|=4,Ov(b,g.precedence,l));return u.instance}function Ov(l,u,g){for(var b=g.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),C=b.length?b[b.length-1]:null,A=C,D=0;D<b.length;D++){var U=b[D];if(U.dataset.precedence===u)A=U;else if(A!==C)break}A?A.parentNode.insertBefore(l,A.nextSibling):(u=g.nodeType===9?g.head:g,u.insertBefore(l,u.firstChild))}function t1(l,u){l.crossOrigin==null&&(l.crossOrigin=u.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=u.referrerPolicy),l.title==null&&(l.title=u.title)}function n1(l,u){l.crossOrigin==null&&(l.crossOrigin=u.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=u.referrerPolicy),l.integrity==null&&(l.integrity=u.integrity)}var Lv=null;function aI(l,u,g){if(Lv===null){var b=new Map,C=Lv=new Map;C.set(g,b)}else C=Lv,b=C.get(g),b||(b=new Map,C.set(g,b));if(b.has(l))return b;for(b.set(l,null),g=g.getElementsByTagName(l),C=0;C<g.length;C++){var A=g[C];if(!(A[sf]||A[ya]||l==="link"&&A.getAttribute("rel")==="stylesheet")&&A.namespaceURI!=="http://www.w3.org/2000/svg"){var D=A.getAttribute(u)||"";D=l+D;var U=b.get(D);U?U.push(A):b.set(D,[A])}}return b}function oI(l,u,g){l=l.ownerDocument||l,l.head.insertBefore(g,u==="title"?l.querySelector("head > title"):null)}function Bte(l,u,g){if(g===1||u.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof u.precedence!="string"||typeof u.href!="string"||u.href==="")break;return!0;case"link":if(typeof u.rel!="string"||typeof u.href!="string"||u.href===""||u.onLoad||u.onError)break;switch(u.rel){case"stylesheet":return l=u.disabled,typeof u.precedence=="string"&&l==null;default:return!0}case"script":if(u.async&&typeof u.async!="function"&&typeof u.async!="symbol"&&!u.onLoad&&!u.onError&&u.src&&typeof u.src=="string")return!0}return!1}function sI(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Fte(l,u,g,b){if(g.type==="stylesheet"&&(typeof b.media!="str
50ing"||matchMedia(b.media).matches!==!1)&&(g.state.loading&4)===0){if(g.instance===null){var C=pm(b.href),A=u.querySelector(qf(C));if(A){u=A._p,u!==null&&typeof u=="object"&&typeof u.then=="function"&&(l.count++,l=Uv.bind(l),u.then(l,l)),g.state.loading|=4,g.instance=A,aa(A);return}A=u.ownerDocument||u,b=tI(b),(C=xs.get(C))&&t1(b,C),A=A.createElement("link"),aa(A);var D=A;D._p=new Promise(function(U,Z){D.onload=U,D.onerror=Z}),$a(A,"link",b),g.instance=A}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(g,u),(u=g.state.preload)&&(g.state.loading&3)===0&&(l.count++,g=Uv.bind(l),u.addEventListener("load",g),u.addEventListener("error",g))}}var a1=0;function zte(l,u){return l.stylesheets&&l.count===0&&Fv(l,l.stylesheets),0<l.count||0<l.imgCount?function(g){var b=setTimeout(function(){if(l.stylesheets&&Fv(l,l.stylesheets),l.unsuspend){var A=l.unsuspend;l.unsuspend=null,A()}},6e4+u);0<l.imgBytes&&a1===0&&(a1=62500*wte());var C=setTimeout(function(){if(l.waitingForImages=!1,l.count===0&&(l.stylesheets&&Fv(l,l.stylesheets),l.unsuspend)){var A=l.unsuspend;l.unsuspend=null,A()}},(l.imgBytes>a1?50:800)+u);return l.unsuspend=g,function(){l.unsuspend=null,clearTimeout(b),clearTimeout(C)}}:null}function Uv(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Fv(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Bv=null;function Fv(l,u){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Bv=new Map,u.forEach(qte,l),Bv=null,Uv.call(l))}function qte(l,u){if(!(u.state.loading&4)){var g=Bv.get(l);if(g)var b=g.get(null);else{g=new Map,Bv.set(l,g);for(var C=l.querySelectorAll("link[data-precedence],style[data-precedence]"),A=0;A<C.length;A++){var D=C[A];(D.nodeName==="LINK"||D.getAttribute("media")!=="not all")&&(g.set(D.dataset.precedence,D),b=D)}b&&g.set(null,b)}C=u.instance,D=C.getAttribute("data-precedence"),A=g.get(D)||b,A===b&&g.set(null,C),g.set(D,C),this.count++,b=Uv.bind(this),C.addEventListener("load",b),C.addEventListener("error",b),A?A.parentNode.insertBefore(C,A.nextSibling):(l=l.nodeType===9?l.head:l,l.insertBefore(C,l.firstChild)),u.state.loading|=4}}var Vf={$$typeof:T,Provider:null,Consumer:null,_currentValue:F,_currentValue2:F,_threadCount:0};function Hte(l,u,g,b,C,A,D,U,Z){this.tag=1,this.containerInfo=l,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=Wa(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Wa(0),this.hiddenUpdates=Wa(null),this.identifierPrefix=b,this.onUncaughtError=C,this.onCaughtError=A,this.onRecoverableError=D,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=Z,this.incompleteTransitions=new Map}function rI(l,u,g,b,C,A,D,U,Z,le,be,$e){return l=new Hte(l,u,g,D,Z,le,be,$e,U),u=1,A===!0&&(u|=24),A=Mo(3,null,null,u),l.current=A,A.stateNode=l,u=Ik(),u.refCount++,l.pooledCache=u,u.refCount++,A.memoizedState={element:b,isDehydrated:g,cache:u},Bk(A),l}function iI(l){return l?(l=Vu,l):Vu}function lI(l,u,g,b,C,A){C=iI(C),b.context===null?b.context=C:b.pendingContext=C,b=Al(u),b.payload={element:g},A=A===void 0?null:A,A!==null&&(b.callback=A),g=Tl(l,b,u),g!==null&&(yo(g,l,u),kf(g,l,u))}function cI(l,u){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var g=l.retryLane;l.retryLane=g!==0&&g<u?g:u}}function o1(l,u){cI(l,u),(l=l.alternate)&&cI(l,u)}function dI(l){if(l.tag===13||l.tag===31){var u=Zc(l,67108864);u!==null&&yo(u,l,67108864),o1(l,67108864)}}function uI(l){if(l.tag===13||l.tag===31){var u=Uo();u=J0(u);var g=Zc(l,u);g!==null&&yo(g,l,u),o1(l,u)}}var zv=!0;function Vte(l,u,g,b){var C=q.T;q.T=null;var A=M.p;try{M.p=2,s1(l,u,g,b)}finally{M.p=A,q.T=C}}function Kte(l,u,g,b){var C=q.T;q.T=null;var A=M.p;try{M.p=8,s1(l,u,g,b)}finally{M.p=A,q.T=C}}function s1(l,u,g,b){if(zv){var C=r1(b);if(C===null)VC(l,u,b,qv,g),pI(l,b);else if(Wte(C,l,u,g,b))b.stopPropagation();else if(pI(l,b),u&4&&-1<Gte.indexOf(l)){for(;C!==null;){var A=Mu(C);if(A!==null)switch(A.tag){case 3:if(A=A.stateNode,A.current.memoizedState.isDehydrated){var D=_a(A.pendingLanes);if(D!==0){var U=A;for(U.pendingLanes|=2,U.entangledLanes|=2;D;){var Z=1<<31-En(D);U.entanglements[1]|=Z,D&=~Z}Dr(A),(Dt&6)===0&&(Sv=rt()+500,Uf(0))}}break;case 31:case 13:U=Zc(A,2),U!==null&&yo(U,A,2),Tv(),o1(A,2)}if(A=r1(b),A===null&&VC(l,u,b,qv,g),A===C)break;C=A}C!==null&&b.stopPropagation()}else VC(l,u,b,null,g)}}function r1(l){return l=lk(l),i1(l)}var qv=null;function i1(l){if(qv=null,l=Du(l),l!==null){var u=r(l);if(u===null)l=null;else{var g=u.tag;if(g===13){if(l=i(u),l!==null)return l;l=null}else if(g===31){if(l=c(u),l!==null)return l;l=null}else if(g===3){if(u.stateNode.current.memoizedState.isDehydrated)return u.tag===3?u.stateNode.containerInfo:null;l=null}else u!==l&&(l=null)}}return qv=l,null}function mI(l){switch(l){case"beforetoggle":case"cancel":case"click":case"close"
vendor: 4,145 bytes, line 50
50: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(na()){case cn:return 2;case vn:return 8;case ds:case Vc:return 32;case Kc:return 268435456;default:return 32}default:return 32}}var l1=!1,Ll=null,Ul=null,Bl=null,Kf=new Map,Gf=new Map,Fl=[],Gte="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 pI(l,u){switch(l){case"focusin":case"focusout":Ll=null;break;case"dragenter":case"dragleave":Ul=null;break;case"mouseover":case"mouseout":Bl=null;break;case"pointerover":case"pointerout":Kf.delete(u.pointerId);break;case"gotpointercapture":case"lostpointercapture":Gf.delete(u.pointerId)}}function Wf(l,u,g,b,C,A){return l===null||l.nativeEvent!==A?(l={blockedOn:u,domEventName:g,eventSystemFlags:b,nativeEvent:A,targetContainers:[C]},u!==null&&(u=Mu(u),u!==null&&dI(u)),l):(l.eventSystemFlags|=b,u=l.targetContainers,C!==null&&u.indexOf(C)===-1&&u.push(C),l)}function Wte(l,u,g,b,C){switch(u){case"focusin":return Ll=Wf(Ll,l,u,g,b,C),!0;case"dragenter":return Ul=Wf(Ul,l,u,g,b,C),!0;case"mouseover":return Bl=Wf(Bl,l,u,g,b,C),!0;case"pointerover":var A=C.pointerId;return Kf.set(A,Wf(Kf.get(A)||null,l,u,g,b,C)),!0;case"gotpointercapture":return A=C.pointerId,Gf.set(A,Wf(Gf.get(A)||null,l,u,g,b,C)),!0}return!1}function fI(l){var u=Du(l.target);if(u!==null){var g=r(u);if(g!==null){if(u=g.tag,u===13){if(u=i(g),u!==null){l.blockedOn=u,RN(l.priority,function(){uI(g)});return}}else if(u===31){if(u=c(g),u!==null){l.blockedOn=u,RN(l.priority,function(){uI(g)});return}}else if(u===3&&g.stateNode.current.memoizedState.isDehydrated){l.blockedOn=g.tag===3?g.stateNode.containerInfo:null;return}}}l.blockedOn=null}function Hv(l){if(l.blockedOn!==null)return!1;for(var u=l.targetContainers;0<u.length;){var g=r1(l.nativeEvent);if(g===null){g=l.nativeEvent;var b=new g.constructor(g.type,g);ik=b,g.target.dispatchEvent(b),ik=null}else return u=Mu(g),u!==null&&dI(u),l.blockedOn=g,!1;u.shift()}return!0}function gI(l,u,g){Hv(l)&&g.delete(u)}function Yte(){l1=!1,Ll!==null&&Hv(Ll)&&(Ll=null),Ul!==null&&Hv(Ul)&&(Ul=null),Bl!==null&&Hv(Bl)&&(Bl=null),Kf.forEach(gI),Gf.forEach(gI)}function Vv(l,u){l.blockedOn===u&&(l.blockedOn=null,l1||(l1=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,Yte)))}var Kv=null;function hI(l){Kv!==l&&(Kv=l,e.unstable_scheduleCallback(e.unstable_NormalPriority,function(){Kv===l&&(Kv=null);for(var u=0;u<l.length;u+=3){var g=l[u],b=l[u+1],C=l[u+2];if(typeof b!="function"){if(i1(b||g)===null)continue;break}var A=Mu(g);A!==null&&(l.splice(u,3),u-=3,rC(A,{pending:!0,data:C,method:g.method,action:b},b,C))}}))}function gm(l){function u(Z){return Vv(Z,l)}Ll!==null&&Vv(Ll,l),Ul!==null&&Vv(Ul,l),Bl!==null&&Vv(Bl,l),Kf.forEach(u),Gf.forEach(u);for(var g=0;g<Fl.length;g++){var b=Fl[g];b.blockedOn===l&&(b.blockedOn=null)}for(;0<Fl.length&&(g=Fl[0],g.blockedOn===null);)fI(g),g.blockedOn===null&&Fl.shift();if(g=(l.ownerDocument||l).$$reactFormReplay,g!=null)for(b=0;b<g.length;
vendor: 8,746 bytes, line 50
50b+=3){var C=g[b],A=g[b+1],D=C[uo]||null;if(typeof A=="function")D||hI(g);else if(D){var U=null;if(A&&A.hasAttribute("formAction")){if(C=A,D=A[uo]||null)U=D.formAction;else if(i1(C)!==null)continue}else U=D.action;typeof U=="function"?g[b+1]=U:(g.splice(b,3),b-=3),hI(g)}}}function yI(){function l(A){A.canIntercept&&A.info==="react-transition"&&A.intercept({handler:function(){return new Promise(function(D){return C=D})},focusReset:"manual",scroll:"manual"})}function u(){C!==null&&(C(),C=null),b||setTimeout(g,20)}function g(){if(!b&&!navigation.transition){var A=navigation.currentEntry;A&&A.url!=null&&navigation.navigate(A.url,{state:A.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var b=!1,C=null;return navigation.addEventListener("navigate",l),navigation.addEventListener("navigatesuccess",u),navigation.addEventListener("navigateerror",u),setTimeout(g,100),function(){b=!0,navigation.removeEventListener("navigate",l),navigation.removeEventListener("navigatesuccess",u),navigation.removeEventListener("navigateerror",u),C!==null&&(C(),C=null)}}}function c1(l){this._internalRoot=l}Gv.prototype.render=c1.prototype.render=function(l){var u=this._internalRoot;if(u===null)throw Error(a(409));var g=u.current,b=Uo();lI(g,b,l,u,null,null)},Gv.prototype.unmount=c1.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var u=l.containerInfo;lI(l.current,2,null,l,null,null),Tv(),u[Nu]=null}};function Gv(l){this._internalRoot=l}Gv.prototype.unstable_scheduleHydration=function(l){if(l){var u=TN();l={blockedOn:null,target:l,priority:u};for(var g=0;g<Fl.length&&u!==0&&u<Fl[g].priority;g++);Fl.splice(g,0,l),g===0&&fI(l)}};var vI=t.version;if(vI!=="19.2.6")throw Error(a(527,vI,"19.2.6"));M.findDOMNode=function(l){var u=l._reactInternals;if(u===void 0)throw typeof l.render=="function"?Error(a(188)):(l=Object.keys(l).join(","),Error(a(268,l)));return l=m(u),l=l!==null?f(l):null,l=l===null?null:l.stateNode,l};var Qte={bundleType:0,version:"19.2.6",rendererPackageName:"react-dom",currentDispatcherRef:q,reconcilerVersion:"19.2.6"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Wv=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Wv.isDisabled&&Wv.supportsFiber)try{hi=Wv.inject(Qte),Mn=Wv}catch{}}return Qf.createRoot=function(l,u){if(!s(l))throw Error(a(299));var g=!1,b="",C=SM,A=AM,D=TM;return u!=null&&(u.unstable_strictMode===!0&&(g=!0),u.identifierPrefix!==void 0&&(b=u.identifierPrefix),u.onUncaughtError!==void 0&&(C=u.onUncaughtError),u.onCaughtError!==void 0&&(A=u.onCaughtError),u.onRecoverableError!==void 0&&(D=u.onRecoverableError)),u=rI(l,1,!1,null,null,g,b,null,C,A,D,yI),l[Nu]=u.current,HC(l),new c1(u)},Qf.hydrateRoot=function(l,u,g){if(!s(l))throw Error(a(299));var b=!1,C="",A=SM,D=AM,U=TM,Z=null;return g!=null&&(g.unstable_strictMode===!0&&(b=!0),g.identifierPrefix!==void 0&&(C=g.identifierPrefix),g.onUncaughtError!==void 0&&(A=g.onUncaughtError),g.onCaughtError!==void 0&&(D=g.onCaughtError),g.onRecoverableError!==void 0&&(U=g.onRecoverableError),g.formState!==void 0&&(Z=g.formState)),u=rI(l,1,!0,u,g??null,b,C,Z,A,D,U,yI),u.context=iI(null),g=u.current,b=Uo(),b=J0(b),C=Al(b),C.callback=null,Tl(g,C,b),g=b,u.current.lanes=g,ha(u,g),Dr(u),l[Nu]=u.current,HC(l),new Gv(u)},Qf.version="19.2.6",Qf}var _I;function lne(){if(_I)return p1.exports;_I=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),p1.exports=ine(),p1.exports}var H8=lne(),Np=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},jd,sc,Zm,N8,cne=(N8=class extends Np{constructor(){super();We(this,jd);We(this,sc);We(this,Zm);Le(this,Zm,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){J(this,sc)||this.setEventListener(J(this,Zm))}onUnsubscribe(){var t;this.hasListeners()||((t=J(this,sc))==null||t.call(this),Le(this,sc,void 0))}setEventListener(t){var n;Le(this,Zm,t),(n=J(this,sc))==null||n.call(this),Le(this,sc,t(a=>{typeof a=="boolean"?this.setFocused(a):this.onFocus()}))}setFocused(t){J(this,jd)!==t&&(Le(this,jd,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){return typeof J(this,jd)=="boolean"?J(this,jd):globalThis.document?.visibilityState!=="hidden"}},jd=new WeakMap,sc=new WeakMap,Zm=new WeakMap,N8),QP=new cne,dne={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},rc,YP,D8,une=(D8=class{constructor(){We(this,rc,dne);We(this,YP,!1)}setTimeoutProvider(e){Le(this,rc,e)}setTimeout(e,t){return J(this,rc).setTimeout(e,t)}clearTimeout(e){J(this,rc).clearTimeout(e)}setInterval(e,t){return J(this,rc).setInterval(e,t)}clearInterval(e){J(this,rc).clearInterval(e)}},rc=new WeakMap,YP=new WeakMap,D8),Sd=new une;function mne(e){setTimeout(e,0)}var pne=typeof window>"u"||"Deno"in globalThis;function Za(){}function fne(e,t){return typeof e=="function"?e(t):e}function bT(e){return typeof e=="number"&&e>=0&&e!==1/0}function V8(e,t){return Math.max(e+(t||0)-Date.now(),0)}function vc(e,t){return typeof e=="function"?e(t):e}function qo(e,t){return typeof e=="function"?e(t):e}function jI(e,t){const{type:n="all",exact:a,fetchStatus:s,predicate:r,queryKey:i,stale:c}=e;if(i){if(a){if(t.queryHash!==XP(i,t.options))return!1}else if(!Vg(t.queryKey,i))return!1}if(n!=="all"){const d=t.isActive();if(n==="active"&&!d||n==="inactive"&&d)return!1}return!(typeof c=="boolean"&&t.isStale()!==c||s&&s!==t.state.fetchStatus||r&&!r(t))}function NI(e,t){const{exact:n,status:a,predicate:s,mutationKey:r}=e;if(r){if(!t.options.mutationKey)return!1;if(n){if(Kd(t.options.mutationKey)!==Kd(r))return!1}else if(!Vg(t.options.mutationKey,r))return!1}return!(a&&t.state.status!==a||s&&!s(t))}function XP(e,t){return(t?.queryKeyHashFn||Kd)(e)}function Kd(e){return JSON.stringify(e,(t,n)=>xT(n)?Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{}):n)}function Vg(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Vg(e[n],t[n])):!1}var gne=Object.prototype.hasOwnProperty;function K8(e,t,n=0){if(e===t)return e;if(n>500)return t;const a=DI(e)&&DI(t);if(!a&&!(xT(e)&&xT(t)))return t;const r=(a?e:Object.keys(e)).length,i=a?t:Object.keys(t),c=i.length,d=a?new Array(c):{};let m=0;for(let f=0;f<c;f++){const p=a?f:i[f],y=e[p],v=t[p];if(y===v){d[p]=y,(a?f<r:gne.call(e,p))&&m++;continue}if(y===null||v===null||typeof y!="object"||typeof v!="object"){d[p]=v;continue}const $=K8(y,v,n+1);d[p]=$,$===y&&m++}return r===c&&m===r?e:d}function $x(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function DI(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function xT(e){if(!MI(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!MI(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function MI(e){return Object.prototype.toString.call(e)==="[object Object]"}function hne(e){return new Promise(t=>{Sd.setTimeout(t,e)})}function $T(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?K8(e,t):t}function yne(e,t,n=0){const a=[...e,t];return n&&a.length>n?a.slice(1):a}function vne(e,t,n=0){const a=[t,...e];return n&&a.length>n?a.slice(0,-1):a}var ZP=Symbol();function G8(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===ZP?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function JP(e,t){return typeof e=="function"?e(...t):!!e}function bne(e,t,n){let a=!1,s;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??(s=t()),a||(a=!0,s.aborted?n():s.addEventListener("abort",n,{once:!0})),s)}),e}var Kg=(()=>{let e=()=>pne;return{isServer(){return e()},setIsServer(t){e=t}}})();function wT(){let e,t;const n=new Promise((s,r)=>{e=s,t=r});n.status="pending",n.catch(()=>{});function a(s){Object.assign(n,s),delete n.resolve,delete n.reject}return n.resolve=s=>{a({status:"fulfilled",value:s}),e(s)},n.reject=s=>{a({status:"rejected",reason:s}),t(s)},n}var xne=mne;function $ne(){let e=[],t=0,n=c=>{c()},a=c=>{c()},s=xne;const r=c=>{t?e.push(c):s(()=>{n(c)})},i=()=>{const c=e;e=[],c.length&&s(()=>{a(()=>
50{c.forEach(d=>{n(d)})})})};return{batch:c=>{let d;t++;try{d=c()}finally{t--,t||i()}return d},batchCalls:c=>(...d)=>{r(()=>{c(...d)})},schedule:r,setNotifyFunction:c=>{n=c},setBatchNotifyFunction:c=>{a=c},setScheduler:c=>{s=c}}}var Xn=$ne(),Jm,ic,ep,M8,wne=(M8=class extends Np{constructor(){super();We(this,Jm,!0);We(this,ic);We(this,ep);Le(this,ep,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),a=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",a)}}})}onSubscribe(){J(this,ic)||this.setEventListener(J(this,ep))}onUnsubscribe(){var t;this.hasListeners()||((t=J(this,ic))==null||t.call(this),Le(this,ic,void 0))}setEventListener(t){var n;Le(this,ep,t),(n=J(this,ic))==null||n.call(this),Le(this,ic,t(this.setOnline.bind(this)))}setOnline(t){J(this,Jm)!==t&&(Le(this,Jm,t),this.listeners.forEach(a=>{a(t)}))}isOnline(){return J(this,Jm)}},Jm=new WeakMap,ic=new WeakMap,ep=new WeakMap,M8),wx=new wne;function kne(e){return Math.min(1e3*2**e,3e4)}function W8(e){return(e??"online")==="online"?wx.isOnline():!0}var kT=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function Y8(e){let t=!1,n=0,a;const s=wT(),r=()=>s.status!=="pending",i=x=>{if(!r()){const w=new kT(x);y(w),e.onCancel?.(w)}},c=()=>{t=!0},d=()=>{t=!1},m=()=>QP.isFocused()&&(e.networkMode==="always"||wx.isOnline())&&e.canRun(),f=()=>W8(e.networkMode)&&e.canRun(),p=x=>{r()||(a?.(),s.resolve(x))},y=x=>{r()||(a?.(),s.reject(x))},v=()=>new Promise(x=>{a=w=>{(r()||m())&&x(w)},e.onPause?.()}).then(()=>{a=void 0,r()||e.onContinue?.()}),$=()=>{if(r())return;let x;const w=n===0?e.initialPromise:void 0;try{x=w??e.fn()}catch(S){x=Promise.reject(S)}Promise.resolve(x).then(p).catch(S=>{if(r())return;const k=e.retry??(Kg.isServer()?0:3),T=e.retryDelay??kne,R=typeof T=="function"?T(n,S):T,_=k===!0||typeof k=="number"&&n<k||typeof k=="function"&&k(n,S);if(t||!_){y(S);return}n++,e.onFail?.(n,S),hne(R).then(()=>m()?void 0:v()).then(()=>{t?y(S):$()})})};return{promise:s,status:()=>s.status,cancel:i,continue:()=>(a?.(),s),cancelRetry:c,continueRetry:d,canStart:f,start:()=>(f()?$():v().then($),s)}}var Nd,E8,Q8=(E8=class{constructor(){We(this,Nd)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),bT(this.gcTime)&&Le(this,Nd,Sd.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Kg.isServer()?1/0:300*1e3))}clearGcTimeout(){J(this,Nd)!==void 0&&(Sd.clearTimeout(J(this,Nd)),Le(this,Nd,void 0))}},Nd=new WeakMap,E8);function Cne(e){return{onFetch:(t,n)=>{const a=t.options,s=t.fetchOptions?.meta?.fetchMore?.direction,r=t.state.data?.pages||[],i=t.state.data?.pageParams||[];let c={pages:[],pageParams:[]},d=0;const m=async()=>{let f=!1;const p=$=>{bne($,()=>t.signal,()=>f=!0)},y=G8(t.options,t.fetchOptions),v=async($,x,w)=>{if(f)return Promise.reject(t.signal.reason);if(x==null&&$.pages.length)return Promise.resolve($);const k=(()=>{const P={client:t.client,queryKey:t.queryKey,pageParam:x,direction:w?"backward":"forward",meta:t.options.meta};return p(P),P})(),T=await y(k),{maxPages:R}=t.options,_=w?vne:yne;return{pages:_($.pages,T,R),pageParams:_($.pageParams,x,R)}};if(s&&r.length){const $=s==="backward",x=$?X8:CT,w={pages:r,pageParams:i},S=x(a,w);c=await v(w,S,$)}else{const $=e??r.length;do{const x=d===0?i[0]??a.initialPageParam:CT(a,c);if(d>0&&x==null)break;c=await v(c,x),d++}while(d<$)}return c};t.options.persister?t.fetchFn=()=>t.options.persister?.(m,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=m}}}function CT(e,{pages:t,pageParams:n}){const a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,n[a],n):void 0}function X8(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function Sne(e,t){return t?CT(e,t)!=null:!1}function Ane(e,t){return!t||!e.getPreviousPageParam?!1:X8(e,t)!=null}var tp,Dd,np,Ts,Md,sa,Dh,Ed,zo,Z8,Oi,I8,Tne=(I8=class extends Q8{constructor(t){super();We(this,zo);We(this,tp);We(this,Dd);We(this,np);We(this,Ts);We(this,Md);We(this,sa);We(this,Dh);We(this,Ed);Le(this,Ed,!1),Le(this,Dh,t.defaultOptions),this.setOptions(t.options),this.observers=[],Le(this,Md,t.client),Le(this,Ts,J(this,Md).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,Le(this,Dd,II(this.options)),this.state=t.state??J(this,Dd),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return J(this,tp)}get promise(){return J(this,sa)?.promise}setOptions(t){if(this.options={...J(this,Dh),...t},t?._type&&Le(this,tp,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=II(this.options);n.data!==void 0&&(this.setState(EI(n.data,n.dataUpdatedAt)),Le(this,Dd,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&J(this,Ts).remove(this)}setData(t,n){const a=$T(this.state.data,t,this.options);return pt(this,zo,Oi).call(this,{data:a,type:"success",dataUpdatedAt:n?.updatedAt,manual:n?.manual}),a}setState(t){pt(this,zo,Oi).call(this,{type:"setState",state:t})}cancel(t){const n=J(this,sa)?.promise;
50return J(this,sa)?.cancel(t),n?n.then(Za).catch(Za):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return J(this,Dd)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>qo(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ZP||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>vc(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!V8(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(n=>n.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),J(this,sa)?.continue()}onOnline(){this.observers.find(n=>n.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),J(this,sa)?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),J(this,Ts).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(J(this,sa)&&(J(this,Ed)||pt(this,zo,Z8).call(this)?J(this,sa).cancel({revert:!0}):J(this,sa).cancelRetry()),this.scheduleGc()),J(this,Ts).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||pt(this,zo,Oi).call(this,{type:"invalidate"})}async fetch(t,n){if(this.state.fetchStatus!=="idle"&&J(this,sa)?.status()!=="rejected"){if(this.state.data!==void 0&&n?.cancelRefetch)this.cancel({silent:!0});else if(J(this,sa))return J(this,sa).continueRetry(),J(this,sa).promise}if(t&&this.setOptions(t),!this.options.queryFn){const m=this.observers.find(f=>f.options.queryFn);m&&this.setOptions(m.options)}const a=new AbortController,s=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(Le(this,Ed,!0),a.signal)})},r=()=>{const m=G8(this.options,n),p=(()=>{const y={client:J(this,Md),queryKey:this.queryKey,meta:this.meta};return s(y),y})();return Le(this,Ed,!1),this.options.persister?this.options.persister(m,p,this):m(p)},c=(()=>{const m={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:J(this,Md),state:this.state,fetchFn:r};return s(m),m})();(J(this,tp)==="infinite"?Cne(this.options.pages):this.options.behavior)?.onFetch(c,this),Le(this,np,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==c.fetchOptions?.meta)&&pt(this,zo,Oi).call(this,{type:"fetch",meta:c.fetchOptions?.meta}),Le(this,sa,Y8({initialPromise:n?.initialPromise,fn:c.fetchFn,onCancel:m=>{m instanceof kT&&m.revert&&this.setState({...J(this,np),fetchStatus:"idle"}),a.abort()},onFail:(m,f)=>{pt(this,zo,Oi).call(this,{type:"failed",failureCount:m,error:f})},onPause:()=>{pt(this,zo,Oi).call(this,{type:"pause"})},onContinue:()=>{pt(this,zo,Oi).call(this,{type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode,canRun:()=>!0}));try{const m=await J(this,sa).start();if(m===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(m),J(this,Ts).config.onSuccess?.(m,this),J(this,Ts).config.onSettled?.(m,this.state.error,this),m}catch(m){if(m instanceof kT){if(m.silent)return J(this,sa).promise;if(m.revert){if(this.state.data===void 0)throw m;return this.state.data}}throw pt(this,zo,Oi).call(this,{type:"error",error:m}),J(this,Ts).config.onError?.(m,this),J(this,Ts).config.onSettled?.(this.state.data,m,this),m}finally{this.scheduleGc()}}},tp=new WeakMap,Dd=new WeakMap,np=new WeakMap,Ts=new WeakMap,Md=new WeakMap,sa=new WeakMap,Dh=new WeakMap,Ed=new WeakMap,zo=new WeakSet,Z8=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},Oi=function(t){const n=a=>{switch(t.type){case"failed":return{...a,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...J8(a.data,this.options),fetchMeta:t.meta??null};case"success":const s={...a,...EI(t.data,t.dataUpdatedAt),dataUpdateCount:a.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return Le(this,np,t.manual?s:void 0),s;case"error":const r=t.error;
50return{...a,error:r,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...t.state}}};this.state=n(this.state),Xn.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),J(this,Ts).notify({query:this,type:"updated",action:t})})},I8);function J8(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:W8(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function EI(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function II(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,a=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?a??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var bo,Ct,Mh,Xa,Id,ap,Bi,lc,Eh,op,sp,Od,Ld,cc,rp,It,xg,ST,AT,TT,RT,PT,_T,jT,tF,O8,eF=(O8=class extends Np{constructor(t,n){super();We(this,It);We(this,bo);We(this,Ct);We(this,Mh);We(this,Xa);We(this,Id);We(this,ap);We(this,Bi);We(this,lc);We(this,Eh);We(this,op);We(this,sp);We(this,Od);We(this,Ld);We(this,cc);We(this,rp,new Set);this.options=n,Le(this,bo,t),Le(this,lc,null),Le(this,Bi,wT()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(J(this,Ct).addObserver(this),OI(J(this,Ct),this.options)?pt(this,It,xg).call(this):this.updateResult(),pt(this,It,RT).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return NT(J(this,Ct),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return NT(J(this,Ct),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,pt(this,It,PT).call(this),pt(this,It,_T).call(this),J(this,Ct).removeObserver(this)}setOptions(t){const n=this.options,a=J(this,Ct);if(this.options=J(this,bo).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof qo(this.options.enabled,J(this,Ct))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");pt(this,It,jT).call(this),J(this,Ct).setOptions(this.options),n._defaulted&&!$x(this.options,n)&&J(this,bo).getQueryCache().notify({type:"observerOptionsUpdated",query:J(this,Ct),observer:this});const s=this.hasListeners();s&&LI(J(this,Ct),a,this.options,n)&&pt(this,It,xg).call(this),this.updateResult(),s&&(J(this,Ct)!==a||qo(this.options.enabled,J(this,Ct))!==qo(n.enabled,J(this,Ct))||vc(this.options.staleTime,J(this,Ct))!==vc(n.staleTime,J(this,Ct)))&&pt(this,It,ST).call(this);const r=pt(this,It,AT).call(this);s&&(J(this,Ct)!==a||qo(this.options.enabled,J(this,Ct))!==qo(n.enabled,J(this,Ct))||r!==J(this,cc))&&pt(this,It,TT).call(this,r)}getOptimisticResult(t){const n=J(this,bo).getQueryCache().build(J(this,bo),t),a=this.createResult(n,t);return Pne(this,a)&&(Le(this,Xa,a),Le(this,ap,this.options),Le(this,Id,J(this,Ct).state)),a}getCurrentResult(){return J(this,Xa)}trackResult(t,n){return new Proxy(t,{get:(a,s)=>(this.trackProp(s),n?.(s),s==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&J(this,Bi).status==="pending"&&J(this,Bi).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(a,s))})}trackProp(t){J(this,rp).add(t)}getCurrentQuery(){return J(this,Ct)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=J(this,bo).defaultQueryOptions(t),a=J(this,bo).getQueryCache().build(J(this,bo),n);return a.fetch().then(()=>this.createResult(a,n))}fetch(t){return pt(this,It,xg).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),J(this,Xa)))}createResult(t,n){const a=J(this,Ct),s=this.options,r=J(this,Xa),i=J(this,Id),c=J(this,ap),m=t!==a?t.state:J(this,Mh),{state:f}=t;let p={...f},y=!1,v;if(n._optimisticResults){const I=this.hasListeners(),z=!I&&OI(t,n),E=I&&LI(t,a,n,s);(z||E)&&(p={...p,...J8(f.data,t.options)}),n._optimisticResults==="isRestoring"&&(p.fetchStatus="idle")}let{error:$,errorUpdatedAt:x,status:w}=p;v=p.data;let S=!1;if(n.placeholderData!==void 0&&v===void 0&&w==="pending"){let I;r?.isPlaceholderData&&n.placeholderData===c?.placeholderData?(I=r.data,S=!0):I=typeof n.placeholderData=="function"?n.placeholderData(J(this,sp)?.state.data,J(this,sp)):n.placeholderData,I!==void 0&&(w="success",v=$T(r?.data,I,n),y=!0)}if(n.select&&v!==void 0&&!S)if(r&&v===i?.data&&n.select===J(this,Eh))v=J(this,op);else try{Le(this,Eh,n.select),v=n.select(v),v=$T(r?.data,v,n),Le(this,op,v),Le(this,lc,null)}catch(I){Le(this,lc,I)}J(this,lc)&&($=J(this,lc),v=J(this,op),x=Date.now(),w="error");const k=p.fetchStatus==="fetching",T=w==="pending",R=w==="error",_=T&&
50k,P=v!==void 0,N={status:w,fetchStatus:p.fetchStatus,isPending:T,isSuccess:w==="success",isError:R,isInitialLoading:_,isLoading:_,data:v,dataUpdatedAt:p.dataUpdatedAt,error:$,errorUpdatedAt:x,failureCount:p.fetchFailureCount,failureReason:p.fetchFailureReason,errorUpdateCount:p.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:p.dataUpdateCount>m.dataUpdateCount||p.errorUpdateCount>m.errorUpdateCount,isFetching:k,isRefetching:k&&!T,isLoadingError:R&&!P,isPaused:p.fetchStatus==="paused",isPlaceholderData:y,isRefetchError:R&&P,isStale:e_(t,n),refetch:this.refetch,promise:J(this,Bi),isEnabled:qo(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const I=N.data!==void 0,z=N.status==="error"&&!I,E=V=>{z?V.reject(N.error):I&&V.resolve(N.data)},L=()=>{const V=Le(this,Bi,N.promise=wT());E(V)},O=J(this,Bi);switch(O.status){case"pending":t.queryHash===a.queryHash&&E(O);break;case"fulfilled":(z||N.data!==O.value)&&L();break;case"rejected":(!z||N.error!==O.reason)&&L();break}}return N}updateResult(){const t=J(this,Xa),n=this.createResult(J(this,Ct),this.options);if(Le(this,Id,J(this,Ct).state),Le(this,ap,this.options),J(this,Id).data!==void 0&&Le(this,sp,J(this,Ct)),$x(n,t))return;Le(this,Xa,n);const a=()=>{if(!t)return!0;const{notifyOnChangeProps:s}=this.options,r=typeof s=="function"?s():s;if(r==="all"||!r&&!J(this,rp).size)return!0;const i=new Set(r??J(this,rp));return this.options.throwOnError&&i.add("error"),Object.keys(J(this,Xa)).some(c=>{const d=c;return J(this,Xa)[d]!==t[d]&&i.has(d)})};pt(this,It,tF).call(this,{listeners:a()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&pt(this,It,RT).call(this)}},bo=new WeakMap,Ct=new WeakMap,Mh=new WeakMap,Xa=new WeakMap,Id=new WeakMap,ap=new WeakMap,Bi=new WeakMap,lc=new WeakMap,Eh=new WeakMap,op=new WeakMap,sp=new WeakMap,Od=new WeakMap,Ld=new WeakMap,cc=new WeakMap,rp=new WeakMap,It=new WeakSet,xg=function(t){pt(this,It,jT).call(this);let n=J(this,Ct).fetch(this.options,t);return t?.throwOnError||(n=n.catch(Za)),n},ST=function(){pt(this,It,PT).call(this);const t=vc(this.options.staleTime,J(this,Ct));if(Kg.isServer()||J(this,Xa).isStale||!bT(t))return;const a=V8(J(this,Xa).dataUpdatedAt,t)+1;Le(this,Od,Sd.setTimeout(()=>{J(this,Xa).isStale||this.updateResult()},a))},AT=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(J(this,Ct)):this.options.refetchInterval)??!1},TT=function(t){pt(this,It,_T).call(this),Le(this,cc,t),!(Kg.isServer()||qo(this.options.enabled,J(this,Ct))===!1||!bT(J(this,cc))||J(this,cc)===0)&&Le(this,Ld,Sd.setInterval(()=>{(this.options.refetchIntervalInBackground||QP.isFocused())&&pt(this,It,xg).call(this)},J(this,cc)))},RT=function(){pt(this,It,ST).call(this),pt(this,It,TT).call(this,pt(this,It,AT).call(this))},PT=function(){J(this,Od)!==void 0&&(Sd.clearTimeout(J(this,Od)),Le(this,Od,void 0))},_T=function(){J(this,Ld)!==void 0&&(Sd.clearInterval(J(this,Ld)),Le(this,Ld,void 0))},jT=function(){const t=J(this,bo).getQueryCache().build(J(this,bo),this.options);if(t===J(this,Ct))return;const n=J(this,Ct);Le(this,Ct,t),Le(this,Mh,t.state),this.hasListeners()&&(n?.removeObserver(this),t.addObserver(this))},tF=function(t){Xn.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(J(this,Xa))}),J(this,bo).getQueryCache().notify({query:J(this,Ct),type:"observerResultsUpdated"})})},O8);function Rne(e,t){return qo(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&qo(t.retryOnMount,e)===!1)}function OI(e,t){return Rne(e,t)||e.state.data!==void 0&&NT(e,t,t.refetchOnMount)}function NT(e,t,n){if(qo(t.enabled,e)!==!1&&vc(t.staleTime,e)!=="static"){const a=typeof n=="function"?n(e):n;return a==="always"||a!==!1&&e_(e,t)}return!1}function LI(e,t,n,a){return(e!==t||qo(a.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&e_(e,n)}function e_(e,t){return qo(t.enabled,e)!==!1&&e.isStaleByTime(vc(t.staleTime,e))}function Pne(e,t){return!$x(e.getCurrentResult(),t)}var _ne=class extends eF{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}
50fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){const{state:n}=e,a=super.createResult(e,t),{isFetching:s,isRefetching:r,isError:i,isRefetchError:c}=a,d=n.fetchMeta?.fetchMore?.direction,m=i&&d==="forward",f=s&&d==="forward",p=i&&d==="backward",y=s&&d==="backward";return{...a,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:Sne(t,n.data),hasPreviousPage:Ane(t,n.data),isFetchNextPageError:m,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:y,isRefetchError:c&&!m&&!p,isRefetching:r&&!f&&!y}}},Ih,zr,Ma,Ud,qr,Wl,L8,jne=(L8=class extends Q8{constructor(t){super();We(this,qr);We(this,Ih);We(this,zr);We(this,Ma);We(this,Ud);Le(this,Ih,t.client),this.mutationId=t.mutationId,Le(this,Ma,t.mutationCache),Le(this,zr,[]),this.state=t.state||nF(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){J(this,zr).includes(t)||(J(this,zr).push(t),this.clearGcTimeout(),J(this,Ma).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){Le(this,zr,J(this,zr).filter(n=>n!==t)),this.scheduleGc(),J(this,Ma).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){J(this,zr).length||(this.state.status==="pending"?this.scheduleGc():J(this,Ma).remove(this))}continue(){return J(this,Ud)?.continue()??this.execute(this.state.variables)}async execute(t){const n=()=>{pt(this,qr,Wl).call(this,{type:"continue"})},a={client:J(this,Ih),meta:this.options.meta,mutationKey:this.options.mutationKey};Le(this,Ud,Y8({fn:()=>this.options.mutationFn?this.options.mutationFn(t,a):Promise.reject(new Error("No mutationFn found")),onFail:(i,c)=>{pt(this,qr,Wl).call(this,{type:"failed",failureCount:i,error:c})},onPause:()=>{pt(this,qr,Wl).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>J(this,Ma).canRun(this)}));const s=this.state.status==="pending",r=!J(this,Ud).canStart();try{if(s)n();else{pt(this,qr,Wl).call(this,{type:"pending",variables:t,isPaused:r}),J(this,Ma).config.onMutate&&await J(this,Ma).config.onMutate(t,this,a);const c=await this.options.onMutate?.(t,a);c!==this.state.context&&pt(this,qr,Wl).call(this,{type:"pending",context:c,variables:t,isPaused:r})}const i=await J(this,Ud).start();return await J(this,Ma).config.onSuccess?.(i,t,this.state.context,this,a),await this.options.onSuccess?.(i,t,this.state.context,a),await J(this,Ma).config.onSettled?.(i,null,this.state.variables,this.state.context,this,a),await this.options.onSettled?.(i,null,t,this.state.context,a),pt(this,qr,Wl).call(this,{type:"success",data:i}),i}catch(i){try{await J(this,Ma).config.onError?.(i,t,this.state.context,this,a)}catch(c){Promise.reject(c)}try{await this.options.onError?.(i,t,this.state.context,a)}catch(c){Promise.reject(c)}try{await J(this,Ma).config.onSettled?.(void 0,i,this.state.variables,this.state.context,this,a)}catch(c){Promise.reject(c)}try{await this.options.onSettled?.(void 0,i,t,this.state.context,a)}catch(c){Promise.reject(c)}throw pt(this,qr,Wl).call(this,{type:"error",error:i}),i}finally{J(this,Ma).runNext(this)}}},Ih=new WeakMap,zr=new WeakMap,Ma=new WeakMap,Ud=new WeakMap,qr=new WeakSet,Wl=function(t){const n=a=>{switch(t.type){case"failed":return{...a,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};case"pending":return{...a,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...a,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:t.error,failureCount:a.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Xn.batch(()=>{J(this,zr).forEach(a=>{a.onMutationUpdate(t)}),J(this,Ma).notify({mutation:this,type:"updated",action:t})})},L8);function nF(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Fi,er,Oh,U8,Nne=(U8=class extends Np{constructor(t={}){super();We(this,Fi);We(this,er);
50We(this,Oh);this.config=t,Le(this,Fi,new Set),Le(this,er,new Map),Le(this,Oh,0)}build(t,n,a){const s=new jne({client:t,mutationCache:this,mutationId:++Yv(this,Oh)._,options:t.defaultMutationOptions(n),state:a});return this.add(s),s}add(t){J(this,Fi).add(t);const n=Qv(t);if(typeof n=="string"){const a=J(this,er).get(n);a?a.push(t):J(this,er).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(J(this,Fi).delete(t)){const n=Qv(t);if(typeof n=="string"){const a=J(this,er).get(n);if(a)if(a.length>1){const s=a.indexOf(t);s!==-1&&a.splice(s,1)}else a[0]===t&&J(this,er).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=Qv(t);if(typeof n=="string"){const s=J(this,er).get(n)?.find(r=>r.state.status==="pending");return!s||s===t}else return!0}runNext(t){const n=Qv(t);return typeof n=="string"?J(this,er).get(n)?.find(s=>s!==t&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){Xn.batch(()=>{J(this,Fi).forEach(t=>{this.notify({type:"removed",mutation:t})}),J(this,Fi).clear(),J(this,er).clear()})}getAll(){return Array.from(J(this,Fi))}find(t){const n={exact:!0,...t};return this.getAll().find(a=>NI(n,a))}findAll(t={}){return this.getAll().filter(n=>NI(t,n))}notify(t){Xn.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Xn.batch(()=>Promise.all(t.map(n=>n.continue().catch(Za))))}},Fi=new WeakMap,er=new WeakMap,Oh=new WeakMap,U8);function Qv(e){return e.options.scope?.id}var zi,dc,xo,qi,Qi,Yb,DT,B8,Dne=(B8=class extends Np{constructor(n,a){super();We(this,Qi);We(this,zi);We(this,dc);We(this,xo);We(this,qi);Le(this,zi,n),this.setOptions(a),this.bindMethods(),pt(this,Qi,Yb).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){const a=this.options;this.options=J(this,zi).defaultMutationOptions(n),$x(this.options,a)||J(this,zi).getMutationCache().notify({type:"observerOptionsUpdated",mutation:J(this,xo),observer:this}),a?.mutationKey&&this.options.mutationKey&&Kd(a.mutationKey)!==Kd(this.options.mutationKey)?this.reset():J(this,xo)?.state.status==="pending"&&J(this,xo).setOptions(this.options)}onUnsubscribe(){this.hasListeners()||J(this,xo)?.removeObserver(this)}onMutationUpdate(n){pt(this,Qi,Yb).call(this),pt(this,Qi,DT).call(this,n)}getCurrentResult(){return J(this,dc)}reset(){J(this,xo)?.removeObserver(this),Le(this,xo,void 0),pt(this,Qi,Yb).call(this),pt(this,Qi,DT).call(this)}mutate(n,a){return Le(this,qi,a),J(this,xo)?.removeObserver(this),Le(this,xo,J(this,zi).getMutationCache().build(J(this,zi),this.options)),J(this,xo).addObserver(this),J(this,xo).execute(n)}},zi=new WeakMap,dc=new WeakMap,xo=new WeakMap,qi=new WeakMap,Qi=new WeakSet,Yb=function(){const n=J(this,xo)?.state??nF();Le(this,dc,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},DT=function(n){Xn.batch(()=>{if(J(this,qi)&&this.hasListeners()){const a=J(this,dc).variables,s=J(this,dc).context,r={client:J(this,zi),meta:this.options.meta,mutationKey:this.options.mutationKey};if(n?.type==="success"){try{J(this,qi).onSuccess?.(n.data,a,s,r)}catch(i){Promise.reject(i)}try{J(this,qi).onSettled?.(n.data,null,a,s,r)}catch(i){Promise.reject(i)}}else if(n?.type==="error"){try{J(this,qi).onError?.(n.error,a,s,r)}catch(i){Promise.reject(i)}try{J(this,qi).onSettled?.(void 0,n.error,a,s,r)}catch(i){Promise.reject(i)}}}this.listeners.forEach(a=>{a(J(this,dc))})})},B8),Hr,F8,Mne=(F8=class extends Np{constructor(t={}){super();We(this,Hr);this.config=t,Le(this,Hr,new Map)}build(t,n,a){const s=n.queryKey,r=n.queryHash??XP(s,n);let i=this.get(r);return i||(i=new Tne({client:t,queryKey:s,queryHash:r,options:t.defaultQueryOptions(n),state:a,defaultOptions:t.getQueryDefaults(s)}),this.add(i)),i}add(t){J(this,Hr).has(t.queryHash)||(J(this,Hr).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=J(this,Hr).get(t.queryHash);n&&(t.destroy(),n===t&&J(this,Hr).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Xn.batch(()=>
vendor: 4,127 bytes, line 50
50{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return J(this,Hr).get(t)}getAll(){return[...J(this,Hr).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(a=>jI(n,a))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(a=>jI(t,a)):n}notify(t){Xn.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Xn.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Xn.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Hr=new WeakMap,F8),Cn,uc,mc,ip,lp,pc,cp,dp,z8,Ene=(z8=class{constructor(e={}){We(this,Cn);We(this,uc);We(this,mc);We(this,ip);We(this,lp);We(this,pc);We(this,cp);We(this,dp);Le(this,Cn,e.queryCache||new Mne),Le(this,uc,e.mutationCache||new Nne),Le(this,mc,e.defaultOptions||{}),Le(this,ip,new Map),Le(this,lp,new Map),Le(this,pc,0)}mount(){Yv(this,pc)._++,J(this,pc)===1&&(Le(this,cp,QP.subscribe(async e=>{e&&(await this.resumePausedMutations(),J(this,Cn).onFocus())})),Le(this,dp,wx.subscribe(async e=>{e&&(await this.resumePausedMutations(),J(this,Cn).onOnline())})))}unmount(){var e,t;Yv(this,pc)._--,J(this,pc)===0&&((e=J(this,cp))==null||e.call(this),Le(this,cp,void 0),(t=J(this,dp))==null||t.call(this),Le(this,dp,void 0))}isFetching(e){return J(this,Cn).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return J(this,uc).findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return J(this,Cn).get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=J(this,Cn).build(this,t),a=n.state.data;return a===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(vc(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(a))}getQueriesData(e){return J(this,Cn).findAll(e).map(({queryKey:t,state:n})=>{const a=n.data;return[t,a]})}setQueryData(e,t,n){const a=this.defaultQueryOptions({queryKey:e}),r=J(this,Cn).get(a.queryHash)?.state.data,i=fne(t,r);if(i!==void 0)return J(this,Cn).build(this,a).setData(i,{...n,manual:!0})}setQueriesData(e,t,n){return Xn.batch(()=>J(this,Cn).findAll(e).map(({queryKey:a})=>[a,this.setQueryData(a,t,n)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return J(this,Cn).get(t.queryHash)?.state}removeQueries(e){const t=J(this,Cn);Xn.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=J(this,Cn);return Xn.batch(()=>(n.findAll(e).forEach(a=>{a.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},a=Xn.batch(()=>J(this,Cn).findAll(e).map(s=>s.cancel(n)));return Promise.all(a).then(Za).catch(Za)}invalidateQueries(e,t={}){return Xn.batch(()=>(J(this,Cn).findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},a=Xn.batch(()=>J(this,Cn).findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let r=s.fetch(void 0,n);return n.throwOnError||(r=r.catch(Za)),s.state.fetchStatus==="paused"?Promise.resolve():r}));return Promise.all(a).then(Za)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=J(this,Cn).build(this,t);return n.isStaleByTime(vc(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Za).catch(Za)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Za).catch(Za)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return wx.isOnline()?J(this,uc).resumePausedMutations():Promise.resolve()}getQueryCache(){return J(this,Cn)}getMutationCache(){return J(this,uc)}getDefaultOptions(){return J(this,mc)}setDefaultOptions(e){Le(this,mc,e)}setQueryDefaults(e,t){J(this,ip).set(Kd(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...J(this,ip).values()],n={};return t.forEach(a=>{Vg(e,a.queryKey)&&Object.assign(n,a.defaultOptions)}),n}setMutationDefaults(e,t){J(this,lp).set(Kd(e),{mutationKey:e,defaultOptions:t})}
vendor: 4,308 bytes, line 50
50getMutationDefaults(e){const t=[...J(this,lp).values()],n={};return t.forEach(a=>{Vg(e,a.mutationKey)&&Object.assign(n,a.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...J(this,mc).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=XP(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===ZP&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...J(this,mc).mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){J(this,Cn).clear(),J(this,uc).clear()}},Cn=new WeakMap,uc=new WeakMap,mc=new WeakMap,ip=new WeakMap,lp=new WeakMap,pc=new WeakMap,cp=new WeakMap,dp=new WeakMap,z8),aF=h.createContext(void 0),Re=e=>{const t=h.useContext(aF);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Ine=({client:e,children:t})=>(h.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),o.jsx(aF.Provider,{value:e,children:t})),oF=h.createContext(!1),One=()=>h.useContext(oF);oF.Provider;function Lne(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Une=h.createContext(Lne()),Bne=()=>h.useContext(Une),Fne=(e,t,n)=>{const a=n?.state.error&&typeof e.throwOnError=="function"?JP(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||a)&&(t.isReset()||(e.retryOnMount=!1))},zne=e=>{h.useEffect(()=>{e.clearReset()},[e])},qne=({result:e,errorResetBoundary:t,throwOnError:n,query:a,suspense:s})=>e.isError&&!t.isReset()&&!e.isFetching&&a&&(s&&e.data===void 0||JP(n,[e.error,a])),Hne=e=>{if(e.suspense){const n=s=>s==="static"?s:Math.max(s??1e3,1e3),a=e.staleTime;e.staleTime=typeof a=="function"?(...s)=>n(a(...s)):n(a),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},Vne=(e,t)=>e.isLoading&&e.isFetching&&!t,Kne=(e,t)=>e?.suspense&&t.isPending,UI=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function sF(e,t,n){const a=One(),s=Bne(),r=Re(),i=r.defaultQueryOptions(e);r.getDefaultOptions().queries?._experimental_beforeQuery?.(i);const c=r.getQueryCache().get(i.queryHash);i._optimisticResults=a?"isRestoring":"optimistic",Hne(i),Fne(i,s,c),zne(s);const d=!r.getQueryCache().get(i.queryHash),[m]=h.useState(()=>new t(r,i)),f=m.getOptimisticResult(i),p=!a&&e.subscribed!==!1;if(h.useSyncExternalStore(h.useCallback(y=>{const v=p?m.subscribe(Xn.batchCalls(y)):Za;return m.updateResult(),v},[m,p]),()=>m.getCurrentResult(),()=>m.getCurrentResult()),h.useEffect(()=>{m.setOptions(i)},[i,m]),Kne(i,f))throw UI(i,m,s);if(qne({result:f,errorResetBoundary:s,throwOnError:i.throwOnError,query:c,suspense:i.suspense}))throw f.error;return r.getDefaultOptions().queries?._experimental_afterQuery?.(i,f),i.experimental_prefetchInRender&&!Kg.isServer()&&Vne(f,a)&&(d?UI(i,m,s):c?.promise)?.catch(Za).finally(()=>{m.updateResult()}),i.notifyOnChangeProps?f:m.trackResult(f)}function Ue(e,t){return sF(e,eF)}function ke(e,t){const n=Re(),[a]=h.useState(()=>new Dne(n,e));h.useEffect(()=>{a.setOptions(e)},[a,e]);const s=h.useSyncExternalStore(h.useCallback(i=>a.subscribe(Xn.batchCalls(i)),[a]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),r=h.useCallback((i,c)=>{a.mutate(i,c).catch(Za)},[a]);if(s.error&&JP(a.options.throwOnError,[s.error]))throw s.error;return{...s,mutate:r,mutateAsync:s.mutate}}function ll(e,t){return sF(e,_ne)}const Gne="modulepreload",Wne=function(e){return"/platform/"+e},BI={},rF=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){let i=function(m){return Promise.all(m.map(f=>Promise.resolve(f).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),d=c?.nonce||c?.getAttribute("nonce");s=i(n.map(m=>{if(m=Wne(m),m in BI)return;BI[m]=!0;const f=m.endsWith(".css"),p=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${p}`))return;const y=document.createElement("link");if(y.rel=f?"stylesheet":Gne,f||(y.as="script"),y.crossOrigin="",y.href=m,d&&y.setAttribute("nonce",d),document.head.appendChild(y),f)return new Promise((v,$)=>
vendor: 10,944 bytes, lines 50-68
50{y.addEventListener("load",v),y.addEventListener("error",()=>$(new Error(`Unable to preload CSS for ${m}`)))})}))}function r(i){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=i,window.dispatchEvent(c),!c.defaultPrevented)throw i}return s.then(i=>{for(const c of i||[])c.status==="rejected"&&r(c.reason);return t().catch(r)})};var li=q8();const iF=il(li);/** 51 * @remix-run/router v1.23.2 52 * 53 * Copyright (c) Remix Software Inc. 54 * 55 * This source code is licensed under the MIT license found in the 56 * LICENSE.md file in the root directory of this source tree. 57 * 58 * @license MIT 59 */function Gg(){return Gg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Gg.apply(this,arguments)}var fc;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(fc||(fc={}));const FI="popstate";function Yne(e){e===void 0&&(e={});function t(a,s){let{pathname:r,search:i,hash:c}=a.location;return MT("",{pathname:r,search:i,hash:c},s.state&&s.state.usr||null,s.state&&s.state.key||"default")}function n(a,s){return typeof s=="string"?s:kx(s)}return Xne(t,n,null,e)}function xn(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function t_(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Qne(){return Math.random().toString(36).substr(2,8)}function zI(e,t){return{usr:e.state,key:e.key,idx:t}}function MT(e,t,n,a){return n===void 0&&(n=null),Gg({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Dp(t):t,{state:n,key:t&&t.key||a||Qne()})}function kx(e){let{pathname:t="/",search:n="",hash:a=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),a&&a!=="#"&&(t+=a.charAt(0)==="#"?a:"#"+a),t}function Dp(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let a=e.indexOf("?");a>=0&&(t.search=e.substr(a),e=e.substr(0,a)),e&&(t.pathname=e)}return t}function Xne(e,t,n,a){a===void 0&&(a={});let{window:s=document.defaultView,v5Compat:r=!1}=a,i=s.history,c=fc.Pop,d=null,m=f();m==null&&(m=0,i.replaceState(Gg({},i.state,{idx:m}),""));function f(){return(i.state||{idx:null}).idx}function p(){c=fc.Pop;let w=f(),S=w==null?null:w-m;m=w,d&&d({action:c,location:x.location,delta:S})}function y(w,S){c=fc.Push;let k=MT(x.location,w,S);m=f()+1;let T=zI(k,m),R=x.createHref(k);try{i.pushState(T,"",R)}catch(_){if(_ instanceof DOMException&&_.name==="DataCloneError")throw _;s.location.assign(R)}r&&d&&d({action:c,location:x.location,delta:1})}function v(w,S){c=fc.Replace;let k=MT(x.location,w,S);m=f();let T=zI(k,m),R=x.createHref(k);i.replaceState(T,"",R),r&&d&&d({action:c,location:x.location,delta:0})}function $(w){let S=s.location.origin!=="null"?s.location.origin:s.location.href,k=typeof w=="string"?w:kx(w);return k=k.replace(/ $/,"%20"),xn(S,"No window.location.(origin|href) available to create URL for href: "+k),new URL(k,S)}let x={get action(){return c},get location(){return e(s,i)},listen(w){if(d)throw new Error("A history only accepts one active listener");return s.addEventListener(FI,p),d=w,()=>{s.removeEventListener(FI,p),d=null}},createHref(w){return t(s,w)},createURL:$,encodeLocation(w){let S=$(w);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:y,replace:v,go(w){return i.go(w)}};return x}var qI;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(qI||(qI={}));function Zne(e,t,n){return n===void 0&&(n="/"),Jne(e,t,n)}function Jne(e,t,n,a){let s=typeof t=="string"?Dp(t):t,r=up(s.pathname||"/",n);if(r==null)return null;let i=lF(e);eae(i);let c=null;for(let d=0;c==null&&d<i.length;++d){let m=uae(r);c=cae(i[d],m)}return c}function lF(e,t,n,a){t===void 0&&(t=[]),n===void 0&&(n=[]),a===void 0&&(a="");let s=(r,i,c)=>{let d={relativePath:c===void 0?r.path||"":c,caseSensitive:r.caseSensitive===!0,childrenIndex:i,route:r};d.relativePath.startsWith("/")&&(xn(d.relativePath.startsWith(a),'Absolute route path "'+d.relativePath+'" nested under path '+('"'+a+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),d.relativePath=d.relativePath.slice(a.length));let m=bc([a,d.relativePath]),f=n.concat(d);r.children&&r.children.length>0&&(xn(r.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+m+'".')),lF(r.children,t,f,m)),!(r.path==null&&!r.index)&&t.push({path:m,score:iae(m,r.index),routesMeta:f})};return e.forEach((r,i)=>{var c;if(r.path===""||!((c=r.path)!=null&&c.includes("?")))s(r,i);else for(let d of cF(r.path))s(r,i,d)}),t}function cF(e){let t=e.split("/");if(t.length===0)return[];let[n,...a]=t,s=n.endsWith("?"),r=n.replace(/\?$/,"");if(a.length===0)return s?[r,""]:[r];let i=cF(a.join("/")),c=[];return c.push(...i.map(d=>d===""?r:[r,d].join("/"))),s&&c.push(...i),c.map(d=>e.startsWith("/")&&d===""?"/":d)}function eae(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:lae(t.routesMeta.map(a=>a.childrenIndex),n.routesMeta.map(a=>a.childrenIndex)))}const tae=/^:[\w-]+$/,nae=3,aae=2,oae=1,sae=10,rae=-2,HI=e=>e==="*";function iae(e,t){let n=e.split("/"),a=n.length;return n.some(HI)&&(a+=rae),t&&(a+=aae),n.filter(s=>!HI(s)).reduce((s,r)=>s+(tae.test(r)?nae:r===""?oae:sae),a)}function lae(e,t){return e.length===t.length&&e.slice(0,-1).every((a,s)=>a===t[s])?e[e.length-1]-t[t.length-1]:0}function cae(e,t,n){let{routesMeta:a}=e,s={},r="/",i=[];for(let c=0;c<a.length;++c){let d=a[c],m=c===a.length-1,f=r==="/"?t:t.slice(r.length)||"/",p=ET({path:d.relativePath,caseSensitive:d.caseSensitive,end:m},f),y=d.route;if(!p)return null;Object.assign(s,p.params),i.push({params:s,pathname:bc([r,p.pathname]),pathnameBase:hae(bc([r,p.pathnameBase])),route:y}),p.pathnameBase!=="/"&&(r=bc([r,p.pathnameBase]))}return i}function ET(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=dae(e.path,e.caseSensitive,e.end),s=t.match(n);if(!s)return null;let r=s[0],i=r.replace(/(.)\/+$/,"$1"),c=s.slice(1);return{params:a.reduce((m,f,p)=>{let{paramName:y,isOptional:v}=f;if(y==="*"){let x=c[p]||"";i=r.slice(0,r.length-x.length).replace(/(.)\/+$/,"$1")}const $=c[p];return v&&!$?m[y]=void 0:m[y]=($||"").replace(/%2F/g,"/"),m},{}),pathname:r,pathnameBase:i,pattern:e}}function dae(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),t_(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let a=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,c,d)=>(a.push({paramName:c,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(a.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),a]}function uae(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return t_(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function up(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,a=e.charAt(n);return a&&a!=="/"?null:e.slice(n)||"/"}const mae=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,pae=e=>mae.test(e);function fae(e,t){t===void 0&&(t="/");let{pathname:n,search:a="",hash:s=""}=typeof e=="string"?Dp(e):e,r;if(n)if(pae(n))r=n;else{if(n.includes("//")){let i=n;n=n.replace(/\/\/+/g,"/"),t_(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+n))}n.startsWith("/")?r=VI(n.substring(1),"/"):r=VI(n,t)}else r=t;return{pathname:r,search:yae(a),hash:vae(s)}}function VI(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function y1(e,t,n,a){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(a)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function gae(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function n_(e,t){let n=gae(e);return t?n.map((a,s)=>s===n.length-1?a.pathname:a.pathnameBase):n.map(a=>a.pathnameBase)}function a_(e,t,n,a){a===void 0&&(a=!1);let s;typeof e=="string"?s=Dp(e):(s=Gg({},e),xn(!s.pathname||!s.pathname.includes("?"),y1("?","pathname","search",s)),xn(!s.pathname||!s.pathname.includes("#"),y1("#","pathname","hash",s)),xn(!s.search||!s.search.includes("#"),y1("#","search","hash",s)));let r=e===""||s.pathname==="",i=r?"/":s.pathname,c;if(i==null)c=n;else{let p=t.length-1;if(!a&&i.startsWith("..")){let y=i.split("/");for(;y[0]==="..";)y.shift(),p-=1;s.pathname=y.join("/")}c=p>=0?t[p]:"/"}let d=fae(s,c),m=i&&i!=="/"&&i.endsWith("/"),f=(r||i===".")&&n.endsWith("/");return!d.pathname.endsWith("/")&&(m||f)&&(d.pathname+="/"),d}const bc=e=>e.join("/").replace(/\/\/+/g,"/"),hae=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),yae=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,vae=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function bae(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const dF=["post","put","patch","delete"];new Set(dF);const xae=["get",...dF];new Set(xae);/** 60 * React Router v6.30.3 61 * 62 * Copyright (c) Remix Software Inc. 63 * 64 * This source code is licensed under the MIT license found in the 65 * LICENSE.md file in the root directory of this source tree. 66 * 67 * @license MIT 68 */function Wg(){return Wg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Wg.apply(this,arguments)}const W$=h.createContext(null),uF=h.createContext(null),cl=h.createContext(null),Y$=h.createContext(null),ci=h.createContext({outlet:null,matches:[],isDataRoute:!1}),mF=h.createContext(null);function $ae(e,t){let{relative:n}=t===void 0?{}:t;Mp()||xn(!1);let{basename:a,navigator:s}=h.useContext(cl),{hash:r,pathname:i,search:c}=Q$(e,{relative:n}),d=i;return a!=="/"&&(d=i==="/"?a:bc([a,i])),s.createHref({pathname:d,search:c,hash:r})}function Mp(){return h.useContext(Y$)!=null}function ls(){return Mp()||xn(!1),h.useContext(Y$).location}function pF(e){h.useContext(cl).static||h.useLayoutEffect(e)}function No(){let{isDataRoute:e}=h.useContext(ci);return e?Iae():wae()}function wae(){Mp()||xn(!1);let e=h.useContext(W$),{basename:t,future:n,navigator:a}=h.useContext(cl),{matches:s}=h.useContext(ci),{pathname:r}
vendor: 4,421 bytes, line 68
68=ls(),i=JSON.stringify(n_(s,n.v7_relativeSplatPath)),c=h.useRef(!1);return pF(()=>{c.current=!0}),h.useCallback(function(m,f){if(f===void 0&&(f={}),!c.current)return;if(typeof m=="number"){a.go(m);return}let p=a_(m,JSON.parse(i),r,f.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:bc([t,p.pathname])),(f.replace?a.replace:a.push)(p,f.state,f)},[t,a,i,r,e])}const kae=h.createContext(null);function Cae(e){let t=h.useContext(ci).outlet;return t&&h.createElement(kae.Provider,{value:e},t)}function o_(){let{matches:e}=h.useContext(ci),t=e[e.length-1];return t?t.params:{}}function Q$(e,t){let{relative:n}=t===void 0?{}:t,{future:a}=h.useContext(cl),{matches:s}=h.useContext(ci),{pathname:r}=ls(),i=JSON.stringify(n_(s,a.v7_relativeSplatPath));return h.useMemo(()=>a_(e,JSON.parse(i),r,n==="path"),[e,i,r,n])}function Sae(e,t){return Aae(e,t)}function Aae(e,t,n,a){Mp()||xn(!1);let{navigator:s}=h.useContext(cl),{matches:r}=h.useContext(ci),i=r[r.length-1],c=i?i.params:{};i&&i.pathname;let d=i?i.pathnameBase:"/";i&&i.route;let m=ls(),f;if(t){var p;let w=typeof t=="string"?Dp(t):t;d==="/"||(p=w.pathname)!=null&&p.startsWith(d)||xn(!1),f=w}else f=m;let y=f.pathname||"/",v=y;if(d!=="/"){let w=d.replace(/^\//,"").split("/");v="/"+y.replace(/^\//,"").split("/").slice(w.length).join("/")}let $=Zne(e,{pathname:v}),x=jae($&&$.map(w=>Object.assign({},w,{params:Object.assign({},c,w.params),pathname:bc([d,s.encodeLocation?s.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?d:bc([d,s.encodeLocation?s.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),r,n,a);return t&&x?h.createElement(Y$.Provider,{value:{location:Wg({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:fc.Pop}},x):x}function Tae(){let e=Eae(),t=bae(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return h.createElement(h.Fragment,null,h.createElement("h2",null,"Unexpected Application Error!"),h.createElement("h3",{style:{fontStyle:"italic"}},t),n?h.createElement("pre",{style:s},n):null,null)}const Rae=h.createElement(Tae,null);class Pae extends h.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?h.createElement(ci.Provider,{value:this.props.routeContext},h.createElement(mF.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function _ae(e){let{routeContext:t,match:n,children:a}=e,s=h.useContext(W$);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),h.createElement(ci.Provider,{value:t},a)}function jae(e,t,n,a){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),a===void 0&&(a=null),e==null){var r;if(!n)return null;if(n.errors)e=n.matches;else if((r=a)!=null&&r.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,c=(s=n)==null?void 0:s.errors;if(c!=null){let f=i.findIndex(p=>p.route.id&&c?.[p.route.id]!==void 0);f>=0||xn(!1),i=i.slice(0,Math.min(i.length,f+1))}let d=!1,m=-1;if(n&&a&&a.v7_partialHydration)for(let f=0;f<i.length;f++){let p=i[f];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(m=f),p.route.id){let{loaderData:y,errors:v}=n,$=p.route.loader&&y[p.route.id]===void 0&&(!v||v[p.route.id]===void 0);if(p.route.lazy||$){d=!0,m>=0?i=i.slice(0,m+1):i=[i[0]];break}}}return i.reduceRight((f,p,y)=>{let v,$=!1,x=null,w=null;n&&(v=c&&p.route.id?c[p.route.id]:void 0,x=p.route.errorElement||Rae,d&&(m<0&&y===0?(Oae("route-fallback"),$=!0,w=null):m===y&&($=!0,w=p.route.hydrateFallbackElement||null)));let S=t.concat(i.slice(0,y+1)),k=()=>{let T;return v?T=x:$?T=w:p.route.Component?T=h.createElement(p.route.Component,null):p.route.element?T=p.route.element:T=f,h.createElement(_ae,{match:p,routeC
68ontext:{outlet:f,matches:S,isDataRoute:n!=null},children:T})};return n&&(p.route.ErrorBoundary||p.route.errorElement||y===0)?h.createElement(Pae,{location:n.location,revalidation:n.revalidation,component:x,error:v,children:k(),routeContext:{outlet:null,matches:S,isDataRoute:!0}}):k()},null)}var fF=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(fF||{}),gF=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(gF||{});function Nae(e){let t=h.useContext(W$);return t||xn(!1),t}function Dae(e){let t=h.useContext(uF);return t||xn(!1),t}function Mae(e){let t=h.useContext(ci);return t||xn(!1),t}function hF(e){let t=Mae(),n=t.matches[t.matches.length-1];return n.route.id||xn(!1),n.route.id}function Eae(){var e;let t=h.useContext(mF),n=Dae(),a=hF();return t!==void 0?t:(e=n.errors)==null?void 0:e[a]}function Iae(){let{router:e}=Nae(fF.UseNavigateStable),t=hF(gF.UseNavigateStable),n=h.useRef(!1);return pF(()=>{n.current=!0}),h.useCallback(function(s,r){r===void 0&&(r={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,Wg({fromRouteId:t},r)))},[e,t])}const KI={};function Oae(e,t,n){KI[e]||(KI[e]=!0)}function Lae(e,t){e?.v7_startTransition,e?.v7_relativeSplatPath}function Gd(e){let{to:t,replace:n,state:a,relative:s}=e;Mp()||xn(!1);let{future:r,static:i}=h.useContext(cl),{matches:c}=h.useContext(ci),{pathname:d}=ls(),m=No(),f=a_(t,n_(c,r.v7_relativeSplatPath),d,s==="path"),p=JSON.stringify(f);return h.useEffect(()=>m(JSON.parse(p),{replace:n,state:a,relative:s}),[m,p,s,n,a]),null}function yF(e){return Cae(e.context)}function dt(e){xn(!1)}function Uae(e){let{basename:t="/",children:n=null,location:a,navigationType:s=fc.Pop,navigator:r,static:i=!1,future:c}=e;Mp()&&xn(!1);let d=t.replace(/^\/*/,"/"),m=h.useMemo(()=>({basename:d,navigator:r,static:i,future:Wg({v7_relativeSplatPath:!1},c)}),[d,c,r,i]);typeof a=="string"&&(a=Dp(a));let{pathname:f="/",search:p="",hash:y="",state:v=null,key:$="default"}=a,x=h.useMemo(()=>{let w=up(f,d);return w==null?null:{location:{pathname:w,search:p,hash:y,state:v,key:$},navigationType:s}},[d,f,p,y,v,$,s]);return x==null?null:h.createElement(cl.Provider,{value:m},h.createElement(Y$.Provider,{children:n,value:x}))}function IT(e){let{children:t,location:n}=e;return Sae(OT(t),n)}new Promise(()=>{});function OT(e,t){t===void 0&&(t=[]);let n=[];return h.Children.forEach(e,(a,s)=>{if(!h.isValidElement(a))return;let r=[...t,s];if(a.type===h.Fragment){n.push.apply(n,OT(a.props.children,r));return}a.type!==dt&&xn(!1),!a.props.index||!a.props.children||xn(!1);let i={id:a.props.id||r.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,loader:a.props.loader,action:a.props.action,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=OT(a.props.children,r)),n.push(i)}),n}/** 69 * React Router DOM v6.30.3 70 * 71 * Copyright (c) Remix Software Inc. 72 * 73 * This source code is licensed under the MIT license found in the 74 * LICENSE.md file in the root directory of this source tree. 75 * 76 * @license MIT 77 */function Cx(){return Cx=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Cx.apply(this,arguments)}function vF(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}function Bae(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Fae(e,t){return e.button===0&&(!t||t==="_self")&&!Bae(e)}function LT(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let a=e[n];return t.concat(Array.isArray(a)?a.map(s=>[n,s]):[[n,a]])},[]))}function zae(e,t){let n=LT(e);return t&&t.forEach((a,s)=>
77{n.has(s)||t.getAll(s).forEach(r=>{n.append(s,r)})}),n}const qae=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Hae=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],Vae="6";try{window.__reactRouterVersion=Vae}catch{}const Kae=h.createContext({isTransitioning:!1}),Gae="startTransition",GI=Lh[Gae];function Wae(e){let{basename:t,children:n,future:a,window:s}=e,r=h.useRef();r.current==null&&(r.current=Yne({window:s,v5Compat:!0}));let i=r.current,[c,d]=h.useState({action:i.action,location:i.location}),{v7_startTransition:m}=a||{},f=h.useCallback(p=>{m&&GI?GI(()=>d(p)):d(p)},[d,m]);return h.useLayoutEffect(()=>i.listen(f),[i,f]),h.useEffect(()=>Lae(a),[a]),h.createElement(Uae,{basename:t,children:n,location:c.location,navigationType:c.action,navigator:i,future:a})}const Yae=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Qae=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ta=h.forwardRef(function(t,n){let{onClick:a,relative:s,reloadDocument:r,replace:i,state:c,target:d,to:m,preventScrollReset:f,viewTransition:p}=t,y=vF(t,qae),{basename:v}=h.useContext(cl),$,x=!1;if(typeof m=="string"&&Qae.test(m)&&($=m,Yae))try{let T=new URL(window.location.href),R=m.startsWith("//")?new URL(T.protocol+m):new URL(m),_=up(R.pathname,v);R.origin===T.origin&&_!=null?m=_+R.search+R.hash:x=!0}catch{}let w=$ae(m,{relative:s}),S=Zae(m,{replace:i,state:c,target:d,preventScrollReset:f,relative:s,viewTransition:p});function k(T){a&&a(T),T.defaultPrevented||S(T)}return h.createElement("a",Cx({},y,{href:$||w,onClick:x||r?a:k,ref:n,target:d}))}),Yg=h.forwardRef(function(t,n){let{"aria-current":a="page",caseSensitive:s=!1,className:r="",end:i=!1,style:c,to:d,viewTransition:m,children:f}=t,p=vF(t,Hae),y=Q$(d,{relative:p.relative}),v=ls(),$=h.useContext(uF),{navigator:x,basename:w}=h.useContext(cl),S=$!=null&&Jae(y)&&m===!0,k=x.encodeLocation?x.encodeLocation(y).pathname:y.pathname,T=v.pathname,R=$&&$.navigation&&$.navigation.location?$.navigation.location.pathname:null;s||(T=T.toLowerCase(),R=R?R.toLowerCase():null,k=k.toLowerCase()),R&&w&&(R=up(R,w)||R);const _=k!=="/"&&k.endsWith("/")?k.length-1:k.length;let P=T===k||!i&&T.startsWith(k)&&T.charAt(_)==="/",j=R!=null&&(R===k||!i&&R.startsWith(k)&&R.charAt(k.length)==="/"),N={isActive:P,isPending:j,isTransitioning:S},I=P?a:void 0,z;typeof r=="function"?z=r(N):z=[r,P?"active":null,j?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let E=typeof c=="function"?c(N):c;return h.createElement(Ta,Cx({},p,{"aria-current":I,className:z,ref:n,style:E,to:d,viewTransition:m}),typeof f=="function"?f(N):f)});var UT;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(UT||(UT={}));var WI;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(WI||(WI={}));function Xae(e){let t=h.useContext(W$);return t||xn(!1),t}function Zae(e,t){let{target:n,replace:a,state:s,preventScrollReset:r,relative:i,viewTransition:c}=t===void 0?{}:t,d=No(),m=ls(),f=Q$(e,{relative:i});return h.useCallback(p=>{if(Fae(p,n)){p.preventDefault();let y=a!==void 0?a:kx(m)===kx(f);d(e,{replace:y,state:s,preventScrollReset:r,relative:i,viewTransition:c})}},[m,d,f,a,s,n,e,r,i,c])}function s_(e){let t=h.useRef(LT(e)),n=h.useRef(!1),a=ls(),s=h.useMemo(()=>zae(a.search,n.current?null:t.current),[a.search]),r=No(),i=h.useCallback((c,d)=>{const m=LT(typeof c=="function"?c(s):c);n.current=!0,r("?"+m,d)},[r,s]);return[s,i]}function Jae(e,t){t===void 0&&(t={});let n=h.useContext(Kae);n==null&&xn(!1);let{basename:a}=Xae(UT.useViewTransitionState),s=Q$(e,{relative:t.relative});if(!n.isTransitioning)return!1;let r=up(n.currentLocation.pathname,a)||n.currentLocation.pathname,i=up(n.nextLocation.pathname,a)||n.nextLocation.pathname;return ET(s.pathname,i)!=null||ET(s.pathname,r)!=null}const X$=["openai_chat","openai_responses","anthropic_messages","google_vertex_ai","openai_images","openai_sora"],eoe=["openai","anthropic","gemini"],Wd={openai_chat:{id:"openai_chat",label:"OpenAI Chat Completions",shortLabel:"OpenAI Chat",iconAuthor:"openai",baseUrlSegment:"v1",supportsStream:!0,sdks:["openai-python","openai-curl","openai-typescript"],feasibleOnPlatform:{openai:!0,anthropic:!1,gemini:!0},sub2apiSwitch:null},openai_responses:{id:"openai_responses",label:"OpenAI Responses",shortLabel:"Responses",iconAuthor:"openai",baseUrlSegment:"v1",supportsStream:!0,sdks:["openai-python","openai-curl"],feasibleOnPlatform:{openai:!0,anthropic:!1,gemini:!1},sub2apiSwitch:null},anthropic_messages:{id:"anthropic_messages",label:"Anthropic Messages",shortLabel:"Anthropic",iconAuthor:"anthropic",baseUrlSegment:"anthropic",supportsStream:!0,sdks:["anthropic-
77python","anthropic-curl"],feasibleOnPlatform:{openai:!0,anthropic:!0,gemini:!1},sub2apiSwitch:"allow_messages_dispatch"},google_vertex_ai:{id:"google_vertex_ai",label:"Google Vertex AI",shortLabel:"Vertex",iconAuthor:"google",baseUrlSegment:"vertex-ai",supportsStream:!0,sdks:["gemini-python"],feasibleOnPlatform:{openai:!1,anthropic:!1,gemini:!0},sub2apiSwitch:null},openai_images:{id:"openai_images",label:"OpenAI Images",shortLabel:"Images",iconAuthor:"openai",baseUrlSegment:"v1",supportsStream:!1,sdks:["openai-python","openai-curl"],feasibleOnPlatform:{openai:!0,anthropic:!1,gemini:!0},sub2apiSwitch:"allow_image_generation"},openai_sora:{id:"openai_sora",label:"OpenAI Sora",shortLabel:"Video",iconAuthor:"openai",baseUrlSegment:"v1",supportsStream:!1,sdks:["openai-curl"],feasibleOnPlatform:{openai:!0,anthropic:!1,gemini:!1},sub2apiSwitch:"allow_video_generation"}};function toe(e){return eoe.includes(e)?X$.filter(t=>Wd[t].feasibleOnPlatform[e]):[]}const Z$=["en","zh-Hans","zh-Hant","ja","ko","es","pt-BR","ru","de","fr","tr","ar"],r_=["en","zh-Hans","zh-Hant","ja","ko","es","pt-BR","ru","de","fr","tr","ar"],Xi="en",noe="zh-Hans",aoe=["ar"],Uh={en:"English","zh-Hans":"ç®ä½ä¸æ","zh-Hant":"ç¹é«ä¸æ",ja:"æ¥æ¬èª",ko:"íêµì´",es:"Español","pt-BR":"Português (Brasil)",ru:"Ð ÑÑÑкий",de:"Deutsch",fr:"Français",tr:"Türkçe",ar:"Ø§ÙØ¹Ø±Ø¨ÙØ©"},ooe=["en","es","pt-BR","ru","de","fr","tr","ar","ja","ko","zh-Hans","zh-Hant"];function i_(e){const t=new Set(e);return ooe.filter(n=>t.has(n))}function Yd(e){return Z$.includes(e)}function soe(e){return aoe.includes(e)?"rtl":"ltr"}function roe(e){for(const t of e){if(!t)continue;if(Yd(t))return t;if(t.startsWith("zh"))return t==="zh-TW"||t==="zh-HK"||t==="zh-MO"?"zh-Hant":"zh-Hans";if(t.startsWith("pt"))return"pt-BR";const n=t.split("-")[0];if(Yd(n))return n}return Xi}const BT="onehop.ai",ioe="api.onehop.ai",Mg={x:"https://x.com/OneHopAI",telegram:"https://t.me/+VlrbBvC2Clg2OGFh",discord:"https://discord.gg/c6m79xP4ed"},mp="/platform",l_="/docs";function loe(e){return e.startsWith("/")?e:`/${e}`}function coe(e){return e.length>1?e.replace(/\/+$/,""):e}const doe=[mp,l_];function uoe(e,t="/"){const n=coe(loe(t));return doe.some(a=>n===a||n.startsWith(`${a}/`))||e===Xi?n:n==="/"?`/${e}`:`/${e}${n}`}const moe=[{label:"Models",href:"/models"},{label:"Pricing",href:"/pricing"},{label:"Docs",href:l_}],bF=6.8,Be={login:"/login",chat:"/chat",logs:"/logs",apiKeys:"/keys",usage:"/usage",billing:"/billing",referrals:"/referrals",tasks:"/tasks",models:"/models",support:"/support",supportTicket:"/support/:publicId",settings:"/settings",admin:"/admin",adminDashboard:"/admin/dashboard",adminSupport:"/admin/support",adminSupportTicket:"/admin/support/:publicId",adminUsers:"/admin/users",adminUserDetail:"/admin/users/:publicId",adminBilling:"/admin/billing/wallets",adminUsage:"/admin/usage",adminRateLimits:"/admin/rate-limits",adminAccess:"/admin/access",adminDomainRules:"/admin/domain-rules",adminStaff:"/admin/staff",adminGrowth:"/admin/growth",adminCampaigns:"/admin/campaigns",adminModels:"/admin/models",adminAnnouncements:"/admin/announcements",adminUpstream:"/admin/upstream",adminAuditLogs:"/admin/audit-logs",adminWebhooks:"/admin/webhooks",adminContent:"/admin/content"};function Bh(e){return`/admin/users/${e}`}function FT(e){return`/support/${e}`}function YI(e){return`/admin/support/${e}`}const xF=["billing","technical","account","other"],$F=["open","pending","resolved","closed"],wF=["hot","benefit"],zT=["featured","newest","top_weekly","price_asc","price_desc","context"],poe="featured",QI=8,foe=2e3,goe=500,hoe=.5,kF="openai/gpt-4o-mini",VBs={textToVideo:"text_to_video",imageToVideo:"image_to_video",firstLastFrame:"first_last_frame",referenceImage:"reference_image"},ko={noContent:204,unauthorized:401,forbidden:403,notFound:404,conflict:409},XI={noResponse:0},$g={requestTimeout:"REQUEST_TIMEOUT",requestAborted:"REQUEST_ABORTED",csrfTokenMissing:"CSRF_TOKEN_MISSING",unauthenticated:"UNAUTHENTICATED",userSuspended:"USER_SUSPENDED",userInitializing:"USER_INITIALIZING"},yoe={owner:"*",admin:"*",support:["ops.users.read","ops.billing.read","ops.usage.read","ops.rate_limit.read","ops.sub2api.read","ops.audit.read","ops.models.read","ops.webhooks.read","ops.campaigns.read"]};function Go(e,t){if(!e)return!1;const n=e.permissions?.[t];if(n===!0)return!0;
vendor: 4,901 bytes, line 77
77if(n===!1)return!1;if(e.permissions?.all===!0)return!0;if(e.permissions?.all===!1)return!1;const a=yoe[e.role]??[];return a==="*"||a.includes(t)}function CF(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=CF(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function Lt(){for(var e,t,n=0,a="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=CF(e))&&(a&&(a+=" "),a+=t);return a}const voe=(e,t)=>{const n=new Array(e.length+t.length);for(let a=0;a<e.length;a++)n[a]=e[a];for(let a=0;a<t.length;a++)n[e.length+a]=t[a];return n},boe=(e,t)=>({classGroupId:e,validator:t}),SF=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Sx="-",ZI=[],xoe="arbitrary..",$oe=e=>{const t=koe(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return woe(i);const c=i.split(Sx),d=c[0]===""&&c.length>1?1:0;return AF(c,d,t)},getConflictingClassGroupIds:(i,c)=>{if(c){const d=a[i],m=n[i];return d?m?voe(m,d):d:m||ZI}return n[i]||ZI}}},AF=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const s=e[t],r=n.nextPart.get(s);if(r){const m=AF(e,t+1,r);if(m)return m}const i=n.validators;if(i===null)return;const c=t===0?e.join(Sx):e.slice(t).join(Sx),d=i.length;for(let m=0;m<d;m++){const f=i[m];if(f.validator(c))return f.classGroupId}},woe=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),a=t.slice(0,n);return a?xoe+a:void 0})(),koe=e=>{const{theme:t,classGroups:n}=e;return Coe(n,t)},Coe=(e,t)=>{const n=SF();for(const a in e){const s=e[a];c_(s,n,a,t)}return n},c_=(e,t,n,a)=>{const s=e.length;for(let r=0;r<s;r++){const i=e[r];Soe(i,t,n,a)}},Soe=(e,t,n,a)=>{if(typeof e=="string"){Aoe(e,t,n);return}if(typeof e=="function"){Toe(e,t,n,a);return}Roe(e,t,n,a)},Aoe=(e,t,n)=>{const a=e===""?t:TF(t,e);a.classGroupId=n},Toe=(e,t,n,a)=>{if(Poe(e)){c_(e(a),t,n,a);return}t.validators===null&&(t.validators=[]),t.validators.push(boe(n,e))},Roe=(e,t,n,a)=>{const s=Object.entries(e),r=s.length;for(let i=0;i<r;i++){const[c,d]=s[i];c_(d,TF(t,c),n,a)}},TF=(e,t)=>{let n=e;const a=t.split(Sx),s=a.length;for(let r=0;r<s;r++){const i=a[r];let c=n.nextPart.get(i);c||(c=SF(),n.nextPart.set(i,c)),n=c}return n},Poe=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,_oe=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),a=Object.create(null);const s=(r,i)=>{n[r]=i,t++,t>e&&(t=0,a=n,n=Object.create(null))};return{get(r){let i=n[r];if(i!==void 0)return i;if((i=a[r])!==void 0)return s(r,i),i},set(r,i){r in n?n[r]=i:s(r,i)}}},qT="!",JI=":",joe=[],eO=(e,t,n,a,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:a,isExternal:s}),Noe=e=>{const{prefix:t,experimentalParseClassName:n}=e;let a=s=>{const r=[];let i=0,c=0,d=0,m;const f=s.length;for(let x=0;x<f;x++){const w=s[x];if(i===0&&c===0){if(w===JI){r.push(s.slice(d,x)),d=x+1;continue}if(w==="/"){m=x;continue}}w==="["?i++:w==="]"?i--:w==="("?c++:w===")"&&c--}const p=r.length===0?s:s.slice(d);let y=p,v=!1;p.endsWith(qT)?(y=p.slice(0,-1),v=!0):p.startsWith(qT)&&(y=p.slice(1),v=!0);const $=m&&m>d?m-d:void 0;return eO(r,v,y,$)};if(t){const s=t+JI,r=a;a=i=>i.startsWith(s)?r(i.slice(s.length)):eO(joe,!1,i,void 0,!0)}if(n){const s=a;a=r=>n({className:r,parseClassName:s})}return a},Doe=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,a)=>{t.set(n,1e6+a)}),n=>{const a=[];let s=[];for(let r=0;r<n.length;r++){const i=n[r],c=i[0]==="[",d=t.has(i);c||d?(s.length>0&&(s.sort(),a.push(...s),s=[]),a.push(i)):s.push(i)}return s.length>0&&(s.sort(),a.push(...s)),a}},Moe=e=>({cache:_oe(e.cacheSize),parseClassName:Noe(e),sortModifiers:Doe(e),postfixLookupClassGroupIds:Eoe(e),...$oe(e)}),Eoe=e=>{const t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let a=0;a<n.length;a++)t[n[a]]=!0;return t},Ioe=/\s+/,Ooe=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:s,sortModifiers:r,postfixLookupClassGroupIds:i}=t,c=[],d=e.trim().split(Ioe);let m="";for(let f=d.length-1;f>=0;f-=1){const p=d[f],{isExternal:y,modifiers:v,hasImportantModifier:$,baseClassName:x,maybePostfixModifierPosition:w}=n(p);if(y){m=p+(m.length>0?" "+m:m);continue}let S=!!w,k;if(S){const j=x.substring(0,w);k=a(j);const N=k&&i[k]?a(x):void 0;N&&N!==k&&(k=N,S=!1)}else k=a(x);if(!k){if(!S){m=p+(m.length>0?" "+m:m);continue}if(k=a(x),!k){m=p+(m.length>0?" "+m:m);continue}S=!1}const T=v.length===0?"":v.length===1?v[0]:r(v).join(":"),R=$?T+qT:T,_=R+k;if(c.indexOf(_)>-1)continue;c.push(_);const P=s(k,S);for(let j=0;j<P.length;++j){const N=P[j];c.push(R+N)}m=p+(m.length>0?" "+m:m)}return m},Loe=(...e)=>{let t=0,n,a,s="";for(;t<e.length;)(n=e[t++])&&(a=RF(n))&&(s&&(s+=" "),s+=a);return s},RF=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;
vendor: 4,551 bytes, line 77
77a++)e[a]&&(t=RF(e[a]))&&(n&&(n+=" "),n+=t);return n},Uoe=(e,...t)=>{let n,a,s,r;const i=d=>{const m=t.reduce((f,p)=>p(f),e());return n=Moe(m),a=n.cache.get,s=n.cache.set,r=c,c(d)},c=d=>{const m=a(d);if(m)return m;const f=Ooe(d,n);return s(d,f),f};return r=i,(...d)=>r(Loe(...d))},Boe=[],Gn=e=>{const t=n=>n[e]||Boe;return t.isThemeGetter=!0,t},PF=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,_F=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Foe=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,zoe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,qoe=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Hoe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Voe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Koe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ql=e=>Foe.test(e),gt=e=>!!e&&!Number.isNaN(Number(e)),Mr=e=>!!e&&Number.isInteger(Number(e)),v1=e=>e.endsWith("%")&>(e.slice(0,-1)),Ei=e=>zoe.test(e),jF=()=>!0,Goe=e=>qoe.test(e)&&!Hoe.test(e),d_=()=>!1,Woe=e=>Voe.test(e),Yoe=e=>Koe.test(e),Qoe=e=>!ze(e)&&!qe(e),Xoe=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Zoe=e=>Mc(e,MF,d_),ze=e=>PF.test(e),ud=e=>Mc(e,EF,Goe),tO=e=>Mc(e,rse,gt),Joe=e=>Mc(e,OF,jF),ese=e=>Mc(e,IF,d_),nO=e=>Mc(e,NF,d_),tse=e=>Mc(e,DF,Yoe),Xv=e=>Mc(e,LF,Woe),qe=e=>_F.test(e),Xf=e=>uu(e,EF),nse=e=>uu(e,IF),aO=e=>uu(e,NF),ase=e=>uu(e,MF),ose=e=>uu(e,DF),Zv=e=>uu(e,LF,!0),sse=e=>uu(e,OF,!0),Mc=(e,t,n)=>{const a=PF.exec(e);return a?a[1]?t(a[1]):n(a[2]):!1},uu=(e,t,n=!1)=>{const a=_F.exec(e);return a?a[1]?t(a[1]):n:!1},NF=e=>e==="position"||e==="percentage",DF=e=>e==="image"||e==="url",MF=e=>e==="length"||e==="size"||e==="bg-size",EF=e=>e==="length",rse=e=>e==="number",IF=e=>e==="family-name",OF=e=>e==="number"||e==="weight",LF=e=>e==="shadow",ise=()=>{const e=Gn("color"),t=Gn("font"),n=Gn("text"),a=Gn("font-weight"),s=Gn("tracking"),r=Gn("leading"),i=Gn("breakpoint"),c=Gn("container"),d=Gn("spacing"),m=Gn("radius"),f=Gn("shadow"),p=Gn("inset-shadow"),y=Gn("text-shadow"),v=Gn("drop-shadow"),$=Gn("blur"),x=Gn("perspective"),w=Gn("aspect"),S=Gn("ease"),k=Gn("animate"),T=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],_=()=>[...R(),qe,ze],P=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],N=()=>[qe,ze,d],I=()=>[ql,"full","auto",...N()],z=()=>[Mr,"none","subgrid",qe,ze],E=()=>["auto",{span:["full",Mr,qe,ze]},Mr,qe,ze],L=()=>[Mr,"auto",qe,ze],O=()=>["auto","min","max","fr",qe,ze],V=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ne=()=>["start","end","center","stretch","center-safe","end-safe"],q=()=>["auto",...N()],M=()=>[ql,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...N()],F=()=>[ql,"screen","full","dvw","lvw","svw","min","max","fit",...N()],H=()=>[ql,"screen","full","lh","dvh","lvh","svh","min","max","fit",...N()],ee=()=>[e,qe,ze],B=()=>[...R(),aO,nO,{position:[qe,ze]}],G=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Q=()=>["auto","cover","contain",ase,Zoe,{size:[qe,ze]}],de=()=>[v1,Xf,ud],Y=()=>["","none","full",m,qe,ze],pe=()=>["",gt,Xf,ud],se=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],me=()=>[gt,v1,aO,nO],ye=()=>["","none",$,qe,ze],_e=()=>["none",gt,qe,ze],ae=()=>["none",gt,qe,ze],Je=()=>[gt,qe,ze],Ae=()=>[ql,"full",...N()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ei],breakpoint:[Ei],color:[jF],container:[Ei],"drop-shadow":[Ei],ease:["in","out","in-out"],font:[Qoe],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ei],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ei],shadow:[Ei],spacing:["px",gt],text:[Ei],"text-shadow":[Ei],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ql,ze,qe,w]}],container:["container"],"container-type":[{"@container":["","normal","size",qe,ze]}
vendor: 6,104 bytes, line 77
77],"container-named":[Xoe],columns:[{columns:[gt,ze,qe,c]}],"break-after":[{"break-after":T()}],"break-before":[{"break-before":T()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:_()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:I()}],"inset-x":[{"inset-x":I()}],"inset-y":[{"inset-y":I()}],start:[{"inset-s":I(),start:I()}],end:[{"inset-e":I(),end:I()}],"inset-bs":[{"inset-bs":I()}],"inset-be":[{"inset-be":I()}],top:[{top:I()}],right:[{right:I()}],bottom:[{bottom:I()}],left:[{left:I()}],visibility:["visible","invisible","collapse"],z:[{z:[Mr,"auto",qe,ze]}],basis:[{basis:[ql,"full","auto",c,...N()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[gt,ql,"auto","initial","none",ze]}],grow:[{grow:["",gt,qe,ze]}],shrink:[{shrink:["",gt,qe,ze]}],order:[{order:[Mr,"first","last","none",qe,ze]}],"grid-cols":[{"grid-cols":z()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":L()}],"col-end":[{"col-end":L()}],"grid-rows":[{"grid-rows":z()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":L()}],"row-end":[{"row-end":L()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":O()}],"auto-rows":[{"auto-rows":O()}],gap:[{gap:N()}],"gap-x":[{"gap-x":N()}],"gap-y":[{"gap-y":N()}],"justify-content":[{justify:[...V(),"normal"]}],"justify-items":[{"justify-items":[...ne(),"normal"]}],"justify-self":[{"justify-self":["auto",...ne()]}],"align-content":[{content:["normal",...V()]}],"align-items":[{items:[...ne(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ne(),{baseline:["","last"]}]}],"place-content":[{"place-content":V()}],"place-items":[{"place-items":[...ne(),"baseline"]}],"place-self":[{"place-self":["auto",...ne()]}],p:[{p:N()}],px:[{px:N()}],py:[{py:N()}],ps:[{ps:N()}],pe:[{pe:N()}],pbs:[{pbs:N()}],pbe:[{pbe:N()}],pt:[{pt:N()}],pr:[{pr:N()}],pb:[{pb:N()}],pl:[{pl:N()}],m:[{m:q()}],mx:[{mx:q()}],my:[{my:q()}],ms:[{ms:q()}],me:[{me:q()}],mbs:[{mbs:q()}],mbe:[{mbe:q()}],mt:[{mt:q()}],mr:[{mr:q()}],mb:[{mb:q()}],ml:[{ml:q()}],"space-x":[{"space-x":N()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":N()}],"space-y-reverse":["space-y-reverse"],size:[{size:M()}],"inline-size":[{inline:["auto",...F()]}],"min-inline-size":[{"min-inline":["auto",...F()]}],"max-inline-size":[{"max-inline":["none",...F()]}],"block-size":[{block:["auto",...H()]}],"min-block-size":[{"min-block":["auto",...H()]}],"max-block-size":[{"max-block":["none",...H()]}],w:[{w:[c,"screen",...M()]}],"min-w":[{"min-w":[c,"screen","none",...M()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[i]},...M()]}],h:[{h:["screen","lh",...M()]}],"min-h":[{"min-h":["screen","lh","none",...M()]}],"max-h":[{"max-h":["screen","lh",...M()]}],"font-size":[{text:["base",n,Xf,ud]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,sse,Joe]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",v1,ze]}],"font-family":[{font:[nse,ese,t]}],"font-features":[{"font-features":[ze]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,qe,ze]}],"line-clamp":[{"line-clamp":[gt,"none",qe,tO]}],leading:[{leading:[r,...N()]}],"list-image":[{"list-image":["none",qe,ze]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",qe,ze]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ee()}],"text-color":[{text:ee()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:[gt,"from-font","auto",qe,ud]}],"text-decoration-color":[{decoration:ee()}],"underline-offset":[{"underline-offset":[gt,"auto",qe,ze]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:N()}],"tab-size":[{tab:[Mr,qe,ze]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",qe,ze]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",qe,ze]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:B()}],"bg-repeat":[{bg:G()}],"bg-size":[{bg:Q()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Mr,qe,ze],radial:["",qe,ze],conic:[Mr,qe,ze]},ose,tse]}],"bg-color":[{bg:ee()}
vendor: 7,489 bytes, line 77
77],"gradient-from-pos":[{from:de()}],"gradient-via-pos":[{via:de()}],"gradient-to-pos":[{to:de()}],"gradient-from":[{from:ee()}],"gradient-via":[{via:ee()}],"gradient-to":[{to:ee()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:pe()}],"border-w-x":[{"border-x":pe()}],"border-w-y":[{"border-y":pe()}],"border-w-s":[{"border-s":pe()}],"border-w-e":[{"border-e":pe()}],"border-w-bs":[{"border-bs":pe()}],"border-w-be":[{"border-be":pe()}],"border-w-t":[{"border-t":pe()}],"border-w-r":[{"border-r":pe()}],"border-w-b":[{"border-b":pe()}],"border-w-l":[{"border-l":pe()}],"divide-x":[{"divide-x":pe()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":pe()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...se(),"hidden","none"]}],"divide-style":[{divide:[...se(),"hidden","none"]}],"border-color":[{border:ee()}],"border-color-x":[{"border-x":ee()}],"border-color-y":[{"border-y":ee()}],"border-color-s":[{"border-s":ee()}],"border-color-e":[{"border-e":ee()}],"border-color-bs":[{"border-bs":ee()}],"border-color-be":[{"border-be":ee()}],"border-color-t":[{"border-t":ee()}],"border-color-r":[{"border-r":ee()}],"border-color-b":[{"border-b":ee()}],"border-color-l":[{"border-l":ee()}],"divide-color":[{divide:ee()}],"outline-style":[{outline:[...se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[gt,qe,ze]}],"outline-w":[{outline:["",gt,Xf,ud]}],"outline-color":[{outline:ee()}],shadow:[{shadow:["","none",f,Zv,Xv]}],"shadow-color":[{shadow:ee()}],"inset-shadow":[{"inset-shadow":["none",p,Zv,Xv]}],"inset-shadow-color":[{"inset-shadow":ee()}],"ring-w":[{ring:pe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ee()}],"ring-offset-w":[{"ring-offset":[gt,ud]}],"ring-offset-color":[{"ring-offset":ee()}],"inset-ring-w":[{"inset-ring":pe()}],"inset-ring-color":[{"inset-ring":ee()}],"text-shadow":[{"text-shadow":["none",y,Zv,Xv]}],"text-shadow-color":[{"text-shadow":ee()}],opacity:[{opacity:[gt,qe,ze]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[gt]}],"mask-image-linear-from-pos":[{"mask-linear-from":me()}],"mask-image-linear-to-pos":[{"mask-linear-to":me()}],"mask-image-linear-from-color":[{"mask-linear-from":ee()}],"mask-image-linear-to-color":[{"mask-linear-to":ee()}],"mask-image-t-from-pos":[{"mask-t-from":me()}],"mask-image-t-to-pos":[{"mask-t-to":me()}],"mask-image-t-from-color":[{"mask-t-from":ee()}],"mask-image-t-to-color":[{"mask-t-to":ee()}],"mask-image-r-from-pos":[{"mask-r-from":me()}],"mask-image-r-to-pos":[{"mask-r-to":me()}],"mask-image-r-from-color":[{"mask-r-from":ee()}],"mask-image-r-to-color":[{"mask-r-to":ee()}],"mask-image-b-from-pos":[{"mask-b-from":me()}],"mask-image-b-to-pos":[{"mask-b-to":me()}],"mask-image-b-from-color":[{"mask-b-from":ee()}],"mask-image-b-to-color":[{"mask-b-to":ee()}],"mask-image-l-from-pos":[{"mask-l-from":me()}],"mask-image-l-to-pos":[{"mask-l-to":me()}],"mask-image-l-from-color":[{"mask-l-from":ee()}],"mask-image-l-to-color":[{"mask-l-to":ee()}],"mask-image-x-from-pos":[{"mask-x-from":me()}],"mask-image-x-to-pos":[{"mask-x-to":me()}],"mask-image-x-from-color":[{"mask-x-from":ee()}],"mask-image-x-to-color":[{"mask-x-to":ee()}],"mask-image-y-from-pos":[{"mask-y-from":me()}],"mask-image-y-to-pos":[{"mask-y-to":me()}],"mask-image-y-from-color":[{"mask-y-from":ee()}],"mask-image-y-to-color":[{"mask-y-to":ee()}],"mask-image-radial":[{"mask-radial":[qe,ze]}],"mask-image-radial-from-pos":[{"mask-radial-from":me()}],"mask-image-radial-to-pos":[{"mask-radial-to":me()}],"mask-image-radial-from-color":[{"mask-radial-from":ee()}],"mask-image-radial-to-color":[{"mask-radial-to":ee()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":R()}],"mask-image-conic-pos":[{"mask-conic":[gt]}],"mask-image-conic-from-pos":[{"mask-conic-from":me()}],"mask-image-conic-to-pos":[{"mask-conic-to":me()}],"mask-image-conic-from-color":[{"mask-conic-from":ee()}],"mask-image-conic-to-color":[{"mask-conic-to":ee()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:B()}],"mask-repeat":[{mask:G()}],"mask-size":[{mask:Q()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",qe,ze]}],filter:[{filter:["","none",qe,ze]}],blur:[{blur:ye()}],brightness:[{brightness:[gt,qe,ze]}],contrast:[{contrast:[gt,qe,ze]}],"drop-shadow":[{"drop-shadow":["","none",v,Zv,Xv]}],"drop-shadow-color":[{"drop-shadow":ee()}],grayscale:[{grayscale:["",gt,qe,ze]}],"hue-rotate":[{"hue-rotate":[gt,qe,ze]}],invert:[{invert:["",gt,qe,ze]}],saturate:[{saturate:[gt,qe,ze]}],sepia:[{sepia:["",gt,qe,ze]}],"backdrop-filter":[{"backdrop-filter":["","none",qe,ze]}],"backdrop-blur":[{"backdrop-blur":ye()}],"backdrop-brightness":[{"backdrop-brightness":[gt,qe,ze]}],"backdrop-contrast":[{"backdrop-contrast":[gt,qe,ze]}],"backdrop-grayscale":[{"backdrop-grayscale":["",gt,qe,ze]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[gt,qe,ze]}],"backdrop-invert":[{"backdrop-invert":["",gt,qe,ze]}],"backdrop-opacity":[{"backdrop-opacity":[gt,qe,ze]}],"backdrop-saturate":[{"backdrop-saturate":[gt,qe,ze]}],"backdrop-sepia":[{"backdrop-sepia":["",gt,qe,ze]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":N()}],"border-spacing-x":[{"border-spacing-x":N()}],"border-spacing-y":[{"border-spacing-y":N()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",qe,ze]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[gt,"initial",qe,ze]}],ease:[{ease:["linear","initial",S,qe,ze]}],delay:[{delay:[gt,qe,ze]}],animate:[{animate:["none",k,qe,ze]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[x,qe,ze]}],"perspective-origin":[{"perspective-origin":_()}],rotate:[{rotate:_e()}],"rotate-x":[{"rotate-x":_e()}],"rotate-y":[{"rotate-y":_e()}],"rotate-z":[{"rotate-z":_e()}],scale:[{scale:ae()}],"scale-x":[{"scale-x":ae()}],"scale-y":[{"scale-y":ae()}],"scale-z":[{"scale-z":ae()}],"scale-3d":["scale-3d"],skew:[{skew:Je()}],"skew-x":[{"skew-x":Je()}],"skew-y":[{"skew-y":Je()}],transform:[{transform:[qe,ze,"","none","gpu","cpu"]}],"transform-origin":[{origin:_()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ae()}],"translate-x":[{"translate-x":Ae()}],"translate-y":[{"translate-y":Ae()}],"translate-z":[{"translate-z":Ae()}],"translate-none":["translate-none"],zoom:[{zoom:[Mr,qe,ze]}],accent:[{accent:ee()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ee()}
vendor: 5,127 bytes, line 77
77],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",qe,ze]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":ee()}],"scrollbar-track-color":[{"scrollbar-track":ee()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":N()}],"scroll-mx":[{"scroll-mx":N()}],"scroll-my":[{"scroll-my":N()}],"scroll-ms":[{"scroll-ms":N()}],"scroll-me":[{"scroll-me":N()}],"scroll-mbs":[{"scroll-mbs":N()}],"scroll-mbe":[{"scroll-mbe":N()}],"scroll-mt":[{"scroll-mt":N()}],"scroll-mr":[{"scroll-mr":N()}],"scroll-mb":[{"scroll-mb":N()}],"scroll-ml":[{"scroll-ml":N()}],"scroll-p":[{"scroll-p":N()}],"scroll-px":[{"scroll-px":N()}],"scroll-py":[{"scroll-py":N()}],"scroll-ps":[{"scroll-ps":N()}],"scroll-pe":[{"scroll-pe":N()}],"scroll-pbs":[{"scroll-pbs":N()}],"scroll-pbe":[{"scroll-pbe":N()}],"scroll-pt":[{"scroll-pt":N()}],"scroll-pr":[{"scroll-pr":N()}],"scroll-pb":[{"scroll-pb":N()}],"scroll-pl":[{"scroll-pl":N()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",qe,ze]}],fill:[{fill:["none",...ee()]}],"stroke-w":[{stroke:[gt,Xf,ud,tO]}],stroke:[{stroke:["none",...ee()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},lse=Uoe(ise);function X(...e){return lse(Lt(e))}function oO(e,t){if(typeof e=="function")return e(t);
vendor: 5,567 bytes, lines 77-136
77e!=null&&(e.current=t)}function di(...e){return t=>{let n=!1;const a=e.map(s=>{const r=oO(s,t);return!n&&typeof r=="function"&&(n=!0),r});if(n)return()=>{for(let s=0;s<a.length;s++){const r=a[s];typeof r=="function"?r():oO(e[s],null)}}}}function vt(...e){return h.useCallback(di(...e),e)}var cse=Symbol.for("react.lazy"),Ax=Lh[" use ".trim().toString()];function dse(e){return typeof e=="object"&&e!==null&&"then"in e}function UF(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===cse&&"_payload"in e&&dse(e._payload)}function u_(e){const t=use(e),n=h.forwardRef((a,s)=>{let{children:r,...i}=a;UF(r)&&typeof Ax=="function"&&(r=Ax(r._payload));const c=h.Children.toArray(r),d=c.find(pse);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}var m_=u_("Slot");function use(e){const t=h.forwardRef((n,a)=>{let{children:s,...r}=n;if(UF(s)&&typeof Ax=="function"&&(s=Ax(s._payload)),h.isValidElement(s)){const i=gse(s),c=fse(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var mse=Symbol("radix.slottable");function pse(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===mse}function fse(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function gse(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}/** 78 * @license lucide-react v0.469.0 - ISC 79 * 80 * This source code is licensed under the ISC license. 81 * See the LICENSE file in the root directory of this source tree. 82 */const hse=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),BF=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();/** 83 * @license lucide-react v0.469.0 - ISC 84 * 85 * This source code is licensed under the ISC license. 86 * See the LICENSE file in the root directory of this source tree. 87 */var yse={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 88 * @license lucide-react v0.469.0 - ISC 89 * 90 * This source code is licensed under the ISC license. 91 * See the LICENSE file in the root directory of this source tree. 92 */const vse=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:s="",children:r,iconNode:i,...c},d)=>h.createElement("svg",{ref:d,...yse,width:t,height:t,stroke:e,strokeWidth:a?Number(n)*24/Number(t):n,className:BF("lucide",s),...c},[...i.map(([m,f])=>h.createElement(m,f)),...Array.isArray(r)?r:[r]]));/** 93 * @license lucide-react v0.469.0 - ISC 94 * 95 * This source code is licensed under the ISC license. 96 * See the LICENSE file in the root directory of this source tree. 97 */const oo=(e,t)=>{const n=h.forwardRef(({className:a,...s},r)=>h.createElement(vse,{ref:r,iconNode:t,className:BF(`lucide-${hse(e)}`,a),...s}));return n.displayName=`${e}`,n};/** 98 * @license lucide-react v0.469.0 - ISC 99 * 100 * This source code is licensed under the ISC license. 101 * See the LICENSE file in the root directory of this source tree. 102 */const FF=oo("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** 103 * @license lucide-react v0.469.0 - ISC 104 * 105 * This source code is licensed under the ISC license. 106 * See the LICENSE file in the root directory of this source tree. 107 */const Ec=oo("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 108 * @license lucide-react v0.469.0 - ISC 109 * 110 * This source code is licensed under the ISC license. 111 * See the LICENSE file in the root directory of this source tree. 112 */const Ic=oo("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 113 * @license lucide-react v0.469.0 - ISC 114 * 115 * This source code is licensed under the ISC license. 116 * See the LICENSE file in the root directory of this source tree. 117 */const p_=oo("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** 118 * @license lucide-react v0.469.0 - ISC 119 * 120 * This source code is licensed under the ISC license. 121 * See the LICENSE file in the root directory of this source tree. 122 */const J$=oo("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 123 * @license lucide-react v0.469.0 - ISC 124 * 125 * This source code is licensed under the ISC license. 126 * See the LICENSE file in the root directory of this source tree. 127 */const bse=oo("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** 128 * @license lucide-react v0.469.0 - ISC 129 * 130 * This source code is licensed under the ISC license. 131 * See the LICENSE file in the root directory of this source tree. 132 */const xse=oo("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 133 * @license lucide-react v0.469.0 - ISC 134 * 135 * This source code is licensed under the ISC license. 136 * See the LICENSE file in the root directory of this source tree.
137 */const zF=oo("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** 138 * @license lucide-react v0.469.0 - ISC 139 * 140 * This source code is licensed under the ISC license. 141 * See the LICENSE file in the root directory of this source tree. 142 */const $se=oo("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** 143 * @license lucide-react v0.469.0 - ISC 144 * 145 * This source code is licensed under the ISC license. 146 * See the LICENSE file in the root directory of this source tree. 147 */const f_=oo("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** 148 * @license lucide-react v0.469.0 - ISC 149 * 150 * This source code is licensed under the ISC license. 151 * See the LICENSE file in the root directory of this source tree. 152 */const wse=oo("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** 153 * @license lucide-react v0.469.0 - ISC 154 * 155 * This source code is licensed under the ISC license. 156 * See the LICENSE file in the root directory of this source tree. 157 */const kse=oo("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** 158 * @license lucide-react v0.469.0 - ISC 159 * 160 * This source code is licensed under the ISC license. 161 * See the LICENSE file in the root directory of this source tree. 162 */const Cse=oo("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 163 * @license lucide-react v0.469.0 - ISC 164 * 165 * This source code is licensed under the ISC license. 166 * See the LICENSE file in the root directory of this source tree. 167 */const Sse=oo("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** 168 * @license lucide-react v0.469.0 - ISC 169 * 170 * This source code is licensed under the ISC license. 171 * See the LICENSE file in the root directory of this source tree. 172 */const Fh=oo("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),sO=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,rO=Lt,zh=(e,t)=>n=>{var a;if(t?.variants==null)return rO(e,n?.class,n?.className);const{variants:s,defaultVariants:r}=t,i=Object.keys(s).map(m=>{const f=n?.[m],p=r?.[m];if(f===null)return null;const y=sO(f)||sO(p);return s[m][y]}),c=n&&Object.entries(n).reduce((m,f)=>{let[p,y]=f;return y===void 0||(m[p]=y),m},{}),d=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((m,f)=>{let{class:p,className:y,...v}=f;return Object.entries(v).every($=>{let[x,w]=$;return Array.isArray(w)?w.includes({...r,...c}[x]):{...r,...c}[x]===w})?[...m,p,y]:m},[]);return rO(e,i,d,n?.class,n?.className)},ur=zh("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-[color:var(--primary)] text-[color:var(--primary-foreground)] hover:opacity-90",destructive:"bg-[color:var(--destructive)] text-[color:var(--destructive-foreground)] hover:opacity-90",outline:"border border-[color:var(--border)] bg-transparent hover:bg-[color:var(--accent)] hover:text-[color:var(--accent-foreground)]",secondary:"bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)] hover:opacity-90",ghost:"hover:bg-[color:var(--accent)] hover:text-[color:var(--accent-foreground)]",link:"text-[color:var(--link)] underline underline-offset-[length:var(--link-underline-offset)] hover:decoration-2"},size:{sm:"h-8 px-3",md:"h-10 px-4",lg:"h-12 px-6 text-base",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"md"}}),K=h.forwardRef(({className:e,variant:t,size:n,asChild:a,loading:s,disabled:r,children:i,...c},d)=>{const m=a?m_:"button";return o.jsx(m,{ref:d,className:X(ur({variant:t,size:n}),e),disabled:r||s,...c,children:a?i:o.jsxs(o.Fragment,{children:[s?o.jsx(f_,{className:"size-4 animate-spin","aria-hidden":!0}):null,i]})})});K.displayName="Button";const Ase=zh("grid place-items-center rounded-full text-[color:var(--muted-foreground)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{ghost:"hover:bg-[color:var(--muted)] hover:text-[color:var(--foreground)]",soft:"bg-[color:var(--secondary)] hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]"},size:{md:"size-9",sm:"size-8"}},defaultVariants:{variant:"ghost",size:"md"}}),Aa=h.forwardRef(({className:e,variant:t,size:n,...a},s)=>o.jsx("button",{ref:s,className:X(Ase({variant:t,size:n}),e),...a}));Aa.displayName="IconButton";function qF({timeout:e=1500}={}){const[t,n]=h.useState(!1),a=h.useRef(void 0);h.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]);const s=h.useCallback(async r=>{try{return navigator?.clipboard?(await navigator.clipboard.writeText(r),n(!0),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>n(!1),e),!0):!1}catch{return!1}},[e]);return{copied:t,copy:s}}const ew="oh-input h-10 w-full rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 text-sm text-[color:var(--foreground)] outline-none transition-colors placeholder:text-[color:var(--muted-foreground)] focus-visible:border-[color:var(--ring)] disabled:cursor-not-allowed disabled:opacity-50",Tse=X(ew,"oh-native-select"),ge=h.forwardRef(({className:e,startIcon:t,endIcon:n,...a},s)=>{const r=o.jsx("input",{ref:s,className:X(ew,t&&"pl-9",n&&"pr-9",e),...a});return!t&&!n?r:o.jsxs("div",{className:"relative w-full",children:[t?o.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-0 grid w-9 place-items-center text-[color:var(--muted-foreground)]",children:t}):null,r,n?o.jsx("span",{className:"absolute inset-y-0 right-0 grid w-9 place-items-center text-[color:var(--muted-foreground)]",children:n}):null]})});ge.displayName="TextInput";const HF=h.forwardRef(({className:e,...t},n)=>o.jsx("select",{ref:n,className:X(Tse,e),...t}));HF.displayName="NativeSelect";function je(e,t,{checkForDefaultPrevented:n=!0}={}){return function(s){if(e?.(s),n===!1||!s.defaultPrevented)return t?.(s)}}function Rse(e,t){const n=h.createContext(t),a=r=>{const{children:i,...c}=r,d=h.useMemo(()=>c,Object.values(c));return o.jsx(n.Provider,{value:d,children:i})};a.displayName=e+"Provider";function s(r){const i=h.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${r}\` must be used within \`${e}\``)}return[a,s]}function so(e,t=[]){let n=[];function a(r,i){const c=h.createContext(i),d=n.length;n=[...n,i];const m=p=>{const{scope:y,children:v,...$}=p,x=y?.[e]?.[d]||c,w=h.useMemo(()=>$,Object.values($));return o.jsx(x.Provider,{value:w,children:v})};m.displayName=r+"Provider";function f(p,y){const v=y?.[e]?.[d]||c,$=h.useContext(v);if($)return $;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${r}\``)}return[m,f]}const s=()=>{const r=n.map(i=>h.createContext(i));return function(c){const d=c?.[e]||r;return h.useMemo(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return s.scopeName=e,[a,Pse(s,...t)]}function Pse(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const a=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(r){const i=a.reduce((c,{useScope:d,scopeName:m})=>{const p=d(r)[`__scope${m}`];return{...c,...p}},{});return h.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function _se(e){const t=jse(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(Dse);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function jse(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=Ese(s),c=Mse(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Nse=Symbol("radix.slottable");function Dse(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Nse}function Mse(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}
vendor: 4,757 bytes, line 172
172:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function Ese(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ise=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],st=Ise.reduce((e,t)=>{const n=_se(`Primitive.${t}`),a=h.forwardRef((s,r)=>{const{asChild:i,...c}=s,d=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(d,{...c,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function VF(e,t){e&&li.flushSync(()=>e.dispatchEvent(t))}function oi(e){const t=h.useRef(e);return h.useEffect(()=>{t.current=e}),h.useMemo(()=>(...n)=>t.current?.(...n),[])}function Ose(e,t=globalThis?.document){const n=oi(e);h.useEffect(()=>{const a=s=>{s.key==="Escape"&&n(s)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[n,t])}var Lse="DismissableLayer",HT="dismissableLayer.update",Use="dismissableLayer.pointerDownOutside",Bse="dismissableLayer.focusOutside",iO,KF=h.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),mu=h.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:r,onInteractOutside:i,onDismiss:c,...d}=e,m=h.useContext(KF),[f,p]=h.useState(null),y=f?.ownerDocument??globalThis?.document,[,v]=h.useState({}),$=vt(t,j=>p(j)),x=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),S=x.indexOf(w),k=f?x.indexOf(f):-1,T=m.layersWithOutsidePointerEventsDisabled.size>0,R=k>=S,_=qse(j=>{const N=j.target,I=[...m.branches].some(z=>z.contains(N));!R||I||(s?.(j),i?.(j),j.defaultPrevented||c?.())},y),P=Hse(j=>{const N=j.target;[...m.branches].some(z=>z.contains(N))||(r?.(j),i?.(j),j.defaultPrevented||c?.())},y);return Ose(j=>{k===m.layers.size-1&&(a?.(j),!j.defaultPrevented&&c&&(j.preventDefault(),c()))},y),h.useEffect(()=>{if(f)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(iO=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(f)),m.layers.add(f),lO(),()=>{n&&m.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=iO)}},[f,y,n,m]),h.useEffect(()=>()=>{f&&(m.layers.delete(f),m.layersWithOutsidePointerEventsDisabled.delete(f),lO())},[f,m]),h.useEffect(()=>{const j=()=>v({});return document.addEventListener(HT,j),()=>document.removeEventListener(HT,j)},[]),o.jsx(st.div,{...d,ref:$,style:{pointerEvents:T?R?"auto":"none":void 0,...e.style},onFocusCapture:je(e.onFocusCapture,P.onFocusCapture),onBlurCapture:je(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:je(e.onPointerDownCapture,_.onPointerDownCapture)})});mu.displayName=Lse;var Fse="DismissableLayerBranch",zse=h.forwardRef((e,t)=>{const n=h.useContext(KF),a=h.useRef(null),s=vt(t,a);return h.useEffect(()=>{const r=a.current;if(r)return n.branches.add(r),()=>{n.branches.delete(r)}},[n.branches]),o.jsx(st.div,{...e,ref:s})});zse.displayName=Fse;function qse(e,t=globalThis?.document){const n=oi(e),a=h.useRef(!1),s=h.useRef(()=>{});return h.useEffect(()=>{const r=c=>{if(c.target&&!a.current){let d=function(){GF(Use,n,m,{discrete:!0})};const m={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",s.current),s.current=d,t.addEventListener("click",s.current,{once:!0})):d()}else t.removeEventListener("click",s.current);a.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",r)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",r),t.removeEventListener("click",s.current)}},[t,n]),{onPointerDownCapture:()=>a.current=!0}}function Hse(e,t=globalThis?.document){const n=oi(e),a=h.useRef(!1);return h.useEffect(()=>{const s=r=>{r.target&&!a.current&&GF(Bse,n,{originalEvent:r},{discrete:!1})};return t.addEventListener("focusin",s),()=>t.removeEventListener("focusin",s)},[t,n]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function lO(){const e=new CustomEvent(HT);document.dispatchEvent(e)}function GF(e,t,n,{discrete:a}){const s=n.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&s.addEventListener(e,t,{once:!0}),a?VF(s,r):s.dispatchEvent(r)}var Ra=globalThis?.document?h.useLayoutEffect:()=>{},Vse=Lh[" useId ".trim().toString()]||(()=>{}),Kse=0;function To(e){const[t,n]=h.useState(Vse());return Ra(()=>{n(a=>a??String(Kse++))},[e]),e||(t?`radix-${t}`:"")}const Gse=["top","right","bottom","left"],wc=Math.min,Vo=Math.max,Tx=Math.round,Jv=Math.floor,ei=e=>({x:e,y:e}
vendor: 11,898 bytes, line 172
172),Wse={left:"right",right:"left",bottom:"top",top:"bottom"};function VT(e,t,n){return Vo(e,wc(t,n))}function Zi(e,t){return typeof e=="function"?e(t):e}function Ji(e){return e.split("-")[0]}function Ep(e){return e.split("-")[1]}function g_(e){return e==="x"?"y":"x"}function h_(e){return e==="y"?"height":"width"}function Yr(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function y_(e){return g_(Yr(e))}function Yse(e,t,n){n===void 0&&(n=!1);const a=Ep(e),s=y_(e),r=h_(s);let i=s==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[r]>t.floating[r]&&(i=Rx(i)),[i,Rx(i)]}function Qse(e){const t=Rx(e);return[KT(e),t,KT(t)]}function KT(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const cO=["left","right"],dO=["right","left"],Xse=["top","bottom"],Zse=["bottom","top"];function Jse(e,t,n){switch(e){case"top":case"bottom":return n?t?dO:cO:t?cO:dO;case"left":case"right":return t?Xse:Zse;default:return[]}}function ere(e,t,n,a){const s=Ep(e);let r=Jse(Ji(e),n==="start",a);return s&&(r=r.map(i=>i+"-"+s),t&&(r=r.concat(r.map(KT)))),r}function Rx(e){const t=Ji(e);return Wse[t]+e.slice(t.length)}function tre(e){return{top:0,right:0,bottom:0,left:0,...e}}function WF(e){return typeof e!="number"?tre(e):{top:e,right:e,bottom:e,left:e}}function Px(e){const{x:t,y:n,width:a,height:s}=e;return{width:a,height:s,top:n,left:t,right:t+a,bottom:n+s,x:t,y:n}}function uO(e,t,n){let{reference:a,floating:s}=e;const r=Yr(t),i=y_(t),c=h_(i),d=Ji(t),m=r==="y",f=a.x+a.width/2-s.width/2,p=a.y+a.height/2-s.height/2,y=a[c]/2-s[c]/2;let v;switch(d){case"top":v={x:f,y:a.y-s.height};break;case"bottom":v={x:f,y:a.y+a.height};break;case"right":v={x:a.x+a.width,y:p};break;case"left":v={x:a.x-s.width,y:p};break;default:v={x:a.x,y:a.y}}switch(Ep(t)){case"start":v[i]-=y*(n&&m?-1:1);break;case"end":v[i]+=y*(n&&m?-1:1);break}return v}async function nre(e,t){var n;t===void 0&&(t={});const{x:a,y:s,platform:r,rects:i,elements:c,strategy:d}=e,{boundary:m="clippingAncestors",rootBoundary:f="viewport",elementContext:p="floating",altBoundary:y=!1,padding:v=0}=Zi(t,e),$=WF(v),w=c[y?p==="floating"?"reference":"floating":p],S=Px(await r.getClippingRect({element:(n=await(r.isElement==null?void 0:r.isElement(w)))==null||n?w:w.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(c.floating)),boundary:m,rootBoundary:f,strategy:d})),k=p==="floating"?{x:a,y:s,width:i.floating.width,height:i.floating.height}:i.reference,T=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c.floating)),R=await(r.isElement==null?void 0:r.isElement(T))?await(r.getScale==null?void 0:r.getScale(T))||{x:1,y:1}:{x:1,y:1},_=Px(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:k,offsetParent:T,strategy:d}):k);return{top:(S.top-_.top+$.top)/R.y,bottom:(_.bottom-S.bottom+$.bottom)/R.y,left:(S.left-_.left+$.left)/R.x,right:(_.right-S.right+$.right)/R.x}}const are=50,ore=async(e,t,n)=>{const{placement:a="bottom",strategy:s="absolute",middleware:r=[],platform:i}=n,c=i.detectOverflow?i:{...i,detectOverflow:nre},d=await(i.isRTL==null?void 0:i.isRTL(t));let m=await i.getElementRects({reference:e,floating:t,strategy:s}),{x:f,y:p}=uO(m,a,d),y=a,v=0;const $={};for(let x=0;x<r.length;x++){const w=r[x];if(!w)continue;const{name:S,fn:k}=w,{x:T,y:R,data:_,reset:P}=await k({x:f,y:p,initialPlacement:a,placement:y,strategy:s,middlewareData:$,rects:m,platform:c,elements:{reference:e,floating:t}});f=T??f,p=R??p,$[S]={...$[S],..._},P&&v<are&&(v++,typeof P=="object"&&(P.placement&&(y=P.placement),P.rects&&(m=P.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:s}):P.rects),{x:f,y:p}=uO(m,y,d)),x=-1)}return{x:f,y:p,placement:y,strategy:s,middlewareData:$}},sre=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:s,rects:r,platform:i,elements:c,middlewareData:d}=t,{element:m,padding:f=0}=Zi(e,t)||{};if(m==null)return{};const p=WF(f),y={x:n,y:a},v=y_(s),$=h_(v),x=await i.getDimensions(m),w=v==="y",S=w?"top":"left",k=w?"bottom":"right",T=w?"clientHeight":"clientWidth",R=r.reference[$]+r.reference[v]-y[v]-r.floating[$],_=y[v]-r.reference[v],P=await(i.getOffsetParent==null?void 0:i.getOffsetParent(m));let j=P?P[T]:0;(!j||!await(i.isElement==null?void 0:i.isElement(P)))&&(j=c.floating[T]||r.floating[$]);const N=R/2-_/2,I=j/2-x[$]/2-1,z=wc(p[S],I),E=wc(p[k],I),L=z,O=j-x[$]-E,V=j/2-x[$]/2+N,ne=VT(L,V,O),q=!d.arrow&&Ep(s)!=null&&V!==ne&&r.reference[$]/2-(V<L?z:E)-x[$]/2<0,M=q?V<L?V-L:V-O:0;return{[v]:y[v]+M,data:{[v]:ne,centerOffset:V-ne-M,...q&&{alignmentOffset:M}},reset:q}}}),rre=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,a;const{placement:s,middlewareData:r,rects:i,initialPlacement:c,platform:d,elements:m}=t,{mainAxis:f=!0,crossAxis:p=!0,fallbackPlacements:y,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:$="none",flipAlignment:x=!0,...w}=Zi(e,t);if((n=r.arrow)!=null&&n.alignmentOffset)return{};const S=Ji(s),k=Yr(c),T=Ji(c)===c,R=await(d.isRTL==null?void 0:d.isRTL(m.floating)),_=y||(T||!x?[Rx(c)]:Qse(c)),P=$!=="none";!y&&P&&_.push(...ere(c,x,$,R));const j=[c,..._],N=await d.detectOverflow(t,w),I=[];let z=((a=r.flip)==null?void 0:a.overflows)||[];if(f&&I.push(N[S]),p){const V=Yse(s,i,R);I.push(N[V[0]],N[V[1]])}if(z=[...z,{placement:s,overflows:I}],!I.every(V=>V<=0)){var E,L;const V=(((E=r.flip)==null?void 0:E.index)||0)+1,ne=j[V];if(ne&&(!(p==="alignment"?k!==Yr(ne):!1)||z.every(F=>Yr(F.placement)===k?F.overflows[0]>0:!0)))return{data:{index:V,overflows:z},reset:{placement:ne}};let q=(L=z.filter(M=>M.overflows[0]<=0).sort((M,F)=>M.overflows[1]-F.overflows[1])[0])==null?void 0:L.placement;if(!q)switch(v){case"bestFit":{var O;const M=(O=z.filter(F=>{if(P){const H=Yr(F.placement);return H===k||H==="y"}return!0}).map(F=>[F.placement,F.overflows.filter(H=>H>0).reduce((H,ee)=>H+ee,0)]).sort((F,H)=>F[1]-H[1])[0])==null?void 0:O[0];M&&(q=M);break}case"initialPlacement":q=c;break}if(s!==q)return{reset:{placement:q}}}return{}}}};function mO(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function pO(e){return Gse.some(t=>e[t]>=0)}const ire=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:a}=t,{strategy:s="referenceHidden",...r}=Zi(e,t);switch(s){case"referenceHidden":{const i=await a.detectOverflow(t,{...r,elementContext:"reference"}),c=mO(i,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:pO(c)}}}case"escaped":{const i=await a.detectOverflow(t,{...r,altBoundary:!0}),c=mO(i,n.floating);return{data:{escapedOffsets:c,escaped:pO(c)}}}default:return{}}}}},YF=new Set(["left","top"]);async function lre(e,t){const{placement:n,platform:a,elements:s}=e,r=await(a.isRTL==null?void 0:a.isRTL(s.floating)),i=Ji(n),c=Ep(n),d=Yr(n)==="y",m=YF.has(i)?-1:1,f=r&&d?-1:1,p=Zi(t,e);let{mainAxis:y,crossAxis:v,alignmentAxis:$}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return c&&typeof $=="number"&&(v=c==="end"?$*-1:$),d?{x:v*f,y:y*m}:{x:y*m,y:v*f}}const cre=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:s,y:r,placement:i,middlewareData:c}=t,d=await lre(t,e);return i===((n=c.offset)==null?void 0:n.placement)&&(a=c.arrow)!=null&&a.alignmentOffset?{}:{x:s+d.x,y:r+d.y,data:{...d,placement:i}}}}},dre=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:a,placement:s,platform:r}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:d={fn:S=>{let{x:k,y:T}=S;return{x:k,y:T}}},...m}=Zi(e,t),f={x:n,y:a},p=await r.detectOverflow(t,m),y=Yr(Ji(s)),v=g_(y);let $=f[v],x=f[y];if(i){const S=v==="y"?"top":"left",k=v==="y"?"bottom":"right",T=$+p[S],R=$-p[k];$=VT(T,$,R)}if(c){const S=y==="y"?"top":"left",k=y==="y"?"bottom":"right",T=x+p[S],R=x-p[k];x=VT(T,x,R)}const w=d.fn({...t,[v]:$,[y]:x});return{...w,data:{x:w.x-n,y:w.y-a,enabled:{[v]:i,[y]:c}}}}}},ure=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:a,placement:s,rects:r,middlewareData:i}=t,{offset:c=0,mainAxis:d=!0,crossAxis:m=!0}=Zi(e,t),f={x:n,y:a},p=Yr(s),y=g_(p);let v=f[y],$=f[p];const x=Zi(c,t),w=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(d){const T=y==="y"?"height":"width",R=r.reference[y]-r.floating[T]+w.mainAxis,_=r.reference[y]+r.reference[T]-w.mainAxis;v<R?v=R:v>_&&(v=_)}if(m){var S,k;const T=y==="y"?"width":"height",R=YF.has(Ji(s)),_=r.reference[p]-r.floating[T]+(R&&((S=i.offset)==null?void 0:S[p])||0)+(R?0:w.crossAxis),P=r.reference[p]+r.reference[T]+(R?0:((k=i.offset)==null?void 0:k[p])||0)-(R?w.crossAxis:0);$<_?$=_:$>P&&($=P)}return{[y]:v,[p]:$}}}},mre=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,a;const{placement:s,rects:r,platform:i,elements:c}=t,{apply:d=()=>{},...m}=Zi(e,t),f=await i.detectOverflow(t,m),p=Ji(s),y=Ep(s),v=Yr(s)==="y",{width:$,height:x}=r.floating;let w,S;p==="top"||p==="bottom"?(w=p,S=y===(await(i.isRTL==null?void 0:i.isRTL(c.floating))?"start":"end")?"left":"right"):(S=p,w=y==="end"?"top":"bottom");const k=x-f.top-f.bottom,T=$-f.left-f.right,R=wc(x-f[w],k),_=wc($-f[S],T),P=!t.middlewareData.shift;let j=R,N=_;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(N=T),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(j=k),P&&!y){const z=Vo(f.left,0),E=Vo(f.right,0),L=Vo(f.top,0),O=Vo(f.bottom,0);v?N=$-2*(z!==0||E!==0?z+E:Vo(f.left,f.right)):j=x-2*(L!==0||O!==0?L+O:Vo(f.top,f.bottom))}await d({...t,availableWidth:N,availableHeight:j});const I=await i.getDimensions(c.floating);return $!==I.width||x!==I.height?{reset:{rects:!0}}:{}}}};function tw(){return typeof window<"u"}function Ip(e){return QF(e)?(e.nodeName||"").toLowerCase():"#document"}function Jo(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ui(e){var t;return(t=(QF(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function QF(e){return tw()?e instanceof Node||e instanceof Jo(e).Node:!1}function mr(e){return tw()?e instanceof Element||e instanceof Jo(e).Element:!1}function dl(e){return tw()?e instanceof HTMLElement||e instanceof Jo(e).HTMLElement:!1}function fO(e){return!tw()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Jo(e).ShadowRoot}function qh(e){const{overflow:t,overflowX:n,overflowY:a,display:s}=pr(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&s!=="inline"&&s!=="contents"}function pre(e){return/^(table|td|th)$/.test(Ip(e))}function nw(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const fre=/transform|translate|scale|rotate|perspective|filter/,gre=/paint|layout|strict|content/,md=e=>!!e&&e!=="none";let b1;function v_(e){const t=mr(e)?pr(e):e;return md(t.transform)||md(t.translate)||md(t.scale)||md(t.rotate)||md(t.perspective)||!b_()&&(md(t.backdropFilter)||md(t.filter))||fre.test(t.willChange||"")||gre.test(t.contain||"")}function hre(e){let t=kc(e);for(;dl(t)&&!pp(t);){if(v_(t))return t;if(nw(t))return null;t=kc(t)}return null}function b_(){return b1==null&&(b1=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),b1}function pp(e){return/^(html|body|#document)$/.test(Ip(e))}function pr(e){return Jo(e).getComputedStyle(e)}function aw(e){return mr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function kc(e){if(Ip(e)==="html")return e;const t=e.assignedSlot||e.parentNode||fO(e)&&e.host||ui(e);return fO(t)?t.host:t}function XF(e){const t=kc(e);return pp(t)?e.ownerDocument?e.ownerDocument.body:e.body:dl(t)&&qh(t)?t:XF(t)}function Qg(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const s=XF(e),r=s===((a=e.ownerDocument)==null?void 0:a.body),i=Jo(s);if(r){const c=GT(i);
vendor: 7,201 bytes, line 172
172return t.concat(i,i.visualViewport||[],qh(s)?s:[],c&&n?Qg(c):[])}else return t.concat(s,Qg(s,[],n))}function GT(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ZF(e){const t=pr(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const s=dl(e),r=s?e.offsetWidth:n,i=s?e.offsetHeight:a,c=Tx(n)!==r||Tx(a)!==i;return c&&(n=r,a=i),{width:n,height:a,$:c}}function x_(e){return mr(e)?e:e.contextElement}function Fm(e){const t=x_(e);if(!dl(t))return ei(1);const n=t.getBoundingClientRect(),{width:a,height:s,$:r}=ZF(t);let i=(r?Tx(n.width):n.width)/a,c=(r?Tx(n.height):n.height)/s;return(!i||!Number.isFinite(i))&&(i=1),(!c||!Number.isFinite(c))&&(c=1),{x:i,y:c}}const yre=ei(0);function JF(e){const t=Jo(e);return!b_()||!t.visualViewport?yre:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vre(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Jo(e)?!1:t}function Qd(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),r=x_(e);let i=ei(1);t&&(a?mr(a)&&(i=Fm(a)):i=Fm(e));const c=vre(r,n,a)?JF(r):ei(0);let d=(s.left+c.x)/i.x,m=(s.top+c.y)/i.y,f=s.width/i.x,p=s.height/i.y;if(r){const y=Jo(r),v=a&&mr(a)?Jo(a):a;let $=y,x=GT($);for(;x&&a&&v!==$;){const w=Fm(x),S=x.getBoundingClientRect(),k=pr(x),T=S.left+(x.clientLeft+parseFloat(k.paddingLeft))*w.x,R=S.top+(x.clientTop+parseFloat(k.paddingTop))*w.y;d*=w.x,m*=w.y,f*=w.x,p*=w.y,d+=T,m+=R,$=Jo(x),x=GT($)}}return Px({width:f,height:p,x:d,y:m})}function ow(e,t){const n=aw(e).scrollLeft;return t?t.left+n:Qd(ui(e)).left+n}function ez(e,t){const n=e.getBoundingClientRect(),a=n.left+t.scrollLeft-ow(e,n),s=n.top+t.scrollTop;return{x:a,y:s}}function bre(e){let{elements:t,rect:n,offsetParent:a,strategy:s}=e;const r=s==="fixed",i=ui(a),c=t?nw(t.floating):!1;if(a===i||c&&r)return n;let d={scrollLeft:0,scrollTop:0},m=ei(1);const f=ei(0),p=dl(a);if((p||!p&&!r)&&((Ip(a)!=="body"||qh(i))&&(d=aw(a)),p)){const v=Qd(a);m=Fm(a),f.x=v.x+a.clientLeft,f.y=v.y+a.clientTop}const y=i&&!p&&!r?ez(i,d):ei(0);return{width:n.width*m.x,height:n.height*m.y,x:n.x*m.x-d.scrollLeft*m.x+f.x+y.x,y:n.y*m.y-d.scrollTop*m.y+f.y+y.y}}function xre(e){return Array.from(e.getClientRects())}function $re(e){const t=ui(e),n=aw(e),a=e.ownerDocument.body,s=Vo(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),r=Vo(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let i=-n.scrollLeft+ow(e);const c=-n.scrollTop;return pr(a).direction==="rtl"&&(i+=Vo(t.clientWidth,a.clientWidth)-s),{width:s,height:r,x:i,y:c}}const gO=25;function wre(e,t){const n=Jo(e),a=ui(e),s=n.visualViewport;let r=a.clientWidth,i=a.clientHeight,c=0,d=0;if(s){r=s.width,i=s.height;const f=b_();(!f||f&&t==="fixed")&&(c=s.offsetLeft,d=s.offsetTop)}const m=ow(a);if(m<=0){const f=a.ownerDocument,p=f.body,y=getComputedStyle(p),v=f.compatMode==="CSS1Compat"&&parseFloat(y.marginLeft)+parseFloat(y.marginRight)||0,$=Math.abs(a.clientWidth-p.clientWidth-v);$<=gO&&(r-=$)}else m<=gO&&(r+=m);return{width:r,height:i,x:c,y:d}}function kre(e,t){const n=Qd(e,!0,t==="fixed"),a=n.top+e.clientTop,s=n.left+e.clientLeft,r=dl(e)?Fm(e):ei(1),i=e.clientWidth*r.x,c=e.clientHeight*r.y,d=s*r.x,m=a*r.y;return{width:i,height:c,x:d,y:m}}function hO(e,t,n){let a;if(t==="viewport")a=wre(e,n);else if(t==="document")a=$re(ui(e));else if(mr(t))a=kre(t,n);else{const s=JF(e);a={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Px(a)}function tz(e,t){const n=kc(e);return n===t||!mr(n)||pp(n)?!1:pr(n).position==="fixed"||tz(n,t)}function Cre(e,t){const n=t.get(e);if(n)return n;let a=Qg(e,[],!1).filter(c=>mr(c)&&Ip(c)!=="body"),s=null;const r=pr(e).position==="fixed";let i=r?kc(e):e;for(;mr(i)&&!pp(i);){const c=pr(i),d=v_(i);!d&&c.position==="fixed"&&(s=null),(r?!d&&!s:!d&&c.position==="static"&&!!s&&(s.position==="absolute"||s.position==="fixed")||qh(i)&&!d&&tz(e,i))?a=a.filter(f=>f!==i):s=c,i=kc(i)}return t.set(e,a),a}function Sre(e){let{element:t,boundary:n,rootBoundary:a,strategy:s}=e;const i=[...n==="clippingAncestors"?nw(t)?[]:Cre(t,this._c):[].concat(n),a],c=hO(t,i[0],s);let d=c.top,m=c.right,f=c.bottom,p=c.left;for(let y=1;y<i.length;y++){const v=hO(t,i[y],s);d=Vo(v.top,d),m=wc(v.right,m),f=wc(v.bottom,f),p=Vo(v.left,p)}return{width:m-p,height:f-d,x:p,y:d}}function Are(e){const{width:t,height:n}=ZF(e);return{width:t,height:n}}function Tre(e,t,n){const a=dl(t),s=ui(t),r=n==="fixed",i=Qd(e,!0,r,t);let c={scrollLeft:0,scrollTop:0};const d=ei(0);function m(){d.x=ow(s)}if(a||!a&&!r)if((Ip(t)!=="body"||qh(s))&&(c=aw(t)),a){const v=Qd(t,!0,r,t);d.x=v.x+t.clientLeft,d.y=v.y+t.clientTop}else s&&m();r&&!a&&s&&m();const f=s&&!a&&!r?ez(s,c):ei(0),p=i.left+c.scrollLeft-d.x-f.x,y=i.top+c.scrollTop-d.y-f.y;return{x:p,y,width:i.width,height:i.height}}function x1(e){return pr(e).position==="static"}function yO(e,t){if(!dl(e)||pr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ui(e)===n&&(n=n.ownerDocument.body),n}function nz(e,t){const n=Jo(e);if(nw(e))return n;if(!dl(e)){let s=kc(e);for(;s&&!pp(s);){if(mr(s)&&!x1(s))return s;s=kc(s)}return n}let a=yO(e,t);for(;a&&pre(a)&&x1(a);)a=yO(a,t);return a&&pp(a)&&x1(a)&&!v_(a)?n:a||hre(e)||n}const Rre=async function(e){const t=this.getOffsetParent||nz,n=this.getDimensions,a=await n(e.floating);return{reference:Tre(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function Pre(e){return pr(e).direction==="rtl"}const _re={convertOffsetParentRelativeRectToViewportRelativeRect:bre,getDocumentElement:ui,getClippingRect:Sre,getOffsetParent:nz,getElementRects:Rre,getClientRects:xre,getDimensions:Are,getScale:Fm,isElement:mr,isRTL:Pre};function az(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function jre(e,t){let n=null,a;const s=ui(e);function r(){var c;clearTimeout(a),(c=n)==null||c.disconnect(),n=null}function i(c,d){c===void 0&&(c=!1),d===void 0&&(d=1),r();const m=e.getBoundingClientRect(),{left:f,top:p,width:y,height:v}=m;if(c||t(),!y||!v)return;const $=Jv(p),x=Jv(s.clientWidth-(f+y)),w=Jv(s.clientHeight-(p+v)),S=Jv(f),T={rootMargin:-$+"px "+-x+"px "+-w+"px "+-S+"px",threshold:Vo(0,wc(1,d))||1};let R=!0;function _(P){const j=P[0].intersectionRatio;if(j!==d){if(!R)return i();j?i(!1,j):a=setTimeout(()=>{i(!1,1e-7)},1e3)}j===1&&!az(m,e.getBoundingClientRect())&&i(),R=!1}try{n=new IntersectionObserver(_,{...T,root:s.ownerDocument})}catch{n=new IntersectionObserver(_,T)}n.observe(e)}return i(!0),r}function Nre(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:s=!0,ancestorResize:r=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:d=!1}=a,m=x_(e),f=s||r?[...m?Qg(m):[],...t?Qg(t):[]]:[];f.forEach(S=>{s&&S.addEventListener("scroll",n,{passive:!0}),r&&S.addEventListener("resize",n)});const p=m&&c?jre(m,n):null;let y=-1,v=null;i&&(v=new ResizeObserver(S=>{let[k]=S;k&&k.target===m&&v&&t&&(v.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame(()=>{var T;(T=v)==null||T.observe(t)})),n()}),m&&!d&&v.observe(m),t&&v.observe(t));let $,x=d?Qd(e):null;d&&w();function w(){const S=Qd(e);x&&!az(x,S)&&n(),x=S,$=requestAnimationFrame(w)}return n(),()=>{var S;f.forEach(k=>
vendor: 3,157 bytes, line 172
172{s&&k.removeEventListener("scroll",n),r&&k.removeEventListener("resize",n)}),p?.(),(S=v)==null||S.disconnect(),v=null,d&&cancelAnimationFrame($)}}const Dre=cre,Mre=dre,Ere=rre,Ire=mre,Ore=ire,vO=sre,Lre=ure,Ure=(e,t,n)=>{const a=new Map,s={platform:_re,...n},r={...s.platform,_c:a};return ore(e,t,{...s,platform:r})};var Bre=typeof document<"u",Fre=function(){},Qb=Bre?h.useLayoutEffect:Fre;function _x(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,a,s;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(a=n;a--!==0;)if(!_x(e[a],t[a]))return!1;return!0}if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!{}.hasOwnProperty.call(t,s[a]))return!1;for(a=n;a--!==0;){const r=s[a];if(!(r==="_owner"&&e.$$typeof)&&!_x(e[r],t[r]))return!1}return!0}return e!==e&&t!==t}function oz(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function bO(e,t){const n=oz(e);return Math.round(t*n)/n}function $1(e){const t=h.useRef(e);return Qb(()=>{t.current=e}),t}function zre(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:a=[],platform:s,elements:{reference:r,floating:i}={},transform:c=!0,whileElementsMounted:d,open:m}=e,[f,p]=h.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[y,v]=h.useState(a);_x(y,a)||v(a);const[$,x]=h.useState(null),[w,S]=h.useState(null),k=h.useCallback(F=>{F!==P.current&&(P.current=F,x(F))},[]),T=h.useCallback(F=>{F!==j.current&&(j.current=F,S(F))},[]),R=r||$,_=i||w,P=h.useRef(null),j=h.useRef(null),N=h.useRef(f),I=d!=null,z=$1(d),E=$1(s),L=$1(m),O=h.useCallback(()=>{if(!P.current||!j.current)return;const F={placement:t,strategy:n,middleware:y};E.current&&(F.platform=E.current),Ure(P.current,j.current,F).then(H=>{const ee={...H,isPositioned:L.current!==!1};V.current&&!_x(N.current,ee)&&(N.current=ee,li.flushSync(()=>{p(ee)}))})},[y,t,n,E,L]);Qb(()=>{m===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,p(F=>({...F,isPositioned:!1})))},[m]);const V=h.useRef(!1);Qb(()=>(V.current=!0,()=>{V.current=!1}),[]),Qb(()=>{if(R&&(P.current=R),_&&(j.current=_),R&&_){if(z.current)return z.current(R,_,O);O()}},[R,_,O,z,I]);const ne=h.useMemo(()=>({reference:P,floating:j,setReference:k,setFloating:T}),[k,T]),q=h.useMemo(()=>({reference:R,floating:_}),[R,_]),M=h.useMemo(()=>{const F={position:n,left:0,top:0};if(!q.floating)return F;const H=bO(q.floating,f.x),ee=bO(q.floating,f.y);return c?{...F,transform:"translate("+H+"px, "+ee+"px)",...oz(q.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:ee}},[n,c,q.floating,f.x,f.y]);return h.useMemo(()=>({...f,update:O,refs:ne,elements:q,floatingStyles:M}),[f,O,ne,q,M])}const qre=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:a,padding:s}=typeof e=="function"?e(n):e;return a&&t(a)?a.current!=null?vO({element:a.current,padding:s}).fn(n):{}:a?vO({element:a,padding:s}).fn(n):{}}}},Hre=(e,t)=>{const n=Dre(e);return{name:n.name,fn:n.fn,options:[e,t]}},Vre=(e,t)=>
vendor: 10,728 bytes, line 172
172{const n=Mre(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kre=(e,t)=>({fn:Lre(e).fn,options:[e,t]}),Gre=(e,t)=>{const n=Ere(e);return{name:n.name,fn:n.fn,options:[e,t]}},Wre=(e,t)=>{const n=Ire(e);return{name:n.name,fn:n.fn,options:[e,t]}},Yre=(e,t)=>{const n=Ore(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qre=(e,t)=>{const n=qre(e);return{name:n.name,fn:n.fn,options:[e,t]}};var Xre="Arrow",sz=h.forwardRef((e,t)=>{const{children:n,width:a=10,height:s=5,...r}=e;return o.jsx(st.svg,{...r,ref:t,width:a,height:s,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:o.jsx("polygon",{points:"0,0 30,0 15,10"})})});sz.displayName=Xre;var Zre=sz;function rz(e){const[t,n]=h.useState(void 0);return Ra(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(s=>{if(!Array.isArray(s)||!s.length)return;const r=s[0];let i,c;if("borderBoxSize"in r){const d=r.borderBoxSize,m=Array.isArray(d)?d[0]:d;i=m.inlineSize,c=m.blockSize}else i=e.offsetWidth,c=e.offsetHeight;n({width:i,height:c})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else n(void 0)},[e]),t}var $_="Popper",[iz,mi]=so($_),[Jre,lz]=iz($_),cz=e=>{const{__scopePopper:t,children:n}=e,[a,s]=h.useState(null);return o.jsx(Jre,{scope:t,anchor:a,onAnchorChange:s,children:n})};cz.displayName=$_;var dz="PopperAnchor",uz=h.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:a,...s}=e,r=lz(dz,n),i=h.useRef(null),c=vt(t,i),d=h.useRef(null);return h.useEffect(()=>{const m=d.current;d.current=a?.current||i.current,m!==d.current&&r.onAnchorChange(d.current)}),a?null:o.jsx(st.div,{...s,ref:c})});uz.displayName=dz;var w_="PopperContent",[eie,tie]=iz(w_),mz=h.forwardRef((e,t)=>{const{__scopePopper:n,side:a="bottom",sideOffset:s=0,align:r="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:d=!0,collisionBoundary:m=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:y=!1,updatePositionStrategy:v="optimized",onPlaced:$,...x}=e,w=lz(w_,n),[S,k]=h.useState(null),T=vt(t,se=>k(se)),[R,_]=h.useState(null),P=rz(R),j=P?.width??0,N=P?.height??0,I=a+(r!=="center"?"-"+r:""),z=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},E=Array.isArray(m)?m:[m],L=E.length>0,O={padding:z,boundary:E.filter(aie),altBoundary:L},{refs:V,floatingStyles:ne,placement:q,isPositioned:M,middlewareData:F}=zre({strategy:"fixed",placement:I,whileElementsMounted:(...se)=>Nre(...se,{animationFrame:v==="always"}),elements:{reference:w.anchor},middleware:[Hre({mainAxis:s+N,alignmentAxis:i}),d&&Vre({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?Kre():void 0,...O}),d&&Gre({...O}),Wre({...O,apply:({elements:se,rects:we,availableWidth:me,availableHeight:ye})=>{const{width:_e,height:ae}=we.reference,Je=se.floating.style;Je.setProperty("--radix-popper-available-width",`${me}px`),Je.setProperty("--radix-popper-available-height",`${ye}px`),Je.setProperty("--radix-popper-anchor-width",`${_e}px`),Je.setProperty("--radix-popper-anchor-height",`${ae}px`)}}),R&&Qre({element:R,padding:c}),oie({arrowWidth:j,arrowHeight:N}),y&&Yre({strategy:"referenceHidden",...O})]}),[H,ee]=gz(q),B=oi($);Ra(()=>{M&&B?.()},[M,B]);const G=F.arrow?.x,Q=F.arrow?.y,de=F.arrow?.centerOffset!==0,[Y,pe]=h.useState();return Ra(()=>{S&&pe(window.getComputedStyle(S).zIndex)},[S]),o.jsx("div",{ref:V.setFloating,"data-radix-popper-content-wrapper":"",style:{...ne,transform:M?ne.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Y,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(" "),...F.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:o.jsx(eie,{scope:n,placedSide:H,onArrowChange:_,arrowX:G,arrowY:Q,shouldHideArrow:de,children:o.jsx(st.div,{"data-side":H,"data-align":ee,...x,ref:T,style:{...x.style,animation:M?void 0:"none"}})})})});mz.displayName=w_;var pz="PopperArrow",nie={top:"bottom",right:"left",bottom:"top",left:"right"},fz=h.forwardRef(function(t,n){const{__scopePopper:a,...s}=t,r=tie(pz,a),i=nie[r.placedSide];return o.jsx("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:o.jsx(Zre,{...s,ref:n,style:{...s.style,display:"block"}})})});fz.displayName=pz;function aie(e){return e!==null}var oie=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:a,middlewareData:s}=t,i=s.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,d=i?0:e.arrowHeight,[m,f]=gz(n),p={start:"0%",center:"50%",end:"100%"}[f],y=(s.arrow?.x??0)+c/2,v=(s.arrow?.y??0)+d/2;let $="",x="";return m==="bottom"?($=i?p:`${y}px`,x=`${-d}px`):m==="top"?($=i?p:`${y}px`,x=`${a.floating.height+d}px`):m==="right"?($=`${-d}px`,x=i?p:`${v}px`):m==="left"&&($=`${a.floating.width+d}px`,x=i?p:`${v}px`),{data:{x:$,y:x}}}});function gz(e){const[t,n="center"]=e.split("-");return[t,n]}var Hh=cz,Op=uz,Vh=mz,Kh=fz,sie="Portal",pu=h.forwardRef((e,t)=>{const{container:n,...a}=e,[s,r]=h.useState(!1);Ra(()=>r(!0),[]);const i=n||s&&globalThis?.document?.body;return i?iF.createPortal(o.jsx(st.div,{...a,ref:t}),i):null});pu.displayName=sie;function rie(e,t){return h.useReducer((n,a)=>t[n][a]??n,e)}var za=e=>{const{present:t,children:n}=e,a=iie(t),s=typeof n=="function"?n({present:a.isPresent}):h.Children.only(n),r=vt(a.ref,lie(s));return typeof n=="function"||a.isPresent?h.cloneElement(s,{ref:r}):null};za.displayName="Presence";function iie(e){const[t,n]=h.useState(),a=h.useRef(null),s=h.useRef(e),r=h.useRef("none"),i=e?"mounted":"unmounted",[c,d]=rie(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return h.useEffect(()=>{const m=eb(a.current);r.current=c==="mounted"?m:"none"},[c]),Ra(()=>{const m=a.current,f=s.current;if(f!==e){const y=r.current,v=eb(m);e?d("MOUNT"):v==="none"||m?.display==="none"?d("UNMOUNT"):d(f&&y!==v?"ANIMATION_OUT":"UNMOUNT"),s.current=e}},[e,d]),Ra(()=>{if(t){let m;const f=t.ownerDocument.defaultView??window,p=v=>{const x=eb(a.current).includes(CSS.escape(v.animationName));if(v.target===t&&x&&(d("ANIMATION_END"),!s.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",m=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},y=v=>{v.target===t&&(r.current=eb(a.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{f.clearTimeout(m),t.removeEventListener("animationstart",y),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:h.useCallback(m=>{a.current=m?getComputedStyle(m):null,n(m)},[])}}function eb(e){return e?.animationName||"none"}function lie(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var cie=Symbol("radix.slottable");function die(e){const t=({children:n})=>o.jsx(o.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=cie,t}var uie=Lh[" useInsertionEffect ".trim().toString()]||Ra;function ts({prop:e,defaultProp:t,onChange:n=()=>{},caller:a}){const[s,r,i]=mie({defaultProp:t,onChange:n}),c=e!==void 0,d=c?e:s;{const f=h.useRef(e!==void 0);h.useEffect(()=>{const p=f.current;p!==c&&console.warn(`${a} is changing from ${p?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=c},[c,a])}const m=h.useCallback(f=>{if(c){const p=pie(f)?f(e):f;p!==e&&i.current?.(p)}else r(f)},[c,e,r,i]);return[d,m]}function mie({defaultProp:e,onChange:t}){const[n,a]=h.useState(e),s=h.useRef(n),r=h.useRef(t);return uie(()=>{r.current=t},[t]),h.useEffect(()=>{s.current!==n&&(r.current?.(n),s.current=n)},[n,s]),[n,a,r]}function pie(e){return typeof e=="function"}var hz=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),fie="VisuallyHidden",yz=h.forwardRef((e,t)=>o.jsx(st.span,{...e,ref:t,style:{...hz,...e.style}}));yz.displayName=fie;var gie=yz,[sw]=so("Tooltip",[mi]),rw=mi(),vz="TooltipProvider",hie=700,WT="tooltip.open",[yie,k_]=sw(vz),bz=e=>{const{__scopeTooltip:t,delayDuration:n=hie,skipDelayDuration:a=300,disableHoverableContent:s=!1,children:r}=e,i=h.useRef(!0),c=h.useRef(!1),d=h.useRef(0);return h.useEffect(()=>{const m=d.current;return()=>window.clearTimeout(m)},[]),o.jsx(yie,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:h.useCallback(()=>{window.clearTimeout(d.current),i.current=!1},[]),onClose:h.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>i.current=!0,a)},[a]),isPointerInTransitRef:c,onPointerInTransitChange:h.useCallback(m=>{c.current=m},[]),disableHoverableContent:s,children:r})};bz.displayName=vz;var Xg="Tooltip",[vie,Gh]=sw(Xg),xz=e=>{const{__scopeTooltip:t,children:n,open:a,defaultOpen:s,onOpenChange:r,disableHoverableContent:i,delayDuration:c}=e,d=k_(Xg,e.__scopeTooltip),m=rw(t),[f,p]=h.useState(null),y=To(),v=h.useRef(0),$=i??d.disableHoverableContent,x=c??d.delayDuration,w=h.useRef(!1),[S,k]=ts({prop:a,defaultProp:s??!1,onChange:j=>{j?(d.onOpen(),document.dispatchEvent(new CustomEvent(WT))):d.onClose(),r?.(j)},caller:Xg}),T=h.useMemo(()=>S?w.current?"delayed-open":"instant-open":"closed",[S]),R=h.useCallback(()=>{window.clearTimeout(v.current),v.current=0,w.current=!1,k(!0)},[k]),_=h.useCallback(()=>{window.clearTimeout(v.current),v.current=0,k(!1)},[k]),P=h.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{w.current=!0,k(!0),v.current=0},x)},[x,k]);return h.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),o.jsx(Hh,{...m,children:o.jsx(vie,{scope:t,contentId:y,open:S,stateAttribute:T,trigger:f,onTriggerChange:p,onTriggerEnter:h.useCallback(()=>{d.isOpenDelayedRef.current?P():R()},[d.isOpenDelayedRef,P,R]),onTriggerLeave:h.useCallback(()=>{$?_():(window.clearTimeout(v.current),v.current=0)},[_,$]),onOpen:R,onClose:_,disableHoverableContent:$,children:n})})};xz.displayName=Xg;var YT="TooltipTrigger",$z=h.forwardRef((e,t)=>
vendor: 4,455 bytes, line 172
172{const{__scopeTooltip:n,...a}=e,s=Gh(YT,n),r=k_(YT,n),i=rw(n),c=h.useRef(null),d=vt(t,c,s.onTriggerChange),m=h.useRef(!1),f=h.useRef(!1),p=h.useCallback(()=>m.current=!1,[]);return h.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),o.jsx(Op,{asChild:!0,...i,children:o.jsx(st.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...a,ref:d,onPointerMove:je(e.onPointerMove,y=>{y.pointerType!=="touch"&&!f.current&&!r.isPointerInTransitRef.current&&(s.onTriggerEnter(),f.current=!0)}),onPointerLeave:je(e.onPointerLeave,()=>{s.onTriggerLeave(),f.current=!1}),onPointerDown:je(e.onPointerDown,()=>{s.open&&s.onClose(),m.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:je(e.onFocus,()=>{m.current||s.onOpen()}),onBlur:je(e.onBlur,s.onClose),onClick:je(e.onClick,s.onClose)})})});$z.displayName=YT;var C_="TooltipPortal",[bie,xie]=sw(C_,{forceMount:void 0}),wz=e=>{const{__scopeTooltip:t,forceMount:n,children:a,container:s}=e,r=Gh(C_,t);return o.jsx(bie,{scope:t,forceMount:n,children:o.jsx(za,{present:n||r.open,children:o.jsx(pu,{asChild:!0,container:s,children:a})})})};wz.displayName=C_;var fp="TooltipContent",kz=h.forwardRef((e,t)=>{const n=xie(fp,e.__scopeTooltip),{forceMount:a=n.forceMount,side:s="top",...r}=e,i=Gh(fp,e.__scopeTooltip);return o.jsx(za,{present:a||i.open,children:i.disableHoverableContent?o.jsx(Cz,{side:s,...r,ref:t}):o.jsx($ie,{side:s,...r,ref:t})})}),$ie=h.forwardRef((e,t)=>{const n=Gh(fp,e.__scopeTooltip),a=k_(fp,e.__scopeTooltip),s=h.useRef(null),r=vt(t,s),[i,c]=h.useState(null),{trigger:d,onClose:m}=n,f=s.current,{onPointerInTransitChange:p}=a,y=h.useCallback(()=>{c(null),p(!1)},[p]),v=h.useCallback(($,x)=>{const w=$.currentTarget,S={x:$.clientX,y:$.clientY},k=Aie(S,w.getBoundingClientRect()),T=Tie(S,k),R=Rie(x.getBoundingClientRect()),_=_ie([...T,...R]);c(_),p(!0)},[p]);return h.useEffect(()=>()=>y(),[y]),h.useEffect(()=>{if(d&&f){const $=w=>v(w,f),x=w=>v(w,d);return d.addEventListener("pointerleave",$),f.addEventListener("pointerleave",x),()=>{d.removeEventListener("pointerleave",$),f.removeEventListener("pointerleave",x)}}},[d,f,v,y]),h.useEffect(()=>{if(i){const $=x=>{const w=x.target,S={x:x.clientX,y:x.clientY},k=d?.contains(w)||f?.contains(w),T=!Pie(S,i);k?y():T&&(y(),m())};return document.addEventListener("pointermove",$),()=>document.removeEventListener("pointermove",$)}},[d,f,i,m,y]),o.jsx(Cz,{...e,ref:r})}),[wie,kie]=sw(Xg,{isInside:!1}),Cie=die("TooltipContent"),Cz=h.forwardRef((e,t)=>{const{__scopeTooltip:n,children:a,"aria-label":s,onEscapeKeyDown:r,onPointerDownOutside:i,...c}=e,d=Gh(fp,n),m=rw(n),{onClose:f}=d;return h.useEffect(()=>(document.addEventListener(WT,f),()=>document.removeEventListener(WT,f)),[f]),h.useEffect(()=>{if(d.trigger){const p=y=>{y.target?.contains(d.trigger)&&f()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,f]),o.jsx(mu,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:p=>p.preventDefault(),onDismiss:f,children:o.jsxs(Vh,{"data-state":d.stateAttribute,...m,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[o.jsx(Cie,{children:a}),o.jsx(wie,{scope:n,isInside:!0,children:o.jsx(gie,{id:d.contentId,role:"tooltip",children:s||a})})]})})});kz.displayName=fp;var Sz="TooltipArrow",Sie=h.forwardRef((e,t)=>{const{__scopeTooltip:n,...a}=e,s=rw(n);return kie(Sz,n).isInside?null:o.jsx(Kh,{...s,...a,ref:t})});Sie.displayName=Sz;function Aie(e,t){const n=Math.abs(t.top-e.y),a=Math.abs(t.bottom-e.y),s=Math.abs(t.right-e.x),r=Math.abs(t.left-e.x);switch(Math.min(n,a,s,r)){case r:return"left";case s:return"right";case n:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function Tie(e,t,n=5){const a=[];switch(t){case"top":a.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":a.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":a.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":a.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return a}
172function Rie(e){const{top:t,right:n,bottom:a,left:s}=e;return[{x:s,y:t},{x:n,y:t},{x:n,y:a},{x:s,y:a}]}function Pie(e,t){const{x:n,y:a}=e;let s=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){const c=t[r],d=t[i],m=c.x,f=c.y,p=d.x,y=d.y;f>a!=y>a&&n<(p-m)*(a-f)/(y-f)+m&&(s=!s)}return s}function _ie(e){const t=e.slice();return t.sort((n,a)=>n.x<a.x?-1:n.x>a.x?1:n.y<a.y?-1:n.y>a.y?1:0),jie(t)}function jie(e){if(e.length<=1)return e.slice();const t=[];for(let a=0;a<e.length;a++){const s=e[a];for(;t.length>=2;){const r=t[t.length-1],i=t[t.length-2];if((r.x-i.x)*(s.y-i.y)>=(r.y-i.y)*(s.x-i.x))t.pop();else break}t.push(s)}t.pop();const n=[];for(let a=e.length-1;a>=0;a--){const s=e[a];for(;n.length>=2;){const r=n[n.length-1],i=n[n.length-2];if((r.x-i.x)*(s.y-i.y)>=(r.y-i.y)*(s.x-i.x))n.pop();else break}n.push(s)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Nie=bz,Die=xz,Mie=$z,Eie=wz,Az=kz;const Oc=Nie,Ls=Die,Us=Mie,cs=h.forwardRef(({className:e,sideOffset:t=4,...n},a)=>o.jsx(Eie,{children:o.jsx(Az,{ref:a,sideOffset:t,className:X("z-tooltip overflow-hidden rounded bg-[color:var(--foreground)] px-2 py-1.5 text-xs text-[color:var(--background)] shadow-md",e),...n})}));cs.displayName=Az.displayName;const S_=h.forwardRef(({value:e,copyLabel:t="Copy",copiedLabel:n="Copied",timeout:a,onCopied:s,onCopyError:r,tooltip:i=!0,size:c="sm",iconClassName:d,...m},f)=>{const{copied:p,copy:y}=qF({timeout:a}),v=p?n:t,$=w=>{w.stopPropagation(),y(e).then(S=>S?s?.():r?.())},x=o.jsx(Aa,{ref:f,type:"button",size:c,onClick:$,"aria-label":v,...m,children:p?o.jsx(Ec,{className:X("size-4 text-[color:var(--success)]",d),"aria-hidden":!0}):o.jsx(zF,{className:X("size-4",d),"aria-hidden":!0})});return i?o.jsx(Oc,{children:o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:x}),o.jsx(cs,{children:v})]})}):x});S_.displayName="CopyButton";const Tz=h.forwardRef(({value:e,copyValue:t,mono:n,className:a,copyLabel:s="Copy",copiedLabel:r="Copied",timeout:i,onCopied:c,onCopyError:d,...m},f)=>{const{copied:p,copy:y}=qF({timeout:i}),v=p?r:s,$=x=>{x.stopPropagation(),y(t??e).then(w=>w?c?.():d?.())};return o.jsx(ge,{ref:f,readOnly:!0,spellCheck:!1,value:e,className:X(n&&"font-[family-name:var(--font-mono)] text-xs",a),endIcon:o.jsx(Oc,{children:o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("button",{type:"button",onClick:$,"aria-label":v,className:"grid size-7 place-items-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--muted)] hover:text-[color:var(--foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:p?o.jsx(Ec,{className:"size-4 text-[color:var(--success)]","aria-hidden":!0}):o.jsx(zF,{className:"size-4","aria-hidden":!0})})}),o.jsx(cs,{children:v})]})}),...m})});Tz.displayName="CopyField";const Iie="inline-flex h-10 min-w-0 items-center gap-2 rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 text-sm text-[color:var(--foreground)] outline-none transition-colors hover:bg-[color:var(--muted)] focus-visible:border-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50",Oie="fixed z-tooltip max-h-80 overflow-y-auto rounded-md border border-[color:var(--border)] bg-[color:var(--popover)] p-1 text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",ti="grid gap-1.5 text-sm font-medium text-[color:var(--foreground)]",Qo=X(ti,"text-xs");function Rz(e){return typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(Rz).join(""):""}function Lie(e){return h.Children.toArray(e).flatMap(t=>h.isValidElement(t)?t.type!=="option"?[]:[{value:t.props.value==null?Rz(t.props.children):String(t.props.value),label:t.props.children,disabled:t.props.disabled}]:[])}const ft=h.forwardRef(({value:e,options:t,children:n,placeholder:a,name:s,onChange:r,onValueChange:i,align:c="left",fullWidth:d=!0,menuClassName:m,renderValue:f,showChevron:p=!0,className:y,disabled:v,...$},x)=>{const[w,S]=h.useState(!1),[k,T]=h.useState(null),R=h.useId(),_=h.useRef(null),P=h.useRef(null),j=h.useRef(null),N=h.useCallback(L=>{P.current=L,typeof x=="function"?x(L):x&&(x.current=L)},[x]),I=h.useMemo(()=>t??Lie(n),[n,t]),z=I.find(L=>L.value===e);h.useEffect(()=>{if(!w)return;function L(V){const ne=V.target;_.current?.contains(ne)||j.current?.contains(ne)||S(!1)}function O(V){V.key==="Escape"&&S(!1)}return document.addEventListener("pointerdown",L),document.addEventListener("keydown",O),()=>{document.removeEventListener("pointerdown",L),document.removeEventListener("keydown",O)}},[w]),h.useLayoutEffect(()=>{if(!w){T(null);return}function L(){const O=P.current?.getBoundingClientRect();if(!O)return;const V=4,ne=8,q=Math.min(320,I.length*36+8),M=window.innerHeight-O.bottom,F=O.top,H=M<q&&F>M,ee=d?O.width:176,B=d?O.width:Math.max(O.width,176);let G=c==="right"?O.right-B:O.left;G=Math.max(ne,Math.min(G,window.innerWidth-B-ne));const Q=H?Math.max(ne,O.top-V-q):Math.min(O.bottom+V,window.innerHeight-ne);T({left:G,top:Q,width:B,minWidth:ee})}return L(),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0),()=>{window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0)}},[c,d,w,I.length]);function E(L){L.disabled||(i?.(L.value),r?.({target:{name:s,value:L.value}}),S(!1))}return o.jsxs("div",{ref:_,className:X("relative min-w-0",d&&"w-full"),children:[s?o.jsx("input",{type:"hidden",name:s,value:e}):null,o.jsxs("button",{ref:N,type:"button",disabled:v,"aria-haspopup":"listbox","aria-expanded":w,"aria-controls":w?R:void 0,className:X(Iie,d?"w-full justify-between":"justify-center",y),onClick:()=>S(L=>!L),onKeyDown:L=>{(L.key==="ArrowDown"||L.key==="Enter"||L.key===" ")&&(L.preventDefault(),S(!0)),$.onKeyDown?.(L)},...$,children:[o.jsx("span",{className:"min-w-0 truncate text-left",children:f?f(z):z?.label??a}),p?o.jsx(Ic,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)]"}):null]}),w&&k&&typeof document<"u"?li.createPortal(o.jsx("div",{ref:j,id:R,role:"listbox",style:{...k,pointerEvents:"auto"},className:X(Oie,m),children:I.map(L=>{const O=L.value===e;return o.jsxs("button",{type:"button",role:"option","aria-selected":O,disabled:L.disabled,className:X("flex h-9 w-full items-center gap-2 rounded px-2 text-left text-sm hover:bg-[color:var(--muted)] disabled:pointer-events-none disabled:opacity-50",O&&"font-medium"),onClick:()=>E(L),children:[o.jsx(Ec,{className:X("size-4 shrink-0",O?"opacity-100":"opacity-0")}),o.jsx("span",{className:"min-w-0 truncate",children:L.label})]},L.value)})}),document.body):null]})});ft.displayName="Select";const ca=h.forwardRef(({label:e,description:t,error:n,fieldClassName:a,className:s,...r},i)=>{const c=h.useId();return o.jsxs("div",{className:X(ti,a),children:[o.jsx("span",{id:c,children:e}),o.jsx(ft,{ref:i,className:s,"aria-labelledby":r["aria-label"]?void 0:c,...r,"aria-invalid":n?!0:r["aria-invalid"]}
172),t?o.jsx("span",{className:"text-xs font-normal text-[color:var(--muted-foreground)]",children:t}):null,n?o.jsx("span",{className:"text-xs font-normal text-[color:var(--destructive)]",children:n}):null]})});ca.displayName="SelectField";const Zn=h.forwardRef(({className:e,checked:t,indeterminate:n=!1,...a},s)=>{const r=h.useRef(null);return h.useImperativeHandle(s,()=>r.current),h.useEffect(()=>{r.current&&(r.current.indeterminate=n)},[n]),o.jsxs("span",{className:"relative inline-grid size-4 shrink-0 place-items-center",children:[o.jsx("input",{ref:r,type:"checkbox",checked:t,"aria-checked":n?"mixed":void 0,className:X("peer size-4 appearance-none rounded border border-[color:var(--input)] bg-[color:var(--background)] outline-none transition-colors checked:border-[color:var(--primary)] checked:bg-[color:var(--primary)] indeterminate:border-[color:var(--primary)] indeterminate:bg-[color:var(--primary)] focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:cursor-not-allowed disabled:opacity-50",e),...a}),o.jsx(Ec,{className:"pointer-events-none absolute size-3 text-[color:var(--primary-foreground)] opacity-0 peer-checked:opacity-100 peer-indeterminate:opacity-0","aria-hidden":"true"}),o.jsx(kse,{className:"pointer-events-none absolute size-3 text-[color:var(--primary-foreground)] opacity-0 peer-indeterminate:opacity-100","aria-hidden":"true"})]})});Zn.displayName="Checkbox";function el({value:e,onValueChange:t,options:n,ariaLabel:a,className:s}){const r=h.useRef([]),i=Math.max(0,n.findIndex(f=>f.value===e));function c(f,p){const y=n.length;for(let v=1;v<=y;v+=1){const $=((f+p*v)%y+y)%y;if(!n[$]?.disabled)return $}return f}function d(f){const p=n[f];!p||p.disabled||(t(p.value),r.current[f]?.focus())}function m(f){switch(f.key){case"ArrowRight":case"ArrowDown":f.preventDefault(),d(c(i,1));break;case"ArrowLeft":case"ArrowUp":f.preventDefault(),d(c(i,-1));break;case"Home":f.preventDefault(),d(c(-1,1));break;case"End":f.preventDefault(),d(c(0,-1));break}}return o.jsx("div",{role:"radiogroup","aria-label":a,onKeyDown:m,className:X("inline-flex w-full min-w-0 overflow-x-auto rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/40 p-0.5 [scrollbar-width:none] sm:w-fit [&::-webkit-scrollbar]:hidden",s),children:n.map((f,p)=>{const y=f.value===e;return o.jsx("button",{ref:v=>{r.current[p]=v},type:"button",role:"radio","aria-checked":y,disabled:f.disabled,tabIndex:y?0:-1,onClick:()=>t(f.value),className:X("min-w-max rounded px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:cursor-not-allowed disabled:opacity-50",y?"bg-[color:var(--primary)] text-[color:var(--primary-foreground)]":"text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]"),children:f.label},f.value)})})}const Uie="box-border min-w-0 max-w-full rounded-lg border border-[color:var(--border)] bg-[color:var(--background)]",Ee=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X(Uie,e),...t}));Ee.displayName="Surface";function Bie({value:e,options:t,onSelect:n,"aria-label":a="Language",showLabel:s}){const r=t.find(i=>i.value===e)?.label??e;return o.jsx(ft,{"aria-label":a,value:e,options:t,onValueChange:n,align:"right",fullWidth:!1,className:s?"h-8 rounded-full border px-3 text-xs text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]":"size-9 rounded-full border-0 px-0",menuClassName:"w-44",showChevron:s??!1,renderValue:()=>s?o.jsx("span",{children:r}):o.jsx($se,{className:"size-5"})})}const tb=256,Pz=["#5b8ff9","#5ad8a6","#f6bd16","#e8684a","#6dc8ec","#9270ca","#ff9d4d","#269a99","#ff99c3","#5d7092","#a0d911","#d846a0"];function Fie(e){let t=5381;for(let n=0;n<e.length;n++)t=t*33^e.charCodeAt(n);return Math.abs(t)%Pz.length}function zie(e){const t=Pz[Fie(e)],n=parseInt(t.slice(1,3),16),a=parseInt(t.slice(3,5),16),s=parseInt(t.slice(5,7),16),r=n*.299+a*.587+s*.114;return{background:t,color:r>160?"#111":"#fff"}}function qie({initial:e,displayName:t,email:n,avatarUrl:a,children:s,menuSide:r="bottom",indicator:i,onOpenChange:c,className:d,"aria-label":m}){const[f,p]=h.useState(!1),y=P=>{p(j=>{const N=typeof P=="function"?P(j):P;return N!==j&&c?.(N),N})},[v,$]=h.useState(!1),x=h.useRef(null),w=h.useRef(null),[S,k]=h.useState(null),T=!!a&&!v;h.useEffect(()=>{$(!1)},[a]),h.useLayoutEffect(()=>{if(!f){k(null);return}function P(){const j=x.current?.getBoundingClientRect();if(!j)return;const N=8,I=8;let z=j.left;
172if(z+tb+I>window.innerWidth&&(z=j.right-tb),z=Math.max(I,Math.min(z,window.innerWidth-tb-I)),r==="top"){const E=Math.max(I,window.innerHeight-j.top+N);k({left:z,bottom:E,maxHeight:Math.max(160,j.top-N-I)})}else{const E=j.bottom+N;k({left:z,top:E,maxHeight:Math.max(160,window.innerHeight-E-I)})}}return P(),window.addEventListener("resize",P),window.addEventListener("scroll",P,!0),()=>{window.removeEventListener("resize",P),window.removeEventListener("scroll",P,!0)}},[f,r]),h.useEffect(()=>{if(!f)return;function P(N){const I=N.target;x.current?.contains(I)||w.current?.contains(I)||y(!1)}function j(N){N.key==="Escape"&&y(!1)}return document.addEventListener("pointerdown",P),document.addEventListener("keydown",j),()=>{document.removeEventListener("pointerdown",P),document.removeEventListener("keydown",j)}},[f]);const _=typeof document<"u"?x.current?.closest('[role="dialog"]')??document.body:null;return o.jsxs("div",{className:X("relative",d),children:[o.jsx("button",{ref:x,type:"button","aria-label":m??n,"aria-haspopup":"menu","aria-expanded":f,title:n,style:T?void 0:zie(n),className:"grid size-9 place-items-center rounded-full text-sm font-semibold transition-opacity hover:opacity-85 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",onClick:()=>y(P=>!P),children:T?o.jsx("img",{src:a??void 0,alt:"",className:"size-full rounded-full object-cover",referrerPolicy:"no-referrer",onError:()=>$(!0)}):e}),i,f&&S&&_?li.createPortal(o.jsxs("div",{ref:w,role:"menu",onClick:()=>y(!1),style:{...S,width:tb},className:"fixed z-tooltip overflow-y-auto rounded-md border border-[color:var(--border)] bg-[color:var(--popover)] p-1 text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",children:[o.jsxs("div",{className:"px-2 py-2",children:[o.jsx("p",{className:"truncate text-sm font-medium",children:t||n}),t?o.jsx("p",{className:"truncate text-xs text-[color:var(--muted-foreground)]",children:n}):null]}),o.jsx("div",{className:"my-1 h-px bg-[color:var(--border)]"}),s]}),_):null]})}const _z="flex h-9 w-full min-w-0 items-center gap-2 rounded-md px-2 text-left text-sm text-[color:var(--foreground)] outline-none transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--accent-foreground)] focus-visible:bg-[color:var(--accent)] disabled:cursor-not-allowed disabled:opacity-50",tc=h.forwardRef(({className:e,asChild:t,...n},a)=>{const s=t?m_:"button";return o.jsx(s,{ref:a,role:"menuitem",className:X(_z,e),...t?{}:{type:"button"},...n})});tc.displayName="UserMenuItem";const jz=h.forwardRef(({className:e,checked:t,children:n,...a},s)=>o.jsxs("button",{ref:s,type:"button",role:"menuitemradio","aria-checked":t,className:X(_z,t&&"bg-[color:var(--accent)]/40",e),...a,children:[o.jsx("span",{className:"grid size-4 shrink-0 place-items-center",children:t?o.jsx(Ec,{className:"size-4","aria-hidden":!0}):null}),n]}));jz.displayName="UserMenuRadioItem";function wg({className:e}){return o.jsx("div",{className:X("my-1 h-px bg-[color:var(--border)]",e),role:"separator"})}const Nz=h.createContext({stickyHeader:!1});function Dz(e){return e==="left"?"oh-sticky-shadow-left":"oh-sticky-shadow-right"}function Hie(e){return e?X(e==="left"?"sticky left-0":"sticky right-0","z-10 bg-[color:var(--background)] group-hover/row:bg-[color:var(--muted)]",Dz(e)):""}function Vie(e,t){return!e&&!t?"":X("sticky",e==="left"?"left-0":e==="right"?"right-0":"",t&&"top-0",e&&t?"z-30":"z-20","bg-[color:var(--card)]",e&&Dz(e))}const Ua=h.forwardRef(({className:e,containerClassName:t,stickyHeader:n=!1,...a},s)=>{const r=h.useRef(null),i=h.useRef(null);return h.useImperativeHandle(s,()=>i.current),h.useEffect(()=>{const c=r.current;if(!c)return;const d=()=>{const f=c.scrollWidth-c.clientWidth;c.dataset.scrolledLeft=String(c.scrollLeft>1),c.dataset.scrolledRight=String(c.scrollLeft<f-1)};d(),c.addEventListener("scroll",d,{passive:!0});const m=new ResizeObserver(d);return i.current&&m.observe(i.current),m.observe(c),()=>{c.removeEventListener("scroll",d),m.disconnect()}},[]),o.jsx(Nz.Provider,{value:{stickyHeader:n},children:o.jsx("div",{ref:r,className:X("w-full overflow-auto",t),children:o.jsx("table",{ref:i,className:X("min-w-full caption-bottom border-collapse text-sm",e),...a})})})});Ua.displayName="Table";const Po=h.forwardRef(({className:e,...t},n)=>o.jsx("thead",{ref:n,className:X("border-b border-[color:var(--border)] bg-[color:var(--card)]",e),...t}));Po.displayName="TableHeader";const Ba=h.forwardRef(({className:e,...t},n)=>o.jsx("tbody",{ref:n,className:X("[&>tr]:border-[color:var(--table-divider)]",e),...t}));Ba.displayName="TableBody";const qt=h.forwardRef(({className:e,...t},n)=>o.jsx("tr",{ref:n,className:X("border-b border-[color:var(--border)] transition-colors hover:bg-[color:var(--muted)]",e),...t}));
172qt.displayName="TableRow";const Ie=h.forwardRef(({className:e,sticky:t,...n},a)=>{const{stickyHeader:s}=h.useContext(Nz);return o.jsx("th",{ref:a,className:X("h-11 whitespace-nowrap px-3 text-left align-middle text-xs font-semibold uppercase text-[color:var(--muted-foreground)] sm:px-5",Vie(t,s),e),...n})});Ie.displayName="TableHead";const Me=h.forwardRef(({className:e,sticky:t,...n},a)=>o.jsx("td",{ref:a,className:X("px-3 py-3 align-middle sm:px-5",Hie(t),e),...n}));Me.displayName="TableCell";const nb=(e,t)=>Array.from({length:Math.max(0,t-e+1)},(n,a)=>e+a);function Kie(e,t,n=1){const a=n*2+5;if(t<=a)return nb(1,t);const s=Math.max(e-n,1),r=Math.min(e+n,t),i=s>2,c=r<t-1,d=3+n*2;return!i&&c?[...nb(1,d),"ellipsis",t]:i&&!c?[1,"ellipsis",...nb(t-d+1,t)]:[1,"ellipsis",...nb(s,r),"ellipsis",t]}function A_({total:e,page:t,pageSize:n,pageSizeOptions:a,onPageChange:s,onPageSizeChange:r,labels:i,disabled:c=!1,className:d}){const m=Math.max(1,Math.ceil(e/Math.max(1,n))),f=Kie(t,m);return o.jsxs("div",{className:X("flex flex-wrap items-center justify-between gap-2 text-sm",d),children:[o.jsx("span",{className:"shrink-0 tabular-nums text-[color:var(--muted-foreground)]",children:i?.total?i.total(e):`${e} items`}),o.jsxs("div",{className:"-mx-1 flex min-w-0 flex-wrap items-center justify-end gap-1 px-1 pb-0.5 sm:mx-0 sm:flex-nowrap sm:px-0 sm:pb-0",children:[o.jsx(w1,{"aria-label":"Previous page",disabled:c||t<=1,onClick:()=>s(t-1),children:o.jsx(p_,{className:"size-4"})}),f.map((p,y)=>p==="ellipsis"?o.jsx("span",{className:"px-1 text-[color:var(--muted-foreground)] select-none",children:"â¦"},`ellipsis-${y}`):o.jsx(w1,{active:p===t,disabled:c,"aria-current":p===t?"page":void 0,onClick:()=>s(p),children:p},p)),o.jsx(w1,{"aria-label":"Next page",disabled:c||t>=m,onClick:()=>s(t+1),children:o.jsx(J$,{className:"size-4"})}),r&&a?.length?o.jsx(ft,{className:"h-8 shrink-0 sm:ml-2",value:String(n),fullWidth:!1,disabled:c,onChange:p=>r(Number(p.target.value)),children:a.map(p=>o.jsx("option",{value:p,children:i?.perPage?i.perPage(p):`${p} / page`},p))}):null]})]})}function w1({active:e,className:t,...n}){return o.jsx("button",{type:"button",className:X("inline-flex h-8 min-w-8 items-center justify-center rounded-md border px-2 text-sm tabular-nums transition-colors",e?"border-[color:var(--primary)] font-medium text-[color:var(--primary)]":"border-[color:var(--border)] text-[color:var(--foreground)] hover:border-[color:var(--primary)] hover:text-[color:var(--primary)]","disabled:pointer-events-none disabled:opacity-40",t),...n})}function Rt({className:e}){return o.jsx("div",{className:X("animate-pulse rounded-md bg-[color:var(--muted)] motion-reduce:animate-none",e)})}var Gie="Claude";function Zg(e){"@babel/helpers - typeof";return Zg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zg(e)}var Wie=["size","style"];function xO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function k1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?xO(Object(n),!0).forEach(function(a){Yie(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Yie(e,t,n){return t=Qie(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qie(e){var t=Xie(e,"string");return Zg(t)=="symbol"?t:String(t)}function Xie(e,t){if(Zg(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(Zg(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Zie(e,t){if(e==null)return{};var n=Jie(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Jie(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var ele=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=Zie(e,Wie);return o.jsxs("svg",k1(k1({height:n,style:k1({flex:"none",lineHeight:1}
172,a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:Gie}),o.jsx("path",{d:"M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z",fill:"#D97757",fillRule:"nonzero"})]}))}),tle="DeepSeek";function Jg(e){"@babel/helpers - typeof";return Jg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jg(e)}var nle=["size","style"];function $O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function C1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$O(Object(n),!0).forEach(function(a){ale(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$O(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function ale(e,t,n){return t=ole(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ole(e){var t=sle(e,"string");return Jg(t)=="symbol"?t:String(t)}function sle(e,t){if(Jg(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(Jg(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rle(e,t){if(e==null)return{};var n=ile(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function ile(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var lle=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=rle(e,nle);return o.jsxs("svg",C1(C1({height:n,style:C1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:tle}),o.jsx("path",{d:"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173
1720 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z",fill:"#4D6BFE"})]}))}),cle="Google";function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}var dle=["size","style"];function wO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function S1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?wO(Object(n),!0).forEach(function(a){ule(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function ule(e,t,n){return t=mle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mle(e){var t=ple(e,"string");return eh(t)=="symbol"?t:String(t)}function ple(e,t){if(eh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(eh(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fle(e,t){if(e==null)return{};var n=gle(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function gle(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var kO=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=fle(e,dle);return o.jsxs("svg",S1(S1({height:n,style:S1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:cle}),o.jsx("path",{d:"M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z",fill:"#4285F4"}),o.jsx("path",{d:"M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z",fill:"#34A853"}),o.jsx("path",{d:"M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z",fill:"#FBBC05"}),o.jsx("path",{d:"M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z",fill:"#EB4335"})]}))});const hle=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function yle(e){return Array.from(e.match(hle)??[])}function vle(e){return yle(e).map(n=>n.toLowerCase()).join("-")}var Mz=function(t){var n=h.useId(),a="lobe-icons-".concat(vle(t),"-").concat(n);return h.useMemo(function(){return{fill:"url(#".concat(a,")"),id:a}},[t])},CO="Minimax";function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}var ble=["size","style"];function SO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function A1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
172t%2?SO(Object(n),!0).forEach(function(a){xle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function xle(e,t,n){return t=$le(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $le(e){var t=wle(e,"string");return th(t)=="symbol"?t:String(t)}function wle(e,t){if(th(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(th(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function kle(e,t){if(e==null)return{};var n=Cle(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Cle(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var Sle=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=kle(e,ble),r=Mz(CO),i=r.id,c=r.fill;return o.jsxs("svg",A1(A1({height:n,style:A1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:CO}),o.jsx("defs",{children:o.jsxs("linearGradient",{id:i,x1:"0%",x2:"100.182%",y1:"50.057%",y2:"50.057%",children:[o.jsx("stop",{offset:"0%",stopColor:"#E2167E"}),o.jsx("stop",{offset:"100%",stopColor:"#FE603C"})]})}),o.jsx("path",{d:"M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z",fill:c,fillRule:"nonzero"})]}))}),Ale="ByteDance";function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}var Tle=["size","style"];function AO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function T1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?AO(Object(n),!0).forEach(function(a){Rle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):AO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Rle(e,t,n){return t=Ple(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ple(e){var t=_le(e,"string");return nh(t)=="symbol"?t:String(t)}function _le(e,t){if(nh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(nh(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function jle(e,t){if(e==null)return{};var n=Nle(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Nle(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var Dle=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=jle(e,Tle);
172return o.jsxs("svg",T1(T1({height:n,style:T1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:Ale}),o.jsx("path",{d:"M14.944 18.587l-1.704-.445V10.01l1.824-.462c1-.254 1.84-.461 1.88-.453.032 0 .056 2.235.056 4.972v4.973l-.176-.008c-.104 0-.952-.207-1.88-.446z",fill:"#00C8D2",fillRule:"nonzero"}),o.jsx("path",{d:"M7 16.542c0-2.736.024-4.98.064-4.98.032-.008.872.2 1.88.454l1.816.461-.016 4.05-.024 4.049-1.632.422c-.896.23-1.736.445-1.856.469L7 21.523v-4.98z",fill:"#3C8CFF",fillRule:"nonzero"}),o.jsx("path",{d:"M19.24 12.477c0-9.03.008-9.515.144-9.475.072.024.784.207 1.576.406.792.207 1.576.405 1.744.445l.296.08-.016 8.56-.024 8.568-1.624.414c-.888.23-1.728.437-1.856.47l-.24.055v-9.523z",fill:"#78E6DC",fillRule:"nonzero"}),o.jsx("path",{d:"M1 12.509c0-4.678.024-8.505.064-8.505.032 0 .872.207 1.872.454l1.824.461v7.582c0 4.16-.016 7.574-.032 7.574-.024 0-.872.215-1.88.47L1 21.013v-8.505z",fill:"#325AB4"})]}))}),Mle="Zhipu";function ah(e){"@babel/helpers - typeof";return ah=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ah(e)}var Ele=["size","style"];function TO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function R1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?TO(Object(n),!0).forEach(function(a){Ile(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):TO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Ile(e,t,n){return t=Ole(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ole(e){var t=Lle(e,"string");return ah(t)=="symbol"?t:String(t)}function Lle(e,t){if(ah(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(ah(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ule(e,t){if(e==null)return{};var n=Ble(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Ble(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var Fle=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=Ule(e,Ele);return o.jsxs("svg",R1(R1({height:n,style:R1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:Mle}),o.jsx("path",{d:"M11.991 23.503a.24.24 0 00-.244.248.24.24 0 00.244.249.24.24 0 00.245-.249.24.24 0 00-.22-.247l-.025-.001zM9.671 5.365a1.697 1.697 0 011.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.661 1.661 0 01-2.077 1.102 1.711 1.711 0 01-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 00-1.954.746 1.66 1.66 0 01-1.065.764 1.677 1.677 0 01-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.51 1.51 0 01.296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.307 1.307 0 00-.227-.693 2.515 2.515 0 01-.366-1.403 2.39 2.39 0 01.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43 1.43 0 01-.299-.07l-.05-.019a1.7 1.7 0 01-1.047-2.114 1.68 1.68 0 012.094-1.101zm-5.575 10.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.062 1.062 0 010-1.482zm14.845-.294c.359
172-.09.738.024.992.297.254.274.344.665.237 1.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 01.757-1.26zm-.064-4.39c.314.32.49.753.49 1.206 0 .452-.176.886-.49 1.206-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 010-2.412 1.654 1.654 0 012.369 0zm-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 01-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 011.33-1.038c.593-.08 1.183.169 1.547.652zm11.545-4.221c.368 0 .708.2.892.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.892.524c-.568 0-1.03-.47-1.03-1.048 0-.579.462-1.048 1.03-1.048zm-14.358 0c.368 0 .707.2.891.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.891.524c-.569 0-1.03-.47-1.03-1.048 0-.579.461-1.048 1.03-1.048zm10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705c0-.942.75-1.706 1.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062 1.062 0 00-.238-1.028 1.017 1.017 0 00-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783zm0 16.876c.359-.087.644-.36.75-.72a1.062 1.062 0 00-.237-1.019 1.018 1.018 0 00-.985-.301 1.037 1.037 0 00-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305l.043-.01zM17.19 3.5a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64a.631.631 0 00-.628.64c0 .355.28.64.628.64zm-10.38 0a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64a.631.631 0 00-.628.64c0 .355.279.64.628.64zm-5.182 7.852a.631.631 0 00-.628.64c0 .354.28.639.628.639a.63.63 0 00.627-.606l.001-.034a.62.62 0 00-.628-.64zm5.182 9.13a.631.631 0 00-.628.64c0 .355.279.64.628.64a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631 0 00-.628.64c0 .355.28.64.628.64a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631 0 00-.628.64c0 .354.279.639.628.639a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 00.244-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249c0 .142.122.249.244.249zM11.991.497a.24.24 0 00.245-.248A.24.24 0 0011.99 0a.24.24 0 00-.244.249c0 .133.108.236.223.247l.021.001zM2.011 6.36a.24.24 0 00.245-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249.24.24 0 00.244.249zm0 11.263a.24.24 0 00-.243.248.24.24 0 00.244.249.24.24 0 00.244-.249.252.252 0 00-.244-.248zm19.995-.018a.24.24 0 00-.245.248.24.24 0 00.245.25.24.24 0 00.244-.25.252.252 0 00-.244-.248z",fill:"#3859FF",fillRule:"nonzero"})]}))}),RO="Qwen";function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}var zle=["size","style"];function PO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function P1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?PO(Object(n),!0).forEach(function(a){qle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function qle(e,t,n){return t=Hle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hle(e){var t=Vle(e,"string");return oh(t)=="symbol"?t:String(t)}function Vle(e,t){if(oh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(oh(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kle(e,t){if(e==null)return{};var n=Gle(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function Gle(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var Wle=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=Kle(e,zle),r=Mz(RO),i=r.id,c=r.fill;return o.jsxs("svg",P1(P1({height:n,style:P1({flex:"none",lineHeight:1}
172,a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:RO}),o.jsx("path",{d:"M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z",fill:c,fillRule:"nonzero"}),o.jsx("defs",{children:o.jsxs("linearGradient",{id:i,x1:"0%",x2:"100%",y1:"0%",y2:"0%",children:[o.jsx("stop",{offset:"0%",stopColor:"#6336E7",stopOpacity:".84"}),o.jsx("stop",{offset:"100%",stopColor:"#6F69F7",stopOpacity:".84"})]})})]}))}),Yle="Kimi";function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}var Qle=["size","style"];function _O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function _1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_O(Object(n),!0).forEach(function(a){Xle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_O(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Xle(e,t,n){return t=Zle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zle(e){var t=Jle(e,"string");return sh(t)=="symbol"?t:String(t)}function Jle(e,t){if(sh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(sh(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ece(e,t){if(e==null)return{};var n=tce(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function tce(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var nce=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=ece(e,Qle);return o.jsxs("svg",_1(_1({fill:"currentColor",fillRule:"evenodd",height:n,style:_1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:Yle}),o.jsx("path",{d:"M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z"}),o.jsx("path",{d:"M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z"})]}))}),ace="OpenAI";function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}var oce=["size","style"];function jO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function j1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
172t%2?jO(Object(n),!0).forEach(function(a){sce(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function sce(e,t,n){return t=rce(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rce(e){var t=ice(e,"string");return rh(t)=="symbol"?t:String(t)}function ice(e,t){if(rh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(rh(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lce(e,t){if(e==null)return{};var n=cce(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function cce(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var dce=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=lce(e,oce);return o.jsxs("svg",j1(j1({fill:"currentColor",fillRule:"evenodd",height:n,style:j1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:ace}),o.jsx("path",{d:"M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"})]}))}),uce="XiaomiMiMo";function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}var mce=["size","style"];function NO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function N1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?NO(Object(n),!0).forEach(function(a){pce(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):NO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function pce(e,t,n){return t=fce(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fce(e){var t=gce(e,"string");return ih(t)=="symbol"?t:String(t)}function gce(e,t){if(ih(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(ih(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hce(e,t){if(e==null)return{};var n=yce(e,t),a,s;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s<r.length;s++)a=r[s],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function yce(e,t){if(e==null)return{};var n={},a=Object.keys(e),s,r;for(r=0;r<a.length;r++)s=a[r],!(t.indexOf(s)>=0)&&(n[s]=e[s]);return n}var vce=h.memo(function(e){var t=e.size,n=t===void 0?"1em":t,a=e.style,s=hce(e,mce);
172return o.jsxs("svg",N1(N1({fill:"currentColor",fillRule:"evenodd",height:n,style:N1({flex:"none",lineHeight:1},a),viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg"},s),{},{children:[o.jsx("title",{children:uce}),o.jsx("path",{d:"M.958 15.936a.459.459 0 01.459.44v2.729a.46.46 0 01-.918 0v-2.729a.459.459 0 01.459-.44zm4.814-2.035a.46.46 0 01.553.45v4.754a.458.458 0 11-.918 0V15.48L3.74 17.202a.462.462 0 01-.655.016.462.462 0 01-.065-.082L.628 14.67a.459.459 0 01.658-.637l2.124 2.187 2.127-2.188a.46.46 0 01.235-.13zm2.068.004a.46.46 0 01.458.445v4.755a.46.46 0 01-.458.458.459.459 0 01-.458-.458V14.35a.459.459 0 01.458-.445zm1.973 2.014a.46.46 0 01.46.457v2.729a.46.46 0 01-.784.324.46.46 0 01-.134-.324v-2.729a.46.46 0 01.458-.458zm.002-2.045a.458.458 0 01.328.157l2.127 2.19 2.125-2.19a.459.459 0 01.784.318v4.756a.46.46 0 01-.455.458.46.46 0 01-.458-.458V15.48l-1.667 1.723a.46.46 0 01-.65.008l-.005-.005c0-.002-.002-.002-.004-.003l-2.455-2.534a.46.46 0 01-.008-.667.461.461 0 01.338-.128zm6.797 1.206a.46.46 0 01.53.651A1.966 1.966 0 0019.81 18.4a.462.462 0 01.623.18.46.46 0 01-.181.624 2.863 2.863 0 01-1.38.353l-.142-.004a2.88 2.88 0 01-2.393-4.263.461.461 0 01.274-.21zm.864-.931a2.884 2.884 0 013.915 3.914.46.46 0 01-.402.24l-.057-.004a.458.458 0 01-.164-.055.46.46 0 01-.182-.622 1.967 1.967 0 00-2.669-2.67.459.459 0 11-.441-.803zM9.59 6.368c1.481 0 1.696 1.202 1.696 1.654v2.648h-.917v-.432c-.26.346-.792.535-1.36.535-.133 0-1.289-.03-1.384-1.136-.082-.932.675-1.61 2.053-1.61h.691c0-.563-.367-.886-.983-.886-.44.013-.864.174-1.2.458l-.36-.664c.484-.379 1.012-.567 1.764-.567zm4.427.1c1.263 0 2.082.97 2.083 2.15 0 1.181-.824 2.154-2.083 2.154-1.26 0-2.084-.972-2.084-2.152 0-1.18.82-2.153 2.084-2.153zm6.801.015c.68 0 1.202.465 1.197 1.548v2.642H21.1V8.29c0-.312-.002-.98-.63-.98s-.628.667-.628.838v2.524h-.89V8.148c0-.17-.001-.838-.63-.838-.628 0-.628.668-.628.98v2.383h-.917v-4.03h.917V7a1.22 1.22 0 01.947-.516c.398 0 .76.193.982.686a1.321 1.321 0 011.195-.686zm-18.093.872l1.457-1.772H5.32L3.311 8.07l2.14 2.602H4.24L2.725 8.796 1.21 10.672H0L2.138 8.07.13 5.583h1.138l1.458 1.772zm4.149 3.317h-.916V6.644h.916v4.028zm16.99 0h-.916V6.644h.916v4.028zM9.925 8.71c-1.055 0-1.359.412-1.326.742.032.329.324.537.757.537a1.013 1.013 0 001.014-.968l.002-.31h-.447zM14.018 7.3c-.663 0-1.184.487-1.184 1.32 0 .832.52 1.32 1.184 1.32.662 0 1.182-.49 1.182-1.32 0-.832-.52-1.32-1.182-1.32zM6.417 5.001a.568.568 0 01.587.582.588.588 0 01-1.175 0A.57.57 0 016.417 5zm16.991 0a.57.57 0 01.592.582.588.588 0 01-1.174 0 .57.57 0 01.357-.542.572.572 0 01.225-.04z"})]}))});function Ez(e){return e&&e.trim().toLowerCase()||null}const bce={openai:dce,anthropic:ele,google:kO,gemini:kO,deepseek:lle,minimax:Sle,bytedance:Dle,xiaomi:vce,zhipu:Fle,moonshot:nce,qwen:Wle};function xce(e){const t=Ez(e);return t?bce[t]??null:null}function Iz(e){return e?.includes("/")?e.slice(0,e.indexOf("/")):e??""}const $ce={x:"M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z",telegram:"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z",discord:"M20.317 4.3698a19.7913 19.7913 0 0 0-4.8851-1.5152.0741.0741 0 0 0-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 0 0-.0785-.037 19.7363 19.7363 0 0 0-4.8852 1.515.0699.0699 0 0 0-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 0 0 .0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 0 0 .0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 0 0-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 0 1-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 0 1 .0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 0 1 .0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 0 1-.0066.1276 12.2986 12.2986 0 0 1-1.873.8914.0766.0766 0 0 0-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 0 0 .0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 0 0 .0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 0 0-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z",reddit:"M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.
17264 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z",linkedin:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z",whatsapp:"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z",wechat:"M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z",facebook:"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"};function Xb({brand:e,size:t,...n}){const a=t??16;return o.jsx("svg",{viewBox:"0 0 24 24",width:a,height:a,fill:"currentColor","aria-hidden":"true",...n,children:o.jsx("path",{d:$ce[e]})})}const wce={visa:"M9.112 8.262L5.97 15.758H3.92L2.374 9.775c-.094-.368-.175-.503-.461-.658C1.447 8.864.677 8.627 0 8.479l.046-.217h3.3a.904.904 0 01.894.764l.817 4.338 2.018-5.102zm8.033 5.049c.008-1.979-2.736-2.088-2.717-2.972.006-.269.262-.555.822-.628a3.66 3.66 0 011.913.336l.34-1.59a5.207 5.207 0 00-1.814-.333c-1.9
17217 0-3.266 1.02-3.278 2.479-.012 1.079.963 1.68 1.698 2.04.756.367 1.01.603 1.006.931-.005.504-.602.725-1.16.734-.975.015-1.54-.263-1.992-.473l-.351 1.642c.453.208 1.289.39 2.156.398 2.037 0 3.37-1.006 3.377-2.564m5.061 2.447H24l-1.565-7.496h-1.656a.883.883 0 00-.826.55l-2.909 6.946h2.036l.405-1.12h2.488zm-2.163-2.656l1.02-2.815.588 2.815zm-8.16-4.84l-1.603 7.496H8.34l1.605-7.496z",mastercard:"M11.343 18.031c.058.049.12.098.181.146-1.177.783-2.59 1.238-4.107 1.238C3.32 19.416 0 16.096 0 12c0-4.095 3.32-7.416 7.416-7.416 1.518 0 2.931.456 4.105 1.238-.06.051-.12.098-.165.15C9.6 7.489 8.595 9.688 8.595 12c0 2.311 1.001 4.51 2.748 6.031zm5.241-13.447c-1.52 0-2.931.456-4.105 1.238.06.051.12.098.165.15C14.4 7.489 15.405 9.688 15.405 12c0 2.31-1.001 4.507-2.748 6.031-.058.049-.12.098-.181.146 1.177.783 2.588 1.238 4.107 1.238C20.68 19.416 24 16.096 24 12c0-4.094-3.32-7.416-7.416-7.416zM12 6.174c-.096.075-.189.15-.28.231C10.156 7.764 9.169 9.765 9.169 12c0 2.236.987 4.236 2.551 5.595.09.08.185.158.28.232.096-.074.189-.152.28-.232 1.563-1.359 2.551-3.359 2.551-5.595 0-2.235-.987-4.236-2.551-5.595-.09-.08-.184-.156-.28-.231z",unionpay:"M2.6 17.32 4.4 6.68Q4.6 5.5 5.8 5.5h4.2Q11.2 5.5 11 6.68L9.2 17.32Q9 18.5 7.8 18.5H3.6Q2.4 18.5 2.6 17.32ZM11.9 5.5h3.6Q16.7 5.5 16.5 6.68L14.7 17.32Q14.5 18.5 13.3 18.5H9.7ZM17.4 5.5h3.6Q22.2 5.5 22 6.68L20.2 17.32Q20 18.5 18.8 18.5H15.2Z",alipay:"M19.695 15.07c3.426 1.158 4.203 1.22 4.203 1.22V3.846c0-2.124-1.705-3.845-3.81-3.845H3.914C1.808.001.102 1.722.102 3.846v16.31c0 2.123 1.706 3.845 3.813 3.845h16.173c2.105 0 3.81-1.722 3.81-3.845v-.157s-6.19-2.602-9.315-4.119c-2.096 2.602-4.8 4.181-7.607 4.181-4.75 0-6.361-4.19-4.112-6.949.49-.602 1.324-1.175 2.617-1.497 2.025-.502 5.247.313 8.266 1.317a16.796 16.796 0 0 0 1.341-3.302H5.781v-.952h4.799V6.975H4.77v-.953h5.81V3.591s0-.409.411-.409h2.347v2.84h5.744v.951h-5.744v1.704h4.69a19.453 19.453 0 0 1-1.986 5.06c1.424.52 2.702 1.011 3.654 1.333m-13.81-2.032c-.596.06-1.71.325-2.321.869-1.83 1.608-.735 4.55 2.968 4.55 2.151 0 4.301-1.388 5.99-3.61-2.403-1.182-4.438-2.028-6.637-1.809","wechat-pay":"M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z"};function kg({brand:e,size:t,...n}){const a=t??16;return o.jsx("svg",{viewBox:"0 0 24 24",width:a,height:a,fill:"currentColor","aria-hidden":"true",...n,children:o.jsx("path",{d:wce[e]})})}function Lc({size:e,viewBox:t="0 0 24 24",fill:n="none",children:a,...s}){const r=e??20;return o.jsx("svg",{viewBox:t,width:r,height:r,"aria-hidden":"true",fill:n,...s,children:a})}const Oz="#231815";function Lz({size:e,...t}){const n=e??20;return o.jsx("svg",{viewBox:"0 0 2267.72 2267.72",width:n,height:n,fill:Oz,"aria-hidden":"true",...t,children:o.jsx("path",{d:"M1155.06,401.78c38.08,1.13,77.76,5.64,115.39,12.71,168.56,31.67,324.71,124.52,431.51,258.11-11.03-2.67-21.77-6.18-32.89-8.57-30.89-6.63-62.8-8.63-94.28-5.5-168.42-156.38-411.66-212.06-632.44-143.92-314.5,97.06-506.52,415.56-445.42,740.76,3.55,18.88,8.18,48.47,20.56,63.11,26,30.74,73.06,23.08,91.26-11.53,83.78-141.01,161.58-285.76,245.94-426.4,38.14-63.58,95.97-98.22,172.17-88.94l176.65,35.13-139.55,243.31.22.96c67.16,49.83,162.53,40.49,218.26-21.88,7.87-8.81,13.18-17.7,19.55-27.42,35.88-54.78,65.81-114.81,99.6-171.24,61.68-103.02,182.6-149.1,295.73-99.45,77.2,33.88,115.15,95.33,138.44,173.51,58.02,194.77,32.24,406.85-70.81,581.33-152.2,257.69-444.97,397.27-743,351.95-180.47-27.44-348.3-124.75-460.77-267.76,11.01,3.05,21.84,6.68,33.03,9.17,20.66,4.6,41.6,6.67,62.74,7.73l32.18-1.35c186.35,177.6,467.7,226.11,704.27,122.55,281.12-123.07,438.9-427.43,374.4-729.81-6.32-29.64-12.48-61.67-46.89-69.82-40.03-9.49-55.52,16.98-72.67,45.98-78.93,133.45-154.82,268.85-232.71,402.93-3.53,6.08-6.41,12.57-10.02,18.6-35.07,58.48-101.12,90.36-169.21,80.12l-175.2-35.12,139.5-242.61-.13-.93c-56.81-42.28-134.75-43.47-192.46-2.18-20.2,14.45-34.34,31.48-47.34,52.48-37.62,60.75-69.96,131.48-111.12,188.35-105.38,145.58-327.97,120.94-400.07-43.04-40.91-93.05-54.02-222.36-45.38-323.06,31.69-369.22,338.21-657.3,708.39-668.26,13.78-.41,28.8-.41,42.58,0Z"})})}const kce=2267.72/850.39;function Cce({size:e=20,...t}){const n=Number(e);return o.jsxs("svg",{viewBox:"0 0 2267.72 850.39",width:n*kce,height:n,fill:Oz,"aria-hidden":"true",...t,children:[o.jsx("path",{d:"M397.62,208.16c11.29.33,23.05,1.67,34.21,3.77,49.97,9.39,96.27,36.92,127.93,76.52-3.27-.79-6.45-1.83-9.75-2.54-9.16-1.97-18.62-2.56-27.95-1.63-49.93-46.36-122.04-62.87-187.5-42.67-93.24,28.78-150.17,123.2-132.05,219.61,1.05,5.6,2.43,14.37,6.1,18.71,7.71,9.11,21.66,
1726.84,27.06-3.42,24.84-41.8,47.9-84.72,72.91-126.42,11.31-18.85,28.45-29.12,51.04-26.37l52.37,10.41-41.37,72.13.06.29c19.91,14.77,48.18,12,64.71-6.49,2.33-2.61,3.91-5.25,5.8-8.13,10.64-16.24,19.51-34.04,29.53-50.77,18.29-30.54,54.13-44.2,87.67-29.48,22.89,10.04,34.14,28.26,41.04,51.44,17.2,57.74,9.56,120.62-20.99,172.35-45.12,76.4-131.92,117.78-220.28,104.34-53.5-8.14-103.26-36.98-136.6-79.38,3.26.9,6.48,1.98,9.79,2.72,6.13,1.36,12.33,1.98,18.6,2.29l9.54-.4c55.25,52.65,138.66,67.04,208.8,36.33,83.35-36.49,130.12-126.72,111-216.37-1.87-8.79-3.7-18.28-13.9-20.7-11.87-2.81-16.46,5.03-21.55,13.63-23.4,39.56-45.9,79.71-68.99,119.46-1.05,1.8-1.9,3.73-2.97,5.51-10.4,17.34-29.98,26.79-50.17,23.75l-51.94-10.41,41.36-71.93-.04-.27c-16.84-12.53-39.95-12.89-57.06-.65-5.99,4.29-10.18,9.33-14.04,15.56-11.15,18.01-20.74,38.98-32.94,55.84-31.24,43.16-97.23,35.86-118.61-12.76-12.13-27.59-16.02-65.92-13.45-95.78,9.39-109.46,100.27-194.87,210.02-198.12,4.08-.12,8.54-.12,12.62,0Z"}),o.jsxs("g",{children:[o.jsx("path",{d:"M1295.63,313.19c-59.72,0-108.14,48.42-108.14,108.14s48.42,108.17,108.14,108.17c39.35,0,73.78-20.99,92.73-52.39l-1.18-.69h-66.16c-7.72,3.58-16.33,5.55-25.39,5.55-33.47,0-60.61-27.13-60.61-60.64s27.13-60.61,60.61-60.61c25.06,0,46.58,15.21,55.81,36.86h-80.25v47.5h129.98c1.74-7.65,2.63-15.6,2.63-23.75s-.92-16.13-2.63-23.75c-10.81-48.29-53.97-84.39-105.54-84.39Z"}),o.jsx("path",{d:"M1060.73,312.89c-38.47,0-72.23,20.07-91.39,50.32-10.61,16.72-16.75,36.56-16.75,57.81,0,3.15.13,6.24.43,9.33-.3,3.05-.43,6.18-.43,9.3v90.14c9.13-6.04,17.28-13.47,24.18-21.94,2.69-3.28,5.19-6.77,7.42-10.38,8.28-12.98,13.83-27.86,15.9-43.82v-32.62c0-33.47,27.17-60.61,60.64-60.61s60.64,27.13,60.64,60.61v108.2c28.64-19.48,47.5-52.33,47.5-89.58,0-3.12-.13-6.24-.43-9.3.3-3.09.43-6.18.43-9.33,0-59.72-48.42-108.14-108.14-108.14Z"}),o.jsx("path",{d:"M890.05,334.31c-17.97-13.27-40.17-21.12-64.22-21.12-59.72,0-108.14,48.42-108.14,108.14,0,40.5,22.24,75.78,55.15,94.31l27.76-39.16c-20.89-9.56-35.41-30.65-35.41-55.15,0-33.47,27.13-60.61,60.64-60.61,4.27,0,8.41.43,12.42,1.28,27.53,5.72,48.22,30.12,48.22,59.32,0,31.04-23.32,56.63-53.38,60.18l-11.4,16.1-20.6,29.04c7.95,1.87,16.23,2.86,24.74,2.86,7.95,0,15.73-.85,23.19-2.5,48.58-10.61,84.95-53.87,84.95-105.67,0-35.67-17.28-67.31-43.92-87.02Z"}),o.jsx("path",{d:"M1515.55,313.31c-16.29,0-31.73,3.58-45.56,10.02v-115.27c-28.71,19.45-47.57,52.33-47.57,89.61,0,1.25.03,2.46.07,3.71v228.23h47.5v-148.18c11.1-12.61,27.4-20.6,45.56-20.6,25.1,0,46.65,15.27,55.84,37.02,3.05,7.23,4.76,15.21,4.76,23.59v108.17h47.47l.03-105.15v-5.09c-.33-17.77-4.93-34.46-12.84-49.14-18.26-33.9-54.07-56.93-95.26-56.93Z"}),o.jsx("path",{d:"M1750.45,313.48c-59.75,0-108.17,48.42-108.17,108.14,0,49.37,33.05,91.02,78.25,103.97,9.49,2.73,19.55,4.2,29.93,4.2,59.72,0,108.14-48.42,108.14-108.17,0-.49,0-1.02-.03-1.51-.79-59.03-48.88-106.63-108.11-106.63ZM1750.45,482.26c-7.03,0-13.8-1.18-20.07-3.42-23.65-8.28-40.57-30.75-40.57-57.22,0-33.47,27.13-60.61,60.64-60.61s58.27,24.87,60.44,56.34c.1,1.41.16,2.83.16,4.27,0,33.51-27.13,60.64-60.61,60.64Z"}),o.jsx("path",{d:"M1985.35,313.19c-59.13,0-107.19,47.47-108.11,106.36v4.57c.07,1.91.13,3.78.3,5.65-.1-.07-.2-.13-.3-.16l-.03,188.29c21.48-12.15,38.37-31.44,47.5-54.66v-141.91c0-33.47,27.17-60.61,60.64-60.61s60.64,27.13,60.64,60.61-27.13,60.64-60.64,60.64c-9.85,0-19.18-2.33-27.4-6.54v50.55c8.74,2.3,17.94,3.51,27.4,3.51,59.72,0,108.14-48.42,108.14-108.17s-48.42-108.14-108.14-108.14Z"}),o.jsx("rect",{x:"952.59",y:"421.64",width:"4.83",height:"16.21"}),o.jsx("rect",{x:"1166.83",y:"421.34",width:"2.04",height:"19.51"})]})]})}function Sce({size:e,...t}){return o.jsxs(Lc,{size:e,...t,children:[o.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2.5",stroke:"currentColor",strokeWidth:"1.8"}),o.jsx("path",{d:"M9.5 3.5v2M14.5 3.5v2M9.5 18.5v2M14.5 18.5v2M3.5 9.5h2M3.5 14.5h2M18.5 9.5h2M18.5 14.5h2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]})}function Xo({authorSlug:e,size:t,className:n}){const a=xce(e);return a?o.jsx(a,{size:t??20,className:n}):o.jsx(Sce,{size:t,className:n})}function Ace({size:e,...t}
172){return o.jsx(Lc,{size:e,fill:"currentColor",...t,children:o.jsx("path",{d:"M13.5 9.4c0-.66.55-.92 1.43-.92 1.27 0 2.88.39 4.15 1.08V6.07A11 11 0 0 0 14.93 5.3c-3.4 0-5.66 1.78-5.66 4.75 0 4.64 6.38 3.9 6.38 5.9 0 .78-.68 1.03-1.62 1.03-1.39 0-3.16-.57-4.56-1.34v3.55a11.6 11.6 0 0 0 4.56.95c3.48 0 5.88-1.72 5.88-4.73 0-5.01-6.41-4.12-6.41-6.01Z"})})}function QT({size:e,...t}){return o.jsx(Lc,{size:e,fill:"currentColor",...t,children:o.jsx("path",{fillRule:"evenodd",d:"M4.594 6.677C6.67-2.226 18.746-2.211 21.16 6.632c.353 1.297 1.725 7.582-1.673 13.747-1.545 2.797-5.841 5.49-6.99 1.883C8.6 25.477 3.315 24.1 5.789 18.609l-.318.143c-3.57 1.305-3.863-1.208-3.173-2.513.45-.84.727-1.335.937-1.897.353-.975.458-1.568.593-2.498.27-1.837.277-3.607.765-5.167zm8.37.01a.92.92 0 00-.81.428c-.217.323-.33.825-.33 1.462 0 .705.15 1.89 1.14 1.89h.008c.757 0 1.214-.705 1.214-1.89 0-.622-.127-1.125-.367-1.455a1.014 1.014 0 00-.855-.435zm4.08 0a.92.92 0 00-.81.428c-.217.323-.33.825-.33 1.462 0 .705.15 1.89 1.14 1.89h.008c.757 0 1.215-.705 1.215-1.89 0-.622-.128-1.125-.368-1.455a1.014 1.014 0 00-.855-.435z"})})}function Tce({size:e,...t}){return o.jsxs(Lc,{size:e,...t,children:[o.jsx("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"}),o.jsx("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",strokeWidth:"1.8"})]})}function Rce({size:e,...t}){return o.jsx(Lc,{size:e,...t,children:o.jsx("path",{d:"M14.7 6.3a4 4 0 0 0-5.3 5.3l-6 6a1.5 1.5 0 0 0 2.1 2.1l6-6a4 4 0 0 0 5.3-5.3l-2.6 2.6-2.1-2.1 2.6-2.6Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})})}function Pce({size:e,...t}){return o.jsxs(Lc,{size:e,...t,children:[o.jsx("path",{d:"M8 4c-2 0-2.5 1.5-2.5 3.5S5 11 3.5 11.5C5 12 5.5 13.5 5.5 16S6 20 8 20",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M16 4c2 0 2.5 1.5 2.5 3.5S19 11 20.5 11.5C19 12 18.5 13.5 18.5 16S18 20 16 20",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})]})}function _ce({size:e,...t}){return o.jsxs(Lc,{size:e,...t,children:[o.jsx("rect",{x:"3",y:"4",width:"18",height:"14",rx:"2.5",stroke:"currentColor",strokeWidth:"1.8"}),o.jsx("path",{d:"m6 16 3.5-3.5 2.5 2.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M17 3.5 17.7 5.3 19.5 6l-1.8.7L17 8.5 16.3 6.7 14.5 6l1.8-.7L17 3.5Z",fill:"currentColor"})]})}function jce({size:e,...t}){return o.jsxs(Lc,{size:e,...t,children:[o.jsx("path",{d:"M21 11V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h6",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"}),o.jsx("path",{d:"m6 16 3.5-3.5 2 2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"}),o.jsx("path",{d:"M18.5 13.5 21 16l-4 4h-2.5v-2.5l4-4Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})]})}const Uz={vision:Tce,tool_calling:Rce,json_mode:Pce,image_generation:_ce,image_edit:jce};function Nce({capability:e,size:t,className:n}){const a=Ez(e),s=a?Uz[a]:void 0;return s?o.jsx(s,{size:t??20,className:n}):null}const Dce=Object.keys(Uz);function Mce({text:e,tosHref:t,tosLabel:n,className:a}){return o.jsxs("p",{className:X("mt-12 max-w-3xl text-xs leading-5 text-[color:var(--muted-foreground)]",a),children:[e," ",o.jsx("a",{href:t,className:"text-[color:var(--link)] underline-offset-2 hover:underline",children:n}),"ã"]})}const DO="onehop-support-engaged";let D1=!1;function Ece({propertyId:e,widgetId:t,label:n,hidden:a,hideOnMobile:s,yOffset:r=20,onScriptReady:i}){const[c,d]=h.useState("idle"),[m,f]=h.useState(()=>s&&typeof window<"u"?window.matchMedia("(max-width: 639px)").matches:!1),p=h.useRef("idle"),y=h.useRef(!1),v=!!(a||s&&m);h.useEffect(()=>{if(!s||typeof window>"u")return;const x=window.matchMedia("(max-width: 639px)"),w=()=>f(x.matches);return w(),x.addEventListener("change",w),()=>x.removeEventListener("change",w)},[s]);const $=x=>{if(p.current!=="idle")return;if(y.current=x,window.Tawk_API?.onLoaded){p.current="ready",d("ready"),i?.(),x&&window.Tawk_API.maximize?.();return}if(p.current="loading",d("loading"),window.Tawk_API=window.Tawk_API||{},window.Tawk_LoadStart=new Date,window.Tawk_API.customStyle={visibility:{desktop:{position:"br",xOffset:16,yOffset:r},mobile:{position:"br",xOffset:16,yOffset:r}}},window.Tawk_API.onChatStarted=()=>sessionStorage.setItem(DO,"1"),window.Tawk_API.onLoad=()=>{p.current="ready",d("ready"),i?.(),y.current&&window.Tawk_API.maximize?.()},D1)return;D1=!0;const w=document.createElement("script");w.async=!0,w.src=`https://embed.tawk.to/${e}/${t}`,w.charset="UTF-8",w.setAttribute("crossorigin","*"),w.onerror=()=>{w.remove(),D1=!1,p.current="idle",d("idle")},document.head.appendChild(w)};return h.useEffect(()=>{!e||!t||v||sessionStorage.getItem(DO)&&$(!1)},[v]),h.useEffect(()=>{if(window.Tawk_API){if(v){window.Tawk_API.hideWidget?.();return}c==="ready"&&window.Tawk_API.showWidget?.()}},[c,v]),!e||!t||c==="ready"||v?null:o.jsx("button",{type:"button","aria-label":n,title:n,disabled:c==="loading",onClick:()=>$(!0),className:X("fixed z-40 h-14 w-14 items-center justify-center rounded-full bg-[color:var(--primary)] text-[color:var(--primary-foreground)] shadow-lg transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:opacity-70",s?"hidden sm:flex":"flex"),style:{right:16,bottom:r},children:c==="loading"?o.jsx(f_,{className:"h-6 w-6 animate-spin","aria-hidden":!0}):o.jsx(wse,{className:"h-6 w-6","aria-hidden":!0})})}function Ot({icon:e,title:t,description:n,action:a,className:s}){return o.jsxs("div",{className:X("rounded-lg border border-dashed border-[color:var(--border)] p-8 text-center",s
172),children:[e?o.jsx("div",{className:"mx-auto mb-3 grid size-9 place-items-center rounded-full border border-[color:var(--border)] bg-[color:var(--background)] text-[color:var(--muted-foreground)]",children:e}):null,o.jsx("h2",{className:"text-base font-semibold text-[color:var(--foreground)]",children:t}),n?o.jsx("p",{className:"mx-auto mt-2 max-w-sm text-sm text-[color:var(--muted-foreground)]",children:n}):null,a?o.jsx("div",{className:"mt-5",children:a}):null]})}function Qt({title:e,description:t,action:n,className:a}){return o.jsxs("div",{role:"alert",className:X("rounded-lg border border-[color:var(--destructive)]/30 bg-[color:var(--destructive)]/5 p-4",a),children:[o.jsx("h2",{className:"text-sm font-semibold text-[color:var(--foreground)]",children:e}),t?o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:t}):null,n?o.jsx("div",{className:"mt-3",children:n}):null]})}function Ice({length:e=6,value:t,onChange:n,onComplete:a,error:s=!1,disabled:r=!1,autoFocus:i=!1}){const c=h.useRef([]),d=h.useMemo(()=>Array.from({length:e},(v,$)=>t[$]??""),[t,e]);h.useEffect(()=>{i&&c.current[0]?.focus()},[i]);const m=v=>{const $=v.replace(/\D/g,"").slice(0,e);n($),$.length===e&&a?.($)},f=(v,$)=>{const x=$.replace(/\D/g,"").slice(-1);if(!x)return;const w=(t.slice(0,v)+x+t.slice(v+1)).slice(0,e);m(w),v<e-1&&c.current[v+1]?.focus()},p=(v,$)=>{$.key==="Backspace"?($.preventDefault(),t[v]?m(t.slice(0,v)+t.slice(v+1)):v>0&&(c.current[v-1]?.focus(),m(t.slice(0,v-1)+t.slice(v)))):$.key==="ArrowLeft"&&v>0?c.current[v-1]?.focus():$.key==="ArrowRight"&&v<e-1&&c.current[v+1]?.focus()},y=v=>{v.preventDefault(),m(v.clipboardData.getData("text")),c.current[Math.min(e-1,v.clipboardData.getData("text").replace(/\D/g,"").length)]?.focus()};return o.jsx("div",{className:"grid w-full grid-cols-6 gap-2",role:"group","aria-label":"Verification code",style:{gridTemplateColumns:`repeat(${e}, minmax(0, 1fr))`},children:d.map((v,$)=>o.jsx("input",{ref:x=>{c.current[$]=x},type:"text",inputMode:"numeric",autoComplete:$===0?"one-time-code":"off",maxLength:1,value:v,disabled:r,"aria-label":`Digit ${$+1}`,onChange:x=>f($,x.target.value),onKeyDown:x=>p($,x),onPaste:y,className:X("h-12 min-w-0 rounded-md border bg-transparent text-center text-lg font-medium tabular-nums","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]","disabled:opacity-50",s?"border-[color:var(--destructive)]":"border-[color:var(--input)]")},$))})}function Oce({className:e,...t}){return o.jsx("div",{"data-slot":"sidebar-content",className:X("min-h-0 flex-1 overflow-y-auto overflow-x-hidden pb-4 pt-1",e),...t})}function MO({className:e,...t}){return o.jsx("section",{"data-slot":"sidebar-group",className:X("space-y-2",e),...t})}function Lce({className:e,...t}){return o.jsx("ul",{"data-slot":"sidebar-menu",className:X("space-y-1 px-2",e),...t})}function Uce({className:e,...t}){return o.jsx("li",{"data-slot":"sidebar-menu-item",className:X("min-w-0",e),...t})}const Bce=zh("group/sidebar-menu-button h-9 w-full overflow-hidden rounded-md text-sm transition-colors motion-reduce:transition-none focus-visible:border-ring focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-foreground
172/10 data-[state=open]:text-foreground",{variants:{layout:{default:"grid grid-cols-[2.75rem_minmax(0,1fr)] items-center text-start",shortcut:"grid grid-cols-[2.75rem_minmax(0,1fr)_auto] items-center text-start",flex:"flex items-center text-start"},active:{true:"bg-foreground/[0.14] text-foreground font-medium",false:"text-foreground hover:bg-foreground/6"}},defaultVariants:{layout:"default",active:!1}});function Fce({active:e=!1,asChild:t=!1,className:n,layout:a="default",...s}){const r=t?m_:"button";return o.jsx(r,{"data-slot":"sidebar-menu-button","data-active":e?"true":"false",className:X(Bce({active:e,layout:a,className:n})),...s})}function EO({className:e,...t}){return o.jsx("span",{"data-slot":"sidebar-menu-icon",className:X("flex h-9 w-11 shrink-0 items-center justify-center",e),...t})}const Bz=h.createContext(null);function zce({children:e,navigationToggle:t}){return o.jsx(Bz.Provider,{value:t,children:e})}function Vt({title:e,description:t,action:n,children:a,maxWidth:s="max-w-none",fill:r=!1}){const i=h.useContext(Bz);return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex shrink-0 flex-col items-start gap-2 border-b border-[color:var(--border)] px-3 py-2.5 sm:flex-row sm:items-center sm:justify-between sm:gap-4 sm:px-6 sm:py-3 lg:px-8 lg:py-4",children:[o.jsxs("div",{className:"flex min-w-0 items-start gap-3 self-stretch sm:self-auto",children:[i?o.jsx("div",{className:"shrink-0 pt-0.5",children:i}):null,o.jsxs("div",{className:"min-w-0",children:[o.jsx("h1",{className:"text-sm font-semibold tracking-normal text-[color:var(--heading)] sm:truncate sm:text-lg sm:tracking-[-0.01em]",children:e}),t?o.jsx("p",{className:"mt-0.5 line-clamp-1 text-xs text-[color:var(--muted-foreground)] sm:mt-1 sm:line-clamp-2 sm:text-sm",children:t}):null]})]}),n?o.jsx("div",{className:"flex w-full shrink-0 flex-wrap items-center gap-2 sm:w-auto sm:justify-end",children:n}):null]}),o.jsx("div",{className:`flex-1 min-h-0 overflow-x-hidden ${r?"overflow-y-auto md:flex md:flex-col md:overflow-hidden":"overflow-y-auto"}`,children:o.jsx("div",{className:`mx-auto w-full ${s}
172 px-3 py-3 sm:px-6 sm:py-4 lg:px-8 lg:py-6 ${r?"md:flex md:min-h-0 md:flex-1 md:flex-col":""}`,children:o.jsx("section",{className:r?"space-y-3 md:flex md:min-h-0 md:flex-1 md:flex-col md:space-y-0 md:gap-4 lg:gap-5":"space-y-3 sm:space-y-4 lg:space-y-5",children:a})})})]})}var M1="focusScope.autoFocusOnMount",E1="focusScope.autoFocusOnUnmount",IO={bubbles:!1,cancelable:!0},qce="FocusScope",Wh=h.forwardRef((e,t)=>{const{loop:n=!1,trapped:a=!1,onMountAutoFocus:s,onUnmountAutoFocus:r,...i}=e,[c,d]=h.useState(null),m=oi(s),f=oi(r),p=h.useRef(null),y=vt(t,x=>d(x)),v=h.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;h.useEffect(()=>{if(a){let x=function(T){if(v.paused||!c)return;const R=T.target;c.contains(R)?p.current=R:Yl(p.current,{select:!0})},w=function(T){if(v.paused||!c)return;const R=T.relatedTarget;R!==null&&(c.contains(R)||Yl(p.current,{select:!0}))},S=function(T){if(document.activeElement===document.body)for(const _ of T)_.removedNodes.length>0&&Yl(c)};document.addEventListener("focusin",x),document.addEventListener("focusout",w);const k=new MutationObserver(S);return c&&k.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",w),k.disconnect()}}},[a,c,v.paused]),h.useEffect(()=>{if(c){LO.add(v);const x=document.activeElement;if(!c.contains(x)){const S=new CustomEvent(M1,IO);c.addEventListener(M1,m),c.dispatchEvent(S),S.defaultPrevented||(Hce(Yce(Fz(c)),{select:!0}),document.activeElement===x&&Yl(c))}return()=>{c.removeEventListener(M1,m),setTimeout(()=>{const S=new CustomEvent(E1,IO);c.addEventListener(E1,f),c.dispatchEvent(S),S.defaultPrevented||Yl(x??document.body,{select:!0}),c.removeEventListener(E1,f),LO.remove(v)},0)}}},[c,m,f,v]);const $=h.useCallback(x=>{if(!n&&!a||v.paused)return;const w=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,S=document.activeElement;if(w&&S){const k=x.currentTarget,[T,R]=Vce(k);T&&R?!x.shiftKey&&S===R?(x.preventDefault(),n&&Yl(T,{select:!0})):x.shiftKey&&S===T&&(x.preventDefault(),n&&Yl(R,{select:!0})):S===k&&x.preventDefault()}},[n,a,v.paused]);return o.jsx(st.div,{tabIndex:-1,...i,ref:y,onKeyDown:$})});Wh.displayName=qce;function Hce(e,{select:t=!1}={}){const n=document.activeElement;for(const a of e)if(Yl(a,{select:t}),document.activeElement!==n)return}function Vce(e){const t=Fz(e),n=OO(t,e),a=OO(t.reverse(),e);return[n,a]}function Fz(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const s=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||s?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function OO(e,t){for(const n of e)if(!Kce(n,{upTo:t}))return n}function Kce(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Gce(e){return e instanceof HTMLInputElement&&"select"in e}function Yl(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Gce(e)&&t&&e.select()}}var LO=Wce();function Wce(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=UO(e,t),e.unshift(t)},remove(t){e=UO(e,t),e[0]?.resume()}}}function UO(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}function Yce(e){return e.filter(t=>t.tagName!=="A")}var I1=0;function iw(){h.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??BO()),document.body.insertAdjacentElement("beforeend",e[1]??BO()),I1++,()=>{I1===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),I1--}},[])}function BO(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Gr=function(){return Gr=Object.assign||function(t){for(var n,a=1,s=arguments.length;a<s;a++){n=arguments[a];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},Gr.apply(this,arguments)};function zz(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)t.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(n[a[s]]=e[a[s]]);return n}function Qce(e,t,n){if(n||arguments.length===2)for(var a=0,s=t.length,r;a<s;a++)(r||!(a in t))&&(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}var Zb="right-scroll-bar-position",Jb="width-before-scroll-bar",Xce="with-scroll-bars-hidden",Zce="--removed-body-scroll-bar-size";function O1(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}
vendor: 4,685 bytes, lines 172-187
172function Jce(e,t){var n=h.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(a){var s=n.value;s!==a&&(n.value=a,n.callback(a,s))}}}})[0];return n.callback=t,n.facade}var ede=typeof window<"u"?h.useLayoutEffect:h.useEffect,FO=new WeakMap;function tde(e,t){var n=Jce(null,function(a){return e.forEach(function(s){return O1(s,a)})});return ede(function(){var a=FO.get(n);if(a){var s=new Set(a),r=new Set(e),i=n.current;s.forEach(function(c){r.has(c)||O1(c,null)}),r.forEach(function(c){s.has(c)||O1(c,i)})}FO.set(n,e)},[e]),n}function nde(e){return e}function ade(e,t){t===void 0&&(t=nde);var n=[],a=!1,s={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(r){var i=t(r,a);return n.push(i),function(){n=n.filter(function(c){return c!==i})}},assignSyncMedium:function(r){for(a=!0;n.length;){var i=n;n=[],i.forEach(r)}n={push:function(c){return r(c)},filter:function(){return n}}},assignMedium:function(r){a=!0;var i=[];if(n.length){var c=n;n=[],c.forEach(r),i=n}var d=function(){var f=i;i=[],f.forEach(r)},m=function(){return Promise.resolve().then(d)};m(),n={push:function(f){i.push(f),m()},filter:function(f){return i=i.filter(f),n}}}};return s}function ode(e){e===void 0&&(e={});var t=ade(null);return t.options=Gr({async:!0,ssr:!1},e),t}var qz=function(e){var t=e.sideCar,n=zz(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return h.createElement(a,Gr({},n))};qz.isSideCarExport=!0;function sde(e,t){return e.useMedium(t),qz}var Hz=ode(),L1=function(){},lw=h.forwardRef(function(e,t){var n=h.useRef(null),a=h.useState({onScrollCapture:L1,onWheelCapture:L1,onTouchMoveCapture:L1}),s=a[0],r=a[1],i=e.forwardProps,c=e.children,d=e.className,m=e.removeScrollBar,f=e.enabled,p=e.shards,y=e.sideCar,v=e.noRelative,$=e.noIsolation,x=e.inert,w=e.allowPinchZoom,S=e.as,k=S===void 0?"div":S,T=e.gapMode,R=zz(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),_=y,P=tde([n,t]),j=Gr(Gr({},R),s);return h.createElement(h.Fragment,null,f&&h.createElement(_,{sideCar:Hz,removeScrollBar:m,shards:p,noRelative:v,noIsolation:$,inert:x,setCallbacks:r,allowPinchZoom:!!w,lockRef:n,gapMode:T}),i?h.cloneElement(h.Children.only(c),Gr(Gr({},j),{ref:P})):h.createElement(k,Gr({},j,{className:d,ref:P}),c))});lw.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};lw.classNames={fullWidth:Jb,zeroRight:Zb};var rde=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function ide(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=rde();return t&&e.setAttribute("nonce",t),e}function lde(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function cde(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var dde=function(){var e=0,t=null;return{add:function(n){e==0&&(t=ide())&&(lde(t,n),cde(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ude=function(){var e=dde();return function(t,n){h.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Vz=function(){var e=ude(),t=function(n){var a=n.styles,s=n.dynamic;return e(a,s),null};return t},mde={left:0,top:0,right:0,gap:0},U1=function(e){return parseInt(e||"",10)||0},pde=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],s=t[e==="padding"?"paddingRight":"marginRight"];return[U1(n),U1(a),U1(s)]},fde=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return mde;var t=pde(e),n=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-n+t[2]-t[0])}},gde=Vz(),zm="data-scroll-locked",hde=function(e,t,n,a){var s=e.left,r=e.top,i=e.right,c=e.gap;return n===void 0&&(n="margin"),` 173 .`.concat(Xce,` { 174 overflow: hidden `).concat(a,`; 175 padding-right: `).concat(c,"px ").concat(a,`; 176 } 177 body[`).concat(zm,`] { 178 overflow: hidden `).concat(a,`; 179 overscroll-behavior: contain; 180 `).concat([t&&"position: relative ".concat(a,";"),n==="margin"&&` 181 padding-left: `.concat(s,`px; 182 padding-top: `).concat(r,`px; 183 padding-right: `).concat(i,`px; 184 margin-left:0; 185 margin-top:0; 186 margin-right: `).concat(c,"px ").concat(a,`; 187 `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(a,";
187")].filter(Boolean).join(""),` 188 } 189 190 .`).concat(Zb,` { 191 right: `).concat(c,"px ").concat(a,`; 192 } 193 194 .`).concat(Jb,` { 195 margin-right: `).concat(c,"px ").concat(a,`; 196 } 197 198 .`).concat(Zb," .").concat(Zb,` { 199 right: 0 `).concat(a,`; 200 } 201 202 .`).concat(Jb," .").concat(Jb,` { 203 margin-right: 0 `).concat(a,`; 204 } 205 206 body[`).concat(zm,`] { 207 `).concat(Zce,": ").concat(c,`px; 208 } 209`)},zO=function(){var e=parseInt(document.body.getAttribute(zm)||"0",10);return isFinite(e)?e:0},yde=function(){h.useEffect(function(){return document.body.setAttribute(zm,(zO()+1).toString()),function(){var e=zO()-1;e<=0?document.body.removeAttribute(zm):document.body.setAttribute(zm,e.toString())}},[])},vde=function(e){var t=e.noRelative,n=e.noImportant,a=e.gapMode,s=a===void 0?"margin":a;yde();var r=h.useMemo(function(){return fde(s)},[s]);return h.createElement(gde,{styles:hde(r,!t,s,n?"":"!important")})},XT=!1;if(typeof window<"u")try{var ab=Object.defineProperty({},"passive",{get:function(){return XT=!0,!0}});window.addEventListener("test",ab,ab),window.removeEventListener("test",ab,ab)}catch{XT=!1}var hm=XT?{passive:!1}:!1,bde=function(e){return e.tagName==="TEXTAREA"},Kz=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!bde(e)&&n[t]==="visible")},xde=function(e){return Kz(e,"overflowY")},$de=function(e){return Kz(e,"overflowX")},qO=function(e,t){var n=t.ownerDocument,a=t;do{typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&(a=a.host);var s=Gz(e,a);if(s){var r=Wz(e,a),i=r[1],c=r[2];if(i>c)return!0}a=a.parentNode}while(a&&a!==n.body);return!1},wde=function(e){var t=e.scrollTop,n=e.scrollHeight,a=e.clientHeight;return[t,n,a]},kde=function(e){var t=e.scrollLeft,n=e.scrollWidth,a=e.clientWidth;return[t,n,a]},Gz=function(e,t){return e==="v"?xde(t):$de(t)},Wz=function(e,t){return e==="v"?wde(t):kde(t)},Cde=function(e,t){return e==="h"&&t==="rtl"?-1:1},Sde=function(e,t,n,a,s){var r=Cde(e,window.getComputedStyle(t).direction),i=r*a,c=n.target,d=t.contains(c),m=!1,f=i>0,p=0,y=0;do{if(!c)break;var v=Wz(e,c),$=v[0],x=v[1],w=v[2],S=x-w-r*$;($||S)&&Gz(e,c)&&(p+=S,y+=$);var k=c.parentNode;c=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!d&&c!==document.body||d&&(t.contains(c)||t===c));return(f&&Math.abs(p)<1||!f&&Math.abs(y)<1)&&(m=!0),m},ob=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},HO=function(e){return[e.deltaX,e.deltaY]},VO=function(e){return e&&"current"in e?e.current:e},Ade=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Tde=function(e){return` 210 .block-interactivity-`.concat(e,` {pointer-events: none;} 211 .allow-interactivity-`).concat(e,` {pointer-events: all;} 212`)},Rde=0,ym=[];function Pde(e){var t=h.useRef([]),n=h.useRef([0,0]),a=h.useRef(),s=h.useState(Rde++)[0],r=h.useState(Vz)[0],i=h.useRef(e);h.useEffect(function(){i.current=e},[e]),h.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(s));var x=Qce([e.lockRef.current],(e.shards||[]).map(VO),!0).filter(Boolean);return x.forEach(function(w){return w.classList.add("allow-interactivity-".concat(s))}),function(){document.body.classList.remove("block-interactivity-".concat(s)),x.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(s))})}}},[e.inert,e.lockRef.current,e.shards]);var c=h.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!i.current.allowPinchZoom;var S=ob(x),k=n.current,T="deltaX"in x?x.deltaX:k[0]-S[0],R="deltaY"in x?x.deltaY:k[1]-S[1],_,P=x.target,j=Math.abs(T)>Math.abs(R)?"h":"v";if("touches"in x&&j==="h"&&P.type==="range")return!1;var N=window.getSelection(),I=N&&N.anchorNode,z=I?I===P||I.contains(P):!1;if(z)return!1;var E=qO(j,P);if(!E)return!0;if(E?_=j:(_=j==="v"?"h":"v",E=qO(j,P)),!E)return!1;if(!a.current&&"changedTouches"in x&&(T||R)&&(a.current=_),!_)return!0;var L=a.current||_;return Sde(L,w,x,L==="h"?T:R)},[]),d=h.useCallback(function(x){var w=x;if(!(!ym.length||ym[ym.length-1]!==r)){var S="deltaY"in w?HO(w):ob(w),k=t.current.filter(function(_){return _.name===w.t
vendor: 4,173 bytes, line 212
212ype&&(_.target===w.target||w.target===_.shadowParent)&&Ade(_.delta,S)})[0];if(k&&k.should){w.cancelable&&w.preventDefault();return}if(!k){var T=(i.current.shards||[]).map(VO).filter(Boolean).filter(function(_){return _.contains(w.target)}),R=T.length>0?c(w,T[0]):!i.current.noIsolation;R&&w.cancelable&&w.preventDefault()}}},[]),m=h.useCallback(function(x,w,S,k){var T={name:x,delta:w,target:S,should:k,shadowParent:_de(S)};t.current.push(T),setTimeout(function(){t.current=t.current.filter(function(R){return R!==T})},1)},[]),f=h.useCallback(function(x){n.current=ob(x),a.current=void 0},[]),p=h.useCallback(function(x){m(x.type,HO(x),x.target,c(x,e.lockRef.current))},[]),y=h.useCallback(function(x){m(x.type,ob(x),x.target,c(x,e.lockRef.current))},[]);h.useEffect(function(){return ym.push(r),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:y}),document.addEventListener("wheel",d,hm),document.addEventListener("touchmove",d,hm),document.addEventListener("touchstart",f,hm),function(){ym=ym.filter(function(x){return x!==r}),document.removeEventListener("wheel",d,hm),document.removeEventListener("touchmove",d,hm),document.removeEventListener("touchstart",f,hm)}},[]);var v=e.removeScrollBar,$=e.inert;return h.createElement(h.Fragment,null,$?h.createElement(r,{styles:Tde(s)}):null,v?h.createElement(vde,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function _de(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const jde=sde(Hz,Pde);var Yh=h.forwardRef(function(e,t){return h.createElement(lw,Gr({},e,{ref:t,sideCar:jde}))});Yh.classNames=lw.classNames;var Nde=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},vm=new WeakMap,sb=new WeakMap,rb={},B1=0,Yz=function(e){return e&&(e.host||Yz(e.parentNode))},Dde=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=Yz(n);return a&&e.contains(a)?a:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Mde=function(e,t,n,a){var s=Dde(t,Array.isArray(e)?e:[e]);rb[n]||(rb[n]=new WeakMap);var r=rb[n],i=[],c=new Set,d=new Set(s),m=function(p){!p||c.has(p)||(c.add(p),m(p.parentNode))};s.forEach(m);var f=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(y){if(c.has(y))f(y);else try{var v=y.getAttribute(a),$=v!==null&&v!=="false",x=(vm.get(y)||0)+1,w=(r.get(y)||0)+1;vm.set(y,x),r.set(y,w),i.push(y),x===1&&$&&sb.set(y,!0),w===1&&y.setAttribute(n,"true"),$||y.setAttribute(a,"true")}catch(S){console.error("aria-hidden: cannot operate on ",y,S)}})};return f(t),c.clear(),B1++,function(){i.forEach(function(p){var y=vm.get(p)-1,v=r.get(p)-1;vm.set(p,y),r.set(p,v),y||(sb.has(p)||p.removeAttribute(a),sb.delete(p)),v||p.removeAttribute(n)}),B1--,B1||(vm=new WeakMap,vm=new WeakMap,sb=new WeakMap,rb={})}},cw=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),s=Nde(e);return s?(a.push.apply(a,Array.from(s.querySelectorAll("[aria-live], script"))),Mde(a,s,n,"aria-hidden")):function(){return null}};function Ede(e){const t=Ide(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(Lde);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function Ide(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=Bde(s),c=Ude(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ode=Symbol("radix.slottable");function Lde(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ode}function Ude(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}
vendor: 4,239 bytes, line 212
212:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function Bde(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var dw="Dialog",[Qz,Xz]=so(dw),[Fde,br]=Qz(dw),Zz=e=>{const{__scopeDialog:t,children:n,open:a,defaultOpen:s,onOpenChange:r,modal:i=!0}=e,c=h.useRef(null),d=h.useRef(null),[m,f]=ts({prop:a,defaultProp:s??!1,onChange:r,caller:dw});return o.jsx(Fde,{scope:t,triggerRef:c,contentRef:d,contentId:To(),titleId:To(),descriptionId:To(),open:m,onOpenChange:f,onOpenToggle:h.useCallback(()=>f(p=>!p),[f]),modal:i,children:n})};Zz.displayName=dw;var Jz="DialogTrigger",e7=h.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,s=br(Jz,n),r=vt(t,s.triggerRef);return o.jsx(st.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":P_(s.open),...a,ref:r,onClick:je(e.onClick,s.onOpenToggle)})});e7.displayName=Jz;var T_="DialogPortal",[zde,t7]=Qz(T_,{forceMount:void 0}),n7=e=>{const{__scopeDialog:t,forceMount:n,children:a,container:s}=e,r=br(T_,t);return o.jsx(zde,{scope:t,forceMount:n,children:h.Children.map(a,i=>o.jsx(za,{present:n||r.open,children:o.jsx(pu,{asChild:!0,container:s,children:i})}))})};n7.displayName=T_;var jx="DialogOverlay",a7=h.forwardRef((e,t)=>{const n=t7(jx,e.__scopeDialog),{forceMount:a=n.forceMount,...s}=e,r=br(jx,e.__scopeDialog);return r.modal?o.jsx(za,{present:a||r.open,children:o.jsx(Hde,{...s,ref:t})}):null});a7.displayName=jx;var qde=Ede("DialogOverlay.RemoveScroll"),Hde=h.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,s=br(jx,n);return o.jsx(Yh,{as:qde,allowPinchZoom:!0,shards:[s.contentRef],children:o.jsx(st.div,{"data-state":P_(s.open),...a,ref:t,style:{pointerEvents:"auto",...a.style}})})}),Xd="DialogContent",o7=h.forwardRef((e,t)=>{const n=t7(Xd,e.__scopeDialog),{forceMount:a=n.forceMount,...s}=e,r=br(Xd,e.__scopeDialog);return o.jsx(za,{present:a||r.open,children:r.modal?o.jsx(Vde,{...s,ref:t}):o.jsx(Kde,{...s,ref:t})})});o7.displayName=Xd;var Vde=h.forwardRef((e,t)=>{const n=br(Xd,e.__scopeDialog),a=h.useRef(null),s=vt(t,n.contentRef,a);return h.useEffect(()=>{const r=a.current;if(r)return cw(r)},[]),o.jsx(s7,{...e,ref:s,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:je(e.onCloseAutoFocus,r=>{r.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:je(e.onPointerDownOutside,r=>{const i=r.detail.originalEvent,c=i.button===0&&i.ctrlKey===!0;(i.button===2||c)&&r.preventDefault()}),onFocusOutside:je(e.onFocusOutside,r=>r.preventDefault())})}),Kde=h.forwardRef((e,t)=>{const n=br(Xd,e.__scopeDialog),a=h.useRef(!1),s=h.useRef(!1);return o.jsx(s7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:r=>{e.onCloseAutoFocus?.(r),r.defaultPrevented||(a.current||n.triggerRef.current?.focus(),r.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:r=>{e.onInteractOutside?.(r),r.defaultPrevented||(a.current=!0,r.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const i=r.target;n.triggerRef.current?.contains(i)&&r.preventDefault(),r.detail.originalEvent.type==="focusin"&&s.current&&r.preventDefault()}})}),s7=h.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:r,...i}=e,c=br(Xd,n),d=h.useRef(null),m=vt(t,d);return iw(),o.jsxs(o.Fragment,{children:[o.jsx(Wh,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:r,children:o.jsx(mu,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":P_(c.open),...i,ref:m,onDismiss:()=>c.onOpenChange(!1)})}),o.jsxs(o.Fragment,{children:[o.jsx(Wde,{titleId:c.titleId}),o.jsx(Qde,{contentRef:d,descriptionId:c.descriptionId})]})]})}),R_="DialogTitle",r7=h.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,s=br(R_,n);return o.jsx(st.h2,{id:s.titleId,...a,ref:t})});r7.displayName=R_;var i7="DialogDescription",l7=h.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,s=br(i7,n);return o.jsx(st.p,{id:s.descriptionId,...a,ref:t})});l7.displayName=i7;var c7="DialogClose",d7=h.forwardRef((e,t)=>
212{const{__scopeDialog:n,...a}=e,s=br(c7,n);return o.jsx(st.button,{type:"button",...a,ref:t,onClick:je(e.onClick,()=>s.onOpenChange(!1))})});d7.displayName=c7;function P_(e){return e?"open":"closed"}var u7="DialogTitleWarning",[Gde,m7]=Rse(u7,{contentName:Xd,titleName:R_,docsSlug:"dialog"}),Wde=({titleId:e})=>{const t=m7(u7),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. 213 214If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. 215 216For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return h.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Yde="DialogDescriptionWarning",Qde=({contentRef:e,descriptionId:t})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${m7(Yde).contentName}}.`;return h.useEffect(()=>{const s=e.current?.getAttribute("aria-describedby");t&&s&&(document.getElementById(t)||console.warn(a))},[a,e,t]),null},__=Zz,p7=e7,j_=n7,uw=a7,mw=o7,pw=r7,Lp=l7,Qh=d7;const Up=__,f7=h.forwardRef(({className:e,...t},n)=>o.jsx(uw,{ref:n,className:X("fixed inset-0 z-overlay bg-[color:var(--foreground)]/40 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",e),...t}));f7.displayName=uw.displayName;const fu=h.forwardRef(({className:e,children:t,"aria-describedby":n,...a},s)=>{const r=n!==void 0||!g7(t)?{"aria-describedby":n}:{};return o.jsxs(j_,{children:[o.jsx(f7,{}),o.jsxs(mw,{ref:s,className:X("fixed left-1/2 top-1/2 z-overlay max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-xl border border-[color:var(--border)] bg-[color:var(--background)] p-4 shadow-[0_18px_60px_rgba(13,17,23,0.12)] focus:outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0 sm:p-6",e),...r,...a,children:[t,o.jsx(Qh,{className:"absolute right-3 top-3 grid size-9 place-items-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:text-[color:var(--foreground)] focus:outline-none focus:ring-2 focus:ring-[color:var(--ring)] sm:right-4 sm:top-4","aria-label":"Close",children:o.jsx(Fh,{className:"size-4"})})]})]})});fu.displayName=mw.displayName;function Xh({className:e,...t}){return o.jsx("div",{className:X("mb-4 flex flex-col gap-1.5",e),...t})}function Xde({className:e,...t}){return o.jsx("div",{className:X("mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const gu=h.forwardRef(({className:e,...t},n)=>o.jsx(pw,{ref:n,className:X("text-base font-semibold",e),...t}));gu.displayName=pw.displayName;const hu=h.forwardRef(({className:e,...t},n)=>o.jsx(Lp,{ref:n,className:X("text-sm text-[color:var(--muted-foreground)]",e),...t}));hu.displayName=Lp.displayName;function g7(e){return h.Children.toArray(e).some(t=>h.isValidElement(t)?t.type===hu||t.type===Lp?!0:g7(t.props.children):!1)}const Vn=__,KBs=p7,h7=Qh,y7=h.forwardRef(({className:e,...t},n)=>o.jsx(uw,{ref:n,className:X("fixed inset-0 z-overlay bg-[color:var(--foreground)]/40 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",e),...t}));y7.displayName="SheetOverlay";const Zde={top:"inset-x-0 top-0 w-full border-b",right:"inset-y-0 right-0 h-full w-[calc(100vw-1rem)] max-w-md border-l sm:w-full",bottom:"inset-x-0 bottom-0 w-full border-t",left:"inset-y-0 left-0 h-full w-[calc(100vw-1rem)] max-w-md border-r sm:w-full",auto:"inset-x-0 bottom-0 h-[85vh] w-full rounded-t-xl border-t md:inset-x-auto md:inset-y-0 md:right-0 md:h-full md:max-w-[560px] md:w-full md:rounded-t-none md:border-l md:border-t-0"},Nn=h.forwardRef(({className:e,children:t,side:n="right",showClose:a=!0,"aria-describedby":s,...r},i)=>{const c=s!==void 0||!v7(t)?{"aria-describedby":s}:{};return o.jsxs(j_,{children:[o.jsx(y7,{}),o.jsxs(mw,{ref:i,"data-side":n,className:X("oh-sheet-content fixed z-overlay flex flex-col overflow-x-hidden overflow-y-auto bg-[color:var(--background)] p-4 pb-[calc(1rem+env(safe-area-inset-bottom))] shadow-[0_18px_60px_rgba(13,17,23,0.12)] focu
216s:outline-none sm:p-6 sm:pb-[calc(1.5rem+env(safe-area-inset-bottom))] [&>*]:min-w-0 [&>*]:max-w-full",Zde[n],e),...c,...r,children:[t,a?o.jsx(Qh,{className:"absolute right-3 top-3 grid size-9 place-items-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:text-[color:var(--foreground)] focus:outline-none focus:ring-2 focus:ring-[color:var(--ring)] sm:right-4 sm:top-4","aria-label":"Close",children:o.jsx(Fh,{className:"size-4"})}):null]})]})});Nn.displayName="SheetContent";function Pa({className:e,...t}){return o.jsx("div",{className:X("mb-4 flex shrink-0 flex-col gap-1.5 pr-8",e),...t})}const Rn=h.forwardRef(({className:e,...t},n)=>o.jsx(pw,{ref:n,className:X("text-base font-semibold",e),...t}));Rn.displayName="SheetTitle";const ua=h.forwardRef(({className:e,...t},n)=>o.jsx(Lp,{ref:n,className:X("text-sm text-[color:var(--muted-foreground)]",e),...t}));ua.displayName="SheetDescription";function v7(e){return h.Children.toArray(e).some(t=>h.isValidElement(t)?t.type===ua||t.type===Lp?!0:v7(t.props.children):!1)}function Jde(e){const t=eue(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(nue);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function eue(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=oue(s),c=aue(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tue=Symbol("radix.slottable");function nue(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tue}function aue(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function oue(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var fw="Popover",[b7]=so(fw,[mi]),Zh=mi(),[sue,Uc]=b7(fw),x7=e=>{const{__scopePopover:t,children:n,open:a,defaultOpen:s,onOpenChange:r,modal:i=!1}=e,c=Zh(t),d=h.useRef(null),[m,f]=h.useState(!1),[p,y]=ts({prop:a,defaultProp:s??!1,onChange:r,caller:fw});return o.jsx(Hh,{...c,children:o.jsx(sue,{scope:t,contentId:To(),triggerRef:d,open:p,onOpenChange:y,onOpenToggle:h.useCallback(()=>y(v=>!v),[y]),hasCustomAnchor:m,onCustomAnchorAdd:h.useCallback(()=>f(!0),[]),onCustomAnchorRemove:h.useCallback(()=>f(!1),[]),modal:i,children:n})})};x7.displayName=fw;var $7="PopoverAnchor",rue=h.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,s=Uc($7,n),r=Zh(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:c}=s;return h.useEffect(()=>(i(),()=>c()),[i,c]),o.jsx(Op,{...r,...a,ref:t})});rue.displayName=$7;var w7="PopoverTrigger",k7=h.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,s=Uc(w7,n),r=Zh(n),i=vt(t,s.triggerRef),c=o.jsx(st.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":R7(s.open),...a,ref:i,onClick:je(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?c:o.jsx(Op,{asChild:!0,...r,children:c})});k7.displayName=w7;var N_="PopoverPortal",[iue,lue]=b7(N_,{forceMount:void 0}),C7=e=>{const{__scopePopover:t,forceMount:n,children:a,container:s}=e,r=Uc(N_,t);return o.jsx(iue,{scope:t,forceMount:n,children:o.jsx(za,{present:n||r.open,children:o.jsx(pu,{asChild:!0,container:s,children:a})})})};C7.displayName=N_;var gp="PopoverContent",S7=h.forwardRef((e,t)=>{const n=lue(gp,e.__scopePopover),{forceMount:a=n.forceMount,...s}=e,r=Uc(gp,e.__scopePopover);return o.jsx(za,{present:a||r.open,children:r.modal?o.jsx(due,{...s,ref:t}):o.jsx(uue,{...s,ref:t})})});S7.displayName=gp;var cue=Jde("PopoverContent.RemoveScroll"),due=h.forwardRef((e,t)=>
vendor: 4,389 bytes, line 216
216{const n=Uc(gp,e.__scopePopover),a=h.useRef(null),s=vt(t,a),r=h.useRef(!1);return h.useEffect(()=>{const i=a.current;if(i)return cw(i)},[]),o.jsx(Yh,{as:cue,allowPinchZoom:!0,children:o.jsx(A7,{...e,ref:s,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:je(e.onCloseAutoFocus,i=>{i.preventDefault(),r.current||n.triggerRef.current?.focus()}),onPointerDownOutside:je(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,d=c.button===0&&c.ctrlKey===!0,m=c.button===2||d;r.current=m},{checkForDefaultPrevented:!1}),onFocusOutside:je(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),uue=h.forwardRef((e,t)=>{const n=Uc(gp,e.__scopePopover),a=h.useRef(!1),s=h.useRef(!1);return o.jsx(A7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:r=>{e.onCloseAutoFocus?.(r),r.defaultPrevented||(a.current||n.triggerRef.current?.focus(),r.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:r=>{e.onInteractOutside?.(r),r.defaultPrevented||(a.current=!0,r.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const i=r.target;n.triggerRef.current?.contains(i)&&r.preventDefault(),r.detail.originalEvent.type==="focusin"&&s.current&&r.preventDefault()}})}),A7=h.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:r,disableOutsidePointerEvents:i,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:m,onInteractOutside:f,...p}=e,y=Uc(gp,n),v=Zh(n);return iw(),o.jsx(Wh,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:s,onUnmountAutoFocus:r,children:o.jsx(mu,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:f,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:m,onDismiss:()=>y.onOpenChange(!1),children:o.jsx(Vh,{"data-state":R7(y.open),role:"dialog",id:y.contentId,...v,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),T7="PopoverClose",mue=h.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,s=Uc(T7,n);return o.jsx(st.button,{type:"button",...a,ref:t,onClick:je(e.onClick,()=>s.onOpenChange(!1))})});mue.displayName=T7;var pue="PopoverArrow",fue=h.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,s=Zh(n);return o.jsx(Kh,{...s,...a,ref:t})});fue.displayName=pue;function R7(e){return e?"open":"closed"}var gue=x7,hue=k7,yue=C7,P7=S7;const Bp=gue,Fp=hue,yu=h.forwardRef(({className:e,sideOffset:t=6,align:n="start",...a},s)=>o.jsx(yue,{children:o.jsx(P7,{ref:s,align:n,sideOffset:t,className:X("z-tooltip min-w-[240px] rounded-lg border border-[color:var(--border)] bg-[color:var(--popover)] p-3 text-sm text-[color:var(--popover-foreground)] shadow-[0_8px_24px_rgba(13,17,23,0.08)] outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",e),...a})}));yu.displayName=P7.displayName;var F1,gw="HoverCard",[_7]=so(gw,[mi]),hw=mi(),[vue,yw]=_7(gw),j7=e=>{const{__scopeHoverCard:t,children:n,open:a,defaultOpen:s,onOpenChange:r,openDelay:i=700,closeDelay:c=300}=e,d=hw(t),m=h.useRef(0),f=h.useRef(0),p=h.useRef(!1),y=h.useRef(!1),[v,$]=ts({prop:a,defaultProp:s??!1,onChange:r,caller:gw}),x=h.useCallback(()=>{clearTimeout(f.current),m.current=window.setTimeout(()=>$(!0),i)},[i,$]),w=h.useCallback(()=>{clearTimeout(m.current),!p.current&&!y.current&&(f.current=window.setTimeout(()=>$(!1),c))},[c,$]),S=h.useCallback(()=>$(!1),[$]);return h.useEffect(()=>()=>{clearTimeout(m.current),clearTimeout(f.current)},[]),o.jsx(vue,{scope:t,open:v,onOpenChange:$,onOpen:x,onClose:w,onDismiss:S,hasSelectionRef:p,isPointerDownOnContentRef:y,children:o.jsx(Hh,{...d,children:n})})};j7.displayName=gw;var N7="HoverCardTrigger",D7=h.forwardRef((e,t)=>{const{__scopeHoverCard:n,...a}=e,s=yw(N7,n),r=hw(n);return o.jsx(Op,{asChild:!0,...r,children:o.jsx(st.a,{"data-state":s.open?"open":"closed",...a,ref:t,onPointerEnter:je(e.onPointerEnter,Dx(s.onOpen)),onPointerLeave:je(e.onPointerLeave,Dx(s.onClose)),onFocus:je(e.onFocus,s.onOpen),onBlur:je(e.onBlur,s.onClose),onTouchStart:je(e.onTouchStart,i=>i.preventDefault())})})});
216D7.displayName=N7;var D_="HoverCardPortal",[bue,xue]=_7(D_,{forceMount:void 0}),M7=e=>{const{__scopeHoverCard:t,forceMount:n,children:a,container:s}=e,r=yw(D_,t);return o.jsx(bue,{scope:t,forceMount:n,children:o.jsx(za,{present:n||r.open,children:o.jsx(pu,{asChild:!0,container:s,children:a})})})};M7.displayName=D_;var Nx="HoverCardContent",E7=h.forwardRef((e,t)=>{const n=xue(Nx,e.__scopeHoverCard),{forceMount:a=n.forceMount,...s}=e,r=yw(Nx,e.__scopeHoverCard);return o.jsx(za,{present:a||r.open,children:o.jsx($ue,{"data-state":r.open?"open":"closed",...s,onPointerEnter:je(e.onPointerEnter,Dx(r.onOpen)),onPointerLeave:je(e.onPointerLeave,Dx(r.onClose)),ref:t})})});E7.displayName=Nx;var $ue=h.forwardRef((e,t)=>{const{__scopeHoverCard:n,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:r,onInteractOutside:i,...c}=e,d=yw(Nx,n),m=hw(n),f=h.useRef(null),p=vt(t,f),[y,v]=h.useState(!1);return h.useEffect(()=>{if(y){const $=document.body;return F1=$.style.userSelect||$.style.webkitUserSelect,$.style.userSelect="none",$.style.webkitUserSelect="none",()=>{$.style.userSelect=F1,$.style.webkitUserSelect=F1}}},[y]),h.useEffect(()=>{if(f.current){const $=()=>{v(!1),d.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(d.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",$),()=>{document.removeEventListener("pointerup",$),d.hasSelectionRef.current=!1,d.isPointerDownOnContentRef.current=!1}}},[d.isPointerDownOnContentRef,d.hasSelectionRef]),h.useEffect(()=>{f.current&&Cue(f.current).forEach(x=>x.setAttribute("tabindex","-1"))}),o.jsx(mu,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:i,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:je(r,$=>{$.preventDefault()}),onDismiss:d.onDismiss,children:o.jsx(Vh,{...m,...c,onPointerDown:je(c.onPointerDown,$=>{$.currentTarget.contains($.target)&&v(!0),d.hasSelectionRef.current=!1,d.isPointerDownOnContentRef.current=!0}),ref:p,style:{...c.style,userSelect:y?"text":void 0,WebkitUserSelect:y?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),wue="HoverCardArrow",kue=h.forwardRef((e,t)=>{const{__scopeHoverCard:n,...a}=e,s=hw(n);return o.jsx(Kh,{...s,...a,ref:t})});kue.displayName=wue;function Dx(e){return t=>t.pointerType==="touch"?void 0:e()}function Cue(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;n.nextNode();)t.push(n.currentNode);return t}var Sue=j7,Aue=D7,Tue=M7,I7=E7;const Ns=Sue,Ds=Aue,ns=h.forwardRef(({className:e,sideOffset:t=6,align:n="start",...a},s)=>o.jsx(Tue,{children:o.jsx(I7,{ref:s,align:n,sideOffset:t,className:X("z-tooltip min-w-[240px] rounded-lg border border-[color:var(--border)] bg-[color:var(--popover)] p-3 text-sm text-[color:var(--popover-foreground)] shadow-[0_8px_24px_rgba(13,17,23,0.08)] outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",e),...a})}));ns.displayName=I7.displayName;var Rue=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pue=Rue.reduce((e,t)=>{const n=u_(`Primitive.${t}`),a=h.forwardRef((s,r)=>{const{asChild:i,...c}=s,d=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(d,{...c,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),_ue="Label",O7=h.forwardRef((e,t)=>o.jsx(Pue.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));O7.displayName=_ue;var L7=O7;const lh=h.forwardRef(({className:e,...t},n)=>o.jsx(L7,{ref:n,className:X("text-sm font-medium leading-none text-[color:var(--foreground)] peer-disabled:cursor-not-allowed peer-disabled:opacity-70",e),...t}));lh.displayName=L7.displayName;const jue=zh("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium leading-none transition-colors",{variants:{variant:{default:"border-transparent bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)]",primary:"border-transparent bg-[color:var(--primary)] text-[color:var(--primary-foreground)]",secondary:"border-transparent bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)]",destructive:"border-transparent bg-[color:var(--destructive-bg)] text-[color:var(--destructive)]",success:"border-transparent bg-[color:var(--success-bg)] text-[color:var(--success)]",warning:"border-transparent bg-[color:var(--warning-bg)] text-[color:var(--warning-foreground)]",outline:"border-[color:var(--border)] bg-transparent text-[color:var(--foreground)]"}},defaultVariants:{variant:"default"}});function Xt({className:e,variant:t,...n}){return o.jsx("span",{className:X(jue({variant:t}),e),...n})}function KO(e){const t=Nue(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(Mue);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function Nue(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=Iue(s),c=Eue(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Due=Symbol("radix.slottable");function Mue(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Due}function Eue(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}
vendor: 10,617 bytes, line 216
216:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function Iue(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function vw(e){const t=e+"CollectionProvider",[n,a]=so(t),[s,r]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=x=>{const{scope:w,children:S}=x,k=Se.useRef(null),T=Se.useRef(new Map).current;return o.jsx(s,{scope:w,itemMap:T,collectionRef:k,children:S})};i.displayName=t;const c=e+"CollectionSlot",d=KO(c),m=Se.forwardRef((x,w)=>{const{scope:S,children:k}=x,T=r(c,S),R=vt(w,T.collectionRef);return o.jsx(d,{ref:R,children:k})});m.displayName=c;const f=e+"CollectionItemSlot",p="data-radix-collection-item",y=KO(f),v=Se.forwardRef((x,w)=>{const{scope:S,children:k,...T}=x,R=Se.useRef(null),_=vt(w,R),P=r(f,S);return Se.useEffect(()=>(P.itemMap.set(R,{ref:R,...T}),()=>void P.itemMap.delete(R))),o.jsx(y,{[p]:"",ref:_,children:k})});v.displayName=f;function $(x){const w=r(e+"CollectionConsumer",x);return Se.useCallback(()=>{const k=w.collectionRef.current;if(!k)return[];const T=Array.from(k.querySelectorAll(`[${p}]`));return Array.from(w.itemMap.values()).sort((P,j)=>T.indexOf(P.ref.current)-T.indexOf(j.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:i,Slot:m,ItemSlot:v},$,a]}var Oue=h.createContext(void 0);function Jh(e){const t=h.useContext(Oue);return e||t||"ltr"}var z1="rovingFocusGroup.onEntryFocus",Lue={bubbles:!1,cancelable:!0},ey="RovingFocusGroup",[ZT,U7,Uue]=vw(ey),[Bue,bw]=so(ey,[Uue]),[Fue,zue]=Bue(ey),B7=h.forwardRef((e,t)=>o.jsx(ZT.Provider,{scope:e.__scopeRovingFocusGroup,children:o.jsx(ZT.Slot,{scope:e.__scopeRovingFocusGroup,children:o.jsx(que,{...e,ref:t})})}));B7.displayName=ey;var que=h.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:a,loop:s=!1,dir:r,currentTabStopId:i,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:d,onEntryFocus:m,preventScrollOnEntryFocus:f=!1,...p}=e,y=h.useRef(null),v=vt(t,y),$=Jh(r),[x,w]=ts({prop:i,defaultProp:c??null,onChange:d,caller:ey}),[S,k]=h.useState(!1),T=oi(m),R=U7(n),_=h.useRef(!1),[P,j]=h.useState(0);return h.useEffect(()=>{const N=y.current;if(N)return N.addEventListener(z1,T),()=>N.removeEventListener(z1,T)},[T]),o.jsx(Fue,{scope:n,orientation:a,dir:$,loop:s,currentTabStopId:x,onItemFocus:h.useCallback(N=>w(N),[w]),onItemShiftTab:h.useCallback(()=>k(!0),[]),onFocusableItemAdd:h.useCallback(()=>j(N=>N+1),[]),onFocusableItemRemove:h.useCallback(()=>j(N=>N-1),[]),children:o.jsx(st.div,{tabIndex:S||P===0?-1:0,"data-orientation":a,...p,ref:v,style:{outline:"none",...e.style},onMouseDown:je(e.onMouseDown,()=>{_.current=!0}),onFocus:je(e.onFocus,N=>{const I=!_.current;if(N.target===N.currentTarget&&I&&!S){const z=new CustomEvent(z1,Lue);if(N.currentTarget.dispatchEvent(z),!z.defaultPrevented){const E=R().filter(q=>q.focusable),L=E.find(q=>q.active),O=E.find(q=>q.id===x),ne=[L,O,...E].filter(Boolean).map(q=>q.ref.current);q7(ne,f)}}_.current=!1}),onBlur:je(e.onBlur,()=>k(!1))})})}),F7="RovingFocusGroupItem",z7=h.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:a=!0,active:s=!1,tabStopId:r,children:i,...c}=e,d=To(),m=r||d,f=zue(F7,n),p=f.currentTabStopId===m,y=U7(n),{onFocusableItemAdd:v,onFocusableItemRemove:$,currentTabStopId:x}=f;return h.useEffect(()=>{if(a)return v(),()=>$()},[a,v,$]),o.jsx(ZT.ItemSlot,{scope:n,id:m,focusable:a,active:s,children:o.jsx(st.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...c,ref:t,onMouseDown:je(e.onMouseDown,w=>{a?f.onItemFocus(m):w.preventDefault()}),onFocus:je(e.onFocus,()=>f.onItemFocus(m)),onKeyDown:je(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){f.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const S=Kue(w,f.orientation,f.dir);if(S!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let T=y().filter(R=>R.focusable).map(R=>R.ref.current);if(S==="last")T.reverse();else if(S==="prev"||S==="next"){S==="prev"&&T.reverse();const R=T.indexOf(w.currentTarget);T=f.loop?Gue(T,R+1):T.slice(R+1)}setTimeout(()=>q7(T))}}),children:typeof i=="function"?i({isCurrentTabStop:p,hasTabStop:x!=null}):i})})});z7.displayName=F7;var Hue={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Vue(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Kue(e,t,n){const a=Vue(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return Hue[a]}function q7(e,t=!1){const n=document.activeElement;for(const a of e)if(a===n||(a.focus({preventScroll:t}),document.activeElement!==n))return}function Gue(e,t){return e.map((n,a)=>e[(t+a)%e.length])}var H7=B7,V7=z7,xw="Tabs",[Wue]=so(xw,[bw]),K7=bw(),[Yue,M_]=Wue(xw),G7=h.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,onValueChange:s,defaultValue:r,orientation:i="horizontal",dir:c,activationMode:d="automatic",...m}=e,f=Jh(c),[p,y]=ts({prop:a,onChange:s,defaultProp:r??"",caller:xw});return o.jsx(Yue,{scope:n,baseId:To(),value:p,onValueChange:y,orientation:i,dir:f,activationMode:d,children:o.jsx(st.div,{dir:f,"data-orientation":i,...m,ref:t})})});G7.displayName=xw;var W7="TabsList",Y7=h.forwardRef((e,t)=>{const{__scopeTabs:n,loop:a=!0,...s}=e,r=M_(W7,n),i=K7(n);return o.jsx(H7,{asChild:!0,...i,orientation:r.orientation,dir:r.dir,loop:a,children:o.jsx(st.div,{role:"tablist","aria-orientation":r.orientation,...s,ref:t})})});Y7.displayName=W7;var Q7="TabsTrigger",X7=h.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,disabled:s=!1,...r}=e,i=M_(Q7,n),c=K7(n),d=eq(i.baseId,a),m=tq(i.baseId,a),f=a===i.value;return o.jsx(V7,{asChild:!0,...c,focusable:!s,active:f,children:o.jsx(st.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:d,...r,ref:t,onMouseDown:je(e.onMouseDown,p=>{!s&&p.button===0&&p.ctrlKey===!1?i.onValueChange(a):p.preventDefault()}),onKeyDown:je(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&i.onValueChange(a)}),onFocus:je(e.onFocus,()=>{const p=i.activationMode!=="manual";!f&&!s&&p&&i.onValueChange(a)})})})});X7.displayName=Q7;var Z7="TabsContent",J7=h.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,forceMount:s,children:r,...i}=e,c=M_(Z7,n),d=eq(c.baseId,a),m=tq(c.baseId,a),f=a===c.value,p=h.useRef(f);return h.useEffect(()=>{const y=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(y)},[]),o.jsx(za,{present:s||f,children:({present:y})=>o.jsx(st.div,{"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!y,id:m,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:y&&r})})});J7.displayName=Z7;function eq(e,t){return`${e}-trigger-${t}`}function tq(e,t){return`${e}-content-${t}`}var Que=G7,nq=Y7,aq=X7,oq=J7;const Cc=Que,Xue="group-data-[variant=segmented]/tabs:h-auto group-data-[variant=segmented]/tabs:flex-1 group-data-[variant=segmented]/tabs:justify-center group-data-[variant=segmented]/tabs:gap-1.5 group-data-[variant=segmented]/tabs:rounded-md group-data-[variant=segmented]/tabs:px-3 group-data-[variant=segmented]/tabs:py-1.5 group-data-[variant=segmented]/tabs:data-[state=active]:bg-[color:var(--background)] group-data-[variant=segmented]/tabs:data-[state=active]:font-semibold group-data-[variant=segmented]/tabs:data-[state=active]:shadow-sm",tl=h.forwardRef(({className:e,children:t,variant:n="underline",...a},s)=>{const r=h.useRef(null),[i,c]=h.useState(null),d=h.useCallback(m=>{r.current=m,typeof s=="function"?s(m):s&&(s.current=m)},[s]);return h.useLayoutEffect(()=>{if(n!=="underline")return;const m=r.current;if(!m)return;const f=()=>{const v=m.querySelector('[role="tab"][data-state="active"]');v&&c({x:v.offsetLeft,w:v.offsetWidth})};f();const p=new ResizeObserver(f);p.observe(m);const y=new MutationObserver(f);return y.observe(m,{subtree:!0,attributes:!0,attributeFilter:["data-state"]}),()=>{p.disconnect(),y.disconnect()}},[n]),o.jsxs(nq,{ref:d,"data-variant":n,className:X("group/tabs relative inline-flex max-w-full",n==="segmented"?"h-auto w-full items-center gap-1 rounded-lg bg-[color:var(--muted)] p-1":"h-auto min-h-10 items-center gap-x-4 overflow-x-auto overflow-y-hidden whitespace-nowrap border-b border-[color:var(--border)] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",e),...a,children:[t,n==="underline"&&i&&o.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute bottom-0 left-0 h-0.5 rounded-full bg-[color:var(--primary)] transition-[transform,width] duration-200 ease-out",style:{transform:`translateX(${i.x}px)`,width:i.w}})]})});tl.displayName=nq.displayName;const ia=h.forwardRef(({className:e,...t},n)=>o.jsx(aq,{ref:n,className:X("relative inline-flex min-h-10 items-center whitespace-nowrap px-1 text-sm font-medium text-[color:var(--muted-foreground)] transition-colors hover:text-[color:var(--foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-[color:var(--foreground)]",Xue,e),...t}));ia.displayName=aq.displayName;const Tn=h.forwardRef(({className:e,...t},n)=>o.jsx(oq,{ref:n,className:X("mt-4 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",e),...t}));Tn.displayName=oq.displayName;function Zue(e){const t=Jue(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(tme);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function Jue(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=ame(s),c=nme(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var eme=Symbol("radix.slottable");function tme(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===eme}function nme(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}
vendor: 15,038 bytes, line 216
216:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function ame(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var JT=["Enter"," "],ome=["ArrowDown","PageUp","Home"],sq=["ArrowUp","PageDown","End"],sme=[...ome,...sq],rme={ltr:[...JT,"ArrowRight"],rtl:[...JT,"ArrowLeft"]},ime={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ty="Menu",[ch,lme,cme]=vw(ty),[vu,rq]=so(ty,[cme,mi,bw]),$w=mi(),iq=bw(),[dme,bu]=vu(ty),[ume,ny]=vu(ty),lq=e=>{const{__scopeMenu:t,open:n=!1,children:a,dir:s,onOpenChange:r,modal:i=!0}=e,c=$w(t),[d,m]=h.useState(null),f=h.useRef(!1),p=oi(r),y=Jh(s);return h.useEffect(()=>{const v=()=>{f.current=!0,document.addEventListener("pointerdown",$,{capture:!0,once:!0}),document.addEventListener("pointermove",$,{capture:!0,once:!0})},$=()=>f.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",$,{capture:!0}),document.removeEventListener("pointermove",$,{capture:!0})}},[]),o.jsx(Hh,{...c,children:o.jsx(dme,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:m,children:o.jsx(ume,{scope:t,onClose:h.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:y,modal:i,children:a})})})};lq.displayName=ty;var mme="MenuAnchor",E_=h.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e,s=$w(n);return o.jsx(Op,{...s,...a,ref:t})});E_.displayName=mme;var I_="MenuPortal",[pme,cq]=vu(I_,{forceMount:void 0}),dq=e=>{const{__scopeMenu:t,forceMount:n,children:a,container:s}=e,r=bu(I_,t);return o.jsx(pme,{scope:t,forceMount:n,children:o.jsx(za,{present:n||r.open,children:o.jsx(pu,{asChild:!0,container:s,children:a})})})};dq.displayName=I_;var _s="MenuContent",[fme,O_]=vu(_s),uq=h.forwardRef((e,t)=>{const n=cq(_s,e.__scopeMenu),{forceMount:a=n.forceMount,...s}=e,r=bu(_s,e.__scopeMenu),i=ny(_s,e.__scopeMenu);return o.jsx(ch.Provider,{scope:e.__scopeMenu,children:o.jsx(za,{present:a||r.open,children:o.jsx(ch.Slot,{scope:e.__scopeMenu,children:i.modal?o.jsx(gme,{...s,ref:t}):o.jsx(hme,{...s,ref:t})})})})}),gme=h.forwardRef((e,t)=>{const n=bu(_s,e.__scopeMenu),a=h.useRef(null),s=vt(t,a);return h.useEffect(()=>{const r=a.current;if(r)return cw(r)},[]),o.jsx(L_,{...e,ref:s,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:je(e.onFocusOutside,r=>r.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),hme=h.forwardRef((e,t)=>{const n=bu(_s,e.__scopeMenu);return o.jsx(L_,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),yme=Zue("MenuContent.ScrollLock"),L_=h.forwardRef((e,t)=>{const{__scopeMenu:n,loop:a=!1,trapFocus:s,onOpenAutoFocus:r,onCloseAutoFocus:i,disableOutsidePointerEvents:c,onEntryFocus:d,onEscapeKeyDown:m,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:y,onDismiss:v,disableOutsideScroll:$,...x}=e,w=bu(_s,n),S=ny(_s,n),k=$w(n),T=iq(n),R=lme(n),[_,P]=h.useState(null),j=h.useRef(null),N=vt(t,j,w.onContentChange),I=h.useRef(0),z=h.useRef(""),E=h.useRef(0),L=h.useRef(null),O=h.useRef("right"),V=h.useRef(0),ne=$?Yh:h.Fragment,q=$?{as:yme,allowPinchZoom:!0}:void 0,M=H=>{const ee=z.current+H,B=R().filter(se=>!se.disabled),G=document.activeElement,Q=B.find(se=>se.ref.current===G)?.textValue,de=B.map(se=>se.textValue),Y=Pme(de,ee,Q),pe=B.find(se=>se.textValue===Y)?.ref.current;(function se(we){z.current=we,window.clearTimeout(I.current),we!==""&&(I.current=window.setTimeout(()=>se(""),1e3))})(ee),pe&&setTimeout(()=>pe.focus())};h.useEffect(()=>()=>window.clearTimeout(I.current),[]),iw();const F=h.useCallback(H=>O.current===L.current?.side&&jme(H,L.current?.area),[]);return o.jsx(fme,{scope:n,searchRef:z,onItemEnter:h.useCallback(H=>{F(H)&&H.preventDefault()},[F]),onItemLeave:h.useCallback(H=>{F(H)||(j.current?.focus(),P(null))},[F]),onTriggerLeave:h.useCallback(H=>{F(H)&&H.preventDefault()},[F]),pointerGraceTimerRef:E,onPointerGraceIntentChange:h.useCallback(H=>{L.current=H},[]),children:o.jsx(ne,{...q,children:o.jsx(Wh,{asChild:!0,trapped:s,onMountAutoFocus:je(r,H=>{H.preventDefault(),j.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:o.jsx(mu,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:m,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:y,onDismiss:v,children:o.jsx(H7,{asChild:!0,...T,dir:S.dir,orientation:"vertical",loop:a,currentTabStopId:_,onCurrentTabStopIdChange:P,onEntryFocus:je(d,H=>{S.isUsingKeyboardRef.current||H.preventDefault()}),preventScrollOnEntryFocus:!0,children:o.jsx(Vh,{role:"menu","aria-orientation":"vertical","data-state":Tq(w.open),"data-radix-menu-content":"",dir:S.dir,...k,...x,ref:N,style:{outline:"none",...x.style},onKeyDown:je(x.onKeyDown,H=>{const B=H.target.closest("[data-radix-menu-content]")===H.currentTarget,G=H.ctrlKey||H.altKey||H.metaKey,Q=H.key.length===1;B&&(H.key==="Tab"&&H.preventDefault(),!G&&Q&&M(H.key));const de=j.current;if(H.target!==de||!sme.includes(H.key))return;H.preventDefault();const pe=R().filter(se=>!se.disabled).map(se=>se.ref.current);sq.includes(H.key)&&pe.reverse(),Tme(pe)}),onBlur:je(e.onBlur,H=>{H.currentTarget.contains(H.target)||(window.clearTimeout(I.current),z.current="")}),onPointerMove:je(e.onPointerMove,dh(H=>{const ee=H.target,B=V.current!==H.clientX;if(H.currentTarget.contains(ee)&&B){const G=H.clientX>V.current?"right":"left";O.current=G,V.current=H.clientX}}))})})})})})})});uq.displayName=_s;var vme="MenuGroup",U_=h.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return o.jsx(st.div,{role:"group",...a,ref:t})});U_.displayName=vme;var bme="MenuLabel",mq=h.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return o.jsx(st.div,{...a,ref:t})});mq.displayName=bme;var Mx="MenuItem",GO="menu.itemSelect",ww=h.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:a,...s}=e,r=h.useRef(null),i=ny(Mx,e.__scopeMenu),c=O_(Mx,e.__scopeMenu),d=vt(t,r),m=h.useRef(!1),f=()=>{const p=r.current;if(!n&&p){const y=new CustomEvent(GO,{bubbles:!0,cancelable:!0});p.addEventListener(GO,v=>a?.(v),{once:!0}),VF(p,y),y.defaultPrevented?m.current=!1:i.onClose()}};return o.jsx(pq,{...s,ref:d,disabled:n,onClick:je(e.onClick,f),onPointerDown:p=>{e.onPointerDown?.(p),m.current=!0},onPointerUp:je(e.onPointerUp,p=>{m.current||p.currentTarget?.click()}),onKeyDown:je(e.onKeyDown,p=>{const y=c.searchRef.current!=="";n||y&&p.key===" "||JT.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ww.displayName=Mx;var pq=h.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:a=!1,textValue:s,...r}=e,i=O_(Mx,n),c=iq(n),d=h.useRef(null),m=vt(t,d),[f,p]=h.useState(!1),[y,v]=h.useState("");return h.useEffect(()=>{const $=d.current;$&&v(($.textContent??"").trim())},[r.children]),o.jsx(ch.ItemSlot,{scope:n,disabled:a,textValue:s??y,children:o.jsx(V7,{asChild:!0,...c,focusable:!a,children:o.jsx(st.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":a||void 0,"data-disabled":a?"":void 0,...r,ref:m,onPointerMove:je(e.onPointerMove,dh($=>{a?i.onItemLeave($):(i.onItemEnter($),$.defaultPrevented||$.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:je(e.onPointerLeave,dh($=>i.onItemLeave($))),onFocus:je(e.onFocus,()=>p(!0)),onBlur:je(e.onBlur,()=>p(!1))})})})}),xme="MenuCheckboxItem",fq=h.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:a,...s}=e;return o.jsx(bq,{scope:e.__scopeMenu,checked:n,children:o.jsx(ww,{role:"menuitemcheckbox","aria-checked":Ex(n)?"mixed":n,...s,ref:t,"data-state":F_(n),onSelect:je(s.onSelect,()=>a?.(Ex(n)?!0:!n),{checkForDefaultPrevented:!1})})})});fq.displayName=xme;var gq="MenuRadioGroup",[$me,wme]=vu(gq,{value:void 0,onValueChange:()=>{}}),hq=h.forwardRef((e,t)=>{const{value:n,onValueChange:a,...s}=e,r=oi(a);return o.jsx($me,{scope:e.__scopeMenu,value:n,onValueChange:r,children:o.jsx(U_,{...s,ref:t})})});hq.displayName=gq;var yq="MenuRadioItem",vq=h.forwardRef((e,t)=>{const{value:n,...a}=e,s=wme(yq,e.__scopeMenu),r=n===s.value;return o.jsx(bq,{scope:e.__scopeMenu,checked:r,children:o.jsx(ww,{role:"menuitemradio","aria-checked":r,...a,ref:t,"data-state":F_(r),onSelect:je(a.onSelect,()=>s.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});vq.displayName=yq;var B_="MenuItemIndicator",[bq,kme]=vu(B_,{checked:!1}),xq=h.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:a,...s}=e,r=kme(B_,n);return o.jsx(za,{present:a||Ex(r.checked)||r.checked===!0,children:o.jsx(st.span,{...s,ref:t,"data-state":F_(r.checked)})})});xq.displayName=B_;var Cme="MenuSeparator",$q=h.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return o.jsx(st.div,{role:"separator","aria-orientation":"horizontal",...a,ref:t})});$q.displayName=Cme;var Sme="MenuArrow",wq=h.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e,s=$w(n);return o.jsx(Kh,{...s,...a,ref:t})});wq.displayName=Sme;var Ame="MenuSub",[GBs,kq]=vu(Ame),Cg="MenuSubTrigger",Cq=h.forwardRef((e,t)=>{const n=bu(Cg,e.__scopeMenu),a=ny(Cg,e.__scopeMenu),s=kq(Cg,e.__scopeMenu),r=O_(Cg,e.__scopeMenu),i=h.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:d}=r,m={__scopeMenu:e.__scopeMenu},f=h.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return h.useEffect(()=>f,[f]),h.useEffect(()=>{const p=c.current;return()=>{window.clearTimeout(p),d(null)}},[c,d]),o.jsx(E_,{asChild:!0,...m,children:o.jsx(pq,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":s.contentId,"data-state":Tq(n.open),...e,ref:di(t,s.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:je(e.onPointerMove,dh(p=>{r.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(r.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:je(e.onPointerLeave,dh(p=>{f();const y=n.content?.getBoundingClientRect();if(y){const v=n.content?.dataset.side,$=v==="right",x=$?-5:5,w=y[$?"left":"right"],S=y[$?"right":"left"];r.onPointerGraceIntentChange({area:[{x:p.clientX+x,y:p.clientY},{x:w,y:y.top},{x:S,y:y.top},{x:S,y:y.bottom},{x:w,y:y.bottom}],side:v}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>r.onPointerGraceIntentChange(null),300)}else{if(r.onTriggerLeave(p),p.defaultPrevented)return;r.onPointerGraceIntentChange(null)}})),onKeyDown:je(e.onKeyDown,p=>{const y=r.searchRef.current!=="";e.disabled||y&&p.key===" "||rme[a.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});Cq.displayName=Cg;var Sq="MenuSubContent",Aq=h.forwardRef((e,t)=>{const n=cq(_s,e.__scopeMenu),{forceMount:a=n.forceMount,...s}=e,r=bu(_s,e.__scopeMenu),i=ny(_s,e.__scopeMenu),c=kq(Sq,e.__scopeMenu),d=h.useRef(null),m=vt(t,d);return o.jsx(ch.Provider,{scope:e.__scopeMenu,children:o.jsx(za,{present:a||r.open,children:o.jsx(ch.Slot,{scope:e.__scopeMenu,children:o.jsx(L_,{id:c.contentId,"aria-labelledby":c.triggerId,...s,ref:m,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{i.isUsingKeyboardRef.current&&d.current?.focus(),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:je(e.onFocusOutside,f=>{f.target!==c.trigger&&r.onOpenChange(!1)}),onEscapeKeyDown:je(e.onEscapeKeyDown,f=>{i.onClose(),f.preventDefault()}),onKeyDown:je(e.onKeyDown,f=>{const p=f.currentTarget.contains(f.target),y=ime[i.dir].includes(f.key);p&&y&&(r.onOpenChange(!1),c.trigger?.focus(),f.preventDefault())})})})})})});Aq.displayName=Sq;function Tq(e){return e?"open":"closed"}function Ex(e){return e==="indeterminate"}function F_(e){return Ex(e)?"indeterminate":e?"checked":"unchecked"}function Tme(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Rme(e,t){return e.map((n,a)=>e[(t+a)%e.length])}function Pme(e,t,n){const s=t.length>1&&Array.from(t).every(m=>m===t[0])?t[0]:t,r=n?e.indexOf(n):-1;let i=Rme(e,Math.max(r,0));s.length===1&&(i=i.filter(m=>m!==n));const d=i.find(m=>m.toLowerCase().startsWith(s.toLowerCase()));return d!==n?d:void 0}function _me(e,t){const{x:n,y:a}=e;let s=!1;for(let r=0,i=t.length-1;r<t.length;i=r++){const c=t[r],d=t[i],m=c.x,f=c.y,p=d.x,y=d.y;f>a!=y>a&&n<(p-m)*(a-f)/(y-f)+m&&(s=!s)}return s}function jme(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return _me(n,t)}function dh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Nme=lq,Dme=E_,Mme=dq,Eme=uq,Ime=U_,Ome=mq,Lme=ww,Ume=fq,Bme=hq,Fme=vq,zme=xq,qme=$q,Hme=wq,Vme=Cq,Kme=Aq,kw="DropdownMenu",[Gme]=so(kw,[rq]),ro=rq(),[Wme,Rq]=Gme(kw),Pq=e=>{const{__scopeDropdownMenu:t,children:n,dir:a,open:s,defaultOpen:r,onOpenChange:i,modal:c=!0}=e,d=ro(t),m=h.useRef(null),[f,p]=ts({prop:s,defaultProp:r??!1,onChange:i,caller:kw});return o.jsx(Wme,{scope:t,triggerId:To(),triggerRef:m,contentId:To(),open:f,onOpenChange:p,onOpenToggle:h.useCallback(()=>p(y=>!y),[p]),modal:c,children:o.jsx(Nme,{...d,open:f,onOpenChange:p,dir:a,modal:c,children:n})})};Pq.displayName=kw;var _q="DropdownMenuTrigger",jq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:a=!1,...s}=e,r=Rq(_q,n),i=ro(n);return o.jsx(Dme,{asChild:!0,...i,children:o.jsx(st.button,{type:"button",id:r.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":r.open?"open":"closed","data-disabled":a?"":void 0,disabled:a,...s,ref:di(t,r.triggerRef),onPointerDown:je(e.onPointerDown,c=>{!a&&c.button===0&&c.ctrlKey===!1&&(r.onOpenToggle(),r.open||c.preventDefault())}),onKeyDown:je(e.onKeyDown,c=>{a||(["Enter"," "].includes(c.key)&&r.onOpenToggle(),c.key==="ArrowDown"&&r.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(c.key)&&c.preventDefault())})})})});jq.displayName=_q;var Yme="DropdownMenuPortal",Nq=e=>{const{__scopeDropdownMenu:t,...n}=e,a=ro(t);return o.jsx(Mme,{...a,...n})};Nq.displayName=Yme;var Dq="DropdownMenuContent",Mq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=Rq(Dq,n),r=ro(n),i=h.useRef(!1);return o.jsx(Eme,{id:s.contentId,"aria-labelledby":s.triggerId,...r,...a,ref:t,onCloseAutoFocus:je(e.onCloseAutoFocus,c=>{i.current||s.triggerRef.current?.focus(),i.current=!1,c.preventDefault()}),onInteractOutside:je(e.onInteractOutside,c=>{const d=c.detail.originalEvent,m=d.button===0&&d.ctrlKey===!0,f=d.button===2||m;(!s.modal||f)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Mq.displayName=Dq;var Qme="DropdownMenuGroup",Xme=h.forwardRef((e,t)=>
216{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Ime,{...s,...a,ref:t})});Xme.displayName=Qme;var Zme="DropdownMenuLabel",Eq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Ome,{...s,...a,ref:t})});Eq.displayName=Zme;var Jme="DropdownMenuItem",Iq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Lme,{...s,...a,ref:t})});Iq.displayName=Jme;var epe="DropdownMenuCheckboxItem",Oq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Ume,{...s,...a,ref:t})});Oq.displayName=epe;var tpe="DropdownMenuRadioGroup",Lq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Bme,{...s,...a,ref:t})});Lq.displayName=tpe;var npe="DropdownMenuRadioItem",Uq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Fme,{...s,...a,ref:t})});Uq.displayName=npe;var ape="DropdownMenuItemIndicator",Bq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(zme,{...s,...a,ref:t})});Bq.displayName=ape;var ope="DropdownMenuSeparator",Fq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(qme,{...s,...a,ref:t})});Fq.displayName=ope;var spe="DropdownMenuArrow",rpe=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Hme,{...s,...a,ref:t})});rpe.displayName=spe;var ipe="DropdownMenuSubTrigger",zq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Vme,{...s,...a,ref:t})});zq.displayName=ipe;var lpe="DropdownMenuSubContent",qq=h.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...a}=e,s=ro(n);return o.jsx(Kme,{...s,...a,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});qq.displayName=lpe;var cpe=Pq,dpe=jq,upe=Nq,Hq=Mq,Vq=Eq,Kq=Iq,Gq=Oq,mpe=Lq,Wq=Uq,Yq=Bq,Qq=Fq,Xq=zq,Zq=qq;const zp=cpe,qp=dpe,ppe=mpe,fpe=h.forwardRef(({className:e,inset:t,children:n,...a},s)=>o.jsxs(Xq,{ref:s,className:X("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-[color:var(--accent)] focus:text-[color:var(--accent-foreground)] data-[state=open]:bg-[color:var(--accent)] data-[state=open]:text-[color:var(--accent-foreground)]",t&&"pl-8",e),...a,children:[n,o.jsx(J$,{className:"ml-auto size-4"})]}));fpe.displayName=Xq.displayName;const gpe=h.forwardRef(({className:e,...t},n)=>o.jsx(Zq,{ref:n,className:X("z-tooltip min-w-32 overflow-hidden rounded-md border border-[color:var(--border)] bg-[color:var(--popover)] p-1 text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",e),...t}));gpe.displayName=Zq.displayName;const xu=h.forwardRef(({className:e,sideOffset:t=4,...n},a)=>o.jsx(upe,{children:o.jsx(Hq,{ref:a,sideOffset:t,className:X("z-tooltip min-w-32 overflow-hidden rounded-md border border-[color:var(--border)] bg-[color:var(--popover)] p-1 text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",e),...n})}));xu.displayName=Hq.displayName;const La=h.forwardRef(({className:e,inset:t,...n},a)=>o.jsx(Kq,{ref:a,className:X("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[color:var(--accent)] focus:text-[color:var(--accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...n}));La.displayName=Kq.displayName;const hpe=h.forwardRef(({className:e,children:t,checked:n,...a},s)=>o.jsxs(Gq,{ref:s,className:X("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-[color:var(--accent)] focus:text-[color:var(--accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...a,children:[o.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:o.jsx(Yq,{children:o.jsx(Ec,{className:"size-4"})})}),t]}));
vendor: 4,105 bytes, lines 216-222
216hpe.displayName=Gq.displayName;const Jq=h.forwardRef(({className:e,children:t,...n},a)=>o.jsxs(Wq,{ref:a,className:X("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-[color:var(--accent)] focus:text-[color:var(--accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[o.jsx("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:o.jsx(Yq,{children:o.jsx(xse,{className:"size-2 fill-current"})})}),t]}));Jq.displayName=Wq.displayName;const ype=h.forwardRef(({className:e,inset:t,...n},a)=>o.jsx(Vq,{ref:a,className:X("px-2 py-1.5 text-xs font-semibold text-[color:var(--muted-foreground)]",t&&"pl-8",e),...n}));ype.displayName=Vq.displayName;const eH=h.forwardRef(({className:e,...t},n)=>o.jsx(Qq,{ref:n,className:X("-mx-1 my-1 h-px bg-[color:var(--border)]",e),...t}));eH.displayName=Qq.displayName;var vpe=Symbol("radix.slottable");function bpe(e){const t=({children:n})=>o.jsx(o.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=vpe,t}var tH="AlertDialog",[xpe]=so(tH,[Xz]),ul=Xz(),nH=e=>{const{__scopeAlertDialog:t,...n}=e,a=ul(t);return o.jsx(__,{...a,...n,modal:!0})};nH.displayName=tH;var $pe="AlertDialogTrigger",wpe=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,s=ul(n);return o.jsx(p7,{...s,...a,ref:t})});wpe.displayName=$pe;var kpe="AlertDialogPortal",aH=e=>{const{__scopeAlertDialog:t,...n}=e,a=ul(t);return o.jsx(j_,{...a,...n})};aH.displayName=kpe;var Cpe="AlertDialogOverlay",oH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,s=ul(n);return o.jsx(uw,{...s,...a,ref:t})});oH.displayName=Cpe;var qm="AlertDialogContent",[Spe,Ape]=xpe(qm),Tpe=bpe("AlertDialogContent"),sH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:a,...s}=e,r=ul(n),i=h.useRef(null),c=vt(t,i),d=h.useRef(null);return o.jsx(Gde,{contentName:qm,titleName:rH,docsSlug:"alert-dialog",children:o.jsx(Spe,{scope:n,cancelRef:d,children:o.jsxs(mw,{role:"alertdialog",...r,...s,ref:c,onOpenAutoFocus:je(s.onOpenAutoFocus,m=>{m.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:m=>m.preventDefault(),onInteractOutside:m=>m.preventDefault(),children:[o.jsx(Tpe,{children:a}),o.jsx(Ppe,{contentRef:i})]})})})});sH.displayName=qm;var rH="AlertDialogTitle",iH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,s=ul(n);return o.jsx(pw,{...s,...a,ref:t})});iH.displayName=rH;var lH="AlertDialogDescription",cH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,s=ul(n);return o.jsx(Lp,{...s,...a,ref:t})});cH.displayName=lH;var Rpe="AlertDialogAction",dH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,s=ul(n);return o.jsx(Qh,{...s,...a,ref:t})});dH.displayName=Rpe;var uH="AlertDialogCancel",mH=h.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,{cancelRef:s}=Ape(uH,n),r=ul(n),i=vt(t,s);return o.jsx(Qh,{...r,...a,ref:i})});mH.displayName=uH;var Ppe=({contentRef:e})=>{const t=`\`${qm}\` requires a description for the component to be accessible for screen reader users. 217 218You can add a description to the \`${qm}\` by passing a \`${lH}\` component as a child, which also benefits sighted users by adding visible context to the dialog. 219 220Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${qm}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. 221 222For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return h.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},_pe=nH,jpe=aH,pH=oH,fH=sH,gH=dH,hH=mH,yH=iH,vH=cH;const Cw=_pe,Npe=jpe,bH=h.forwardRef(({className:e,...t},n)=>o.jsx(pH,{ref:n,className:X("fixed inset-0 z-overlay bg-[color:var(--foreground)]/40",e),...t}));bH.displayName=pH.displayName;const ay=h.forwardRef(({className:e,...t},n)=>
vendor: 4,281 bytes, line 222
222o.jsxs(Npe,{children:[o.jsx(bH,{}),o.jsx(fH,{ref:n,className:X("fixed left-1/2 top-1/2 z-overlay max-h-[calc(100dvh-2rem)] w-[calc(100vw-2rem)] max-w-md -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-xl border border-[color:var(--border)] bg-[color:var(--background)] p-4 shadow-[0_18px_60px_rgba(13,17,23,0.12)] focus:outline-none sm:p-6",e),...t})]}));ay.displayName=fH.displayName;function Sw({className:e,...t}){return o.jsx("div",{className:X("mb-4 flex flex-col gap-1.5",e),...t})}function Aw({className:e,...t}){return o.jsx("div",{className:X("mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const oy=h.forwardRef(({className:e,...t},n)=>o.jsx(yH,{ref:n,className:X("text-base font-semibold",e),...t}));oy.displayName=yH.displayName;const sy=h.forwardRef(({className:e,...t},n)=>o.jsx(vH,{ref:n,className:X("text-sm text-[color:var(--muted-foreground)]",e),...t}));sy.displayName=vH.displayName;const z_=h.forwardRef(({className:e,...t},n)=>o.jsx(gH,{ref:n,className:X(ur(),e),...t}));z_.displayName=gH.displayName;const ry=h.forwardRef(({className:e,...t},n)=>o.jsx(hH,{ref:n,className:X(ur({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));ry.displayName=hH.displayName;function WO(e,[t,n]){return Math.min(n,Math.max(t,e))}function Dpe(e){const t=Mpe(e),n=h.forwardRef((a,s)=>{const{children:r,...i}=a,c=h.Children.toArray(r),d=c.find(Ipe);if(d){const m=d.props.children,f=c.map(p=>p===d?h.Children.count(m)>1?h.Children.only(null):h.isValidElement(m)?m.props.children:null:p);return o.jsx(t,{...i,ref:s,children:h.isValidElement(m)?h.cloneElement(m,void 0,f):null})}return o.jsx(t,{...i,ref:s,children:r})});return n.displayName=`${e}.Slot`,n}function Mpe(e){const t=h.forwardRef((n,a)=>{const{children:s,...r}=n;if(h.isValidElement(s)){const i=Lpe(s),c=Ope(r,s.props);return s.type!==h.Fragment&&(c.ref=a?di(a,i):i),h.cloneElement(s,c)}return h.Children.count(s)>1?h.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Epe=Symbol("radix.slottable");function Ipe(e){return h.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Epe}function Ope(e,t){const n={...t};for(const a in t){const s=e[a],r=t[a];/^on[A-Z]/.test(a)?s&&r?n[a]=(...c)=>{const d=r(...c);return s(...c),d}:s&&(n[a]=s):a==="style"?n[a]={...s,...r}:a==="className"&&(n[a]=[s,r].filter(Boolean).join(" "))}return{...e,...n}}function Lpe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function xH(e){const t=h.useRef({value:e,previous:e});return h.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Upe=[" ","Enter","ArrowUp","ArrowDown"],Bpe=[" ","Enter"],Zd="Select",[Tw,Rw,Fpe]=vw(Zd),[Hp]=so(Zd,[Fpe,mi]),Pw=mi(),[zpe,Bc]=Hp(Zd),[qpe,Hpe]=Hp(Zd),$H=e=>{const{__scopeSelect:t,children:n,open:a,defaultOpen:s,onOpenChange:r,value:i,defaultValue:c,onValueChange:d,dir:m,name:f,autoComplete:p,disabled:y,required:v,form:$}=e,x=Pw(t),[w,S]=h.useState(null),[k,T]=h.useState(null),[R,_]=h.useState(!1),P=Jh(m),[j,N]=ts({prop:a,defaultProp:s??!1,onChange:r,caller:Zd}),[I,z]=ts({prop:i,defaultProp:c,onChange:d,caller:Zd}),E=h.useRef(null),L=w?$||!!w.closest("form"):!0,[O,V]=h.useState(new Set),ne=Array.from(O).map(q=>q.props.value).join(";");return o.jsx(Hh,{...x,children:o.jsxs(zpe,{required:v,scope:t,trigger:w,onTriggerChange:S,valueNode:k,onValueNodeChange:T,valueNodeHasChildren:R,onValueNodeHasChildrenChange:_,contentId:To(),value:I,onValueChange:z,open:j,onOpenChange:N,dir:P,triggerPointerDownPosRef:E,disabled:y,children:[o.jsx(Tw.Provider,{scope:t,children:o.jsx(qpe,{scope:e.__scopeSelect,onNativeOptionAdd:h.useCallback(q=>{V(M=>new Set(M).add(q))},[]),onNativeOptionRemove:h.useCallback(q=>{V(M=>{const F=new Set(M);return F.delete(q),F})},[]),children:n})}),L?o.jsxs(VH,{"aria-hidden":!0,required:v,tabIndex:-1,name:f,autoComplete:p,value:I,onChange:q=>z(q.target.value),disabled:y,form:$,children:[I===void 0?o.jsx("option",{value:""}):null,Array.from(O)]},ne):null]})})};$H.displayName=Zd;var wH="SelectTrigger",kH=h.forwardRef((e,t)=>
vendor: 14,757 bytes, line 222
222{const{__scopeSelect:n,disabled:a=!1,...s}=e,r=Pw(n),i=Bc(wH,n),c=i.disabled||a,d=vt(t,i.onTriggerChange),m=Rw(n),f=h.useRef("touch"),[p,y,v]=GH(x=>{const w=m().filter(T=>!T.disabled),S=w.find(T=>T.value===i.value),k=WH(w,x,S);k!==void 0&&i.onValueChange(k.value)}),$=x=>{c||(i.onOpenChange(!0),v()),x&&(i.triggerPointerDownPosRef.current={x:Math.round(x.pageX),y:Math.round(x.pageY)})};return o.jsx(Op,{asChild:!0,...r,children:o.jsx(st.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":KH(i.value)?"":void 0,...s,ref:d,onClick:je(s.onClick,x=>{x.currentTarget.focus(),f.current!=="mouse"&&$(x)}),onPointerDown:je(s.onPointerDown,x=>{f.current=x.pointerType;const w=x.target;w.hasPointerCapture(x.pointerId)&&w.releasePointerCapture(x.pointerId),x.button===0&&x.ctrlKey===!1&&x.pointerType==="mouse"&&($(x),x.preventDefault())}),onKeyDown:je(s.onKeyDown,x=>{const w=p.current!=="";!(x.ctrlKey||x.altKey||x.metaKey)&&x.key.length===1&&y(x.key),!(w&&x.key===" ")&&Upe.includes(x.key)&&($(),x.preventDefault())})})})});kH.displayName=wH;var CH="SelectValue",SH=h.forwardRef((e,t)=>{const{__scopeSelect:n,className:a,style:s,children:r,placeholder:i="",...c}=e,d=Bc(CH,n),{onValueNodeHasChildrenChange:m}=d,f=r!==void 0,p=vt(t,d.onValueNodeChange);return Ra(()=>{m(f)},[m,f]),o.jsx(st.span,{...c,ref:p,style:{pointerEvents:"none"},children:KH(d.value)?o.jsx(o.Fragment,{children:i}):r})});SH.displayName=CH;var Vpe="SelectIcon",AH=h.forwardRef((e,t)=>{const{__scopeSelect:n,children:a,...s}=e;return o.jsx(st.span,{"aria-hidden":!0,...s,ref:t,children:a||"â¼"})});AH.displayName=Vpe;var Kpe="SelectPortal",TH=e=>o.jsx(pu,{asChild:!0,...e});TH.displayName=Kpe;var Jd="SelectContent",RH=h.forwardRef((e,t)=>{const n=Bc(Jd,e.__scopeSelect),[a,s]=h.useState();if(Ra(()=>{s(new DocumentFragment)},[]),!n.open){const r=a;return r?li.createPortal(o.jsx(PH,{scope:e.__scopeSelect,children:o.jsx(Tw.Slot,{scope:e.__scopeSelect,children:o.jsx("div",{children:e.children})})}),r):null}return o.jsx(_H,{...e,ref:t})});RH.displayName=Jd;var Zs=10,[PH,Fc]=Hp(Jd),Gpe="SelectContentImpl",Wpe=Dpe("SelectContent.RemoveScroll"),_H=h.forwardRef((e,t)=>{const{__scopeSelect:n,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:r,onPointerDownOutside:i,side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:p,collisionBoundary:y,collisionPadding:v,sticky:$,hideWhenDetached:x,avoidCollisions:w,...S}=e,k=Bc(Jd,n),[T,R]=h.useState(null),[_,P]=h.useState(null),j=vt(t,se=>R(se)),[N,I]=h.useState(null),[z,E]=h.useState(null),L=Rw(n),[O,V]=h.useState(!1),ne=h.useRef(!1);h.useEffect(()=>{if(T)return cw(T)},[T]),iw();const q=h.useCallback(se=>{const[we,...me]=L().map(ae=>ae.ref.current),[ye]=me.slice(-1),_e=document.activeElement;for(const ae of se)if(ae===_e||(ae?.scrollIntoView({block:"nearest"}),ae===we&&_&&(_.scrollTop=0),ae===ye&&_&&(_.scrollTop=_.scrollHeight),ae?.focus(),document.activeElement!==_e))return},[L,_]),M=h.useCallback(()=>q([N,T]),[q,N,T]);h.useEffect(()=>{O&&M()},[O,M]);const{onOpenChange:F,triggerPointerDownPosRef:H}=k;h.useEffect(()=>{if(T){let se={x:0,y:0};const we=ye=>{se={x:Math.abs(Math.round(ye.pageX)-(H.current?.x??0)),y:Math.abs(Math.round(ye.pageY)-(H.current?.y??0))}},me=ye=>{se.x<=10&&se.y<=10?ye.preventDefault():T.contains(ye.target)||F(!1),document.removeEventListener("pointermove",we),H.current=null};return H.current!==null&&(document.addEventListener("pointermove",we),document.addEventListener("pointerup",me,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",we),document.removeEventListener("pointerup",me,{capture:!0})}}},[T,F,H]),h.useEffect(()=>{const se=()=>F(!1);return window.addEventListener("blur",se),window.addEventListener("resize",se),()=>{window.removeEventListener("blur",se),window.removeEventListener("resize",se)}},[F]);const[ee,B]=GH(se=>{const we=L().filter(_e=>!_e.disabled),me=we.find(_e=>_e.ref.current===document.activeElement),ye=WH(we,se,me);ye&&setTimeout(()=>ye.ref.current.focus())}),G=h.useCallback((se,we,me)=>{const ye=!ne.current&&!me;(k.value!==void 0&&k.value===we||ye)&&(I(se),ye&&(ne.current=!0))},[k.value]),Q=h.useCallback(()=>T?.focus(),[T]),de=h.useCallback((se,we,me)=>{const ye=!ne.current&&!me;(k.value!==void 0&&k.value===we||ye)&&E(se)},[k.value]),Y=a==="popper"?eR:jH,pe=Y===eR?{side:c,sideOffset:d,align:m,alignOffset:f,arrowPadding:p,collisionBoundary:y,collisionPadding:v,sticky:$,hideWhenDetached:x,avoidCollisions:w}:{};return o.jsx(PH,{scope:n,content:T,viewport:_,onViewportChange:P,itemRefCallback:G,selectedItem:N,onItemLeave:Q,itemTextRefCallback:de,focusSelectedItem:M,selectedItemText:z,position:a,isPositioned:O,searchRef:ee,children:o.jsx(Yh,{as:Wpe,allowPinchZoom:!0,children:o.jsx(Wh,{asChild:!0,trapped:k.open,onMountAutoFocus:se=>{se.preventDefault()},onUnmountAutoFocus:je(s,se=>{k.trigger?.focus({preventScroll:!0}),se.preventDefault()}),children:o.jsx(mu,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:se=>se.preventDefault(),onDismiss:()=>k.onOpenChange(!1),children:o.jsx(Y,{role:"listbox",id:k.contentId,"data-state":k.open?"open":"closed",dir:k.dir,onContextMenu:se=>se.preventDefault(),...S,...pe,onPlaced:()=>V(!0),ref:j,style:{display:"flex",flexDirection:"column",outline:"none",...S.style},onKeyDown:je(S.onKeyDown,se=>{const we=se.ctrlKey||se.altKey||se.metaKey;if(se.key==="Tab"&&se.preventDefault(),!we&&se.key.length===1&&B(se.key),["ArrowUp","ArrowDown","Home","End"].includes(se.key)){let ye=L().filter(_e=>!_e.disabled).map(_e=>_e.ref.current);if(["ArrowUp","End"].includes(se.key)&&(ye=ye.slice().reverse()),["ArrowUp","ArrowDown"].includes(se.key)){const _e=se.target,ae=ye.indexOf(_e);ye=ye.slice(ae+1)}setTimeout(()=>q(ye)),se.preventDefault()}})})})})})})});_H.displayName=Gpe;var Ype="SelectItemAlignedPosition",jH=h.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:a,...s}=e,r=Bc(Jd,n),i=Fc(Jd,n),[c,d]=h.useState(null),[m,f]=h.useState(null),p=vt(t,j=>f(j)),y=Rw(n),v=h.useRef(!1),$=h.useRef(!0),{viewport:x,selectedItem:w,selectedItemText:S,focusSelectedItem:k}=i,T=h.useCallback(()=>{if(r.trigger&&r.valueNode&&c&&m&&x&&w&&S){const j=r.trigger.getBoundingClientRect(),N=m.getBoundingClientRect(),I=r.valueNode.getBoundingClientRect(),z=S.getBoundingClientRect();if(r.dir!=="rtl"){const _e=z.left-N.left,ae=I.left-_e,Je=j.left-ae,Ae=j.width+Je,tt=Math.max(Ae,N.width),Tt=window.innerWidth-Zs,an=WO(ae,[Zs,Math.max(Zs,Tt-tt)]);c.style.minWidth=Ae+"px",c.style.left=an+"px"}else{const _e=N.right-z.right,ae=window.innerWidth-I.right-_e,Je=window.innerWidth-j.right-ae,Ae=j.width+Je,tt=Math.max(Ae,N.width),Tt=window.innerWidth-Zs,an=WO(ae,[Zs,Math.max(Zs,Tt-tt)]);c.style.minWidth=Ae+"px",c.style.right=an+"px"}const E=y(),L=window.innerHeight-Zs*2,O=x.scrollHeight,V=window.getComputedStyle(m),ne=parseInt(V.borderTopWidth,10),q=parseInt(V.paddingTop,10),M=parseInt(V.borderBottomWidth,10),F=parseInt(V.paddingBottom,10),H=ne+q+O+F+M,ee=Math.min(w.offsetHeight*5,H),B=window.getComputedStyle(x),G=parseInt(B.paddingTop,10),Q=parseInt(B.paddingBottom,10),de=j.top+j.height/2-Zs,Y=L-de,pe=w.offsetHeight/2,se=w.offsetTop+pe,we=ne+q+se,me=H-we;if(we<=de){const _e=E.length>0&&w===E[E.length-1].ref.current;c.style.bottom="0px";const ae=m.clientHeight-x.offsetTop-x.offsetHeight,Je=Math.max(Y,pe+(_e?Q:0)+ae+M),Ae=we+Je;c.style.height=Ae+"px"}else{const _e=E.length>0&&w===E[0].ref.current;c.style.top="0px";const Je=Math.max(de,ne+x.offsetTop+(_e?G:0)+pe)+me;c.style.height=Je+"px",x.scrollTop=we-de+x.offsetTop}c.style.margin=`${Zs}px 0`,c.style.minHeight=ee+"px",c.style.maxHeight=L+"px",a?.(),requestAnimationFrame(()=>v.current=!0)}},[y,r.trigger,r.valueNode,c,m,x,w,S,r.dir,a]);Ra(()=>T(),[T]);const[R,_]=h.useState();Ra(()=>{m&&_(window.getComputedStyle(m).zIndex)},[m]);const P=h.useCallback(j=>{j&&$.current===!0&&(T(),k?.(),$.current=!1)},[T,k]);return o.jsx(Xpe,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:v,onScrollButtonChange:P,children:o.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:o.jsx(st.div,{...s,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});jH.displayName=Ype;var Qpe="SelectPopperPosition",eR=h.forwardRef((e,t)=>{const{__scopeSelect:n,align:a="start",collisionPadding:s=Zs,...r}=e,i=Pw(n);return o.jsx(Vh,{...i,...r,ref:t,align:a,collisionPadding:s,style:{boxSizing:"border-box",...r.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});eR.displayName=Qpe;var[Xpe,q_]=Hp(Jd,{}),tR="SelectViewport",NH=h.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:a,...s}=e,r=Fc(tR,n),i=q_(tR,n),c=vt(t,r.onViewportChange),d=h.useRef(0);return o.jsxs(o.Fragment,{children:[o.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),o.jsx(Tw.Slot,{scope:n,children:o.jsx(st.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:je(s.onScroll,m=>{const f=m.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:y}=i;if(y?.current&&p){const v=Math.abs(d.current-f.scrollTop);if(v>0){const $=window.innerHeight-Zs*2,x=parseFloat(p.style.minHeight),w=parseFloat(p.style.height),S=Math.max(x,w);if(S<$){const k=S+v,T=Math.min($,k),R=k-T;p.style.height=T+"px",p.style.bottom==="0px"&&(f.scrollTop=R>0?R:0,p.style.justifyContent="flex-end")}}}d.current=f.scrollTop})})})]})});NH.displayName=tR;var DH="SelectGroup",[Zpe,Jpe]=Hp(DH),efe=h.forwardRef((e,t)=>{const{__scopeSelect:n,...a}=e,s=To();return o.jsx(Zpe,{scope:n,id:s,children:o.jsx(st.div,{role:"group","aria-labelledby":s,...a,ref:t})})});efe.displayName=DH;var MH="SelectLabel",EH=h.forwardRef((e,t)=>{const{__scopeSelect:n,...a}=e,s=Jpe(MH,n);return o.jsx(st.div,{id:s.id,...a,ref:t})});EH.displayName=MH;var Ix="SelectItem",[tfe,IH]=Hp(Ix),OH=h.forwardRef((e,t)=>{const{__scopeSelect:n,value:a,disabled:s=!1,textValue:r,...i}=e,c=Bc(Ix,n),d=Fc(Ix,n),m=c.value===a,[f,p]=h.useState(r??""),[y,v]=h.useState(!1),$=vt(t,k=>d.itemRefCallback?.(k,a,s)),x=To(),w=h.useRef("touch"),S=()=>{s||(c.onValueChange(a),c.onOpenChange(!1))};if(a==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return o.jsx(tfe,{scope:n,value:a,disabled:s,textId:x,isSelected:m,onItemTextChange:h.useCallback(k=>{p(T=>T||(k?.textContent??"").trim())},[]),children:o.jsx(Tw.ItemSlot,{scope:n,value:a,disabled:s,textValue:f,children:o.jsx(st.div,{role:"option","aria-labelledby":x,"data-highlighted":y?"":void 0,"aria-selected":m&&y,"data-state":m?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...i,ref:$,onFocus:je(i.onFocus,()=>v(!0)),onBlur:je(i.onBlur,()=>v(!1)),onClick:je(i.onClick,()=>{w.current!=="mouse"&&S()}),onPointerUp:je(i.onPointerUp,()=>{w.current==="mouse"&&S()}),onPointerDown:je(i.onPointerDown,k=>{w.current=k.pointerType}),onPointerMove:je(i.onPointerMove,k=>{w.current=k.pointerType,s?d.onItemLeave?.():w.current==="mouse"&&k.currentTarget.focus({preventScroll:!0})}),onPointerLeave:je(i.onPointerLeave,k=>{k.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:je(i.onKeyDown,k=>{d.searchRef?.current!==""&&k.key===" "||(Bpe.includes(k.key)&&S(),k.key===" "&&k.preventDefault())})})})})});OH.displayName=Ix;var Sg="SelectItemText",LH=h.forwardRef((e,t)=>{const{__scopeSelect:n,className:a,style:s,...r}=e,i=Bc(Sg,n),c=Fc(Sg,n),d=IH(Sg,n),m=Hpe(Sg,n),[f,p]=h.useState(null),y=vt(t,S=>p(S),d.onItemTextChange,S=>c.itemTextRefCallback?.(S,d.value,d.disabled)),v=f?.textContent,$=h.useMemo(()=>o.jsx("option",{value:d.value,disabled:d.disabled,children:v},d.value),[d.disabled,d.value,v]),{onNativeOptionAdd:x,onNativeOptionRemove:w}=m;return Ra(()=>(x($),()=>w($)),[x,w,$]),o.jsxs(o.Fragment,{children:[o.jsx(st.span,{id:d.textId,...r,ref:y}),d.isSelected&&i.valueNode&&!i.valueNodeHasChildren?li.createPortal(r.children,i.valueNode):null]})});LH.displayName=Sg;var UH="SelectItemIndicator",BH=h.forwardRef((e,t)=>{const{__scopeSelect:n,...a}=e;return IH(UH,n).isSelected?o.jsx(st.span,{"aria-hidden":!0,...a,ref:t}):null});BH.displayName=UH;var nR="SelectScrollUpButton",FH=h.forwardRef((e,t)=>{const n=Fc(nR,e.__scopeSelect),a=q_(nR,e.__scopeSelect),[s,r]=h.useState(!1),i=vt(t,a.onScrollButtonChange);return Ra(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollTop>0;r(m)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),s?o.jsx(qH,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop-d.offsetHeight)}}):null});FH.displayName=nR;var aR="SelectScrollDownButton",zH=h.forwardRef((e,t)=>{const n=Fc(aR,e.__scopeSelect),a=q_(aR,e.__scopeSelect),[s,r]=h.useState(!1),i=vt(t,a.onScrollButtonChange);return Ra(()=>{if(n.viewport&&n.isPositioned){let c=function(){const m=d.scrollHeight-d.clientHeight,f=Math.ceil(d.scrollTop)<m;r(f)};const d=n.viewport;return c(),d.addEventListener("scroll",c),()=>d.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),s?o.jsx(qH,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:d}=n;c&&d&&(c.scrollTop=c.scrollTop+d.offsetHeight)}}):null});zH.displayName=aR;var qH=h.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:a,...s}=e,r=Fc("SelectScrollButton",n),i=h.useRef(null),c=Rw(n),d=h.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return h.useEffect(()=>()=>d(),[d]),Ra(()=>{c().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),o.jsx(st.div,{"aria-hidden":!0,...s,ref:t,style:{flexShrink:0,...s.style},onPointerDown:je(s.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(a,50))}),onPointerMove:je(s.onPointerMove,()=>{r.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(a,50))}),onPointerLeave:je(s.onPointerLeave,()=>{d()})})}),nfe="SelectSeparator",HH=h.forwardRef((e,t)=>
vendor: 4,108 bytes, line 222
222{const{__scopeSelect:n,...a}=e;return o.jsx(st.div,{"aria-hidden":!0,...a,ref:t})});HH.displayName=nfe;var oR="SelectArrow",afe=h.forwardRef((e,t)=>{const{__scopeSelect:n,...a}=e,s=Pw(n),r=Bc(oR,n),i=Fc(oR,n);return r.open&&i.position==="popper"?o.jsx(Kh,{...s,...a,ref:t}):null});afe.displayName=oR;var ofe="SelectBubbleInput",VH=h.forwardRef(({__scopeSelect:e,value:t,...n},a)=>{const s=h.useRef(null),r=vt(a,s),i=xH(t);return h.useEffect(()=>{const c=s.current;if(!c)return;const d=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(d,"value").set;if(i!==t&&f){const p=new Event("change",{bubbles:!0});f.call(c,t),c.dispatchEvent(p)}},[i,t]),o.jsx(st.select,{...n,style:{...hz,...n.style},ref:r,defaultValue:t})});VH.displayName=ofe;function KH(e){return e===""||e===void 0}function GH(e){const t=oi(e),n=h.useRef(""),a=h.useRef(0),s=h.useCallback(i=>{const c=n.current+i;t(c),(function d(m){n.current=m,window.clearTimeout(a.current),m!==""&&(a.current=window.setTimeout(()=>d(""),1e3))})(c)},[t]),r=h.useCallback(()=>{n.current="",window.clearTimeout(a.current)},[]);return h.useEffect(()=>()=>window.clearTimeout(a.current),[]),[n,s,r]}function WH(e,t,n){const s=t.length>1&&Array.from(t).every(m=>m===t[0])?t[0]:t,r=n?e.indexOf(n):-1;let i=sfe(e,Math.max(r,0));s.length===1&&(i=i.filter(m=>m!==n));const d=i.find(m=>m.textValue.toLowerCase().startsWith(s.toLowerCase()));return d!==n?d:void 0}function sfe(e,t){return e.map((n,a)=>e[(t+a)%e.length])}var rfe=$H,YH=kH,ife=SH,lfe=AH,cfe=TH,QH=RH,dfe=NH,XH=EH,ZH=OH,YO=LH,ufe=BH,JH=FH,eV=zH,tV=HH;const Ms=rfe,Es=ife,as=h.forwardRef(({className:e,children:t,...n},a)=>o.jsxs(YH,{ref:a,className:X("flex h-10 w-full min-w-0 items-center justify-between gap-2 rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 text-sm text-[color:var(--foreground)] outline-none transition-colors placeholder:text-[color:var(--muted-foreground)] hover:bg-[color:var(--muted)]/30 focus-visible:border-[color:var(--ring)] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:min-w-0 [&>span]:max-w-full [&>span]:line-clamp-1 [&>span]:text-left",e),...n,children:[t,o.jsx(lfe,{asChild:!0,children:o.jsx(Ic,{className:"size-4 shrink-0 opacity-60"})})]}));as.displayName=YH.displayName;const nV=h.forwardRef(({className:e,...t},n)=>o.jsx(JH,{ref:n,className:X("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(bse,{className:"size-4"})}));nV.displayName=JH.displayName;const aV=h.forwardRef(({className:e,...t},n)=>o.jsx(eV,{ref:n,className:X("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(Ic,{className:"size-4"})}));aV.displayName=eV.displayName;const os=h.forwardRef(({className:e,children:t,position:n="popper",...a},s)=>o.jsx(cfe,{children:o.jsxs(QH,{ref:s,className:X("relative z-tooltip max-h-96 min-w-[8rem] max-w-[calc(100vw-1rem)] overflow-hidden rounded-md border border-[color:var(--border)] bg-[color:var(--popover)] text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",n==="popper"&&"min-w-[var(--radix-select-trigger-width)] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...a,children:[o.jsx(nV,{}),o.jsx(dfe,{className:X("min-w-0 p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),o.jsx(aV,{})]})}));os.displayName=QH.displayName;const mfe=h.forwardRef(({className:e,...t},n)=>o.jsx(XH,{ref:n,className:X("px-2 py-1.5 text-xs font-semibold text-[color:var(--muted-foreground)]",e),...t}));mfe.displayName=XH.displayName;const zn=h.forwardRef(({className:e,children:t,description:n,textClassName:a,descriptionClassName:s,...r},i)=>o.jsxs(ZH,{ref:i,className:X("relative flex min-h-11 w-full min-w-0 cursor-default select-none items-start rounded-sm py-1.5 pl-8 pr-2 text-sm [word-break:break-all] outline-none focus:bg-[color:var(--accent)] focus:text-[color:var(--accent-foreground)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 md:min-
222h-9 [&_[data-radix-select-item-text]]:min-w-0 [&_[data-radix-select-item-text]]:whitespace-normal [&_[data-radix-select-item-text]]:[word-break:break-all]",e),...r,children:[o.jsx("span",{className:"absolute left-2 top-2 flex size-3.5 items-center justify-center",children:o.jsx(ufe,{children:o.jsx(Ec,{className:"size-4"})})}),n?o.jsxs("span",{className:"flex min-w-0 flex-col gap-0.5",children:[o.jsx(YO,{asChild:!0,children:o.jsx("span",{className:X("block min-w-0 whitespace-normal [word-break:break-all]",a),children:t})}),o.jsx("span",{className:X("min-w-0 break-words text-2xs text-[color:var(--muted-foreground)]",s),children:n})]}):o.jsx(YO,{asChild:!0,children:o.jsx("span",{className:X("block min-w-0 whitespace-normal [word-break:break-all]",a),children:t})})]}));zn.displayName=ZH.displayName;const pfe=h.forwardRef(({className:e,...t},n)=>o.jsx(tV,{ref:n,className:X("-mx-1 my-1 h-px bg-[color:var(--border)]",e),...t}));pfe.displayName=tV.displayName;var ffe=e=>{switch(e){case"success":return yfe;case"info":return bfe;case"warning":return vfe;case"error":return xfe;default:return null}},gfe=Array(12).fill(0),hfe=({visible:e,className:t})=>Se.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},Se.createElement("div",{className:"sonner-spinner"},gfe.map((n,a)=>Se.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),yfe=Se.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Se.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),vfe=Se.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Se.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),bfe=Se.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Se.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),xfe=Se.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Se.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),$fe=Se.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},Se.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Se.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),wfe=()=>{let[e,t]=Se.useState(document.hidden);return Se.useEffect(()=>{let n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},sR=1,kfe=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...a}=e,s=typeof e?.id=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:sR++,r=this.toasts.find(c=>c.id===s),i=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(s)&&this.dismissedToasts.delete(s),r?this.toasts=this.toasts.map(c=>c.id===s?(this.publish({...c,...e,id:s,title:n}),{...c,...e,id:s,dismissible:i,title:n}):c):this.addToast({title:n,...a,dismissible:i,id:s}),s},this.dismiss=e=>
222(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let a=e instanceof Promise?e:e(),s=n!==void 0,r,i=a.then(async d=>{if(r=["resolve",d],Se.isValidElement(d))s=!1,this.create({id:n,type:"default",message:d});else if(Sfe(d)&&!d.ok){s=!1;let m=typeof t.error=="function"?await t.error(`HTTP error! status: ${d.status}`):t.error,f=typeof t.description=="function"?await t.description(`HTTP error! status: ${d.status}`):t.description;this.create({id:n,type:"error",message:m,description:f})}else if(t.success!==void 0){s=!1;let m=typeof t.success=="function"?await t.success(d):t.success,f=typeof t.description=="function"?await t.description(d):t.description;this.create({id:n,type:"success",message:m,description:f})}}).catch(async d=>{if(r=["reject",d],t.error!==void 0){s=!1;let m=typeof t.error=="function"?await t.error(d):t.error,f=typeof t.description=="function"?await t.description(d):t.description;this.create({id:n,type:"error",message:m,description:f})}}).finally(()=>{var d;s&&(this.dismiss(n),n=void 0),(d=t.finally)==null||d.call(t)}),c=()=>new Promise((d,m)=>i.then(()=>r[0]==="reject"?m(r[1]):d(r[1])).catch(m));return typeof n!="string"&&typeof n!="number"?{unwrap:c}:Object.assign(n,{unwrap:c})},this.custom=(e,t)=>{let n=t?.id||sR++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},$o=new kfe,Cfe=(e,t)=>{let n=t?.id||sR++;return $o.addToast({title:e,...t,id:n}),n},Sfe=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Afe=Cfe,Tfe=()=>$o.toasts,Rfe=()=>$o.getActiveToasts(),ie=Object.assign(Afe,{success:$o.success,info:$o.info,warning:$o.warning,error:$o.error,custom:$o.custom,message:$o.message,promise:$o.promise,dismiss:$o.dismiss,loading:$o.loading},{getHistory:Tfe,getToasts:Rfe});function Pfe(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}Pfe(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
222left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
222:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
222--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 223`);function ib(e){return e.label!==void 0}var _fe=3,jfe="32px",Nfe="16px",QO=4e3,Dfe=356,Mfe=14,Efe=20,Ife=200;function Ys(...e){return e.filter(Boolean).join(" ")}function Ofe(e){let[t,n]=e.split("-"),a=[];return t&&a.push(t),n&&a.push(n),a}var Lfe=e=>{var t,n,a,s,r,i,c,d,m,f,p;let{invert:y,toast:v,unstyled:$,interacting:x,setHeights:w,visibleToasts:S,heights:k,index:T,toasts:R,expanded:_,removeToast:P,defaultRichColors:j,closeButton:N,style:I,cancelButtonStyle:z,actionButtonStyle:E,className:L="",descriptionClassName:O="",duration:V,position:ne,gap:q,loadingIcon:M,expandByDefault:F,classNames:H,icons:ee,closeButtonAriaLabel:B="Close toast",pauseWhenPageIsHidden:G}=e,[Q,de]=Se.useState(null),[Y,pe]=Se.useState(null),[se,we]=Se.useState(!1),[me,ye]=Se.useState(!1),[_e,ae]=Se.useState(!1),[Je,Ae]=Se.useState(!1),[tt,Tt]=Se.useState(!1),[an,ta]=Se.useState(0),[lo,qs]=Se.useState(0),yt=Se.useRef(v.duration||V||QO),fe=Se.useRef(null),Ne=Se.useRef(null),rt=T===0,na=T+1<=S,cn=v.type,vn=v.dismissible!==!1,ds=v.className||"",Vc=v.descriptionClassName||"",Kc=Se.useMemo(()=>k.findIndex(nt=>nt.toastId===v.id)||0,[k,v.id]),Q0=Se.useMemo(()=>{var nt;return(nt=v.closeButton)!=null?nt:N},[v.closeButton,N]),Ey=Se.useMemo(()=>v.duration||V||QO,[v.duration,V]),hi=Se.useRef(0),Mn=Se.useRef(0),Hs=Se.useRef(0),En=Se.useRef(null),[X0,Z0]=ne.split("-"),Iy=Se.useMemo(()=>k.reduce((nt,Et,Jt)=>Jt>
223=Kc?nt:nt+Et.height,0),[k,Kc]),Gc=wfe(),_u=v.invert||y,vl=cn==="loading";Mn.current=Se.useMemo(()=>Kc*q+Iy,[Kc,Iy]),Se.useEffect(()=>{yt.current=Ey},[Ey]),Se.useEffect(()=>{we(!0)},[]),Se.useEffect(()=>{let nt=Ne.current;if(nt){let Et=nt.getBoundingClientRect().height;return qs(Et),w(Jt=>[{toastId:v.id,height:Et,position:v.position},...Jt]),()=>w(Jt=>Jt.filter(Wa=>Wa.toastId!==v.id))}},[w,v.id]),Se.useLayoutEffect(()=>{if(!se)return;let nt=Ne.current,Et=nt.style.height;nt.style.height="auto";let Jt=nt.getBoundingClientRect().height;nt.style.height=Et,qs(Jt),w(Wa=>Wa.find(ha=>ha.toastId===v.id)?Wa.map(ha=>ha.toastId===v.id?{...ha,height:Jt}:ha):[{toastId:v.id,height:Jt,position:v.position},...Wa])},[se,v.title,v.description,w,v.id]);let _a=Se.useCallback(()=>{ye(!0),ta(Mn.current),w(nt=>nt.filter(Et=>Et.toastId!==v.id)),setTimeout(()=>{P(v)},Ife)},[v,P,w,Mn]);Se.useEffect(()=>{if(v.promise&&cn==="loading"||v.duration===1/0||v.type==="loading")return;let nt;return _||x||G&&Gc?(()=>{if(Hs.current<hi.current){let Et=new Date().getTime()-hi.current;yt.current=yt.current-Et}Hs.current=new Date().getTime()})():yt.current!==1/0&&(hi.current=new Date().getTime(),nt=setTimeout(()=>{var Et;(Et=v.onAutoClose)==null||Et.call(v,v),_a()},yt.current)),()=>clearTimeout(nt)},[_,x,v,cn,G,Gc,_a]),Se.useEffect(()=>{v.delete&&_a()},[_a,v.delete]);function ju(){var nt,Et,Jt;return ee!=null&&ee.loading?Se.createElement("div",{className:Ys(H?.loader,(nt=v?.classNames)==null?void 0:nt.loader,"sonner-loader"),"data-visible":cn==="loading"},ee.loading):M?Se.createElement("div",{className:Ys(H?.loader,(Et=v?.classNames)==null?void 0:Et.loader,"sonner-loader"),"data-visible":cn==="loading"},M):Se.createElement(hfe,{className:Ys(H?.loader,(Jt=v?.classNames)==null?void 0:Jt.loader),visible:cn==="loading"})}return Se.createElement("li",{tabIndex:0,ref:Ne,className:Ys(L,ds,H?.toast,(t=v?.classNames)==null?void 0:t.toast,H?.default,H?.[cn],(n=v?.classNames)==null?void 0:n[cn]),"data-sonner-toast":"","data-rich-colors":(a=v.richColors)!=null?a:j,"data-styled":!(v.jsx||v.unstyled||$),"data-mounted":se,"data-promise":!!v.promise,"data-swiped":tt,"data-removed":me,"data-visible":na,"data-y-position":X0,"data-x-position":Z0,"data-index":T,"data-front":rt,"data-swiping":_e,"data-dismissible":vn,"data-type":cn,"data-invert":_u,"data-swipe-out":Je,"data-swipe-direction":Y,"data-expanded":!!(_||F&&se),style:{"--index":T,"--toasts-before":T,"--z-index":R.length-T,"--offset":`${me?an:Mn.current}px`,"--initial-height":F?"auto":`${lo}px`,...I,...v.style},onDragEnd:()=>{ae(!1),de(null),En.current=null},onPointerDown:nt=>{vl||!vn||(fe.current=new Date,ta(Mn.current),nt.target.setPointerCapture(nt.pointerId),nt.target.tagName!=="BUTTON"&&(ae(!0),En.current={x:nt.clientX,y:nt.clientY}))},onPointerUp:()=>{var nt,Et,Jt,Wa;if(Je||!vn)return;En.current=null;let ha=Number(((nt=Ne.current)==null?void 0:nt.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Rr=Number(((Et=Ne.current)==null?void 0:Et.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Pr=new Date().getTime()-((Jt=fe.current)==null?void 0:Jt.getTime()),co=Q==="x"?ha:Rr,Vs=Math.abs(co)/Pr;if(Math.abs(co)>=Efe||Vs>.11){ta(Mn.current),(Wa=v.onDismiss)==null||Wa.call(v,v),pe(Q==="x"?ha>0?"right":"left":Rr>0?"down":"up"),_a(),Ae(!0),Tt(!1);return}ae(!1),de(null)},onPointerMove:nt=>{var Et,Jt,Wa,ha;if(!En.current||!vn||((Et=window.getSelection())==null?void 0:Et.toString().length)>0)return;let Rr=nt.clientY-En.current.y,Pr=nt.clientX-En.current.x,co=(Jt=e.swipeDirections)!=null?Jt:Ofe(ne);!Q&&(Math.abs(Pr)>1||Math.abs(Rr)>1)&&de(Math.abs(Pr)>Math.abs(Rr)?"x":"y");let Vs={x:0,y:0};Q==="y"?(co.includes("top")||co.includes("bottom"))&&(co.includes("top")&&Rr<0||co.includes("bottom")&&Rr>0)&&(Vs.y=Rr):Q==="x"&&(co.includes("left")||co.includes("right"))&&(co.includes("left")&&Pr<0||co.includes("right")&&Pr>0)&&(Vs.x=Pr),(Math.abs(Vs.x)>0||Math.abs(Vs.y)>0)&&Tt(!0),(Wa=Ne.current)==null||Wa.style.setProperty("--swipe-amount-x",`${Vs.x}px`),(ha=Ne.current)==null||ha.style.setProperty("--swipe-amount-y",`${Vs.y}px`)}},Q0&&!v.jsx?Se.createElement("button",{"aria-label":B,"data-disabled":vl,"data-close-button":!0,onClick:vl||!vn?()=>{}:()=>{var nt;_a(),(nt=v.onDismiss)==null||nt.call(v,v)},className:Ys(H?.closeButton,(s=v?.classNames)==null?void 0:s.closeButton)},(r=ee?.close)!=null?r:$fe):null,v.jsx||h.isValidElement(v.title)?v.jsx?v.jsx:typeof v.t
223itle=="function"?v.title():v.title:Se.createElement(Se.Fragment,null,cn||v.icon||v.promise?Se.createElement("div",{"data-icon":"",className:Ys(H?.icon,(i=v?.classNames)==null?void 0:i.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||ju():null,v.type!=="loading"?v.icon||ee?.[cn]||ffe(cn):null):null,Se.createElement("div",{"data-content":"",className:Ys(H?.content,(c=v?.classNames)==null?void 0:c.content)},Se.createElement("div",{"data-title":"",className:Ys(H?.title,(d=v?.classNames)==null?void 0:d.title)},typeof v.title=="function"?v.title():v.title),v.description?Se.createElement("div",{"data-description":"",className:Ys(O,Vc,H?.description,(m=v?.classNames)==null?void 0:m.description)},typeof v.description=="function"?v.description():v.description):null),h.isValidElement(v.cancel)?v.cancel:v.cancel&&ib(v.cancel)?Se.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||z,onClick:nt=>{var Et,Jt;ib(v.cancel)&&vn&&((Jt=(Et=v.cancel).onClick)==null||Jt.call(Et,nt),_a())},className:Ys(H?.cancelButton,(f=v?.classNames)==null?void 0:f.cancelButton)},v.cancel.label):null,h.isValidElement(v.action)?v.action:v.action&&ib(v.action)?Se.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||E,onClick:nt=>{var Et,Jt;ib(v.action)&&((Jt=(Et=v.action).onClick)==null||Jt.call(Et,nt),!nt.defaultPrevented&&_a())},className:Ys(H?.actionButton,(p=v?.classNames)==null?void 0:p.actionButton)},v.action.label):null))};function XO(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Ufe(e,t){let n={};return[e,t].forEach((a,s)=>{let r=s===1,i=r?"--mobile-offset":"--offset",c=r?Nfe:jfe;function d(m){["top","right","bottom","left"].forEach(f=>{n[`${i}-${f}`]=typeof m=="number"?`${m}px`:m})}typeof a=="number"||typeof a=="string"?d(a):typeof a=="object"?["top","right","bottom","left"].forEach(m=>{a[m]===void 0?n[`${i}-${m}`]=c:n[`${i}-${m}`]=typeof a[m]=="number"?`${a[m]}px`:a[m]}):d(c)}),n}var Bfe=h.forwardRef(function(e,t){let{invert:n,position:a="bottom-right",hotkey:s=["altKey","KeyT"],expand:r,closeButton:i,className:c,offset:d,mobileOffset:m,theme:f="light",richColors:p,duration:y,style:v,visibleToasts:$=_fe,toastOptions:x,dir:w=XO(),gap:S=Mfe,loadingIcon:k,icons:T,containerAriaLabel:R="Notifications",pauseWhenPageIsHidden:_}=e,[P,j]=Se.useState([]),N=Se.useMemo(()=>Array.from(new Set([a].concat(P.filter(G=>G.position).map(G=>G.position)))),[P,a]),[I,z]=Se.useState([]),[E,L]=Se.useState(!1),[O,V]=Se.useState(!1),[ne,q]=Se.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),M=Se.useRef(null),F=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),H=Se.useRef(null),ee=Se.useRef(!1),B=Se.useCallback(G=>{j(Q=>{var de;return(de=Q.find(Y=>Y.id===G.id))!=null&&de.delete||$o.dismiss(G.id),Q.filter(({id:Y})=>Y!==G.id)})},[]);return Se.useEffect(()=>$o.subscribe(G=>{if(G.dismiss){j(Q=>Q.map(de=>de.id===G.id?{...de,delete:!0}:de));return}setTimeout(()=>{iF.flushSync(()=>{j(Q=>{let de=Q.findIndex(Y=>Y.id===G.id);return de!==-1?[...Q.slice(0,de),{...Q[de],...G},...Q.slice(de+1)]:[G,...Q]})})})}),[]),Se.useEffect(()=>{if(f!=="system"){q(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?q("dark"):q("light")),typeof window>"u")return;let G=window.matchMedia("(prefers-color-scheme: dark)");try{G.addEventListener("change",({matches:Q})=>{q(Q?"dark":"light")})}catch{G.addListener(({matches:de})=>{try{q(de?"dark":"light")}catch(Y){console.error(Y)}})}},[f]),Se.useEffect(()=>{P.length<=1&&L(!1)},[P]),Se.useEffect(()=>{let G=Q=>{var de,Y;s.every(pe=>Q[pe]||Q.code===pe)&&(L(!0),(de=M.current)==null||de.focus()),Q.code==="Escape"&&(document.activeElement===M.current||(Y=M.current)!=null&&Y.contains(document.activeElement))&&L(!1)};return document.addEventListener("keydown",G),()=>document.removeEventListener("keydown",G)},[s]),Se.useEffect(()=>{if(M.current)return()=>{H.current&&(H.current.focus({preventScroll:!0}),H.current=null,ee.current=!1)}},[M.current]),Se.createElement("section",{ref:t,"aria-label":`${R} ${F}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},N.map((G,Q)=>{var de;let[Y,pe]=G.split("-");return P.length?Se.createElement("ol",{key:G,dir:w==="auto"?XO():w,tabIndex:-1,ref:M,className:c,"data-sonner-toaster":!0,"data-theme":ne,"data-y-position":Y,"data-lifted":E&&P.length>1&&!r,"data-x-position":pe,style:{"--front-toast-height":`${((de=I[0])==null?void 0:de.height)||0}px`,"--width":`${Dfe}px`,"--gap":`${S}px`,...v,...Ufe(d,m)},onBlur:se=>{ee.current&&!se.currentTarget.contains(se.relatedTarget)&&(ee.current=!1,H.
vendor: 4,572 bytes, line 223
223current&&(H.current.focus({preventScroll:!0}),H.current=null))},onFocus:se=>{se.target instanceof HTMLElement&&se.target.dataset.dismissible==="false"||ee.current||(ee.current=!0,H.current=se.relatedTarget)},onMouseEnter:()=>L(!0),onMouseMove:()=>L(!0),onMouseLeave:()=>{O||L(!1)},onDragEnd:()=>L(!1),onPointerDown:se=>{se.target instanceof HTMLElement&&se.target.dataset.dismissible==="false"||V(!0)},onPointerUp:()=>V(!1)},P.filter(se=>!se.position&&Q===0||se.position===G).map((se,we)=>{var me,ye;return Se.createElement(Lfe,{key:se.id,icons:T,index:we,toast:se,defaultRichColors:p,duration:(me=x?.duration)!=null?me:y,className:x?.className,descriptionClassName:x?.descriptionClassName,invert:n,visibleToasts:$,closeButton:(ye=x?.closeButton)!=null?ye:i,interacting:O,position:G,style:x?.style,unstyled:x?.unstyled,classNames:x?.classNames,cancelButtonStyle:x?.cancelButtonStyle,actionButtonStyle:x?.actionButtonStyle,removeToast:B,toasts:P.filter(_e=>_e.position==se.position),heights:I.filter(_e=>_e.position==se.position),setHeights:z,expandByDefault:r,gap:S,loadingIcon:k,expanded:E,pauseWhenPageIsHidden:_,swipeDirections:e.swipeDirections})})):null}))});function Ffe(e){return o.jsx(Bfe,{position:"top-right",closeButton:!0,richColors:!1,toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-[color:var(--card)] group-[.toaster]:text-[color:var(--card-foreground)] group-[.toaster]:border group-[.toaster]:border-[color:var(--border)] group-[.toaster]:shadow-[0_18px_60px_rgba(13,17,23,0.12)]",description:"group-[.toast]:text-[color:var(--muted-foreground)]",actionButton:"group-[.toast]:bg-[color:var(--primary)] group-[.toast]:text-[color:var(--primary-foreground)]",cancelButton:"group-[.toast]:bg-[color:var(--muted)] group-[.toast]:text-[color:var(--muted-foreground)]",success:"group-[.toaster]:!border-l-2 group-[.toaster]:!border-l-[color:var(--success)]",error:"group-[.toaster]:!border-l-2 group-[.toaster]:!border-l-[color:var(--destructive)]",warning:"group-[.toaster]:!border-l-2 group-[.toaster]:!border-l-[color:var(--warning-foreground)]",info:"group-[.toaster]:!border-l-2 group-[.toaster]:!border-l-[color:var(--link)]"}},...e})}const _o=h.forwardRef(({className:e,...t},n)=>o.jsx("textarea",{ref:n,className:X("flex min-h-20 w-full rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 py-2 text-sm text-[color:var(--foreground)] outline-none transition-colors placeholder:text-[color:var(--muted-foreground)] focus-visible:border-[color:var(--ring)] disabled:cursor-not-allowed disabled:opacity-50",e),...t}));_o.displayName="Textarea";var _w="Switch",[zfe]=so(_w),[qfe,Hfe]=zfe(_w),oV=h.forwardRef((e,t)=>{const{__scopeSwitch:n,name:a,checked:s,defaultChecked:r,required:i,disabled:c,value:d="on",onCheckedChange:m,form:f,...p}=e,[y,v]=h.useState(null),$=vt(t,T=>v(T)),x=h.useRef(!1),w=y?f||!!y.closest("form"):!0,[S,k]=ts({prop:s,defaultProp:r??!1,onChange:m,caller:_w});return o.jsxs(qfe,{scope:n,checked:S,disabled:c,children:[o.jsx(st.button,{type:"button",role:"switch","aria-checked":S,"aria-required":i,"data-state":lV(S),"data-disabled":c?"":void 0,disabled:c,value:d,...p,ref:$,onClick:je(e.onClick,T=>{k(R=>!R),w&&(x.current=T.isPropagationStopped(),x.current||T.stopPropagation())})}),w&&o.jsx(iV,{control:y,bubbles:!x.current,name:a,value:d,checked:S,required:i,disabled:c,form:f,style:{transform:"translateX(-100%)"}})]})});oV.displayName=_w;var sV="SwitchThumb",rV=h.forwardRef((e,t)=>{const{__scopeSwitch:n,...a}=e,s=Hfe(sV,n);return o.jsx(st.span,{"data-state":lV(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t})});rV.displayName=sV;var Vfe="SwitchBubbleInput",iV=h.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:a=!0,...s},r)=>{const i=h.useRef(null),c=vt(i,r),d=xH(n),m=rz(t);return h.useEffect(()=>{const f=i.current;if(!f)return;const p=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&v){const $=new Event("click",{bubbles:a});v.call(f,n),f.dispatchEvent($)}},[d,n,a]),o.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...s,tabIndex:-1,ref:c,style:{...s.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});iV.displayName=Vfe;function lV(e){return e?"checked":"unchecked"}var cV=oV,Kfe=rV;const js=h.forwardRef(({className:e,...t},n)=>o.jsx(cV,{ref:n,className:X("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] focu
223s-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[color:var(--primary)] data-[state=unchecked]:bg-[color:var(--muted)]",e),...t,children:o.jsx(Kfe,{className:X("pointer-events-none block size-4 rounded-full bg-[color:var(--background)] shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));js.displayName=cV.displayName;var q1={exports:{}},H1={};/** 224 * @license React 225 * use-sync-external-store-shim.production.js 226 * 227 * Copyright (c) Meta Platforms, Inc. and affiliates. 228 * 229 * This source code is licensed under the MIT license found in the 230 * LICENSE file in the root directory of this source tree. 231 */var ZO;function Gfe(){if(ZO)return H1;ZO=1;var e=jp();function t(p,y){return p===y&&(p!==0||1/p===1/y)||p!==p&&y!==y}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,s=e.useEffect,r=e.useLayoutEffect,i=e.useDebugValue;function c(p,y){var v=y(),$=a({inst:{value:v,getSnapshot:y}}),x=$[0].inst,w=$[1];return r(function(){x.value=v,x.getSnapshot=y,d(x)&&w({inst:x})},[p,v,y]),s(function(){return d(x)&&w({inst:x}),p(function(){d(x)&&w({inst:x})})},[p]),i(v),v}function d(p){var y=p.getSnapshot;p=p.value;try{var v=y();return!n(p,v)}catch{return!0}}function m(p,y){return y()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:c;return H1.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,H1}var JO;function dV(){return JO||(JO=1,q1.exports=Gfe()),q1.exports}var Wfe=dV();function Yfe(e,t=[]){let n=[];function a(r,i){const c=h.createContext(i);c.displayName=r+"Context";const d=n.length;n=[...n,i];const m=p=>{const{scope:y,children:v,...$}=p,x=y?.[e]?.[d]||c,w=h.useMemo(()=>$,Object.values($));return o.jsx(x.Provider,{value:w,children:v})};m.displayName=r+"Provider";function f(p,y){const v=y?.[e]?.[d]||c,$=h.useContext(v);if($)return $;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${r}\``)}return[m,f]}const s=()=>{const r=n.map(i=>h.createContext(i));return function(c){const d=c?.[e]||r;return h.useMemo(()=>({[`__scope${e}`]:{...c,[e]:d}}),[c,d])}};return s.scopeName=e,[a,Qfe(s,...t)]}function Qfe(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const a=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(r){const i=a.reduce((c,{useScope:d,scopeName:m})=>{const p=d(r)[`__scope${m}`];return{...c,...p}},{});return h.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var Xfe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],uV=Xfe.reduce((e,t)=>{const n=u_(`Primitive.${t}`),a=h.forwardRef((s,r)=>{const{asChild:i,...c}=s,d=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(d,{...c,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),H_="Progress",V_=100,[Zfe]=Yfe(H_),[Jfe,ege]=Zfe(H_),mV=h.forwardRef((e,t)=>{const{__scopeProgress:n,value:a=null,max:s,getValueLabel:r=tge,...i}=e;(s||s===0)&&!e3(s)&&console.error(nge(`${s}`,"Progress"));const c=e3(s)?s:V_;a!==null&&!t3(a,c)&&console.error(age(`${a}`,"Progress"));const d=t3(a,c)?a:null,m=Ox(d)?r(d,c):void 0;return o.jsx(Jfe,{scope:n,value:d,max:c,children:o.jsx(uV.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":Ox(d)?d:void 0,"aria-valuetext":m,role:"progressbar","data-state":gV(d,c),"data-value":d??void 0,"data-max":c,...i,ref:t})})});mV.displayName=H_;var pV="ProgressIndicator",fV=h.forwardRef((e,t)=>{const{__scopeProgress:n,...a}=e,s=ege(pV,n);return o.jsx(uV.div,{"data-state":gV(s.value,s.max),"data-value":s.value??void 0,"data-max":s.max,...a,ref:t})});fV.displayName=pV;function tge(e,t){return`${Math.round(e/t*100)}%`}function gV(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Ox(e){return typeof e=="number"}function e3(e){return Ox(e)&&!isNaN(e)&&e>0}function t3(e,t){return Ox(e)&&!isNaN(e)&&e<=t&&e>=0}function nge(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${V_}\`.`}function age(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: 232 - a positive number 233 - less than the value passed to \`max\` (or ${V_} if no \`max\` prop is set) 234 - \`null\` or \`undefined\` if the progress is indeterminate. 235 236Defaulting to \`null\`.`}var hV=mV,oge=fV;const iy=h.forwardRef(({className:e,indicatorClassName:t,value:n,...a},s)=>o.jsx(hV,{ref:s,className:X("relative h-2 w-full overflow-hidden rounded-full bg-[color:var(--muted)]",e),...a,children:o.jsx(oge,{className:X("h-full w-full flex-1 bg-[color:var(--primary)] transition-transform",t),style:{transform:`translateX(-${100-(n??0)}%)`}})}));iy.displayName=hV.displayName;function sge(e,t){const n=t.trim();return!n||e.includes(n)?e:[...e,n]}
236const K_=h.forwardRef(({value:e,onChange:t,suggestions:n=[],placeholder:a,disabled:s,removeLabel:r="Remove",className:i,"aria-label":c},d)=>{const[m,f]=h.useState(""),p=h.useId(),y=n.filter($=>!e.includes($)),v=$=>{const x=sge(e,$);x!==e&&t(x),f("")};return o.jsxs("div",{className:X("flex flex-wrap items-center gap-1.5 rounded-md border border-[color:var(--input)] bg-[color:var(--background)] p-2",s&&"cursor-not-allowed opacity-50",i),children:[e.map($=>o.jsxs(Xt,{variant:"secondary",className:"gap-1",children:[$,o.jsx("button",{type:"button","aria-label":`${r} ${$}`,disabled:s,onClick:()=>t(e.filter(x=>x!==$)),className:"rounded-sm text-[color:var(--muted-foreground)] outline-none transition-colors hover:text-[color:var(--foreground)] focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:o.jsx(Fh,{className:"size-3"})})]},$)),o.jsx("input",{ref:d,value:m,list:y.length?p:void 0,disabled:s,"aria-label":c,placeholder:a,onChange:$=>f($.target.value),onBlur:()=>v(m),onKeyDown:$=>{$.key==="Enter"||$.key===","?($.preventDefault(),v(m)):$.key==="Backspace"&&!m&&e.length&&t(e.slice(0,-1))},className:X(ew,"h-auto min-w-24 flex-1 border-0 bg-transparent p-0 focus-visible:ring-0")}),y.length?o.jsx("datalist",{id:p,children:y.map($=>o.jsx("option",{value:$},$))}):null]})});K_.displayName="TagInput";function rge(e){return typeof e=="string"?{value:e}:e}function ly({value:e,onChange:t,options:n,placeholder:a,allLabel:s="All",emptyText:r="No options.",triggerLabel:i,disabled:c,className:d,"aria-label":m}){const f=n.map(rge),p=e.length===0,y=$=>{t(e.includes($)?e.filter(x=>x!==$):[...e,$])},v=i?i(e):p?a??s:`${e.length} selected`;return o.jsxs(Bp,{children:[o.jsx(Fp,{asChild:!0,children:o.jsxs(K,{type:"button",variant:"outline",disabled:c,"aria-label":m,className:X("w-full min-w-0 justify-between font-normal",d),children:[o.jsx("span",{className:"min-w-0 truncate",children:v}),o.jsx(Ic,{className:"size-4 shrink-0 opacity-60","aria-hidden":!0})]})}),o.jsxs(yu,{align:"start",className:"max-h-80 w-[--radix-popover-trigger-width] min-w-0 max-w-[calc(100vw-1rem)] overflow-y-auto p-2 sm:min-w-[240px]",children:[o.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-md border-b border-[color:var(--border)] px-2 py-2 text-sm font-medium",children:[o.jsx(Zn,{checked:p,onChange:()=>t([]),"aria-label":s}),o.jsx("span",{className:"min-w-0 break-words",children:s})]}),o.jsx("div",{className:"mt-1 flex flex-col gap-0.5",children:f.length===0?o.jsx("p",{className:"px-2 py-2 text-xs text-[color:var(--muted-foreground)]",children:r}):f.map($=>o.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-[color:var(--muted)]",children:[o.jsx(Zn,{checked:e.includes($.value),onChange:()=>y($.value),"aria-label":typeof $.label=="string"?$.label:$.value}),o.jsx("span",{className:"min-w-0 break-words",children:$.label??$.value})]},$.value))})]})]})}const V1=[];function yV({value:e,onChange:t,items:n=V1,onSearch:a,isLoading:s,placeholder:r="Selectâ¦",searchPlaceholder:i="Searchâ¦",emptyText:c="No results.",loadingText:d="Searchingâ¦",debounceMs:m=250,disabled:f,className:p,"aria-label":y}){const[v,$]=h.useState(!1),[x,w]=h.useState(""),[S,k]=h.useState(V1),[T,R]=h.useState(!1),[_,P]=h.useState(0),j=h.useRef(null),N=h.useRef(null),I=h.useRef(0),z=h.useId(),E=h.useMemo(()=>new Set(e.map(F=>F.id)),[e]),L=h.useRef(a);h.useEffect(()=>{L.current=a}),h.useEffect(()=>{const F=L.current;if(!F||!v)return;let H=!0;const ee=++I.current;R(!0);const B=setTimeout(async()=>{try{const G=await F(x);H&&ee===I.current&&k(G??V1)}finally{H&&ee===I.current&&R(!1)}},m);return()=>{H=!1,clearTimeout(B)}},[x,v,m]);const O=h.useMemo(()=>{if(a)return S;const F=x.trim().toLowerCase();return F?n.filter(H=>H.label.toLowerCase().includes(F)||(H.hint?.toLowerCase().includes(F)??!1)):n},[a,S,n,x]);h.useEffect(()=>{P(F=>F>=O.length?0:F)},[O.length]);const V=!!s||T,ne=F=>{t(E.has(F.id)?e.filter(H=>H.id!==F.id):[...e,F])},q=F=>t(e.filter(H=>H.id!==F)),M=F=>{if(F.key==="ArrowDown")F.preventDefault(),P(H=>Math.min(H+1,O.length-1));else if(F.key==="ArrowUp")F.preventDefault(),P(H=>Math.max(H-1,0));else if(F.key==="Enter"){F.preventDefault();const H=O[_];H&&ne(H)}};return h.useEffect(()=>{if(!v||!N.current)return;N.current.querySelector(`[data-index="${_}"]`)?.scrollIntoView({block:"nearest"})},[_,v]),o.jsxs(Bp,{open:v,onOpenChange:$,children:[o.jsx(Fp,{asChild:!0,children:o.jsxs(K,{type:"button",variant:"outline",disabled:f,"aria-label":y,"aria-haspopup":"listbox","aria-expanded":v,className:X("h-auto min-h-11 w-full min-w-0 justify-between gap-2 px-3 py-2 font-normal",p),children:[e.length===0?o.jsx("span",{className:"min-w-0 truncate text-[color:var(--muted-foreground)]",children:r}):o.jsx("span",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1.5",children:e.map(F=>o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-1 rounded-sm border border-[color:var(--border)] bg-[color:var(--muted)] px-1.5 py-0.5 text-xs",children:[o.jsx("span",{className:"min-w-0 truncate",children:F.label}),o.jsx("span",{role:"button",tabIndex:0,"aria-label":`Remove ${F.label}`,className:"grid size-4 place-items-center rounded-sm text-[color:var(--muted-foreground)] hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",onClick:H=>{H.stopPropagation(),q(F.id)},onKeyDown:H=>{(H.key==="Enter"||H.key===" ")&&(H.preventDefault(),H.stopPropagation(),q(F.id))},children:o.jsx(Fh,{className:"size-3","aria-hidden":!0})})]},F.id))}),o.jsx(Ic,{className:"size-4 shrink-0 opacity-60","aria-hidden":!0})]})}),o.jsxs(yu,{align:"start",className:"w-[--radix-popover-trigger-width] min-w-0 max-w-[calc(100vw-1rem)] p-0 sm:min-w-[260px]",onOpenAutoFocus:
236F=>{F.preventDefault(),j.current?.focus()},children:[o.jsx("div",{className:"border-b border-[color:var(--border)] p-2",children:o.jsxs("div",{className:"relative",children:[o.jsx(Cse,{className:"pointer-events-none absolute inset-y-0 left-0 my-auto ml-3 size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("input",{ref:j,value:x,onChange:F=>w(F.target.value),onKeyDown:M,placeholder:i,role:"combobox","aria-expanded":v,"aria-controls":z,"aria-activedescendant":O[_]?`${z}-${_}`:void 0,className:X(ew,"h-11 pl-9")})]})}),o.jsx("ul",{ref:N,id:z,role:"listbox","aria-multiselectable":!0,className:"max-h-72 overflow-y-auto p-1",children:V?o.jsxs("li",{className:"flex items-center gap-2 px-2 py-3 text-sm text-[color:var(--muted-foreground)]",children:[o.jsx(f_,{className:"size-4 animate-spin","aria-hidden":!0}),d]}):O.length===0?o.jsx("li",{className:"px-2 py-3 text-sm text-[color:var(--muted-foreground)]",children:c}):O.map((F,H)=>{const ee=E.has(F.id);return o.jsxs("li",{id:`${z}-${H}`,"data-index":H,role:"option","aria-selected":ee,onMouseEnter:()=>P(H),onClick:()=>ne(F),className:X("flex min-h-11 cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm",H===_&&"bg-[color:var(--accent)] text-[color:var(--accent-foreground)]"),children:[o.jsx("span",{className:X("grid size-4 shrink-0 place-items-center rounded border",ee?"border-[color:var(--primary)] bg-[color:var(--primary)] text-[color:var(--primary-foreground)]":"border-[color:var(--input)]"),"aria-hidden":!0,children:ee?o.jsx(Ec,{className:"size-3"}):null}),o.jsxs("span",{className:"min-w-0 flex-1",children:[o.jsx("span",{className:"block break-words",children:F.label}),F.hint?o.jsx("span",{className:"block break-words text-xs text-[color:var(--muted-foreground)]",children:F.hint}):null]})]},F.id)})})]})]})}const ige=zh("relative w-full rounded-md border p-4 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:size-4 [&>svg]:text-[color:var(--foreground)] [&>svg~*]:pl-7",{variants:{variant:{default:"border-[color:var(--border)] bg-[color:var(--muted)] text-[color:var(--foreground)]",destructive:"border-[color:var(--destructive)]/30 bg-[color:var(--destructive-bg)] text-[color:var(--destructive)] [&>svg]:text-[color:var(--destructive)]",warning:"border-[color:var(--warning)]/30 bg-[color:var(--warning-bg)] text-[color:var(--warning-foreground)] [&>svg]:text-[color:var(--warning-foreground)]",success:"border-[color:var(--success)]/30 bg-[color:var(--success-bg)] text-[color:var(--success)] [&>svg]:text-[color:var(--success)]"}},defaultVariants:{variant:"default"}}),Hm=h.forwardRef(({className:e,variant:t,...n},a)=>o.jsx("div",{ref:a,role:"alert",className:X(ige({variant:t}),e),...n}));Hm.displayName="Alert";const lge=h.forwardRef(({className:e,...t},n)=>o.jsx("h5",{ref:n,className:X("mb-1 font-medium leading-none tracking-tight",e),...t}));lge.displayName="AlertTitle";const cge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("text-sm [&_p]:leading-relaxed",e),...t}));cge.displayName="AlertDescription";var jw="Collapsible",[dge,vV]=so(jw),[uge,G_]=dge(jw),bV=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:a,defaultOpen:s,disabled:r,onOpenChange:i,...c}=e,[d,m]=ts({prop:a,defaultProp:s??!1,onChange:i,caller:jw});return o.jsx(uge,{scope:n,disabled:r,contentId:To(),open:d,onOpenToggle:h.useCallback(()=>m(f=>!f),[m]),children:o.jsx(st.div,{"data-state":Y_(d),"data-disabled":r?"":void 0,...c,ref:t})})});bV.displayName=jw;var xV="CollapsibleTrigger",$V=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,...a}=e,s=G_(xV,n);return o.jsx(st.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":Y_(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...a,ref:t,onClick:je(e.onClick,s.onOpenToggle)})});$V.displayName=xV;var W_="CollapsibleContent",wV=h.forwardRef((e,t)=>{const{forceMount:n,...a}=e,s=G_(W_,e.__scopeCollapsible);return o.jsx(za,{present:n||s.open,children:({present:r})=>o.jsx(mge,{...a,ref:t,present:r})})});wV.displayName=W_;var mge=h.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:a,children:s,...r}=e,i=G_(W_,n),[c,d]=h.useState(a),m=h.useRef(null),f=vt(t,m),p=h.useRef(0),y=p.current,v=h.useRef(0),$=v.current,x=i.open||c,w=h.useRef(x),S=h.useRef(void 0);return h.useEffect(()=>{const k=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(k)},[]),Ra(()=>{const k=m.current;if(k){S.current=S.current||{transitionDuration:k.style.transitionDuration,animationName:k.style.animationName},k.style.transitionDuration="0s",k.style.animationName="none";const T=k.getBoundingClientRect();p.current=T.height,v.current=T.width,w.current||(k.style.transitionDuration=S.current.transitionDuration,k.style.animationName=S.current.animationName),d(a)}},[i.open,a]),o.jsx(st.div,{"data-state":Y_(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!x,...r,ref:f,style:{"--radix-collapsible-content-height":y?`${y}px`:void 0,"--radix-collapsible-content-width":$?`${$}px`:void 0,...e.style},children:x&&s})});function Y_(e){return e?"open":"closed"}var pge=bV,fge=$V,gge=wV,xr="Accordion",hge=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[Q_,yge,vge]=vw(xr),[Nw]=so(xr,[vge,vV]),X_=vV(),kV=Se.forwardRef((e,t)=>
236{const{type:n,...a}=e,s=a,r=a;return o.jsx(Q_.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?o.jsx(wge,{...r,ref:t}):o.jsx($ge,{...s,ref:t})})});kV.displayName=xr;var[CV,bge]=Nw(xr),[SV,xge]=Nw(xr,{collapsible:!1}),$ge=Se.forwardRef((e,t)=>{const{value:n,defaultValue:a,onValueChange:s=()=>{},collapsible:r=!1,...i}=e,[c,d]=ts({prop:n,defaultProp:a??"",onChange:s,caller:xr});return o.jsx(CV,{scope:e.__scopeAccordion,value:Se.useMemo(()=>c?[c]:[],[c]),onItemOpen:d,onItemClose:Se.useCallback(()=>r&&d(""),[r,d]),children:o.jsx(SV,{scope:e.__scopeAccordion,collapsible:r,children:o.jsx(AV,{...i,ref:t})})})}),wge=Se.forwardRef((e,t)=>{const{value:n,defaultValue:a,onValueChange:s=()=>{},...r}=e,[i,c]=ts({prop:n,defaultProp:a??[],onChange:s,caller:xr}),d=Se.useCallback(f=>c((p=[])=>[...p,f]),[c]),m=Se.useCallback(f=>c((p=[])=>p.filter(y=>y!==f)),[c]);return o.jsx(CV,{scope:e.__scopeAccordion,value:i,onItemOpen:d,onItemClose:m,children:o.jsx(SV,{scope:e.__scopeAccordion,collapsible:!0,children:o.jsx(AV,{...r,ref:t})})})}),[kge,Dw]=Nw(xr),AV=Se.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:a,dir:s,orientation:r="vertical",...i}=e,c=Se.useRef(null),d=vt(c,t),m=yge(n),p=Jh(s)==="ltr",y=je(e.onKeyDown,v=>{if(!hge.includes(v.key))return;const $=v.target,x=m().filter(N=>!N.ref.current?.disabled),w=x.findIndex(N=>N.ref.current===$),S=x.length;if(w===-1)return;v.preventDefault();let k=w;const T=0,R=S-1,_=()=>{k=w+1,k>R&&(k=T)},P=()=>{k=w-1,k<T&&(k=R)};switch(v.key){case"Home":k=T;break;case"End":k=R;break;case"ArrowRight":r==="horizontal"&&(p?_():P());break;case"ArrowDown":r==="vertical"&&_();break;case"ArrowLeft":r==="horizontal"&&(p?P():_());break;case"ArrowUp":r==="vertical"&&P();break}const j=k%S;x[j].ref.current?.focus()});return o.jsx(kge,{scope:n,disabled:a,direction:s,orientation:r,children:o.jsx(Q_.Slot,{scope:n,children:o.jsx(st.div,{...i,"data-orientation":r,ref:d,onKeyDown:a?void 0:y})})})}),Lx="AccordionItem",[Cge,Z_]=Nw(Lx),TV=Se.forwardRef((e,t)=>{const{__scopeAccordion:n,value:a,...s}=e,r=Dw(Lx,n),i=bge(Lx,n),c=X_(n),d=To(),m=a&&i.value.includes(a)||!1,f=r.disabled||e.disabled;return o.jsx(Cge,{scope:n,open:m,disabled:f,triggerId:d,children:o.jsx(pge,{"data-orientation":r.orientation,"data-state":DV(m),...c,...s,ref:t,disabled:f,open:m,onOpenChange:p=>{p?i.onItemOpen(a):i.onItemClose(a)}})})});TV.displayName=Lx;var RV="AccordionHeader",PV=Se.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,s=Dw(xr,n),r=Z_(RV,n);return o.jsx(st.h3,{"data-orientation":s.orientation,"data-state":DV(r.open),"data-disabled":r.disabled?"":void 0,...a,ref:t})});PV.displayName=RV;var rR="AccordionTrigger",_V=Se.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,s=Dw(xr,n),r=Z_(rR,n),i=xge(rR,n),c=X_(n);return o.jsx(Q_.ItemSlot,{scope:n,children:o.jsx(fge,{"aria-disabled":r.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:r.triggerId,...c,...a,ref:t})})});_V.displayName=rR;var jV="AccordionContent",NV=Se.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,s=Dw(xr,n),r=Z_(jV,n),i=X_(n);return o.jsx(gge,{role:"region","aria-labelledby":r.triggerId,"data-orientation":s.orientation,...i,...a,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});NV.displayName=jV;function DV(e){return e?"open":"closed"}var Sge=kV,Age=TV,Tge=PV,MV=_V,EV=NV;const IV=Sge,J_=h.forwardRef(({className:e,...t},n)=>o.jsx(Age,{ref:n,className:X("border-b border-[color:var(--border)]",e),...t}));J_.displayName="AccordionItem";const ej=h.forwardRef(({className:e,children:t,...n},a)=>o.jsx(Tge,{className:"flex",children:o.jsxs(MV,{ref:a,className:X("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,o.jsx(Ic,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)] transition-transform duration-200"})]})}));ej.displayName=MV.displayName;const tj=h.forwardRef(({className:e,children:t,...n},a)=>o.jsx(EV,{ref:a,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:o.jsx("div",{className:X("pb-4 pt-0",e),children:t})}));tj.displayName=EV.displayName;const nj=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("rounded-xl border border-[color:var(--border)] bg-[color:var(--card)] text-[color:var(--card-foreground)]",e),...t}));
236nj.displayName="Card";const Rge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("flex flex-col gap-1.5 p-6",e),...t}));Rge.displayName="CardHeader";const Pge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("text-base font-semibold leading-none tracking-tight",e),...t}));Pge.displayName="CardTitle";const _ge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("text-sm text-[color:var(--muted-foreground)]",e),...t}));_ge.displayName="CardDescription";const jge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("p-6 pt-0",e),...t}));jge.displayName="CardContent";const Nge=h.forwardRef(({className:e,...t},n)=>o.jsx("div",{ref:n,className:X("flex items-center p-6 pt-0",e),...t}));Nge.displayName="CardFooter";const Dge={success:"bg-[color:var(--success-bg)] text-[color:var(--success)]",warning:"bg-[color:var(--warning-bg)] text-[color:var(--warning-foreground)]",destructive:"bg-[color:var(--destructive-bg)] text-[color:var(--destructive)]",primary:"bg-[color:var(--primary)]/10 text-[color:var(--primary)]",muted:"bg-[color:var(--muted)] text-[color:var(--muted-foreground)]",neutral:"bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)]"};function jo({tone:e="muted",srPrefix:t="Status",className:n,children:a,...s}){return o.jsxs("span",{className:X("inline-flex h-6 items-center whitespace-nowrap rounded px-2 text-xs font-medium tabular-nums",Dge[e],n),...s,children:[o.jsxs("span",{className:"sr-only",children:[t,": "]}),a]})}const Mge=e=>1-Math.pow(1-e,3);function Ege(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Ho({value:e,format:t=String,duration:n=500,placeholder:a="â",minWidth:s,className:r,style:i,...c}){const d=typeof e=="number"&&Number.isFinite(e)?e:null,[m,f]=h.useState(0),p=h.useRef(0);return p.current=m,h.useEffect(()=>{if(d===null)return;if(Ege()||n<=0){f(d);return}const y=p.current;if(y===d)return;let v=0,$=null;const x=w=>{$===null&&($=w);const S=Math.min(1,(w-$)/n);f(S>=1?d:y+(d-y)*Mge(S)),S<1&&(v=requestAnimationFrame(x))};return v=requestAnimationFrame(x),()=>cancelAnimationFrame(v)},[d,n]),o.jsx("span",{className:X("inline-flex items-baseline whitespace-nowrap leading-none tabular-nums",r),style:s?{...i,minWidth:s}:i,...c,children:d===null?a:t(m)})}class rn extends Error{constructor({code:n,message:a,status:s,requestId:r}){super(a);Bo(this,"code");Bo(this,"status");Bo(this,"requestId");this.name="ApiClientError",this.code=n,this.status=s,this.requestId=r}}function n3(e){return!["GET","HEAD"].includes(e.toUpperCase())}function a3(e,t){const n=e.replace(/\/+$/,""),a=t.startsWith("/")?t:`/${t}`;return`${n}${a}`}function Ige(){return globalThis.crypto?.randomUUID?`idem_${globalThis.crypto.randomUUID()}`:`idem_${Date.now()}_${Math.random().toString(36).slice(2)}`}function OV(e){return typeof FormData<"u"&&e instanceof FormData}async function Oge(e,t){const n=new Headers(t);return new Headers(e.headers).forEach((a,s)=>n.set(s,a)),n.has("Accept")||n.set("Accept","application/json"),e.body!==void 0&&!OV(e.body)&&!n.has("Content-Type")&&n.set("Content-Type","application/json"),n}function Lge(e,t){if(!t)return;if(t.aborted){e.abort(t.reason);return}const n=()=>e.abort(t.reason);return t.addEventListener("abort",n,{once:!0}),()=>t.removeEventListener("abort",n)}async function o3(e,t,n){const a=new AbortController,s=Lge(a,t.signal??void 0);let r=!1;const i=globalThis.setTimeout(()=>{r=!0,a.abort()},n);try{if(a.signal.aborted)throw new rn({code:r?$g.requestTimeout:$g.requestAborted,message:r?"Request timed out":"Request aborted",status:XI.noResponse});return await fetch(e,{...t,signal:a.signal})}catch(c){throw c instanceof DOMException&&c.name==="AbortError"?new rn({code:r?$g.requestTimeout:$g.requestAborted,message:r?"Request timed out":"Request aborted",status:XI.noResponse}):c}finally{s?.(),globalThis.clearTimeout(i)}}async function iR(e){try{return await e.json()}catch{return}}async function s3(e){const t=await iR(e);return new rn({code:t?.error?.code??`HTTP_${e.status}`,message:t?.error?.message??(e.statusText||`Request failed with status ${e.status}`),requestId:t?.error?.requestId,status:e.status})}function r3(e){return e&&typeof e=="object"&&"data"in e?e.data:e}function Uge({baseUrl:e,timeoutMs:t=15e3,csrfPath:n="/console/auth/csrf",csrf:a=!0,getHeaders:s,onUnauthorized:r,onF
236orbidden:i}){let c=null;async function d(f,p){if(c)return c;const y=await o3(a3(e,n),{credentials:"include",headers:{Accept:"application/json"},signal:p},f);if(!y.ok)throw await s3(y);const v=r3(await iR(y));if(!v?.csrfToken)throw new rn({code:$g.csrfTokenMissing,message:"CSRF token missing",status:y.status});return c=v.csrfToken,c}async function m(f,p={}){const y=p.method??"GET",v=p.timeoutMs??t,$=await Oge(p,s?await s():void 0),x=p.csrf??a;n3(y)&&x&&$.set("X-CSRF-Token",await d(v,p.signal??void 0)),n3(y)&&(p.idempotent||p.idempotencyKey)&&!$.has("X-Idempotency-Key")&&$.set("X-Idempotency-Key",p.idempotencyKey??Ige());const w=await o3(a3(e,f),{...p,method:y,credentials:"include",headers:$,body:p.body===void 0?void 0:OV(p.body)?p.body:JSON.stringify(p.body)},v);if(!w.ok){const S=await s3(w);throw w.status===ko.unauthorized&&r?.(),w.status===ko.forbidden&&i?.(S),S}if(w.status!==ko.noContent)return r3(await iR(w))}return{request:m}}function Eg(e){const t=new Set(e);return t.has("video")?"video":t.has("image")?"image":t.has("audio")?"audio":t.has("embeddings")?"embedding":"text"}function Xl(e){if(!e)return"â";if(e>=1e6){const t=Math.round(e/1e5)/10;return`${Number.isInteger(t)?t:t.toFixed(1)}M`}return e>=1e3?`${Math.round(e/1e3)}K`:String(e)}const Bge={USD:{symbol:"$",rate:1},CNY:{symbol:"Â¥",rate:bF}};function Fn(e,t="USD"){if(e==null)return"â";const n=Number(e);if(!Number.isFinite(n))return"â";const a=Bge[t],r=(n*a.rate).toFixed(8).replace(/(\.\d*?[1-9])0+$|\.0+$/,"$1");return`${a.symbol}${r==="-0"?"0":r}`}function Fge(e,t="USD"){return{input:Fn(e.inputPricePer1m,t),output:Fn(e.outputPricePer1m,t)}}function zge(e,t="USD"){return e.priorityInputPricePer1m==null&&e.priorityOutputPricePer1m==null?null:`${Fn(e.priorityInputPricePer1m,t)} / ${Fn(e.priorityOutputPricePer1m,t)}`}function qge(e,t){const n=Number(e),a=Number(t);return!Number.isFinite(n)||!Number.isFinite(a)||a<=0||n>=a?null:Math.round((a-n)/a*100)}function LV(e,t,n="USD"){if(t==="video"){const s=e.videoPrice;if(!s)return{our:"â",unit:"per1m",from:!1};const r=s.unit==="per_call"?"perCall":s.unit==="per_second"?"perSec":"per1m";return{our:Fn(s.amount,n),unit:r,from:s.tiered}}if(t==="image")return{our:Fn(e.imageOutputPricePer1m,n),unit:"per1m",from:!1};const a=Fge(e,n);return{our:`${a.input} / ${a.output}`,unit:"inout",from:!1}}function Hge(e){return e==="perCall"?"models.price_perCall":e==="perSec"?"models.price_perSec":e==="per1m"?"models.price_per1m":null}function UV(e,t,n="USD"){let a,s,r;t==="video"?(a=e.videoPrice?.amount??null,s=e.videoPrice?.official??null,r=Fn(s,n)):t==="image"?(a=e.imageOutputPricePer1m,s=e.officialImageOutputPricePer1m,r=Fn(s,n)):(a=e.inputPricePer1m,s=e.officialInputPricePer1m,r=`${Fn(e.officialInputPricePer1m,n)} / ${Fn(e.officialOutputPricePer1m,n)}`);const i=qge(a,s);return i==null?null:{official:r,pct:i}}function BV(e,t){if(e>=100)return t.toLowerCase().startsWith("zh")?"å
è´¹":"Free";if(t.toLowerCase().startsWith("zh")){const n=(100-e)/10;return`æ${Number.isInteger(n)?String(n):n.toFixed(1)}æ`}return`${e}% OFF`}function Vge(e){if(!e)return null;const t=e.trim().split(/\s+/)[0]?.split("/")[0];return t?t.toLowerCase()==="mozilla"?Kge(e)??t:t:null}function Kge(e){const t=e.toLowerCase();return t.includes("edg/")||t.includes("edga/")||t.includes("edgios/")?"Edge":t.includes("opr/")||t.includes("opera/")?"Opera":t.includes("firefox/")||t.includes("fxios/")?"Firefox":t.includes("chrome/")||t.includes("crios/")?"Chrome":t.includes("safari/")?"Safari":null}const Gge=[{app:"messenger",tokens:["messengerforios","messengerlite","orca-"]},{app:"facebook",tokens:["fban","fbav","fb_iab","fb4a","fbios"]},{app:"instagram",tokens:["instagram"]},{app:"wechat",tokens:["micromessenger","wxwork"]},{app:"qq",tokens:["qq/"]},{app:"weibo",tokens:["weibo"]},{app:"douyin",tokens:["aweme","bytedancewebview"]},{app:"tiktok",tokens:["musical_ly","trill","tiktok"]},{app:"xiaohongshu",tokens:["xhsdiscover"]},{app:"dingtalk",tokens:["dingtalk"]},{app:"feishu",tokens:["lark/"]},{app:"alipay",tokens:["alipayclient"]},{app:"baidu",tokens:["baiduboxapp"]},{app:"twitter",tokens:["twitter"]},{app:"line",tokens:[" line/"]},{app:"snapchat",tokens:["snapchat"]},{app:"linkedin",tokens:["linkedinapp"]}];function Wge(e){return e.includes("iphone")||e.includes("ipad")||e.includes("ipod")?"ios":e.includes("android")?"android":"other"}function Yge(e){if(!e)return{inApp:!1,app:null,os:"other"};const t=e.toLowerCase(),n=Wge(t);for(const{app:a,tokens:s}of Gge)if(s.some(r=>t.includes(r)))return{inApp:!0,app:a,os:n};return{inApp:!1,app:null,os:n}}function FV(e,t){const a=(Number.isFinite(t)&&t>0?t:0)/30;if(a<=0)return{daysRemaining:null,avgDailyUsd:a};const s=Number.isFinite(e)?e:0;return s<=0?{daysRemaining:0,avgDailyUsd:a}:{daysRemaining:s/a,avgDailyUsd:a}}const Qge=/\[([^[\]]+)\]\(([^\s()]+)\)/g;function Xge(e){return e.startsWith("//")?!1:e.startsWith("/")||/^https:\/\//i.test(e)}function Zge(e){const t=[];let n=0;for(const a of e.matchAll(Qge)){const[s,r,i]=a;if(!Xge(i))continue;const c=a.index??0;c>n&&t.push({type:"text",text:e.slice(n,c)}),t.push({type:"link",label:r,url:i}),n=c+s.length}return n<e.length&&t.push({type:"text",text:e.slice(n)}),t}function Jge(e){return!e||!Number.isFinite(e)||e<=0?"â":e>=1e6?`${(e/1e6).toFixed(2)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e))}const zV=["twitter","facebook","google","google_ads","bing","reddit","y
236outube","linkedin","github","producthunt","hackernews","partner","referral","friend","offline","newsletter","other"],ehe=["source","medium","campaign","term","content"],the=64,i3=128;function nhe(e){const t=e.toLowerCase();if(t.includes("onehop.ai")||t==="localhost"||t==="127.0.0.1")return null;const n=[[/(^|\.)(twitter\.com|x\.com|t\.co)$/,"twitter"],[/(^|\.)(facebook\.com|fb\.com|fb\.me)$/,"facebook"],[/(^|\.)google\./,"google"],[/(^|\.)bing\./,"bing"],[/(^|\.)reddit\.com$/,"reddit"],[/(^|\.)(youtube\.com|youtu\.be)$/,"youtube"],[/(^|\.)linkedin\.com$/,"linkedin"],[/(^|\.)github\.com$/,"github"],[/(^|\.)producthunt\.com$/,"producthunt"],[/(^|\.)ycombinator\.com$/,"hackernews"]];for(const[a,s]of n)if(a.test(t))return s;return null}function ahe(e){if(!e)return null;try{return nhe(new URL(e).hostname)}catch{return null}}function lR(e,t){return e.length>t?e.slice(0,t):e}const qV=/[a-z0-9-]\.[a-z]{2,}/i;function ohe(e){if(typeof e!="string")return null;const t=e.trim();return t?qV.test(t)?"partner":lR(t,the):null}function she(e){const t={};for(const[n,a]of Object.entries(e))n!=="referrer"&&(n==="source"&&typeof a=="string"&&qV.test(a)||(t[n]=a));return t}function rhe(e){return e instanceof URLSearchParams?t=>e.get(t):t=>typeof e[t]=="string"?e[t]:null}function ihe(e){if(!e)return null;try{const t=new URL(e).hostname.toLowerCase();return!t||t.includes("onehop.ai")||t==="localhost"||t==="127.0.0.1"?null:t}catch{return null}}function lhe(e){const t=rhe(e.params),n={};for(const i of ehe){const c=t(`utm_${i}`)?.trim();c&&(n[i]=lR(c,i3))}const a=t("gclid")?.trim(),s=t("fbclid")?.trim();let r=null;if(n.source)r=ohe(n.source);else if(a)r="google_ads";else if(s)r="facebook";else{const i=ahe(e.referer);i?r=i:ihe(e.referer)&&(r="referral")}return e.path?.trim()&&(n.landing=lR(e.path.trim(),i3)),{source:r,utm:she(n)}}function che(e){return e.source!==null||Object.keys(e.utm).some(t=>t!=="landing")}function or(e,t="en"){return new Intl.NumberFormat(t).format(e)}function lr(e,t="en",n="USD",a=2){return new Intl.NumberFormat(t,{style:"currency",currency:n,minimumFractionDigits:a,maximumFractionDigits:a}).format(e)}function HV(e,t="en"){return new Intl.DateTimeFormat(t,{dateStyle:"medium",timeStyle:"short"}).format(new Date(e))}const dhe=[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]];function uhe(e,t="en",n=Date.now()){const a=new Date(e).getTime();if(Number.isNaN(a))return"â";const s=Math.round((a-n)/1e3),r=Math.abs(s),i=new Intl.RelativeTimeFormat(t,{numeric:"auto"});for(const[c,d]of dhe)if(r>=d)return i.format(Math.round(s/d),c);return i.format(s,"second")}function VV({text:e}){return o.jsx(o.Fragment,{children:Zge(e).map((t,n)=>t.type==="link"?o.jsx("a",{href:t.url,className:"underline underline-offset-2 hover:no-underline",target:t.url.startsWith("http")?"_blank":void 0,rel:t.url.startsWith("http")?"noopener noreferrer":void 0,children:t.label},n):o.jsx(h.Fragment,{children:t.text},n))})}const mhe={primary:"default",secondary:"outline",link:"link"},phe={warning:"bg-[color:var(--color-warning,#b45309)]",critical:"bg-[color:var(--color-destructive,#dc2626)]"};function fhe({open:e,onOpenChange:t,imageUrl:n,severity:a="info",copy:s,onNavigate:r}){const i=a==="warning"||a==="critical"?phe[a]:null;return o.jsx(Up,{open:e,onOpenChange:t,children:o.jsxs(fu,{className:"max-h-[85vh] max-w-lg overflow-y-auto !p-0",children:[i?o.jsx("div",{className:`h-1 w-full rounded-t-[inherit] ${i}`}):null,n?o.jsx("img",{src:n,alt:s.title,className:`aspect-video w-full object-cover ${i?"":"rounded-t-[inherit]"}`}):null,o.jsxs("div",{className:"p-6",children:[o.jsx(gu,{className:"text-2xl font-semibold tracking-[-0.03em]",children:s.title}),o.jsx(hu,{className:"mt-2 whitespace-pre-line text-sm text-[color:var(--muted-foreground)]",children:o.jsx(VV,{text:s.body})}),s.actions.length>0?o.jsx("div",{className:"mt-5 flex flex-wrap gap-2",children:s.actions.map((c,d)=>{const m=c.url.startsWith("http");return o.jsx(K,{asChild:!0,variant:c.variant?mhe[c.variant]:d===0?"default":"outline",children:o.jsx("a",{href:c.url,target:m?"_blank":void 0,rel:m?"noopener noreferrer":void 0,onClick:f=>{m||f.metaKey||f.ctrlKey||f.shiftKey||f.button!==0||r?.(c.url)&&(f.preventDefault(),t(!1))},children:c.label})},d)})}):null]})]})})}const KV=.97;function ghe(e){return e==null||e>=KV?"var(--heat-5)":"var(--destructive)"}function hhe(e){return e.length===0?100:e.filter(n=>n.rate==null||n.rate>=KV).length/e.length*100}function yhe({data:e,heightPx:t=16,showPct:n=!1,className:a}){const s=hhe(e),r={height:t},i={flex:"1 1 0",height:"100%",borderRadius:1};
236return o.jsx(Oc,{delayDuration:0,children:o.jsxs("span",{className:["flex w-full min-w-0 items-center gap-1.5",a].filter(Boolean).join(" "),children:[o.jsx("span",{className:"flex flex-1 min-w-0 gap-[2px]",style:r,role:"img","aria-label":"uptime last 24 hours",children:e.map(c=>o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{style:{...i,backgroundColor:ghe(c.rate)}})}),o.jsx(cs,{children:c.rate==null?`${l3(c.hour)}: No incidents`:`${l3(c.hour)}: ${(c.rate*100).toFixed(1)}%`})]},c.hour))}),n&&o.jsxs("span",{className:"font-[family-name:var(--font-mono)] text-xs tabular-nums text-[color:var(--foreground)] shrink-0",children:[s.toFixed(2),"%"]})]})})}function l3(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=t.toLocaleString("en",{month:"short"}),a=t.getDate(),s=String(t.getHours()).padStart(2,"0");return`${n} ${a} ${s}:00`}const c3="rounded-md border border-[color:var(--border)] px-2 py-0.5 font-[family-name:var(--font-mono)] text-11 text-[color:var(--muted-foreground)]";function GV({protocols:e,max:t=3,labels:n,className:a}){const s=e.slice(0,t),r=e.length-s.length;return o.jsxs("div",{className:X("flex flex-wrap gap-1.5",a),children:[s.map(i=>o.jsx("span",{className:c3,children:n?.[i]??Wd[i].shortLabel},i)),r>0?o.jsxs("span",{className:c3,children:["+",r]}):null]})}function WV({year:e,month:t}){const n=new Date(e,t,1,0,0,0,0),a=new Date(e,t+1,0,23,59,59,999);return{from:n.toISOString(),to:a.toISOString()}}function vhe(e,t,n,a){const s=e*12+t;return!!(s>n.getFullYear()*12+n.getMonth()||a&&s<a.getFullYear()*12+a.getMonth())}function bhe({viewYear:e,onViewYearChange:t,selected:n,onPick:a,minDate:s,now:r=new Date,locale:i="en"}){const c=s?s.getFullYear():r.getFullYear()-5,d=h.useMemo(()=>Array.from({length:Math.max(1,r.getFullYear()-c+1)},(f,p)=>r.getFullYear()-p),[r,c]),m=h.useMemo(()=>Array.from({length:12},(f,p)=>new Intl.DateTimeFormat(i,{month:"short"}).format(new Date(2e3,p,1))),[i]);return o.jsxs("div",{className:"flex gap-3",children:[o.jsx("ul",{className:"flex max-h-56 flex-col gap-0.5 overflow-y-auto pr-2",role:"listbox","aria-label":"Year",children:d.map(f=>o.jsx("li",{children:o.jsx("button",{type:"button",role:"option","aria-selected":f===e,onClick:()=>t(f),className:X("w-full rounded px-3 py-1.5 text-left text-sm tabular-nums hover:bg-[color:var(--muted)]",f===e&&"bg-[color:var(--muted)] font-medium"),children:f})},f))}),o.jsx("div",{className:"grid grid-cols-3 gap-1",role:"listbox","aria-label":"Month",children:m.map((f,p)=>{const y=vhe(e,p,r,s),v=n!=null&&n.year===e&&n.month===p;return o.jsx("button",{type:"button",role:"option","aria-label":f,"aria-selected":v,disabled:y,onClick:()=>a({year:e,month:p}),className:X("rounded px-4 py-1.5 text-sm hover:bg-[color:var(--muted)] disabled:pointer-events-none disabled:opacity-40",v&&"bg-[color:var(--primary)] text-[color:var(--primary-foreground)] hover:opacity-90"),children:f},f)})})]})}const d3=["last1h","today","yesterday","last7d","last30d","thisMonth","byMonth","custom","all"],xhe={last1h:"Last 1 hour",today:"Today",yesterday:"Yesterday",last7d:"Last 7 days",last30d:"Last 30 days",thisMonth:"This month",byMonth:"By month",custom:"Custom",all:"All time"},$he={cancel:"Cancel",apply:"Apply",reversedError:"Start date must be before end date.",presetsAriaLabel:"Range presets",previousMonth:"Previous month",nextMonth:"Next month"},K1=864e5;function Nm(e){const t=new Date(e);return t.setHours(0,0,0,0),t}function Dm(e){const t=new Date(e);return t.setHours(23,59,59,999),t}function nc(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function cR(e,t=new Date){switch(e){case"last1h":return{from:new Date(t.getTime()-36e5).toISOString(),to:t.toISOString()};case"today":return{from:Nm(t).toISOString(),to:Dm(t).toISOString()};case"yesterday":{const n=new Date(t.getTime()-K1);return{from:Nm(n).toISOString(),to:Dm(n).toISOString()}}case"last7d":return{from:Nm(new Date(t.getTime()-6*K1)).toISOString(),to:Dm(t).toISOString()};case"last30d":return{from:Nm(new Date(t.getTime()-29*K1)).toISOString(),to:Dm(t).toISOString()};case"thisMonth":{const n=new Date(t.getFullYear(),t.getMonth(),1);return{from:Nm(n).toISOString(),to:Dm(t).toISOString()}}case"byMonth":return WV({year:t.getFullYear(),month:t.getMonth()});
236case"custom":case"all":default:return{}}}function u3(e,t=new Date){return e.preset?e.preset==="custom"?{preset:"custom",from:e.from,to:e.to}:e.preset==="byMonth"?e.from&&e.to?{preset:"byMonth",from:e.from,to:e.to}:{preset:"byMonth",...cR("byMonth",t)}:e.preset==="all"?{preset:"all"}:{preset:e.preset,...cR(e.preset,t)}:e}function whe(e,t){return!e||!t?"incomplete":e>t?"reversed":null}function khe(e,t,n="en"){const{preset:a,from:s,to:r}=e;if(a==="byMonth")return s?new Intl.DateTimeFormat(n,{year:"numeric",month:"long"}).format(new Date(s)):t.byMonth;if(a&&a!=="custom")return t[a];if(!s&&!r)return t.all;const i=c=>{const d=new Date(c);return Number.isNaN(d.getTime())?c:new Intl.DateTimeFormat(n,{year:"numeric",month:"2-digit",day:"2-digit"}).format(d)};return s&&r?`${i(s)} ~ ${i(r)}`:i(s??r)}function YV(e,t){const a=(new Date(e,t,1).getDay()+6)%7,s=new Date(e,t,1-a);return Array.from({length:42},(r,i)=>new Date(s.getFullYear(),s.getMonth(),s.getDate()+i))}function QV(e="en"){const t=new Intl.DateTimeFormat(e,{weekday:"short"});return Array.from({length:7},(n,a)=>t.format(new Date(2021,0,4+a)))}function uh({value:e,onChange:t,presets:n=d3,defaultPreset:a,locale:s="en",labels:r,minDate:i,disabled:c=!1,className:d,triggerAriaLabel:m="Select date range",open:f,onOpenChange:p}){const y=h.useMemo(()=>({...xhe,...$he,...r}),[r]),v=h.useMemo(()=>QV(s),[s]),$=h.useMemo(()=>n.filter(Y=>d3.includes(Y)),[n]),[x,w]=h.useState(!1),S=f??x,k=h.useCallback(Y=>{w(Y),p?.(Y)},[p]),[T,R]=h.useState(void 0),[_,P]=h.useState(void 0),[j,N]=h.useState(()=>{const Y=e.from?new Date(e.from):new Date;return Number.isNaN(Y.getTime())?new Date:Y}),[I,z]=h.useState(!1),E=h.useMemo(()=>new Date,[]),L=h.useMemo(()=>{if(!i)return null;const Y=new Date(i);return Number.isNaN(Y.getTime())?null:Y},[i]),O=L?nc(L):null,V=e.preset==="custom"||T!=null,ne=I||e.preset==="byMonth";h.useEffect(()=>{S&&e.preset==="custom"&&e.from&&e.to&&(R(nc(new Date(e.from))),P(nc(new Date(e.to))))},[S,e.preset,e.from,e.to]);const q=Y=>{if(R(void 0),P(void 0),Y==="custom"){z(!1);return}if(Y==="byMonth"){const pe=e.from?new Date(e.from):E;N(new Date((Number.isNaN(pe.getTime())?E:pe).getFullYear(),(Number.isNaN(pe.getTime())?E:pe).getMonth(),1)),z(!0);return}z(!1),t({preset:Y,...cR(Y)}),k(!1)},M=(Y,pe)=>{t({preset:"byMonth",...WV({year:Y,month:pe})}),z(!1),k(!1)},F=Y=>{const pe=nc(Y);if(!T||T&&_){R(pe),P(void 0);return}pe<T?(P(T),R(pe)):P(pe)},H=whe(T,_),ee=()=>{!T||!_||H||(t({preset:"custom",from:Nm(new Date(`${T}T00:00:00`)).toISOString(),to:Dm(new Date(`${_}T00:00:00`)).toISOString()}),k(!1))},B=khe(e,y,s),G=YV(j.getFullYear(),j.getMonth()),Q=new Intl.DateTimeFormat(s,{year:"numeric",month:"long"}).format(j),de=Y=>T&&_?Y>=T&&Y<=_:Y===T;return o.jsxs(Bp,{open:S,onOpenChange:k,children:[o.jsx(Fp,{asChild:!0,children:o.jsxs("button",{type:"button",disabled:c,"aria-label":m,className:X("inline-flex h-9 max-w-full min-w-0 items-center gap-2 rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 text-sm text-[color:var(--foreground)] outline-none transition-colors hover:bg-[color:var(--muted)] focus-visible:border-[color:var(--primary)] focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50",d),children:[o.jsx(FF,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{className:"truncate tabular-nums",children:B}),o.jsx(Ic,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)]","aria-hidden":!0})]})}),o.jsxs(yu,{align:"start",className:"flex w-[calc(100vw-2rem)] max-w-[380px] flex-col gap-0 p-0 sm:w-auto sm:max-w-none sm:flex-row",children:[o.jsx("ul",{className:"grid max-h-40 grid-cols-2 gap-0.5 overflow-y-auto border-b border-[color:var(--border)] p-2 sm:flex sm:max-h-none sm:min-w-[150px] sm:flex-col sm:border-b-0 sm:border-r",role:"listbox","aria-label":y.presetsAriaLabel,children:$.map(Y=>{const pe=e.preset===Y||Y==="custom"&&V||Y==="byMonth"&≠return o.jsx("li",{children:o.jsx("button",{type:"button",role:"option","aria-selected":pe,onClick:()=>q(Y),className:X("w-full rounded px-2 py-1.5 text-left text-sm hover:bg-[color:var(--muted)]",pe&&"bg-[color:var(--muted)] font-medium"),children:y[Y]})},Y)})}),ne?o.jsxs("div",{className:"flex min-w-0 flex-col gap-3 p-3",children:[o.jsx(bhe,{viewYear:j.getFullYear(),onViewYearChange:Y=>N(new Date(Y,j.getMonth(),1)),selected:e.preset==="byMonth"&&e.from?{year:new Date(e.from).getFullYear(),month:new Date(e.from).getMonth()}:null,onPick:({year:Y,month:pe})=>M(Y,pe),minDate:L,now:E,locale:s}),o.jsx("div",{className:"flex items-center justify-end pt-1",children:o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>{z(!1),k(!1)},children:y.cancel})})]}):o.jsxs("div",{className:"flex min-w-0 flex-col gap-2 p-3",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("button",{type:"button","aria-label":y.previousMonth,onClick:()=>N(Y=>new Date(Y.getFullYear(),Y.getMonth()-1,1)),className:"grid size-8 place-items-center rounded hover:bg-[color:var(--muted)]",children:o.jsx(p_,{className:"size-4","aria-hidden":!0})}),o.jsx("span",{className:"text-sm font-medium",children:Q}),o.jsx("button",{type:"button","aria-label":y.nextMonth,onClick:()=>N(Y=>
236new Date(Y.getFullYear(),Y.getMonth()+1,1)),className:"grid size-8 place-items-center rounded hover:bg-[color:var(--muted)]",children:o.jsx(J$,{className:"size-4","aria-hidden":!0})})]}),o.jsxs("div",{className:"grid grid-cols-7 gap-0.5 text-center",children:[v.map(Y=>o.jsx("span",{className:"py-1 text-xs font-medium text-[color:var(--muted-foreground)]",children:Y},Y)),G.map(Y=>{const pe=nc(Y),se=Y.getMonth()!==j.getMonth(),we=O!=null&&pe<O,me=de(pe);return o.jsx("button",{type:"button","aria-label":pe,"aria-pressed":me,disabled:we,onClick:()=>F(Y),className:X("flex h-8 w-8 items-center justify-center rounded text-sm tabular-nums hover:bg-[color:var(--muted)] disabled:pointer-events-none disabled:opacity-30",se&&"text-[color:var(--muted-foreground)] opacity-50",me&&"bg-[color:var(--primary)] text-[color:var(--primary-foreground)] hover:opacity-90"),children:Y.getDate()},pe)})]}),H==="reversed"?o.jsx("p",{className:"text-xs text-[color:var(--destructive)]",children:y.reversedError}):null,o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-1",children:[o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>k(!1),children:y.cancel}),o.jsx(K,{size:"sm",disabled:!T||!_||H!=null,onClick:ee,children:y.apply})]})]})]})]})}const Che={selectDate:"Select date",previousMonth:"Previous month",nextMonth:"Next month",clear:"Clear"};function She(e,t="en",n=""){if(!e)return n;const a=new Date(`${e}T00:00:00`);return Number.isNaN(a.getTime())?e:new Intl.DateTimeFormat(t,{year:"numeric",month:"2-digit",day:"2-digit"}).format(a)}function Ahe(e){if(!e)return null;const t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:nc(t)}function fr({value:e,onChange:t,placeholder:n="",minDate:a,locale:s="en",clearLabel:r="Clear",labels:i,disabled:c=!1,className:d,open:m,onOpenChange:f}){const[p,y]=h.useState(!1),v=m??p,$=h.useCallback(N=>{y(N),f?.(N)},[f]),[x,w]=h.useState(()=>{const N=e?new Date(`${e}T00:00:00`):new Date;return Number.isNaN(N.getTime())?new Date:N});h.useEffect(()=>{if(!v||!e)return;const N=new Date(`${e}T00:00:00`);Number.isNaN(N.getTime())||w(new Date(N.getFullYear(),N.getMonth(),1))},[v,e]);const S=Ahe(a),k=YV(x.getFullYear(),x.getMonth()),T=h.useMemo(()=>({...Che,clear:r,...i}),[r,i]),R=h.useMemo(()=>QV(s),[s]),_=new Intl.DateTimeFormat(s,{year:"numeric",month:"long"}).format(x),P=She(e,s,n),j=N=>{t(nc(N)),$(!1)};return o.jsxs(Bp,{open:v,onOpenChange:$,children:[o.jsx(Fp,{asChild:!0,children:o.jsxs("button",{type:"button",disabled:c,"aria-label":T.selectDate,className:X("inline-flex h-9 w-full items-center gap-2 rounded-md border border-[color:var(--input)] bg-[color:var(--background)] px-3 text-sm text-[color:var(--foreground)] outline-none transition-colors hover:bg-[color:var(--muted)] focus-visible:border-[color:var(--primary)] focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50",d),children:[o.jsx(FF,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{className:X("min-w-0 truncate tabular-nums",!e&&"text-[color:var(--muted-foreground)]"),children:P}),o.jsx(Ic,{className:"ml-auto size-4 shrink-0 text-[color:var(--muted-foreground)]","aria-hidden":!0})]})}),o.jsx(yu,{align:"start",className:"w-auto p-0",children:o.jsxs("div",{className:"flex flex-col gap-2 p-3",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("button",{type:"button","aria-label":T.previousMonth,onClick:()=>w(N=>new Date(N.getFullYear(),N.getMonth()-1,1)),className:"rounded p-1 hover:bg-[color:var(--muted)]",children:o.jsx(p_,{className:"size-4","aria-hidden":!0})}),o.jsx("span",{className:"text-sm font-medium",children:_}),o.jsx("button",{type:"button","aria-label":T.nextMonth,onClick:()=>w(N=>new Date(N.getFullYear(),N.getMonth()+1,1)),className:"rounded p-1 hover:bg-[color:var(--muted)]",children:o.jsx(J$,{className:"size-4","aria-hidden":!0})})]}),o.jsxs("div",{className:"grid grid-cols-7 gap-0.5 text-center",children:[R.map(N=>o.jsx("span",{className:"py-1 text-xs font-medium text-[color:var(--muted-foreground)]",children:N},N)),k.map(N=>{const I=nc(N),z=N.getMonth()!==x.getMonth(),E=S!=null&&I<S,L=I===e;return o.jsx("button",{type:"button","aria-label":I,"aria-pressed":L,disabled:E,onClick:()=>j(N),className:X("flex h-8 w-8 items-center justify-center rounded text-sm tabular-nums hover:bg-[color:var(--muted)] disabled:pointer-events-none disabled:opacity-30",z&&"text-[color:var(--muted-foreground)] opacity-50",L&&"bg-[color:var(--primary)] text-[color:var(--primary-foreground)] hover:opacity-90"),children:N.getDate()},I)})]}),e?o.jsx("div",{className:"flex items-center justify-end border-t border-[color:var(--border)] pt-2",children:o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>{t(""),$(!1)},children:T.clear})}):null]})})]})}function dR(e,t){const n=new Set(t),a=new Set;for(const s of e)(s.locked||n.has(s.key))&&a.add(s.key);return a}function The(e){return e.filter(t=>t.locked||t.defaultVisible).map(t=>t.key)}function Rhe(e,t,n){const a=e.find(r=>r.key===n);if(!a||a.locked)return e.filter(r=>t.has(r.key)).map(r=>r.key);const s=new Set(t);return s.has(n)?s.delete(n):s.add(n),e.filter(r=>s.has(r.key)).map(r=>r.key)}function Phe(e){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(e);if(!t)return null;const n=JSON.parse(t);return Array.isArray(n)&&n.every(a=>
236typeof a=="string")?n:null}catch{return null}}function _he(e,t){if(!(typeof window>"u"))try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function jhe({columns:e,value:t,onChange:n,persistKey:a,triggerLabel:s="Column settings",resetLabel:r="Reset",saveLabel:i="Save",className:c}){const[d,m]=h.useState(!1),[f,p]=h.useState(()=>dR(e,t));h.useEffect(()=>{d&&p(dR(e,t))},[d,e,t]);const y=v=>{_he(a,v),n(v),m(!1)};return o.jsxs(Bp,{open:d,onOpenChange:m,children:[o.jsx(Fp,{asChild:!0,children:o.jsx(Aa,{type:"button","aria-label":s,className:c,children:o.jsx(Sse,{className:"size-4","aria-hidden":!0})})}),o.jsxs(yu,{align:"end",collisionPadding:16,className:"max-h-[min(390px,calc(100dvh-4rem))] w-[min(240px,calc(100vw-2rem))] overflow-hidden p-0",children:[o.jsx("div",{role:"group","aria-label":s,className:"max-h-[min(332px,calc(100dvh-7.5rem))] overflow-y-auto overscroll-contain p-2",children:e.map(v=>{const $=f.has(v.key),x=`${a}-col-${v.key}`;return o.jsxs("label",{htmlFor:x,className:X("flex items-center gap-2 rounded-md px-2 py-1.5 text-sm",v.locked?"cursor-not-allowed text-[color:var(--muted-foreground)]":"cursor-pointer hover:bg-[color:var(--muted)]"),children:[o.jsx(Zn,{id:x,checked:$,disabled:v.locked,onChange:()=>p(new Set(Rhe(e,f,v.key)))}),o.jsx("span",{className:"flex-1",children:v.label})]},v.key)})}),o.jsxs("div",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-[color:var(--border)] p-2",children:[o.jsx(K,{type:"button",variant:"ghost",size:"sm",onClick:()=>p(new Set(The(e))),children:r}),o.jsx(K,{type:"button",size:"sm",onClick:()=>y(e.filter(v=>f.has(v.key)).map(v=>v.key)),children:i})]})]})]})}const Nhe={info:"bg-[color:var(--primary)] text-[color:var(--primary-foreground)]",warning:"bg-[color:var(--color-warning,#b45309)] text-white",critical:"bg-[color:var(--color-destructive,#b91c1c)] text-white"},Dhe={info:"text-[color:var(--primary-foreground)]",warning:"text-white",critical:"text-white"};function Mhe({banners:e,onDismiss:t}){const[n,a]=h.useState(0),[s,r]=h.useState(null),i=h.useRef(!1),c=e.length,d=c>0?n%c:0,m=e[d];h.useEffect(()=>{n>=c&&a(0)},[c,n]),h.useEffect(()=>{if(c<=1)return;const y=setInterval(()=>{i.current||a(v=>(v+1)%c)},5e3);return()=>clearInterval(y)},[c]);const f=h.useCallback(y=>{r(y),setTimeout(()=>{t(y),r(null)},150)},[t]);if(h.useEffect(()=>{const y=v=>{v.key==="Escape"&&m?.dismissible&&f(m.publicId)};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[m,f]),c===0||!m)return null;const p=s===m.publicId;return o.jsxs("div",{role:m.severity==="critical"?"alert":"status","aria-live":m.severity==="critical"?"assertive":"polite",className:X("relative w-full overflow-hidden transition-opacity duration-150 motion-reduce:transition-none",Dhe[m.severity],p?"opacity-0":"opacity-100"),onMouseEnter:()=>{i.current=!0},onMouseLeave:()=>{i.current=!1},children:[o.jsx("div",{className:"flex transition-transform duration-500 ease-out motion-reduce:transition-none",style:{transform:`translate3d(-${d*100}%, 0, 0)`},children:e.map((y,v)=>{const $=v===d;return o.jsxs("div",{"aria-hidden":!$,className:X("flex w-full shrink-0 min-h-10 max-h-16 items-center justify-center gap-1.5 px-11 py-1.5 text-xs font-medium leading-5 sm:max-h-none sm:gap-2 sm:px-12 sm:py-2 sm:text-sm",c>1&&"pb-3 sm:pb-2",Nhe[y.severity]),children:[o.jsx("span",{className:"min-w-0 overflow-hidden [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] sm:block sm:overflow-visible",children:o.jsx(VV,{text:y.message})}),y.ctaUrl&&y.ctaText&&o.jsx("a",{href:y.ctaUrl,tabIndex:$?void 0:-1,className:"shrink-0 underline underline-offset-2 hover:no-underline",target:y.ctaUrl.startsWith("http")?"_blank":void 0,rel:y.ctaUrl.startsWith("http")?"noopener noreferrer":void 0,children:y.ctaText})]},y.publicId)})}),c>1&&o.jsx("div",{className:"absolute bottom-1 left-1/2 flex -translate-x-1/2 gap-1",children:e.map((y,v)=>o.jsx("button",{"aria-label":`Banner ${v+1} of ${c}`,onClick:()=>a(v),className:X("h-1.5 w-1.5 rounded-full bg-current transition-opacity",v===d?"opacity-100":"opacity-50")},y.publicId))}),m.dismissible&&o.jsx("button",{"aria-label":"Dismiss banner",onClick:()=>f(m.publicId),className:"absolute right-0 top-1/2 flex min-h-[44px] min-w-[44px] -translate-y-1/2 items-center justify-center opacity-80 hover:opacity-100 touch-manipulation",children:o.jsx(Fh,{className:"size-4"})})]})}const it=e=>typeof e=="string",Zf=()=>{let e,t;const n=new Promise((a,s)=>{e=a,t=s});return n.resolve=e,n.reject=t,n},m3=e=>e==null?"":String(e),Ehe=(e,t,n)=>{e.forEach(a=>{t[a]&&(n[a]=t[a])})},Ihe=/###/g,p3=e=>e&&e.includes("###")?e.replace(Ihe,"."):e,f3=e=>
vendor: 4,820 bytes, line 236
236!e||it(e),Ig=(e,t,n)=>{const a=it(t)?t.split("."):t;let s=0;for(;s<a.length-1;){if(f3(e))return{};const r=p3(a[s]);!e[r]&&n&&(e[r]=new n),Object.prototype.hasOwnProperty.call(e,r)?e=e[r]:e={},++s}return f3(e)?{}:{obj:e,k:p3(a[s])}},g3=(e,t,n)=>{const{obj:a,k:s}=Ig(e,t,Object);if(a!==void 0||t.length===1){a[s]=n;return}let r=t[t.length-1],i=t.slice(0,t.length-1),c=Ig(e,i,Object);for(;c.obj===void 0&&i.length;)r=`${i[i.length-1]}.${r}`,i=i.slice(0,i.length-1),c=Ig(e,i,Object),c?.obj&&typeof c.obj[`${c.k}.${r}`]<"u"&&(c.obj=void 0);c.obj[`${c.k}.${r}`]=n},Ohe=(e,t,n,a)=>{const{obj:s,k:r}=Ig(e,t,Object);s[r]=s[r]||[],s[r].push(n)},Ux=(e,t)=>{const{obj:n,k:a}=Ig(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,a))return n[a]},Lhe=(e,t,n)=>{const a=Ux(e,n);return a!==void 0?a:Ux(t,n)},XV=(e,t,n)=>{for(const a in t)a!=="__proto__"&&a!=="constructor"&&(a in e?it(e[a])||e[a]instanceof String||it(t[a])||t[a]instanceof String?n&&(e[a]=t[a]):XV(e[a],t[a],n):e[a]=t[a]);return e},Ii=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),Uhe={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},Bhe=e=>it(e)?e.replace(/[&<>"'\/]/g,t=>Uhe[t]):e;class Fhe{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const a=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,a),this.regExpQueue.push(t),a}}const zhe=[" ",",","?","!",";"],qhe=new Fhe(20),Hhe=(e,t,n)=>{t=t||"",n=n||"";const a=zhe.filter(i=>!t.includes(i)&&!n.includes(i));if(a.length===0)return!0;const s=qhe.getRegExp(`(${a.map(i=>i==="?"?"\\?":i).join("|")})`);let r=!s.test(e);if(!r){const i=e.indexOf(n);i>0&&!s.test(e.substring(0,i))&&(r=!0)}return r},uR=(e,t,n=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;const a=t.split(n);let s=e;for(let r=0;r<a.length;){if(!s||typeof s!="object")return;let i,c="";for(let d=r;d<a.length;++d)if(d!==r&&(c+=n),c+=a[d],i=s[c],i!==void 0){if(["string","number","boolean"].includes(typeof i)&&d<a.length-1)continue;r+=d-r+1;break}s=i}return s},mh=e=>e?.replace(/_/g,"-"),Vhe={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class Bx{constructor(t,n={}){this.init(t,n)}init(t,n={}){this.prefix=n.prefix||"i18next:",this.logger=t||Vhe,this.options=n,this.debug=n.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,a,s){return s&&!this.debug?null:(t=t.map(r=>it(r)?r.replace(/[\r\n\x00-\x1F\x7F]/g," "):r),it(t[0])&&(t[0]=`${a}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new Bx(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new Bx(this.logger,t)}}var Qr=new Bx;let Mw=class{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(a=>{this.observers[a]||(this.observers[a]=new Map);const s=this.observers[a].get(n)||0;this.observers[a].set(n,s+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}once(t,n){const a=(...s)=>{n(...s),this.off(t,a)};return this.on(t,a),this}emit(t,...n){this.observers[t]&&Array.from(this.observers[t].entries()).forEach(([s,r])=>{for(let i=0;i<r;i++)s(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([s,r])=>{for(let i=0;i<r;i++)s(t,...n)})}};class h3 extends Mw{constructor(t,n={ns:["translation"],defaultNS:"translation"}){super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.includes(t)||this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,a,s={}){const r=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,i=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure;let c;t.includes(".")?c=t.split("."):(c=[t,n],a&&(Array.isArray(a)?c.push(...a):it(a)&&r?c.push(...a.split(r)):c.push(a)));const d=Ux(this.data,c);return!d&&!n&&!a&&t.includes(".")&&(t=c[0],n=c[1],a=c.slice(2).join(".")),d||!i||!it(a)?d:uR(this.data?.[t]?.[n],a,r)}addResource(t,n,a,s,r={silent:!1}){const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let c=[t,n];a&&(c=c.concat(i?a.split(i):a)),t.includes(".")&&(c=t.split("."),s=n,n=c[1]),this.addNamespaces(n),g3(this.data,c,s),r.silent||this.emit
vendor: 1,837 bytes, line 236
236("added",t,n,a,s)}addResources(t,n,a,s={silent:!1}){for(const r in a)(it(a[r])||Array.isArray(a[r]))&&this.addResource(t,n,r,a[r],{silent:!0});s.silent||this.emit("added",t,n,a)}addResourceBundle(t,n,a,s,r,i={silent:!1,skipCopy:!1}){let c=[t,n];t.includes(".")&&(c=t.split("."),s=a,a=n,n=c[1]),this.addNamespaces(n);let d=Ux(this.data,c)||{};i.skipCopy||(a=JSON.parse(JSON.stringify(a))),s?XV(d,a,r):d={...d,...a},g3(this.data,c,d),i.silent||this.emit("added",t,n,a)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(s=>n[s]&&Object.keys(n[s]).length>0)}toJSON(){return this.data}}var ZV={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,a,s){return e.forEach(r=>{t=this.processors[r]?.process(t,n,a,s)??t}),t}};const JV=Symbol("i18next/PATH_KEY");function Khe(){const e=[],t=Object.create(null);let n;return t.get=(a,s)=>(n?.revoke?.(),s===JV?e:(e.push(s),n=Proxy.revocable(a,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function Bd(e,t){const{[JV]:n}=e(Khe()),a=t?.keySeparator??".",s=t?.nsSeparator??":",r=t?.enableSelector==="strict";if(n.length>1&&s){const i=t?.ns,c=r?Array.isArray(i)?i:i?[i]:null:Array.isArray(i)?i:null;if(c&&(r?c:c.length>1?c.slice(1):[]).includes(n[0]))return`${n[0]}${s}${n.slice(1).join(a)}`}return n.join(a)}const G1=e=>!it(e)&&typeof e!="boolean"&&typeof e!="number";class Fx extends Mw{constructor(t,n={}){super(),Ehe(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","
236i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Qr.create("translator"),this.checkedLoadedFor={}}changeLanguage(t){t&&(this.language=t)}exists(t,n={interpolation:{}}){const a={...n};if(t==null)return!1;const s=this.resolve(t,a);if(s?.res===void 0)return!1;const r=G1(s.res);return!(a.returnObjects===!1&&r)}extractFromKey(t,n){let a=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");const s=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let r=n.ns||this.options.defaultNS||[];const i=a&&t.includes(a),c=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!Hhe(t,a,s);if(i&&!c){const d=t.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:t,namespaces:it(r)?[r]:r};const m=t.split(a);(a!==s||a===s&&this.options.ns.includes(m[0]))&&(r=m.shift()),t=m.join(s)}return{key:t,namespaces:it(r)?[r]:r}}translate(t,n,a){let s=typeof n=="object"?{...n}:n;if(typeof s!="object"&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),typeof s=="object"&&(s={...s}),s||(s={}),t==null)return"";typeof t=="function"&&(t=Bd(t,{...this.options,...s})),Array.isArray(t)||(t=[String(t)]),t=t.map(O=>typeof O=="function"?Bd(O,{...this.options,...s}):String(O));const r=s.returnDetails!==void 0?s.returnDetails:this.options.returnDetails,i=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,{key:c,namespaces:d}=this.extractFromKey(t[t.length-1],s),m=d[d.length-1];let f=s.nsSeparator!==void 0?s.nsSeparator:this.options.nsSeparator;f===void 0&&(f=":");const p=s.lng||this.language,y=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(p?.toLowerCase()==="cimode")return y?r?{res:`${m}${f}${c}`,usedKey:c,exactUsedKey:c,usedLng:p,usedNS:m,usedParams:this.getUsedParamsDetails(s)}:`${m}${f}${c}`:r?{res:c,usedKey:c,exactUsedKey:c,usedLng:p,usedNS:m,usedParams:this.getUsedParamsDetails(s)}:c;const v=this.resolve(t,s);let $=v?.res;const x=v?.usedKey||c,w=v?.exactUsedKey||c,S=["[object Number]","[object Function]","[object RegExp]"],k=s.joinArrays!==void 0?s.joinArrays:this.options.joinArrays,T=!this.i18nFormat||this.i18nFormat.handleAsObject,R=s.count!==void 0&&!it(s.count),_=Fx.hasDefaultValue(s),P=R?this.pluralResolver.getSuffix(p,s.count,s):"",j=s.ordinal&&R?this.pluralResolver.getSuffix(p,s.count,{ordinal:!1}):"",N=R&&!s.ordinal&&s.count===0,I=N&&s[`defaultValue${this.options.pluralSeparator}zero`]||s[`defaultValue${P}`]||s[`defaultValue${j}`]||s.defaultValue;let z=$;T&&!$&&_&&(z=I);const E=G1(z),L=Object.prototype.toString.apply(z);if(T&&z&&E&&!S.includes(L)&&!(it(k)&&Array.isArray(z))){if(!s.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const O=this.options.returnedObjectHandler?this.options.returnedObjectHandler(x,z,{...s,ns:d}):`key '${c} (${this.language})' returned an object instead of string.`;return r?(v.res=O,v.usedParams=this.getUsedParamsDetails(s),v):O}if(i){const O=Array.isArray(z),V=O?[]:{},ne=O?w:x;for(const q in z)if(Object.prototype.hasOwnProperty.call(z,q)){const M=`${ne}${i}${q}`;_&&!$?V[q]=this.translate(M,{...s,defaultValue:G1(I)?I[q]:void 0,joinArrays:!1,ns:d}):V[q]=this.translate(M,{...s,joinArrays:!1,ns:d}),V[q]===M&&(V[q]=z[q])}$=V}}else if(T&&it(k)&&Array.isArray($))$=$.join(k),$&&($=this.extendTranslation($,t,s,a));else{let O=!1,V=!1;!this.isValidLookup($)&&_&&(O=!0,$=I),this.isValidLookup($)||(V=!0,$=c);const q=(s.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&V?void 0:$,M=_&&I!==$&&this.options.updateMissing;if(V||O||M){if(this.logger.log(M?"updateKey":"missingKey",p,m,R&&!M?`${c}${this.pluralResolver.getSuffix(p,s.count,s)}`:c,M?I:$),i){const B=this.resolve(c,{...s,keySeparator:!1});B&&B.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let F=[];const H=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if(this.options.saveMissingTo==="fallback"&&H&&H[0])for(let B=0;B<H.length;B++)F.push(H[B]);else this.options.saveMissingTo==="all"?F=this.languageUtils.toResolveHierarchy(s.lng||this.language):F.push(s.lng||this.language);const ee=(B,G,Q)=>{const de=_&&Q!==$?Q:q;this.options.missingKeyHandler?this.options.missingKeyHandler(B,m,G,de,M,s):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(B,m,G,de,M,s),this.emit
vendor: 26,239 bytes, line 236
236("missingKey",B,m,G,$)};this.options.saveMissing&&(this.options.saveMissingPlurals&&R?F.forEach(B=>{const G=this.pluralResolver.getSuffixes(B,s);N&&s[`defaultValue${this.options.pluralSeparator}zero`]&&!G.includes(`${this.options.pluralSeparator}zero`)&&G.push(`${this.options.pluralSeparator}zero`),G.forEach(Q=>{ee([B],c+Q,s[`defaultValue${Q}`]||I)})}):ee(F,c,I))}$=this.extendTranslation($,t,s,v,a),V&&$===c&&this.options.appendNamespaceToMissingKey&&($=`${m}${f}${c}`),(V||O)&&this.options.parseMissingKeyHandler&&($=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${m}${f}${c}`:c,O?$:void 0,s))}return r?(v.res=$,v.usedParams=this.getUsedParamsDetails(s),v):$}extendTranslation(t,n,a,s,r){if(this.i18nFormat?.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...a},a.lng||this.language||s.usedLng,s.usedNS,s.usedKey,{resolved:s});else if(!a.skipInterpolation){a.interpolation&&this.interpolator.init({...a,interpolation:{...this.options.interpolation,...a.interpolation}});const d=it(t)&&(a?.interpolation?.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let m;if(d){const p=t.match(this.interpolator.nestingRegexp);m=p&&p.length}let f=a.replace&&!it(a.replace)?a.replace:a;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),t=this.interpolator.interpolate(t,f,a.lng||this.language||s.usedLng,a),d){const p=t.match(this.interpolator.nestingRegexp),y=p&&p.length;m<y&&(a.nest=!1)}!a.lng&&s&&s.res&&(a.lng=this.language||s.usedLng),a.nest!==!1&&(t=this.interpolator.nest(t,(...p)=>r?.[0]===p[0]&&!a.context?(this.logger.warn(`It seems you are nesting recursively key: ${p[0]} in key: ${n[0]}`),null):this.translate(...p,n),a)),a.interpolation&&this.interpolator.reset()}const i=a.postProcess||this.options.postProcess,c=it(i)?[i]:i;return t!=null&&c?.length&&a.applyPostProcessor!==!1&&(t=ZV.handle(c,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...s,usedParams:this.getUsedParamsDetails(a)},...a}:a,this)),t}resolve(t,n={}){let a,s,r,i,c;return it(t)&&(t=[t]),Array.isArray(t)&&(t=t.map(d=>typeof d=="function"?Bd(d,{...this.options,...n}):d)),t.forEach(d=>{if(this.isValidLookup(a))return;const m=this.extractFromKey(d,n),f=m.key;s=f;let p=m.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const y=n.count!==void 0&&!it(n.count),v=y&&!n.ordinal&&n.count===0,$=n.context!==void 0&&(it(n.context)||typeof n.context=="number")&&n.context!=="",x=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);p.forEach(w=>{this.isValidLookup(a)||(c=w,!this.checkedLoadedFor[`${x[0]}-${w}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(c)&&(this.checkedLoadedFor[`${x[0]}-${w}`]=!0,this.logger.warn(`key "${s}" for languages "${x.join(", ")}" won't get resolved as namespace "${c}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),x.forEach(S=>{if(this.isValidLookup(a))return;i=S;const k=[f];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(k,f,S,w,n);else{let R;y&&(R=this.pluralResolver.getSuffix(S,n.count,n));const _=`${this.options.pluralSeparator}zero`,P=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(y&&(n.ordinal&&R.startsWith(P)&&k.push(f+R.replace(P,this.options.pluralSeparator)),k.push(f+R),v&&k.push(f+_)),$){const j=`${f}${this.options.contextSeparator||"_"}${n.context}`;k.push(j),y&&(n.ordinal&&R.startsWith(P)&&k.push(j+R.replace(P,this.options.pluralSeparator)),k.push(j+R),v&&k.push(j+_))}}let T;for(;T=k.pop();)this.isValidLookup(a)||(r=T,a=this.getResource(S,w,T,n))}))})}),{res:a,usedKey:s,exactUsedKey:r,usedLng:i,usedNS:c}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,a,s={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(t,n,a,s):this.resourceStore.getResource(t,n,a,s)}getUsedParamsDetails(t={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],a=t.replace&&!it(t.replace);let s=a?t.replace:t;if(a&&typeof t.count<"u"&&(s.count=t.count),this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),!a){s={...s};for(const r of n)delete s[r]}return s}static hasDefaultValue(t){const n="defaultValue";for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&a.startsWith(n)&&t[a]!==void 0)return!0;return!1}}class y3{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Qr.create("languageUtils")}getScriptPartFromCode(t){if(t=mh(t),!t||!t.includes("-"))return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=mh(t),!t||!t.includes("-"))return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(it(t)&&t.includes("-")){let n;try{n=Intl.getCanonicalLocales(t)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(t)}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(a=>{if(n)return;const s=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(s))&&(n=s)}),!n&&this.options.supportedLngs&&t.forEach(a=>{if(n)return;const s=this.getScriptPartFromCode(a);if(this.isSupportedCode(s))return n=s;const r=this.getLanguagePartFromCode(a);if(this.isSupportedCode(r))return n=r;n=this.options.supportedLngs.find(i=>i===r?!0:!i.includes("-")&&!r.includes("-")?!1:!!(i.includes("-")&&!r.includes("-")&&i.slice(0,i.indexOf("-"))===r||i.startsWith(r)&&r.length>1))}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),it(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let a=t[n];return a||(a=t[this.getScriptPartFromCode(n)]),a||(a=t[this.formatLanguageCode(n)]),a||(a=t[this.getLanguagePartFromCode(n)]),a||(a=t.default),a||[]}toResolveHierarchy(t,n){const a=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],t),s=[],r=i=>{i&&(this.isSupportedCode(i)?s.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return it(t)&&(t.includes("-")||t.includes("_"))?(this.options.load!=="languageOnly"&&r(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&r(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&r(this.getLanguagePartFromCode(t))):it(t)&&r(this.formatLanguageCode(t)),a.forEach(i=>{s.includes(i)||r(this.formatLanguageCode(i))}),s}}const v3={zero:0,one:1,two:2,few:3,many:4,other:5},b3={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class Ghe{constructor(t,n={}){this.languageUtils=t,this.options=n,this.logger=Qr.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,n={}){const a=mh(t==="dev"?"en":t),s=n.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:a,type:s});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];let i;try{i=new Intl.PluralRules(a,{type:s})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),b3;if(!t.match(/-|_/))return b3;const d=this.languageUtils.getLanguagePartFromCode(t);i=this.getRule(d,n)}return this.pluralRulesCache[r]=i,i}needsPlural(t,n={}){let a=this.getRule(t,n);return a||(a=this.getRule("dev",n)),a?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(t,n,a={}){return this.getSuffixes(t,a).map(s=>`${n}${s}`)}getSuffixes(t,n={}){let a=this.getRule(t,n);return a||(a=this.getRule("dev",n)),a?a.resolvedOptions().pluralCategories.sort((s,r)=>v3[s]-v3[r]).map(s=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${s}`):[]}getSuffix(t,n,a={}){const s=this.getRule(t,a);return s?`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${s.select(n)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",n,a))}}const x3=(e,t,n,a=".",s=!0)=>{let r=Lhe(e,t,n);return!r&&s&&it(n)&&(r=uR(e,n,a),r===void 0&&(r=uR(t,n,a))),r},W1=e=>e.replace(/\$/g,"$$$$");class $3{constructor(t={}){this.logger=Qr.create("interpolator"),this.options=t,this.format=t?.interpolation?.format||(n=>n),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:a,useRawValueToEscape:s,prefix:r,prefixEscaped:i,suffix:c,suffixEscaped:d,formatSeparator:m,unescapeSuffix:f,unescapePrefix:p,nestingPrefix:y,nestingPrefixEscaped:v,nestingSuffix:$,nestingSuffixEscaped:x,nestingOptionsSeparator:w,maxReplaces:S,alwaysFormat:k}=t.interpolation;this.escape=n!==void 0?n:Bhe,this.escapeValue=a!==void 0?a:!0,this.useRawValueToEscape=s!==void 0?s:!1,this.prefix=r?Ii(r):i||"{{",this.suffix=c?Ii(c):d||"}}",this.formatSeparator=m||",",this.unescapePrefix=f?"":p?Ii(p):"-",this.unescapeSuffix=this.unescapePrefix?"":f?Ii(f):"",this.nestingPrefix=y?Ii(y):v||Ii("$t("),this.nestingSuffix=$?Ii($):x||Ii(")"),this.nestingOptionsSeparator=w||",",this.maxReplaces=S||1e3,this.alwaysFormat=k!==void 0?k:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,a)=>n?.source===a?(n.lastIndex=0,n):new RegExp(a,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,n,a,s){let r,i,c;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},m=v=>{if(!v.includes(this.formatSeparator)){const S=x3(n,d,v,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(S,void 0,a,{...s,...n,interpolationkey:v}):S}const $=v.split(this.formatSeparator),x=$.shift().trim(),w=$.join(this.formatSeparator).trim();return this.format(x3(n,d,x,this.options.keySeparator,this.options.ignoreJSONStructure),w,a,{...s,...n,interpolationkey:x})};this.resetRegExp(),!this.escapeValue&&typeof t=="string"&&/\$t\([^)]*\{[^}]*\{\{/.test(t)&&this.logger.warn("nesting options string contains interpolated variables with escapeValue: false â if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.");const f=s?.missingInterpolationHandler||this.options.missingInterpolationHandler,p=s?.interpolation?.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:v=>W1(v)},{regex:this.regexp,safeValue:v=>this.escapeValue?W1(this.escape(v)):W1(v)}].forEach(v=>{for(c=0;r=v.regex.exec(t);){const $=r[1].trim();if(i=m($),i===void 0)if(typeof f=="function"){const w=f(t,r,s);i=it(w)?w:""}else if(s&&Object.prototype.hasOwnProperty.call(s,$))i="";else if(p){i=r[0];continue}else this.logger.warn(`missed to pass in variable ${$} for interpolating ${t}`),i="";else!it(i)&&!this.useRawValueToEscape&&(i=m3(i));const x=v.safeValue(i);if(t=t.replace(r[0],x),p?(v.regex.lastIndex+=i.length,v.regex.lastIndex-=r[0].length):v.regex.lastIndex=0,c++,c>=this.maxReplaces)break}}),t}nest(t,n,a={}){let s,r,i;const c=(d,m)=>{const f=this.nestingOptionsSeparator;if(!d.includes(f))return d;const p=d.split(new RegExp(`${Ii(f)}[ ]*{`));let y=`{${p[1]}`;d=p[0],y=this.interpolate(y,i);const v=y.match(/'/g),$=y.match(/"/g);((v?.length??0)%2===0&&!$||($?.length??0)%2!==0)&&(y=y.replace(/'/g,'"'));try{i=JSON.parse(y),m&&(i={...m,...i})}catch(x){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,x),`${d}${f}${y}`}return i.defaultValue&&i.defaultValue.includes(this.prefix)&&delete i.defaultValue,d};for(;s=this.nestingRegexp.exec(t);){let d=[];i={...a},i=i.replace&&!it(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;const m=/{.*}/.test(s[1])?s[1].lastIndexOf("}")+1:s[1].indexOf(this.formatSeparator);if(m!==-1&&(d=s[1].slice(m).split(this.formatSeparator).map(f=>f.trim()).filter(Boolean),s[1]=s[1].slice(0,m)),r=n(c.call(this,s[1].trim(),i),i),r&&s[0]===t&&!it(r))return r;it(r)||(r=m3(r)),r||(this.logger.warn(`missed to resolve ${s[1]} for nesting ${t}`),r=""),d.length&&(r=d.reduce((f,p)=>this.format(f,p,a.lng,{...a,interpolationkey:s[1].trim()}),r.trim())),t=t.replace(s[0],r),this.regexp.lastIndex=0}return t}}const Whe=e=>{let t=e.toLowerCase().trim();const n={};if(e.includes("(")){const a=e.split("(");t=a[0].toLowerCase().trim();const s=a[1].slice(0,-1);t==="currency"&&!s.includes(":")?n.currency||(n.currency=s.trim()):t==="relativetime"&&!s.includes(":")?n.range||(n.range=s.trim()):s.split(";").forEach(i=>{if(i){const[c,...d]=i.split(":"),m=d.join(":").trim().replace(/^'+|'+$/g,""),f=c.trim();n[f]||(n[f]=m),m==="false"&&(n[f]=!1),m==="true"&&(n[f]=!0),isNaN(m)||(n[f]=parseInt(m,10))}})}return{formatName:t,formatOptions:n}},w3=e=>{const t={};return(n,a,s)=>{let r=s;s&&s.interpolationkey&&s.formatParams&&s.formatParams[s.interpolationkey]&&s[s.interpolationkey]&&(r={...r,[s.interpolationkey]:void 0});const i=a+JSON.stringify(r);let c=t[i];return c||(c=e(mh(a),s),t[i]=c),c(n)}},Yhe=e=>(t,n,a)=>e(mh(n),a)(t);class Qhe{constructor(t={}){this.logger=Qr.create("formatter"),this.options=t,this.init(t)}init(t,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const a=n.cacheInBuiltFormats?w3:Yhe;this.formats={number:a((s,r)=>{const i=new Intl.NumberFormat(s,{...r});return c=>i.format(c)}),currency:a((s,r)=>{const i=new Intl.NumberFormat(s,{...r,style:"currency"});return c=>i.format(c)}),datetime:a((s,r)=>{const i=new Intl.DateTimeFormat(s,{...r});return c=>i.format(c)}),relativetime:a((s,r)=>{const i=new Intl.RelativeTimeFormat(s,{...r});return c=>i.format(c,r.range||"day")}),list:a((s,r)=>{const i=new Intl.ListFormat(s,{...r});return c=>i.format(c)})}}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=w3(n)}format(t,n,a,s={}){if(!n||t==null)return t;const r=n.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&!r[0].includes(")")&&r.find(c=>c.includes(")"))){const c=r.findIndex(d=>d.includes(")"));r[0]=[r[0],...r.splice(1,c)].join(this.formatSeparator)}return r.reduce((c,d)=>{const{formatName:m,formatOptions:f}=Whe(d);if(this.formats[m]){let p=c;try{const y=s?.formatParams?.[s.interpolationkey]||{},v=y.locale||y.lng||s.locale||s.lng||a;p=this.formats[m](c,v,{...f,...s,...y})}catch(y){this.logger.warn(y)}return p}else this.logger.warn(`there was no format function for ${m}`);return c},t)}}const Xhe=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Zhe extends Mw{constructor(t,n,a,s={}){super(),this.backend=t,this.store=n,this.services=a,this.languageUtils=a.languageUtils,this.options=s,this.logger=Qr.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=s.maxParallelReads||10,this.readingCalls=0,this.maxRetries=s.maxRetries>=0?s.maxRetries:5,this.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(a,s.backend,s)}queueLoad(t,n,a,s){const r={},i={},c={},d={};return t.forEach(m=>{let f=!0;n.forEach(p=>{const y=`${m}|${p}`;!a.reload&&this.store.hasResourceBundle(m,p)?this.state[y]=2:this.state[y]<0||(this.state[y]===1?i[y]===void 0&&(i[y]=!0):(this.state[y]=1,f=!1,i[y]===void 0&&(i[y]=!0),r[y]===void 0&&(r[y]=!0),d[p]===void 0&&(d[p]=!0)))}),f||(c[m]=!0)}),(Object.keys(r).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(r),pending:Object.keys(i),toLoadLanguages:Object.keys(c),toLoadNamespaces:Object.keys(d)}}loaded(t,n,a){const s=t.split("|"),r=s[0],i=s[1];n&&this.emit("failedLoading",r,i,n),!n&&a&&this.store.addResourceBundle(r,i,a,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&a&&(this.state[t]=0);const c={};this.queue.forEach(d=>{Ohe(d.loaded,[r],i),Xhe(d,t),n&&d.errors.push(n),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(m=>{c[m]||(c[m]={});const f=d.loaded[m];f.length&&f.forEach(p=>{c[m][p]===void 0&&(c[m][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",c),this.queue=this.queue.filter(d=>!d.done)}read(t,n,a,s=0,r=this.retryTimeout,i){if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:a,tried:s,wait:r,callback:i});return}this.readingCalls++;const c=(m,f)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(m&&f&&s<this.maxRetries){setTimeout(()=>{this.read(t,n,a,s+1,r*2,i)},r);return}i(m,f)},d=this.backend[a].bind(this.backend);if(d.length===2){try{const m=d(t,n);m&&typeof m.then=="function"?m.then(f=>c(null,f)).catch(c):c(null,m)}catch(m){c(m)}return}return d(t,n,c)}prepareLoading(t,n,a={},s){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),s&&s();it(t)&&(t=this.languageUtils.toResolveHierarchy(t)),it(n)&&(n=[n]);const r=this.queueLoad(t,n,a,s);if(!r.toLoad.length)return r.pending.length||s(),null;r.toLoad.forEach(i=>{this.loadOne(i)})}load(t,n,a){this.prepareLoading(t,n,{},a)}reload(t,n,a){this.prepareLoading(t,n,{reload:!0},a)}loadOne(t,n=""){const a=t.split("|"),s=a[0],r=a[1];this.read(s,r,"read",void 0,void 0,(i,c)=>{i&&this.logger.warn(`${n}loading namespace ${r} for language ${s} failed`,i),!i&&c&&this.logger.log(`${n}loaded namespace ${r} for language ${s}`,c),this.loaded(t,i,c)})}saveMissing(t,n,a,s,r,i={},c=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${a}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend?.create){const d={...i,isUpdate:r},m=this.backend.create.bind(this.backend);if(m.length<6)try{let f;m.length===5?f=m(t,n,a,s,d):f=m(t,n,a,s),f&&typeof f.then=="function"?f.then(p=>c(null,p)).catch(c):c(null,f)}catch(f){c(f)}else m(t,n,a,s,c,d)}!t||!t[0]||this.store.addResource(t[0],n,a,s)}}}const Y1=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),it(e[1])&&(t.defaultValue=e[1]),it(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(a=>{t[a]=n[a]})}return t},interpolation:{escapeValue:!0,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),k3=e=>(it(e.ns)&&(e.ns=[e.ns]),it(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),it(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes("cimode")&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),lb=()=>{},Jhe=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class Og extends Mw{constructor(t={},n){if(super(),this.options=k3(t),this.services={},this.logger=Qr,this.modules={external:[]},Jhe(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(t={},n){this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),t.defaultNS==null&&t.ns&&(it(t.ns)?t.defaultNS=t.ns:t.ns.includes("translation")||(t.defaultNS=t.ns[0]));const a=Y1();this.options={...a,...this.options,...k3(t)},this.options.interpolation={...a.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=a.overloadTranslationOptionHandler);const s=m=>m?typeof m=="function"?new m:m:null;if(!this.options.isClone){this.modules.logger?Qr.init(s(this.modules.logger),this.options):Qr.init(null,this.options);let m;this.modules.formatter?m=this.modules.formatter:m=Qhe;const f=new y3(this.options);this.store=new h3(this.options.resources,this.options);const p=this.services;p.logger=Qr,p.resourceStore=this.store,p.languageUtils=f,p.pluralResolver=new Ghe(f,{prepend:this.options.pluralSeparator}),m&&(p.formatter=s(m),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new $3(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new Zhe(s(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(y,...v)=>{this.emit(y,...v)}),this.modules.languageDetector&&(p.languageDetector=s(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=s(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new Fx(this.services,this.options),this.translator.on("*",(y,...v)=>{this.emit(y,...v)}),this.modules.external.forEach(y=>{y.init&&y.init(this)})}if(this.format=this.options.interpolation.format,n||(n=lb),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const m=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);m.length>0&&m[0]!=="dev"&&(this.options.lng=m[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(m=>{this[m]=(...f)=>this.store[m](...f)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(m=>{this[m]=(...f)=>(this.store[m](...f),this)});const c=Zf(),d=()=>{const m=(f,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),c.resolve(p),n(f,p)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return m(null,this.t.bind(this));this.changeLanguage(this.options.lng,m)};return this.options.resources||!this.options.initAsync?d():setTimeout(d,0),c}loadResources(t,n=lb){let a=n;const s=it(t)?t:this.language;if(typeof t=="function"&&(a=t),!this.options.resources||this.options.partialBundledLanguages){if(s?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return a();const r=[],i=c=>{if(!c||c==="cimode")return;this.services.languageUtils.toResolveHierarchy(c).forEach(m=>{m!=="cimode"&&(r.includes(m)||r.push(m))})};s?i(s):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>i(d)),this.options.preload?.forEach?.(c=>i(c)),this.services.backendConnector.load(r,this.options.ns,c=>{!c&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),a(c)})}else a(null)}reloadResources(t,n,a){const s=Zf();return typeof t=="function"&&(a=t,t=void 0),typeof n=="function"&&(a=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),a||(a=lb),this.services.backendConnector.reload(t,n,r=>{s.resolve(),a(r)}),s}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&ZV.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!["cimode","dev"].includes(t)){for(let n=0;n<this.languages.length;n++){const a=this.languages[n];if(!["cimode","dev"].includes(a)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}!this.resolvedLanguage&&!this.languages.includes(t)&&this.store.hasLanguageSomeTranslations(t)&&(this.resolvedLanguage=t,this.languages.unshift(t))}}changeLanguage(t,n){this.isLanguageChangingTo=t;const a=Zf();
vendor: 2,182 bytes, line 236
236this.emit("languageChanging",t);const s=c=>{this.language=c,this.languages=this.services.languageUtils.toResolveHierarchy(c),this.resolvedLanguage=void 0,this.setResolvedLanguage(c)},r=(c,d)=>{d?this.isLanguageChangingTo===t&&(s(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,a.resolve((...m)=>this.t(...m)),n&&n(c,(...m)=>this.t(...m))},i=c=>{!t&&!c&&this.services.languageDetector&&(c=[]);const d=it(c)?c:c&&c[0],m=this.store.hasLanguageSomeTranslations(d)?d:this.services.languageUtils.getBestMatchFromCodes(it(c)?[c]:c);m&&(this.language||s(m),this.translator.language||this.translator.changeLanguage(m),this.services.languageDetector?.cacheUserLanguage?.(m)),this.loadResources(m,f=>{r(f,m)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?i(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(i):this.services.languageDetector.detect(i):i(t),a}getFixedT(t,n,a,s){const r=s?.scopeNs,i=(c,d,...m)=>{let f;typeof d!="object"?f=this.options.overloadTranslationOptionHandler([c,d].concat(m)):f={...d},f.lng=f.lng||i.lng,f.lngs=f.lngs||i.lngs;const p=f.ns!==void 0&&f.ns!==null;f.ns=f.ns||i.ns,f.keyPrefix!==""&&(f.keyPrefix=f.keyPrefix||a||i.keyPrefix);const y={...this.options,...f};Array.isArray(r)&&!p&&(y.ns=r),typeof f.keyPrefix=="function"&&(f.keyPrefix=Bd(f.keyPrefix,y));const v=this.options.keySeparator||".";let $;return f.keyPrefix&&Array.isArray(c)?$=c.map(x=>(typeof x=="function"&&(x=Bd(x,y)),`${f.keyPrefix}${v}${x}`)):(typeof c=="function"&&(c=Bd(c,y)),$=f.keyPrefix?`${f.keyPrefix}${v}${c}`:c),this.t($,f)};return it(t)?i.lng=t:i.lngs=t,i.ns=n,i.keyPrefix=a,i}t(...t){return this.translator?.translate(...t)}exists(...t){return this.translator?.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;
vendor: 4,559 bytes, line 236
236if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const a=n.lng||this.resolvedLanguage||this.languages[0],s=this.options?this.options.fallbackLng:!1,r=this.languages[this.languages.length-1];if(a.toLowerCase()==="cimode")return!0;const i=(c,d)=>{const m=this.services.backendConnector.state[`${c}|${d}`];return m===-1||m===0||m===2};if(n.precheck){const c=n.precheck(this,i);if(c!==void 0)return c}return!!(this.hasResourceBundle(a,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(a,t)&&(!s||i(r,t)))}loadNamespaces(t,n){const a=Zf();return this.options.ns?(it(t)&&(t=[t]),t.forEach(s=>{this.options.ns.includes(s)||this.options.ns.push(s)}),this.loadResources(s=>{a.resolve(),n&&n(s)}),a):(n&&n(),Promise.resolve())}loadLanguages(t,n){const a=Zf();it(t)&&(t=[t]);const s=this.options.preload||[],r=t.filter(i=>!s.includes(i)&&this.services.languageUtils.isSupportedCode(i));return r.length?(this.options.preload=s.concat(r),this.loadResources(i=>{a.resolve(),n&&n(i)}),a):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!t)return"rtl";try{const s=new Intl.Locale(t);if(s&&s.getTextInfo){const r=s.getTextInfo();if(r&&r.direction)return r.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services?.languageUtils||new y3(Y1());return t.toLowerCase().indexOf("-latn")>1?"ltr":n.includes(a.getLanguagePartFromCode(t))||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},n){const a=new Og(t,n);return a.createInstance=Og.createInstance,a}cloneInstance(t={},n=lb){const a=t.forkResourceStore;a&&delete t.forkResourceStore;const s={...this.options,...t,isClone:!0},r=new Og(s);if((t.debug!==void 0||t.prefix!==void 0)&&(r.logger=r.logger.clone(t)),["store","services","language"].forEach(c=>{r[c]=this[c]}),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},a){const c=Object.keys(this.store.data).reduce((d,m)=>(d[m]={...this.store.data[m]},d[m]=Object.keys(d[m]).reduce((f,p)=>(f[p]={...d[m][p]},f),d[m]),d),{});r.store=new h3(c,s),r.services.resourceStore=r.store}if(t.interpolation){const d={...Y1().interpolation,...this.options.interpolation,...t.interpolation},m={...s,interpolation:d};r.services.interpolator=new $3(m)}return r.translator=new Fx(r.services,s),r.translator.on("*",(c,...d)=>{r.emit(c,...d)}),r.init(s,n),r.translator.options=s,r.translator.backendConnector.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},r}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const qn=Og.createInstance();qn.createInstance;qn.dir;qn.init;qn.loadResources;qn.reloadResources;qn.use;qn.changeLanguage;qn.getFixedT;qn.t;qn.exists;qn.setDefaultNamespace;qn.hasLoadedNamespace;qn.loadNamespaces;qn.loadLanguages;var Q1,C3;function eye(){return C3||(C3=1,Q1={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Q1}var tye=eye();const nye=il(tye);var aye=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function S3(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(nye[n[1]]||e.charAt(e.length-2)==="/")&&(t.voidElement=!0),t.name.startsWith("!--"))){var a=e.indexOf("-->");return{type:"comment",comment:a!==-1?e.slice(4,a):""}}for(var s=new RegExp(aye),r=null;(r=s.exec(e))!==null;)if(r[0].trim())if(r[1]){var i=r[1].trim(),c=[i,""];i.indexOf("=")>-1&&(c=i.split("=")),t.attrs[c[0]]=c[1],s.lastIndex--}else r[2]&&(t.attrs[r[2]]=r[3].trim().substring(1,r[3].length-1));return t}var oye=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,sye=/^\s*$/,rye=Object.create(null);function e9(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?(function(n){var a=[];for(var s in n)a.push(s+'="'+n[s]+'"');return a.length?" "+a.join(" "):""})(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(e9,"")+"</"+t.name+">";
vendor: 1,424 bytes, line 236
236case"comment":return e+"<!--"+t.comment+"-->"}}var iye={parse:function(e,t){t||(t={}),t.components||(t.components=rye);var n,a=[],s=[],r=-1,i=!1;if(e.indexOf("<")!==0){var c=e.indexOf("<");a.push({type:"text",content:c===-1?e:e.substring(0,c)})}return e.replace(oye,function(d,m){if(i){if(d!=="</"+n.name+">")return;i=!1}var f,p=d.charAt(1)!=="/",y=d.startsWith("<!--"),v=m+d.length,$=e.charAt(v);if(y){var x=S3(d);return r<0?(a.push(x),a):((f=s[r]).children.push(x),a)}if(p&&(r++,(n=S3(d)).type==="tag"&&t.components[n.name]&&(n.type="component",i=!0),n.voidElement||i||!$||$==="<"||n.children.push({type:"text",content:e.slice(v,e.indexOf("<",v))}),r===0&&a.push(n),(f=s[r-1])&&f.children.push(n),s[r]=n),(!p||n.voidElement)&&(r>-1&&(n.voidElement||n.name===d.slice(2,-1))&&(r--,n=r===-1?a:s[r]),!i&&$!=="<"&&$)){f=r===-1?a:s[r].children;var w=e.indexOf("<",v),S=e.slice(v,w===-1?void 0:w);sye.test(S)&&(S=" "),(w>-1&&r+f.length>=0||S!==" ")&&f.push({type:"text",content:S})}}),a},stringify:function(e){return e.reduce(function(t,n){return t+e9("",n)},"")}};const ex=(e,t,n,a)=>{const s=[n,{code:t,...a||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(s,"warn","react-i18next::",!0);Ro(s[0])&&(s[0]=`react-i18next:: ${s[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...s):console?.warn&&console.warn(...s)},A3={},ph=(e,t,n,a)=>{Ro(n)&&A3[n]||(Ro(n)&&(A3[n]=new Date),ex(e,t,n,a))},t9=(e,t)=>
236()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},mR=(e,t,n)=>{e.loadNamespaces(t,t9(e,n))},T3=(e,t,n,a)=>{if(Ro(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return mR(e,n,a);n.forEach(s=>{e.options.ns.indexOf(s)<0&&e.options.ns.push(s)}),e.loadLanguages(t,t9(e,a))},lye=(e,t,n={})=>!t.languages||!t.languages.length?(ph(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(a,s)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&a.services.backendConnector.backend&&a.isLanguageChangingTo&&!s(a.isLanguageChangingTo,e))return!1}}),Ro=e=>typeof e=="string",Vi=e=>typeof e=="object"&&e!==null,cye=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,dye={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"â¦","…":"â¦","/":"/","/":"/"},uye=e=>dye[e],n9=e=>e.replace(cye,uye);let pR={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:n9,transDefaultProps:void 0};const mye=(e={})=>{pR={...pR,...e}},aj=()=>pR;let a9;const pye=e=>{a9=e},oj=()=>a9,tx=(e,t)=>{if(!e)return!1;const n=e.props?.children??e.children;return t?n.length>0:!!n},Ag=e=>{if(!e)return[];const t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?ac(t):t},fye=e=>Array.isArray(e)&&e.every(h.isValidElement),ac=e=>Array.isArray(e)?e:[e],gye=(e,t)=>{const n={...t};return n.props={...t.props,...e.props},n},hye=e=>{const t={};if(!e)return t;const n=a=>{ac(a).forEach(r=>{Ro(r)||(tx(r)?n(Ag(r)):Vi(r)&&!h.isValidElement(r)&&Object.assign(t,r))})};return n(e),t},fR=(e,t,n,a)=>{if(!e)return"";let s="";const r=ac(e),i=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return r.forEach((c,d)=>{if(Ro(c)){s+=`${c}`;return}if(h.isValidElement(c)){const{props:m,type:f}=c,p=Object.keys(m).length,y=i.indexOf(f)>-1,v=m.children;if(!v&&y&&!p){s+=`<${f}/>`;return}if(!v&&(!y||p)||m.i18nIsDynamicList){s+=`<${d}></${d}>`;return}if(y&&p<=1){const x=Ro(v)?v:fR(v,t,n,a);s+=`<${f}>${x}</${f}>`;return}const $=fR(v,t,n,a);s+=`<${d}>${$}</${d}>`;return}if(c===null){ex(n,"TRANS_NULL_VALUE","Passed in a null value as child",{i18nKey:a});return}if(Vi(c)){const{format:m,...f}=c,p=Object.keys(f);if(p.length===1){const y=m?`${p[0]}, ${m}`:p[0];s+=`{{${y}}}`;return}ex(n,"TRANS_INVALID_OBJ","Invalid child - Object should only have keys {{ value, format }} (format is optional).",{i18nKey:a,child:c});return}ex(n,"TRANS_INVALID_VAR","Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.",{i18nKey:a,child:c})}),s},yye=(e,t=[],n={})=>{if(!e)return e;const a=Object.keys(n),s=[...t,...a];let r="",i=0;for(;i<e.length;)if(e[i]==="<"){let c=!1;const d=e.slice(i).match(/^<\/(\d+|[a-zA-Z][a-zA-Z0-9_-]*)>/);if(d){const m=d[1];(/^\d+$/.test(m)||s.includes(m))&&(c=!0,r+=d[0],i+=d[0].length)}if(!c){const m=e.slice(i).match(/^<(\d+|[a-zA-Z][a-zA-Z0-9_-]*)(\s+[\w-]+(?:=(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*(\/)?>/);if(m){const f=m[1];(/^\d+$/.test(f)||s.includes(f))&&(c=!0,r+=m[0],i+=m[0].length)}}c||(r+="<",i+=1)}else r+=e[i],i+=1;return r},vye=(e,t,n,a,s,r,i)=>{if(n==="")return[];const c=s.transKeepBasicHtmlNodesFor||[],d=n&&new RegExp(c.map(k=>`<${k}`).join("|")).test(n);if(!e&&!t&&!d&&!i)return[n];const m=t??{},f=k=>{ac(k).forEach(R=>{Ro(R)||(tx(R)?f(Ag(R)):Vi(R)&&!h.isValidElement(R)&&Object.assign(m,R))})};f(e);const p=yye(n,c,m),y=iye.parse(`<0>${p}</0>`),v={...m,...r},$=(k,T,R)=>{const _=Ag(k),P=w(_,T.children,R);return fye(_)&&P.length===0||k.props?.i18nIsDynamicList?_:P},x=(k,T,R,_,P)=>{k.dummy?(k.children=T,R.push(h.cloneElement(k,{key:_},P?void 0:T))):R.push(...h.Children.map([k],j=>{if(j.type===h.Fragment||j.props?.i18nIsDynamicList!==void 0){const I={key:_};
236return j&&j.props&&Object.keys(j.props).forEach(z=>{z==="children"||z==="i18nIsDynamicList"||(I[z]=j.props[z])}),h.createElement(j.type,I,P?null:T)}const N={key:_};return j&&j.props&&Object.keys(j.props).forEach(I=>{I==="ref"||I==="children"||(N[I]=j.props[I])}),h.cloneElement(j,N,P?null:T)}))},w=(k,T,R)=>{const _=ac(k),P=ac(T),j={};return P.reduce((N,I,z)=>{const E=I.children?.[0]?.content&&a.services.interpolator.interpolate(I.children[0].content,v,a.language);if(I.type==="tag"){let L=_[parseInt(I.name,10)];!L&&t&&(L=t[I.name]),R.length===1&&!L&&(L=R[0][I.name]),L||(L={});const O={...I.attrs};i&&Object.keys(O).forEach(H=>{const ee=O[H];Ro(ee)&&(O[H]=n9(ee))});const V=Object.keys(O).length!==0?gye({props:O},L):L,ne=h.isValidElement(V),q=ne&&tx(I,!0)&&!I.voidElement,M=d&&Vi(V)&&V.dummy&&!ne,F=Vi(t)&&Object.hasOwnProperty.call(t,I.name);if(Ro(V)){const H=a.services.interpolator.interpolate(V,v,a.language);N.push(H)}else if(tx(V)||q){const H=$(V,I,R);x(V,H,N,z)}else if(M){const H=w(_,I.children,R);x(V,H,N,z)}else if(Number.isNaN(parseFloat(I.name)))if(F){const H=$(V,I,R);x(V,H,N,z,I.voidElement)}else if(s.transSupportBasicHtmlNodes&&c.indexOf(I.name)>-1)if(I.voidElement)N.push(h.createElement(I.name,{key:`${I.name}-${z}`}));else{const H=j[I.name]||0;j[I.name]=H+1;let ee,B=0;for(let de=0;de<_.length;de+=1){const Y=_[de];if(h.isValidElement(Y)&&Y.type===I.name){if(B===H){ee=Y;break}B+=1}}
236const G=ee?ac(Ag(ee)):_,Q=w(G,I.children,R);N.push(h.createElement(I.name,{key:`${I.name}-${z}`},Q))}else if(I.voidElement)N.push(`<${I.name} />`);else{const H=w(_,I.children,R);N.push(`<${I.name}>${H}</${I.name}>`)}else if(Vi(V)&&!ne){const H=I.children[0]?E:null;H&&N.push(H)}else x(V,E,N,z,I.children.length!==1||!E)}else if(I.type==="text"){const L=s.transWrapTextNodes,O=typeof s.unescape=="function"?s.unescape:aj().unescape,V=i?O(a.services.interpolator.interpolate(I.content,v,a.language)):a.services.interpolator.interpolate(I.content,v,a.language);L?N.push(h.createElement(L,{key:`${I.name}-${z}`},V)):N.push(V)}return N},[])},S=w([{dummy:!0,children:e||[]}],y,ac(e||[]));return Ag(S[0])},o9=(e,t,n)=>{const a=e.key||t,s=h.cloneElement(e,{key:a});if(!s.props||!s.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return s;function r(){return h.createElement(h.Fragment,null,s)}return h.createElement(r,{key:a})},bye=(e,t)=>e.map((n,a)=>o9(n,a,t)),xye=(e,t)=>{const n={};return Object.keys(e).forEach(a=>{Object.assign(n,{[a]:o9(e[a],a,t)})}),n},$ye=(e,t,n,a)=>e?Array.isArray(e)?bye(e,t):Vi(e)?xye(e,t):(ph(n,"TRANS_INVALID_COMPONENTS",'<Trans /> "components" prop expects an object or array',{i18nKey:a}),null):null,wye=e=>!Vi(e)||Array.isArray(e)?!1:Object.keys(e).reduce((t,n)=>t&&Number.isNaN(Number.parseFloat(n)),!0);function kye({children:e,count:t,parent:n,i18nKey:a,context:s,tOptions:r={},values:i,defaults:c,components:d,ns:m,i18n:f,t:p,shouldUnescape:y,...v}){const $=f||oj();if(!$)return ph($,"NO_I18NEXT_INSTANCE","Trans: You need to pass in an i18next instance using i18nextReactModule",{i18nKey:a}),e;const x=p||$.t.bind($)||(ee=>ee),w={...aj(),...$.options?.react};let S=m||x.ns||$.options?.defaultNS;S=Ro(S)?[S]:S||["translation"];const{transDefaultProps:k}=w,T=k?.tOptions?{...k.tOptions,...r}:r,R=y??k?.shouldUnescape,_=k?.values?{...k.values,...i}:i,P=k?.components?{...k.components,...d}:d,j=fR(e,w,$,a),N=c||T?.defaultValue||j||w.transEmptyNodeValue||(typeof a=="function"?Bd(a):a),{hashTransKey:I}=w,z=a||(I?I(j||N):j||N);$.options?.interpolation?.defaultVariables?i=_&&Object.keys(_).length>0?{..._,...$.options.interpolation.defaultVariables}:{...$.options.interpolation.defaultVariables}:i=_;const E=hye(e);E&&typeof E.count=="number"&&t===void 0&&(t=E.count);const L=i||t!==void 0&&!$.options?.interpolation?.alwaysFormat||!e?T.interpolation:{interpolation:{...T.interpolation,prefix:"#$?",suffix:"?$#"}},O={...T,context:s||T.context,count:t,...i,...L,defaultValue:N,ns:S};let V=z?x(z,O):N;V===z&&N&&(V=N);const ne=$ye(P,V,$,a);let q=ne||e,M=null;wye(ne)&&(M=ne,q=e);const F=vye(q,M,V,$,w,O,R),H=n??w.defaultTransParent;return H?h.createElement(H,v,F):F}const Cye={type:"3rdParty",init(e){mye(e.options.react),pye(e)}},s9=h.createContext();class Sye{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}function Aye({children:e,count:t,parent:n,i18nKey:a,context:s,tOptions:r={},values:i,defaults:c,components:d,ns:m,i18n:f,t:p,shouldUnescape:y,...v}){const{i18n:$,defaultNS:x}=h.useContext(s9)||{},w=f||$||oj(),S=p||w?.t.bind(w);return kye({children:e,count:t,parent:n,i18nKey:a,context:s,tOptions:r,values:i,defaults:c,components:d,ns:m||S?.ns||x||w?.options?.defaultNS,i18n:w,t:p,shouldUnescape:y,...v})}const Tye=(e,t)=>{if(Ro(t))return t;if(Vi(t)&&Ro(t.defaultValue))return t.defaultValue;if(typeof e=="function")return"";if(Array.isArray(e)){const n=e[e.length-1];return typeof n=="function"?"":n}return e},Rye={t:Tye,ready:!1},Pye=()=>()=>{},W=(e,t={})=>{const{i18n:n}=t,{i18n:a,defaultNS:s}=h.useContext(s9)||{},r=n||a||oj();r&&!r.reportNamespaces&&(r.reportNamespaces=new Sye),r||ph(r,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const i=h.useMemo(()=>({...aj(),...r?.options?.react,...t}),[r,t]),{useSuspense:c,keyPrefix:d}=i,m=s||r?.options?.defaultNS,f=Ro(m)?[m]:m||["translation"],p=h.useMemo(()=>f,f);r?.reportNamespaces?.addUsedNamespaces?.(p);const y=h.useRef(0),v=h.useCallback(I=>{if(!r)return Pye;const{bindI18n:z,bindI18nStore:E}=i,L=()=>{y.current+=1,I()};return z&&r.on(z,L),E&&r.store.on(E,L),()=>{z&&z.split(" ").forEach(O=>r.off(O,L)),E&&E.split(" ").forEach(O=>r.store.off(O,L))}},[r,i]),$=h.useRef(),x=h.useCallback(()=>
236{if(!r)return Rye;const I=!!(r.isInitialized||r.initializedStoreOnce)&&p.every(ne=>lye(ne,r,i)),z=t.lng||r.language,E=y.current,L=$.current;if(L&&L.ready===I&&L.lng===z&&L.keyPrefix===d&&L.revision===E)return L;const V={t:r.getFixedT(z,i.nsMode==="fallback"?p:p[0],d,{scopeNs:p}),ready:I,lng:z,keyPrefix:d,revision:E};return $.current=V,V},[r,p,d,i,t.lng]),[w,S]=h.useState(0),{t:k,ready:T}=Wfe.useSyncExternalStore(v,x,x);h.useEffect(()=>{if(r&&!T&&!c){const I=()=>S(z=>z+1);t.lng?T3(r,t.lng,p,I):mR(r,p,I)}},[r,t.lng,p,T,c,w]);const R=r||{},_=h.useRef(null),P=h.useRef(),j=I=>{const z=Object.getOwnPropertyDescriptors(I);z.__original&&delete z.__original;const E=Object.create(Object.getPrototypeOf(I),z);if(!Object.prototype.hasOwnProperty.call(E,"__original"))try{Object.defineProperty(E,"__original",{value:I,writable:!1,enumerable:!1,configurable:!1})}catch{}return E},N=h.useMemo(()=>{const I=R,z=I?.language;let E=I;I&&(_.current&&_.current.__original===I?P.current!==z?(E=j(I),_.current=E,P.current=z):E=_.current:(E=j(I),_.current=E,P.current=z));const L=!T&&!c?(...V)=>(ph(r,"USE_T_BEFORE_READY","useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t."),k(...V)):k,O=[L,E,T];return O.t=L,O.i18n=E,O.ready=T,O},[k,R,T,R.resolvedLanguage,R.language,R.languages]);if(r&&c&&!T)throw new Promise(I=>{const z=()=>I();t.lng?T3(r,t.lng,p,z):mR(r,p,z)});return N};function _ye(){const{t:e}=W(),t=h.useMemo(()=>Yge(navigator.userAgent),[]),[n,a]=h.useState(!1);if(!t.inApp)return null;const s=t.app==="wechat"?e("common.inAppBrowser.hintWechat"):e("common.inAppBrowser.hintGeneric");async function r(){try{await navigator.clipboard.writeText(window.location.href),ie.success(e("common.copied"))}catch{ie.error(e("common.copyFailed"))}}return o.jsx(Cw,{open:!n,onOpenChange:i=>!i&&a(!0),children:o.jsxs(ay,{children:[o.jsxs(Sw,{children:[o.jsx(oy,{children:e("common.inAppBrowser.title")}),o.jsx(sy,{children:o.jsx(Aye,{i18nKey:"common.inAppBrowser.description",components:{b:o.jsx("strong",{className:"font-semibold text-[color:var(--foreground)]"})}})})]}),o.jsx("p",{className:"text-13 font-medium text-[color:var(--foreground)]",children:s}),o.jsx(K,{size:"lg",className:"mt-3 w-full",onClick:()=>void r(),children:e("common.inAppBrowser.copyLink")}),o.jsx(Aw,{children:o.jsx(ry,{children:e("common.inAppBrowser.continueAnyway")})})]})})}function sj(){return"https://onehop.ai/api"}const r9="NEXT_LOCALE",i9=["en","zh-Hans"];function jye(e){return!!e&&i9.includes(e)}function Nye(e){return jye(e)?e:Xi}function Ew(){if(typeof document>"u")return Xi;const e=document.cookie.match(new RegExp(`(?:^|; )${r9}=([^;]*)`));if(e){const t=decodeURIComponent(e[1]);return Yd(t)?t:Xi}return Dye()}function Dye(){return typeof navigator>"u"?Xi:roe(navigator.languages?.length?navigator.languages:[navigator.language])}function l9(e){document.cookie=`${r9}=${e}; path=/; max-age=31536000; samesite=lax`}function c9(e){typeof document>"u"||(document.documentElement.lang=e,document.documentElement.dir=soe(e))}const Ye=Uge({baseUrl:sj(),timeoutMs:15e3,getHeaders:()=>({"Accept-Language":Ew()})}),Ht={me:["console","me"],apiKeys:["console","api-keys"],billingSummary:["console","billing","summary"],billingTopups:["console","billing","topups"],topupBonusPreview:e=>["console","billing","topup-bonus-preview",e],freeTokens:["console","free-tokens"],usageRecords:e=>["console","usage-records",e],usageRecordModels:["console","usage-records","models"],usageRecordsSummary:e=>["console","usage-records","summary",e],usageRecordsAggregate:e=>["console","usage-records","aggregate",e],usageTrends:e=>["console","usage-records","trends",e],ledger:e=>["console","billing","ledger",e],settingsProfile:["console","settings","profile"],billingAlertConfig:["console","billing","alert-config"],consoleModels:e=>["console","models",e],notifications:["console","notifications"],notificationsUnreadCount:["console","notifications","unread-count"]};function $r(e){const t=new URLSearchParams;for(const[a,s]of Object.entries(e))s!==void 0&&s!==""&&t.set(a,s);const n=t.toString();return n?`?${n}`:""}function qa(){return Ue({queryKey:Ht.me,queryFn:()=>Ye.request("/console/me"),retry:!1})}const Mye=void 0,Eye=void 0;function Iye(){const{t:e}=W(),t=qa(),n=ls(),[a,s]=h.useState(!1),r=h.useRef(null),i=n.pathname===Be.admin||n.pathname.startsWith(`${Be.admin}/`),c=n.pathname===Be.chat;return h.useEffect(()=>{if(!a||!window.Tawk_API)return;const d=t.data?.user;if(d){if(r.current===d.publicId)return;Ye.request("/console/support/tawk-credentials").then(m=>{window.Tawk_API.login?.({userId:m.userId,hash:m.hash,name:m.name,email:m.email},f=>{f&&console.warn("[tawk] login rejected",f)}),r.current=m.userId}).catch(()=>{})}else r.current&&(window.Tawk_API.logout?.(),r.current=null)},[a,t.data]),o.jsx(Ece,{propertyId:Mye,widgetId:Eye,label:e("support.liveChat"),hidden:i||c,hideOnMobile:!0,yOffset:80,onScriptReady:()=>s(!0)})}/** 237 * @license lucide-react v1.16.0 - ISC 238 * 239 * This source code is licensed under the ISC license. 240 * See the LICENSE file in the root directory of this source tree. 241 */const d9=(...e)=>
241e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();/** 242 * @license lucide-react v1.16.0 - ISC 243 * 244 * This source code is licensed under the ISC license. 245 * See the LICENSE file in the root directory of this source tree. 246 */const Oye=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** 247 * @license lucide-react v1.16.0 - ISC 248 * 249 * This source code is licensed under the ISC license. 250 * See the LICENSE file in the root directory of this source tree. 251 */const Lye=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,a)=>a?a.toUpperCase():n.toLowerCase());/** 252 * @license lucide-react v1.16.0 - ISC 253 * 254 * This source code is licensed under the ISC license. 255 * See the LICENSE file in the root directory of this source tree. 256 */const R3=e=>{const t=Lye(e);return t.charAt(0).toUpperCase()+t.slice(1)};/** 257 * @license lucide-react v1.16.0 - ISC 258 * 259 * This source code is licensed under the ISC license. 260 * See the LICENSE file in the root directory of this source tree. 261 */var X1={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 262 * @license lucide-react v1.16.0 - ISC 263 * 264 * This source code is licensed under the ISC license. 265 * See the LICENSE file in the root directory of this source tree. 266 */const Uye=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},Bye=h.createContext({}),Fye=()=>h.useContext(Bye),zye=h.forwardRef(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:a,className:s="",children:r,iconNode:i,...c},d)=>{const{size:m=24,strokeWidth:f=2,absoluteStrokeWidth:p=!1,color:y="currentColor",className:v=""}=Fye()??{},$=a??p?Number(n??f)*24/Number(t??m):n??f;return h.createElement("svg",{ref:d,...X1,width:t??m??X1.width,height:t??m??X1.height,stroke:e??y,strokeWidth:$,className:d9("lucide",v,s),...!r&&!Uye(c)&&{"aria-hidden":"true"},...c},[...i.map(([x,w])=>h.createElement(x,w)),...Array.isArray(r)?r:[r]])});/** 267 * @license lucide-react v1.16.0 - ISC 268 * 269 * This source code is licensed under the ISC license. 270 * See the LICENSE file in the root directory of this source tree. 271 */const Ce=(e,t)=>{const n=h.forwardRef(({className:a,...s},r)=>h.createElement(zye,{ref:r,iconNode:t,className:d9(`lucide-${Oye(R3(e))}`,`lucide-${e}`,a),...s}));return n.displayName=R3(e),n};/** 272 * @license lucide-react v1.16.0 - ISC 273 * 274 * This source code is licensed under the ISC license. 275 * See the LICENSE file in the root directory of this source tree. 276 */const qye=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],u9=Ce("activity",qye);/** 277 * @license lucide-react v1.16.0 - ISC 278 * 279 * This source code is licensed under the ISC license. 280 * See the LICENSE file in the root directory of this source tree. 281 */const Hye=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],m9=Ce("arrow-down",Hye);/** 282 * @license lucide-react v1.16.0 - ISC 283 * 284 * This source code is licensed under the ISC license. 285 * See the LICENSE file in the root directory of this source tree. 286 */const Vye=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Iw=Ce("arrow-left",Vye);/** 287 * @license lucide-react v1.16.0 - ISC 288 * 289 * This source code is licensed under the ISC license. 290 * See the LICENSE file in the root directory of this source tree. 291 */const Kye=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],p9=Ce("arrow-right",Kye);/** 292 * @license lucide-react v1.16.0 - ISC 293 * 294 * This source code is licensed under the ISC license. 295 * See the LICENSE file in the root directory of this source tree. 296 */const Gye=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Wye=Ce("arrow-up-down",Gye);/** 297 * @license lucide-react v1.16.0 - ISC 298 * 299 * This source code is licensed under the ISC license. 300 * See the LICENSE file in the root directory of this source tree. 301 */const Yye=[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]],Qye=Ce("arrow-up-from-line",Yye);/** 302 * @license lucide-react v1.16.0 - ISC 303 * 304 * This source code is licensed under the ISC license. 305 * See the LICENSE file in the root directory of this source tree. 306 */const Xye=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],f9=Ce("arrow-up-right",Xye);/** 307 * @license lucide-react v1.16.0 - ISC 308 * 309 * This source code is licensed under the ISC license. 310 * See the LICENSE file in the root directory of this source tree. 311 */const Zye=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],g9=Ce("arrow-up",Zye);/** 312 * @license lucide-react v1.16.0 - ISC 313 * 314 * This source code is licensed under the ISC license. 315 * See the LICENSE file in the root directory of this source tree. 316 */const Jye=[["path",{d:"M2 10v3",key:"1fnikh"}],["path",{d:"M6 6v11",key:"11sgs0"}],["path",{d:"M10 3v18",key:"yhl04a"}],["path",{d:"M14 8v7",key:"3a1oy3"}],["path",{d:"M18 5v13",key:"123xd1"}],["path",{d:"M22 10v3",key:"154ddg"}]],eve=Ce("audio-lines",Jye);/** 317 * @license lucide-react v1.16.0 - ISC 318 * 319 * This source code is licensed under the ISC license. 320 * See the LICENSE file in the root directory of this source tree. 321 */const tve=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]],nve=Ce("badge-dollar-sign",tve);/** 322 * @license lucide-react v1.16.0 - ISC 323 * 324 * This source code is licensed under the ISC license. 325 * See the LICENSE file in the root directory of this source tree. 326 */const ave=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]],h9=Ce("ban",ave);/** 327 * @license lucide-react v1.16.0 - ISC 328 * 329 * This source code is licensed under the ISC license. 330 * See the LICENSE file in the root directory of this source tree. 331 */const ove=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],rj=Ce("bell",ove);/** 332 * @license lucide-react v1.16.0 - ISC 333 * 334 * This source code is licensed under the ISC license. 335 * See the LICENSE file in the root directory of this source tree. 336 */const sve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],rve=Ce("book-open",sve);/** 337 * @license lucide-react v1.16.0 - ISC 338 * 339 * This source code is licensed under the ISC license. 340 * See the LICENSE file in the root directory of this source tree. 341 */const ive=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],y9=Ce("boxes",ive);/** 342 * @license lucide-react v1.16.0 - ISC 343 * 344 * This source code is licensed under the ISC license. 345 * See the LICENSE file in the root directory of this source tree. 346 */const lve=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],cve=Ce("chart-column",lve);
346/** 347 * @license lucide-react v1.16.0 - ISC 348 * 349 * This source code is licensed under the ISC license. 350 * See the LICENSE file in the root directory of this source tree. 351 */const dve=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],uve=Ce("check-check",dve);/** 352 * @license lucide-react v1.16.0 - ISC 353 * 354 * This source code is licensed under the ISC license. 355 * See the LICENSE file in the root directory of this source tree. 356 */const mve=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],cy=Ce("check",mve);/** 357 * @license lucide-react v1.16.0 - ISC 358 * 359 * This source code is licensed under the ISC license. 360 * See the LICENSE file in the root directory of this source tree. 361 */const pve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],zc=Ce("chevron-down",pve);/** 362 * @license lucide-react v1.16.0 - ISC 363 * 364 * This source code is licensed under the ISC license. 365 * See the LICENSE file in the root directory of this source tree. 366 */const fve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],v9=Ce("chevron-left",fve);/** 367 * @license lucide-react v1.16.0 - ISC 368 * 369 * This source code is licensed under the ISC license. 370 * See the LICENSE file in the root directory of this source tree. 371 */const gve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],gR=Ce("chevron-right",gve);/** 372 * @license lucide-react v1.16.0 - ISC 373 * 374 * This source code is licensed under the ISC license. 375 * See the LICENSE file in the root directory of this source tree. 376 */const hve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],yve=Ce("chevrons-up-down",hve);/** 377 * @license lucide-react v1.16.0 - ISC 378 * 379 * This source code is licensed under the ISC license. 380 * See the LICENSE file in the root directory of this source tree. 381 */const vve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],bve=Ce("circle-check",vve);/** 382 * @license lucide-react v1.16.0 - ISC 383 * 384 * This source code is licensed under the ISC license. 385 * See the LICENSE file in the root directory of this source tree. 386 */const xve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]],$ve=Ce("circle-dollar-sign",xve);/** 387 * @license lucide-react v1.16.0 - ISC 388 * 389 * This source code is licensed under the ISC license. 390 * See the LICENSE file in the root directory of this source tree. 391 */const wve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],b9=Ce("circle-pause",wve);/** 392 * @license lucide-react v1.16.0 - ISC 393 * 394 * This source code is licensed under the ISC license. 395 * See the LICENSE file in the root directory of this source tree. 396 */const kve=[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],x9=Ce("circle-play",kve);/** 397 * @license lucide-react v1.16.0 - ISC 398 * 399 * This source code is licensed under the ISC license. 400 * See the LICENSE file in the root directory of this source tree. 401 */const Cve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],P3=Ce("circle-x",Cve);/** 402 * @license lucide-react v1.16.0 - ISC 403 * 404 * This source code is licensed under the ISC license. 405 * See the LICENSE file in the root directory of this source tree. 406 */const Sve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],Ave=Ce("clock",Sve);/** 407 * @license lucide-react v1.16.0 - ISC 408 * 409 * This source code is licensed under the ISC license. 410 * See the LICENSE file in the root directory of this source tree. 411 */const Tve=[["path",{d:"M13.744 17.736a6 6 0 1 1-7.48-7.48",key:"bq4yh3"}],["path",{d:"M15 6h1v4",key:"11y1tn"}],["path",{d:"m6.134 14.768.866-.5 2 3.464",key:"17snzx"}],["circle",{cx:"16",cy:"8",r:"6",key:"14bfc9"}]],$9=Ce("coins",Tve);/** 412 * @license lucide-react v1.16.0 - ISC 413 * 414 * This source code is licensed under the ISC license. 415 * See the LICENSE file in the root directory of this source tree. 416 */const Rve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Ow=Ce("copy",Rve);/** 417 * @license lucide-react v1.16.0 - ISC 418 * 419 * This source code is licensed under the ISC license. 420 * See the LICENSE file in the root directory of this source tree. 421 */const Pve=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Lw=Ce("credit-card",Pve);/** 422 * @license lucide-react v1.16.0 - ISC 423 * 424 * This source code is licensed under the ISC license. 425 * See the LICENSE file in the root directory of this source tree. 426 */const _ve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],hR=Ce("dollar-sign",_ve);
426/** 427 * @license lucide-react v1.16.0 - ISC 428 * 429 * This source code is licensed under the ISC license. 430 * See the LICENSE file in the root directory of this source tree. 431 */const jve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],$u=Ce("download",jve);/** 432 * @license lucide-react v1.16.0 - ISC 433 * 434 * This source code is licensed under the ISC license. 435 * See the LICENSE file in the root directory of this source tree. 436 */const Nve=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],w9=Ce("ellipsis-vertical",Nve);/** 437 * @license lucide-react v1.16.0 - ISC 438 * 439 * This source code is licensed under the ISC license. 440 * See the LICENSE file in the root directory of this source tree. 441 */const Dve=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],Mve=Ce("ellipsis",Dve);/** 442 * @license lucide-react v1.16.0 - ISC 443 * 444 * This source code is licensed under the ISC license. 445 * See the LICENSE file in the root directory of this source tree. 446 */const Eve=[["path",{d:"m15 15 6 6",key:"1s409w"}],["path",{d:"m15 9 6-6",key:"ko1vev"}],["path",{d:"M21 16v5h-5",key:"1ck2sf"}],["path",{d:"M21 8V3h-5",key:"1qoq8a"}],["path",{d:"M3 16v5h5",key:"1t08am"}],["path",{d:"m3 21 6-6",key:"wwnumi"}],["path",{d:"M3 8V3h5",key:"1ln10m"}],["path",{d:"M9 9 3 3",key:"v551iv"}]],nx=Ce("expand",Eve);/** 447 * @license lucide-react v1.16.0 - ISC 448 * 449 * This source code is licensed under the ISC license. 450 * See the LICENSE file in the root directory of this source tree. 451 */const Ive=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],dy=Ce("external-link",Ive);/** 452 * @license lucide-react v1.16.0 - ISC 453 * 454 * This source code is licensed under the ISC license. 455 * See the LICENSE file in the root directory of this source tree. 456 */const Ove=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],k9=Ce("eye",Ove);/** 457 * @license lucide-react v1.16.0 - ISC 458 * 459 * This source code is licensed under the ISC license. 460 * See the LICENSE file in the root directory of this source tree. 461 */const Lve=[["path",{d:"M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85",key:"ryk6xj"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 14v2.2l1.6 1",key:"6m4bie"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}]],Uve=Ce("file-clock",Lve);/** 462 * @license lucide-react v1.16.0 - ISC 463 * 464 * This source code is licensed under the ISC license. 465 * See the LICENSE file in the root directory of this source tree. 466 */const Bve=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]],Fve=Ce("film",Bve);/** 467 * @license lucide-react v1.16.0 - ISC 468 * 469 * This source code is licensed under the ISC license. 470 * See the LICENSE file in the root directory of this source tree. 471 */const zve=[["path",{d:"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4",key:"1slcih"}]],qve=Ce("flame",zve);/** 472 * @license lucide-react v1.16.0 - ISC 473 * 474 * This source code is licensed under the ISC license. 475 * See the LICENSE file in the root directory of this source tree. 476 */const Hve=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],C9=Ce("gauge",Hve);/** 477 * @license lucide-react v1.16.0 - ISC 478 * 479 * This source code is licensed under the ISC license. 480 * See the LICENSE file in the root directory of this source tree. 481 */const Vve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"1sqzm4"}],["path",{d:"M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5",key:"kc0143"}],["rect",{x:"3",y:"7",width:"18",height:"4",rx:"1",key:"1hberx"}]],uy=Ce("gift",Vve);/** 482 * @license lucide-react v1.16.0 - ISC 483 * 484 * This source code is licensed under the ISC license. 485 * See the LICENSE file in the root directory of this source tree. 486 */const Kve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Gve=Ce("globe",Kve);/** 487 * @license lucide-react v1.16.0 - ISC 488 * 489 * This source code is licensed under the ISC license. 490 * See the LICENSE file in the root directory of this source tree. 491 */const Wve=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],S9=Ce("image",Wve);/** 492 * @license lucide-react v1.16.0 - ISC 493 * 494 * This source code is licensed under the ISC license. 495 * See the LICENSE file in the root directory of this source tree. 496 */const Yve=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]],Qve=Ce("inbox",Yve);/** 497 * @license lucide-react v1.16.0 - ISC 498 * 499 * This source code is licensed under the ISC license. 500 * See the LICENSE file in the root directory of this source tree. 501 */const Xve=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],Uw=Ce("key-round",Xve);/** 502 * @license lucide-react v1.16.0 - ISC 503 * 504 * This source code is licensed under the ISC license. 505 * See the LICENSE file in the root directory of this source tree. 506 */const Zve=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],Jve=Ce("layers",Zve);/** 507 * @license lucide-react v1.16.0 - ISC 508 * 509 * This source code is licensed under the ISC license. 510 * See the LICENSE file in the root directory of this source tree. 511 */const ebe=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],tbe=Ce("layout-dashboard",ebe);/** 512 * @license lucide-react v1.16.0 - ISC 513 * 514 * This source code is licensed under the ISC license. 515 * See the LICENSE file in the root directory of this source tree. 516 */const nbe=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]],ij=Ce("life-buoy",nbe);/** 517 * @license lucide-react v1.16.0 - ISC 518 * 519 * This source code is licensed under the ISC license. 520 * See the LICENSE file in the root directory of this source tree. 521 */const abe=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],obe=Ce("loader-circle",abe);/** 522 * @license lucide-react v1.16.0 - ISC 523 * 524 * This source code is licensed under the ISC license. 525 * See the LICENSE file in the root directory of this source tree. 526 */const sbe=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],rbe=Ce("lock",sbe);/** 527 * @license lucide-react v1.16.0 - ISC 528 * 529 * This source code is licensed under the ISC license. 530 * See the LICENSE file in the root directory of this source tree. 531 */const ibe=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],lbe=Ce("log-out",ibe);/** 532 * @license lucide-react v1.16.0 - ISC 533 * 534 * This source code is licensed under the ISC license. 535 * See the LICENSE file in the root directory of this source tree. 536 */const cbe=[["path",{d:"M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5",key:"e61zoh"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M20 14v4",key:"1hm744"}],["path",{d:"M20 22v.01",key:"12bgn6"}]],dbe=Ce("mail-warning",cbe);/** 537 * @license lucide-react v1.16.0 - ISC 538 * 539 * This source code is licensed under the ISC license. 540 * See the LICENSE file in the root directory of this source tree. 541 */const ube=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],lj=Ce("mail",ube);/** 542 * @license lucide-react v1.16.0 - ISC 543 * 544 * This source code is licensed under the ISC license. 545 * See the LICENSE file in the root directory of this source tree. 546 */const mbe=[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]],pbe=Ce("megaphone",mbe);/** 547 * @license lucide-react v1.16.0 - ISC 548 * 549 * This source code is licensed under the ISC license. 550 * See the LICENSE file in the root directory of this source tree. 551 */const fbe=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]],gbe=Ce("message-square-plus",fbe);/** 552 * @license lucide-react v1.16.0 - ISC 553 * 554 * This source code is licensed under the ISC license. 555 * See the LICENSE file in the root directory of this source tree. 556 */const hbe=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],ybe=Ce("message-square",hbe);
556/** 557 * @license lucide-react v1.16.0 - ISC 558 * 559 * This source code is licensed under the ISC license. 560 * See the LICENSE file in the root directory of this source tree. 561 */const vbe=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],Z1=Ce("network",vbe);/** 562 * @license lucide-react v1.16.0 - ISC 563 * 564 * This source code is licensed under the ISC license. 565 * See the LICENSE file in the root directory of this source tree. 566 */const bbe=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],_3=Ce("panel-left-close",bbe);/** 567 * @license lucide-react v1.16.0 - ISC 568 * 569 * This source code is licensed under the ISC license. 570 * See the LICENSE file in the root directory of this source tree. 571 */const xbe=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],$be=Ce("panel-left",xbe);/** 572 * @license lucide-react v1.16.0 - ISC 573 * 574 * This source code is licensed under the ISC license. 575 * See the LICENSE file in the root directory of this source tree. 576 */const wbe=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],wu=Ce("panel-right-open",wbe);/** 577 * @license lucide-react v1.16.0 - ISC 578 * 579 * This source code is licensed under the ISC license. 580 * See the LICENSE file in the root directory of this source tree. 581 */const kbe=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],cj=Ce("paperclip",kbe);/** 582 * @license lucide-react v1.16.0 - ISC 583 * 584 * This source code is licensed under the ISC license. 585 * See the LICENSE file in the root directory of this source tree. 586 */const Cbe=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],A9=Ce("pen-line",Cbe);/** 587 * @license lucide-react v1.16.0 - ISC 588 * 589 * This source code is licensed under the ISC license. 590 * See the LICENSE file in the root directory of this source tree. 591 */const Sbe=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],T9=Ce("pencil",Sbe);/** 592 * @license lucide-react v1.16.0 - ISC 593 * 594 * This source code is licensed under the ISC license. 595 * See the LICENSE file in the root directory of this source tree. 596 */const Abe=[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]],Tbe=Ce("percent",Abe);/** 597 * @license lucide-react v1.16.0 - ISC 598 * 599 * This source code is licensed under the ISC license. 600 * See the LICENSE file in the root directory of this source tree. 601 */const Rbe=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],R9=Ce("play",Rbe);/** 602 * @license lucide-react v1.16.0 - ISC 603 * 604 * This source code is licensed under the ISC license. 605 * See the LICENSE file in the root directory of this source tree. 606 */const Pbe=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],J1=Ce("plug",Pbe);/** 607 * @license lucide-react v1.16.0 - ISC 608 * 609 * This source code is licensed under the ISC license. 610 * See the LICENSE file in the root directory of this source tree. 611 */const _be=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],wr=Ce("plus",_be);/** 612 * @license lucide-react v1.16.0 - ISC 613 * 614 * This source code is licensed under the ISC license. 615 * See the LICENSE file in the root directory of this source tree. 616 */const jbe=[["path",{d:"M12 17V7",key:"pyj7ub"}],["path",{d:"M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8",key:"1elt7d"}],["path",{d:"M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z",key:"ycz6yz"}]],Nbe=Ce("receipt",jbe);/** 617 * @license lucide-react v1.16.0 - ISC 618 * 619 * This source code is licensed under the ISC license. 620 * See the LICENSE file in the root directory of this source tree. 621 */const Dbe=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]],Vp=Ce("refresh-ccw",Dbe);/** 622 * @license lucide-react v1.16.0 - ISC 623 * 624 * This source code is licensed under the ISC license. 625 * See the LICENSE file in the root directory of this source tree. 626 */const Mbe=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],Kp=Ce("refresh-cw",Mbe);/** 627 * @license lucide-react v1.16.0 - ISC 628 * 629 * This source code is licensed under the ISC license. 630 * See the LICENSE file in the root directory of this source tree. 631 */const Ebe=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],P9=Ce("rotate-ccw",Ebe);/** 632 * @license lucide-react v1.16.0 - ISC 633 * 634 * This source code is licensed under the ISC license. 635 * See the LICENSE file in the root directory of this source tree. 636 */const Ibe=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Obe=Ce("route",Ibe);/** 637 * @license lucide-react v1.16.0 - ISC 638 * 639 * This source code is licensed under the ISC license. 640 * See the LICENSE file in the root directory of this source tree. 641 */const Lbe=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],Ube=Ce("scroll-text",Lbe);/** 642 * @license lucide-react v1.16.0 - ISC 643 * 644 * This source code is licensed under the ISC license. 645 * See the LICENSE file in the root directory of this source tree. 646 */const Bbe=[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],Fbe=Ce("search-x",Bbe);/** 647 * @license lucide-react v1.16.0 - ISC 648 * 649 * This source code is licensed under the ISC license. 650 * See the LICENSE file in the root directory of this source tree. 651 */const zbe=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],hp=Ce("search",zbe);/** 652 * @license lucide-react v1.16.0 - ISC 653 * 654 * This source code is licensed under the ISC license. 655 * See the LICENSE file in the root directory of this source tree. 656 */const qbe=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Hbe=Ce("settings",qbe);/** 657 * @license lucide-react v1.16.0 - ISC 658 * 659 * This source code is licensed under the ISC license. 660 * See the LICENSE file in the root directory of this source tree. 661 */const Vbe=[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]],eS=Ce("shapes",Vbe);/** 662 * @license lucide-react v1.16.0 - ISC 663 * 664 * This source code is licensed under the ISC license. 665 * See the LICENSE file in the root directory of this source tree. 666 */const Kbe=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],Gbe=Ce("share-2",Kbe);/** 667 * @license lucide-react v1.16.0 - ISC 668 * 669 * This source code is licensed under the ISC license. 670 * See the LICENSE file in the root directory of this source tree. 671 */const Wbe=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
671y:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],_9=Ce("shield-alert",Wbe);/** 672 * @license lucide-react v1.16.0 - ISC 673 * 674 * This source code is licensed under the ISC license. 675 * See the LICENSE file in the root directory of this source tree. 676 */const Ybe=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],yR=Ce("shield-check",Ybe);/** 677 * @license lucide-react v1.16.0 - ISC 678 * 679 * This source code is licensed under the ISC license. 680 * See the LICENSE file in the root directory of this source tree. 681 */const Qbe=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],vR=Ce("sliders-horizontal",Qbe);/** 682 * @license lucide-react v1.16.0 - ISC 683 * 684 * This source code is licensed under the ISC license. 685 * See the LICENSE file in the root directory of this source tree. 686 */const Xbe=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
686],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],bR=Ce("sparkles",Xbe);/** 687 * @license lucide-react v1.16.0 - ISC 688 * 689 * This source code is licensed under the ISC license. 690 * See the LICENSE file in the root directory of this source tree. 691 */const Zbe=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Jbe=Ce("star",Zbe);/** 692 * @license lucide-react v1.16.0 - ISC 693 * 694 * This source code is licensed under the ISC license. 695 * See the LICENSE file in the root directory of this source tree. 696 */const exe=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],txe=Ce("terminal",exe);/** 697 * @license lucide-react v1.16.0 - ISC 698 * 699 * This source code is licensed under the ISC license. 700 * See the LICENSE file in the root directory of this source tree. 701 */const nxe=[["path",{d:"M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"1l48ns"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M15 15h.01",key:"lqbp3k"}]],axe=Ce("ticket-percent",nxe);/** 702 * @license lucide-react v1.16.0 - ISC 703 * 704 * This source code is licensed under the ISC license. 705 * See the LICENSE file in the root directory of this source tree. 706 */const oxe=[["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",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]],sxe=Ce("ticket",oxe);/** 707 * @license lucide-react v1.16.0 - ISC 708 * 709 * This source code is licensed under the ISC license. 710 * See the LICENSE file in the root directory of this source tree. 711 */const rxe=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],j9=Ce("timer",rxe);/** 712 * @license lucide-react v1.16.0 - ISC 713 * 714 * This source code is licensed under the ISC license. 715 * See the LICENSE file in the root directory of this source tree. 716 */const ixe=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Sc=Ce("trash-2",ixe);/** 717 * @license lucide-react v1.16.0 - ISC 718 * 719 * This source code is licensed under the ISC license. 720 * See the LICENSE file in the root directory of this source tree. 721 */const lxe=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],dj=Ce("triangle-alert",lxe);/** 722 * @license lucide-react v1.16.0 - ISC 723 * 724 * This source code is licensed under the ISC license. 725 * See the LICENSE file in the root directory of this source tree. 726 */const cxe=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],dxe=Ce("trophy",cxe);/** 727 * @license lucide-react v1.16.0 - ISC 728 * 729 * This source code is licensed under the ISC license. 730 * See the LICENSE file in the root directory of this source tree. 731 */const uxe=[["path",{d:"M12 4v16",key:"1654pz"}],["path",{d:"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2",key:"e0r10z"}],["path",{d:"M9 20h6",key:"s66wpe"}]],mxe=Ce("type",uxe);/** 732 * @license lucide-react v1.16.0 - ISC 733 * 734 * This source code is licensed under the ISC license. 735 * See the LICENSE file in the root directory of this source tree. 736 */const pxe=[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],fxe=Ce("user-cog",pxe);/** 737 * @license lucide-react v1.16.0 - ISC 738 * 739 * This source code is licensed under the ISC license. 740 * See the LICENSE file in the root directory of this source tree. 741 */const gxe=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],hxe=Ce("users",gxe);/** 742 * @license lucide-react v1.16.0 - ISC 743 * 744 * This source code is licensed under the ISC license. 745 * See the LICENSE file in the root directory of this source tree. 746 */const yxe=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],vxe=Ce("video",yxe);/** 747 * @license lucide-react v1.16.0 - ISC 748 * 749 * This source code is licensed under the ISC license. 750 * See the LICENSE file in the root directory of this source tree.
751 */const bxe=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],N9=Ce("wallet",bxe);/** 752 * @license lucide-react v1.16.0 - ISC 753 * 754 * This source code is licensed under the ISC license. 755 * See the LICENSE file in the root directory of this source tree. 756 */const xxe=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],my=Ce("x",xxe);/** 757 * @license lucide-react v1.16.0 - ISC 758 * 759 * This source code is licensed under the ISC license. 760 * See the LICENSE file in the root directory of this source tree. 761 */const $xe=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],wxe=Ce("zap",$xe),kxe=1440*60*1e3;function Cxe(e,t,n){return e.filter(a=>{const s=t[a.publicId];return!s||n-s>=kxe})}function D9(e,t){return e[t]??e.en??Object.values(e)[0]??null}function Sxe(e,t,n){const a=e.find(r=>r.displayType==="modal"&&!n(r.publicId,r.revision??1));if(!a)return null;const s=D9(a.i18n,t);return s?{publicId:a.publicId,revision:a.revision??1,severity:a.severity,imageUrl:a.imageUrl,copy:{title:s.title??"",body:s.message,actions:s.actions??[]}}:null}const uj="ohbanner_dismissed",Axe=10080*60*1e3,Txe="oh_modal_seen_",M9=(e,t)=>`${Txe}${e}_${t}`;function Rxe(e,t){try{return localStorage.getItem(M9(e,t))!==null}catch{return!1}}function Pxe(e,t){try{localStorage.setItem(M9(e,t),String(Date.now()))}catch{}}function _xe(){try{const e=localStorage.getItem(uj);return e?JSON.parse(e):{}}catch{return{}}}function E9(e){try{localStorage.setItem(uj,JSON.stringify(e))}catch{}}function tS(){const e=Date.now(),t=_xe(),n={};let a=!1;for(const[s,r]of Object.entries(t))e-r<Axe?n[s]=r:a=!0;return a&&E9(n),n}function jxe(e="en"){const[t,n]=h.useState(()=>tS()),[a,s]=h.useState(0),r=h.useRef([]),{data:i}=Ue({queryKey:["console","announcements","active"],queryFn:()=>Ye.request("/console/announcements/active").then(y=>y.items),staleTime:5*6e4});h.useEffect(()=>{const y=v=>{v.key===uj&&n(tS())};return window.addEventListener("storage",y),()=>window.removeEventListener("storage",y)},[]);const c=h.useCallback(y=>{const v={...tS(),[y]:Date.now()};E9(v),n(v)},[]),d=h.useCallback((y,v)=>{Pxe(y,v),s($=>$+1)},[]),m=i??r.current;i&&(r.current=i);const f=h.useMemo(()=>{const y=m.filter($=>$.displayType!=="modal");return Cxe(y,t,Date.now()).map($=>{const x=D9($.i18n,e);return x?{publicId:$.publicId,severity:$.severity,dismissible:$.dismissible,message:x.message,ctaText:x.ctaText,ctaUrl:x.ctaUrl}:null}).filter($=>$!==null)},[m,t,e]),p=h.useMemo(()=>Sxe(m,e,Rxe),[m,e,a]);return{visibleBanners:f,dismissBanner:c,activeModal:p,dismissModal:d}}const Jf="/platform/usage";function mj(e){return(e.startsWith(mp)?e.slice(mp.length):e)||"/usage"}function zx(e,t=window.location.origin){if(!e)return Jf;try{const n=new URL(e,t);return n.origin!==t||n.pathname==="/platform/login"||n.pathname.startsWith("/platform/login/")||n.pathname!=="/platform"&&!n.pathname.startsWith("/platform/")?Jf:`${n.pathname}${n.search}${n.hash}`}catch{return Jf}}function Nxe(e,t=window.location.origin){const n=zx(e,t);return new URL(n,t).toString()}const Dxe=[{labelKey:"nav.admin.dashboard",href:Be.adminDashboard,icon:tbe,permission:"ops.dashboard.read"},{labelKey:"nav.admin.usage",href:Be.adminUsage,icon:u9,permission:"ops.usage.read"},{labelKey:"nav.admin.billing",href:Be.adminBilling,icon:nve,permission:"ops.billing.read"},{labelKey:"nav.admin.users",href:Be.adminUsers,icon:hxe,permission:"ops.users.read"},{labelKey:"nav.admin.models",href:Be.adminModels,icon:y9,permission:"ops.models.read"},{labelKey:"nav.admin.support",href:Be.adminSupport,icon:ij,permission:"ops.users.read"},{labelKey:"nav.admin.growth",href:Be.adminGrowth,icon:uy,permission:"ops.growth.write"},{labelKey:"nav.admin.campaigns",href:Be.adminCampaigns,icon:axe,permission:"ops.campaigns.write"},{labelKey:"nav.admin.access",href:Be.adminAccess,icon:yR,permission:"ops.users.read"},{labelKey:"nav.admin.domainRules",href:Be.adminDomainRules,icon:dbe,permission:"ops.users.read"},{labelKey:"nav.admin.announcements",href:Be.adminAnnouncements,icon:pbe,permission:"ops.content.write"},{labelKey:"nav.admin.staff",href:Be.adminStaff,icon:fxe,permission:"ops.users.read",ownerOnly:!0},{labelKey:"nav.admin.rateLimits",href:Be.adminRateLimits,icon:C9,permission:"ops.rate_limit.read"},{labelKey:"nav.admin.upstream",href:Be.adminUpstream,icon:vR,permission:"ops.sub2api.read"},{labelKey:"nav.admin.webhooks",href:Be.adminWebhooks,icon:wxe,permission:"ops.webhooks.read"},{labelKey:"nav.admin.auditLogs",href:Be.adminAuditLogs,icon:Uve,permission:"ops.audit.read"}];function I9(e){return e?Dxe.filter(t=>t.ownerOnly?e.role==="owner"&&e.permissions?.all!==!1:Go(e,t.permission)):[]}const ku={list:(e,t)=>
761["console","support",e,"list",t],detail:(e,t)=>["console","support",e,"detail",t]},Bw=["console","support","user","unread-count"];function Mxe(e={}){return ll({queryKey:ku.list("user",e),queryFn:({pageParam:t})=>Ye.request(`/console/support/tickets${$r({...e,...t?{cursor:t}:{}})}`),initialPageParam:"",getNextPageParam:t=>t.nextCursor??void 0,retry:1})}function Exe(e){return Ue({queryKey:ku.detail("user",e??""),queryFn:()=>Ye.request(`/console/support/tickets/${e}`),enabled:!!e})}function O9(){return Ue({queryKey:Bw,queryFn:()=>Ye.request("/console/support/unread-count"),refetchInterval:6e4,refetchOnWindowFocus:!0,staleTime:3e4,retry:1})}function Ixe(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/support/tickets",{method:"POST",body:t}),onSuccess:()=>{e.invalidateQueries({queryKey:["console","support","user","list"]}),e.invalidateQueries({queryKey:Bw})}})}function Oxe(e){const t=Re();return ke({mutationFn:n=>Ye.request(`/console/support/tickets/${e}/messages`,{method:"POST",body:n}),onSuccess:()=>{t.invalidateQueries({queryKey:ku.detail("user",e)}),t.invalidateQueries({queryKey:["console","support","user","list"]}),t.invalidateQueries({queryKey:Bw})}})}function Lxe(e,t){const n=e==="admin"?"/admin/support/uploads/presign":"/console/support/uploads/presign";return Ye.request(n,{method:"POST",body:t})}function Uxe(e={}){return ll({queryKey:ku.list("admin",e),queryFn:({pageParam:t})=>Ye.request(`/admin/support/tickets${$r({...e,...t?{cursor:t}:{}})}`),initialPageParam:"",getNextPageParam:t=>t.nextCursor??void 0,retry:1})}function Bxe(e){return Ue({queryKey:ku.detail("admin",e??""),queryFn:()=>Ye.request(`/admin/support/tickets/${e}`),enabled:!!e})}function Fxe(e){const t=Re();return ke({mutationFn:n=>Ye.request(`/admin/support/tickets/${e}/messages`,{method:"POST",body:n}),onSuccess:()=>{t.invalidateQueries({queryKey:ku.detail("admin",e)}),t.invalidateQueries({queryKey:["console","support","admin","list"]})}})}function zxe(e){const t=Re();return ke({mutationFn:n=>Ye.request(`/admin/support/tickets/${e}`,{method:"PATCH",body:{status:n}}),onSuccess:()=>{t.invalidateQueries({queryKey:ku.detail("admin",e)}),t.invalidateQueries({queryKey:["console","support","admin","list"]})}})}async function L9(e,t){const{key:n,putUrl:a}=await Lxe(e,{fileName:t.name,contentType:t.type,sizeBytes:t.size});if(!(await fetch(a,{method:"PUT",headers:{"content-type":t.type},body:t})).ok)throw new Error("upload failed");return{key:n,fileName:t.name,contentType:t.type,sizeBytes:t.size}}function qxe(){return Ue({queryKey:Ht.settingsProfile,queryFn:()=>Ye.request("/console/settings/profile"),retry:1})}function Hxe(e){Ye.request("/console/settings/profile",{method:"PATCH",body:{locale:e}}).catch(()=>{})}function Vxe(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/settings/profile",{method:"PATCH",body:t}),onSuccess:t=>{e.setQueryData(Ht.settingsProfile,t)}})}var Kxe="1.6.11";const pj=Kxe;function Gxe(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{code:t,message:n,toString:()=>t}]))}var ax=class extends Error{constructor(e,t){super(e,t),this.name="BetterAuthError",this.message=e,this.stack=""}};const Wxe=Gxe({OTP_EXPIRED:"OTP expired",INVALID_OTP:"Invalid OTP",TOO_MANY_ATTEMPTS:"Too many attempts"}),Yxe=()=>({id:"email-otp",version:pj,$InferServerPlugin:{},atomListeners:[{matcher:e=>e==="/email-otp/verify-email"||e==="/sign-in/email-otp"||e==="/email-otp/request-email-change",signal:"$sessionSignal"}],$ERROR_CODES:Wxe}),Qxe=()=>({id:"magic-link",version:pj,$InferServerPlugin:{}});let nS=!1;function Xxe(){return typeof window<"u"&&"IdentityCredential"in window}const j3={dismissed:["credential_returned","cancel_called"],skipped:["user_cancel","tap_outside"]},Zxe=e=>({id:"one-tap",version:pj,fetchPlugins:[{id:"fedcm-signout-handle",name:"FedCM Sign-Out Handler",hooks:{async onResponse(t){t.request.url.toString().includes("/sign-out")&&(e.promptOptions?.fedCM===!1||!Xxe()||navigator.credentials.preventSilentAccess())}}}],getActions:(t,n)=>({oneTap:async(a,s)=>{if(nS){console.warn("A Google One Tap request is already in progress. Please wait.");return}if(typeof window>"u"||!window.document){console.warn("Google One Tap is only available in browser environments");return}if(a?.button){await N3();const f=typeof a.button.container=="string"?document.querySelector(a.button.container):a.button.container;if(!f){console.error("Google One Tap: Button container not found",a.button.container);return}async function p(S){await t("/one-tap/callback",{method:"POST",body:{idToken:S},...a?.fetchOptions,...s}),(!a?.fetchOptions&&!s||a?.callbackURL)&&(window.location.href=a?.callbackURL??"/")}const{autoSelect:y,cancelOnTapOutside:v,context:$}=a??{},x=$??e.context??"signin",w=e.promptOptions?.fedCM!==!1;window.google?.accounts.id.initialize({client_id:e.clientId,callback:async S=>{try{await p(S.credential)}catch(k){console.error("Error during button callback:",k)}}
761,auto_select:y,cancel_on_tap_outside:v,context:x,ux_mode:a?.uxMode||"popup",nonce:a?.nonce,itp_support:!0,use_fedcm_for_prompt:w,...e.additionalOptions}),window.google?.accounts.id.renderButton(f,a.button.config??{type:"icon"});return}async function r(f){await t("/one-tap/callback",{method:"POST",body:{idToken:f},...a?.fetchOptions,...s}),(!a?.fetchOptions&&!s||a?.callbackURL)&&(window.location.href=a?.callbackURL??"/")}const{autoSelect:i,cancelOnTapOutside:c,context:d}=a??{},m=d??e.context??"signin";nS=!0;try{await N3(),await new Promise((f,p)=>{let y=!1;const v=e.promptOptions?.baseDelay??1e3,$=e.promptOptions?.maxAttempts??5,x=e.promptOptions?.fedCM!==!1;window.google?.accounts.id.initialize({client_id:e.clientId,callback:async S=>{y=!0;try{await r(S.credential),f()}catch(k){console.error("Error during One Tap callback:",k),p(k)}},auto_select:i,cancel_on_tap_outside:c,context:m,ux_mode:a?.uxMode||"popup",nonce:a?.nonce,itp_support:!0,use_fedcm_for_prompt:x,...e.additionalOptions});const w=S=>{y||window.google?.accounts.id.prompt(k=>{if(!y)if(k.isDismissedMoment?.()){const T=k.getDismissedReason?.();if(j3.dismissed.includes(T)){a?.onPromptNotification?.(k),f();return}if(S<$){const R=Math.pow(2,S)*v;setTimeout(()=>w(S+1),R)}else a?.onPromptNotification?.(k),f()}else if(k.isSkippedMoment?.()){const T=k.getSkippedReason?.();if(!T||j3.skipped.includes(T)){a?.onPromptNotification?.(k),f();return}if(S<$){const R=Math.pow(2,S)*v;setTimeout(()=>w(S+1),R)}else a?.onPromptNotification?.(k),f()}else k.isNotDisplayed?.()&&(a?.onPromptNotification?.(k),f())})};w(0)})}catch(f){throw console.error("Error during Google One Tap flow:",f),f}finally{nS=!1}}}),getAtoms(t){return{}}}),N3=()=>new Promise((e,t)=>{if(window.googleScriptInitialized){e();return}const n=document.createElement("script");n.src="https://accounts.google.com/gsi/client",n.async=!0,n.defer=!0,n.onload=()=>{window.googleScriptInitialized=!0,e()},n.onerror=()=>{t(new Error("Failed to load Google Identity Services script"))},document.head.appendChild(n)});let Qs=[],Hl=0;const cb=4,Jxe=globalThis.nanostoresGlobal||(globalThis.nanostoresGlobal={epoch:0}),U9=e=>{let t=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(a){return n.lc=t.push(a),()=>{for(let r=Hl+cb;r<Qs.length;)Qs[r]===a?Qs.splice(r,cb):r+=cb;let s=t.indexOf(a);~s&&(t.splice(s,1),--n.lc||n.off())}},notify(a,s){Jxe.epoch++;let r=!Qs.length;for(let i of t)Qs.push(i,n.value,a,s);if(r){for(Hl=0;Hl<Qs.length;Hl+=cb)Qs[Hl](Qs[Hl+1],Qs[Hl+2],Qs[Hl+3]);Qs.length=0}},off(){},set(a){let s=n.value;s!==a&&(n.value=a,n.notify(s))},subscribe(a){let s=n.listen(a);return a(n.value),s},value:e};return n},e$e=5,db=6,ub=10;let t$e=(e,t,n,a)=>(e.events=e.events||{},e.events[n+ub]||(e.events[n+ub]=a(s=>{e.events[n].reduceRight((r,i)=>(i(r),r),{shared:{},...s})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let s=e.events[n],r=s.indexOf(t);s.splice(r,1),s.length||(delete e.events[n],e.events[n+ub](),delete e.events[n+ub])});const n$e=1e3;let B9=(e,t)=>t$e(e,a=>{let s=t(a);s&&e.events[db].push(s)},e$e,a=>{let s=e.listen;e.listen=(...i)=>(!e.lc&&!e.active&&(e.active=!0,a()),s(...i));let r=e.off;return e.events[db]=[],e.off=()=>{r(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let i of e.events[db])i();e.events[db]=[]}},n$e)},()=>{e.listen=s,e.off=r}});function a$e(e,t,n){let a=new Set(t).add(void 0);return e.listen((s,r,i)=>{a.has(i)&&n(s,r,i)})}const o$e=()=>typeof window>"u",s$e=(e,t,n,a)=>{const s=U9({data:null,error:null,isPending:!0,isRefetching:!1,refetch:c=>r(c)}),r=async c=>new Promise(d=>{const m=typeof a=="function"?a({data:s.get().data,error:s.get().error,isPending:s.get().isPending}):a;n(t,{...m,query:{...m?.query,...c?.query},async onSuccess(f){s.set({data:f.data,error:null,isPending:!1,isRefetching:!1,refetch:s.value.refetch}),await m?.onSuccess?.(f)},async onError(f){const{request:p}=f,y=typeof p.retry=="number"?p.retry:p.retry?.attempts,v=p.retryAttempt||0;if(y&&v<y)return;const $=f.error.status===401;s.set({error:f.error,data:$?null:s.get().data,isPending:!1,isRefetching:!1,refetch:s.value.refetch}),await m?.onError?.(f)},async onRequest(f){const p=s.get();s.set({isPending:p.data===null,data:p.data,error:null,isRefetching:!0,refetch:s.value.refetch}),await m?.onRequest?.(f)}}).catch(f=>{s.set({error:f,data:s.get().data,isPending:!1,isRefetching:!1,refetch:s.value.refetch})}).finally(()=>{d(void 0)})});e=Array.isArray(e)?e:[e];let i=!1;for(const c of e)c.subscribe(async()=>{o$e()||(i?await r():B9(s,()=>{const d=setTimeout(async()=>{i||(i=!0,await r())},0);return()=>{s.off(),c.off(),clearTimeout(d)}}))});return s};var r$e={};const ox=Object.create(null),eg=e=>r$e||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?ox:globalThis),pd=new Proxy(ox,{get(e,t){return eg()[t]??ox[t]},has(e,t){return t in eg()||t in ox},set(e,t,n){const a=eg(!0);return a[t]=n,!0},deleteProperty(e,t){if(!t)return!1;const n=eg(!0);return delete n[t],!0},ownKeys(){const e=eg(!0);return Object.keys(e)}});function i$e(e){try{return(new URL(e).pathname.replace(/\/+$/,"")||"/")!=="/"}catch{throw new ax(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function l$e(e){try{const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new ax(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof ax?t:new ax(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function aS(e,t="/api/auth"){if(l$e(e),i$e(e))return e;const n=e.replace(/\/+$/,"");return!t||t==="/"?n:(t=t.startsWith("/")?t:`/${t}`,`${n}${t}`)}
761function c$e(e,t,n,a,s){if(e)return aS(e,t);{const r=pd.BETTER_AUTH_URL||pd.NEXT_PUBLIC_BETTER_AUTH_URL||pd.PUBLIC_BETTER_AUTH_URL||pd.NUXT_PUBLIC_BETTER_AUTH_URL||pd.NUXT_PUBLIC_AUTH_URL||(pd.BASE_URL!=="/"?pd.BASE_URL:void 0);if(r)return aS(r,t)}if(typeof window<"u"&&window.location)return aS(window.location.origin,t)}const d$e={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},u$e=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,D3={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:Number.POSITIVE_INFINITY,"-infinity":Number.NEGATIVE_INFINITY},m$e=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function p$e(e){return e instanceof Date&&!isNaN(e.getTime())}function f$e(e){const t=m$e.exec(e);if(!t)return null;const[,n,a,s,r,i,c,d,m,f,p]=t,y=new Date(Date.UTC(parseInt(n,10),parseInt(a,10)-1,parseInt(s,10),parseInt(r,10),parseInt(i,10),parseInt(c,10),d?parseInt(d.padEnd(3,"0"),10):0));if(m){const v=(parseInt(f,10)*60+parseInt(p,10))*(m==="+"?-1:1);y.setUTCMinutes(y.getUTCMinutes()+v)}return p$e(y)?y:null}function g$e(e,t={}){const{strict:n=!1,warnings:a=!1,reviver:s,parseDates:r=!0}=t;if(typeof e!="string")return e;const i=e.trim();if(i.length>0&&i[0]==='"'&&i.endsWith('"')&&!i.slice(1,-1).includes('"'))return i.slice(1,-1);const c=i.toLowerCase();if(c.length<=9&&c in D3)return D3[c];if(!u$e.test(i)){if(n)throw new SyntaxError("[better-json] Invalid JSON");return e}if(Object.entries(d$e).some(([d,m])=>{const f=m.test(i);return f&&a&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${d} pattern`),f})&&n)throw new Error("[better-json] Potential prototype pollution attempt detected");try{return JSON.parse(i,(m,f)=>{if(m==="__proto__"||m==="constructor"&&f&&typeof f=="object"&&"prototype"in f){a&&console.warn(`[better-json] Dropping "${m}" key to prevent prototype pollution`);return}if(r&&typeof f=="string"){const p=f$e(f);if(p)return p}return s?s(m,f):f})}catch(d){if(n)throw d;return e}}function h$e(e,t={strict:!0}){return g$e(e,t)}const y$e={id:"redirect",name:"Redirect",hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&typeof window<"u"&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},oS=Symbol.for("better-auth:broadcast-channel"),v$e=()=>Math.floor(Date.now()/1e3);var b$e=class{constructor(e="better-auth.message"){Bo(this,"listeners",new Set);Bo(this,"name");this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(!(typeof window>"u"))try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:v$e()}))}catch{}}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};const e=t=>{if(t.key!==this.name)return;const n=JSON.parse(t.newValue??"{}");n?.event!=="session"||!n?.data||this.listeners.forEach(a=>a(n))};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}};function sS(e="better-auth.message"){return globalThis[oS]||(globalThis[oS]=new b$e(e)),globalThis[oS]}const rS=Symbol.for("better-auth:focus-manager");var x$e=class{constructor(){Bo(this,"listeners",new Set)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>"u"||typeof document>"u"||typeof window.addEventListener>"u")return()=>{};const e=()=>{document.visibilityState==="visible"&&this.setFocused(!0)};return document.addEventListener("visibilitychange",e,!1),()=>{document.removeEventListener("visibilitychange",e,!1)}}};function M3(){return globalThis[rS]||(globalThis[rS]=new x$e),globalThis[rS]}const iS=Symbol.for("better-auth:online-manager");var $$e=class{constructor(){Bo(this,"listeners",new Set);Bo(this,"isOnline",typeof navigator<"u"?navigator.onLine:!0)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}
761setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};const e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",t,!1),()=>{window.removeEventListener("online",e,!1),window.removeEventListener("offline",t,!1)}}};function lS(){return globalThis[iS]||(globalThis[iS]=new $$e),globalThis[iS]}const bm=()=>Math.floor(Date.now()/1e3);function E3(e){return typeof e=="object"&&e!==null&&"data"in e&&"error"in e?e:{data:e,error:null}}const w$e=5;function k$e(e){const{sessionAtom:t,sessionSignal:n,$fetch:a,options:s={}}=e,r=s.sessionOptions?.refetchInterval??0,i=s.sessionOptions?.refetchOnWindowFocus??!0,c=s.sessionOptions?.refetchWhenOffline??!1,d={lastSync:0,lastSessionRequest:0,cachedSession:void 0},m=()=>c||lS().isOnline,f=k=>{if(!m())return;if(k?.event==="storage"){d.lastSync=bm(),n.set(!n.get());return}const T=t.get(),R=()=>{d.lastSessionRequest=bm(),a("/get-session").then(async _=>{let{data:P,error:j}=E3(_);if(P?.needsRefresh)try{const I=await a("/get-session",{method:"POST"});({data:P,error:j}=E3(I))}catch{}const N=P?.session&&P?.user?P:null;t.set({...T,data:N,error:j}),d.lastSync=bm(),n.set(!n.get())}).catch(()=>{})};if(k?.event==="poll"){R();return}if(k?.event==="visibilitychange"){if(bm()-d.lastSessionRequest<w$e)return;d.lastSessionRequest=bm()}if(k?.event==="visibilitychange"){R();return}(T?.data===null||T?.data===void 0)&&(d.lastSync=bm(),n.set(!n.get()))},p=k=>{sS().post({event:"session",data:{trigger:k},clientId:Math.random().toString(36).substring(7)})},y=()=>{r&&r>0&&(d.pollInterval=setInterval(()=>{t.get()?.data&&f({event:"poll"})},r*1e3))},v=()=>{d.unsubscribeBroadcast=sS().subscribe(()=>{f({event:"storage"})})},$=()=>{i&&(d.unsubscribeFocus=M3().subscribe(()=>{f({event:"visibilitychange"})}))},x=()=>{d.unsubscribeOnline=lS().subscribe(k=>{k&&f({event:"visibilitychange"})})};return{init:()=>{y(),v(),$(),x(),sS().setup(),M3().setup(),lS().setup()},cleanup:()=>{d.pollInterval&&(clearInterval(d.pollInterval),d.pollInterval=void 0),d.unsubscribeBroadcast&&(d.unsubscribeBroadcast(),d.unsubscribeBroadcast=void 0),d.unsubscribeFocus&&(d.unsubscribeFocus(),d.unsubscribeFocus=void 0),d.unsubscribeOnline&&(d.unsubscribeOnline(),d.unsubscribeOnline=void 0),d.lastSync=0,d.lastSessionRequest=0,d.cachedSession=void 0},triggerRefetch:f,broadcastSessionUpdate:p}}function C$e(e,t){const n=U9(!1),a=s$e(n,"/get-session",e,{method:"GET"});let s=()=>{};return B9(a,()=>{const r=k$e({sessionAtom:a,sessionSignal:n,$fetch:e,options:t});return r.init(),s=r.broadcastSessionUpdate,()=>{r.cleanup()}}),{session:a,$sessionSignal:n,broadcastSessionUpdate:r=>s(r)}}function cS(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function xR(e,t,n=".",a){if(!cS(t))return xR(e,{},n,a);const s={...t};for(const r of Object.keys(e)){if(r==="__proto__"||r==="constructor")continue;const i=e[r];i!=null&&(a&&a(s,r,i,n)||(Array.isArray(i)&&Array.isArray(s[r])?s[r]=[...i,...s[r]]:cS(i)&&cS(s[r])?s[r]=xR(i,s[r],(n?`${n}.`:"")+r.toString(),a):s[r]=i))}return s}function S$e(e){return(...t)=>t.reduce((n,a)=>xR(n,a,"",e),{})}const A$e=S$e();var T$e=Object.defineProperty,R$e=Object.defineProperties,P$e=Object.getOwnPropertyDescriptors,I3=Object.getOwnPropertySymbols,_$e=Object.prototype.hasOwnProperty,j$e=Object.prototype.propertyIsEnumerable,O3=(e,t,n)=>t in e?T$e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tr=(e,t)=>{for(var n in t||(t={}))_$e.call(t,n)&&O3(e,n,t[n]);if(I3)for(var n of I3(t))j$e.call(t,n)&&O3(e,n,t[n]);return e},Fr=(e,t)=>R$e(e,P$e(t)),N$e=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}},D$e=async(e,t)=>{var n,a,s,r,i,c;let d=t||{};const m={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:d,hooks:m};for(const f of t?.plugins||[]){if(f.init){const p=await((n=f.init)==null?void 0:n.call(f,e.toString(),t));d=p.options||d,e=p.url}m.onRequest.push((a=f.hooks)==null?void 0:a.onRequest),m.onResponse.push((s=f.hooks)==null?void 0:s.onResponse),m.onSuccess.push((r=f.hooks)==null?void 0:r.onSuccess),m.onError.push((i=f.hooks)==null?void 0:i.onError),m.onRetry.push((c=f.hooks)==null?void 0:c.onRetry)}return{url:e,options:d,hooks:m}},L3=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},M$e=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function E$e(e){if(typeof e=="number")return new L3({type:"linear",attempts:e,delay:1e3});switch(e.type){case"linear":return new L3(e);case"exponential":return new M$e(e);default:throw new Error("Invalid retry strategy")}}var I$e=async e=>{const t={},n=async a=>typeof a=="function"?await a():a;if(e?.auth){if(e.auth.type==="Bearer"){const a=await n(e.auth.token);if(!a)return t;t.authorization=`Bearer ${a}`}else if(e.auth.type==="Basic"){const[a,s]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!a||!s)return t;t.authorization=`Basic ${btoa(`${a}:${s}`)}`}else if(e.auth.type==="Custom"){const[a,s]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!s)return t;t.authorization=`${a??""} ${s}`}}return t},O$e=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function L$e(e){const t=e.headers.get("content-type"),n=new Set(["image/svg","application/xml","application/xhtml","application/html"]);if(!t)return"json";const a=t.split(";").shift()||"";return O$e.test(a)?"json":n.has(a)||a.startsWith("text/")?"text":"blob"}function U$e(e){try{return JSON.parse(e),!0}catch{return!1}}function $R(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}function U3(e){try{return JSON.parse(e)}catch{return e}}function B3(e){return typeof e=="function"}function B$e(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<"u"&&B3(globalThis.fetch))return globalThis.fetch;if(typeof window<"u"&&B3(window.fetch))return window.fetch;throw new Error("No fetch implementation found")}async function F$e(e){const t=new Headers(e?.headers),n=await I$e(e);for(const[a,s]of Object.entries(n||{}))t.set(a,s);if(!t.has("content-type")){const a=z$e(e?.body);a&&t.set("content-type",a)}return t}function z$e(e){return $R(e)?"application/json":null}function q$e(e){if(!e?.body)return null;const t=new Headers(e?.headers);if($R(e.body)&&!t.has("content-type")){for(const[n,a]of Object.entries(e?.body))a instanceof Date&&(e.body[n]=a.toISOString());return JSON.stringify(e.body)}return t.has("content-type")&&t.get("content-type")==="application/x-www-form-urlencoded"&&$R(e.body)?new URLSearchParams(e.body).toString():e.body}function H$e(e,t){var n;if(t?.method)return t.method.toUpperCase();if(e.startsWith("@")){const a=(n=e.split("@")[1])==null?void 0:n.split("/")[0];return z9.includes(a)?a.toUpperCase():t?.body?"POST":"GET"}return t?.body?"POST":"GET"}function V$e(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}
761var K$e=class F9 extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,F9.prototype)}};async function sx(e,t){const n=await e["~standard"].validate(t);if(n.issues)throw new K$e(n.issues);return n.value}var z9=["get","post","put","patch","delete"],G$e=e=>({id:"apply-schema",name:"Apply Schema",version:"1.0.0",async init(t,n){var a,s,r,i;const c=((s=(a=e.plugins)==null?void 0:a.find(d=>{var m;return(m=d.schema)!=null&&m.config?t.startsWith(d.schema.config.baseURL||"")||t.startsWith(d.schema.config.prefix||""):!1}))==null?void 0:s.schema)||e.schema;if(c){let d=t;(r=c.config)!=null&&r.prefix&&d.startsWith(c.config.prefix)&&(d=d.replace(c.config.prefix,""),c.config.baseURL&&(t=t.replace(c.config.prefix,c.config.baseURL))),(i=c.config)!=null&&i.baseURL&&d.startsWith(c.config.baseURL)&&(d=d.replace(c.config.baseURL,""));const m=c.schema[d];if(m){let f=Fr(tr({},n),{method:m.method,output:m.output});return n?.disableValidation||(f=Fr(tr({},f),{body:m.input?await sx(m.input,n?.body):n?.body,params:m.params?await sx(m.params,n?.params):n?.params,query:m.query?await sx(m.query,n?.query):n?.query})),{url:t,options:f}}}return{url:t,options:n}}}),W$e=e=>{async function t(n,a){const s=Fr(tr(tr({},e),a),{plugins:[...e?.plugins||[],G$e(e||{}),...a?.plugins||[]]});if(e?.catchAllError)try{return await wR(n,s)}catch(r){return{data:null,error:{status:500,statusText:"Fetch Error",message:"Fetch related error. Captured by catchAllError option. See error property for more details.",error:r}}}return await wR(n,s)}return t};function Y$e(e,t){const{baseURL:n,params:a,query:s}=t||{query:{},params:{},baseURL:""};let r=e.startsWith("http")?e.split("/").slice(0,3).join("/"):n||"";if(e.startsWith("@")){const p=e.toString().split("@")[1].split("/")[0];z9.includes(p)&&(e=e.replace(`@${p}/`,"/"))}r.endsWith("/")||(r+="/");let[i,c]=e.replace(r,"").split("?");const d=new URLSearchParams(c);for(const[p,y]of Object.entries(s||{})){if(y==null)continue;let v;if(typeof y=="string")v=y;else if(Array.isArray(y)){for(const $ of y)d.append(p,$);continue}else v=JSON.stringify(y);d.set(p,v)}if(a)if(Array.isArray(a)){const p=i.split("/").filter(y=>y.startsWith(":"));for(const[y,v]of p.entries()){const $=a[y];i=i.replace(v,$)}}else for(const[p,y]of Object.entries(a))i=i.replace(`:${p}`,String(y));i=i.split("/").map(encodeURIComponent).join("/"),i.startsWith("/")&&(i=i.slice(1));let m=d.toString();return m=m.length>0?`?${m}`.replace(/\+/g,"%20"):"",r.startsWith("http")?new URL(`${i}${m}`,r):`${r}${i}${m}`}var wR=async(e,t)=>{var n,a,s,r,i,c,d,m;const{hooks:f,url:p,options:y}=await D$e(e,t),v=B$e(y),$=new AbortController,x=(n=y.signal)!=null?n:$.signal,w=Y$e(p,y),S=q$e(y),k=await F$e(y),T=H$e(p,y);let R=Fr(tr({},y),{url:w,headers:k,body:S,method:T,signal:x});for(const O of f.onRequest)if(O){const V=await O(R);typeof V=="object"&&V!==null&&(R=V)}("pipeTo"in R&&typeof R.pipeTo=="function"||typeof((a=t?.body)==null?void 0:a.pipe)=="function")&&("duplex"in R||(R.duplex="half"));const{clearTimeout:_}=V$e(y,$);let P=await v(R.url,R);_();const j={response:P,request:R};for(const O of f.onResponse)if(O){const V=await O(Fr(tr({},j),{response:(s=t?.hookOptions)!=null&&s.cloneResponse?P.clone():P}));V instanceof Response?P=V:typeof V=="object"&&V!==null&&(P=V.response)}if(P.ok){if(!(R.method!=="HEAD"))return{data:"",error:null};const V=L$e(P),ne={data:null,response:P,request:R};if(V==="json"||V==="text"){const q=await P.text(),M=(r=R.jsonParser)!=null?r:U3;ne.data=await M(q)}else ne.data=await P[V]();R?.output&&R.output&&!R.disableValidation&&(ne.data=await sx(R.output,ne.data));for(const q of f.onSuccess)q&&await q(Fr(tr({},ne),{response:(i=t?.hookOptions)!=null&&i.cloneResponse?P.clone():P}));return t?.throw?ne.data:{data:ne.data,error:null}}const N=(c=t?.jsonParser)!=null?c:U3,I=await P.text(),z=U$e(I),E=z?await N(I):null,L={response:P,responseText:I,request:R,error:Fr(tr({},E),{status:P.status,statusText:P.statusText})};for(const O of f.onError)O&&await O(Fr(tr({},L),{response:(d=t?.hookOptions)!=null&&d.cloneResponse?P.clone():P}));if(t?.retry){const O=E$e(t.retry),V=(m=t.retryAttempt)!=null?m:0;if(await O.shouldAttemptRetry(V,P)){for(const q of f.onRetry)q&&await q(j);const ne=O.getDelay(V);return await new Promise(q=>setTimeout(q,ne)),await wR(e,Fr(tr({},t),{retryAttempt:V+1}))}}if(t?.throw)throw new N$e(P.status,P.statusText,z?E:I);return{data:null,error:Fr(tr({},E),{status:P.status,statusText:P.statusText})}},fd={};const Q$e=e=>{if(typeof process>"u")return;const t=e??"/api/auth";if(fd.NEXT_PUBLIC_AUTH_URL)return fd.NEXT_PUBLIC_AUTH_URL;if(typeof window>"u"){if(fd.NEXTAUTH_URL)try{return fd.NEXTAUTH_URL}catch{}if(fd.VERCEL_URL)try{const n=fd.VERCEL_URL.startsWith("http")?"":"https://";return`${new URL(`${n}${fd.VERCEL_URL}`).origin}${t}`}catch{}}},X$e=(e,t)=>
761{const n="credentials"in Request.prototype,a=c$e(e?.baseURL,e?.basePath)??Q$e(e?.basePath)??"/api/auth",s=e?.plugins?.flatMap(_=>_.fetchPlugins).filter(_=>_!==void 0)||[],r={id:"lifecycle-hooks",name:"lifecycle-hooks",hooks:{onSuccess:e?.fetchOptions?.onSuccess,onError:e?.fetchOptions?.onError,onRequest:e?.fetchOptions?.onRequest,onResponse:e?.fetchOptions?.onResponse}},{onSuccess:i,onError:c,onRequest:d,onResponse:m,...f}=e?.fetchOptions||{},p=W$e({baseURL:a,...n?{credentials:"include"}:{},method:"GET",jsonParser(_){return _?h$e(_,{strict:!1}):null},customFetchImpl:fetch,...f,plugins:[r,...f.plugins||[],...e?.disableDefaultFetchPlugins?[]:[y$e],...s]}),{$sessionSignal:y,session:v,broadcastSessionUpdate:$}=C$e(p,e),x=e?.plugins||[];let w={};const S={$sessionSignal:y,session:v},k={"/sign-out":"POST","/revoke-sessions":"POST","/revoke-other-sessions":"POST","/delete-user":"POST"},T=[{signal:"$sessionSignal",matcher(_){return _==="/sign-out"||_==="/update-user"||_==="/update-session"||_==="/sign-up/email"||_==="/sign-in/email"||_==="/delete-user"||_==="/verify-email"||_==="/revoke-sessions"||_==="/revoke-session"||_==="/revoke-other-sessions"||_==="/change-email"||_==="/change-password"},callback(_){_==="/sign-out"?$("signout"):(_==="/update-user"||_==="/update-session")&&$("updateUser")}}];for(const _ of x)_.getAtoms&&Object.assign(S,_.getAtoms?.(p)),_.pathMethods&&Object.assign(k,_.pathMethods),_.atomListeners&&T.push(..._.atomListeners);const R={notify:_=>{S[_].set(!S[_].get())},listen:(_,P)=>{S[_].subscribe(P)},atoms:S};for(const _ of x)_.getActions&&(w=A$e(_.getActions?.(p,R,e)??{},w));return{get baseURL(){return a},pluginsActions:w,pluginsAtoms:S,pluginPathMethods:k,atomListeners:T,$fetch:p,$store:R}};function Z$e(e){return typeof e=="object"&&e!==null&&"get"in e&&typeof e.get=="function"&&"lc"in e&&typeof e.lc=="number"}function J$e(e,t,n){const a=t[e],{fetchOptions:s,query:r,...i}=n||{};return a||(s?.method?s.method:i&&Object.keys(i).length>0?"POST":"GET")}function ewe(e,t,n,a,s){function r(i=[]){return new Proxy(function(){},{get(c,d){if(typeof d!="string"||d==="then"||d==="catch"||d==="finally")return;const m=[...i,d];let f=e;for(const p of m)if(f&&typeof f=="object"&&p in f)f=f[p];else{f=void 0;break}return typeof f=="function"||Z$e(f)?f:r(m)},apply:async(c,d,m)=>{const f="/"+i.map(k=>k.replace(/[A-Z]/g,T=>`-${T.toLowerCase()}`)).join("/"),p=m[0]||{},y=m[1]||{},{query:v,fetchOptions:$,...x}=p,w={...y,...$},S=J$e(f,n,p);return await t(f,{...w,body:S==="GET"?void 0:{...x,...w?.body||{}},query:v||w?.query,method:S,async onSuccess(k){if(await w?.onSuccess?.(k),!s||w.disableSignal)return;const T=s.filter(_=>_.matcher(f));if(!T.length)return;const R=new Set;for(const _ of T){const P=a[_.signal];if(!P)return;if(R.has(_.signal))continue;R.add(_.signal);const j=P.get();setTimeout(()=>{P.set(!j)},10),_.callback?.(f)}}})}})}return r()}function twe(e,t={}){const n=h.useRef(e.get()),{keys:a,deps:s=[e,a]}=t,r=h.useCallback(c=>{const d=m=>{n.current!==m&&(n.current=m,c())};return d(e.value),a?.length?a$e(e,a,d):e.listen(d)},s),i=()=>n.current;return h.useSyncExternalStore(r,i,i)}function nwe(e){return e.charAt(0).toUpperCase()+e.slice(1)}function awe(e){return`use${nwe(e)}`}function owe(e){const{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:a,$fetch:s,$store:r,atomListeners:i}=X$e(e),c={};for(const[d,m]of Object.entries(a))c[awe(d)]=()=>twe(m);return ewe({...n,...c,$fetch:s,$store:r},s,t,a,i)}const q9="656641945139-pkvmm6qsrs1q64t7gpc64q7ia55nsb13.apps.googleusercontent.com",swe=!!q9,Tg=owe({baseURL:`${sj()}/auth`,fetchOptions:{credentials:"include"},plugins:[Qxe(),Yxe(),Zxe({clientId:q9})]}),rwe="Signup access",iwe="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",lwe="Signup access allowlist",cwe="No allowlist entries",dwe="Email / domain",uwe="Note",mwe="Status",pwe="Registration",fwe="Expires",gwe="Invites",hwe="Updated",ywe="Action",vwe="Add",bwe="Bulk add",xwe="Edit",$we="Save",wwe="Invite",kwe="Restore",Cwe="Remove",Swe="Add signup access",Awe="Edit {{email}}",Twe="Bulk add signup access",Rwe="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",Pwe="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",_we="Email or domain",jwe="[email protected] or @company.com",Nwe="Use @company.com to approve an entire domain.",Dwe="Note (optional)",Mwe="e.g. founding team",Ewe="Expiry (optional)",Iwe="Leave empty for no expiry. Expired entries no longer allow new signups.",Owe="Emails / domains",Lwe=`[email protected] 762[email protected] 763@partner.com`,Uwe="Search",Bwe="Search email or domain",Fwe="Status",zwe="Access check",qwe="[email protected]",Hwe="Check",Vwe="Allowed",Kwe="Denied",Gwe={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},Wwe="Registered",Ywe="Not registered",Qwe="Admin",Xwe="Domain rule",Zwe="Never",Jwe="Added to signup access.",e0e="Signup access updated.",t0e="Added {{count}}
763 entries.",n0e="Invite sent.",a0e="Entry restored.",o0e="Removed from signup access.",s0e="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",r0e={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},i0e={title:rwe,description:iwe,label:lwe,empty:cwe,email:dwe,note:uwe,status:mwe,registration:pwe,expiresAt:fwe,invites:gwe,updatedAt:hwe,action:ywe,add:vwe,bulkAdd:bwe,edit:xwe,save:$we,invite:wwe,restore:kwe,revoke:Cwe,newTitle:Swe,editTitle:Awe,bulkTitle:Twe,formDescription:Rwe,bulkDescription:Pwe,emailLabel:_we,emailPlaceholder:jwe,emailHint:Nwe,noteLabel:Dwe,notePlaceholder:Mwe,expiresAtLabel:Ewe,expiresAtHint:Iwe,bulkEntriesLabel:Owe,bulkEntriesPlaceholder:Lwe,search:Uwe,searchPlaceholder:Bwe,statusFilter:Fwe,checkLabel:zwe,checkPlaceholder:qwe,check:Hwe,checkAllowed:Vwe,checkDenied:Kwe,checkReasons:Gwe,registered:Wwe,notRegistered:Ywe,adminAllowed:Qwe,domainRule:Xwe,never:Zwe,added:Jwe,updated:e0e,bulkAdded:t0e,invited:n0e,restored:a0e,revoked:o0e,confirmRevoke:s0e,domainRules:r0e},l0e="Ops Billing",c0e="Payments, wallets and refunds across all users.",d0e={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},u0e="User email",m0e="Search by email...",p0e="Created",f0e="Created",g0e="Amount (USD)",h0e="Min",y0e="Max",v0e="Refunds",b0e="No refunds",x0e="Refund",$0e="Type",w0e="Full refund",k0e="Partial refund",C0e="Original payment",S0e="Wallets",A0e="Wallet",T0e="User",R0e="Total",P0e="Purchased",_0e="Bonus",j0e="No wallets",N0e="Payments",D0e="Payment status",M0e="No payments",E0e="Payment",I0e="Status",O0e="Amount",L0e="Paid",U0e="Refund",B0e="Not refundable (status must be paid)",F0e="View in Stripe Dashboard",z0e="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",q0e="unhealthy",H0e="Refund {{id}}",V0e="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",K0e="Refund amount (USD)",G0e="Max ${{value}}",W0e="Reason",Y0e="جار٠تØÙ
ÙÙ Ù
عاÙÙØ© Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯â¦",Q0e="ØªØ¹Ø°ÙØ± تØÙ
ÙÙ Ù
عاÙÙØ© Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯. ÙØ§ ÙÙ
Ù٠تÙÙÙØ° Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ ØØªÙ ÙØªÙ
تØÙ
Ù٠اÙÙ
عاÙÙØ©.",X0e="ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙÙ Ù
عاÙ
ÙØ© ÙØ§Ø¨ÙØ© ÙÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ â Ø±Ø¨Ù
ا تÙ
استرداد ÙØ°Ù Ø§ÙØ¯Ùعة باÙÙØ§Ù
٠باÙÙØ¹Ù.",Z0e="اÙÙ
Ø¨ÙØº اÙÙ
دÙÙØ¹",J0e="اÙÙ
سترد سابÙÙØ§",eke="ÙØ°Ø§ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",tke="Ø§ÙØ±ØµÙد اÙÙ
ستردÙ",nke="ÙØ´Ù
Ù {{amount}} Ù
Ù Ø±ØµÙØ¯ خصÙ
اÙÙØ³ÙÙ
Ø© اÙÙ
سترد٠بشÙÙ ØªÙØ§Ø³Ø¨Ù",ake="ÙØ´Ù
Ù {{amount}} Ù
Ù Ø§ÙØ±ØµÙد Ø§ÙØ¥Ø¶Ø§Ù٠اÙÙ
Ù
ÙÙØ اÙÙ
سترد٠بشÙÙ ØªÙØ§Ø³Ø¨Ù",oke="Ø¥ÙØºØ§Ø¡ اÙÙ
ÙØ§Ùأة",ske="Ø³ÙØ¤Ø¯Ù ÙØ°Ø§ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ Ø¥ÙÙ Ø¥ÙØºØ§Ø¡ اÙÙ
ÙØ§Ùأة Ø§ÙØªØ±ÙÙØ¬ÙØ© بÙÙÙ
Ø© {{amount}}.",rke="Ø§ÙØ¥Ø±Ø¬Ø§Ø¹ عبر Stripe",ike="خصÙ
رسÙÙ
اÙÙ
ÙØµØ© ({{fee}}
763) â ÙØªØºØ·ÙØ© تÙÙÙØ© Ù
Ø¹Ø§ÙØ¬Ø© Stripe",lke="رسÙÙ
اÙÙ
ÙØµØ© ({{fee}})",cke="اÙÙ
Ø¨ÙØº ÙØªØ¬Ø§Ùز Ø§ÙØØ¯ Ø§ÙØ£Ùص٠اÙÙØ§Ø¨Ù ÙÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ {{value}}",dke="أدخ٠Ù
Ø¨ÙØºÙا Ù
ÙØ¬Ø¨Ùا ØµØ§ÙØÙØ§",uke="استÙÙ٠اÙÙ
ستخدÙ
Ø¬Ø²Ø¡ÙØ§ Ù
Ù Ø§ÙØ±ØµÙد اÙÙ
شتر٠باÙÙØ¹Ù. Ø§ÙØØ¯ Ø§ÙØ£Ùص٠ÙÙØ§Ø³ØªØ±Ø¯Ø§Ø¯: {{value}}",mke="تÙ
استرداد ÙØ°Ù Ø§ÙØ¯Ùعة باÙÙØ§Ù
٠باÙÙØ¹Ù",pke="صاÙ٠اÙÙ
Ø¨ÙØº بعد Ø§ÙØ±Ø³ÙÙ
ØµØºÙØ± Ø¬Ø¯ÙØ§. استرد {{value}} عÙÙ Ø§ÙØ£ÙÙ.",fke="Cancel",gke="Issue refund",hke="Submitting...",yke="Refund submitted",vke="Stripe will return the funds within 1-3 business days. Audit log written.",bke="Refund failed",xke={title:l0e,description:c0e,tabs:d0e,emailFilter:u0e,emailPlaceholder:m0e,created:p0e,createdRange:f0e,amountRange:g0e,amountMin:h0e,amountMax:y0e,refunds:v0e,noRefunds:b0e,refundId:x0e,refundType:$0e,typeRefund:w0e,typePartialRefund:k0e,originalPayment:C0e,wallets:S0e,wallet:A0e,user:T0e,total:R0e,purchased:P0e,bonus:_0e,noWallets:j0e,payments:N0e,paymentStatus:D0e,noPayments:M0e,payment:E0e,status:I0e,amount:O0e,paid:L0e,refund:U0e,notRefundable:B0e,viewInStripe:F0e,webhookHealthHint:z0e,unhealthyWebhooks:q0e,refundConfirmTitle:H0e,refundConfirmBody:V0e,refundAmountLabel:K0e,refundMaxHint:G0e,refundReasonLabel:W0e,refundPreviewLoading:Y0e,refundPreviewFailed:Q0e,refundNoRefundableTx:X0e,refundPaidRow:Z0e,refundAlreadyRefundedRow:J0e,refundThisRefundRow:eke,refundCreditReclaimRow:tke,refundCreditCouponNote:nke,refundCreditExtraNote:ake,refundBonusReverseRow:oke,refundBonusForfeitWarning:ske,refundStripeReturnRow:rke,refundFeeToggle:ike,refundPlatformFeeRow:lke,refundExceedsMax:cke,refundAmountInvalid:dke,refundInsufficientCredit:uke,refundAlreadyFull:mke,refundBelowMin:pke,cancel:fke,confirmRefund:gke,submitting:hke,refundSubmittedTitle:yke,refundSubmittedBody:vke,refundFailedTitle:bke},$ke="Campaigns",wke="Audience segments, restricted-model access, model discounts, and targeted credit grants.",kke={mobileLabel:"ÙØ³Ù
Ø§ÙØÙ
ÙØ§Øª",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},Cke="Status",Ske="Actions",Ake="All users",Tke="Always",Rke="No expiry",Pke="Active window",_ke="Leave blank for always-on. Times are end-of-day on the chosen dates.",jke="Valid from",Nke="Valid to",Dke="Pause",Mke="Resume",Eke="Add",Ike="Remove",Oke="Delete",Lke="Clear",Uke="Close",Bke={allKinds:"ÙÙ Ø§ÙØ£ÙÙØ§Ø¹",segmentKindStatic:"ثابتة",segmentKindDynamic:"دÙÙØ§Ù
ÙÙÙØ©",grantKindGrant:"Ù
ÙØ",grantKindRevoke:"Ø³ØØ¨",allStatuses:"ÙÙ Ø§ÙØØ§ÙØ§Øª",statusActive:"ÙØ´Ø·Ø©",statusPaused:"Ù
تÙÙÙØ© Ù
Ø¤ÙØªÙا",statusArchived:"Ù
Ø¤Ø±Ø´ÙØ©",statusEnded:"Ù
ÙØªÙÙØ©",statusPending:"ÙÙØ¯ Ø§ÙØ§Ùتظار",statusProcessing:"ÙÙØ¯ اÙÙ
Ø¹Ø§ÙØ¬Ø©",statusCompleted:"Ù
ÙØªÙ
ÙØ©",statusFailed:"ÙØ´Ùت"},Fke={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audie
763nce? Access, discounts, and grants referencing it will lose this targeting."},zke={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},qke={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Hke={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},Vke={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audie
763nce every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"0.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},Kke={title:$ke,description:wke,tabs:kke,status:Cke,actions:Ske,allUsers:Ake,always:Tke,noExpiry:Rke,window:Pke,windowHint:_ke,validFrom:jke,validTo:Nke,pause:Dke,resume:Mke,actionAdd:Eke,actionRemove:Ike,actionDelete:Oke,actionClear:Lke,actionClose:Uke,filters:Bke,segments:Fke,access:zke,discounts:qke,grants:Hke,recurring:Vke},Gke="Announcements",Wke="Banners shown at the top of the marketing site and the console.",Yke="Banners",Qke="Top-of-page banners shown on www and console.",Xke="New Banner",Zke="No banners yet. Create one to show a top-of-page announcement.",Jke="Message",eCe="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",tCe="CTA Label",nCe="CTA Link",aCe="Severity",oCe="Audience",sCe="Starts At",rCe="Ends At",iCe="Dismissible",lCe="Status",cCe="Archive",dCe="Archive this banner? It will no longer be shown to users.",uCe="New Banner",mCe="Edit Banner",pCe="Title",fCe="Type",gCe="Content",hCe="Display type",yCe="Banner",vCe="Modal",bCe="Draft",xCe="Active",$Ce="Info",wCe="Warning",kCe="Critical",CCe="Console only",SCe="Public site only",ACe="Both",TCe="Hero image",RCe="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",PCe="Upload",_Ce="Uploadingâ¦",jCe="Remove",NCe="Only PNG, JPEG, WebP and GIF images are supported.",DCe="Image must be 5MB or smaller.",MCe="Upload failed, please try again.",ECe="Title",ICe="Body",OCe="Action buttons",LCe="Button label",UCe="Button link",BCe="Style",FCe="Add button",zCe="Remove",qCe="Primary",HCe="Secondary",VCe="Link",KCe="Simplified Chinese (source)",GCe="Fill in Simplified Chinese only, then translate to other languages in one click.",WCe="Translate to all languages",YCe="Translatingâ¦",QCe="Other languages (translated, editable)",XCe="Translated {{ok}} languages",ZCe="{{failed}} languages failed â fill in manually or retry",JCe="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",e1e="Re-show to users who already dismissed it",t1e="Fill in the Simplified Chinese body first.",n1e={title:Gke,description:Wke,annTitle:Yke,annDescription:Qke,annNewButton:Xke,annEmpty:Zke,annMessage:Jke,annInlineLinkHint:eCe,annCtaText:tCe,annCtaUrl:nCe,annSeverity:aCe,annAudience:oCe,annStartsAt:sCe,annEndsAt:rCe,annDismissible:iCe,annStatus:lCe,annArchive:cCe,annArchiveConfirm:dCe,annCreateTitle:uCe,annEditTitle:mCe,annColTitle:pCe,annColType:fCe,annColContent:gCe,annDisplayType:hCe,annTypeBanner:yCe,annTypeModal:vCe,annStatusDraft:bCe,annStatusActive:xCe,annSevInfo:$Ce,annSevWarning:wCe,annSevCritical:kCe,annAudConsole:CCe,annAudPublic:SCe,annAudAll:ACe,annHeroImage:TCe,annHeroImageHint:RCe,annHeroImageUpload:PCe,annHeroImageUploading:_Ce,annHeroImageRemove:jCe,annHeroImageBadType:NCe,annHeroImageTooLarge:DCe,annHeroImageUploadFailed:MCe,annModalTitle:ECe,annBody:ICe,annActions:OCe,annActionLabel:LCe,annActionUrl:UCe,annActionVariant:BCe,annActionAdd:FCe,annActionRemove:zCe,annVariantPrimary:qCe,annVariantSecondary:HCe,annVariantLink:VCe,annSourceLocale:KCe,annSourceHint:GCe,annTranslate:WCe,annTranslating:YCe,annOtherLocales:QCe,annTranslateDone:XCe,annTranslateParti
763al:ZCe,annTranslateStale:JCe,annBumpRevision:e1e,annTranslateNeedSource:t1e},a1e="Operations dashboard",o1e="Real-time overview of platform health, usage, and alerts.",s1e="Refresh",r1e="Refreshing",i1e="Updated {{time}}",l1e="Loading dashboard",c1e="Failed to load dashboard",d1e="No data",u1e="No traffic yet",m1e="Video fail rate",p1e="Avg latency",f1e="Error types",g1e="No errors",h1e="Model anomalies",y1e="All models healthy",v1e="Components",b1e="req",x1e="Checkout abandon",$1e="Refunds",w1e="Chargebacks",k1e="First-charge conversion",C1e={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},S1e={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},A1e={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"اÙÙ
ستخدÙ
ÙÙ Ø§ÙØ¹Ø§Ø¯ÙÙÙ ÙÙØ· (Ø¨Ø§Ø³ØªØ«ÙØ§Ø¡ اÙÙ
ÙØ¹ÙÙÙÙ
ÙÙ)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},T1e={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},R1e={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},P1e={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},_1e={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},j1e={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},N1e={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},D1e={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},M1e={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},E1e={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},I1e="{{failed}}/{{total}} jobs",O1e="{{delta}}pt vs yesterday",L1e="Low sample ({{n}})",U1e="Had gateway calls",B1e="Last 7d cohort · normal users only",F1e="Refund rate {{rate}}%",z1e={funnel:"opened {{opened}} · paid {{paid}}"},q1e={title:a1e,description:o1e,refresh:s1e,refreshing:r1e,lastUpdated:i1e,loading:l1e,failedLoad:c1e,empty:d1e,noTraffic:u1e,videoFailRate:m1e,avgLatency:p1e,errorTypes:f1e,noErrors:g1e,modelAnomalies:h1e,noAnomalies:y1e,components:v1e,req:b1e,abandonRate:x1e,refunds:$1e,chargebacks:w1e,firstChargeConversion:k1e,sections:C1e,leaderboard:S1e,kpi:A1e,revenue:T1e,orders:R1e,conversion:P1e,componentStatus:_1e,severity:j1e,health:N1e,alerts:D1e,alertSettings:M1e,range:E1e,videoJobsDetail:I1e,vsYesterdayPt:O1e,lowSample:L1e,activeUsersHint:U1e,conversionCohortHint:B1e,refundRate:F1e,checkout:z1e},H1e="Loading...",V1e="Admin permission required",K1e="Your account does not have permission to access this administrator page.",G1e={loading:H1e,permissionRequired:V1e,permissionDescription:K1e},W1e="User growth",Y1e="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",Q1e={mobileLabel:"ÙØ³Ù
اÙÙÙ
Ù",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"رÙ
ز Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",tasks:"Task wall"},X1e="Coupon batch",Z1e="Promotion rule",J1e="Count",eSe="Batch code",tSe="Creating...",nSe="Create batch",aSe="{{count}} coupon code created",oSe="{{count}} coupon codes created",sSe="Batch {{code}}",rSe="Copied",iSe="Copy all",lSe="Credit grants",cSe="Source",dSe="Status",uSe="No grants yet",mSe="Coupon redemptions, signup bonuses, and manual grants appear here.",pSe="Time",fSe="User",gSe="Amount",hSe="Signup bonus",ySe="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",vSe="Enable signup credit",bSe="Amount (USD)",xSe="Save signup bonus",$Se="Saving...",wSe="Current amount {{amount}}",kSe="Referral cashback",CSe="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",SSe="Enable referral cashback",ASe="Reward tiers",TSe="Add tier",RSe="Recipient",PSe="From day",_Se="Until day",jSe="Percent",NSe="Label",DSe="Action",MSe="Inviter",ESe="Invitee",ISe="No end",OSe="Remove tier",LSe="Release delay (days)",USe="Per-topup cap (USD)",BSe="Min topup (USD, blank = none)",FSe
763="Cashback expiry (days, blank = never)",zSe="Billing-page countdown banner",qSe="Banner title",HSe="Subtitle",VSe="Countdown mode",KSe="Global deadline",GSe="Each invitee's 30-day window",WSe="Ends at",YSe="Save referral settings",QSe="v{{version}}",XSe="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",ZSe="Version history",JSe="Version",eAe="Status",tAe="Reward tiers",nAe="Published",aAe="Superseded",oAe="current",sAe="Top-up discount codes",rAe="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",iAe="Enable discount codes",lAe="Discount type",cAe="Fixed amount off (USD)",dAe="Percentage off (%)",uAe="Amount off (USD)",mAe="Percentage off (0-100)",pAe="Save discount",fAe="Default low-balance alert",gAe="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",hAe="Threshold (USD)",yAe="Save threshold",vAe="Current: {{amount}}",bAe="Generate codes against the discount rule above.",xAe="In effect: {{state}} · {{value}} off",$Ae="enabled",wAe="disabled",kAe="Issued codes",CAe="Pick a batch to see who redeemed each code.",SAe="No batches yet",AAe="Generate a batch above to start tracking redemptions.",TAe="Total",RAe="Redeemed",PAe="Reserved",_Ae="Available",jAe="Codes in {{code}}",NAe="No codes in this batch",DAe="Code",MAe="Redeemed by",EAe="Redeemed at",IAe="Paid",OAe="Discount",LAe="Ø¥ÙØ´Ø§Ø¡ رÙ
ÙØ²",UAe="Ø§ÙØ±Ù
ز اÙÙ
شتر٠Ù٠رÙ
ز ÙØ§ØØ¯ ÙÙ
ÙÙ ÙØ¹Ø¯Ø© Ù
ستخدÙ
ÙÙ Ø§Ø³ØªØ±Ø¯Ø§Ø¯Ù ØØªÙ N Ù
Ø±Ø©Ø Ø£Ù
ا Ø¯ÙØ¹Ø© Ø§ÙØ±Ù
ÙØ² اÙÙØ±Ùدة ÙÙÙ N رÙ
Ø²ÙØ§ ÙÙØ§Ø³ØªØ®Ø¯Ø§Ù
Ù
رة ÙØ§ØØ¯Ø©.",BAe="ÙÙØ¹ Ø§ÙØ±Ù
ز",FAe="رÙ
ز Ù
Ø´ØªØ±Ù ÙØ§ØØ¯",zAe="Ø¯ÙØ¹Ø© رÙ
ÙØ² ÙØ±Ùدة",qAe="ÙØµ Ø§ÙØ±Ù
ز (اترÙÙ ÙØ§Ø±ØºÙا ÙØ±Ù
ز Ø¹Ø´ÙØ§Ø¦Ù)",HAe="Ù
ثاÙ: WELCOME100",VAe="إجÙ
اÙÙ Ù
رات Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
(N)",KAe="ÙÙÙ Ù
ستخدÙ
",GAe="ÙÙØªÙÙ ÙÙ (Ø§Ø®ØªÙØ§Ø±Ù)",WAe="Ù
جÙ
ÙØ¹Ø© Ø§Ø®ØªÙØ§Ø±ÙØ©",YAe="Ø¥ÙØ´Ø§Ø¡ رÙ
ز Ù
شترÙ",QAe="تÙ
Ø¥ÙØ´Ø§Ø¡ Ø§ÙØ±Ù
ز اÙÙ
شترÙ",XAe="استخدÙ
خصÙ
ÙØ§ ÙÙØ°Ù Ø§ÙØ¯Ùعة (ÙØ¥Ùا ÙØ§ÙÙØ§Ø¹Ø¯Ø© Ø£Ø¹ÙØ§Ù)",ZAe="Ø§ÙØ±Ù
ÙØ² اÙÙ
Ø´ØªØ±ÙØ©",JAe="رÙ
ز ÙØ§ØØ¯ ÙØ¹Ø¯Ø© Ù
ستخدÙ
ÙÙ. ÙØªØªØ¨Ø¹ عدد Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
عÙ
ÙÙØ§Øª Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ اÙÙ
دÙÙØ¹Ø©.",eTe="ÙØ§ ØªÙØ¬Ø¯ رÙ
ÙØ² Ù
Ø´ØªØ±ÙØ© بعد",tTe="اÙÙ
ÙØ³ØªØ®Ø¯ÙÙ
/ Ø§ÙØØ¯ Ø§ÙØ£ÙصÙ",nTe="ÙÙÙ Ù
ستخدÙ
",aTe="ÙÙØªÙÙ",oTe="تعطÙÙ",sTe="تعطÙÙ ÙØ°Ø§ Ø§ÙØ±Ù
زØ",rTe="ØªÙØØ¸Ø± عÙ
ÙÙØ§Øª Ø§ÙØ¯Ùع Ø§ÙØ¬Ø¯Ùدة ÙÙØ±Ùا. Ø£Ù
ا Ø§ÙØ·Ùبات ÙÙØ¯ Ø§ÙØ¯Ùع باÙÙØ¹Ù ÙÙÙ
Ù٠إتÙ
اÙ
ÙØ§.",iTe="تÙ
تعطÙÙ Ø§ÙØ±Ù
ز",lTe="CSV",cTe="Ø§ÙØØ§ÙØ©",dTe="Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ",uTe={code:"Ø§ÙØ±Ù
ز",discount:"Ø§ÙØ®ØµÙ
",redeemed:"تÙ
Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",cap:"Ø§ÙØØ¯ Ø§ÙØ£ÙصÙ",perUser:"ÙÙÙ Ù
ستخدÙ
",status:"Ø§ÙØØ§ÙØ©",expiresAt:"ÙÙØªÙÙ ÙÙ",batch:"Ø§ÙØ¯Ùعة",createdAt:"ØªØ§Ø±ÙØ® Ø§ÙØ¥Ùشاء",redeemedBy:"استردÙ",redeemedAt:"ØªØ§Ø±ÙØ® Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",paid:"Ù
دÙÙØ¹",discountAmount:"Ø§ÙØ®ØµÙ
",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},mTe="Amount",pTe="Bound at",fTe="Counterparty",gTe="Invitee",hTe="Inviter",yTe="Rate",vTe="Released",bTe="Role",xTe="Tier",$Te="Top-up",wTe="Load more",kTe="No referrals under this version",CTe="No cashback under this version",STe="Referrals",ATe="Referral records",TTe="Cashback records",RTe="Version detail",PTe={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},_Te="Ø¥ÙØ´Ø§Ø¡ رÙ
ÙØ² استرداد",jTe="رÙ
ÙØ² استرداد بÙÙ
Ø· Ø¨Ø·Ø§ÙØ§Øª Ø§ÙØ±ØµÙد. ÙÙØ¯Ø®Ù اÙÙ
ستخدÙ
رÙ
ز Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ ÙÙ ØµÙØØ© اÙÙÙØªØ±Ø©Ø ÙØªÙضا٠اÙÙÙÙ
Ø© Ø§ÙØ§Ø³Ù
ÙØ© Ù
باشرة Ø¥ÙÙ Ø§ÙØ±ØµÙد (Ø±ØµÙØ¯ Ù
ÙÙØ¯ÙØ Ù
٠دÙÙ Ø¯ÙØ¹).",NTe="اسÙ
Ø§ÙØ¯Ùعة (Ø§Ø®ØªÙØ§Ø±Ù)",DTe="Ù
ثاÙ: Conf-2026 ÙØ¯ÙØ©",MTe="عدد Ø§ÙØ±Ù
ÙØ² اÙÙ
ÙÙØ´Ø£Ø©",ETe="اÙÙÙÙ
Ø© Ø§ÙØ§Ø³Ù
ÙØ© ÙÙ٠رÙ
ز (USD)",ITe="Ø§ÙØØ¯ ÙÙÙ ØØ³Ø§Ø¨ ÙÙ ÙØ°Ù Ø§ÙØ¯Ùعة (اترÙÙ ÙØ§Ø±ØºÙا = Ø¨ÙØ§ ØØ¯)",OTe="Ø¨ÙØ§ ØØ¯",LTe="Ù
ÙØ¹Ø¯ Ø§ÙØªÙاء Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ (Ø§Ø®ØªÙØ§Ø±Ù)",UTe="Restrict to models (optional)",BTe="General balance (no restriction)",FTe="{{count}} models selected",zTe="Blank = general balance. Selected models share one earmarked pool.",qTe="Credit validity after redemption (days, blank = never expires)",HTe="never expires",VTe="{{n}} d",KTe="Models",GTe="Validity",WTe="General balance",YTe="Ø¥ÙØ´Ø§Ø¡ رÙ
ÙØ² استرداد",QTe='ÙÙØ±Ø¬Ù ØÙØ¸ÙØ§ ÙÙØ±Ùا. ÙÙÙ
ÙÙÙ Ø£ÙØ¶Ùا Ø§Ø³ØªØ¹Ø§Ø¯ØªÙØ§ ÙØ§ØÙÙØ§ Ù
Ù ÙØ§Ø¦Ù
Ø© Ø§ÙØ¯Ùعات عبر "ØªØµØ¯ÙØ± اÙÙØµ Ø§ÙØµØ±ÙØ".',XTe="Ø¯ÙØ¹Ø§Øª رÙ
ÙØ² Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",ZTe='اÙÙØ± عÙÙ Ø§ÙØ¯Ùعة ÙØ¹Ø±Ø¶ ØªÙØ§ØµÙÙ Ù٠رÙ
Ø²Ø ÙÙÙ
ÙÙ ÙÙ "ØªØµØ¯ÙØ± اÙÙØµ Ø§ÙØµØ±ÙØ" إعادة ØªØµØ¯ÙØ± Ø§ÙØ±Ù
ÙØ² Ø¨ÙØµÙا Ø§ÙØµØ±ÙØ.',JTe="ÙØ§ ØªÙØ¬Ø¯ Ø¯ÙØ¹Ø§Øª رÙ
ÙØ² استرداد ØØ§ÙÙÙØ§",eRe="Ø§ÙØ¯Ùعة",tRe="اÙÙÙÙ
Ø© Ø§ÙØ§Ø³Ù
ÙØ©",nRe="ØªØµØ¯ÙØ± اÙÙØµ Ø§ÙØµØ±ÙØ",aRe="ÙÙ ØªØ±ÙØ¯ Ø¥ÙØºØ§Ø¡ ÙØ°Ø§ Ø§ÙØ±Ù
ز Ø§ÙØ°Ù تÙ
Ø§Ø³ØªØ±Ø¯Ø§Ø¯ÙØ",oRe="استرد Ø§ÙØ¬Ø²Ø¡ ØºÙØ± اÙÙ
ÙØ³ØªÙÙÙ Ù
Ù Ø±ØµÙØ¯ اÙÙ
ستخدÙ
Ø Ø£Ù
ا Ø§ÙØ¬Ø²Ø¡ اÙÙ
ÙØ³ØªÙÙÙ ÙÙØ§ ÙÙ
Ù٠استرجاعÙ.",sRe="Ø¥ÙØºØ§Ø¡",rRe="تÙ
Ø¥ÙØºØ§Ø¡ {{amount}}",iRe="تÙ
ØªØµØ¯ÙØ± رÙ
ÙØ² Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",lRe="ÙÙ ØªØ±ÙØ¯ تعطÙÙ Ø§ÙØ±Ù
ÙØ² ØºÙØ± اÙÙ
ستردة ÙÙ ÙØ°Ù Ø§ÙØ¯ÙعةØ",cRe="Ø³ØªØµØ¨Ø Ø¬Ù
ÙØ¹ Ø§ÙØ±Ù
ÙØ² Ø§ÙØªÙ ÙÙ
ØªÙØ³ØªØ±Ø¯ بعد ØºÙØ± ØµØ§ÙØØ©Ø ÙÙ٠تتأثر Ø§ÙØ±Ù
ÙØ² Ø§ÙØªÙ تÙ
Ø§Ø³ØªØ±Ø¯Ø§Ø¯ÙØ§.",dRe="تÙ
تعطÙÙ {{n}} رÙ
Ø²ÙØ§",uRe="Bonus % on top-up",mRe="Bonus (%)",pRe="Bonus validity (days, optional)",fRe="blank = never expires",gRe={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},hRe={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
763ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},yRe={title:W1e,description:Y1e,tabs:Q1e,couponBatch:X1e,promotionRule:Z1e,count:J1e,batchCode:eSe,creating:tSe,createBatch:nSe,codesCreated:aSe,codesCreated_plural:oSe,batch:sSe,copied:rSe,copyAll:iSe,creditGrants:lSe,source:cSe,status:dSe,noGrants:uSe,noGrantsDescription:mSe,time:pSe,user:fSe,amount:gSe,signupBonus:hSe,signupBonusDescription:ySe,signupBonusEnabled:vSe,signupBonusAmount:bSe,saveSignupBonus:xSe,saving:$Se,currentSignupBonus:wSe,referral:kSe,referralDescription:CSe,referralEnabled:SSe,referralRewardTiers:ASe,addTier:TSe,tierRole:RSe,tierFromDay:PSe,tierUntilDay:_Se,tierPercent:jSe,tierLabel:NSe,tierAction:DSe,roleReferrer:MSe,roleReferee:ESe,noEndDay:ISe,removeTier:OSe,releaseDelayDays:LSe,referralCap:USe,referralMinTopup:BSe,referralExpiryDays:FSe,bannerEnabled:zSe,bannerTitle:qSe,bannerSubtitle:HSe,bannerMode:VSe,bannerModeGlobal:KSe,bannerModeWindow:GSe,bannerEndsAt:WSe,saveReferral:YSe,referralVersion:QSe,referralPublishHint:XSe,referralVersionHistory:ZSe,versionCol:JSe,versionStatus:eAe,versionTiers:tAe,versionPublished:nAe,versionSuperseded:aAe,versionCurrent:oAe,discountRule:sAe,discountRuleDescription:rAe,discountEnabled:iAe,discountType:lAe,discountFixed:cAe,discountPercent:dAe,discountValueFixed:uAe,discountValuePercent:mAe,saveDiscount:pAe,defaultLowBalanceThreshold:fAe,defaultLowBalanceThresholdDescription:gAe,defaultLowBalanceThresholdAmount:hAe,saveDefaultLowBalanceThreshold:yAe,currentDefaultLowBalanceThreshold:vAe,couponBatchDescription:bAe,discountEffective:xAe,stateEnabled:$Ae,stateDisabled:wAe,couponTrace:kAe,couponTraceDescription:CAe,noBatches:SAe,noBatchesDescription:AAe,batchTotal:TAe,batchRedeemed:RAe,batchReserved:PAe,batchActive:_Ae,codesInBatch:jAe,noCodes:NAe,code:DAe,redeemedBy:MAe,redeemedAt:EAe,paid:IAe,discount:OAe,createIssuance:LAe,createIssuanceDescription:UAe,formLabel:BAe,formShared:FAe,formUniqueBatch:zAe,sharedCodeText:qAe,sharedCodeRandomHint:HAe,sharedMaxRedemptions:VAe,sharedPerUser:KAe,expiresAt:GAe,batchCodeOptional:WAe,createSharedCode:YAe,sharedCodeCreated:QAe,batchOwnDiscount:XAe,sharedCodesList:ZAe,sharedCodesListDescription:JAe,noSharedCodes:eTe,colRedeemedTotal:tTe,colPerUser:nTe,colExpiry:aTe,disableCode:oTe,disableCodeConfirmTitle:sTe,disableCodeConfirmMessage:rTe,codeDisabled:iTe,exportCsv:lTe,statusFilter:cTe,filterByEmail:dTe,csv:uTe,colAmount:mTe,colBoundAt:pTe,colCounterparty:fTe,colInvitee:gTe,colInviter:hTe,colRate:yTe,colReleasedAt:vTe,colRole:bTe,colTier:xTe,colTopup:$Te,loadMore:wTe,noBindings:kTe,noCashback:CTe,versionBindings:STe,versionBindingsSection:ATe,versionCashbackSection:TTe,versionDetail:RTe,topup:PTe,redeemCreate:_Te,redeemCreateDescription:jTe,redeemBatchName:NTe,redeemBatchNameHint:DTe,redeemCount:MTe,redeemFaceValue:ETe,redeemPerUserLimit:ITe,redeemUnlimited:OTe,redeemExpiresAt:LTe,redeemModels:UTe,redeemModelsAll:BTe,redeemModelsCount:FTe,redeemModelsHint:zTe,redeemValidityDays:qTe,redeemValidityForever:HTe,redeemValidityDaysValue:VTe,redeemColModels:KTe,redeemColValidity:GTe,redeemGeneralBalance:WTe,redeemCreateBtn:YTe,redeemRevealHint:QTe,redeemBatches:XTe,redeemBatchesDescription:ZTe,redeemNoBatches:JTe,redeemBatchCol:eRe,redeemFace:tRe,redeemReveal:nRe,redeemReverseTitle:aRe,redeemReverseMessage:oRe,redeemReverseBtn:sRe,redeemReversed:rRe,redeemRevealed:iRe,redeemDisableBatchTitle:lRe,redeemDisableBatchMessage:cRe,redeemBatchDisabled:dRe,discountTypeBonusPercent:uRe,discountValueBonusPercent:mRe,bonusExpiryDays:pRe,bonusExpiryDaysHint:fRe,sharedPayments:gRe,tasks:hRe},vRe="Models",bRe="Model catalog: create, edit, publish.",xRe={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},$Re="Add model",wRe="Edit {{model}}",kRe="New model",CRe="Close",SRe="Basics & content save together; pricing and status changes apply immediately.",ARe="Create the model draft. Set pricing and publish after it exists.",TRe={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},RRe="Provider slug",PRe="Pick a known provider or type a custom slug.",_Re="Model slug",jRe="Aliases",NRe="Comma-separated lookup aliases for import and review.",DRe="Source (customer-visible)",MRe="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
763ame-model variants at different prices.",ERe="Platform",IRe="â select platform â",ORe="Upstream model id (optional; choose from upstream or enter manually)",LRe="Choose from upstream...",URe="Upstream unavailable",BRe="Protocols",FRe="Input price / 1M (USD)",zRe="Output price / 1M (USD)",qRe="EN summary",HRe="Preview",VRe="(No summary)",KRe="No protocol",GRe="Cancel",WRe="Save",YRe="Create draft",QRe={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},XRe={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},ZRe="Context window (tokens)",JRe="Max input the model accepts. Leave blank if unknown.",ePe="Max output tokens",tPe="Max tokens the model can generate per response.",nPe={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},aPe="Input modalities",oPe="Declares what this model can receive, including vision, audio, video, and file inputs.",sPe="Output modalities",rPe="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",iPe="Image billing style",lPe="Video billing style",cPe="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",dPe="â select billing style â",uPe="Per token (image_output_token)",mPe="Per image (per_call_image)",pPe="Per second (video_per_second)",fPe="Per call (video_per_call)",gPe="Display order",hPe="Must be a non-negative integer.",yPe="Editing locale",vPe="Upstream release date",bPe="Summary (this locale)",xPe="Description (Markdown, this locale)",$Pe={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"تصÙÙØ©"},wPe={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},kPe={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},CPe={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
763:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},SPe="Discard unsaved changes?",APe="ØªØØ±Ùر اÙÙÙ
ÙØ°Ø¬",TPe={title:vRe,description:bRe,badges:xRe,addModel:$Re,editModel:wRe,newModel:kRe,close:CRe,sheetDescription:SRe,sheetDescriptionNew:ARe,sections:TRe,providerSlug:RRe,providerSlugHint:PRe,modelSlug:_Re,aliases:jRe,aliasesHint:NRe,source:DRe,sourceHint:MRe,platform:ERe,platformUnset:IRe,sub2apiModelId:ORe,chooseSub2api:LRe,upstreamUnavailable:URe,protocols:BRe,inputPrice:FRe,outputPrice:zRe,enSummary:qRe,preview:HRe,noSummary:VRe,noProtocol:KRe,cancel:GRe,save:WRe,createDraft:YRe,tabs:QRe,steps:XRe,contextWindow:ZRe,contextWindowHint:JRe,maxOutputTokens:ePe,maxOutputTokensHint:tPe,lifecycle:nPe,inputModalities:aPe,inputModalitiesHint:oPe,outputModalities:sPe,outputModalitiesHint:rPe,billingStyleImage:iPe,billingStyleVideo:lPe,billingStyleHint:cPe,billingStyleUnset:dPe,billingStyleToken:uPe,billingStylePerImage:mPe,billingStylePerSecond:pPe,billingStylePerCall:fPe,displayOrder:gPe,displayOrderInvalid:hPe,contentLocale:yPe,upstreamReleaseAt:vPe,summary:bPe,descriptionField:xPe,filters:$Pe,table:wPe,errors:kPe,pricing:CPe,discardChanges:SPe,editModelShort:APe},RPe="Rate Limits",PPe="Rate limit policies by scope.",_Pe="Rate limit policies",jPe="No policies",NPe="Code",DPe="Name",MPe="Scope",EPe="Status",IPe="Limits",OPe="No limits",LPe={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},UPe={active:"Active",disabled:"Disabled",archived:"Archived"},BPe={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},FPe="New policy",zPe="Edit",qPe="Action",HPe="New rate limit policy",VPe="Edit {{name}}",KPe="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",GPe='Delete policy "{{name}}"? Keys and users on it fall back to their default.',WPe="Policy deleted.",YPe={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},QPe={title:RPe,description:PPe,label:_Pe,empty:jPe,code:NPe,name:DPe,scope:MPe,status:EPe,limits:IPe,noLimits:OPe,scopes:LPe,statuses:UPe,limitNames:BPe,add:FPe,edit:zPe,delete:"Delete",action:qPe,newTitle:HPe,editTitle:VPe,formDescription:KPe,confirmDelete:GPe,deleted:WPe,form:YPe},XPe="Admins",ZPe="Who can sign in to the admin console. Owner-only.",JPe="Admins",e_e="No admins yet",t_e="Email",n_e="Name",a_e="Role",o_e="Status",s_e="Last login",r_e="Action",i_e="Add admin",l_e="Add admin",c_e="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",d_e="Email",u_e="[email protected]",m_e="Name",p_e="Display name",f_e="Role",g_e="Admin added.",h_e="Change role",y_e="Role updated.",v_e="Suspend",b_e="Activate",x_e="Status updated.",$_e="Remove",w_e="Admin removed.",k_e="Remove {{email}} as an admin? They lose console access immediately.",C_e="You",S_e="Never",A_e={owner:"Owner",admin:"Admin",
763support:"Support"},T_e={active:"Active",suspended:"Suspended"},R_e={title:XPe,description:ZPe,label:JPe,empty:e_e,email:t_e,name:n_e,role:a_e,status:o_e,lastLogin:s_e,action:r_e,add:i_e,newTitle:l_e,formDescription:c_e,emailLabel:d_e,emailPlaceholder:u_e,nameLabel:m_e,namePlaceholder:p_e,roleLabel:f_e,added:g_e,changeRole:h_e,roleChanged:y_e,suspend:v_e,activate:b_e,statusChanged:x_e,remove:$_e,removed:w_e,confirmRemove:k_e,self:C_e,never:S_e,roles:A_e,statuses:T_e},P_e="Upstream",__e="Read-only upstream configuration mirror plus controlled OneHop routing pools.",j_e="Open upstream admin",N_e="Upstream tabs",D_e={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},M_e={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},E_e={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},I_e={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"ØªØºØ·ÙØ© اÙÙ
Ø²ÙØ¯ Ø§ÙØ£Ø¹ÙÙ",coverageUnchecked:"ØªØ¹Ø°ÙØ±Øª ÙØ±Ø§Ø¡Ø© Ø§ÙØØ³Ø§Ø¨Ø§Øª",coverageOnlyAccount:"ÙÙØ· {{accounts}}",coverageNoAccount:"ÙØ§ ÙÙØ¬Ø¯ ØØ³Ø§Ø¨ ÙØ§Ø¨Ù ÙÙØ¬Ø¯ÙÙØ© ÙØ·Ø§Ø¨Ù Ù
عرÙ٠اÙÙ
Ø²ÙØ¯ ÙØ°Ø§"},O_e={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},L_e={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},U_e={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},B_e={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},F_e={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},z_e={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},q_e={title:P_e,description:__e,openUpstreamAdmin:j_e,tabsLabel:N_e,tabs:D_e,metrics:M_e,errors:E_e,audit:I_e,topology:O_e,pools:L_e,readonly:U_e,table:B_e,common:F_e,ops:z_e},H_e="Platform usage",V_e="Cross-user request metering with cost, token, latency, and routing signals.",K_e="Refresh",G_e={label:"Auto refresh",off:"Off"},W_e="Exporting",Y_e="Export CSV",Q_e="Failed to export usage records",X_e="Requests",Z_e="{{count}} successful",J_e="Users",eje="Matched by current filters",tje="Billed credit",nje="{{cost}} upstream cost",aje="Tokens",oje="Avg {{duration}}",sje="User email",rje="Search by email",ije="Model",lje="Search by model",cje="Status",dje="Protocol",uje="Rows",mje="Reset",pje="Ops usage records",fje="No usage records",gje="User",hje="Endpoint",yje="{{count}} total",vje="In {{input}} / out {{output}}",bje="Upstream",xje="Billed",$je="Latency",wje="Started",kje="Page {{page}} · showing {{shown}} of {{total}} matching records",Cje="Previous",Sje="Next",Aje="{{count}} rows on this page",Tje="Times shown in",Rje="{{count}} API keys",Pje="Spend snapshot",_je="from OneHop billing snapshot",jje="User spend",Nje="total billed to users",Dje="Avg latency",Mje="settled requests",Eje="Range",Ije={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},Oje="Metric",Lje={cost:"Spend",tokens:"Tokens",requests:"Requests"},Uje="Distribution",Bje={model:"اÙÙÙ
ÙØ°Ø¬",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
763:"Transport (stream/sync)"},Fje="Usage trend",zje="Usage by model",qje="Hourly",Hje="Daily",Vje="Top endpoints",Kje="Top dimension rows",Gje="Request logs",Wje="API key",Yje="Type",Qje="Billing",Xje="Channel",Zje="Group",Jje="Request ID",e2e="req_ / usg_ / upstream",t2e="All types",n2e="All billing",a2e={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},o2e="Failed to load usage",s2e="Loading usage records",r2e="Try a different filter set.",i2e="No trend data",l2e="No distribution data",c2e="No rows",d2e="Spend breakdown",u2e={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},m2e="Request detail",p2e="Unknown user",f2e="Loading...",g2e="Sub2API actual",h2e="Group multiplier",y2e="Account multiplier",v2e="Identity",b2e="User ID",x2e="Key suffix",$2e={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},w2e="Input",k2e="Output",C2e="Cache read",S2e="Cache write",A2e="Raw metadata",T2e="Request",R2e="Usage ID",P2e="OneHop ID",_2e="Sub2API ID",j2e="Sub2API log",N2e="Routing",D2e="Mapping",M2e="Performance",E2e="First token",I2e="Total",O2e="Error",L2e="Code",U2e="Message",B2e={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},F2e={analytics:"Usage analytics",logs:"Request logs"},z2e={label:"Chart view",stacked:"Over time",ranking:"Ranking"},q2e={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},H2e="More filters",V2e="Slow threshold (ms)",K2e="No model usage",G2e="No requests yet â usage will appear here as traffic comes in.",W2e="Viewing",Y2e="streaming requests",Q2e="Avg duration",X2e="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",Z2e="Open request detail",J2e={title:H_e,description:V_e,refresh:K_e,autoRefresh:G_e,exporting:W_e,exportCsv:Y_e,exportError:Q_e,requests:X_e,successful:Z_e,users:J_e,matchedFilters:eje,billedCredit:tje,upstreamCost:nje,tokens:aje,avgDuration:oje,userEmail:sje,searchEmail:rje,model:ije,searchModel:lje,status:cje,protocol:dje,rows:uje,reset:mje,label:pje,empty:fje,user:gje,endpoint:hje,totalTokens:yje,inOut:vje,upstream:bje,billed:xje,latency:$je,started:wje,pageSummary:kje,previous:Cje,next:Sje,rowsOnPage:Aje,timesShownIn:Tje,apiKeys:Rje,sub2apiCharge:Pje,sub2a
763piChargeSource:_je,userSpend:jje,userSpendSource:Nje,avgLatency:Dje,settledRequests:Mje,range:Eje,ranges:Ije,metric:Oje,metrics:Lje,distribution:Uje,breakdown:Bje,usageTrend:Fje,stackedByModel:zje,hourly:qje,daily:Hje,topEndpoints:Vje,topDimensionRows:Kje,requestLogs:Gje,apiKey:Wje,type:Yje,billing:Qje,channel:Xje,group:Zje,requestId:Jje,requestIdPlaceholder:e2e,allTypes:t2e,allBilling:n2e,table:a2e,failedLoad:o2e,loadingRecords:s2e,tryDifferentFilters:r2e,noTrendData:i2e,noDistributionData:l2e,noRows:c2e,costBreakdown:d2e,adminCost:u2e,requestDetail:m2e,unknownUser:p2e,loading:f2e,sub2apiActual:g2e,groupMultiplier:h2e,accountMultiplier:y2e,identity:v2e,userId:b2e,keySuffix:x2e,continuity:$2e,input:w2e,output:k2e,cacheRead:C2e,cacheWrite:S2e,rawMetadata:A2e,request:T2e,usageId:R2e,onehopId:P2e,sub2apiId:_2e,sub2apiLog:j2e,routing:N2e,mapping:D2e,performance:M2e,firstToken:E2e,total:I2e,error:O2e,code:L2e,message:U2e,csv:B2e,tabs:F2e,modelView:z2e,chip:q2e,moreFilters:H2e,slowThreshold:V2e,noModelUsage:K2e,noTrendToday:G2e,viewing:W2e,avgLatencySub:Y2e,avgTotalDuration:Q2e,latencyHint:X2e,openRequestDetail:Z2e},eNe="Search",tNe="Search by user ID, email, or name",nNe="User",aNe="Back to users",oNe="You do not have permission to view this section.",sNe="Refund",rNe="Refunding...",iNe="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",lNe="Refund initiated.",cNe={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"Ù
ÙØ§ØªÙØ API",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},dNe={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},uNe={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},mNe={phase2:"Subscriptions are coming in Phase 2."},pNe={empty:"No payments"},fNe={empty:"No refunds"},gNe={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},hNe={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},yNe={empty:"No audit records"},vNe={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},bNe={ipLocationTitle:"IP ÙØ§ÙÙ
ÙÙØ¹",deviceBrowserTitle:"Ø§ÙØ¬Ùاز ÙØ§ÙÙ
ØªØµÙØ",stripeTitle:"Stripe",signupIp:"IP Ø§ÙØªØ³Ø¬ÙÙ",signupCountry:"Ø¨ÙØ¯ Ø§ÙØªØ³Ø¬ÙÙ",lastLoginIp:"IP آخر تسجÙ٠دخÙÙ",ipDifferent:"ÙØ®ØªÙ٠ع٠IP Ø§ÙØªØ³Ø¬ÙÙ",sameIpAccounts_one:"{{count}} ØØ³Ø§Ø¨ عÙÙ ÙÙØ³ IP Ø§ÙØªØ³Ø¬ÙÙ",sameIpAccounts_other:"{{count}} ØØ³Ø§Ø¨Ø§Øª عÙÙ ÙÙØ³ IP Ø§ÙØªØ³Ø¬ÙÙ",sameDeviceAccounts_one:"{{count}} ØØ³Ø§Ø¨ عÙÙ ÙÙØ³ Ø§ÙØ¬Ùاز",sameDeviceAccounts_other:"{{count}} ØØ³Ø§Ø¨Ø§Øª عÙÙ ÙÙØ³ Ø§ÙØ¬Ùاز",deviceFingerprint:"بصÙ
Ø© Ø§ÙØ¬Ùاز",freeTierEligible:"Ø£ÙÙÙØ© Ø§ÙØ·Ø¨ÙØ© اÙÙ
جاÙÙØ©",firstDevice:"Ø£ÙÙ ØØ³Ø§Ø¨ عÙÙ Ø§ÙØ¬Ùاز",notFirstDevice:"ÙÙØ³ Ø£ÙÙ ØØ³Ø§Ø¨ عÙÙ Ø§ÙØ¬Ùاز â ÙØ§ Ù
Ø²Ø§ÙØ§ Ù
جاÙÙØ©",browser:"اÙÙ
ØªØµÙØ",os:"OS",deviceType:"ÙÙØ¹ Ø§ÙØ¬Ùاز",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"عرض عÙÙ ipinfo.io"},xNe={empty:"ÙØ§ ØªÙØ¬Ø¯ استدعاءات بعد",viewAll:"عرض ÙÙ Ø§ÙØ³Ø¬Ùات â",colStatus:"Ø§ÙØØ§ÙØ©",colTime:"اÙÙÙØª",colModel:"اÙÙÙ
ÙØ°Ø¬",colProtocol:"Ø§ÙØ¨Ø±ÙتÙÙÙÙ",colDuration:"اÙÙ
دة",colCost:"Ø§ÙØªÙÙÙØ©",colFreeDiscount:"Ø±ØµÙØ¯ Ù
جاÙÙ"},$Ne={empty:"ÙØ§ ØªÙØ¬Ø¯ API keys بعد",colName:"Ø§ÙØ§Ø³Ù
",colKey:"Key",colStatus:"Ø§ÙØØ§ÙØ©",colPolicy:"Ø³ÙØ§Ø³Ø© ØØ¯ اÙÙ
عدÙ",colLastUsed:"آخر استخداÙ
",colCreated:"ØªØ§Ø±ÙØ® Ø§ÙØ¥Ùشاء",colExpires:"ÙÙØªÙÙ ÙÙ",colSpend:"Ø§ÙØ¥ÙÙØ§Ù",spendTitle:"ØªÙØµÙÙ Ø§ÙØ¥ÙÙØ§Ù",spend30d:"آخر 30 ÙÙÙ
ÙØ§",spendAllTime:"Ø§ÙØ¥Ø¬Ù
اÙÙ",spendRequests:"Ø§ÙØ·Ùبات"},wNe="ÙØ³Ø®",kNe="تÙ
اÙÙØ³Ø®",CNe={search:eNe,searchPlaceholder:tNe,title:nNe,backToList:aNe,noBlockPerm:oNe,refund:sNe,refunding:rNe,refundConfirm:iNe,refundInitiated:lNe,nav:cNe,freeTokens:dNe,freeQuota:uNe,subscription:mNe,payments:pNe,refunds:fNe,rewards:gNe,referrals:hNe,audit:yNe,col:vNe,network:bNe,recentCalls:xNe,apiKeys:$Ne,copy:wNe,copied:kNe},SNe="Users",ANe="Search users, grant credit, and suspend accounts.",TNe="Email",RNe="Search by email",PNe="Account status",_Ne={active:"Ø§ÙØØ³Ø§Ø¨ ÙØ´Ø·Ø ÙÙ
ÙÙ٠تسجÙÙ Ø§ÙØ¯Ø®ÙÙ ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ gateway",suspended:"Ù
ÙÙÙÙØ ÙØ±Ùض gateway ÙÙ Ø§ÙØ·Ùبات (401)"},jNe="Risk",NNe={normal:"Ù
ؤÙÙ ÙÙ٠اÙÙ
Ø²Ø§ÙØ§ اÙÙ
جاÙÙØ©",watchlisted:"ÙØ§ ØªÙØ¬Ø¯ token Ù
جاÙÙØ© Ø£Ù Ø±ØµÙØ¯ تسجÙÙØ ÙÙ
ÙÙÙ Ø§ÙØ´ØÙ ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ gateway",blocked:"ÙØ±Ùض gateway ÙÙ Ø§ÙØ·Ùبات (401)Ø ØØ¸Ø± ÙØ§Ù
Ù"},DNe="Users",MNe="No users found",ENe="Country",INe="Last login",ONe="Action",LNe="View",UNe="Deleted",BNe="Set status for {{email}}",FNe='Set {{email}} to "{{status}}"?',zNe="Grant credit",qNe="Add bonus credit to {{email}}. Recorded in the ledger.",HNe="Amount (USD)",VNe="e.g. 5",KNe="Reason (optional)",GNe="e.g. compensation for downtime",WNe="Type",YNe="Bonus credit",QNe="A gift. Does not count as a top-up.",XNe="Offline payment",ZNe="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",JNe="Reference no.",eDe="e.g. bank slip 20260907-001",tDe="Record payment",nDe="Recording...",aDe="Cancel",oDe="Granting...",sDe="Grant",rDe="Grant ${{amount}} to {{email}}? This is a large amount.",iDe="No display name",lDe="Loading...",cDe="score {{score}}",dDe="Email verified",uDe="Yes",mDe="No",pDe="Signup",fDe="Signup method",gDe="Last login method",hDe="Signup bonus",yDe="Onboarding",vDe="Locale / TZ",bDe="Markup ratio",xDe="Rate limit policy",$De="Rate limit policy updated.",wDe="Joined",kDe="Never",CDe="Balance",SDe="Wallet & spend",ADe="Total spent",TDe="Recharged",RDe="Bonus granted",PDe="Refunded",_De="Requests",jDe="Tokens",NDe="Actions",DDe="Identity & risk",MDe="Role",EDe="No permitted actions for your role.",IDe="Acquisition source",ODe="Acquisition by source",LDe="Direct / unknown",UDe="Custom sourceâ¦",BDe="Set",FDe="Auto-detected: {{source}}",zDe="UTM",qDe="Referred by",HDe="Ù
ÙØ§ØØ¸Ø©",VDe="أض٠Ù
ÙØ§ØØ¸Ø© ÙØªØ¹Ø±ÙÙ ÙØ°Ø§ اÙÙ
ستخدÙ
",KDe="ØÙظ اÙÙ
ÙØ§ØØ¸Ø©",GDe="تÙ
ØÙظ اÙÙ
ÙØ§ØØ¸Ø©",WDe="ÙØ§ ØªÙØ¬Ø¯ Ù
ÙØ§ØØ¸Ø©",YDe="تصÙÙØ©",QDe="Location",XDe="Preferred locale",ZDe={title:SNe,description:ANe,email:TNe,searchEmail:RNe,status:PNe,statusEffect:_Ne,risk:jNe,riskEffect:NNe,label:DNe,empty:MNe,country:ENe,lastLogin:INe,action:ONe,view:LNe,deleted:UNe,setStatusAria:BNe,setStatusConfirm:FNe,grantCredit:zNe,grantDescription:qNe,amountUsd:HNe,amountPlaceholder:VNe,reason:KNe,reasonPlaceholder:GNe,grantKind:WNe,grantKindBonus:YNe,grantKindBonusHint:QNe,grantKindOffline:XNe,grantKindOfflineHint:ZNe,referenceNo:JNe,referenceNoPlaceholder:eDe,recordPayment:tDe,recording:nDe,cancel:aDe,granting:oDe,grant:sDe,largeGrantConfirm:rDe,noDisplayName:iDe,loading:lDe,score:cDe,emailVerified:dDe,yes:uDe,no:mDe,signup:pDe,signupMethod:fDe,lastLoginMethod:gDe,signupBonus:hDe,onboarding:yDe,localeTz:vDe,markupRatio:bDe,rateLimitPolicy:xDe,rateLimitPolicyChanged:$De,joined:wDe,never:kDe,walletBalance:CDe,walletSection:SDe,consumed:ADe,recharged:TDe,bonusGranted:RDe,refunded:PDe,requests:_De,tokens:jDe,actionsSection:NDe,identitySection:DDe,role:MDe,noPermittedActions:EDe,acquisitionSource:IDe,acquisitionTitle:ODe,sourceDirect:LDe,sourceCustomPlaceholder:UDe,sourceSet:BDe,sourceCaptured:FDe,utm:zDe,referrer:qDe,note:HDe,notePlaceholder:VDe,noteSave:KDe,noteSaved:GDe,noteEmpty:WDe,filters:YDe,location:QDe,preferredLocale:XDe},JDe="Webhooks",eMe="Stripe webhook events. Status filter, retry, payload inspection.",tMe="Status",nMe="Event type",aMe="Received",oMe="Event type",sMe="Status",rMe="Mode",iMe="Attempts",lMe="Retry",cMe="Retry queued",dMe="Event {{event}} reset to pending; next job tick will process.",uMe="Retry failed",mMe="No webhook events yet.",pMe="Stripe events will appear here once your endpoint is registered.",fMe="Loading payload...",gMe="Last error",hMe="Payload (JSON)",yMe={title:JDe,description:eMe,statusFilter:tMe,eventTypeFilter:nMe,receivedAt:aMe,eventType:oMe,status:sMe,mode:rMe,attempts:iMe,retry:lMe,retrySubmittedTitle:cMe,retrySubmittedBody:dMe,retryFailedTitle:uMe,empty:mMe,emptyHint:pMe,detailLoa
763ding:fMe,lastError:gMe,payload:hMe},vMe="API Keys",bMe="Ø§ØØµÙ عÙ٠أÙÙ key Ø®ÙØ§Ù 10 Ø«ÙØ§ÙÙ",xMe="ÙØ´Ù اÙÙØ³Ø®",$Me={label:"اÙÙÙ
اذج اÙÙ
سÙ
ÙØ Ø¨ÙØ§",allModels:"Ù٠اÙÙÙ
اذج",allHint:"Ù٠اÙÙÙ
اذج Ù٠اÙÙØªØ§ÙÙØ¬ Ù
سÙ
ÙØ Ø¨ÙØ§.",noModels:"ÙØ§ ØªÙØ¬Ø¯ ÙÙ
اذج Ù
ØªØ§ØØ©.",selected:"تÙ
ØªØØ¯Ùد {{count}}",someHint:"{{count}} ÙÙ
ÙØ°Ø¬ Ù
سÙ
ÙØ."},wMe={label:"اÙÙØ³ÙÙ
",placeholder:"Ø£Ø¶Ù ÙØ³Ù
ÙØ§ ÙØ§Ø¶ØºØ· Enter",remove:"Ø¥Ø²Ø§ÙØ©"},kMe="Ø£ÙØ´Ø¦ keys Ù
ØØ¯Ø¯Ø© اÙÙØ·Ø§Ù ÙÙØ¥Ùتاج ÙØ§Ùاختبار ÙØ³Ùر عÙ
٠اÙÙØ±ÙÙ.",CMe="ØªØØ¯ÙØ«",SMe="Key Ø§ÙØªØ±Ø§Ø¶Ù",AMe="اسÙ
key",TMe="جار Ø§ÙØ¥Ùشاء...",RMe="Ø¥ÙØ´Ø§Ø¡ key",PMe="Key ÙØ§Ù
ÙØ ÙØ¸Ùر Ù
رة ÙØ§ØØ¯Ø©",_Me="ÙØ³Ø® API key",jMe="تÙ
اÙÙØ³Ø®",NMe="ÙØ³Ø®",DMe="Ø§ÙØ³Ø®Ù ÙØ§ØÙØ¸Ù Ø§ÙØ¢Ù. بعد Ø¥ØºÙØ§Ù ÙØ°Ù اÙÙÙØØ© ÙØ§ ÙÙ
Ù٠عرض key اÙÙØ§Ù
Ù Ù
رة أخرÙ.",MMe="ØÙظتÙ",EMe="ÙØ´Ù تØÙ
ÙÙ API keys",IMe="إعادة اÙÙ
ØØ§ÙÙØ©",OMe="ÙØ§ ØªÙØ¬Ø¯ API keys بعد",LMe="Ø£ÙØ´Ø¦ Ø£ÙÙ key ÙØ¨Ø¯Ø¡ Ø¥Ø±Ø³Ø§Ù Ø§ÙØ·Ùبات عبر OneHop.",UMe={label:"API keys",tags:"اÙÙØ³ÙÙ
",name:"Ø§ÙØ§Ø³Ù
",key:"Key",status:"Ø§ÙØØ§ÙØ©",created:"ØªØ§Ø±ÙØ® Ø§ÙØ¥Ùشاء",action:"Ø§ÙØ¥Ø¬Ø±Ø§Ø¡",usage:"Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",quota:"Ø§ÙØØµØ©",expires:"ÙÙØªÙÙ ÙÙ",lastUsed:"آخر استخداÙ
"},BMe="Ø¥ÙØºØ§Ø¡",FMe="Ø¥ÙØºØ§Ø¡ {{name}}Ø ÙØ§ ÙÙ
ÙÙ Ø§ÙØªØ±Ø§Ø¬Ø¹ Ø¹Ù ÙØ°Ø§ Ø§ÙØ¥Ø¬Ø±Ø§Ø¡.",zMe="سÙ
ÙÙ key. تبÙÙ Ø§ÙØØ¯ÙØ¯ ÙØªØ§Ø±ÙØ® Ø§ÙØ§ÙØªÙØ§Ø¡ ÙÙ Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª اÙÙ
ØªÙØ¯Ù
Ø© Ù
ا ÙÙ
ØªØØªØ¬ Ø¥ÙÙÙØ§.",qMe="ØØ¯ credit Ø§ÙØ´ÙرÙ",HMe="ÙÙØªÙÙ ÙÙ",VMe="ØºÙØ± Ù
ØØ¯Ùد",KMe="جار Ø§ÙØÙØ¸...",GMe="ØÙظ",WMe="Ø¥ÙØºØ§Ø¡",YMe={title:"Ù
Ø¹Ø·ÙØ© ÙÙ
ÙØºØ§Ø©",description:"Keys Ù
Ø¹Ø·ÙØ© Ø£Ù Ù
ÙØºØ§Ø©. ÙÙ
ÙÙ٠إعادة ØªÙØ¹Ù٠اÙÙ
Ø¹Ø·ÙØ©Ø ÙØªØ¨Ù٠اÙÙ
ÙØºØ§Ø© ÙØ³Ø¬Ù."},QMe={title:"ÙØ§ ØªÙØ¬Ø¯ keys ÙØ´Ø·Ø©",description:"أعد ØªÙØ¹ÙÙ key Ù
Ø¹Ø·ÙØ© Ø£Ø¯ÙØ§Ù Ø£Ù Ø£ÙØ´Ø¦ ÙØ§ØØ¯Ø© Ø¬Ø¯ÙØ¯Ø©."},XMe={import:"Ø§Ø³ØªÙØ±Ø§Ø¯ Ø¥ÙÙ CCS",client:"عÙ
ÙÙ CC-Switch",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"تÙ
ÙØªØ CC Switch Ø¨Ø¹ÙØµØ± ÙØ§Ø¦Ø¨. Ø§ÙØµÙ ÙÙØ§Ù Ù
ÙØªØ§Ø API اÙÙ
ØÙÙØ¸ ÙØ¯ÙÙ.",checking:"Ø¬Ø§Ø±Ù Ø§ÙØªØÙÙ Ù
Ù Ø§ÙØªÙاÙÙâ¦",blocked:{title:"ÙØ§ ÙÙ
ÙÙ ÙÙ {{client}} استخداÙ
ÙØ°Ø§ اÙÙ
ÙØªØ§Ø",body:"«{{keyName}}» ÙØ³Ù
Ø ÙÙØ· بÙÙ
اذج ÙØ§ ÙÙ
ÙÙ ÙÙ {{client}} استخداÙ
ÙØ§. Ø³ÙØ¤Ø¯Ù Ø§ÙØ§Ø³ØªÙراد Ø¥ÙÙ ØØ¯ÙØ« أخطاء.",adjust:"تعدÙÙ ÙØ·Ø§Ù اÙÙÙ
اذج",forceImport:"Ø§ÙØ§Ø³ØªÙراد عÙÙ Ø£Ù ØØ§Ù (ÙÙ ÙØ¹Ù
Ù)"},pin:{title:"Ø§ÙØ§Ø³ØªÙراد ÙÙ {{model}} ÙÙ {{client}}",body:"«{{keyName}}» ÙØ§ ÙØªØ¶Ù
٠اÙÙÙ
ÙØ°Ø¬ Ø§ÙØ§Ùتراض٠ÙÙ {{client}}. Ø¥ÙÙÙ ÙÙÙÙØ© ØªÙØ¬ÙÙ Ø·ÙØ¨Ø§Øª {{client}} عبر ÙØ°Ø§ اÙÙ
زÙÙØ¯:",adjust:"تعدÙÙ ÙØ·Ø§Ù اÙÙÙ
اذج",confirm:"Ø§ÙØ§Ø³ØªÙراد باستخداÙ
{{model}}"}},ZMe={search:"Ø¨ØØ«",searchPlaceholder:"Ø§Ø¨ØØ« Ø¨Ø§ÙØ§Ø³Ù
Ø£Ù ÙØ§ØÙØ© key",status:"Ø§ÙØØ§ÙØ©",allStatus:"ÙÙ Ø§ÙØØ§ÙØ§Øª",clear:"Ù
Ø³Ø Ø¹ÙØ§Ù
Ù Ø§ÙØªØµÙÙØ©",empty:"ÙØ§ ØªÙØ¬Ø¯ keys ØªØ·Ø§Ø¨Ù ÙØ°Ù Ø§ÙØ¹ÙاÙ
Ù",emptyDescription:"اÙ
Ø³Ø Ø§ÙØ¨ØØ« أ٠عاÙ
٠تصÙÙØ© Ø§ÙØØ§ÙØ© ÙØ±Ø¤ÙØ© ÙÙ keys.",mobileTitle:"تصÙÙØ©"},JMe={active:"ÙØ´Ø·",inactive:"Ù
عطÙÙ",revoked:"Ù
ÙØºÙ",expired:"Ù
ÙØªÙÙ",quota_exhausted:"Ø§ÙØØµØ© Ù
ستÙÙØ¯Ø©"},eEe={today:"اÙÙÙÙ
{{requests}} req · {{credit}}",days30:"30 ÙÙÙ
ÙØ§ {{requests}} req · {{credit}}"},tEe={use:"ØªÙØ§ØµÙÙ Ø§ÙØ§ØªØµØ§Ù",edit:"ØªØØ±Ùر",enable:"ØªÙØ¹ÙÙ",disable:"تعطÙÙ",delete:"ØØ°Ù"},nEe="استخداÙ
API key",aEe="استخدÙ
key اÙÙ
ØÙÙØ¸ Ù
ع gateway Ø§ÙØ®Ø§Øµ ب٠OneHop. ÙØ¸Ùر key اÙÙØ§Ù
Ù Ù
رة ÙØ§ØØ¯Ø© ÙÙØ· Ø¹ÙØ¯ Ø§ÙØ¥Ùشاء.",oEe={baseUrl:"Base URL",keyHint:"API key",authorization:"ترÙÙØ³Ø© Authorization",env:"Ù
ØªØºÙØ± Ø§ÙØ¨Ùئة",curl:"cURL",revealing:"جار٠Ù٠تشÙÙØ± keyâ¦",fullKeyUnavailable:"ÙØ¸Ùر key اÙÙØ§Ù
Ù Ù
رة ÙØ§ØØ¯Ø© ÙÙØ· Ø¹ÙØ¯ Ø¥ÙØ´Ø§Ø¦Ù. اØ
763³ØªØ®Ø¯Ù
اÙÙÙÙ
Ø© Ø§ÙØªÙ ØÙØ¸ØªÙØ§Ø Ø£Ù Ø£ÙØ´Ø¦ key Ø¬Ø¯ÙØ¯Ùا إذا ÙÙÙØ¯.",protocolEndpoints:"ÙÙØ§Ø· ÙÙØ§ÙØ© Ø§ÙØ¨Ø±ÙتÙÙÙÙ"},sEe="Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª اÙÙ
ØªÙØ¯Ù
Ø©",rEe="Ø¥ÙØ´Ø§Ø¡ API key",iEe="ØªØØ±Ùر API key",lEe={label:"اÙÙØµÙ٠إÙ٠اÙÙÙ
اذج",all:"Ù٠اÙÙÙ
اذج",limited:"تÙÙÙØ¯ بÙÙ
اذج Ù
ØØ¯Ø¯Ø©",allHint:"ÙÙ
ÙÙ ÙÙØ°Ù key استدعاء Ù٠اÙÙÙ
Ø§Ø°Ø¬Ø Ø¨Ù
ا ÙÙÙØ§ Ø§ÙØªÙ ØªÙØ¶Ø§Ù ÙØ§ØÙÙØ§.",snapshotHint:"اÙÙÙ
اذج Ø§ÙØªÙ ØªØ®ØªØ§Ø±ÙØ§ ÙÙØ·Ø اÙÙÙ
اذج Ø§ÙØ¬Ø¯Ùدة ÙØ§ ØªÙØ¶Ø§Ù تÙÙØ§Ø¦ÙÙØ§.",snapshotHintEdit:"اÙÙÙ
اذج Ø§ÙØªÙ ØªØ®ØªØ§Ø±ÙØ§ ÙÙØ·Ø اÙÙÙ
اذج Ø§ÙØ¬Ø¯Ùدة ÙØ§ ØªÙØ¶Ø§Ù تÙÙØ§Ø¦ÙÙØ§. Ø§ÙØªØ¨Ø¯Ù٠إÙÙ Ù٠اÙÙÙ
اذج ÙØ³ØªØ¨Ø¯Ù ÙØ°Ù اÙÙØ§Ø¦Ù
Ø© Ø§ÙØ¨Ùضاء.",searchPlaceholder:"Ø§Ø¨ØØ« Ù٠اÙÙÙ
اذجâ¦",selectAllResults:"ØªØØ¯Ùد Ù٠اÙÙØªØ§Ø¦Ø¬ ({{count}})",selectedCount:"اÙÙ
ØØ¯Ø¯ {{count}} / {{max}}",clear:"Ù
سØ",hiddenSelected:"{{hidden}} Ù
Ù {{total}} Ù
ØØ¯Ø¯Ø© Ù
Ø®ÙÙØ© بسبب اÙÙÙØªØ± Ø§ÙØØ§ÙÙ",selectVendor:"ØªØØ¯Ùد ÙÙ {{vendor}}Ø Ø§ÙÙ
ØØ¯Ø¯ {{on}} Ù
Ù {{total}}",emptyTitle:"ÙØ§ ØªÙØ¬Ø¯ ÙÙ
اذج Ù
Ø·Ø§Ø¨ÙØ©",emptyDescription:"Ø¬Ø±ÙØ¨ ÙÙØ¹Ùا Ø£Ù Ø¨ØØ«Ùا Ù
ختÙÙÙØ§.",loadFailed:"تعذر تØÙ
Ù٠اÙÙÙ
اذج",loadFailedHint:"أعد اÙÙ
ØØ§ÙÙØ© أ٠ارجع Ø¥ÙÙ Ù٠اÙÙÙ
اذج.",type:{all:"اÙÙÙ",text:"ÙØµ",image:"ØµÙØ±Ø©",video:"ÙÙØ¯ÙÙ",embedding:"Embedding"},pickAtLeastOne:"اختر ÙÙ
ÙØ°Ø¬Ùا ÙØ§ØØ¯Ùا عÙÙ Ø§ÙØ£Ù٠أ٠ارجع Ø¥ÙÙ Ù٠اÙÙÙ
اذج.",limitReached:"Reached the {{max}}-model limit"},cEe={title:"تÙ
Ø¥ÙØ´Ø§Ø¡ API key",subtitle:"{{name}} Ø¬Ø§ÙØ²Ø© â ÙØµÙÙÙØ§ Ø§ÙØ¢Ù.",onceWarning:"ØªÙØ¹Ø±Ø¶ Ù
رة ÙØ§ØØ¯Ø©. ÙÙ
ÙÙÙ Ø¥Ø¸ÙØ§Ø±Ùا ÙØ§ØÙÙØ§Ø ÙÙÙ Ù
Ù Ø§ÙØ£ÙØ¶Ù ÙØ³Ø®Ùا Ø§ÙØ¢Ù.",connect:"اتصاÙ",done:"تÙ
"},dEe="IP",uEe="Ø£ÙÙØºÙت ÙÙ {{date}}",mEe={title:vMe,emptyTitle:bMe,copyFailed:xMe,allowedModels:$Me,tags:wMe,description:kMe,refresh:CMe,defaultName:SMe,keyName:AMe,creating:TMe,createKey:RMe,fullKeyTitle:PMe,copyApiKey:_Me,copied:jMe,copy:NMe,fullKeyDescription:DMe,savedIt:MMe,loadFailed:EMe,retry:IMe,empty:OMe,emptyDescription:LMe,table:UMe,revoke:BMe,revokeConfirm:FMe,formDescription:zMe,monthlyCreditLimit:qMe,expiresAt:HMe,unlimited:VMe,saving:KMe,save:GMe,cancel:WMe,parked:YMe,noActive:QMe,ccswitch:XMe,filters:ZMe,status:JMe,usage:eEe,actions:tEe,useTitle:nEe,useDescription:aEe,use:oEe,advancedSettings:sEe,createTitle:rEe,editTitle:iEe,scope:lEe,created:cEe,lastUsedIp:dEe,revokedAt:uEe},pEe="Audit Logs",fEe="High-risk admin actions, by action and time.",gEe="Action",hEe="Clear",yEe={ops_user_update_status:"تÙ
ØªØØ¯ÙØ« ØØ§ÙØ© اÙÙ
ستخدÙ
",ops_users_allowlist_add:"تÙ
ت Ø¥Ø¶Ø§ÙØ© ØµÙØ§ØÙØ© Ø§ÙØªØ³Ø¬ÙÙ",ops_users_allowlist_update:"تÙ
ØªØØ¯ÙØ« ØµÙØ§ØÙØ© Ø§ÙØªØ³Ø¬ÙÙ",ops_users_allowlist_invite:"تÙ
Ø¥Ø±Ø³Ø§Ù Ø¯Ø¹ÙØ© ØµÙØ§ØÙØ© Ø§ÙØªØ³Ø¬ÙÙ",ops_users_allowlist_revoke:"تÙ
ت Ø¥Ø²Ø§ÙØ© ØµÙØ§ØÙØ© Ø§ÙØªØ³Ø¬ÙÙ",ops_users_allowlist_restore:"تÙ
ت استعادة ØµÙØ§ØÙØ© Ø§ÙØªØ³Ø¬ÙÙ",ops_model_create:"تÙ
Ø¥ÙØ´Ø§Ø¡ اÙÙÙ
ÙØ°Ø¬",ops_model_update:"تÙ
ØªØØ¯ÙØ« اÙÙÙ
ÙØ°Ø¬",ops_model_update_status:"تÙ
ØªØØ¯ÙØ« ØØ§ÙØ© اÙÙÙ
ÙØ°Ø¬",sub2api_pool_create:"تÙ
Ø¥ÙØ´Ø§Ø¡ Ù
جÙ
ÙØ¹Ø© Ø§ÙØªÙجÙÙ",sub2api_pool_test:"تÙ
اختبار Ù
جÙ
ÙØ¹Ø© Ø§ÙØªÙجÙÙ",sub2api_pool_rotate_secret:"تÙ
تدÙÙØ± سر Ø§ÙØªÙجÙÙ"},vEe="Audit logs",bEe="No audit entries",xEe="Time",$Ee="Severity",wEe="Target",kEe={ai_model:"Model",sub2api_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},CEe="ÙÙØ¹ اÙÙØ¯Ù",SEe="Ù
عرÙÙ Ø§ÙØ·Ùب",AEe={title:pEe,description:fEe,action:gEe,clear:hEe,actions:yEe,label:vEe,empty:bEe,time:xEe,severity:$Ee,target:wEe,targetTypes:kEe,targetType:CEe,requestId:SEe},TEe="تسجÙÙ Ø§ÙØ¯Ø®Ù٠إÙÙ OneHop",REe="Ø£Ø¯Ø®Ù Ø§ÙØ±Ù
ز",PEe="تابع باستخداÙ
Google Ø£Ù Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ",_Ee="Ø£Ø¯Ø®Ù Ø¨Ø±ÙØ¯Ù Ø§ÙØ¥ÙÙØªØ±ÙÙÙ ÙØ§Ø³ØªÙاÙ
رÙ
ز",jEe="Ø£Ø¯Ø®Ù Ø§ÙØ±Ù
ز اÙÙ
ÙÙÙÙ Ù
Ù 6 Ø£Ø±ÙØ§Ù
اÙÙ
رس٠إÙÙ {{email}}",NEe="اÙÙ
تابعة باستخداÙ
Google",DEe="اÙÙ
تابعة Ø¨Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ",MEe="Ø£Ù",EEe="Email",IEe="إرسا٠رÙ
ز Ø§ÙØªØÙÙ",OEe="جار Ø§ÙØ¥Ø±Ø³Ø§Ù...",LEe="تØÙÙ",UEe="جار Ø§ÙØªØÙÙ...",BEe="إعادة Ø§ÙØ¥Ø±Ø³Ø§Ù Ø®ÙØ§Ù {{seconds}} Ø«",FEe="إعادة Ø¥Ø±Ø³Ø§Ù Ø§ÙØ±Ù
ز",zEe="باÙÙ
ØªØ§Ø¨Ø¹Ø©Ø ÙØ¥ÙÙ ØªÙØ§Ù٠عÙÙ",qEe="Ø§ÙØ´Ø±ÙØ·",HEe="Ø§ÙØ®ØµÙØµÙØ©",VEe={signIn:"تسجÙÙ Ø§ÙØ¯Ø®ÙÙ",
763signOutFailed:"ÙØ´Ù تسجÙÙ Ø§ÙØ®Ø±Ùج",sendCodeFailed:"ÙØ´Ù Ø¥Ø±Ø³Ø§Ù Ø§ÙØ±Ù
ز",notAllowed:"ÙØ°Ø§ Ø§ÙØ¨Ø±Ùد ØºÙØ± Ù
ÙØµØ±ÙØ Ù٠باÙÙØµÙ٠بعد. ØªÙØ§ØµÙ Ù
ع اÙÙ
سؤÙÙ ÙØ·Ùب اÙÙØµÙÙ.",invalidCode:"Ø§ÙØ±Ù
ز ØºÙØ± ØµØ§ÙØ",codeIncorrect:"Ø§ÙØ±Ù
ز ØºÙØ± صØÙØØ ØØ§ÙÙ Ù
رة أخرÙ",googleFailed:"ÙØ´Ù تسجÙÙ Ø§ÙØ¯Ø®Ù٠عبر Google",verifyHuman:"ÙØ±Ø¬Ù Ø¥ÙÙ
Ø§Ù Ø§ÙØªØÙÙ ÙÙÙ
تابعة",verifyUnavailable:"Ø§ÙØªØÙÙ Ø§ÙØ¨Ø´Ø±Ù ØºÙØ± Ù
ØªØ§Ø Ù
Ø¤ÙØªÙا. ÙÙØ±Ø¬Ù اÙÙ
تابعة باستخداÙ
Google ÙÙ Ø§ÙØ£Ø¹Ù٠أ٠اÙÙ
ØØ§ÙÙØ© Ù
رة Ø£Ø®Ø±Ù ÙØ§ØÙÙØ§."},KEe={signInTitle:TEe,enterCodeTitle:REe,methodIntro:PEe,emailStepIntro:_Ee,codeIntro:jEe,continueGoogle:NEe,continueEmail:DEe,or:MEe,emailLabel:EEe,sendCode:IEe,sending:OEe,verify:LEe,verifying:UEe,resendIn:BEe,resendCode:FEe,termsPrefix:zEe,terms:qEe,privacy:HEe,errors:VEe},GEe="اÙÙÙØªØ±Ø©",WEe="اشØÙ Credits ÙØ§Ø³ØªØ¨Ø¯Ù رÙ
ÙØ² Ø§ÙØ®ØµÙ
ÙØ±Ø§Ø¬Ø¹ سج٠wallet.",YEe={bonuses:"اÙÙ
ÙØ§Ùآت",topups:"عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ",usage:"Ø§ÙØ§Ø³ØªÙÙØ§Ù"},QEe={available:"تÙ
ت Ø¥Ø¶Ø§ÙØªÙ",availableHint:"Ù
ÙØ¯Ø±Ø¬ باÙÙØ¹Ù ÙÙ Ø§ÙØ±ØµÙد اÙÙ
تاØ",frozen:"ÙÙØ¯ Ø§ÙØ§Ùتظار (Ù
جÙ
ÙØ¯)",frozenHint:"ÙØªØ§Ø بعد ØÙاÙÙ {{days}} ÙÙÙ
ÙØ§",frozenHintGeneric:"ÙØªØ§Ø بعد Ø§ÙØªÙاء ÙØªØ±Ø© Ø§ÙØ§ØØªÙاظ",title:"Ù
ÙØ§Ùآت Ø§ÙØ¥ØØ§ÙØ©",viewDetails:"عرض ØªÙØ§ØµÙÙ Ø§ÙØ¥ØØ§Ùات"},XEe={noUsage:"ÙØ§ ÙÙØ¬Ø¯ استÙÙØ§Ù Ù٠آخر 30 ÙÙÙ
ÙØ§",perDay:"Ù
ØªÙØ³Ø· {{amount}}/ÙÙÙ
",daysLeft:"â {{days}} ÙÙÙ
ÙØ§ باÙÙ
Ø¹Ø¯Ù Ø§ÙØØ§ÙÙ"},ZEe={amountUsd:"اÙÙ
Ø¨ÙØº (USD)",minAmountHint:"Ø§ÙØØ¯ Ø§ÙØ£Ø¯ÙÙ ÙÙØ´ØÙ ÙÙ {{amount}}.",apply:"تطبÙÙ",get:"Ø³ÙØµÙ",onehopCredits:"OneHop credits",pay:"Ø¯ÙØ¹",poweredByStripe:"Ù
ØÙ
Ù Ø¨ÙØ§Ø³Ø·Ø© Stripe",poweredBy:"Ù
ØÙ
Ù Ø¨ÙØ§Ø³Ø·Ø© {{provider}}",secureCheckout:"Ø¯ÙØ¹ Ø¢Ù
Ù Ù
ستضاÙ",secureCheckoutShort:"Ø¯ÙØ¹ Ø¢Ù
Ù",taxExclusiveNotice:"ØªÙØØªØ³Ø¨ Ø§ÙØ¶Ø±Ø§Ø¦Ø¨ اÙÙ
Ø·Ø¨ÙØ© Ø¹ÙØ¯ Ø§ÙØ¯Ùع ÙØªÙضا٠إÙÙ ÙØ°Ø§ اÙÙ
Ø¨ÙØº.",presets:"Ù
Ø¨Ø§ÙØº Ø¬Ø§ÙØ²Ø©",promoCode:"رÙ
ز Ø§ÙØ¹Ø±Ø¶",promoCodePlaceholder:"Ø£Ø¯Ø®Ù Ø§ÙØ±Ù
ز",serviceFee:"رسÙÙ
Ø§ÙØ®Ø¯Ù
Ø©",title:"Ø´ØÙ",topupAmount:"Ù
Ø¨ÙØº Ø§ÙØ´ØÙ",totalDue:"Ø§ÙØ¥Ø¬Ù
اÙ٠اÙÙ
ستØÙ",payCta:"Ø§Ø¯ÙØ¹ {{amount}}",previewing:"Ø¬Ø§Ø±Ù Ø§ÙØªØÙÙâ¦",discount:"خصÙ
اÙÙØ³ÙÙ
Ø©",couponBelowMin:"Ø§ÙØ¥Ø¬Ù
اÙ٠بعد Ø§ÙØ®ØµÙ
Ù
ÙØ®Ùض Ø¬Ø¯ÙØ§ â Ø§Ø±Ùع اÙÙ
Ø¨ÙØº Ø£Ù Ø¬Ø±ÙØ¨ رÙ
Ø²ÙØ§ آخر.",maintenanceTitle:"Ø§ÙØ¯Ùع ØºÙØ± Ù
ØªØ§Ø Ù
Ø¤ÙØªÙا",maintenanceDescription:"خدÙ
Ø© Ø§ÙØ¯Ùع ØºÙØ± Ù
ØªØ§ØØ© Ù
Ø¤ÙØªÙا. إذا ÙÙØª Ø¨ØØ§Ø¬Ø© Ø¥ÙÙ Ø§ÙØ¯ÙØ¹Ø ØªÙØ§ØµÙ Ù
Ø¹ÙØ§ عÙÙ Telegram.",contactTelegram:"ØªÙØ§ØµÙ Ù
Ø¹ÙØ§ عÙÙ Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Ø§ÙØ¯Ùع Ø¨Ø§ÙØ¹Ù
ÙØ§Øª Ø§ÙØ±ÙÙ
ÙØ© (USDC / USDT)",payOnStripe:"ÙØªÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØ¯Ùع ÙÙ ØµÙØØ© Ø§ÙØ¯Ùع Ø§ÙØ¢Ù
ÙØ© Ù
Ù Stripe.",payOnProvider:"ÙØªÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØ¯Ùع ÙÙ ØµÙØØ© Ø§ÙØ¯Ùع Ø§ÙØ¢Ù
ÙØ© Ù
Ù {{provider}}.",payOnHostedCheckout:"ÙØªÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØ¯Ùع ÙÙ ØµÙØØ© Ø§ÙØ¯Ùع Ø§ÙØ¢Ù
ÙØ© اÙÙ
Ø³ØªØ¶Ø§ÙØ©.",amountPrecision:"ÙÙØ¨Ù {{provider}} Ù
Ø¨Ø§ÙØº Ø¨Ø§ÙØ¯ÙÙØ§Ø± Ø§ÙØ£Ù
رÙÙÙ Ø¨ØØ¯ Ø£ÙØµÙ Ù
ÙØ²ÙتÙÙ Ø¹Ø´Ø±ÙØªÙÙ. عدÙ٠اÙÙ
Ø¨ÙØº أ٠رÙ
ز Ø§ÙØ¹Ø±Ø¶.",couponBonus:"Ù
ÙØ§Ùأة اÙÙØ³ÙÙ
Ø©",couponBonusExpiry:"ØªÙØªÙÙ ØµÙØ§ØÙØ© Ø§ÙØ±ØµÙد Ø§ÙØ¥Ø¶Ø§Ù٠بعد {{days}} ÙÙÙ
ÙØ§ Ù
Ù Ø§ÙØ¯Ùع.",couponInvalid:"ÙØ§ ÙÙ
Ù٠تطبÙÙ ÙØ°Ø§ Ø§ÙØ±Ù
ز â Ø¬Ø±ÙÙØ¨ رÙ
Ø²ÙØ§ آخر.",couponErrors:{limitReached:"ÙÙØ¯ استخدÙ
ت ÙØ°Ø§ Ø§ÙØ±Ù
ز Ø§ÙØØ¯ Ø§ÙØ£Ùص٠Ù
٠اÙÙ
رات.",invalid:"ÙØ°Ø§ Ø§ÙØ±Ù
ز ØºÙØ± ØµØ§ÙØ.",expired:"Ø§ÙØªÙت ØµÙØ§ØÙØ© ÙØ°Ø§ Ø§ÙØ±Ù
ز.",exhausted:"تÙ
استÙÙØ§Ù ÙØ°Ø§ Ø§ÙØ±Ù
ز باÙÙØ§Ù
Ù.",unavailable:"ÙØ°Ø§ Ø§ÙØ±Ù
ز ÙÙØ¯ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
ØØ§ÙÙÙØ§ â ØØ§ÙÙ Ù
رة أخر٠بعد ÙÙÙÙ."},tierBonus:"Ù
ÙØ§Ùأة Ø§ÙØ¹Ø±Ø¶",tierBonusExpiry:"ØªÙØªÙÙ ØµÙØ§ØÙØ© Ø§ÙØ±ØµÙد Ø§ÙØ¥Ø¶Ø§Ù٠بعد {{days}} ÙÙÙ
ÙØ§ Ù
Ù Ø§ÙØ¯Ùع.",tierBonusRestricted:"ÙÙ
Ù٠إÙÙØ§Ù Ø§ÙØ±ØµÙد Ø§ÙØ¥Ø¶Ø§Ù٠عÙÙ: {{models}} ÙÙØ·.",nextTierPercent:"اشØÙ {{amount}} إضاÙÙØ© ÙÙØØµÙ٠عÙÙ {{percent}}% Ø±ØµÙØ¯Ø§Ù إضاÙÙØ§Ù.",nextTierBonus:"اشØÙ {{amount}} إضاÙÙØ© ÙÙØØµÙ٠عÙÙ {{bonus}} Ø±ØµÙØ¯Ø§Ù إضاÙÙØ§Ù.",tierCapReached:"ÙÙØ¯ ØØµÙت باÙÙØ¹Ù عÙÙ Ø§ÙØØ¯ Ø§ÙØ£Ùص٠Ù
٠اÙÙ
ÙØ§Ùأة ÙÙØ°Ø§ Ø§ÙØ¹Ø±Ø¶."},JEe="Ø¥Ø¶Ø§ÙØ© Credits",eIe="جار Ø§ÙØ¥Ùشاء...",tIe="Credit اÙÙ
تاØ",nIe="Ø´ØÙ",aIe="Ø§ÙØ¯Ùع عبر Stripe",oIe="اÙÙ
Ø¨ÙØº (USD)",sIe="Ù
Ø¨Ø§ÙØº Ø§ÙØ´ØÙ Ø§ÙØ¬Ø§Ùزة",rIe
763="استبدا٠رÙ
ز خصÙ
",iIe="رÙ
ز Ø§ÙØ®ØµÙ
",lIe="جار Ø§ÙØ§Ø³ØªØ¨Ø¯Ø§Ù...",cIe="استبداÙ",dIe="تÙ
Ø§Ø³ØªØ¨Ø¯Ø§Ù Ø§ÙØ±Ù
Ø²Ø Ø¬Ø§Ø± ØªØØ¯ÙØ« Ø§ÙØ±ØµÙد.",uIe="جار Ø§ÙØªØÙÙ٠إÙÙ checkout Ø§ÙØ¢Ù
Ù...",mIe="ÙØ´Ù تØÙ
ÙÙ Ù
ÙØ®Øµ اÙÙÙØªØ±Ø©",pIe="ÙØ´Ù Ø§ÙØ´ØÙ",fIe="تبÙÙØ¨Ø§Øª ÙØ´Ø§Ø· اÙÙÙØªØ±Ø©",gIe="اÙÙ
عاÙ
ÙØ§Øª",hIe="Ù
ÙØ Credit",yIe="ÙÙØ¹ اÙÙ
عاÙ
ÙØ©",vIe="اÙÙ
صدر",bIe="ÙØ§ ØªÙØ¬Ø¯ Ù
عاÙ
ÙØ§Øª بعد",xIe="ØªØ¸ÙØ± عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ ÙØ§ÙخصÙ
ÙØ§ÙÙ
ÙØ ÙÙØ§.",$Ie="Ø¥Ø¯Ø®Ø§ÙØ§Øª ledger",wIe="اÙÙÙØª",kIe="اÙÙÙØ¹",CIe="اÙÙ
Ø¨ÙØº",SIe="Ø§ÙØ±ØµÙد",AIe="ÙØ§ ØªÙØ¬Ø¯ Ù
ÙØ بعد",TIe="ØªØ¸ÙØ± Ù
ÙØ§Ùآت Ø§ÙØªØ³Ø¬ÙÙ ÙØ±Ù
ÙØ² Ø§ÙØ®ØµÙ
ÙØ§ÙÙ
ÙØ اÙÙØ¯ÙÙØ© ÙÙØ§.",RIe="Ø§ÙØØ§ÙØ©",PIe={successTitle:"تÙ
Ø§Ø³ØªÙØ§Ù
Ø§ÙØ¯Ùع",polling:"Ø¬Ø§Ø±Ù Ø¥Ø¶Ø§ÙØ© Credit Ø¥ÙÙ wallet... ØÙاÙÙ 30 ثاÙÙØ©.",delayed:"Ø§ÙØ¥Ø¶Ø§ÙØ© Ø¨Ø·ÙØ¦Ø©. ØØ¯ÙØ« بعد ÙØØ¸Ø§Øª أ٠راجع Ø¥ÙØµØ§Ùات Stripe.",cancelledTitle:"تÙ
Ø¥ÙØºØ§Ø¡ Ø§ÙØ¯Ùع",cancelledBody:"ÙÙ
ÙØªÙ
خصÙ
Ø£Ù Ù
Ø¨ÙØº. أعد اÙÙ
ØØ§ÙÙØ© Ø¹ÙØ¯Ù
ا تÙÙÙ Ø¬Ø§ÙØ²Ùا.",failedTitle:"ÙØ´Ù Ø§ÙØ¯Ùع",failedBody:"ØªØ¹Ø°ÙØ± إتÙ
اÙ
عÙ
ÙÙØ© Ø§ÙØ¯Ùع. ÙÙ
تتÙ
Ø¥Ø¶Ø§ÙØ© Ø£Ù Ø±ØµÙØ¯. ØØ§ÙÙ Ù
رة أخر٠أ٠استخدÙ
طرÙÙØ© Ø¯ÙØ¹ Ù
ختÙÙØ©."},_Ie={text:"Credits Ø±ØµÙØ¯ خدÙ
Ø© Ù
دÙÙØ¹ Ù
سبÙÙØ§Ø ÙÙÙØ³Øª ÙØ¯Ùعة بÙÙÙØ©. Credits اÙÙ
ستÙÙÙØ© ØºÙØ± ÙØ§Ø¨ÙØ© ÙÙØ§Ø³ØªØ±Ø¯Ø§Ø¯. ÙÙ Ø§ÙØ£Ø³Ø¹Ø§Ø± ب٠USD. راجع",tosLink:"Ø§ÙØ´Ø±ÙØ·"},jIe="Ø§ÙØ¥ÙØµØ§ÙØ§Øª",NIe="جار٠اÙÙØªØ...",DIe="ØªØ¹Ø°ÙØ± ÙØªØ Ø¨ÙØ§Ø¨Ø© اÙÙÙØªØ±Ø©",MIe={title:"آخر عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ",subtitle:"آخر 90 ÙÙÙ
ÙØ§Ø ÙØ§Ø¨ÙØ© ÙÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ Ø®ÙØ§Ù 24 ساعة.",loading:"جار٠تØÙ
Ù٠عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ...",date:"Ø§ÙØªØ§Ø±ÙØ®",amount:"اÙÙ
Ø¨ÙØº",credits:"Credits",status:"Ø§ÙØØ§ÙØ©",refund:"استرداد",alreadyRefunded:"تÙ
Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ باÙÙØ¹Ù",windowExpired:"Ø§ÙØªÙت ÙØ§Ùذة Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ (24 ساعة)",confirmTitle:"تأÙÙØ¯ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",confirmBody:"ستتÙ
Ù
Ø¹Ø§ÙØ¬Ø© Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ عبر Stripe Ø®ÙØ§Ù 1-3 Ø£ÙØ§Ù
عÙ
Ù. ØªÙØ·Ø¨Ù رسÙÙ
Ù
ÙØµØ© ({{fee}}) عÙÙ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ بÙ
بادرة اÙÙ
ستخدÙ
.",amountLabel:"Ù
Ø¨ÙØº Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ (USD)",maxLabel:"Ø§ÙØØ¯ Ø§ÙØ£Ùص٠${{value}}",requestedLabel:"Ù
Ø¨ÙØº Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ اÙÙ
Ø·ÙÙØ¨",platformFeeLabel:"رسÙÙ
اÙÙ
ÙØµØ© ({{fee}})",cardReturnLabel:"سÙÙØ¹Ø§Ø¯ Ø¥ÙÙ Ø¨Ø·Ø§ÙØªÙ",bonusForfeitureHint:"Ø³ÙØªÙ
Ø¥Ø³ÙØ§Ø· Credits Ø§ÙØªØ±ÙÙØ¬ÙØ© اÙÙ
Ù
ÙÙØØ© Ù
ع ÙØ°Ù Ø§ÙØ´ØÙØ© بشÙÙ ØªÙØ§Ø³Ø¨Ù.",cancel:"Ø¥ÙØºØ§Ø¡",confirm:"إصدار Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",submitting:"Ø¬Ø§Ø±Ù Ø§ÙØ¥Ø±Ø³Ø§Ù...",refundSubmittedTitle:"تÙ
Ø¥Ø±Ø³Ø§Ù Ø·ÙØ¨ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",refundSubmittedBody:"سÙÙØ¹Ùد Stripe Ø§ÙØ£Ù
ÙØ§Ù Ø¥ÙÙ Ø¨Ø·Ø§ÙØªÙ Ø®ÙØ§Ù 1-3 Ø£ÙØ§Ù
عÙ
Ù.",refundFailedTitle:"ÙØ´Ù Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",balance:"Ø§ÙØ±ØµÙد",confirmAmount:"استرداد {{amount}}"},EIe={title:"ØªÙØ¨ÙÙØ§Øª Ø§ÙØ±ØµÙد",description:"سÙÙØ¨ÙÙ Ø¹ÙØ¯Ù
ا ÙÙØ®Ùض Ø±ØµÙØ¯Ù.",emailLabel:"ØªÙØ¨ÙÙÙ Ø¨Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ",webhookLabel:"Webhook",autorechargeLabel:"إعادة Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦ÙØ©",autorechargeUnsupported:"Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦Ù ØºÙØ± Ù
ØªØ§Ø Ù
ع Ù
زÙÙØ¯ Ø§ÙØ¯Ùع Ø§ÙØØ§ÙÙ.",autorechargeAddCardHint:"Ø£Ø¶Ù Ø¨Ø·Ø§ÙØ© ÙÙØÙØ§Ø¸ عÙÙ Ø±ØµÙØ¯Ù",autorechargeTopUp:"اشØÙ بÙ
ÙØ¯Ø§Ø±",autorechargeWhenBelow:"Ø¹ÙØ¯Ù
ا ÙÙÙ Ø§ÙØ±ØµÙد عÙ",autorechargeThreshold:"ØØ¯ إعادة Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦ÙØ©",autorechargeAmount:"Ù
Ø¨ÙØº إعادة Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦ÙØ©",autorechargeDisabledFailures:"تÙ
تعطÙ٠إعادة Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦ÙØ© بعد عدة Ù
ØØ§ÙÙØ§Øª ÙØ§Ø´ÙØ© Ù
تتاÙÙØ©. ØØ¯ÙØ« Ø¨Ø·Ø§ÙØªÙ ÙØ£Ø¹Ø¯ ØªÙØ¹ÙÙÙØ§.",autorechargeIncomplete:"ØØ¯Ùد Ù
Ø¨ÙØº إعادة Ø´ØÙ ÙØØ¯ÙÙØ§ Ø£ÙØ¨Ø± Ù
Ù $0.",test:"اختبار",testing:"Ø¬Ø§Ø±Ù Ø§ÙØ§Ø®ØªØ¨Ø§Ø±â¦",testQueued:"تÙ
ت Ø¥Ø¶Ø§ÙØ© تسÙÙÙ
Ø§ÙØ§Ø®ØªØ¨Ø§Ø± Ø¥ÙÙ ÙØ§Ø¦Ù
Ø© Ø§ÙØ§Ùتظار â ØªØÙÙ Ù
Ù ÙÙØ·Ø© اÙÙÙØ§ÙØ©",testFailed:"ØªØ¹Ø°ÙØ±Øª Ø¥Ø¶Ø§ÙØ© تسÙÙÙ
Ø§ÙØ§Ø®ØªØ¨Ø§Ø± Ø¥ÙÙ ÙØ§Ø¦Ù
Ø© Ø§ÙØ§Ùتظار",signingSecret:"سر Ø§ÙØªÙÙÙØ¹",secretOnSave:"ÙØªÙ
Ø¥ÙØ´Ø§Ø¡ سر تÙÙÙØ¹ Ø¹ÙØ¯ Ø§ÙØÙØ¸.",rotate:"تدÙÙØ±",secretRotated:"تÙ
تدÙÙØ± سر Ø§ÙØªÙÙÙØ¹",rotateFailed:"ØªØ¹Ø°ÙØ± تدÙÙØ± Ø§ÙØ³Ø±",secretCopied:"تÙ
ÙØ³Ø® سر Ø§ÙØªÙÙÙØ¹",saved:"تÙ
ØÙظ إعدادات Ø§ÙØªÙبÙÙ",saveFailed:"ØªØ¹Ø°ÙØ± ØÙظ إعدادات Ø§ÙØªÙبÙÙ",loadFailed:"ØªØ¹Ø°ÙØ± تØÙ
Ù٠إعدادات Ø§ÙØªÙبÙÙ",thresholdRequired:"ØØ¯Ùد ØØ¯ÙÙØ§ Ø£ÙØ¨Ø± Ù
Ù $0 ÙØªÙعÙÙ Ø§ÙØªÙبÙÙØ§Øª.",webhookUrlRequired:"أدخ٠عÙÙØ§Ù https:// ÙÙÙ webhook.",thresholdOrderBad:"ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ ØØ¯ Ø§ÙØªÙبÙÙ â¥ ØØ¯ إعادة Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦ÙØ©.",card:"Ø¨Ø·Ø§ÙØ©",changeCard:"تغÙÙØ±",removeCard:"Ø¥Ø²Ø§ÙØ©",cardRemoved:"تÙ
ت Ø¥Ø²Ø§ÙØ© Ø§ÙØ¨Ø·Ø§ÙØ©",cardRemoveFailed:"ØªØ¹Ø°ÙØ±Øª Ø¥Ø²Ø§ÙØ© Ø§ÙØ¨Ø·Ø§ÙØ©",cardSetupFailed:"ØªØ¹Ø°ÙØ± بدء Ø¥Ø¶Ø§ÙØ© Ø§ÙØ¨Ø·Ø§ÙØ©",lowBalanceGroup:"ØªÙØ¨ÙÙØ§Øª Ø§ÙØ®Ùاض Ø§ÙØ±ØµÙد",thresholdLabel:"ØØ¯ Ø§ÙØªÙبÙÙ"},IIe={title:"سج٠اÙÙ
عاÙ
ÙØ§Øª",idSearch:"Ù
عرÙ٠اÙÙ
عاÙ
ÙØ©",amountRange:"ÙØ·Ø§Ù اÙÙ
Ø¨ÙØº (USD)",min:"Ø§ÙØØ¯ Ø§ÙØ£Ø¯ÙÙ",max:"Ø§ÙØØ¯ Ø§ÙØ£ÙصÙ",clear:"Ù
سØ",retry:"إعادة اÙÙ
ØØ§ÙÙØ©",empty:"ÙØ§ ØªÙØ¬Ø¯ Ù
عاÙ
ÙØ§Øª ÙÙ ÙØ°Ø§ اÙÙØ·Ø§Ù",date:"Ø§ÙØªØ§Ø±ÙØ®",typeMethod:"اÙÙÙØ¹ / Ø§ÙØ·Ø±ÙÙØ©",description:"اÙÙØµÙ",action:"Ø§ÙØ¥Ø¬Ø±Ø§Ø¡",prevMonth:"Ø§ÙØ´Ùر Ø§ÙØ³Ø§Ø¨Ù",nextMonth:"Ø§ÙØ´Ùر Ø§ÙØªØ§ÙÙ",viewInvoices:"عرض اÙÙÙØ§ØªÙر",emptyNew:"ÙØ§ ØªÙØ¬Ø¯ Ù
عاÙ
ÙØ§Øª بعد",emptyNewDesc:"بعد Ø§ÙØ´ØÙØ Ø³ØªØ¸ÙØ± ÙÙØ§ عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ ÙØ§ÙÙ
ÙØ§Ùآت ÙØ§ÙÙ
Ø¨Ø§ÙØº اÙÙ
ستردة.",topUpCta:"اشØÙ Ø§ÙØ±ØµÙد",emptyFiltered:"ÙØ§ ØªÙØ¬Ø¯ Ù
عاÙ
ÙØ§Øª Ù
Ø·Ø§Ø¨ÙØ©",emptyFilteredDesc:"Ø¬Ø±ÙØ¨ Ù
Ø³Ø Ø§ÙÙÙØ§ØªØ± Ø£Ù ØªÙØ³Ùع ÙØ·Ø§Ù Ø§ÙØªØ§Ø±ÙØ®.",clearFilters:"Ù
Ø³Ø Ø§ÙÙÙØ§ØªØ±"},OIe="Ø±ØµÙØ¯Ù Ù
ÙØ®Ùض ÙÙØ¯ ÙÙÙÙ Ø§ÙØ·Ùبات. اشØÙ Ø§ÙØ±ØµÙد Ø£Ù ÙØ¹ÙÙ Ø§ÙØ´ØÙ Ø§ÙØªÙÙØ§Ø¦Ù.",LIe="Ø±ØµÙØ¯Ù Ù
ÙØ®Ùض ÙÙØ¯ ÙÙÙÙ Ø§ÙØ·Ùبات. اشØÙ Ø§ÙØ±ØµÙد ÙÙÙ
تابعة.",UIe={creditPurchase:"Ø´ØÙ Ø§ÙØ±ØµÙد",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Ù
ÙØ§Ùأة اÙÙØ³ÙÙ
Ø©",referralCashback:"استرداد Ø§ÙØ¥ØØ§ÙØ©",referralInviteeCashback:"Ù
ÙØ§Ùأة اÙÙ
دعÙ",redeemCode:"رÙ
ز Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ {{code}}",redeemCodeReversal:"Ø¥ÙØºØ§Ø¡ رÙ
ز Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",stripeRefund:"استرداد Stripe",bonusReversal:"استرجاع اÙÙ
ÙØ§Ùأة (استرداد)"},BIe={title:"Ø±ØµÙØ¯ Ù
Ø®ØµÙØµ",subtitle:"Ø±ØµÙØ¯ إضاÙÙ ÙØ§Ø¨Ù ÙÙØ§Ø³ØªØ®Ø¯Ø§Ù
عÙÙ ÙÙ
اذج Ù
ØØ¯Ø¯Ø© ÙÙØ· â Ù
ÙÙØµÙ Ø¹Ù Ø±ØµÙØ¯Ù.",onlyModels:"ÙÙØ· {{models}}",onlyModelsGeneric:"ÙÙ
اذج Ù
ÙÙÙØ¯Ø©",validUntil:"ØµØ§ÙØ ØØªÙ {{date}}",noExpiry:"بدÙÙ Ø§ÙØªÙاء ØµÙØ§ØÙØ©",useInChat:"Use in chat"},FIe={card:"Ø¨Ø·Ø§ÙØ©",alipay:"Alipay",wechatPay:"WeChat Pay"},zIe={title:"رÙ
ز Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯",description:"ÙÙ ÙØ¯Ù٠رÙ
ز Ø§Ø³ØªØ±Ø¯Ø§Ø¯Ø Ø£Ø¯Ø®ÙÙ ÙØ¥Ø¶Ø§ÙØ© ÙÙÙ
ØªÙ Ø§ÙØ§Ø³Ù
ÙØ© Ø¥ÙÙ Ø±ØµÙØ¯Ù.",placeholder:"Ù
ثاÙ: OHR-XXXXXXXX",redeem:"استرداد",redeeming:"Ø¬Ø§Ø±Ù Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯â¦",success:"تÙ
ت Ø¥Ø¶Ø§ÙØ© {{amount}} Ø¥ÙÙ Ø§ÙØ±ØµÙد",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"ÙØ°Ø§ Ø§ÙØ±Ù
ز ØºÙØ± ØµØ§ÙØ.",expired:"Ø§ÙØªÙت ØµÙØ§ØÙØ© ÙØ°Ø§ Ø§ÙØ±Ù
ز.",alreadyRedeemed:"تÙ
استخداÙ
ÙØ°Ø§ Ø§ÙØ±Ù
ز باÙÙØ¹Ù.",perUserLimit:"ÙÙØ¯ Ø¨ÙØºØª ØØ¯ Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯ ÙÙØ°Ù Ø§ÙØ¯Ùعة."}},qIe={title:GEe,description:WEe,breakdown:YEe,referralRewards:QEe,burnRate:XEe,topup:ZEe,addCredits:JEe,creating:eIe,availableCredit:tIe,topUp:nIe,poweredByStripe:aIe,amountUsd:oIe,presetAmounts:sIe,redeemCoupon:rIe,couponCode:iIe,redeeming:lIe,redeem:cIe,couponRedeemed:dIe,redirecting:uIe,summaryFailed:mIe,topupFailed:pIe,tabsLabel:fIe,transactions:gIe,creditGrants:hIe,transactionType:yIe,source:vIe,noTransactions:bIe,noTransactionsDescription:xIe,ledgerEntries:$Ie,time:wIe,type:kIe,amount:CIe,balance:SIe,noGrants:AIe,noGrantsDescription:TIe,status:RIe,topupBanner:PIe,compliance:_Ie,receipts:jIe,openingPortal:NIe,portalFailed:DIe,recentTopups:MIe,alerts:EIe,history:IIe,lowBalanceWarning:OIe,lowBalanceWarningNoAutoTopup:LIe,ledgerDesc:UIe,earmarked:BIe,paymentMethod:FIe,redeemCard:zIe},HIe="ØªØ¹Ø°ÙØ± تØÙ
ÙÙ Ø§ÙØ±Ø³Ù
Ø§ÙØ¨ÙاÙÙ",VIe="ÙØ§ ØªÙØ¬Ø¯ Ø¨ÙØ§Ùات",KIe="ÙØ§ ØªÙØ¬Ø¯ Ø¨ÙØ§Ùات ÙÙØ±Ø³Ù
بعد.",GIe={errorTitle:HIe,emptyTitle:VIe,emptyDescription:KIe},WIe={copy:"ÙØ³Ø®",regenerate:"إعادة Ø§ÙØªÙÙÙØ¯",shareComingSoon:"Ù
Ø´Ø§Ø±ÙØ© (ÙØ±ÙØ¨ÙØ§)",download:"ØªÙØ²ÙÙ",copyLink:"ÙØ³Ø® Ø§ÙØ±Ø§Ø¨Ø·",newChat:"دردشة Ø¬Ø¯ÙØ¯Ø©",deleteChat:"ØØ°Ù Ø§ÙØ¯Ø±Ø¯Ø´Ø©",openConversationList:"ÙØªØ ÙØ§Ø¦Ù
Ø© اÙÙ
ØØ§Ø¯Ø«Ø§Øª",openSettings:"إعدادات Ø§ÙØ¯Ø±Ø¯Ø´Ø©",collapseSidebar:"Ø·Ù Ø§ÙØ´Ø±ÙØ· Ø§ÙØ¬Ø§ÙبÙ",expandSidebar:"ØªÙØ³Ùع Ø§ÙØ´Ø±ÙØ· Ø§ÙØ¬Ø§ÙبÙ",cancel:"Ø¥ÙØºØ§Ø¡",apply:"تطبÙÙ",newChatTooltip:"Ø¥ÙØ´Ø§Ø¡ Ù
ØØ§Ø¯Ø«Ø© Ø¬Ø¯ÙØ¯Ø©",copied:"تÙ
اÙÙØ³Ø®"},YIe={placeholderReady:"ابدأ Ù
ØØ§Ø¯Ø«Ø© Ø¬Ø¯ÙØ¯Ø©...",placeholderNoModel:"اختر ÙÙ
ÙØ°Ø¬Ùا Ù
Ù Ø§ÙØ£Ø¹Ù٠أÙÙÙØ§",attachmentTooLarge:"ØØ¬Ù
اÙÙ
ÙÙ ÙØªØ¬Ø§Ùز {{limit}} ÙÙØ§ ÙÙ
ÙÙ Ø±ÙØ¹Ù",attachmentUnsupported:"ÙÙØ¹ اÙÙ
ÙÙ ØºÙØ± Ù
دعÙÙ
. استخدÙ
PNG Ø£Ù JPEG Ø£Ù WebP Ø£Ù GIF Ø£Ù MP4 Ø£Ù WebM Ø£Ù MOV.",unsupportedVision:"ÙØ°Ø§ اÙÙÙ
ÙØ°Ø¬ ÙØ§ ÙÙØ¨Ù Ø¥Ø¯Ø®Ø§Ù Ø§ÙØµÙر أ٠اÙÙÙØ¯ÙÙ. بدÙ٠اÙÙÙ
ÙØ°Ø¬ ÙØ¨Ù Ø¥ÙÙØ§Øª اÙÙ
ÙÙØ§Øª.",send:"إرساÙ",abort:"Ø¥ÙÙØ§Ù",attachImage:"Ø¥Ø¶Ø§ÙØ© ØµÙØ±Ø©",attachMedia:"Ø¥Ø¶Ø§ÙØ© ØµÙØ±Ø© Ø£Ù ÙÙØ¯ÙÙ",removeAttachment:"Ø¥Ø²Ø§ÙØ©",shortcutSend:"إرساÙ",shortcutNewLine:"سطر Ø¬Ø¯ÙØ¯",shortcutAbort:"Ø¥ÙÙØ§Ù",frameFirst:"Ø§ÙØ¥Ø·Ø§Ø± Ø§ÙØ£ÙÙ",frameLast:"Ø§ÙØ¥Ø·Ø§Ø± Ø§ÙØ£Ø®Ùر",frameReference:"Ù
رجع",imageMode:"تÙÙÙØ¯ Ø§ÙØµÙر",videoMode:"تÙÙÙØ¯ اÙÙÙØ¯ÙÙ",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"Ø§ÙØªÙÙÙØ±",reasoningOff:"Ø¥ÙÙØ§Ù",reasoningAlways:"تشغÙ٠دائÙ
",placeholderTopupRequired:"ÙØ°Ø§ اÙÙÙ
ÙØ°Ø¬ Ù
ØªØ§Ø ÙÙØØ³Ø§Ø¨Ø§Øª Ø§ÙØªÙ Ø´ØÙت Ø±ØµÙØ¯Ùا â Ø§Ø´ØÙ Ø±ØµÙØ¯Ù ÙØ§Ø³ØªØ®Ø¯Ø§Ù
Ù ÙÙØ§"},QIe={modelUnavailable:"اÙÙÙ
ÙØ°Ø¬ {{model}} ØºÙØ± Ù
ØªØ§Ø ØØ§ÙÙÙØ§. تÙ
ØÙظ prompt Ø§ÙØ®Ø§Øµ بÙ.",rateLimited:"ÙÙØ§Ù Ø·ÙØ¨Ø§Øª Ù
تزاÙ
ÙØ© ÙØ«Ùرة Ø¬Ø¯ÙØ§. ØØ§ÙÙ Ù
Ø¬Ø¯Ø¯ÙØ§ بعد ÙÙÙÙ.",accountDisabled:"ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨ Ù
عطÙÙ ÙÙØ§ ÙÙ
ÙÙÙ Ù
تابعة Ø§ÙØ¯Ø±Ø¯Ø´Ø©.",attachmentsUploading:"ÙØ§ ØªØ²Ø§Ù Ø§ÙØµÙر ÙÙØ¯ Ø§ÙØ±Ùع. Ø§ÙØªØ¸Ø± ÙÙÙÙØ§Ù Ù
763Ø¨Ù Ø§ÙØ¥Ø±Ø³Ø§Ù.",attachmentsFailed:"ÙØ´Ù Ø±ÙØ¹ Ø¥ØØ¯Ù Ø§ÙØµÙر. أزÙÙØ§ ÙØØ§ÙÙ Ù
رة Ø£Ø®Ø±Ù ÙØ¨Ù Ø§ÙØ¥Ø±Ø³Ø§Ù."},XIe={title:"ابدأ اختبار Ø£Ù ÙÙ
ÙØ°Ø¬ ÙÙØ§.",body:"ØªØØ¯Ø« Ù
باشرة Ù
ع Ø£Ù ÙÙ
ÙØ°Ø¬. ÙÙØ®ØµÙ
Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
Ù
Ù Ù
ØÙظة PAYG Ø§ÙØ®Ø§ØµØ© بÙ.",starters:{compareModels:"ÙØ§Ø±Ù GPT-5.5 ÙClaude Opus عÙÙ Ù
ÙÙ
Ø© برÙ
Ø¬ÙØ© ÙØ§ØØ¯Ø©",analyzeImage:"ØÙÙÙ Ù
خطط بÙÙØ© ÙÙØ®Ùص اÙÙ
خاطر",draftPrompt:"Ø§ÙØªØ¨ system prompt ÙÙÙÙ٠دعÙ
",generateImage:"ÙÙÙØ¯ ØµÙØ±Ø© hero ÙÙ
ÙØªØ¬ بأسÙÙØ¨ SaaS ÙØ¸ÙÙ"}},ZIe={untitled:"دردشة Ø¨ÙØ§ عÙÙØ§Ù",deleteConfirm:'ØØ°Ù "{{title}}"Ø',emptyTitle:"ÙØ§ ØªÙØ¬Ø¯ Ù
ØØ§Ø¯Ø«Ø§Øª بعد",emptyBody:"استخدÙ
+ دردشة Ø¬Ø¯ÙØ¯Ø© ÙÙ Ø§ÙØ£Ø¹ÙÙ ÙÙØ¨Ø¯Ø¡.",listLabel:"ÙØ§Ø¦Ù
Ø© اÙÙ
ØØ§Ø¯Ø«Ø§Øª",groups:{today:"اÙÙÙÙ
",yesterday:"Ø£Ù
س",earlier:"Ø£ÙØ¯Ù
"},menu:{rename:"إعادة تسÙ
ÙØ©",delete:"ØØ°Ù"},deleteTitle:"ØØ°Ù اÙÙ
ØØ§Ø¯Ø«Ø©Ø"},JIe={paygWallet:"Ù
ØÙظة PAYG"},eOe={chooseModel:"اختر ÙÙ
ÙØ°Ø¬Ùا",searchPlaceholder:"Ø§Ø¨ØØ« ع٠اÙÙÙ
اذج...",emptyTitle:"ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙÙ ÙÙ
اذج",emptyBody:"Ø¬Ø±ÙØ¨ عبارة Ø¨ØØ« أ٠تبÙÙØ¨Ùا آخر.",protocols:"{{count}} Ø¨Ø±ÙØªÙÙÙÙØ§Øª",context:"{{value}} ctx",tabs:{all:"اÙÙÙ",text:"ÙØµ",image:"ØµÙØ±Ø©",video:"ÙÙØ¯ÙÙ"},maxOut:"Ø§ÙØ¥Ø®Ø±Ø§Ø¬ {{value}}",unavailable:"ØºÙØ± Ù
ØªØ§Ø Ù
Ø¤ÙØªÙا",requiresTopup:"اشØÙ Ø±ØµÙØ¯Ù ÙÙØªØÙ"},tOe={title:"إعدادات Ø§ÙØ¯Ø±Ø¯Ø´Ø©",protocol:"Ø§ÙØ¨Ø±ÙتÙÙÙÙ",unlimited:"ØºÙØ± Ù
ØØ¯Ùد",fields:{memory_limit:{label:"Ø°Ø§ÙØ±Ø© Ø§ÙØ¯Ø±Ø¯Ø´Ø©"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"Ù
ستÙÙ Ø§ÙØ®Ø¯Ù
Ø©",options:{standard:"ÙÙØ§Ø³Ù",priority:"ذ٠أÙÙÙÙØ©",flex:"Ù
رÙ"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"Ù
ث٠2000"},stop_sequences:{label:"Stop Sequences",placeholder:"Ù
ÙØµÙÙØ© بÙÙØ§ØµÙØ Ù
ث٠END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"أدخ٠system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"ضÙ
ÙÙ",explicit:"ØµØ±ÙØ"}},image_size:{label:"Ø¯ÙØ© Ø§ÙØµÙرة"},image_resolution:{label:"Ø§ÙØ¯ÙØ©"},image_quality:{label:"Ø¬ÙØ¯Ø© Ø§ÙØµÙرة",options:{Auto:"Auto",auto:"Auto",low:"Ù
ÙØ®Ùضة",medium:"Ù
ØªÙØ³Ø·Ø©",high:"عاÙÙØ©"}},video_ratio:{label:"ÙØ³Ø¨Ø© Ø§ÙØ¹Ø±Ø¶ Ø¥ÙÙ Ø§ÙØ§Ø±ØªÙاع"},video_resolution:{label:"Ø¯ÙØ© اÙÙÙØ¯ÙÙ"},video_duration_seconds:{label:"اÙÙ
دة"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"عدد Ø§ÙØµÙر"},image_aspect_ratio:{label:"ÙØ³Ø¨Ø© Ø§ÙØ¹Ø±Ø¶ Ø¥ÙÙ Ø§ÙØ§Ø±ØªÙاع"},reasoning_effort:{label:"Ù
ستÙÙ Ø¬ÙØ¯ Ø§ÙØ§Ø³ØªØ¯ÙاÙ",options:{none:"Ø¥ÙÙØ§Ù",minimal:"Ø§ÙØØ¯ Ø§ÙØ£Ø¯ÙÙ",low:"Ù
ÙØ®Ùض",medium:"Ù
ØªÙØ³Ø·",high:"Ù
Ø±ØªÙØ¹",xhigh:"Ù
Ø±ØªÙØ¹ Ø¬Ø¯ÙØ§",max:"Ø§ÙØØ¯ Ø§ÙØ£ÙصÙ"}},reasoning_pro:{label:"ÙØ¶Ø¹ Pro"},reasoning_context:{label:"Ø³ÙØ§Ù Ø§ÙØ§Ø³ØªØ¯ÙاÙ",options:{auto:"تÙÙØ§Ø¦Ù",current_turn:"Ø§ÙØ¬ÙÙØ© Ø§ÙØØ§ÙÙØ©",all_turns:"ÙÙ Ø§ÙØ¬ÙÙØ§Øª"}},reasoning_enabled:{label:"Ø§ÙØªÙÙÙØ±"},reasoning_always:{label:"Ø§ÙØªÙÙÙØ±",value:"تشغÙ٠دائÙ
"}}},nOe={estimating:"Ø¬Ø§Ø±Ù Ø§ÙØªÙØ¯ÙØ±...",settling:"Ø¬Ø§Ø±Ù Ø§ÙØªØ³ÙÙØ©...",input:"إدخاÙ",output:"إخراج",milliseconds:"ms",realCost:"Ø§ÙØªÙÙÙØ© اÙÙØ¹ÙÙØ©",latency:"زÙ
Ù Ø§ÙØ§Ø³ØªØ¬Ø§Ø¨Ø©",logDetail:"ØªÙØ§ØµÙÙ Ø§ÙØ³Ø¬Ù"},aOe={copied:"تÙ
ÙØ³Ø® رابط Ø§ÙØµÙرة",expired:"Ø§ÙØªÙت ØµÙØ§ØÙØ© رابط Ø§ÙØµÙرة. Ø§ÙØ³Ø® Ø§ÙØ±Ø§Ø¨Ø· ÙØ¥Ø¹Ø§Ø¯Ø© ÙØªØÙا أ٠أعد تÙÙÙØ¯Ùا.",attachment:"[Ù
رÙÙ ØµÙØ±Ø©]"},oOe={message:"تتÙ
ÙÙØªØ±Ø© ÙØ°Ù Ø§ÙØ¯Ø±Ø¯Ø´Ø© Ù
Ù Ù
ØÙظة PAYG Ø§ÙØ®Ø§ØµØ© بÙ",balance:"Ø§ÙØ±ØµÙد",billingLink:"اÙÙÙØªØ±Ø©",dismiss:"Ø¥ØºÙØ§Ù"},sOe={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},rOe={trigger:"ÙØ³Ø® ÙÙÙØ¯",copied:"تÙ
اÙÙØ³Ø® ÙÙ {{format}}",failed:"ÙØ´Ù اÙÙØ³Ø®",failedDescription:"ÙØ¯ ÙÙÙ٠اÙÙ
ØªØµÙØ ÙØ¯ ØØ¸Ø± Ø¥Ø°Ù Ø§ÙØØ§ÙØ¸Ø©."},iOe={interrupted:"[تÙ
ت اÙÙ
ÙØ§Ø·Ø¹Ø©]",sending:"Ø¬Ø§Ø±Ù Ø§ÙØ¥Ø±Ø³Ø§Ù"},lOe={title:"Ù
سار Ø§ÙØªÙÙÙØ±",duration:"ÙÙÙØ± ÙÙ
دة {{seconds}}s"},cOe={title:"تÙÙÙØ¯ اÙÙÙØ¯ÙÙ ÙØ§Ø¯Ù
ÙØ±ÙØ¨ÙØ§",body:"ÙØ°Ø§ اÙÙÙ
ÙØ°Ø¬ Ù
درج ÙÙØ§Ø³ØªÙØ´Ø§ÙØ ÙÙ٠إرسا٠اÙÙÙØ¯ÙÙ ØºÙØ± Ù
ÙØ¹Ù٠بعد.",switchToText:"Ø§ÙØªØ¨Ø¯Ù٠إÙÙ ÙÙ
ÙØ°Ø¬ ÙØµÙ"},dOe={imageGenerating:"جار٠تÙÙÙØ¯ Ø§ÙØµÙرة",videoGenerating:"جار٠تÙÙÙØ¯ اÙÙÙØ¯ÙÙ",stage:{queued:"ÙÙ ÙØ§Ø¦Ù
Ø© Ø§ÙØ§Ùتظار",routing:"Ø§ÙØªÙجÙÙ",generating:"Ø§ÙØªÙÙÙØ¯",storing:"Ø§ÙØªØ®Ø²ÙÙ",settling:"Ø§ÙØªØ³ÙÙØ©"}},uOe={INSUFFICIENT_CREDITS:"Ø±ØµÙØ¯ ØºÙØ± ÙØ§ÙÙ",RATE_LIMITED:"Ø·ÙØ¨Ø§Øª ÙØ«Ùرة Ø¬Ø¯ÙØ§",rate_limit_error:"Ø·ÙØ¨Ø§Øª ÙØ«Ùرة Ø¬Ø¯ÙØ§",MODEL_NO_VISION:"ÙØ§ ÙØ¯Ø¹Ù
ÙØ°Ø§ اÙÙÙ
ÙØ°Ø¬ Ø¥Ø¯Ø®Ø§Ù Ø§ÙØµÙر",CONTENT_REFUSED:"Ø±ÙØ¶ اÙÙÙ
ÙØ°Ø¬ ÙØ°Ø§ Ø§ÙØ·Ùب",EMPTY_RESPONSE:"أرجع اÙÙÙ
ÙØ°Ø¬ استجابة ÙØ§Ø±ØºØ©",upstream_error:"خطأ Ù٠خدÙ
Ø© اÙÙ
ÙØ¨Ø¹",overloaded_error:"خدÙ
Ø© اÙÙ
ÙØ¨Ø¹ Ù
شغÙÙØ©",upstream_invalid_json:"استجابة ØºÙØ± ØµØ§ÙØØ© Ù
٠خدÙ
Ø© اÙÙ
ÙØ¨Ø¹",stream_read_error:"اÙÙØ·Ø¹ تدÙÙ Ø§ÙØ§Ø³ØªØ¬Ø§Ø¨Ø©",invalid_api_key:"ÙØ´Ù اÙÙ
ØµØ§Ø¯ÙØ© Ù
ع خدÙ
Ø© اÙÙ
ÙØ¨Ø¹",model_unavailable:"اÙÙÙ
ÙØ°Ø¬ ØºÙØ± Ù
ØªØ§Ø Ù
Ø¤ÙØªÙا",no_image:"ÙÙ
ÙØªÙ
تÙÙÙØ¯ Ø£Ù ØµÙØ±Ø©",no_body:"ÙØ§ ØªÙØ¬Ø¯ اØ
763³ØªØ¬Ø§Ø¨Ø© Ù
٠خدÙ
Ø© اÙÙ
ÙØ¨Ø¹",http_error:"ÙØ´Ù Ø§ÙØ·Ùب",session_create_failed:"ÙØ´Ù Ø¥ÙØ´Ø§Ø¡ Ø§ÙØ¬Ùسة"},mOe={title:"اشØÙ Ø±ØµÙØ¯Ù ÙÙØªØ ÙØ°Ø§ اÙÙÙ
ÙØ°Ø¬",body:"Ø¥ÙÙ Ù
ØªØ§Ø ÙÙØØ³Ø§Ø¨Ø§Øª Ø§ÙØªÙ Ø´ØÙت Ø±ØµÙØ¯Ùا. Ø£Ù Ù
Ø¨ÙØº ÙÙØªØÙ ÙÙØ±ÙØ§Ø ÙÙØ¸Ù Ø§ÙØ±ØµÙد ÙÙØØªØ³Ø¨ ØØ³Ø¨ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
.",cta:"اشØÙ Ø§ÙØ±ØµÙد"},pOe={actions:WIe,composer:YIe,errors:QIe,empty:XIe,sidebar:ZIe,header:JIe,modelSelector:eOe,settings:tOe,metrics:nOe,image:aOe,payg:oOe,earmark:sOe,copyAsCode:rOe,status:iOe,thinking:lOe,video:cOe,media:dOe,errorCodes:uOe,topupLock:mOe},fOe="جار Ø§ÙØªØÙ
ÙÙ...",gOe="Ø§ÙØØ³Ø§Ø¨",hOe="اÙÙØºØ©",yOe="تسجÙÙ Ø§ÙØ¯Ø®ÙÙ",vOe="تسجÙÙ Ø§ÙØ®Ø±Ùج",bOe="جار تسجÙÙ Ø§ÙØ®Ø±Ùج...",xOe="ØÙظ Ø§ÙØªØºÙÙØ±Ø§Øª",$Oe="جار Ø§ÙØÙØ¸...",wOe="تÙ
Ø§ÙØÙØ¸.",kOe="Ø±Ø¬ÙØ¹",COe="إعادة اÙÙ
ØØ§ÙÙØ©",SOe="خصÙ
5% عÙ٠رسÙÙ
Ø§ÙØ®Ø¯Ù
Ø© Ø¹ÙØ¯ Ø§ÙØ´ØÙ.",AOe="ØÙظ",TOe="Ø¥ÙØºØ§Ø¡",ROe="Ù
سØ",POe="إعادة تعÙÙÙ",_Oe="تÙ
اÙÙØ³Ø®",jOe="ÙØ´Ù اÙÙØ³Ø®",NOe="Ø¥ØºÙØ§Ù",DOe="Ø§ÙØ¥Ø¬Ù
اÙÙ",MOe={timestamp:"Ø§ÙØ·Ø§Ø¨Ø¹ Ø§ÙØ²Ù
ÙÙ",local:"اÙÙÙØª اÙÙ
ØÙÙ",relative:"ÙØ³Ø¨Ù"},EOe="ÙØ³Ø®",IOe={title:"Ø§ÙØªØ ÙÙ Ù
ØªØµÙØÙ",description:"Ø£ÙØª ØªØªØµÙØ ÙØ°Ù Ø§ÙØµÙØØ© داخ٠<b>Ù
ØªØµÙØ تطبÙÙ</b>Ø ØÙØ« <b>ÙØ§ ÙØ¹Ù
٠تسجÙÙ Ø§ÙØ¯Ø®Ù٠عبر Google ÙØ§ÙتØÙÙ Ø§ÙØ¨Ø´Ø±Ù</b>. ÙÙØ±Ø¬Ù ÙØªØÙا ÙÙ Ù
ØªØµÙØ ÙØ¸Ø§Ù
Ù ÙÙÙ
تابعة.",hintWechat:"اضغط عÙÙ ÙØ§Ø¦Ù
Ø© ··· ÙÙ Ø§ÙØ²Ø§ÙÙØ© Ø§ÙØ¹ÙÙÙØ© اÙÙÙ
ÙÙ ÙØ§Ø®ØªØ± Â«ÙØªØ Ù٠اÙÙ
ØªØµÙØÂ».",hintGeneric:"استخدÙ
اÙÙØ§Ø¦Ù
Ø© ÙÙ Ø§ÙØ²Ø§ÙÙØ© Ø§ÙØ¹ÙÙÙØ© اÙÙÙ
ÙÙ ÙØ§Ø®ØªØ± Â«ÙØªØ Ù٠اÙÙ
ØªØµÙØ / Safari».",copyLink:"ÙØ³Ø® Ø§ÙØ±Ø§Ø¨Ø·",continueAnyway:"اÙÙ
تابعة عÙÙ Ø£Ù ØØ§Ù"},OOe="اÙÙÙ",LOe="ÙØ´Ø·",UOe="Ø§Ø®ØªÙØ§Ø±Ù",BOe="Ø¥Ø²Ø§ÙØ©",FOe={loading:fOe,account:gOe,language:hOe,signIn:yOe,signOut:vOe,signingOut:bOe,saveChanges:xOe,saving:$Oe,saved:wOe,back:kOe,retry:COe,topUpPromo:SOe,save:AOe,cancel:TOe,clearAll:ROe,reset:POe,copied:_Oe,copyFailed:jOe,dismiss:NOe,total:DOe,time:MOe,copy:EOe,inAppBrowser:IOe,all:OOe,active:LOe,optional:UOe,remove:BOe},zOe="ÙÙØØ© Ø§ÙØªØÙÙ
",qOe="Ø±Ø§ÙØ¨ credit ÙØ§ÙاستخداÙ
ÙØµØØ© gateway Ù
Ù ÙØØ¯Ø© تØÙÙ
ÙØ§ØØ¯Ø©.",HOe="Ø¥ÙØ´Ø§Ø¡ API key",VOe={creditBalance:"Ø±ØµÙØ¯ credit",requestsToday:"Ø·ÙØ¨Ø§Øª اÙÙÙÙ
",activeApiKeys:"API keys ÙØ´Ø·Ø©"},KOe={title:"Ø§ØªØ¬Ø§Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",description:"Ø§ÙØ·Ùبات Ù credit اÙÙ
ÙÙØªØ± Ø®ÙØ§Ù آخر 14 ÙÙÙ
ÙØ§.",viewUsage:"عرض Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",loading:"جار تØÙ
ÙÙ Ø§ØªØ¬Ø§Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",empty:"ÙØ§ ÙÙØ¬Ø¯ استخداÙ
بعد",emptyDescription:"Ø³ÙØ¸Ùر Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
ÙÙØ§ بعد بدء ÙØµÙÙ Ø§ÙØ·Ùبات."},GOe={title:"ÙØ´Ø§Ø· credit",description:"Credit اÙÙ
ÙÙØªØ± ÙÙÙ
ÙÙØ§ Ø®ÙØ§Ù آخر 90 ÙÙÙ
ÙØ§.",total:"إجÙ
اÙÙ 90 ÙÙÙ
ÙØ§",loading:"جار تØÙ
Ù٠اÙÙØ´Ø§Ø·",activeDays:"{{count}} ÙÙÙ
ÙØ§ ÙØ´Ø·Ùا Ø®ÙØ§Ù آخر {{days}} ÙÙÙ
ÙØ§",less:"Ø£ÙÙ",more:"Ø£ÙØ«Ø±"},WOe={title:"ØªÙØ²Ùع Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",description:"عرض Ù
ختصر ÙÙØ«Ø§ÙØ© Ø§ÙØ¥ÙÙØ§Ù ÙØØ¬Ù
tokens ÙØ§ÙÙÙ
ÙØ°Ø¬ Ø§ÙØ£Ùثر استخداÙ
ÙØ§.",activeDays:"Ø§ÙØ£ÙاÙ
اÙÙØ´Ø·Ø©",ofDays:"Ù
Ù {{days}} ÙÙÙ
ÙØ§",avgDailyCredit:"Ù
ØªÙØ³Ø· credit اÙÙÙÙ
Ù",nonZeroDays:"ÙÙ Ø§ÙØ£ÙاÙ
اÙÙØ´Ø·Ø©",peakDay:"ÙÙÙ
Ø§ÙØ°Ø±ÙØ©",noPeak:"ÙØ§ ÙÙØ¬Ø¯ استخداÙ
بعد",tokens:"Tokens",topModel:"اÙÙÙ
ÙØ°Ø¬ Ø§ÙØ£Ø¨Ø±Ø²",creditShare:"ØØµØ© credit اÙÙ
ÙÙØªØ±"},YOe={title:"Ø§ÙØØ§ÙØ© Ø§ÙØ³Ø±Ùعة",requests7d:"Ø·ÙØ¨Ø§Øª 7 Ø£ÙØ§Ù
",creditToday:"Credit اÙÙ
ستخدÙ
اÙÙÙÙ
",credit7d:"Credit اÙÙ
ستخدÙ
Ø®ÙØ§Ù 7 Ø£ÙØ§Ù
"},QOe={title:"Ø§ÙØ·Ùبات Ø§ÙØ£Ø®Ùرة",description:"Ø£ØØ¯Ø« استدعاءات gateway عبر keys Ø§ÙØ®Ø§ØµØ© بÙ.",viewRecords:"عرض Ø§ÙØ³Ø¬Ùات",table:{label:"Ø§ÙØ·Ùبات Ø§ÙØ£Ø®Ùرة",model:"اÙÙÙ
ÙØ°Ø¬",status:"Ø§ÙØØ§ÙØ©",tokens:"Tokens",credit:"Credit",time:"اÙÙÙØª",apiKey:"API key"},empty:"ÙØ§ ØªÙØ¬Ø¯ Ø·ÙØ¨Ø§Øª بعد",emptyDescription:"Ø£ÙØ´Ø¦ API key ÙØ£Ø±Ø³Ù Ø·ÙØ¨ÙØ§Ø ÙØ³ØªØ¸Ùر Ø§ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡Ø§Øª Ø§ÙØ£Ø®Ùرة ÙÙØ§."},XOe={title:"أرس٠أÙÙ Ø·ÙØ¨",description:"Ù
ØªÙØ§ÙÙ Ù
ع OpenAI. Ø£ÙØ´Ø¦ keyØ ÙØ§Ø¶Ø¨Ø· {{env}}Ø Ø«Ù
استدع gateway."},ZOe={credit:"Credit",requests:"Ø§ÙØ·Ùبات"},JOe={title:zOe,description:qOe,createApiKey:HOe,cards:VOe,usageTrend:KOe,activity:GOe,usageMix:WOe,quickHealth:YOe,recent:QOe,firstRequest:XOe,tooltip:ZOe},e3e="ØªØØ¯Ùد ÙÙ Ø§ÙØµÙÙÙ",t3e="ØªØØ¯Ùد Ø§ÙØµÙ {{row}}",n3e="ØªØ¹Ø°ÙØ± Ø§ÙØªØÙ
ÙÙ",a3e="ÙØ§ ØªÙØ¬Ø¯ Ø¨ÙØ§Ùات",o3e="ÙØ§ ØªÙØ¬Ø¯ Ø³Ø¬ÙØ§Øª ÙØ¹Ø±Ø¶Ùا.",s3e="Ù
Ø²ÙØ¯ Ù
Ù Ø§ÙØªÙاصÙÙ",r3e="{{count}} ØªÙØ§ØµÙ٠إضاÙÙØ©",i3e="ÙØªØ Ø§ÙØªÙاصÙÙ",l3e={selectAllRows:e3e,selectRow:t3e,errorTitle:n3e,emptyTitle:a3e,emptyDescription:o3e,moreDetails:s3e,moreDetailsWithCount:r3e,openRow:i3e},c3e="آخر ساعة",d3e="اÙÙÙÙ
",u3e="Ø£Ù
س",m3e="آخر 7 Ø£ÙØ§Ù
",p3e="آخر 30 ÙÙÙ
ÙØ§",f3e="ÙØ°Ø§ Ø§ÙØ´Ùر",g3e="ØØ³Ø¨ Ø§ÙØ´Ùر",h3e="Ù
خصص",y3e="Ù٠اÙÙÙØª",v3e="اختر Ø§ÙØªØ§Ø±ÙØ®",b3e="Ø¥ÙØºØ§Ø¡",x3e="تطبÙÙ",$3e="ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ ØªØ§Ø±ÙØ® Ø§ÙØ¨Ø¯Ø¡ ÙØ¨Ù ØªØ§Ø±ÙØ® Ø§ÙØ§ÙØªÙØ§Ø¡.",w3e="إعدادات ÙØ·Ø§Ù Ø§ÙØªØ§Ø±ÙØ®",k3e="Ø§ÙØ´Ùر Ø§ÙØ³Ø§Ø¨Ù",C3e="Ø§ÙØ´Ùر Ø§ÙØªØ§ÙÙ",S3e={last1h:c3e,today:d3e,yesterday:u3e,last7d:m3e,last30d:p3e,thisMonth:f3e,byMonth:g3e,custom:h3e,all:y3e,selectDate:v3e,cancel:b3e,apply:x3e,reversedError:$3e,presetsAriaLabel:w3e,previousMonth:k3e,nextMonth:C3e},A3e="Ø§ÙØØ³Ø§Ø¨ ØºÙØ± Ù
تاØ",T3e="جار تÙÙØ¦Ø© Ø§ÙØØ³Ø§Ø¨",R3e={title:"تÙ
Ø¥ÙÙØ§Ù Ø§ÙØØ³Ø§Ø¨",description:"ÙØ§ ÙØ²Ø§Ù بإÙ
ÙØ§Ù ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨ تسجÙÙ Ø§ÙØ¯Ø®ÙÙØ ÙÙ٠اÙÙØµÙ٠إÙÙ ÙÙØØ© Ø§ÙØªØÙÙ
ÙØ·Ùبات gateway Ù
تÙÙÙØ§Ù.",detail:"إذا ÙØ§Ù Ù
763ذا ØºÙØ± Ù
تÙÙØ¹Ø ØªÙØ§ØµÙ Ù
ع support Ù
Ù Ø¨Ø±ÙØ¯ ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨."},P3e={accountUnavailable:A3e,accountInitializing:T3e,accountRestricted:R3e},_3e="تÙÙÙØ§Øª Ù
جاÙÙØ©",j3e="ØØµØ© ÙÙÙ
ÙØ© Ù
Ù Ø§ÙØªÙÙÙØ§Øª اÙÙ
جاÙÙØ© ÙÙÙ
اذج Ù
ØØ¯Ø¯Ø© â ØªØªØ¬Ø¯Ø¯ تÙÙØ§Ø¦ÙÙØ§. ÙÙØ§ ÙÙØ®ØµÙ
Ø£Ù Ù
Ø¨ÙØº Ù
Ù Ù
ØÙظتÙ.",N3e="ØªØ¹Ø°ÙØ± تØÙ
ÙÙ ØØµØªÙ Ù
Ù Ø§ÙØªÙÙÙØ§Øª اÙÙ
جاÙÙØ©.",D3e="Ù٠اÙÙÙ
اذج",M3e="ØªÙØªÙÙ Ø§ÙØÙ
ÙØ© ÙÙ {{date}}",E3e={daily:"ÙÙÙ
Ù",weekly:"Ø£Ø³Ø¨ÙØ¹Ù"},I3e={daily:"ÙØªØ¬Ø¯Ø¯ ÙÙÙ
ÙÙØ§",weekly:"ÙØªØ¬Ø¯Ø¯ Ø£Ø³Ø¨ÙØ¹ÙÙØ§",localTime:"بتÙÙÙØªÙ اÙÙ
ØÙÙ {{time}}",countdown:"Ø§ÙØªØ¬Ø¯Ùد Ø§ÙØªØ§ÙÙ Ø®ÙØ§Ù {{duration}}",refreshingSoon:"Ø³ÙØªØ¬Ø¯Ø¯ ÙØ±ÙØ¨ÙØ§"},O3e={title:"ÙØ§ ØªÙØ¬Ø¯ ØÙ
ÙØ§Øª تÙÙÙØ§Øª Ù
جاÙÙØ© ÙØ´Ø·Ø©",description:"Ø¹ÙØ¯ ÙØ¬Ùد ØÙ
ÙØ© تÙÙÙØ§Øª Ù
جاÙÙØ© Ø¬Ø§Ø±ÙØ©Ø Ø³ØªØ¸ÙØ± ØØµØªÙ اÙÙÙÙ
ÙØ© ÙÙØ§."},L3e={title:"تÙ
Ø¥ÙÙØ§Ù Ù
ÙØ Ø§ÙØªÙÙÙØ§Øª اÙÙ
جاÙÙØ© Ù
Ø¤ÙØªÙا عÙÙ ØØ³Ø§Ø¨Ù",body:"ÙØ¨Ø¯Ù Ø£Ù ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨ جزء Ù
Ù ÙÙ
Ø· تسجÙ٠جÙ
Ø§Ø¹ÙØ ÙØ°Ø§ تÙ
Ø¥ÙÙØ§Ù اÙÙ
ÙØ اÙÙ
جاÙÙØ© Ù
Ø¤ÙØªÙا Ù٠اÙÙÙØª Ø§ÙØØ§ÙÙ. إذا ÙØ§Ù ذÙ٠ع٠طرÙÙ Ø§ÙØ®Ø·Ø£Ø ØªÙØ§ØµÙ Ù
Ø¹ÙØ§ عبر"},U3e="تÙÙÙ",B3e="اÙÙ
تبÙ٠اÙÙÙÙ
{{value}} تÙÙÙ",F3e={label:"أرس٠ÙÙ Ø¨Ø±ÙØ¯Ùا Ø¹ÙØ¯ اÙÙÙØ§Ø¯",hint:"Ø§ØØµÙ عÙÙ Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ Ø¹ÙØ¯ ÙÙØ§Ø¯ Ø±ØµÙØ¯Ù اÙÙ
جاÙÙ ÙÙØ°Ø§ اÙÙÙÙ
."},z3e={crg_freetoken_daily_cn5:"اÙÙÙ
اذج Ø§ÙØµÙÙÙØ© · تÙÙÙØ§Øª Ù
جاÙÙØ© ÙÙÙ
ÙÙØ§"},q3e={title:_3e,description:j3e,loadFailed:N3e,allModels:D3e,campaignEnds:M3e,cadence:E3e,refresh:I3e,empty:O3e,paused:L3e,tokensUnit:U3e,remainingToday:B3e,emailToggle:F3e,campaigns:z3e},H3e="Ø§ÙØ³Ø¬Ùات",V3e="Ø§ÙØØµ Ø§ÙØªÙÙÙØ© ÙØ§ÙÙÙ
ÙÙ Ùtokens ÙØ§ÙØØ§ÙØ© ÙØ¥Ø´Ø§Ø±Ø§Øª routing ÙÙÙ Ø·ÙØ¨.",K3e={copiedCurl:"تÙ
ÙØ³Ø® curl",copiedId:"تÙ
ÙØ³Ø® Ù
عرÙÙ Ø§ÙØ·Ùب",copyCurl:"ÙØ³Ø® ÙÙ curl",copyFailed:"ÙØ´Ù اÙÙØ³Ø®",copyId:"ÙØ³Ø® Ù
عرÙÙ Ø§ÙØ·Ùب",menu:"إجراءات Ø§ÙØµÙ",openTab:"ÙØªØ Ù٠تبÙÙØ¨ Ø¬Ø¯ÙØ¯"},G3e={prompt:"Prompt",ratio:"ÙØ³Ø¨Ø© hit",read:"ÙØ±Ø§Ø¡Ø© cache",title:"ÙØ³Ø¨Ø© cache hit"},W3e={confirm:"Ø¥ÙØºØ§Ø¡ اÙÙ
ÙÙ
Ø©",failed:"ÙØ´Ù Ø¥ÙØºØ§Ø¡ اÙÙ
ÙÙ
Ø©",keep:"Ø¥Ø¨ÙØ§Ø¡",message:"ÙØ°Ù اÙÙ
ÙÙ
Ø© Ù
ا Ø²Ø§ÙØª ÙÙ ÙØ§Ø¦Ù
Ø© Ø§ÙØ§Ùتظار. ÙØ¤Ø¯Ù Ø¥ÙØºØ§Ø¤Ùا Ø¥Ù٠عدÙ
Ù
Ø¹Ø§ÙØ¬ØªÙØ§Ø ÙÙÙ ØªÙØ·Ø¨Ù أ٠رسÙÙ
.",success:"تÙ
Ø¥ÙØºØ§Ø¡ اÙÙ
ÙÙ
Ø©",title:"Ø¥ÙØºØ§Ø¡ اÙÙ
ÙÙ
Ø©Ø",pending:"Ø¬Ø§Ø±Ù Ø§ÙØ¥Ùغاء..."},Y3e={cacheHit:"ضربة Cache",cost:"Ø§ÙØªÙÙÙØ©",ip:"IP",latency:"اÙÙÙ
ÙÙ",model:"اÙÙÙ
ÙØ°Ø¬",source:"اÙÙ
صدر",status:"Ø§ÙØØ§ÙØ©",stream:"تدÙÙ",time:"اÙÙÙØª",tokens:"Tokens",tps:"Throughput"},Q3e={trigger:"إعدادات Ø§ÙØ£Ø¹Ù
دة"},X3e={body:"Ø£Ø±Ø³Ù Ø·ÙØ¨Ùا عبر OneHop ÙØ³ÙØ¸ÙØ± ÙÙØ§.",title:"ÙØ§ ØªÙØ¬Ø¯ Ø³Ø¬ÙØ§Øª ÙÙ ÙØ°Ø§ اÙÙØ·Ø§Ù"},Z3e={all:"اÙÙÙ",apiKey:"API key",cost:"Ø§ÙØªÙÙÙØ© (USD)",desktopDateRangeAria:"ØªØØ¯Ùد ÙØ·Ø§Ù Ø§ÙØªØ§Ø±ÙØ® عÙÙ Ø³Ø·Ø Ø§ÙÙ
ÙØªØ¨",finishReason:"سبب Ø§ÙØ§ÙØªÙØ§Ø¡",latency:"اÙÙÙ
ÙÙ (s)",max:"Ø§ÙØØ¯ Ø§ÙØ£ÙصÙ",min:"Ø§ÙØØ¯ Ø§ÙØ£Ø¯ÙÙ",mobileDateRangeAria:"ØªØØ¯Ùد ÙØ·Ø§Ù Ø§ÙØªØ§Ø±ÙØ® عÙÙ Ø§ÙØ¬ÙاÙ",model:"اÙÙÙ
ÙØ°Ø¬",modelsSelected:"تÙ
ØªØØ¯Ùد {{count}}",more:"اÙÙ
Ø²ÙØ¯ Ù
Ù Ø¹ÙØ§Ù
Ù Ø§ÙØªØµÙÙØ©",refresh:"ØªØØ¯ÙØ«",request:"Ø§ÙØ¨ØØ« بÙ
عرÙÙ Ø§ÙØ·Ùب",requestIdLabel:"Ù
عرÙÙ Ø§ÙØ·Ùب",status:"Ø§ÙØØ§ÙØ©",stream:"تدÙÙ",time:"اÙÙÙØª",type:"اÙÙÙØ¹",mobileTitle:"تصÙÙØ©"},J3e={requests:"Ø·ÙØ¨Ø§Øª ÙÙ ÙØ°Ù Ø§ÙØµÙØØ©",times:"تعرض Ø§ÙØ£ÙÙØ§Øª بÙ"},eLe={rowsPer:"Ø§ÙØµÙÙÙ"},tLe={all:"Ù٠اÙÙÙØª",custom:"Ù
خصص",last1h:"آخر ساعة",last30d:"آخر 30 ÙÙÙ
ÙØ§",last7d:"آخر 7 Ø£ÙØ§Ù
",thisMonth:"ÙØ°Ø§ Ø§ÙØ´Ùر",today:"اÙÙÙÙ
",yesterday:"Ø£Ù
س"},nLe={title:"Ø§ÙØ¹Ù
ÙÙ",unknown:"ÙÙ
ÙØªÙ
Ø§ÙØ¥Ø¨Ùاغ ع٠user-agent",unknownShort:"ØºÙØ± Ù
عرÙÙ"},aLe={output:"Tokens Ø§ÙØ¥Ø®Ø±Ø§Ø¬",rate:"اÙÙ
عدÙ",title:"Throughput",window:"ÙØ§Ùذة Ø§ÙØªÙÙÙØ¯"},oLe={title:"Ø·ÙØ¨",openDetail:"ÙØªØ ØªÙØ§ØµÙÙ Ø§ÙØ·Ùب",copy:"ÙØ³Ø® ID",copied:"تÙ
اÙÙØ³Ø®",copyFailed:"ÙØ´Ù اÙÙØ³Ø®",close:"Ø¥ØºÙØ§Ù",loading:"Ø¬Ø§Ø±Ù Ø§ÙØªØÙ
ÙÙâ¦",response:"Ø§ÙØ§Ø³ØªØ¬Ø§Ø¨Ø©",sections:{request:"Ø§ÙØ·Ùب",routing:"Ø§ÙØªÙجÙÙ",tokens:"Tokens",cost:"ØªÙØµÙÙ Ø§ÙØªÙÙÙØ©",performance:"Ø§ÙØ£Ø¯Ø§Ø¡",error:"خطأ",outcome:"اÙÙØªÙجة",multimodal:"Ù
تعدد اÙÙØ³Ø§Ø¦Ø·"},fields:{requestId:"Ù
عرÙÙ Ø§ÙØ·Ùب",time:"اÙÙÙØª",apiKey:"API key",userAgent:"User-Agent",billingMode:"ÙØ¶Ø¹ اÙÙÙØªØ±Ø©",onehopModel:"ÙÙ
ÙØ°Ø¬ OneHop",endpoint:"Endpoint",firstToken:"Ø£ÙÙ token",total:"إجÙ
اÙ٠اÙÙ
دة",throughput:"Throughput",stream:"Streaming",clientIp:"IP Ø§ÙØ¹Ù
ÙÙ",finishReason:"سبب Ø§ÙØ¥ÙÙØ§Ø¡",mediaType:"ÙÙØ¹ اÙÙØ³Ø§Ø¦Ø·",imageCount:"Ø§ÙØµÙر",imageSize:"Ø§ÙØØ¬Ù
",errorCode:"Ø§ÙØ±Ù
ز",errorMessage:"Ø§ÙØ±Ø³Ø§ÙØ©",requestedModel:"اÙÙÙ
ÙØ°Ø¬ اÙÙ
Ø·ÙÙØ¨"},billingMode:{token:"ÙÙÙ token",per_request:"ÙÙÙ Ø·ÙØ¨",image:"ÙÙÙ ØµÙØ±Ø©"},timeline:{heading:"Ø¯ÙØ±Ø© Ø§ÙØÙØ§Ø©",received:"تÙ
Ø§Ø³ØªÙØ§Ù
Ø§ÙØ·Ùب",routed:"تÙ
Ø§ÙØªÙجÙÙ",failed:"ÙØ´Ù",generated:"تÙ
Ø§ÙØªÙÙÙØ¯",metered:"تÙ
اÙÙÙØ§Ø³",billed:"تÙ
ت اÙÙÙØªØ±Ø©"},downloadMedia:"ØªÙØ²ÙÙ"},sLe={success:"ÙØ§Ø¬Ø",completed:"Ù
ÙØªÙ
Ù",failed:"ÙØ´Ù",pen
763ding:"ÙÙØ¯ Ø§ÙØ§Ùتظار",repairing:"جار Ø§ÙØ¥ØµÙاØ",queued:"ÙÙ Ø§ÙØµÙ",running:"ÙÙØ¯ Ø§ÙØªØ´ØºÙÙ",cancelled:"Ù
ÙØºÙ",expired:"Ù
ÙØªÙÙ"},rLe={chat:"دردشة",image:"ØµÙØ±Ø©",video:"ÙÙØ¯ÙÙ"},iLe={stop:"Stop",length:"ØØ¯ Ø§ÙØ·ÙÙ",tool_calls:"استدعاءات Ø§ÙØ£Ø¯Ùات",content_filter:"ÙÙØªØ± اÙÙ
ØØªÙÙ",error:"خطأ"},lLe={true:"Ù
تدÙÙ",false:"ØºÙØ± Ù
تدÙÙ"},cLe={title:"ØªÙØµÙÙ Ø§ÙØªÙÙÙØ©"},dLe={title:"ØªÙØµÙÙ tokens",prompt:"Ø§ÙØ¥Ø¯Ø®Ø§Ù",completion:"Ø§ÙØ¥Ø®Ø±Ø§Ø¬",imageOutput:"رÙ
ÙØ² إخراج Ø§ÙØµÙرة",cacheRead:"ÙØ±Ø§Ø¡Ø© cache",cacheWrite:"ÙØªØ§Ø¨Ø© cache",cacheWrite5m:"ÙØªØ§Ø¨Ø© cache 5m",cacheWrite1h:"ÙØªØ§Ø¨Ø© cache 1h",total:"Ø§ÙØ¥Ø¬Ù
اÙÙ"},uLe={timestamp:"Ø§ÙØ·Ø§Ø¨Ø¹ Ø§ÙØ²Ù
ÙÙ",local:"اÙÙÙØª اÙÙ
ØÙÙ",relative:"ÙØ³Ø¨Ù"},mLe={inputCost:"تÙÙÙØ© Ø§ÙØ¥Ø¯Ø®Ø§Ù",outputCost:"تÙÙÙØ© Ø§ÙØ¥Ø®Ø±Ø§Ø¬",cacheReadCost:"تÙÙÙØ© ÙØ±Ø§Ø¡Ø© cache",cacheWriteCost:"تÙÙÙØ© ÙØªØ§Ø¨Ø© cache",inputPrice:"سعر Ø§ÙØ¥Ø¯Ø®Ø§Ù",outputPrice:"سعر Ø§ÙØ¥Ø®Ø±Ø§Ø¬",total:"Ø§ÙØ¥Ø¬Ù
اÙÙ",officialPrice:"Ø§ÙØ³Ø¹Ø± Ø§ÙØ±Ø³Ù
Ù",saved:"Ø§ÙØªÙÙÙØ±",factor:{textInput:"Ø¥Ø¯Ø®Ø§Ù ÙØµ",textOutput:"إخراج ÙØµ",imageInput:"Ø¥Ø¯Ø®Ø§Ù ØµÙØ±Ø©",imageOutput:"إخراج ØµÙØ±Ø©",perCallImage:"ÙÙÙ ØµÙØ±Ø©",videoPerSecond:"ÙÙØ¯ÙÙ",videoPerCall:"ÙÙØ¯ÙÙ",cacheRead:"ÙØ±Ø§Ø¡Ø© Ø§ÙØªØ®Ø²Ù٠اÙÙ
Ø¤ÙØª",cacheWrite:"ÙØªØ§Ø¨Ø© Ø§ÙØªØ®Ø²Ù٠اÙÙ
Ø¤ÙØª",cacheWrite5m:"ÙØªØ§Ø¨Ø© Ø§ÙØªØ®Ø²Ù٠اÙÙ
Ø¤ÙØª (5m)",cacheWrite1h:"ÙØªØ§Ø¨Ø© Ø§ÙØªØ®Ø²Ù٠اÙÙ
Ø¤ÙØª (1h)"},unit:{per1mTokens:"/ Ù
ÙÙÙÙ tokens",perImage:"/ ØµÙØ±Ø©",perSecond:"/ Ø«",perCall:"/ استدعاء"},promoBasis:"ÙØ¨Ù Ø§ÙØ¹Ø±Ø¶",promoSaved:"تÙÙÙØ± Ø§ÙØ¹Ø±Ø¶",freeCovered:"Ø§ÙØØµØ© اÙÙ
جاÙÙØ© ({{tokens}} رÙ
ز)",freeCoveredNoCount:"Ø§ÙØØµØ© اÙÙ
جاÙÙØ©"},pLe={noPreview:"ÙØ§ ØªÙØ¬Ø¯ Ù
عاÙÙØ© Ù
ØªØ§ØØ©",video:"ÙÙØ¯ÙÙ"},fLe={free:"Ù
جاÙÙ"},gLe={title:H3e,description:V3e,actions:K3e,cacheHit:G3e,cancelJob:W3e,col:Y3e,columns:Q3e,empty:X3e,filter:Z3e,meta:J3e,pager:eLe,range:tLe,source:nLe,tps:aLe,drawer:oLe,status:sLe,type:rLe,finishReason:iLe,stream:lLe,costBreakdown:cLe,tokensBreakdown:dLe,time:uLe,userCost:mLe,export:{label:"ØªØµØ¯ÙØ± CSV",exporting:"Ø¬Ø§Ø±Ù Ø§ÙØªØµØ¯Ùرâ¦",done:"تÙ
ØªØµØ¯ÙØ± {{n}} صÙ.",truncated:"تÙ
ØªØµØ¯ÙØ± Ø£ÙÙ {{n}} صÙ. ÙÙÙØµ اÙÙØ·Ø§Ù Ø§ÙØ²Ù
ÙÙ ÙØªØµØ¯Ùر Ø§ÙØ¨Ø§ÙÙ.",failed:"ÙØ´Ù Ø§ÙØªØµØ¯Ùر. ÙÙØ±Ø¬Ù اÙÙ
ØØ§ÙÙØ© Ù
رة أخرÙ."},media:pLe,cost:fLe},hLe="اÙÙÙ
اذج",yLe="استعرض Ù٠اÙÙÙ
اذج اÙÙ
ØªØ§ØØ©Ø Ø·ÙÙ Ø§ÙØ³ÙØ§ÙØ أسعار Ø§ÙØ¥Ø¯Ø®Ø§Ù/Ø§ÙØ¥Ø®Ø±Ø§Ø¬Ø ÙØ§ÙÙØ¯Ø±Ø§ØªØ ÙØ§ØÙظ اÙÙÙ
اذج Ø§ÙØªÙ تستخدÙ
ÙØ§ ÙØ«ÙØ±ÙØ§.",vLe={all:"اÙÙÙ",favorites:"Ù
ÙØ¶ÙتÙ",benefit:"Ù
ÙØ²Ø©",hot:"رائج",free:"Free"},bLe={capability:"اÙÙÙØ¹",allCapabilities:"ÙÙ Ø§ÙØ£ÙÙØ§Ø¹",capability_text:"ÙØµ",capability_image:"ØµÙØ±Ø©",capability_audio:"ØµÙØª",capability_video:"ÙÙØ¯ÙÙ",provider:"اÙÙ
زÙÙØ¯",allProviders:"Ù٠اÙÙ
زÙÙØ¯ÙÙ",protocol:"Ø§ÙØ¨Ø±ÙتÙÙÙÙ",allProtocols:"ÙÙ Ø§ÙØ¨Ø±ÙتÙÙÙÙØ§Øª",sort:"ØªØ±ØªÙØ¨",search:"Ø¨ØØ«",searchPlaceholder:"اÙÙÙ
ÙØ°Ø¬ / اÙÙ
زÙÙØ¯",allContexts:"Ø£Ù Ø·ÙÙ",context:"Ø§ÙØ³ÙاÙ",mobileTitle:"تصÙÙØ©"},xLe="Ù
Ù
ÙØ²",$Le="Ø§ÙØ£ØØ¯Ø«",wLe="Ø§ÙØ£Ùثر Ø±ÙØ§Ø¬Ùا ÙØ°Ø§ Ø§ÙØ£Ø³Ø¨Ùع",kLe="Ø§ÙØ§Ø³Ù
(A-Z)",CLe="Ø§ÙØ³Ø¹Ø± (Ù
Ù Ø§ÙØ£Ù٠إÙÙ Ø§ÙØ£Ø¹ÙÙ)",SLe="Ø§ÙØ³Ø¹Ø± (Ù
Ù Ø§ÙØ£Ø¹Ù٠إÙÙ Ø§ÙØ£ÙÙ)",ALe="Ø·ÙÙ Ø§ÙØ³ÙاÙ",TLe="زÙ
Ù Ø§ÙØ§Ø³ØªØ¬Ø§Ø¨Ø©",RLe="Ø§ÙØ¥ÙØªØ§Ø¬ÙØ©",PLe="OpenAI Chat",_Le="OpenAI Responses",jLe="Anthropic",NLe="Vertex AI",DLe="OpenAI Images",MLe="OpenAI Video",ELe={label:"اÙÙÙ
اذج",model:"اÙÙÙ
ÙØ°Ø¬",provider:"اÙÙ
زÙÙØ¯",capabilities:"اÙÙØ¯Ø±Ø§Øª",context:"Ø§ÙØ³ÙاÙ",price:"Ø§ÙØ³Ø¹Ø±",discount:"خصÙ
",action:"إجراء",tryIt:"Ø¬Ø±ÙØ¨Ù",type:"اÙÙÙØ¹",maxOutput:"Ø§ÙØØ¯ Ø§ÙØ£Ùص٠ÙÙØ¥Ø®Ø±Ø§Ø¬",copyId:"ÙØ³Ø® ID اÙÙÙ
ÙØ°Ø¬",copied:"تÙ
اÙÙØ³Ø®",usage:"Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",stability:"Ø§ÙØ§Ø³ØªÙرار",protocols:"Ø§ÙØ¨Ø±ÙتÙÙÙÙØ§Øª",openDetail:"Open model detail"},ILe="رائج",OLe="Ù
ÙØ²Ø©",LLe={add:"Ø¥Ø¶Ø§ÙØ© Ø¥Ù٠اÙÙ
ÙØ¶ÙØ©",remove:"Ø¥Ø²Ø§ÙØ© Ù
٠اÙÙ
ÙØ¶ÙØ©"},ULe={favorites:"ÙØ§ ØªÙØ¬Ø¯ Ù
ÙØ¶Ùات بعد",noMatch:"ÙØ§ ØªÙØ¬Ø¯ ÙÙ
اذج Ù
Ø·Ø§Ø¨ÙØ©"},BLe="ÙØµ",FLe="ØµÙØ±Ø©",zLe="Ù
ÙÙ",qLe="ÙÙØ¯ÙÙ",HLe="ØµÙØª",VLe="Embeddings",KLe="
763Vision",GLe="استدعاء Ø§ÙØ£Ø¯Ùات",WLe="ÙØ¶Ø¹ JSON",YLe="تÙÙÙØ¯ Ø§ÙØµÙر",QLe="ØªØØ±Ùر Ø§ÙØµÙر",XLe="ÙØµ",ZLe="ØµÙØ±Ø©",JLe="ÙÙØ¯ÙÙ",e4e="ØµÙØª",t4e="Embedding",n4e="رسÙ
Ù",a4e="Kiro",o4e="ابتداء٠Ù
Ù",s4e="/ استدعاء",r4e="/ Ø«",i4e="/ 1M",l4e="Ø³Ø±ÙØ¹",c4e="Free",d4e="Coming Soon",u4e="Free",m4e={ariaLabel:"عÙ
ÙØ© Ø§ÙØ³Ø¹Ø±",usd:"دÙÙØ§Ø± Ø£Ù
رÙÙÙ",rmb:"ÙÙØ§Ù (Â¥)",settlement:"ØªÙØ¹Ø±Ø¶ Ø§ÙØ£Ø³Ø¹Ø§Ø± باÙÙÙØ§Ù ÙÙ٠سعر صر٠ثابت {{rate}}Ø ÙÙØ§Ø³ØªØ±Ø´Ø§Ø¯ ÙÙØ·Ø ÙÙÙØ®ØµÙ
Ù
Ù Ù
ØÙظت٠دائÙ
ÙØ§ Ø¨Ø§ÙØ¯ÙÙØ§Ø± Ø§ÙØ£Ù
رÙÙÙ ØØ³Ø¨ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
اÙÙØ¹ÙÙ."},p4e="ÙØªØ·Ùب Ø´ØÙ Ø±ØµÙØ¯",f4e={title:hLe,description:yLe,tabs:vLe,filters:bLe,sort_featured:xLe,sort_newest:$Le,sort_top_weekly:wLe,sort_name:kLe,sort_price_asc:CLe,sort_price_desc:SLe,sort_context:ALe,sort_latency:TLe,sort_throughput:RLe,protocol_openai_chat:PLe,protocol_openai_responses:_Le,protocol_anthropic_messages:jLe,protocol_google_vertex_ai:NLe,protocol_openai_images:DLe,protocol_openai_sora:MLe,table:ELe,badge_hot:ILe,badge_benefit:OLe,favorite:LLe,empty:ULe,modality_text:BLe,modality_image:FLe,modality_file:zLe,modality_video:qLe,modality_audio:HLe,modality_embeddings:VLe,capability_vision:KLe,capability_tool_calling:GLe,capability_json_mode:WLe,capability_image_generation:YLe,capability_image_edit:QLe,type_text:XLe,type_image:ZLe,type_video:JLe,type_audio:e4e,type_embedding:t4e,provider_official:n4e,provider_kiro:a4e,price_from:o4e,price_perCall:s4e,price_perSec:r4e,price_per1m:i4e,price_fast:l4e,badge_free:c4e,badge_unavailable:d4e,price_free:u4e,currency:m4e,badge_requiresTopup:p4e},g4e={main:"Ø§ÙØªÙÙÙ Ø§ÙØ±Ø¦ÙسÙ",utility:"تÙÙÙ Ø§ÙØ£Ø¯Ùات",console:"تÙÙÙ ÙÙØØ© Ø§ÙØªØÙÙ
",openNavigation:"ÙØªØ Ø§ÙØªÙÙÙ",collapse:"Ø·Ù Ø§ÙØ´Ø±ÙØ· Ø§ÙØ¬Ø§ÙبÙ",expand:"ØªÙØ³Ùع Ø§ÙØ´Ø±ÙØ· Ø§ÙØ¬Ø§ÙبÙ"},h4e={platform:"ÙÙØØ© Ø§ÙØªØÙÙ
",chat:"اÙÙ
ØØ§Ø¯Ø«Ø©",models:"اÙÙÙ
اذج",logs:"Ø§ÙØ³Ø¬Ùات",jobs:"اÙÙ
ÙØ§Ù
",apiKeys:"API keys",usage:"Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",billing:"اÙÙÙØªØ±Ø©",freeTokens:"تÙÙÙØ§Øª Ù
جاÙÙØ©",referrals:"Ø§ÙØ¥ØØ§Ùات",settings:"Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª",admin:"Ø§ÙØ¥Ø¯Ø§Ø±Ø©",balance:"Ø§ÙØ±ØµÙد",helpSupport:"اÙÙ
ساعدة ÙØ§ÙدعÙ
",announcements:"Ø§ÙØ¥Ø¹ÙØ§ÙØ§Øª",announcementsTitle:"Ø§ÙØ¥Ø¹ÙØ§ÙØ§Øª",announcementsEmpty:"ÙØ§ ØªÙØ¬Ø¯ Ø¥Ø¹ÙØ§Ùات بعد. تØÙÙ ÙØ§ØÙÙØ§.",announcementsTicketUnread:"{{count}} ØªØ°ÙØ±Ø© Ø¨ÙØ§ Ø±Ø¯ÙØ¯ Ø¬Ø¯ÙØ¯Ø©",support:"Ø§ÙØ¯Ø¹Ù
",tasks:"اÙÙ
ÙØ§Ù
",tagNew:"Ø¬Ø¯ÙØ¯"},y4e={staff:"اÙÙØ±ÙÙ"},v4e={dashboard:"ÙÙØØ© اÙÙ
عÙÙÙ
ات",users:"اÙÙ
ستخدÙ
ÙÙ",billing:"ÙÙØªØ±Ø© اÙÙ
ÙØµØ©",usage:"استخداÙ
اÙÙ
ÙØµØ©",rateLimits:"ØØ¯Ùد اÙÙ
عدÙ",access:"اÙÙØµÙÙ",staff:"اÙÙ
شرÙÙÙ",growth:"اÙÙÙ
Ù",models:"اÙÙÙ
اذج",announcements:"Ø§ÙØ¥Ø¹ÙØ§ÙØ§Øª",upstream:"Upstream",auditLogs:"Ø³Ø¬ÙØ§Øª Ø§ÙØªØ¯ÙÙÙ",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},b4e={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},x4e={aria:g4e,public:{models:"اÙÙÙ
اذج",pricing:"Ø§ÙØ£Ø³Ø¹Ø§Ø±",docs:"اÙÙØ«Ø§Ø¦Ù",blog:"اÙÙ
دÙÙØ©",changelog:"Ø³Ø¬Ù Ø§ÙØªØºÙÙØ±Ø§Øª"},console:h4e,adminGroups:y4e,admin:v4e,notifications:b4e},$4e={back:"Ø§ÙØ³Ø§Ø¨Ù",done:"تÙ
",next:"Ø§ÙØªØ§ÙÙ",stepOf:"{{current}} / {{total}}"},w4e={balance:{body:"اشØÙ ØØ³Ø¨ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
. ÙÙ
Ù٠استرداد Ø§ÙØ±ØµÙد ØºÙØ± اÙÙ
ستخدÙ
Ù٠أ٠ÙÙØª.",title:"Ø±ØµÙØ¯Ù"},keys:{body:"Ø£ÙØ´Ø¦ key Ù
Ù ÙÙØ§ Ø«Ù
ÙØ¬Ù٠أ٠أداة Ø¥ÙÙ OneHop.",title:"Ø£ÙØ´Ø¦ Ø£ÙÙ API key"},models:{body:"اطÙÙØ¹ ÙÙ ØµÙØØ© ÙØ§ØØ¯Ø© عÙÙ Ù٠اÙÙÙ
اذج Ø§ÙØªÙ ÙÙ
ÙÙÙ Ø§Ø³ØªØ¯Ø¹Ø§Ø¤ÙØ§ ÙØªÙÙÙØ© ÙÙ Ù
ÙÙØ§.",cta:"ÙØªØ ØµÙØØ© اÙÙÙ
اذج",title:"استعرض اÙÙÙ
اذج"}},k4e={body:"URL ÙØ§ØØ¯ ÙÙ٠اÙÙÙ
اذج. Ø³ÙØ¹Ø±Ø¶ Ù٠أÙÙ
Ø«ÙØ§Ø« ÙÙØ§Ø· Ø®ÙØ§Ù 30 ثاÙÙØ©.",skip:"تخطÙ",start:"ابدأ",title:"Ù
Ø±ØØ¨Ùا ب٠ÙÙ OneHop"},C4e={nav:$4e,steps:w4e,welcome:k4e},S4e="Failed to load",A4e="Nothing here yet.",T4e="Ù
Ø²ÙØ¯ Ù
Ù Ø§ÙØªÙاصÙÙ",R4e={failedLoad:S4e,emptyDescription:A4e,moreDetails:T4e},P4e="اÙÙÙ",_4e="ÙØ¬Ø§Ø",j4e="ÙÙØ¯ Ø§ÙØ§Ùتظار",N4e="جار Ø§ÙØ¥ØµÙاØ",D4e="ÙØ´Ù",M4e="تÙ
رد اÙÙ
Ø¨ÙØº",E4e="ÙØ´Ø·",I4e="Ù
عطÙÙ",O4e="Ù
ستÙÙØ¯",L4e="Ù
ØØ¬Ùز",U4e="Ù
ÙØ³ØªØ®Ø¯ÙÙ
",B4e="Ù
ÙÙÙÙ",F4e="Ù
ØØ°ÙÙ",z4e="Ø·Ø¨ÙØ¹Ù",q4e="ÙÙØ¯ اÙÙ
Ø±Ø§ÙØ¨Ø©",H4e="Ù
ØØ¸Ùر",V4e="تÙ
اÙÙ
ÙØ",K4e="تÙ
Ø§ÙØ¹Ùس",G4e="Ù
ÙØªÙÙ",W4e="Ù
رÙÙØ¶",Y4e="Ù
Ø³ÙØ¯Ø©",Q4e="Ù
ÙØ´Ùر",X4e="Ù
ÙÙ
Ù",Z4e="Ù
ؤرشÙ",J4e="Ù
Ø®ÙÙ",e5e="تÙ
Ø§ÙØ¥Ùشاء",t5e="تÙ
ÙØªØ checkout",n5e="Ù
دÙÙØ¹",a5e="Ù
ÙØºÙ",o5e="OpenAI Chat",s5e="OpenAI Responses",r5e="Anthropic Messages",i5e="Google Vertex AI",l5e="OpenAI Images",c5e="رسÙ
763Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù ",d5e="Ù ÙØ§Ùأة Ø§ÙØªØ³Ø¬ÙÙ",u5e="Ù ÙØ§Ùأة ترÙÙØ¬ÙØ©",m5e="Ù ÙØ§Ùأة Ø¥ØØ§ÙØ©",p5e="Ù ÙØ§Ùأة تعÙÙØ¶",f5e="Ù ÙØ§Ùأة Ø§ÙØ´ØÙ",g5e="تعدÙÙ ÙØ¯ÙÙ",h5e="شراء credit",y5e="Ø¯ÙØ¹",v5e="Ù ÙØ§Ùأة Ø§ÙØªØ³Ø¬ÙÙ",b5e="ÙØ³ÙÙ Ø©",x5e="Ù ÙØØ© admin",$5e="استخدا٠API",w5e="Ù ÙØ§Ùأة Ø§ÙØªØ³Ø¬ÙÙ",k5e="Ù ÙØØ© ÙØ¯ÙÙØ©",C5e="Sync",S5e="Streaming",A5e="ÙÙØªØ±Ø© token",T5e="ÙÙØªØ±Ø© Ø§ÙØ·Ùب",R5e="ÙÙØªØ±Ø© Ø§ÙØµÙر",P5e="Reasoning Ù ÙØ®Ùض",_5e="Reasoning Ù ØªÙØ³Ø·",j5e="Reasoning عاÙ",N5e="ØºÙØ± ÙØ§Ø¨Ù ÙÙØªØ·Ø¨ÙÙ",D5e="ØºÙØ± ٠عرÙÙ",M5e="Ù Ø¬Ù ÙØ¯",E5e="ØªÙ Ø§ÙØªØØ±Ùر",I5e="Ù ÙØºÙ",O5e="ØªÙ Ø¹ÙØ³Ù جزئÙÙØ§",L5e="ØªÙ Ø§ÙØªØ®Ø·Ù",U5e={all:P4e,success:_4e,pending:j4e,repairing:N4e,failed:D4e,refunded:M4e,active:E4e,disabled:I4e,exhausted:O4e,reserved:L4e,redeemed:U4e,suspended:B4e,deleted:F4e,normal:z4e,watchlisted:q4e,blocked:H4e,granted:V4e,reversed:K4e,expired:G4e,denied:W4e,draft:Y4e,published:Q4e,deprecated:X4e,archived:Z4e,public:"عا٠",hidden:J4e,created:e5e,checkout_opened:t5e,paid:n5e,canceled:a5e,openai_chat:o5e,openai_responses:s5e,anthropic_messages:r5e,google_vertex_ai:i5e,openai_images:l5e,usage_charge:c5e,bonus_signup_grant:d5e,bonus_promo_grant:u5e,bonus_referral_grant:m5e,bonus_compensation_grant:p5e,bonus_topup_grant:f5e,manual_adjustment:g5e,credit_purchase:h5e,payment:y5e,signup:v5e,coupon:b5e,admin:x5e,api:$5e,signup_bonus:w5e,manual:k5e,sync:C5e,stream:S5e,token:A5e,request:T5e,image:R5e,low:P5e,medium:_5e,high:j5e,not_applicable:N5e,unknown:D5e,frozen:M5e,released:E5e,cancelled:I5e,partially_reversed:O5e,skipped:L5e},B5e="{{count}} ÙÙÙ ØµÙØØ©",F5e="Ø§ÙØ¥Ø¬Ù اÙÙ {{count}}",z5e={perPage:B5e,total:F5e},q5e="Ø§ÙØ¯Ø¹ÙØ© ÙØ§ÙÙ ÙØ§Ùآت",H5e="Ø´Ø§Ø±Ù Ø±Ø§Ø¨Ø·Ù Ø§ÙØ®Ø§Øµ. Ø¹ÙØ¯ ÙÙØ§Ù اÙ٠ستخد٠اÙÙ ÙØØ§Ù Ø¨Ø§ÙØ´ØÙØ ØªÙØ³Ø¬ÙÙÙ Ù ÙØ§Ùآت Ø§ÙØ·Ø±ÙÙÙ Ø¨ÙØ¶ÙØ.",V5e="ØªØ¹Ø°ÙØ± تØÙ ÙÙ Ø¨ÙØ§Ùات Ø§ÙØ¯Ø¹ÙØ©",K5e="رابط Ø§ÙØ¯Ø¹ÙØ© Ø§ÙØ®Ø§Øµ بÙ",G5e="Ù Ø´Ø§Ø±ÙØ©",W5e="ØªÙ ÙØ³Ø® Ø§ÙØ¯Ø¹ÙØ©. Ø§ÙØµÙÙØ§ ÙÙ WeChat ÙÙÙ Ø´Ø§Ø±ÙØ©.",Y5e="ÙØ³Ø®",Q5e="ت٠اÙÙØ³Ø®",X5e="WeChat",Z5e="X",J5e="Telegram",eUe="Reddit",tUe="LinkedIn",nUe="WhatsApp",aUe="Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ",oUe="Facebook",sUe={default:{title:"استدع٠ÙÙ Ù٠اذج AI عبر OneHop API ÙØ§ØØ¯Ø©",body:"سجÙ٠عبر رابط Ø¯Ø¹ÙØªÙ â Ø§Ø´ØÙ Ø±ØµÙØ¯Ù Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù Ø ÙÙØØµÙ ÙÙØ§Ùا عÙÙ {{percent}}% ÙØ±ØµÙد ٠سترجع."},x:{title:"API ÙØ§ØØ¯Ø© ÙÙÙ Ù٠اذج AI ð¤",body:"اشØÙ Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù عبر Ø±Ø§Ø¨Ø·ÙØ ÙÙØØµÙ ÙÙ Ù ÙØ§ عÙÙ {{percent}}% ÙØ±ØµÙد ٠سترجع. ð"},telegram:{title:"ابÙ٠باستخدا٠ÙÙ Ù٠اذج AI عبر OneHop",body:"استخد٠رابط Ø¯Ø¹ÙØªÙ â Ø£ÙÙ Ø´ØÙ Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù ÙÙ ÙØÙØ§ Ù Ø¹ÙØ§ {{percent}}% ÙØ±ØµÙد Ø¥ØØ§ÙØ©."},whatsapp:{title:"ابÙ٠باستخدا٠ÙÙ Ù٠اذج AI â OneHop",body:"Ø§ÙØ¶Ù عبر رابط Ø¯Ø¹ÙØªÙ. اشØÙ Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù ÙÙØØµÙ ÙÙØ§Ùا عÙÙ {{percent}}% ÙØ±ØµÙد ٠سترجع."},reddit:{title:"OneHop â API ÙØ§ØØ¯Ø© ÙÙÙ Ù٠اذج AI. Ø¯Ø¹ÙØªÙ ØªÙ ÙØÙØ§ Ù Ø¹ÙØ§ {{percent}}% ÙØ±ØµÙد ٠سترجع Ø¹ÙØ¯ Ø£ÙÙ Ø´ØÙ ÙÙ",body:"اشØÙ Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù ÙÙØØµÙ ÙÙØ§Ùا عÙÙ {{percent}}% ÙØ±ØµÙد Ø¥ØØ§ÙØ©."},email:{title:"Ø¯Ø¹ÙØ© Ø¥ÙÙ OneHop â ÙÙ Ù٠اذج AI عبر API ÙØ§ØØ¯Ø©",body:`Ù Ø±ØØ¨ÙØ§Ø 764 765أستخد٠OneHop ÙØ§Ø³ØªØ¯Ø¹Ø§Ø¡ ÙÙ Ù٠اذج AI Ø§ÙØ±Ø¦ÙØ³ÙØ© عبر API ÙØ§ØØ¯Ø©. سجÙ٠عبر رابط Ø¯Ø¹ÙØªÙØ ÙØ¨Ø¹Ø¯ Ø£ÙÙ Ø´ØÙ ÙÙ ÙØØµÙ ÙÙØ§Ùا عÙÙ Ø±ØµÙØ¯ Ø¥ØØ§ÙØ©. 766 767٠ستÙÙØ§Øª اÙÙ ÙØ§Ùآت: {{tiers}}. 768 769Ø´ÙØ±Ùا!`},wechat:{title:"OneHop â ÙÙ Ù٠اذج AI عبر API ÙØ§ØØ¯Ø©",body:"سجÙ٠عبر رابط Ø¯Ø¹ÙØªÙ. اشØÙ Ø®ÙØ§Ù {{firstWindowDays}} Ø£ÙØ§Ù ÙÙØØµÙ ÙÙØ§Ùا عÙÙ {{percent}}% ÙØ±ØµÙد Ø¥ØØ§ÙØ©."}},rUe="ØªØ¸ÙØ± اÙÙ ÙØ§Ùأة ÙÙØ± Ø§ÙØ¯ÙØ¹Ø ÙØªÙج٠ÙÙØ¯ Ù Ø¤ÙØªÙا ÙØªØºØ·ÙØ© ÙØ§Ùذة Ø§ÙØ§Ø³ØªØ±Ø¯Ø§Ø¯Ø Ø«Ù ØªÙØØ±ÙÙØ± Ø¹ÙØ¯ Ø§ÙØªÙØ§Ø¦ÙØ§ Ø¨ÙØµÙÙØ§ credit ÙÙ ÙØ§Ùآت Ø¯Ø¹ÙØ© OneHop.",iUe="ØªÙØØ±ÙÙØ± بعد {{days}} ÙÙÙ .",lUe={referrer:"Ø§ÙØ¯Ø§Ø¹Ù",referee:"اÙ٠دعÙÙ"},cUe={referrer:": Ø§ÙØ³Ø¨ credit Ø§ÙØ¯Ø¹ÙØ© Ø¹ÙØ¯Ù ا ÙØ´ØÙ شخص Ø¯Ø¹ÙØªÙÙ Ø±ØµÙØ¯ÙÙ â {{tiers}}.",referee:": سجÙ٠عبر Ø§ÙØ±Ø§Ø¨Ø· ث٠اشØÙ Ø±ØµÙØ¯Ù ÙØªÙسب Ø£ÙØª Ø£ÙØ¶Ùا â {{tiers}}."},dUe={dayRange:"Ø§ÙØ£Ùا٠{{fromDay}}-{{untilDay}
769}",dayOpenEnded:"Ù
٠اÙÙÙÙ
{{fromDay}} ÙÙ
ا بعد"},uUe="إجÙ
اÙ٠اÙÙ
ÙØªØ³Ø¨",mUe="Ù
ÙØ§Ùآت Ø§ÙØ¯Ø¹ÙØ© اÙÙ
ÙØØ±ÙÙØ±Ø©",pUe="Ù
ÙØ§Ùآت Ø§ÙØ¯Ø¹ÙØ© اÙÙ
ÙØ¬Ù
ÙÙØ¯Ø©",fUe="عدد اÙÙ
دعÙÙÙÙ",gUe="Ø§ÙØ¯Ø¹Ùات اÙÙØ¹ÙØ§ÙØ©",hUe="Ù
ÙØ§Ùآت اÙÙ
دعÙ٠اÙÙ
ÙØØ±ÙÙØ±Ø©",yUe="Ù
ÙØ§Ùآت اÙÙ
دعÙ٠اÙÙ
ÙØ¬Ù
ÙÙØ¯Ø©",vUe="Ù
ÙØºØ§Ø© / Ù
Ø³ØªØ±Ø¯ÙØ©",bUe="Ø§ÙØ£Ø´Ø®Ø§Øµ Ø§ÙØ°ÙÙ Ø¯Ø¹ÙØªÙÙ
",xUe="ØªÙØ§ØµÙ٠اÙÙ
ÙØ§Ùآت",$Ue={user:"اÙÙ
ستخدÙ
",joined:"ØªØ§Ø±ÙØ® Ø§ÙØªØ³Ø¬ÙÙ",topups:"عدد عÙ
ÙÙØ§Øª Ø§ÙØ´ØÙ",earned:"Ù
ا ÙØ³Ø¨ØªÙ",frozen:"Ù
ÙØ¬Ù
ÙÙØ¯",date:"اÙÙÙØª",event:"Ø§ÙØØ¯Ø«",topupAmount:"Ø´ØÙ Ø§ÙØ·Ø±Ù Ø§ÙØ¢Ø®Ø±",rate:"اÙÙØ³Ø¨Ø©",releaseAt:"ÙÙØª Ø§ÙØªØØ±Ùر",cashback:"اÙÙ
ÙØ§Ùأة",status:"Ø§ÙØØ§ÙØ©"},wUe={title:"ÙØ§ ØªÙØ¬Ø¯ Ø¯Ø¹ÙØ§Øª بعد",description:"Ø´Ø§Ø±Ù Ø±Ø§Ø¨Ø·Ù ÙØªØ¨Ø¯Ø£ ÙÙ ÙØ³Ø¨ اÙÙ
ÙØ§Ùآت."},kUe={inviteeSignedUp:"سجÙ٠اÙÙ
دعÙÙ Ø¨ÙØ¬Ø§Ø",youSignedUp:"سجÙÙØª Ø¨ÙØ¬Ø§Ø عبر Ø¯Ø¹ÙØ©",inviteePaid:"Ø£ÙÙ٠اÙÙ
دعÙÙ Ø¨ÙØ¬Ø§Ø",youPaid:"Ø£ÙÙÙØª Ø¨ÙØ¬Ø§Ø Ø¨ØµÙØªÙ Ù
دعÙÙÙØ§"},CUe={frozen:"Ù
ÙØ¬Ù
ÙÙØ¯",released:"Ù
ÙØØ±ÙÙØ±",cancelled:"Ù
ÙØºØ§Ø©",partially_reversed:"Ù
Ø³ØªØ±Ø¯ÙØ© جزئÙÙÙØ§",reversed:"Ù
Ø³ØªØ±Ø¯ÙØ©",failed:"ÙØ§Ø´ÙØ©",skipped:"Ù
ØªØ®Ø·ÙØ§Ø©"},SUe={title:q5e,description:H5e,error:V5e,yourLink:K5e,shareVia:G5e,wechatCopied:W5e,copy:Y5e,copied:Q5e,wechat:X5e,x:Z5e,telegram:J5e,reddit:eUe,linkedin:tUe,whatsapp:nUe,email:aUe,facebook:oUe,share:sUe,offer:rUe,releaseDelay:iUe,role:lUe,roleOffer:cUe,policy:dUe,totalEarned:uUe,availableEarned:mUe,frozenEarned:pUe,invited:fUe,active:gUe,availableReceived:hUe,frozenReceived:yUe,cancelledReversed:vUe,peopleYouInvited:bUe,history:xUe,col:$Ue,empty:wUe,event:kUe,status:CUe},AUe="Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª",TUe="إدارة ØªÙØ¶ÙÙØ§Øª Ø§ÙØØ³Ø§Ø¨ ÙØ§Ùإعدادات Ø§ÙØ§ÙØªØ±Ø§Ø¶ÙØ© ÙÙÙØØ© Ø§ÙØªØÙÙ
.",RUe="تÙ
تسجÙÙ Ø§ÙØ¯Ø®Ù٠باسÙ
{{email}}",PUe="اسÙ
Ø§ÙØ¹Ø±Ø¶",_Ue="اÙÙØºØ©",jUe="اÙÙ
ÙØ·ÙØ© Ø§ÙØ²Ù
ÙÙØ©",NUe="ÙØ´Ù تØÙ
Ù٠اÙÙ
ÙÙ Ø§ÙØ´Ø®ØµÙ",DUe="ÙØ´Ù Ø§ÙØÙØ¸",MUe="تجاÙÙ Ø§ÙØªØºÙÙØ±Ø§ØªØ",EUe="ÙØ¯Ù٠تغÙÙØ±Ø§Øª ØºÙØ± Ù
ØÙÙØ¸Ø©. ستÙÙÙ
٠إذا غادرت Ø§ÙØ¢Ù.",IUe="تجاÙÙ",OUe="Ù
تابعة Ø§ÙØªØØ±Ùر",LUe={title:AUe,description:TUe,signedInAs:RUe,displayName:PUe,locale:_Ue,timezone:jUe,failedLoad:NUe,failedSave:DUe,discardTitle:MUe,discardMessage:EUe,discardConfirm:IUe,keepEditing:OUe},UUe="جدار اÙÙ
ÙØ§Ù
",BUe="شار٠OneHop Ù
ع جÙ
ÙÙØ±Ù ÙØ§Ùسب Ø±ØµÙØ¯Ùا ØªØ¬Ø±ÙØ¨ÙÙØ§. ÙØ±Ø§Ø¬Ø¹ ÙÙ Ø·ÙØ¨ ÙØ¯ÙÙÙØ§.",FUe="رابط Ù
ÙØ´ÙرÙ",zUe="https://â¦",qUe="إرساÙ",HUe="تÙ
Ø§ÙØ¥Ø±Ø³Ø§Ù â Ø³ÙØ±Ø§Ø¬Ø¹Ù ÙØ±ÙØ¨ÙØ§.",VUe="Ø§ÙØ±Ùابط اÙÙ
ÙØ¨ÙÙØ©: {{hosts}}",KUe="Ø³Ø¨Ù Ø±ÙØ¶Ù: {{reason}}. صØÙØÙ ÙØ£Ø¹Ø¯ Ø§ÙØ¥Ø±Ø³Ø§Ù.",GUe={pending:"ÙÙØ¯ اÙÙ
راجعة",approved:"تÙ
Ø§ÙØ¥Ùداع",rejected:"Ù
رÙÙØ¶",active:"سارÙ"},WUe={title:"ÙØ§ ØªÙØ¬Ø¯ Ù
ÙØ§Ù
ØØ§ÙÙÙØ§",description:"عد ÙØ±ÙØ¨ÙØ§ â ÙÙØ¸ÙÙ
ÙØ°Ù Ø§ÙØÙ
ÙØ§Øª بشÙÙ Ø¯ÙØ±Ù."},YUe={x_quote:{title:"Ø§ÙØªØ¨Ø³ Ù
ÙØ´ÙØ±ÙØ§ عÙÙ X",description:"Ø§ÙØªØ¨Ø³ اÙÙ
ÙØ´Ùر اÙÙ
Ø«Ø¨ÙØª ÙØØ³Ø§Ø¨ @OneHopAI ÙØ£Ø¶Ù رأÙÙ Ø§ÙØ®Ø§Øµ.",rules:["ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عÙ
ر ØØ³Ø§Ø¨Ù عÙÙ X ستة Ø£Ø´ÙØ± عÙÙ Ø§ÙØ£ÙÙ ÙØ£Ù ÙØ¶Ù
10 Ù
تابعÙÙ Ø£Ù Ø£ÙØ«Ø±.","أرس٠رابط Ù
ÙØ´Ùر Ø§ÙØ§Ùتباس Ø§ÙØ®Ø§Øµ Ø¨ÙØ ÙØ§ رابط اÙÙ
ÙØ´Ùر Ø§ÙØ£ØµÙÙ.","ÙØµÙ Ø§ÙØ±ØµÙد Ø®ÙØ§Ù ساعتÙÙ Ù
٠اÙÙ
ÙØ§ÙÙØ©."]},youtube_tutorial:{title:"Ø§ÙØ´Ø± شرØÙا عÙÙ YouTube",description:"ÙÙØ¯ÙÙ Ù
دت٠6 Ø¯ÙØ§Ø¦Ù Ø£Ù Ø£ÙØ«Ø± ÙÙØ¶Ø ÙÙ٠ربطت OneHop بÙÙÙÙÙ Ø§ÙØ®Ø§Øµ.",rules:["أرس٠رابط اÙÙÙØ¯Ù٠بعد ÙØ´Ø±Ù.","ÙØ¬Ø¨ أ٠تضÙ
ÙÙØ§ØªÙ عÙÙ YouTube 50 Ù
شترÙÙØ§ Ø£Ù Ø£ÙØ«Ø±.","Ù
رة ÙØ§ØØ¯Ø© ÙÙÙ ØØ³Ø§Ø¨.","ÙØµÙ Ø§ÙØ±ØµÙد Ø®ÙØ§Ù ساعتÙÙ Ù
٠اÙÙ
ÙØ§ÙÙØ©."]},short_video:{title:"Ø§ÙØ´Ø± ÙÙØ¯ÙÙ ÙØµÙØ±ÙØ§",description:"Ù
ÙØ·Ø¹ ÙØµÙر Ù
دت٠40 ثاÙÙØ© Ø£Ù Ø£ÙØ«Ø± عÙÙ TikTok Ø£Ù YouTube ÙØ°Ùر إعداد٠ÙÙ OneHop.",rules:["أرس٠رابط اÙÙÙØ¯Ù٠بعد ÙØ´Ø±Ù.","ÙØµÙ Ø§ÙØ±ØµÙد Ø®ÙØ§Ù ساعتÙÙ Ù
٠اÙÙ
ÙØ§ÙÙØ©."]},github_readme:{title:"أض٠OneHop Ø¥ÙÙ Ù
ÙÙ README عÙÙ GitHub",description:"Ø£Ø¶Ù Ø°ÙØ±Ùا ÙÙ OneHop ÙÙ Ù
ÙÙ README ÙØ£ØØ¯ Ù
Ø³ØªÙØ¯Ø¹Ø§ØªÙØ ÙØ³ØªØØµÙ عÙÙ 15% إضاÙÙØ© Ù
ع ÙÙ Ø´ØÙ ÙØ§ØÙ.",rules:["أرس٠رابط اÙÙ
Ø³ØªÙØ¯Ø¹ بعد ÙØ´Ø± Ù
ÙÙ README.","ÙØ°Ù Ù
ÙØ²Ø© دائÙ
Ø© ÙÙÙØ³Øª ÙÙ
رة ÙØ§ØØ¯Ø©: ÙÙØ
769·Ø¨ÙÙÙ Ù
ع ÙÙ Ø´ØÙ ÙØ§ØÙ Ø§ÙØ£Ø¹Ù٠بÙÙ Ù
ÙØ§ÙØ£ØªÙØ§ اÙÙÙØ§Ø³ÙØ© ÙÙØ³Ø¨ØªÙ Ø§ÙØ¨Ø§Ùغة 15%.","اÙÙØµ اÙÙØ§Ø¨Ù ÙÙÙØ³Ø® Ù
ÙØ¬Ùد Ø£Ø¯ÙØ§Ù."]}},QUe={load:"ØªØ¹Ø°ÙØ± تØÙ
Ù٠جدار اÙÙ
ÙØ§Ù
",generic:"ØªØ¹Ø°ÙØ± Ø§ÙØ¥Ø±Ø³Ø§Ù",urlRequired:"Ø§ÙØµÙ رابط Ù
ÙØ´Ùر٠أÙÙÙØ§.",urlTooLong:"ÙØ°Ø§ Ø§ÙØ±Ø§Ø¨Ø· Ø·ÙÙÙ Ø¬Ø¯ÙØ§.",urlMalformed:"ÙØ§ ÙØ¨Ø¯Ù ÙØ°Ø§ Ø±Ø§Ø¨Ø·ÙØ§ ØµØ§ÙØÙØ§.",hostNotAllowed:"ØªÙØ¨Ù ÙØ°Ù اÙÙ
ÙÙ
Ø© Ø±ÙØ§Ø¨Ø· اÙÙ
ÙØµØ§Øª اÙÙ
ذÙÙØ±Ø© Ø£Ø¹ÙØ§Ù ÙÙØ·.",notAPost:"ضع رابط اÙÙ
ÙØ´Ùر أ٠اÙÙÙØ¯Ù٠اÙÙ
ØØ¯Ø¯Ø ÙØ§ رابط اÙÙ
ÙÙ Ø§ÙØ´Ø®ØµÙ Ø£Ù Ø§ÙØµÙØØ© Ø§ÙØ±Ø¦ÙØ³ÙØ©.",alreadySubmitted:"ÙÙØ¯ Ø£Ø±Ø³ÙØª ÙØ°Ù اÙÙ
ÙÙ
Ø© Ù
Ù ÙØ¨Ù.",notAvailable:"ÙØ°Ù اÙÙ
ÙÙ
Ø© ØºÙØ± Ù
ØªØ§ØØ© ØØ§ÙÙÙØ§.",busy:"Ø¨ÙØºÙا سعة اÙÙ
راجعة ÙÙØ°Ø§ اÙÙÙÙ
. ØØ§ÙÙ Ù
Ø¬Ø¯Ø¯ÙØ§ ØºØ¯ÙØ§.",emailUnverified:"ÙØ«ÙÙ Ø¨Ø±ÙØ¯Ù Ø§ÙØ¥ÙÙØªØ±ÙÙ٠أÙÙÙØ§.",accountTooNew:"ØØ³Ø§Ø¨Ù ÙÙØ³ ÙØ¯ÙÙ
ÙØ§ بÙ
ا ÙÙÙÙ ÙØ°Ù٠بعد.",riskFlagged:"ÙØ§ ÙÙ
ÙÙ ÙÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨ اÙÙ
Ø´Ø§Ø±ÙØ© ØØ§ÙÙÙØ§. ØªÙØ§ØµÙ Ù
ع Ø§ÙØ¯Ø¹Ù
إذا ÙÙØª تر٠أ٠ذÙ٠خطأ.",accountInactive:"ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨ ØºÙØ± ÙØ´Ø·.",deviceAlreadyClaimed:"Ø´Ø§Ø±Ù ØØ³Ø§Ø¨ آخر عÙÙ ÙØ°Ø§ Ø§ÙØ¬Ùاز باÙÙØ¹Ù."},XUe="Ø´ÙØ±Ùا ÙÙ [OneHop]({{url}}) عÙÙ Ø±Ø¹Ø§ÙØ© ÙØ°Ø§ اÙÙ
Ø´Ø±ÙØ¹! ÙÙ
ÙØÙ OneHop Ù
ÙØªØ§Ø API ÙØ§ØØ¯Ùا Ù
ØªÙØ§ÙÙÙØ§ Ù
ع OpenAI ÙÙÙØµÙ٠إÙÙ Ù
ئات اÙÙÙ
اذج Ø§ÙØ±Ø§Ø¦Ø¯Ø© â GPT ÙClaude ÙGemini ÙDeepSeek ÙKimi ÙQwen. ÙØ§ ØØ§Ø¬Ø© ÙØ¥Ø¯Ø§Ø±Ø© ØØ³Ø§Ø¨Ø§Øª عدة Ù
زÙÙØ¯ÙÙ ÙÙØ§ ÙØªØ¹Ø¯ÙÙ Ø§ÙØ´ÙÙØ±Ø© Ø¹ÙØ¯ تبدÙ٠اÙÙÙ
ÙØ°Ø¬Ø ÙØªØ¯Ùع ÙÙØ· Ù
ÙØ§Ø¨Ù Ù
ا تستخدÙ
Ù. â {{domain}}",ZUe="Ø§ÙØ³Ø® ÙØ°Ø§ اÙÙØµ",JUe={title:UUe,description:BUe,urlLabel:FUe,urlPlaceholder:zUe,submit:qUe,submitted:HUe,allowedHosts:VUe,rejectedHint:KUe,status:GUe,empty:WUe,item:YUe,error:QUe,sponsorBlurb:XUe,copyBlurb:ZUe},eBe="Ø§ÙØ¯Ø±Ø¯Ø´Ø© اÙÙ
باشرة",tBe="ØªØ°Ø§ÙØ± Ø§ÙØ¯Ø¹Ù
",nBe="Ø§ÙØªØ ØªØ°ÙØ±Ø© ÙØ³Ùرد عÙÙÙ ÙØ±ÙÙÙØ§ ÙÙ Ø£ÙØ±Ø¨ ÙÙØª.",aBe="ØªØ°ÙØ±Ø© Ø¬Ø¯ÙØ¯Ø©",oBe={subject:"اÙÙ
ÙØ¶Ùع",category:"اÙÙÙØ¹",status:"Ø§ÙØØ§ÙØ©",updated:"آخر ØªØØ¯ÙØ«",user:"User"},sBe={billing:"اÙÙÙØªØ±Ø©",technical:"تÙÙÙ",account:"Ø§ÙØØ³Ø§Ø¨",other:"أخرÙ"},rBe={open:"Ù
ÙØªÙØØ©",pending:"Ø¨Ø§ÙØªØ¸Ø§Ø± Ø§ÙØ±Ø¯",resolved:"تÙ
Ø§ÙØÙ",closed:"Ù
غÙÙØ©"},iBe={allStatuses:"ÙÙ Ø§ÙØØ§ÙØ§Øª",allCategories:"All categories",search:"Search email or subject"},lBe={subject:"اÙÙ
ÙØ¶Ùع",subjectPlaceholder:"ص٠اÙÙ
Ø´ÙÙØ© باختصار",category:"اÙÙÙØ¹",message:"Ø§ÙØ±Ø³Ø§ÙØ©",messagePlaceholder:"Ø£Ø®Ø¨Ø±ÙØ§ بÙ
ا ÙØØ¯Ø«â¦",attachments:"اÙÙ
رÙÙØ§Øª",addAttachment:"Ø¥Ø¶Ø§ÙØ© Ù
ÙÙ",submit:"Ø¥Ø±Ø³Ø§Ù Ø§ÙØªØ°Ùرة",cancel:"Ø¥ÙØºØ§Ø¡"},cBe={you:"Ø£ÙØª",support:"Ø§ÙØ¯Ø¹Ù
",system:"اÙÙØ¸Ø§Ù
",replyPlaceholder:"Ø§ÙØªØ¨ Ø±Ø¯ÙØ§â¦",send:"إرساÙ",closedNotice:"ÙØ°Ù Ø§ÙØªØ°Ùرة Ù
غÙÙØ©. Ø§ÙØªØ ØªØ°ÙØ±Ø© Ø¬Ø¯ÙØ¯Ø© إذا ÙÙØª ÙØ§ ØªØ²Ø§Ù Ø¨ØØ§Ø¬Ø© Ø¥ÙÙ Ù
ساعدة.",sendHint:"اضغط â/Ctrl + Enter ÙÙØ¥Ø±Ø³Ø§Ù",back:"Ø§ÙØ¹Ùدة Ø¥ÙÙ Ø§ÙØªØ°Ø§Ùر",systemStatus:{open:"Ø£ÙØ¹Ùد ÙØªØ Ø§ÙØªØ°Ùرة",pending:"تÙ
ÙØ¶Ø¹ Ø§ÙØªØ°Ùرة Ø¨Ø§ÙØªØ¸Ø§Ø± ردÙ",resolved:"تÙ
ÙØ¶Ø¹ Ø¹ÙØ§Ù
Ø© تÙ
Ø§ÙØÙ Ø¹ÙÙ Ø§ÙØªØ°Ùرة",closed:"تÙ
Ø¥ØºÙØ§Ù Ø§ÙØªØ°Ùرة"}},dBe={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},uBe="تØÙ
Ù٠اÙÙ
Ø²ÙØ¯",mBe={created:"تÙ
Ø¥Ø±Ø³Ø§Ù Ø§ÙØªØ°Ùرة",replied:"تÙ
Ø¥Ø±Ø³Ø§Ù Ø§ÙØ±Ø¯",statusUpdated:"Status updated",error:"ØØ¯Ø« خطأ Ù
Ø§Ø ØØ§ÙÙ Ù
رة أخرÙ"},pBe="ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙÙ Ø§ÙØªØ°Ùرة أ٠تÙ
ت Ø¥Ø²Ø§ÙØªÙا.",fBe={title:"ÙØ§ ØªÙØ¬Ø¯ ØªØ°Ø§ÙØ± بعد",body:"ÙÙ ÙØ§Ø¬Ùت Ù
Ø´ÙÙØ©Ø Ø§ÙØªØ ØªØ°ÙØ±Ø© ÙØ³ÙساعدÙ.",cta:"Ø§ÙØªØ Ø£ÙÙ ØªØ°ÙØ±Ø©"},gBe={liveChat:eBe,title:tBe,subtitle:nBe,newTicket:aBe,columns:oBe,category:sBe,status:rBe,filters:iBe,form:lBe,thread:cBe,admin:dBe,loadMore:uBe,toast:mBe,notFound:pBe,empty:fBe},hBe="Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",yBe="Ø§ÙØ±ØµÙد ÙØ³Ø±Ø¹Ø© Ø§ÙØ§Ø³ØªÙÙØ§Ù ÙØ£ÙÙ ØªØ°ÙØ¨ ÙÙÙØ§ØªÙ.",vBe="اÙÙØ´Ø§Ø·",bBe="ÙØ§ ÙÙØ¬Ø¯ ÙØ´Ø§Ø· ÙÙ ÙØ°Ø§ اÙÙØ·Ø§Ù",xBe="ØªÙØµÙÙ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",$Be="ØØ³Ø¨ API key",wBe="ØØ³Ø¨ اÙÙÙ
ÙØ°Ø¬",kBe="ØØ³Ø¨ ÙÙØ¹ token",CBe="ÙØ§ ØªÙØ¬Ø¯ Ø¨ÙØ§Ùات",SBe="ÙØ§ ÙÙØ¬Ø¯ اØ
769³ØªØ®Ø¯Ø§Ù
ÙÙ ÙØ°Ø§ اÙÙØ·Ø§Ù بعد.",ABe="باÙÙ
Ø¹Ø¯Ù Ø§ÙØØ§ÙÙØ ÙÙÙÙ Ø§ÙØ±ØµÙد ÙÙ
دة {{days}} ÙÙÙ
ÙØ§ ØªÙØ±ÙØ¨ÙØ§ (ØÙاÙÙ {{rate}}/ÙÙÙ
).",TBe="إخراج",RBe="Ø°Ø§ÙØ±Ø© Ù
Ø¤ÙØªØ©",PBe={tokens:"Tokens",requests:"Ø§ÙØ·Ùبات",cost:"Ø§ÙØªÙÙÙØ©"},_Be="أخرÙ",jBe="Ø·ÙØ¨",NBe="tok",DBe="Ø¬Ø§Ø±Ù Ø§ÙØªØØ¯ÙØ«â¦",MBe="ÙØ§ ØªÙØ¬Ø¯ Ø¨ÙØ§Ùات",EBe="Ø£Ø±Ø³Ù Ø·ÙØ¨Ùا ÙØ¨Ø¯Ø¡ تجÙ
ÙØ¹ Ø§ÙØ¨ÙØ§ÙØ§Øª.",IBe="Ø£ÙÙ
API keys",OBe="Ø´ØÙ",LBe={title:"ØªØ¹Ø°ÙØ± تØÙ
ÙÙ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
"},UBe={firstToken:"Ø£ÙÙ token",latency:"Ù
ØªÙØ³Ø· اÙÙÙ
ÙÙ",requests:"Ø§ÙØ·Ùبات",spend:"Ø§ÙØ§Ø³ØªÙÙØ§Ù",spendSub:"Ù
ÙÙØªØ± ÙÙ ÙØ°Ù اÙÙØªØ±Ø©",successRate:"{{rate}}% ÙØ¬Ø§Ø",tokens:"Tokens",textDuration:"ÙØµ",mediaDuration:"ØµÙØ±Ø©/ÙÙØ¯ÙÙ",cacheHit:"{{rate}}% Ù
Ù Ø§ÙØ°Ø§Ùرة اÙÙ
Ø¤ÙØªØ©",projected:"â {{amount}}/Ø´ÙØ±",vsPrevious:"Ù
ÙØ§Ø±ÙØ© باÙÙØªØ±Ø© Ø§ÙØ³Ø§Ø¨ÙØ©"},BBe={activeDays:"Ø§ÙØ£ÙاÙ
اÙÙØ´Ø·Ø©",longestStreak:"أطÙÙ Ø³ÙØ³ÙØ© Ù
ØªÙØ§ØµÙØ©",daysValue:"{{n}} ÙÙÙ
ÙØ§",totalSpend:"إجÙ
اÙÙ ÙØ°Ù اÙÙØªØ±Ø©",peakDay:"Ø£ÙØ«Ø± Ø§ÙØ£ÙاÙ
ÙØ´Ø§Ø·Ùا"},FBe={all:"Ù٠اÙÙÙØª",custom:"Ù
خصص",last1h:"آخر ساعة",last30d:"آخر 30 ÙÙÙ
ÙØ§",last7d:"آخر 7 Ø£ÙØ§Ù
",thisMonth:"ÙØ°Ø§ Ø§ÙØ´Ùر",today:"اÙÙÙÙ
",yesterday:"Ø£Ù
س",byMonth:"ØØ³Ø¨ Ø§ÙØ´Ùر"},zBe={failed:"ÙØ´Ù",success:"ÙØ¬Ø§Ø"},qBe={cacheRead:"ÙØ±Ø§Ø¡Ø© cache",cacheWrite:"ÙØªØ§Ø¨Ø© cache",cacheWrite1h:"ÙØªØ§Ø¨Ø© cache 1h",cacheWrite5m:"ÙØªØ§Ø¨Ø© cache 5m",completion:"إخراج",prompt:"إدخاÙ"},HBe={body:"Ø£Ø±Ø³Ù Ø·ÙØ¨Ùا Ù
Ù Ø§ÙØ·Ø±ÙÙØ© Ø£Ù Ø§ÙØªØ playground â Ø³ÙØ¸ÙØ± Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
ÙÙØ§ Ø®ÙØ§Ù Ø«ÙØ§ÙÙ.",openPlayground:"ÙØªØ playground",title:"key Ø¬Ø§ÙØ²"},VBe={body:"Ø£ÙØ´Ø¦ Ø£ÙÙ API keyØ ÙÙØ¬ÙÙ ÙÙ Ø§ÙØ·Ùبات عبر URL ÙØ§ØØ¯Ø Ø«Ù
Ø³ÙØ¸Ùر Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
ÙÙØ§.",createKey:"Ø¥ÙØ´Ø§Ø¡ API key",title:"Ù
Ø±ØØ¨Ùا ب٠ÙÙ OneHop",tryPlayground:"Ø¬Ø±ÙØ¨ playground"},KBe="ØªØØ¯ÙØ«",GBe="{{count}} Ø·ÙØ¨ ÙØ§Ø¬Ø Ù٠عاÙ
Ù Ø§ÙØªØµÙÙØ© Ø§ÙØØ§ÙÙ",WBe="إجÙ
اÙÙ tokens",YBe="إدخا٠{{input}} / إخراج {{output}}",QBe="Credit اÙÙ
ÙÙØªØ±",XBe="{{cost}} تÙÙÙØ© upstream اÙÙØ¹ÙÙØ©",ZBe="Ù
ØªÙØ³Ø· اÙÙÙ
ÙÙ",JBe="Ø£ÙÙ token {{duration}}",e6e="ÙØ´Ø§Ø· 30 ÙÙÙ
ÙØ§",t6e="Ø§ÙØ·Ùبات اÙÙØ§Ø¬ØØ© ÙØØ¬Ù
token Ù credit اÙÙ
ÙÙØªØ±.",n6e="جار تØÙ
ÙÙ Ø§ØªØ¬Ø§Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",a6e="ÙØ§ ÙÙØ¬Ø¯ اتجا٠استخداÙ
",o6e="ÙØ¸Ùر Ø§ØªØ¬Ø§Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
بعد Ø§ÙØ·Ùبات اÙÙØ§Ø¬ØØ©.",s6e="Ø£ÙÙ
اÙÙÙ
اذج",r6e="Credit اÙÙ
ÙÙØªØ± ØØ³Ø¨ اÙÙÙ
ÙØ°Ø¬ Ø®ÙØ§Ù آخر 30 ÙÙÙ
ÙØ§.",i6e="ÙØ§ ÙÙØ¬Ø¯ استخداÙ
ÙÙÙÙ
اذج بعد",l6e="ÙØ¸Ùر ØªÙØµÙ٠اÙÙÙ
اذج بعد Ø§ÙØ·Ùبات اÙÙØ§Ø¬ØØ©.",c6e="اÙÙÙ
ÙØ°Ø¬",d6e="Ù٠اÙÙÙ
اذج",u6e="Ø§ÙØØ§ÙØ©",m6e="Ø§ÙØ¨Ø±ÙتÙÙÙÙ",p6e="Ø§ÙØµÙÙÙ",f6e="إعادة ضبط",g6e="Ø³Ø¬ÙØ§Øª Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",h6e="API key",y6e="Endpoint",v6e="اÙÙÙØ¹",b6e="Tokens",x6e="Ø§ÙØªÙÙÙØ©",$6e="اÙÙ
دة",w6e="اÙÙÙØª",k6e="User-Agent",C6e="Ø§ÙØªÙاصÙÙ",S6e="ØªÙØ§ØµÙÙ Ø§ÙØ·Ùب",A6e="ØªÙØ§ØµÙÙ Ø³Ø¬Ù Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
Ùmetadata اÙÙÙØªØ±Ø©.",T6e="Ù
عرÙÙ Ø§ÙØ·Ùب",R6e="Ø§ÙØ¹Ù
ÙÙØ©",P6e="Tokens Ø§ÙØ¥Ø¯Ø®Ø§Ù",_6e="Tokens Ø§ÙØ¥Ø®Ø±Ø§Ø¬",j6e="Tokens ÙØ±Ø§Ø¡Ø© cache",N6e="Tokens ÙØªØ§Ø¨Ø© cache",D6e="تÙÙÙØ© Ø§ÙØ¥Ø¯Ø®Ø§Ù",M6e="تÙÙÙØ© Ø§ÙØ¥Ø®Ø±Ø§Ø¬",E6e="تÙÙÙØ© ÙØ±Ø§Ø¡Ø© cache",I6e="تÙÙÙØ© ÙØªØ§Ø¨Ø© cache",O6e="رÙ
ز Ø§ÙØ®Ø·Ø£",L6e="Ø±Ø³Ø§ÙØ© Ø§ÙØ®Ø·Ø£",U6e="ØºÙØ± Ù
ÙØ¬Ùد.",B6e="credit",F6e="Ø§ÙØ¥Ø¬Ù
اÙÙ {{count}}",z6e="جار تØÙ
ÙÙ Ø³Ø¬ÙØ§Øª Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù
",q6e="ÙØ§ ØªÙØ¬Ø¯ Ø³Ø¬ÙØ§Øª استخداÙ
",H6e="Ø¬Ø±ÙØ¨ Ù
جÙ
ÙØ¹Ø© تصÙÙØ© Ù
ختÙÙØ©.",V6e="ØªØ¸ÙØ± Ø§ÙØ³Ø¬Ùات Ø¹ÙØ¯Ù
ا تÙ
ر Ø§ÙØ·Ùبات عبر API keys Ø§ÙØ®Ø§ØµØ© بÙ.",K6e="Ø§ÙØµÙØØ© {{page}} · عرض {{shown}} Ù
Ù {{total}} سج٠Ù
طابÙ",G6e="Ø§ÙØ³Ø§Ø¨Ù",W6e="Ø§ÙØªØ§ÙÙ",Y6e="Credit",Q6e="Tokens",X6e="Ø§ÙØ·Ùبات",Z6e={time:"اÙÙÙØª",apiKey:"API Key",model:"اÙÙÙ
ÙØ°Ø¬",reasoningEffort:"Ø¬ÙØ¯ Ø§ÙØ§Ø³ØªØ¯ÙاÙ",endpoint:"Endpoint",type:"اÙÙÙØ¹",billingMode:"ÙØ¶Ø¹ اÙÙÙØªØ±Ø©",inputTokens:"Tokens Ø§ÙØ¥Ø¯Ø®Ø§Ù",outputTokens:"Tokens Ø§ÙØ¥Ø®Ø±Ø§Ø¬",cac
769heReadTokens:"Tokens ÙØ±Ø§Ø¡Ø© Cache",cacheWriteTokens:"Tokens ÙØªØ§Ø¨Ø© Cache",totalTokens:"إج٠اÙÙ Tokens",billedCredit:"Credit اÙÙ ÙÙØªØ±",firstTokenMs:"Ø£ÙÙ Token Ms",durationMs:"اÙ٠دة Ms",status:"Ø§ÙØØ§ÙØ©",userAgent:"User-Agent"},J6e={mon:"Ø§ÙØ¥Ø«ÙÙÙ",wed:"Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡",fri:"Ø§ÙØ¬Ù عة"},e8e="Ø£ÙÙ",t8e="Ø£ÙØ«Ø±",n8e={title:hBe,description:yBe,activity:vBe,activityEmpty:bBe,breakdown:xBe,byApiKey:$Be,byModel:wBe,byTokenType:kBe,chartEmpty:CBe,chartEmptyHint:SBe,burnRate:ABe,in:"إدخاÙ",out:TBe,cache:RBe,metric:PBe,other:_Be,req:jBe,tok:NBe,refreshing:DBe,topEmpty:MBe,topEmptyHint:EBe,topKeys:IBe,topUp:OBe,error:LBe,kpi:UBe,stat:BBe,range:FBe,requests:zBe,tokenType:qBe,noRequests:HBe,welcome:VBe,refresh:KBe,successfulFilter:GBe,totalTokens:WBe,inOut:YBe,billedCredit:QBe,upstreamActualCost:XBe,avgLatency:ZBe,firstToken:JBe,activityTitle:e6e,activityDescription:t6e,loadingTrend:n6e,noUsageTrend:a6e,trendDescription:o6e,topModels:s6e,topModelsDescription:r6e,noModelUsage:i6e,noModelUsageDescription:l6e,model:c6e,allModels:d6e,status:u6e,protocol:m6e,rows:p6e,reset:f6e,tableLabel:g6e,apiKey:h6e,endpoint:y6e,type:v6e,tokens:b6e,cost:x6e,duration:$6e,time:w6e,userAgent:k6e,details:C6e,requestDetail:S6e,detailDescription:A6e,requestId:T6e,operation:R6e,inputTokens:P6e,outputTokens:_6e,cacheReadTokens:j6e,cacheWriteTokens:N6e,inputCost:D6e,outputCost:M6e,cacheReadCost:E6e,cacheWriteCost:I6e,errorCode:O6e,errorMessage:L6e,notFound:U6e,creditSuffix:B6e,total:F6e,loadingRecords:z6e,noRecords:q6e,differentFilters:H6e,recordsEmpty:V6e,pageSummary:K6e,previous:G6e,next:W6e,chartCredit:Y6e,chartTokens:Q6e,chartRequests:X6e,csv:Z6e,weekday:J6e,activityLess:e8e,activityMore:t8e},a8e="Signup access",o8e="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",s8e="Signup access allowlist",r8e="No allowlist entries",i8e="Email / domain",l8e="Note",c8e="Status",d8e="Registration",u8e="Expires",m8e="Invites",p8e="Updated",f8e="Action",g8e="Add",h8e="Bulk add",y8e="Edit",v8e="Save",b8e="Invite",x8e="Restore",$8e="Remove",w8e="Add signup access",k8e="Edit {{email}}",C8e="Bulk add signup access",S8e="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",A8e="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",T8e="Email or domain",R8e="[email protected] or @company.com",P8e="Use @company.com to approve an entire domain.",_8e="Note (optional)",j8e="e.g. founding team",N8e="Expiry (optional)",D8e="Leave empty for no expiry. Expired entries no longer allow new signups.",M8e="Emails / domains",E8e=`[email protected] 770[email protected] 771@partner.com`,I8e="Search",O8e="Search email or domain",L8e="Status",U8e="Access check",B8e="[email protected]",F8e="Check",z8e="Allowed",q8e="Denied",H8e={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},V8e="Registered",K8e="Not registered",G8e="Admin",W8e="Domain rule",Y8e="Never",Q8e="Added to signup access.",X8e="Signup access updated.",Z8e="Added {{count}} entries.",J8e="Invite sent.",eFe="Entry restored.",tFe="Removed from signup access.",nFe="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",aFe={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},oFe={title:a8e,description:o8e,label:s8e,empty:r8e,email:i8e,note:l8e,status:c8e,registration:d8e,expiresAt:u8e,invites:m8e,updatedAt:p8e,action:f8e,add:g8e,bulkAdd:h8e,edit:y8e,save:v8e,invite:b8e,restore:x8e,revoke:$8e,newTitle:w8e,editTitle:k8e,bulkTitle:C8e,formDescription:S8e,bulkDescription:A8e,emailLabel:T8e,emailPlaceholder:R8e,emailHint:P8e,noteLabel:_8e,notePlaceholder:j8e,expiresAtLabel:N8e,expiresAtHint:D8e,bulkEntriesLabel:M8e,bulkEntriesPlaceholder:E8e,search:I8e,searchPlaceholder:O8e,statusFilter:L8e,checkLabel:U8e,checkPlaceholder:B8e,check:F8e,checkAllowed:z8e,checkDenied:q8e,checkReasons:H8e,registered:V8e,notRegistered:K8e,adminAllowed:G8e,domainRule:W8e,never:Y8e,added:Q8e,updated:X8e,bulkAdded:Z8e,invited:J8e,restored:eFe,revoked:tFe,confirmRevoke:n
771Fe,domainRules:aFe},sFe="Ops Billing",rFe="Payments, wallets and refunds across all users.",iFe={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},lFe="User email",cFe="Search by email...",dFe="Created",uFe="Created",mFe="Amount (USD)",pFe="Min",fFe="Max",gFe="Refunds",hFe="No refunds",yFe="Refund",vFe="Type",bFe="Full refund",xFe="Partial refund",$Fe="Original payment",wFe="Wallets",kFe="Wallet",CFe="User",SFe="Total",AFe="Purchased",TFe="Bonus",RFe="No wallets",PFe="Payments",_Fe="Payment status",jFe="No payments",NFe="Payment",DFe="Status",MFe="Amount",EFe="Paid",IFe="Refund",OFe="Not refundable (status must be paid)",LFe="View in Stripe Dashboard",UFe="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",BFe="unhealthy",FFe="Refund {{id}}",zFe="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",qFe="Refund amount (USD)",HFe="Max ${{value}}",VFe="Reason",KFe="Rückerstattungsvorschau wird geladenâ¦",GFe="Rückerstattungsvorschau konnte nicht geladen werden. Ohne Vorschau ist keine Rückerstattung möglich.",WFe="Keine erstattungsfähige Transaktion gefunden â diese Zahlung wurde möglicherweise bereits vollständig erstattet.",YFe="Gezahlt",QFe="Bereits erstattet",XFe="Diese Rückerstattung",ZFe="Eingezogenes Guthaben",JFe="Enthält {{amount}} anteilig eingezogenes Coupon-Rabatt-Guthaben",eze="Enthält {{amount}} anteilig eingezogenes zusätzlich gewährtes Guthaben",tze="Bonus widerrufen",nze="Mit dieser Rückerstattung wird der Aktionsbonus von {{amount}} widerrufen.",aze="Rückzahlung über Stripe",oze="Plattformgebühr einbehalten ({{fee}}) â deckt Stripe-Gebühren",sze="Plattformgebühr ({{fee}})",rze="Betrag überschreitet den maximal erstattbaren Betrag {{value}}",ize="Bitte einen gültigen positiven Betrag eingeben",lze="Der Nutzer hat einen Teil des gekauften Guthabens bereits verbraucht. Maximal erstattbar: {{value}}",cze="Diese Zahlung wurde bereits vollständig erstattet",dze="Der Nettobetrag nach Gebühren ist zu gering. Mindestens {{value}} erstatten.",uze="Cancel",mze="Issue refund",pze="Submitting...",fze="Refund submitted",gze="Stripe will return the funds within 1-3 business days. Audit log written.",hze="Refund failed",yze={title:sFe,description:rFe,tabs:iFe,emailFilter:lFe,emailPlaceholder:cFe,created:dFe,createdRange:uFe,amountRange:mFe,amountMin:pFe,amountMax:fFe,refunds:gFe,noRefunds:hFe,refundId:yFe,refundType:vFe,typeRefund:bFe,typePartialRefund:xFe,originalPayment:$Fe,wallets:wFe,wallet:kFe,user:CFe,total:SFe,purchased:AFe,bonus:TFe,noWallets:RFe,payments:PFe,paymentStatus:_Fe,noPayments:jFe,payment:NFe,status:DFe,amount:MFe,paid:EFe,refund:IFe,notRefundable:OFe,viewInStripe:LFe,webhookHealthHint:UFe,unhealthyWebhooks:BFe,refundConfirmTitle:FFe,refundConfirmBody:zFe,refundAmountLabel:qFe,refundMaxHint:HFe,refundReasonLabel:VFe,refundPreviewLoading:KFe,refundPreviewFailed:GFe,refundNoRefundableTx:WFe,refundPaidRow:YFe,refundAlreadyRefundedRow:QFe,refundThisRefundRow:XFe,refundCreditReclaimRow:ZFe,refundCreditCouponNote:JFe,refundCreditExtraNote:eze,refundBonusReverseRow:tze,refundBonusForfeitWarning:nze,refundStripeReturnRow:aze,refundFeeToggle:oze,refundPlatformFeeRow:sze,refundExceedsMax:rze,refundAmountInvalid:ize,refundInsufficientCredit:lze,refundAlreadyFull:cze,refundBelowMin:dze,cancel:uze,confirmRefund:mze,submitting:pze,refundSubmittedTitle:fze,refundSubmittedBody:gze,refundFailedTitle:hze},vze="Campaigns",bze="Audience segments, restricted-model access, model discounts, and targeted credit grants.",xze={mobileLabel:"Kampagnenbereich",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},$ze="Status",wze="Actions",kze="All users",Cze="Always",Sze="No expiry",Aze="Active window",Tze="Leave blank for always-on. Times are end-of-day on the chosen dates.",Rze="Valid from",Pze="Valid to",_ze="Pause",jze="Resume",Nze="Add",Dze="Remove",Mze="Delete",Eze="Clear",Ize="Close",Oze={allKinds:"Alle Typen",segmentKindStatic:"Statisch",segmentKindDynamic:"Dynamisch",grantKindGrant:"Gutsc
771hrift vergeben",grantKindRevoke:"Gutschrift entziehen",allStatuses:"Alle Status",statusActive:"Aktiv",statusPaused:"Pausiert",statusArchived:"Archiviert",statusEnded:"Beendet",statusPending:"Ausstehend",statusProcessing:"In Bearbeitung",statusCompleted:"Abgeschlossen",statusFailed:"Fehlgeschlagen"},Lze={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},Uze={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},Bze={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Fze={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audie
771nce",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},zze={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
7710.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},qze={title:vze,description:bze,tabs:xze,status:$ze,actions:wze,allUsers:kze,always:Cze,noExpiry:Sze,window:Aze,windowHint:Tze,validFrom:Rze,validTo:Pze,pause:_ze,resume:jze,actionAdd:Nze,actionRemove:Dze,actionDelete:Mze,actionClear:Eze,actionClose:Ize,filters:Oze,segments:Lze,access:Uze,discounts:Bze,grants:Fze,recurring:zze},Hze="Announcements",Vze="Banners shown at the top of the marketing site and the console.",Kze="Banners",Gze="Top-of-page banners shown on www and console.",Wze="New Banner",Yze="No banners yet. Create one to show a top-of-page announcement.",Qze="Message",Xze="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",Zze="CTA Label",Jze="CTA Link",e7e="Severity",t7e="Audience",n7e="Starts At",a7e="Ends At",o7e="Dismissible",s7e="Status",r7e="Archive",i7e="Archive this banner? It will no longer be shown to users.",l7e="New Banner",c7e="Edit Banner",d7e="Title",u7e="Type",m7e="Content",p7e="Display type",f7e="Banner",g7e="Modal",h7e="Draft",y7e="Active",v7e="Info",b7e="Warning",x7e="Critical",$7e="Console only",w7e="Public site only",k7e="Both",C7e="Hero image",S7e="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",A7e="Upload",T7e="Uploadingâ¦",R7e="Remove",P7e="Only PNG, JPEG, WebP and GIF images are supported.",_7e="Image must be 5MB or smaller.",j7e="Upload failed, please try again.",N7e="Title",D7e="Body",M7e="Action buttons",E7e="Button label",I7e="Button link",O7e="Style",L7e="Add button",U7e="Remove",B7e="Primary",F7e="Secondary",z7e="Link",q7e="Simplified Chinese (source)",H7e="Fill in Simplified Chinese only, then translate to other languages in one click.",V7e="Translate to all languages",K7e="Translatingâ¦",G7e="Other languages (translated, editable)",W7e="Translated {{ok}} languages",Y7e="{{failed}} languages failed â fill in manually or retry",Q7e="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",X7e="Re-show to users who already dismissed it",Z7e="Fill in the Simplified Chinese body first.",J7e={title:Hze,description:Vze,annTitle:Kze,annDescription:Gze,annNewButton:Wze,annEmpty:Yze,annMessage:Qze,annInlineLinkHint:Xze,annCtaText:Zze,annCtaUrl:Jze,annSeverity:e7e,annAudience:t7e,annStartsAt:n7e,annEndsAt:a7e,annDismissible:o7e,annStatus:s7e,annArchive:r7e,annArchiveConfirm:i7e,annCreateTitle:l7e,annEditTitle:c7e,annColTitle:d7e,annColType:u7e,annColContent:m7e,annDisplayType:p7e,annTypeBanner:f7e,annTypeModal:g7e,annStatusDraft:h7e,annStatusActive:y7e,annSevInfo:v7e,annSevWarning:b7e,annSevCritical:x7e,annAudConsole:$7e,annAudPublic:w7e,annAudAll:k7e,annHeroImage:C7e,annHeroImageHint:S7e,annHeroImageUpload:A7e,annHeroImageUploading:T7e,annHeroImageRemove:R7e,annHeroImageBadType:P7e,annHeroImageTooLarge:_7e,annHeroImageUploadFailed:j7e,annModalTitle:N7e,annBody:D7e,annActions:M7e,annActionLabel:E7e,annActionUrl:I7e,annActionVariant:O7e,annActionAdd:L7e,annActionRemove:U7e,annVariantPrimary:B7e,annVariantSecondary:F7e,annVariantLink:z7e,annSourceLocale:q7e,annSourceHint:H7e,annTranslate:V7e,annTranslating:K7e,annOtherLocales:G7e,annTranslateDone:W7e,annTranslateParti
771al:Y7e,annTranslateStale:Q7e,annBumpRevision:X7e,annTranslateNeedSource:Z7e},eqe="Operations dashboard",tqe="Real-time overview of platform health, usage, and alerts.",nqe="Refresh",aqe="Refreshing",oqe="Updated {{time}}",sqe="Loading dashboard",rqe="Failed to load dashboard",iqe="No data",lqe="No traffic yet",cqe="Video fail rate",dqe="Avg latency",uqe="Error types",mqe="No errors",pqe="Model anomalies",fqe="All models healthy",gqe="Components",hqe="req",yqe="Checkout abandon",vqe="Refunds",bqe="Chargebacks",xqe="First-charge conversion",$qe={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},wqe={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},kqe={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Nur normale Nutzer (ohne markierte)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},Cqe={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},Sqe={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},Aqe={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},Tqe={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},Rqe={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},Pqe={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},_qe={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},jqe={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},Nqe={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},Dqe="{{failed}}/{{total}} jobs",Mqe="{{delta}}pt vs yesterday",Eqe="Low sample ({{n}})",Iqe="Had gateway calls",Oqe="Last 7d cohort · normal users only",Lqe="Refund rate {{rate}}%",Uqe={funnel:"opened {{opened}} · paid {{paid}}"}
771,Bqe={title:eqe,description:tqe,refresh:nqe,refreshing:aqe,lastUpdated:oqe,loading:sqe,failedLoad:rqe,empty:iqe,noTraffic:lqe,videoFailRate:cqe,avgLatency:dqe,errorTypes:uqe,noErrors:mqe,modelAnomalies:pqe,noAnomalies:fqe,components:gqe,req:hqe,abandonRate:yqe,refunds:vqe,chargebacks:bqe,firstChargeConversion:xqe,sections:$qe,leaderboard:wqe,kpi:kqe,revenue:Cqe,orders:Sqe,conversion:Aqe,componentStatus:Tqe,severity:Rqe,health:Pqe,alerts:_qe,alertSettings:jqe,range:Nqe,videoJobsDetail:Dqe,vsYesterdayPt:Mqe,lowSample:Eqe,activeUsersHint:Iqe,conversionCohortHint:Oqe,refundRate:Lqe,checkout:Uqe},Fqe="Loading...",zqe="Admin permission required",qqe="Your account does not have permission to access this administrator page.",Hqe={loading:Fqe,permissionRequired:zqe,permissionDescription:qqe},Vqe="User growth",Kqe="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",Gqe={mobileLabel:"Wachstumsbereich",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Einlösecode",tasks:"Task wall"},Wqe="Coupon batch",Yqe="Promotion rule",Qqe="Count",Xqe="Batch code",Zqe="Creating...",Jqe="Create batch",eHe="{{count}} coupon code created",tHe="{{count}} coupon codes created",nHe="Batch {{code}}",aHe="Copied",oHe="Copy all",sHe="Credit grants",rHe="Source",iHe="Status",lHe="No grants yet",cHe="Coupon redemptions, signup bonuses, and manual grants appear here.",dHe="Time",uHe="User",mHe="Amount",pHe="Signup bonus",fHe="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",gHe="Enable signup credit",hHe="Amount (USD)",yHe="Save signup bonus",vHe="Saving...",bHe="Current amount {{amount}}",xHe="Referral cashback",$He="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",wHe="Enable referral cashback",kHe="Reward tiers",CHe="Add tier",SHe="Recipient",AHe="From day",THe="Until day",RHe="Percent",PHe="Label",_He="Action",jHe="Inviter",NHe="Invitee",DHe="No end",MHe="Remove tier",EHe="Release delay (days)",IHe="Per-topup cap (USD)",OHe="Min topup (USD, blank = none)",LHe="Cashback expiry (days, blank = never)",UHe="Billing-page countdown banner",BHe="Banner title",FHe="Subtitle",zHe="Countdown mode",qHe="Global deadline",HHe="Each invitee's 30-day window",VHe="Ends at",KHe="Save referral settings",GHe="v{{version}}",WHe="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",YHe="Version history",QHe="Version",XHe="Status",ZHe="Reward tiers",JHe="Published",eVe="Superseded",tVe="current",nVe="Top-up discount codes",aVe="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",oVe="Enable discount codes",sVe="Discount type",rVe="Fixed amount off (USD)",iVe="Percentage off (%)",lVe="Amount off (USD)",cVe="Percentage off (0-100)",dVe="Save discount",uVe="Default low-balance alert",mVe="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",pVe="Threshold (USD)",fVe="Save threshold",gVe="Current: {{amount}}",hVe="Generate codes against the discount rule above.",yVe="In effect: {{state}} · {{value}} off",vVe="enabled",bVe="disabled",xVe="Issued codes",$Ve="Pick a batch to see who redeemed each code.",wVe="No batches yet",kVe="Generate a batch above to start tracking redemptions.",CVe="Total",SVe="Redeemed",AVe="Reserved",TVe="Available",RVe="Codes in {{code}}",PVe="No codes in this batch",_Ve="Code",jVe="Redeemed by",NVe="Redeemed at",DVe="Paid",MVe="Discount",EVe="Codes erstellen",IVe="Ein geteilter Code ist ein Code, den viele Nutzer bis zu N-mal einlösen können; eine Charge eindeutiger Codes besteht aus N Einmal-Codes.",OVe="Code-Typ",LVe="Einzelner geteilter Code",UVe="Charge eindeutiger Codes",BVe="Code-Text (leer lassen für zufällig)",FVe="z. B. WELCOME100",zVe="Einlösungen gesamt (N)",qVe="Pro Nutzer",HVe="Läuft ab am (optional)",VVe="optionale Gruppe",KVe="Geteilten Code erstellen",GVe="Geteilter Code erstellt",WVe="Eigenen Rabatt für diese Charge verwenden (sonst die obige Regel)",YVe="Geteilte Codes",QVe="Ein Code, viele Nutzer. Der Einlösungszähler erfasst bezahlte Einlösungen.",XVe="Noch keine geteilten Codes",ZVe="Eingelöst / Limit",JVe="Pro Nutzer",e9e="Läuft ab",t9e="Deaktivieren",n9e="Diesen Code deaktivieren?",a9e="Neue Checkouts werden sofort blockiert. Bereits im Checkout befindliche Bestellungen können noch abgeschlossen werden.",o9e="Code deaktiviert",s9e="CSV",r9e="Status",i9e="E-Mail",l9e={code:"Code",discount:"Rabatt",redeemed:"Eingelöst",cap:"Limit",perUser:"Pro Nutzer",status:"Status",expiresAt:"Läuft ab am",batch:"Charge",createdAt:"Erstellt am",redeemedBy:"Eingelöst von",redeemedAt:"Eingelöst am",paid:"Bezahlt",discountAmount:"Rabatt",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},c9e="Amount",d9e="Bound at",u9e="Counterparty",m9e="Invitee",p9e="Inviter",f9e="Rate",g9e="Released",h9e="Role",y9e="Tier",v9e="Top-up",b9e="Load more",x9e="No referrals under this version",$9e="No cashback under this version",w9e="Referrals",k9e="Referral records",C9e="Cashback records",S9e="Version detail",A9e={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},T9e="Einlösecodes generieren",R9e="Aufladekartenartige Einlösecodes. Nutzer geben den Code auf der Abrechnungsseite ein, und der Nennwert wird direkt gutgeschrieben (Bonus-Guthaben, keine Zahlung erforderlich).",P9e="Chargenname (optional)",_9e="Zum Beispiel: Conf-2026 Bonus",j9e="Anzahl generieren",N9e="Nennwert pro Code (USD)",D9e="Einlösungen pro Konto in dieser Charge (leer = unbegrenzt)",M9e="Unbegrenzt",E9e="Einlösefrist (optional)",I9e="Restrict to models (optional)",O9e="General balance (no restriction)",L9e="{{count}} models selected",U9e="Blank = general balance. Selected models share one earmarked pool.",B9e="Credit validity after redemption (days, blank = never expires)",F9e="never expires",z9e="{{n}} d",q9e="Models",H9e="Validity",V9e="General balance",K9e="Einlösecodes generieren",G9e="Bitte sofort speichern. Später kannst du sie in der Chargenliste auch erneut per âKlartext exportierenâ abrufen.",W9e="Einlösecode-Chargen",Y9e="Klicke auf eine Charge, um die Details einzelner Codes anzuzeigen; mit âKlartext exportierenâ kannst du den Klartext erneut exportieren.",Q9e="Noch keine Einlösecode-Chargen",X9e="Charge",Z9e="Nennwert",J9e="Klartext exportieren",eKe="Diesen bereits eingelösten Code widerrufen?",tKe="Den noch nicht verbrauchten Teil aus dem Guthaben des Nutzers zurückholen; bereits verbrauchtes Guthaben kann nicht zurückgeholt werden.",nKe="Widerrufen",aKe="{{amount}} widerrufen",oKe="Einlösecodes exportiert",sKe="Nicht eingelöste Codes dieser Charge deaktivieren?",rKe="Alle noch nicht eingelösten Codes werden ungültig; bereits eingelöste Codes bleiben unverändert.",iKe="{{n}} Codes deaktiviert",lKe="Bonus % on top-up",cKe="Bonus (%)",dKe="Bonus validity (days, optional)",uKe="blank = never expires",mKe={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},pKe={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
771ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},fKe={title:Vqe,description:Kqe,tabs:Gqe,couponBatch:Wqe,promotionRule:Yqe,count:Qqe,batchCode:Xqe,creating:Zqe,createBatch:Jqe,codesCreated:eHe,codesCreated_plural:tHe,batch:nHe,copied:aHe,copyAll:oHe,creditGrants:sHe,source:rHe,status:iHe,noGrants:lHe,noGrantsDescription:cHe,time:dHe,user:uHe,amount:mHe,signupBonus:pHe,signupBonusDescription:fHe,signupBonusEnabled:gHe,signupBonusAmount:hHe,saveSignupBonus:yHe,saving:vHe,currentSignupBonus:bHe,referral:xHe,referralDescription:$He,referralEnabled:wHe,referralRewardTiers:kHe,addTier:CHe,tierRole:SHe,tierFromDay:AHe,tierUntilDay:THe,tierPercent:RHe,tierLabel:PHe,tierAction:_He,roleReferrer:jHe,roleReferee:NHe,noEndDay:DHe,removeTier:MHe,releaseDelayDays:EHe,referralCap:IHe,referralMinTopup:OHe,referralExpiryDays:LHe,bannerEnabled:UHe,bannerTitle:BHe,bannerSubtitle:FHe,bannerMode:zHe,bannerModeGlobal:qHe,bannerModeWindow:HHe,bannerEndsAt:VHe,saveReferral:KHe,referralVersion:GHe,referralPublishHint:WHe,referralVersionHistory:YHe,versionCol:QHe,versionStatus:XHe,versionTiers:ZHe,versionPublished:JHe,versionSuperseded:eVe,versionCurrent:tVe,discountRule:nVe,discountRuleDescription:aVe,discountEnabled:oVe,discountType:sVe,discountFixed:rVe,discountPercent:iVe,discountValueFixed:lVe,discountValuePercent:cVe,saveDiscount:dVe,defaultLowBalanceThreshold:uVe,defaultLowBalanceThresholdDescription:mVe,defaultLowBalanceThresholdAmount:pVe,saveDefaultLowBalanceThreshold:fVe,currentDefaultLowBalanceThreshold:gVe,couponBatchDescription:hVe,discountEffective:yVe,stateEnabled:vVe,stateDisabled:bVe,couponTrace:xVe,couponTraceDescription:$Ve,noBatches:wVe,noBatchesDescription:kVe,batchTotal:CVe,batchRedeemed:SVe,batchReserved:AVe,batchActive:TVe,codesInBatch:RVe,noCodes:PVe,code:_Ve,redeemedBy:jVe,redeemedAt:NVe,paid:DVe,discount:MVe,createIssuance:EVe,createIssuanceDescription:IVe,formLabel:OVe,formShared:LVe,formUniqueBatch:UVe,sharedCodeText:BVe,sharedCodeRandomHint:FVe,sharedMaxRedemptions:zVe,sharedPerUser:qVe,expiresAt:HVe,batchCodeOptional:VVe,createSharedCode:KVe,sharedCodeCreated:GVe,batchOwnDiscount:WVe,sharedCodesList:YVe,sharedCodesListDescription:QVe,noSharedCodes:XVe,colRedeemedTotal:ZVe,colPerUser:JVe,colExpiry:e9e,disableCode:t9e,disableCodeConfirmTitle:n9e,disableCodeConfirmMessage:a9e,codeDisabled:o9e,exportCsv:s9e,statusFilter:r9e,filterByEmail:i9e,csv:l9e,colAmount:c9e,colBoundAt:d9e,colCounterparty:u9e,colInvitee:m9e,colInviter:p9e,colRate:f9e,colReleasedAt:g9e,colRole:h9e,colTier:y9e,colTopup:v9e,loadMore:b9e,noBindings:x9e,noCashback:$9e,versionBindings:w9e,versionBindingsSection:k9e,versionCashbackSection:C9e,versionDetail:S9e,topup:A9e,redeemCreate:T9e,redeemCreateDescription:R9e,redeemBatchName:P9e,redeemBatchNameHint:_9e,redeemCount:j9e,redeemFaceValue:N9e,redeemPerUserLimit:D9e,redeemUnlimited:M9e,redeemExpiresAt:E9e,redeemModels:I9e,redeemModelsAll:O9e,redeemModelsCount:L9e,redeemModelsHint:U9e,redeemValidityDays:B9e,redeemValidityForever:F9e,redeemValidityDaysValue:z9e,redeemColModels:q9e,redeemColValidity:H9e,redeemGeneralBalance:V9e,redeemCreateBtn:K9e,redeemRevealHint:G9e,redeemBatches:W9e,redeemBatchesDescription:Y9e,redeemNoBatches:Q9e,redeemBatchCol:X9e,redeemFace:Z9e,redeemReveal:J9e,redeemReverseTitle:eKe,redeemReverseMessage:tKe,redeemReverseBtn:nKe,redeemReversed:aKe,redeemRevealed:oKe,redeemDisableBatchTitle:sKe,redeemDisableBatchMessage:rKe,redeemBatchDisabled:iKe,discountTypeBonusPercent:lKe,discountValueBonusPercent:cKe,bonusExpiryDays:dKe,bonusExpiryDaysHint:uKe,sharedPayments:mKe,tasks:pKe},gKe="Models",hKe="Model catalog: create, edit, publish.",yKe={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},vKe="Add model",bKe="Edit {{model}}",xKe="New model",$Ke="Close",wKe="Basics & content save together; pricing and status changes apply immediately.",kKe="Create the model draft. Set pricing and publish after it exists.",CKe={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},SKe="Provider slug",AKe="Pick a known provider or type a custom slug.",TKe="Model slug",RKe="Aliases",PKe="Comma-separated lookup aliases for import and review.",_Ke="Source (customer-visible)",jKe="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
771ame-model variants at different prices.",NKe="Platform",DKe="â select platform â",MKe="Upstream model id (optional; choose from upstream or enter manually)",EKe="Choose from upstream...",IKe="Upstream unavailable",OKe="Protocols",LKe="Input price / 1M (USD)",UKe="Output price / 1M (USD)",BKe="EN summary",FKe="Preview",zKe="(No summary)",qKe="No protocol",HKe="Cancel",VKe="Save",KKe="Create draft",GKe={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},WKe={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},YKe="Context window (tokens)",QKe="Max input the model accepts. Leave blank if unknown.",XKe="Max output tokens",ZKe="Max tokens the model can generate per response.",JKe={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},eGe="Input modalities",tGe="Declares what this model can receive, including vision, audio, video, and file inputs.",nGe="Output modalities",aGe="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",oGe="Image billing style",sGe="Video billing style",rGe="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",iGe="â select billing style â",lGe="Per token (image_output_token)",cGe="Per image (per_call_image)",dGe="Per second (video_per_second)",uGe="Per call (video_per_call)",mGe="Display order",pGe="Must be a non-negative integer.",fGe="Editing locale",gGe="Upstream release date",hGe="Summary (this locale)",yGe="Description (Markdown, this locale)",vGe={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filter"},bGe={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},xGe={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},$Ge={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
771:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},wGe="Discard unsaved changes?",kGe="Modell bearbeiten",CGe={title:gKe,description:hKe,badges:yKe,addModel:vKe,editModel:bKe,newModel:xKe,close:$Ke,sheetDescription:wKe,sheetDescriptionNew:kKe,sections:CKe,providerSlug:SKe,providerSlugHint:AKe,modelSlug:TKe,aliases:RKe,aliasesHint:PKe,source:_Ke,sourceHint:jKe,platform:NKe,platformUnset:DKe,sub2apiModelId:MKe,chooseSub2api:EKe,upstreamUnavailable:IKe,protocols:OKe,inputPrice:LKe,outputPrice:UKe,enSummary:BKe,preview:FKe,noSummary:zKe,noProtocol:qKe,cancel:HKe,save:VKe,createDraft:KKe,tabs:GKe,steps:WKe,contextWindow:YKe,contextWindowHint:QKe,maxOutputTokens:XKe,maxOutputTokensHint:ZKe,lifecycle:JKe,inputModalities:eGe,inputModalitiesHint:tGe,outputModalities:nGe,outputModalitiesHint:aGe,billingStyleImage:oGe,billingStyleVideo:sGe,billingStyleHint:rGe,billingStyleUnset:iGe,billingStyleToken:lGe,billingStylePerImage:cGe,billingStylePerSecond:dGe,billingStylePerCall:uGe,displayOrder:mGe,displayOrderInvalid:pGe,contentLocale:fGe,upstreamReleaseAt:gGe,summary:hGe,descriptionField:yGe,filters:vGe,table:bGe,errors:xGe,pricing:$Ge,discardChanges:wGe,editModelShort:kGe},SGe="Rate Limits",AGe="Rate limit policies by scope.",TGe="Rate limit policies",RGe="No policies",PGe="Code",_Ge="Name",jGe="Scope",NGe="Status",DGe="Limits",MGe="No limits",EGe={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},IGe={active:"Active",disabled:"Disabled",archived:"Archived"},OGe={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},LGe="New policy",UGe="Edit",BGe="Action",FGe="New rate limit policy",zGe="Edit {{name}}",qGe="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",HGe='Delete policy "{{name}}"? Keys and users on it fall back to their default.',VGe="Policy deleted.",KGe={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},GGe={title:SGe,description:AGe,label:TGe,empty:RGe,code:PGe,name:_Ge,scope:jGe,status:NGe,limits:DGe,noLimits:MGe,scopes:EGe,statuses:IGe,limitNames:OGe,add:LGe,edit:UGe,delete:"Delete",action:BGe,newTitle:FGe,editTitle:zGe,formDescription:qGe,confirmDelete:HGe,deleted:VGe,form:KGe},WGe="Admins",YGe="Who can sign in to the admin console. Owner-only.",QGe="Admins",XGe="No admins yet",ZGe="Email",JGe="Name",eWe="Role",tWe="Status",nWe="Last login",aWe="Action",oWe="Add admin",sWe="Add admin",rWe="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",iWe="Email",lWe="[email protected]",cWe="Name",dWe="Display name",uWe="Role",mWe="Admin added.",pWe="Change role",fWe="Role updated.",gWe="Suspend",hWe="Activate",yWe="Status updated.",vWe="Remove",bWe="Admin removed.",xWe="Remove {{email}} as an admin? They lose console access immediately.",$We="You",wWe="Never",kWe={owner:"Owner",admin:"Admin",
771support:"Support"},CWe={active:"Active",suspended:"Suspended"},SWe={title:WGe,description:YGe,label:QGe,empty:XGe,email:ZGe,name:JGe,role:eWe,status:tWe,lastLogin:nWe,action:aWe,add:oWe,newTitle:sWe,formDescription:rWe,emailLabel:iWe,emailPlaceholder:lWe,nameLabel:cWe,namePlaceholder:dWe,roleLabel:uWe,added:mWe,changeRole:pWe,roleChanged:fWe,suspend:gWe,activate:hWe,statusChanged:yWe,remove:vWe,removed:bWe,confirmRemove:xWe,self:$We,never:wWe,roles:kWe,statuses:CWe},AWe="Upstream",TWe="Read-only upstream configuration mirror plus controlled OneHop routing pools.",RWe="Open upstream admin",PWe="Upstream tabs",_We={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},jWe={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},NWe={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},DWe={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Upstream-Abdeckung",coverageUnchecked:"Konten nicht lesbar",coverageOnlyAccount:"nur {{accounts}}",coverageNoAccount:"Kein einplanbares Konto bildet diese Upstream-ID ab"},MWe={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},EWe={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},IWe={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},OWe={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},LWe={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},UWe={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},BWe={title:AWe,description:TWe,openUpstreamAdmin:RWe,tabsLabel:PWe,tabs:_We,metrics:jWe,errors:NWe,audit:DWe,topology:MWe,pools:EWe,readonly:IWe,table:OWe,common:LWe,ops:UWe},FWe="Platform usage",zWe="Cross-user request metering with cost, token, latency, and routing signals.",qWe="Refresh",HWe={label:"Auto refresh",off:"Off"},VWe="Exporting",KWe="Export CSV",GWe="Failed to export usage records",WWe="Requests",YWe="{{count}} successful",QWe="Users",XWe="Matched by current filters",ZWe="Billed credit",JWe="{{cost}} upstream cost",eYe="Tokens",tYe="Avg {{duration}}",nYe="User email",aYe="Search by email",oYe="Model",sYe="Search by model",rYe="Status",iYe="Protocol",lYe="Rows",cYe="Reset",dYe="Ops usage records",uYe="No usage records",mYe="User",pYe="Endpoint",fYe="{{count}} total",gYe="In {{input}} / out {{output}}",hYe="Upstream",yYe="Billed",vYe="Latency",bYe="Started",xYe="Page {{page}} · showing {{shown}} of {{total}} matching records",$Ye="Previous",wYe="Next",kYe="{{count}} rows on this page",CYe="Times shown in",SYe="{{count}} API keys",AYe="Spend snapshot",TYe="from OneHop billing snapshot",RYe="User spend",PYe="total billed to users",_Ye="Avg latency",jYe="settled requests",NYe="Range",DYe={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},MYe="Metric",EYe={cost:"Spend",tokens:"Tokens",requests:"Requests"},IYe="Distribution",OYe={model:"Modell",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
771:"Transport (stream/sync)"},LYe="Usage trend",UYe="Usage by model",BYe="Hourly",FYe="Daily",zYe="Top endpoints",qYe="Top dimension rows",HYe="Request logs",VYe="API key",KYe="Type",GYe="Billing",WYe="Channel",YYe="Group",QYe="Request ID",XYe="req_ / usg_ / upstream",ZYe="All types",JYe="All billing",eQe={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},tQe="Failed to load usage",nQe="Loading usage records",aQe="Try a different filter set.",oQe="No trend data",sQe="No distribution data",rQe="No rows",iQe="Spend breakdown",lQe={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},cQe="Request detail",dQe="Unknown user",uQe="Loading...",mQe="Sub2API actual",pQe="Group multiplier",fQe="Account multiplier",gQe="Identity",hQe="User ID",yQe="Key suffix",vQe={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},bQe="Input",xQe="Output",$Qe="Cache read",wQe="Cache write",kQe="Raw metadata",CQe="Request",SQe="Usage ID",AQe="OneHop ID",TQe="Sub2API ID",RQe="Sub2API log",PQe="Routing",_Qe="Mapping",jQe="Performance",NQe="First token",DQe="Total",MQe="Error",EQe="Code",IQe="Message",OQe={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},LQe={analytics:"Usage analytics",logs:"Request logs"},UQe={label:"Chart view",stacked:"Over time",ranking:"Ranking"},BQe={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},FQe="More filters",zQe="Slow threshold (ms)",qQe="No model usage",HQe="No requests yet â usage will appear here as traffic comes in.",VQe="Viewing",KQe="streaming requests",GQe="Avg duration",WQe="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",YQe="Open request detail",QQe={title:FWe,description:zWe,refresh:qWe,autoRefresh:HWe,exporting:VWe,exportCsv:KWe,exportError:GWe,requests:WWe,successful:YWe,users:QWe,matchedFilters:XWe,billedCredit:ZWe,upstreamCost:JWe,tokens:eYe,avgDuration:tYe,userEmail:nYe,searchEmail:aYe,model:oYe,searchModel:sYe,status:rYe,protocol:iYe,rows:lYe,reset:cYe,label:dYe,empty:uYe,user:mYe,endpoint:pYe,totalTokens:fYe,inOut:gYe,upstream:hYe,billed:yYe,latency:vYe,started:bYe,pageSummary:xYe,previous:$Ye,next:wYe,rowsOnPage:kYe,timesShownIn:CYe,apiKeys:SYe,sub2apiCharge:AYe,sub2apiChargeSource:TYe,userSpend:RYe,userSpendSource:PYe,avgLatency:_Ye,settledRequests:jYe,range:NYe,ranges:DYe,metric:MYe,metrics:EYe,distribution:IYe,breakdown:OYe,usageTrend:LYe,stackedByModel:UYe,hourly:BYe,daily:FYe,topEndpoints:zYe,topDimensionRows:qYe,requestLogs:HYe,apiKey:VYe,type:KYe,billing:GYe,channel:WYe,group:YYe,requestId:QYe,requestIdPlaceholder:XYe,allTypes:ZYe,allBilling:JYe,table:eQe,failedLoad:tQe,loadingRecords:nQe,tryDifferentFilters:aQe,noTrendData:oQe,noDistributionData:sQe,noRows:rQe,costBreakdown:iQe,adminCost:lQe,requestDetail:cQe,unknownUser:dQe,loading:uQe,sub2apiActual:mQe,groupMultiplier:pQe,accountMultiplier:fQe,identity:gQe,userId:hQe,keySuffix:yQe,continuity:vQe,input:bQe,output:xQe,cacheRead:$Qe,cacheWrite:wQe,rawMetadata:kQe,request:CQe,usageId:SQe,onehopId:AQe,sub2apiId:TQe,sub2apiLog:RQe,routing:PQe,mapping:_Qe,performance:jQe,firstToken:NQe,total:DQe,error:MQe,code:EQe,message:IQe,csv:OQe,tabs:LQe,modelView:UQe,chip:BQe,moreFilters:FQe,slowThreshold:zQe,noModelUsage:qQe,noTrendToday:HQe,viewing:VQe,avgLatencySub:KQe,avgTotalDuration:GQe,latencyHint:WQe,openRequestDetail:YQe}
771,XQe="Search",ZQe="Search by user ID, email, or name",JQe="User",eXe="Back to users",tXe="You do not have permission to view this section.",nXe="Refund",aXe="Refunding...",oXe="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",sXe="Refund initiated.",rXe={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"API-Schlüssel",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},iXe={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},lXe={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},cXe={phase2:"Subscriptions are coming in Phase 2."},dXe={empty:"No payments"},uXe={empty:"No refunds"},mXe={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},pXe={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},fXe={empty:"No audit records"},gXe={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},hXe={ipLocationTitle:"IP und Standort",deviceBrowserTitle:"Gerät und Browser",stripeTitle:"Stripe",signupIp:"Registrierungs-IP",signupCountry:"Registrierungsland",lastLoginIp:"IP der letzten Anmeldung",ipDifferent:"Weicht von Registrierungs-IP ab",sameIpAccounts_one:"{{count}} Konto mit derselben Registrierungs-IP",sameIpAccounts_other:"{{count}} Konten mit derselben Registrierungs-IP",sameDeviceAccounts_one:"{{count}} Konto auf demselben Gerät",sameDeviceAccounts_other:"{{count}} Konten auf demselben Gerät",deviceFingerprint:"Geräte-Fingerprint",freeTierEligible:"Berechtigung für kostenlosen Tarif",firstDevice:"Erstes Konto auf dem Gerät",notFirstDevice:"Nicht erstes Konto auf dem Gerät â keine kostenlosen Vorteile",browser:"Browser",os:"OS",deviceType:"Gerätetyp",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"Auf ipinfo.io anzeigen"},yXe={empty:"Noch keine Aufrufe",viewAll:"Alle Logs anzeigen â",colStatus:"Status",colTime:"Zeit",colModel:"Modell",colProtocol:"Protokoll",colDuration:"Dauer",colCost:"Kosten",colFreeDiscount:"Kostenloses Guthaben"},vXe={empty:"Noch keine API keys",colName:"Name",colKey:"Key",colStatus:"Status",colPolicy:"Rate-Limit-Richtlinie",colLastUsed:"Zuletzt genutzt",colCreated:"Erstellt",colExpires:"Läuft ab",colSpend:"Ausgaben",spendTitle:"Ausgabenaufschlüsselung",spend30d:"Letzte 30 Tage",spendAllTime:"Gesamt",spendRequests:"Requests"},bXe="Kopieren",xXe="Kopiert",$Xe={search:XQe,searchPlaceholder:ZQe,title:JQe,backToList:eXe,noBlockPerm:tXe,refund:nXe,refunding:aXe,refundConfirm:oXe,refundInitiated:sXe,nav:rXe,freeTokens:iXe,freeQuota:lXe,subscription:cXe,payments:dXe,refunds:uXe,rewards:mXe,referrals:pXe,audit:fXe,col:gXe,network:hXe,recentCalls:yXe,apiKeys:vXe,copy:bXe,copied:xXe},wXe="Users",kXe="Search users, grant credit, and suspend accounts.",CXe="Email",SXe="Search by email",AXe="Account status",TXe={active:"Konto aktiv; Anmeldung und Gateway-Aufrufe möglich",suspended:"Gesperrt; Gateway lehnt alle Anfragen ab (401)"},RXe="Risk",PXe={normal:"Für alle kostenlosen Vorteile berechtigt",watchlisted:"Keine kostenlosen Token und kein Registrierungsbonus; Aufladen und Gateway-Aufrufe weiterhin möglich",blocked:"Gateway lehnt alle Anfragen ab (401); vollständig gesperrt"},_Xe="Users",jXe="No users found",NXe="Country",DXe="Last login",MXe="Action",EXe="View",IXe="Deleted",OXe="Set status for {{email}}",LXe='Set {{email}} to "{{status}}"?',UXe="Grant credit",BXe="Add bonus credit to {{email}}. Recorded in the ledger.",FXe="Amount (USD)",zXe="e.g. 5",qXe="Reason (optional)",HXe="e.g. compensation for downtime",VXe="Type",KXe="Bonus credit",GXe="A gift. Does not count as a top-up.",WXe="Offline payment",YXe="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",QXe="Reference no.",XXe="e.g. bank slip 20260907-001",ZXe="Record payment",JXe="Recording...",eZe="Cancel",tZe="Granting...",nZe="Grant",aZe="Grant ${{amount}} to {{email}}? This is a large amount.",oZe="No display name",sZe="Loading...",rZe="score {{score}}",iZe="Email verified",lZe="Yes",cZe="No",dZe="Signup",uZe="Signup method",mZe="Last login method",pZe="Signup bonus",fZe="Onboarding",gZe="Locale / TZ",hZe="Markup ratio",yZe="Rate limit policy",vZe="Rate limit policy updated.",bZe="Joined",xZe="Never",$Ze="Balance",wZe="Wallet & spend",kZe="Total spent",CZe="Recharged",SZe="Bonus granted",AZe="Refunded",TZe="Requests",RZe="Tokens",PZe="Actions",_Ze="Identity & risk",jZe="Role",NZe="No permitted actions for your role.",DZe="Acquisition source",MZe="Acquisition by source",EZe="Direct / unknown",IZe="Custom sourceâ¦",OZe="Set",LZe="Auto-detected: {{source}}",UZe="UTM",BZe="Referred by",FZe="Notiz",zZe="Notiz hinzufügen, um diesen Nutzer zu identifizieren",qZe="Notiz speichern",HZe="Notiz gespeichert",VZe="Keine Notiz",KZe="Filter",GZe="Location",WZe="Preferred locale",YZe={title:wXe,description:kXe,email:CXe,searchEmail:SXe,status:AXe,statusEffect:TXe,risk:RXe,riskEffect:PXe,label:_Xe,empty:jXe,country:NXe,lastLogin:DXe,action:MXe,view:EXe,deleted:IXe,setStatusAria:OXe,setStatusConfirm:LXe,grantCredit:UXe,grantDescription:BXe,amountUsd:FXe,amountPlaceholder:zXe,reason:qXe,reasonPlaceholder:HXe,grantKind:VXe,grantKindBonus:KXe,grantKindBonusHint:GXe,grantKindOffline:WXe,grantKindOfflineHint:YXe,referenceNo:QXe,referenceNoPlaceholder:XXe,recordPayment:ZXe,recording:JXe,cancel:eZe,granting:tZe,grant:nZe,largeGrantConfirm:aZe,noDisplayName:oZe,loading:sZe,score:rZe,emailVerified:iZe,yes:lZe,no:cZe,signup:dZe,signupMethod:uZe,lastLoginMethod:mZe,signupBonus:pZe,onboarding:fZe,localeTz:gZe,markupRatio:hZe,rateLimitPolicy:yZe,rateLimitPolicyChanged:vZe,joined:bZe,never:xZe,walletBalance:$Ze,walletSection:wZe,consumed:kZe,recharged:CZe,bonusGranted:SZe,refunded:AZe,requests:TZe,tokens:RZe,actionsSection:PZe,identitySection:_Ze,role:jZe,noPermittedActions:NZe,acquisitionSource:DZe,acquisitionTitle:MZe,sourceDirect:EZe,sourceCustomPlaceholder:IZe,sourceSet:OZe,sourceCaptured:LZe,utm:UZe,referrer:BZe,note:FZe,notePlaceholder:zZe,noteSave:qZe,noteSaved:HZe,noteEmpty:VZe,filters:KZe,location:GZe,preferredLocale:WZe},QZe="Webhooks",XZe="Stripe webhook events. Status filter, retry, payload inspection.",ZZe="Status",JZe="Event type",eJe="Received",tJe="Event type",nJe="Status",aJe="Mode",oJe="Attempts",sJe="Retry",rJe="Retry queued",iJe="Event {{event}} reset to pending; next job tick will process.",lJe="Retry failed",cJe="No webhook events yet.",dJe="Stripe events will appear here once your endpoint is registered.",uJe="Loading payload...",mJe="Last error",pJe="Payload (JSON)",fJe={title:QZe,description:XZe,statusFilter:ZZe,eventTypeFilter:JZe,receivedAt:eJe,eventType:tJe,status:nJe,mode:aJe,attempts:oJe,retry:sJe,retrySubmittedTitle:rJe,retrySubmittedBody:iJe,retryFailedTitle:lJe,empty:cJe,emptyHint:dJe,detailLoa
771ding:uJe,lastError:mJe,payload:pJe},gJe="API Keys",hJe="Erste key in 10 Sekunden erstellen",yJe="Kopieren fehlgeschlagen",vJe={label:"Erlaubte Modelle",allModels:"Alle Modelle",allHint:"Alle Modelle im Katalog sind erlaubt.",noModels:"Keine Modelle verfügbar.",selected:"{{count}} ausgewählt",someHint:"{{count}} Modell(e) erlaubt."},bJe={label:"Tags",placeholder:"Tag hinzufügen und Enter drücken",remove:"Entfernen"},xJe="Erstelle scoped keys für Produktion, Staging und Team-Workflows.",$Je="Aktualisieren",wJe="Standard-key",kJe="Key-Name",CJe="Erstellt...",SJe="Key erstellen",AJe="Vollständiger key, einmalig angezeigt",TJe="API key kopieren",RJe="Kopiert",PJe="Kopieren",_Je="Kopiere und speichere ihn jetzt. Nach dem SchlieÃen dieses Panels kann der vollständige key nicht erneut angezeigt werden.",jJe="Ich habe ihn gespeichert",NJe="API keys konnten nicht geladen werden",DJe="Erneut versuchen",MJe="Noch keine API keys",EJe="Erstelle deinen ersten key, um Requests über OneHop zu senden.",IJe={label:"API keys",tags:"Tags",name:"Name",key:"Key",status:"Status",created:"Erstellt",action:"Aktion",usage:"Nutzung",quota:"Limit",expires:"Läuft ab",lastUsed:"Zuletzt genutzt"},OJe="Widerrufen",LJe="{{name}} widerrufen? Das kann nicht rückgängig gemacht werden.",UJe="Benenne die key. Limits und Ablaufdatum bleiben in den erweiterten Einstellungen, solange du sie nicht brauchst.",BJe="Monatliches credit-Limit",FJe="Läuft ab am",zJe="Unbegrenzt",qJe="Speichern...",HJe="Speichern",VJe="Abbrechen",KJe={title:"Deaktiviert und widerrufen",description:"Deaktivierte oder widerrufene keys. Deaktivierte keys kannst du reaktivieren; widerrufene bleiben als Protokoll erhalten."},GJe={title:"Keine aktiven keys",description:"Aktiviere unten einen deaktivierten key erneut oder erstelle einen neuen."},WJe={import:"In CCS importieren",client:"CC-Switch-Client",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"CC Switch wurde mit einem Platzhalter geöffnet. Füge dort deinen gespeicherten API key ein.",checking:"Kompatibilität wird geprüftâ¦",blocked:{title:"{{client}} kann diesen Schlüssel nicht verwenden",body:"â{{keyName}}â erlaubt nur Modelle, die {{client}} nicht verwenden kann. Der Import führt zu Fehlern.",adjust:"Modellumfang anpassen",forceImport:"Trotzdem importieren (funktioniert nicht)"},pin:{title:"Für {{client}} als {{model}} importieren",body:"â{{keyName}}â enthält nicht das Standardmodell von {{client}}. So werden {{client}}-Anfragen über diesen Anbieter weitergeleitet:",adjust:"Modellumfang anpassen",confirm:"Mit {{model}} importieren"}},YJe={search:"Suchen",searchPlaceholder:"Name oder key-Suffix suchen",status:"Status",allStatus:"Alle Status",clear:"Filter löschen",empty:"Keine keys passen zu diesen Filtern",emptyDescription:"Lösche Suche oder Statusfilter, um alle keys zu sehen.",mobileTitle:"Filter"},QJe={active:"Aktiv",inactive:"Deaktiviert",revoked:"Widerrufen",expired:"Abgelaufen",quota_exhausted:"Limit ausgeschöpft"},XJe={today:"Heute {{requests}} req · {{credit}}",days30:"30 T {{requests}} req · {{credit}}"},ZJe={use:"Verbindungsdetails",edit:"Bearbeiten",enable:"Aktivieren",disable:"Deaktivieren",delete:"Löschen"},JJe="API key verwenden",eet="Nutze die gespeicherte key mit dem OneHop gateway. Die vollständige key wird nur beim Erstellen angezeigt.",tet={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization-Header",env:"Umgebungsvariable",curl:"cURL",revealing:"key wird entschlüsseltâ¦",fullKeyUnavailable:"Die vollständige key wird nur beim Erstellen angezeigt. Nutze den gespeicherten Wert oder erstelle eine neue key, falls sie verloren ging.",protocolEndpoints:"Protokoll-Endpunkte"},net="Erweiterte Einstellungen",aet="API key erstellen",oet="API key bearbeiten",set={label:"Modellzugriff",all:"Alle Modelle",limited:"Auf bestimmte Modelle beschränken",allHint:"Dieser key kann alle Modelle aufrufen, auch später hinzugefügte.",snapshotHint:"Nur die ausgewählten Modelle; später hinzugefügte Modelle werden nicht automatisch aufgenommen.",snapshotHintEdit:"Nur die ausgewählten Modelle; neue Modelle werden nicht automatisch aufgenommen. Der Wechsel zu Alle Modelle ersetzt diese Whitelist.",searchPlaceholder:"Modelle suchenâ¦",selectAllResults:"Alle Ergebnisse auswählen ({{count}})",selectedCount:"{{count}} / {{max}} ausgewählt",clear:"Leeren",hiddenSelected:"{{hidden}} von {{total}} ausgewählten sind durch den aktuellen Filter ausgeblendet",selectVendor:"Alle {{vendor}} auswählen, {{on}} von {{total}} ausgewählt",emptyTitle:"Keine passenden Modelle",emptyDescription:"Versuche einen anderen Typ oder Suchbegriff.",loadFailed:"Modelle konnten nicht geladen werden",loadFailedHint:"Erneut versuchen oder zurück zu Alle Modelle wechseln.",type:{all:"Alle",text:"Text",image:"Bild",video:"Video",embedding:"Embedding"},pickAtLeastOne:"Wähle mindestens ein Modell aus oder wechsle zu Alle Modelle.",limitReached:"Reached the {{max}}-model limit"},ret={title:"API key erstellt",subtitle:"{{name}} ist bereit â jetzt verbinden.",onceWarning:"Wird einmal angezeigt. Du kannst ihn später erneut anzeigen, aber kopiere ihn sicherheitshalber jetzt.",connect:"Verbinden",done:"Fertig"},iet="IP",cet="Widerrufen am {{date}}",det={title:gJe,emptyTitle:hJe,copyFailed:yJe,allowedModels:vJe,tags:bJe,description:xJe,refresh:$Je,defaultName:wJe,keyName:kJe,creating:CJe,createKey:SJe,fullKeyTitle:AJe,copyApiKey:TJe,copied:RJe,copy:PJe,fullKeyDescription:_Je,savedIt:jJe,loadFailed:NJe,retry:DJe,empty:MJe,emptyDescription:EJe,table:IJe,revoke:OJe,revokeConfirm:LJe,formDescription:UJe,monthlyCreditLimit:BJe,expiresAt:FJe,unlimited:zJe,saving:qJe,save:HJe,cancel:VJe,parked:KJe,noActive:GJe,ccswitch:WJe,filters:YJe,status:QJe,usage:XJe,actions:ZJe,useTitle:JJe,useDescription:eet,use:tet,advancedSettings:net,createTitle:aet,editTitle:oet,scope:set,created:ret,lastUsedIp:iet,revokedAt:cet},uet="Audit Logs",met="High-risk admin actions, by action and time.",pet="Action",fet="Clear",get={ops_user_update_status:"Nutzerstatus aktualisiert",ops_users_allowlist_add:"Registrierungszugang hinzugefügt",ops_users_allowlist_update:"Registrierungszugang aktualisiert",ops_users_allowlist_invite:"Einladung zum Registrierungszugang gesendet",ops_users_allowlist_revoke:"Registrierungszugang entfernt",ops_users_allowlist_restore:"Registrierungszugang wiederhergestellt",ops_model_create:"Modell erstellt",ops_model_update:"Modell aktualisiert",ops_model_update_status:"Modellstatus aktualisiert",sub2api_pool_create:"Routing-Pool erstellt",sub2api_pool_test:"Routing-Pool getestet",sub2api_pool_rotate_secret:"Routing-Secret rotiert"},het="Audit logs",yet="No audit entries",vet="Time",bet="Severity",xet="Target",$et={ai_model:"Model",sub2a
771pi_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},wet="Zieltyp",ket="Request-ID",Cet={title:uet,description:met,action:pet,clear:fet,actions:get,label:het,empty:yet,time:vet,severity:bet,target:xet,targetTypes:$et,targetType:wet,requestId:ket},Aet="Bei OneHop anmelden",Tet="Code eingeben",Ret="Mit Google oder E-Mail fortfahren",Pet="E-Mail eingeben, um einen Code zu erhalten",_et="Gib den 6-stelligen Code ein, der an {{email}} gesendet wurde",jet="Mit Google fortfahren",Net="Mit E-Mail fortfahren",Det="oder",Met="E-Mail",Eet="Bestätigungscode senden",Iet="Senden...",Oet="Bestätigen",Let="Prüfen...",Uet="Erneut senden in {{seconds}} s",Bet="Code erneut senden",Fet="Mit dem Fortfahren akzeptierst du unsere",zet="Nutzungsbedingungen",qet="Datenschutzerklärung",Het={signIn:"Anmelden",signOutFailed:"Abmeldung fehlgeschlagen",sendCodeFailed:"Code konnte nicht gesendet werden",notAllowed:"Diese E-Mail ist noch nicht für den Zugriff freigegeben. Bitte wende dich an deinen Administrator.",invalidCode:"Ungültiger Code",codeIncorrect:"Code falsch, bitte erneut versuchen",googleFailed:"Google-Anmeldung fehlgeschlagen",verifyHuman:"Bitte schlieÃe die Verifizierung ab, um fortzufahren",verifyUnavailable:"Die Personenüberprüfung ist vorübergehend nicht verfügbar. Bitte melden Sie sich oben mit Google an oder versuchen Sie es später erneut."},Vet={signInTitle:Aet,enterCodeTitle:Tet,methodIntro:Ret,emailStepIntro:Pet,codeIntro:_et,continueGoogle:jet,continueEmail:Net,or:Det,emailLabel:Met,sendCode:Eet,sending:Iet,verify:Oet,verifying:Let,resendIn:Uet,resendCode:Bet,termsPrefix:Fet,terms:zet,privacy:qet,errors:Het},Ket="Abrechnung",Get="Credits aufladen, Gutscheincodes einlösen und Wallet-Verlauf ansehen.",Wet={bonuses:"Boni",topups:"Aufladungen",usage:"Verbrauch"},Yet={available:"Gutgeschrieben",availableHint:"Bereits im verfügbaren Guthaben enthalten",frozen:"Ausstehend (gesperrt)",frozenHint:"In ca. {{days}} Tagen verfügbar",frozenHintGeneric:"Nach Ablauf der Haltefrist verfügbar",title:"Empfehlungsprämien",viewDetails:"Empfehlungsdetails anzeigen"},Qet={noUsage:"Kein Verbrauch in den letzten 30 Tagen",perDay:"{{amount}} Ã/Tag",daysLeft:"â {{days}} Tage bei aktueller Rate"},Xet={amountUsd:"Betrag (USD)",minAmountHint:"Mindestaufladung: {{amount}}.",apply:"Anwenden",get:"Erhalten",onehopCredits:"OneHop credits",pay:"Zahlen",poweredByStripe:"Abgesichert durch Stripe",poweredBy:"Abgesichert durch {{provider}}",secureCheckout:"Sicherer gehosteter Checkout",secureCheckoutShort:"Sicherer Checkout",taxExclusiveNotice:"Anfallende Steuern werden beim Bezahlvorgang berechnet und diesem Betrag hinzugefügt.",presets:"Vordefinierte Beträge",promoCode:"Gutscheincode",promoCodePlaceholder:"Code eingeben",serviceFee:"Servicegebühr",title:"Aufladen",topupAmount:"Aufladebetrag",totalDue:"Fälliger Gesamtbetrag",payCta:"{{amount}} bezahlen",previewing:"Wird geprüftâ¦",discount:"Gutscheinrabatt",couponBelowMin:"Der rabattierte Betrag ist zu niedrig â erhöhe den Betrag oder probiere einen anderen Code.",maintenanceTitle:"Zahlungen vorübergehend nicht verfügbar",maintenanceDescription:"Zahlungen sind vorübergehend nicht verfügbar. Kontaktiere uns auf Telegram, wenn du zahlen möchtest.",contactTelegram:"Kontaktiere uns auf Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Mit Krypto zahlen (USDC / USDT)",payOnStripe:"Die Zahlung wird auf der sicheren Stripe-Checkout-Seite abgeschlossen.",payOnProvider:"Die Zahlung wird auf der sicheren {{provider}}-Checkout-Seite abgeschlossen.",payOnHostedCheckout:"Die Zahlung wird auf der sicheren gehosteten Checkout-Seite abgeschlossen.",amountPrecision:"{{provider}} akzeptiert USD-Beträge mit höchstens 2 Nachkommastellen. Passe den Betrag oder den Aktionscode an.",couponBonus:"Coupon-Bonus",couponBonusExpiry:"Bonusguthaben verfällt {{days}} Tage nach der Zahlung.",couponInvalid:"Dieser Code kann nicht angewendet werden â bitte versuche einen anderen Code.",couponErrors:{limitReached:"Du hast diesen Code bereits maximal oft verwendet.",invalid:"Dieser Code ist ungültig.",expired:"Dieser Code ist abgelaufen.",exhausted:"Dieser Code wurde vollständig eingelöst.",unavailable:"Dieser Code wird gerade verwendet â bitte gleich erneut versuchen."},tierBonus:"Aktionsbonus",tierBonusExpiry:"Bonusguthaben verfällt {{days}} Tage nach der Zahlung.",tierBonusRestricted:"Bonusguthaben ist nur einlösbar für: {{models}}.",nextTierPercent:"Lade {{amount}} mehr auf und erhalte {{percent}} % Bonusguthaben.",nextTierBonus:"Lade {{amount}} mehr auf und erhalte {{bonus}} Bonusguthaben.",tierCapReached:"Du hast den maximalen Bonus dieser Aktion bereits erhalten."},Zet="Credits hinzufügen",Jet="Wird erstellt...",ett="Verfügbarer Credit",ttt="Aufladen",ntt="Zahlung über Stripe",att="Betrag (USD)",ott="Vordefinierte Aufladebeträge",stt="Gutscheincode einlösen",rtt="Gutscheincode",itt="Wird eingelöst...",ltt="Einlösen",ctt="Gutscheincode eingelöst, Guthaben wird aktualisiert.",dtt="Weiterleitung zum sicheren checkout...",utt="Abrechnungsübersicht konnte nicht geladen werden",mtt="Aufladen fehlgeschlagen",ptt="Tabs für Abrechnungsaktivität",ftt="Transaktionen",gtt="Credit-Gutschriften",htt="Transaktionstyp",ytt="Quelle",vtt="Noch keine Transaktionen",btt="Aufladungen, Abbuchungen und Gutschriften erscheinen hier.",xtt="Ledger-Einträge",$tt="Zeit",wtt="Typ",ktt="Betrag",Ctt="Saldo",Stt="Noch keine Gutschriften",Att
771="Registrierungsboni, Gutscheincodes und manuelle Gutschriften erscheinen hier.",Ttt="Status",Rtt={successTitle:"Zahlung eingegangen",polling:"Credit wird deiner Wallet gutgeschrieben... ca. 30 Sekunden.",delayed:"Die Gutschrift dauert länger. Lade gleich neu oder prüfe deine Stripe-Belege.",cancelledTitle:"Zahlung abgebrochen",cancelledBody:"Es wurde nichts abgebucht. Versuche es erneut, wenn du bereit bist.",failedTitle:"Zahlung fehlgeschlagen",failedBody:"Deine Zahlung konnte nicht abgeschlossen werden. Es wurde kein Guthaben gutgeschrieben. Versuche es erneut oder nutze eine andere Zahlungsmethode."},Ptt={text:"Credits sind ein vorausbezahltes Dienstguthaben, keine Bankeinlage. Verbrauchte Credits sind nicht erstattbar. Alle Preise in USD. Siehe",tosLink:"Nutzungsbedingungen"},_tt="Belege",jtt="Wird geöffnet...",Ntt="Abrechnungsportal konnte nicht geöffnet werden",Dtt={title:"Letzte Aufladungen",subtitle:"Letzte 90 Tage, innerhalb von 24 Stunden erstattbar.",loading:"Aufladungen werden geladen...",date:"Datum",amount:"Betrag",credits:"Credits",status:"Status",refund:"Erstatten",alreadyRefunded:"Bereits erstattet",windowExpired:"Erstattungsfenster abgelaufen (24 Stunden)",confirmTitle:"Erstattung bestätigen",confirmBody:"Die Erstattung wird von Stripe innerhalb von 1-3 Werktagen verarbeitet. Bei nutzerinitiierten Erstattungen fällt eine Plattformgebühr ({{fee}}) an.",amountLabel:"Erstattungsbetrag (USD)",maxLabel:"Max. ${{value}}",requestedLabel:"Beantragte Erstattung",platformFeeLabel:"Plattformgebühr ({{fee}})",cardReturnLabel:"Zurück auf deine Karte",bonusForfeitureHint:"Mit dieser Aufladung gewährte Aktions-Credits verfallen anteilig.",cancel:"Abbrechen",confirm:"Erstattung auslösen",submitting:"Wird gesendet...",refundSubmittedTitle:"Erstattung eingereicht",refundSubmittedBody:"Stripe überweist den Betrag innerhalb von 1-3 Werktagen zurück auf deine Karte.",refundFailedTitle:"Erstattung fehlgeschlagen",balance:"Saldo",confirmAmount:"{{amount}} erstatten"},Mtt={title:"Guthaben-Warnungen",description:"Wir benachrichtigen dich, wenn dein Guthaben zur Neige geht.",emailLabel:"Per E-Mail benachrichtigen",webhookLabel:"Webhook",autorechargeLabel:"Automatisches Aufladen",autorechargeUnsupported:"Automatisches Aufladen ist beim aktiven Zahlungsanbieter nicht verfügbar.",autorechargeAddCardHint:"Karte hinzufügen, um dein Guthaben aufzufüllen",autorechargeTopUp:"Aufladen um",autorechargeWhenBelow:"bei einem Guthaben unter",autorechargeThreshold:"Schwelle für automatisches Aufladen",autorechargeAmount:"Betrag für automatisches Aufladen",autorechargeDisabledFailures:"Automatisches Aufladen wurde nach mehreren Fehlversuchen deaktiviert. Aktualisiere deine Karte und aktiviere es erneut.",autorechargeIncomplete:"Lege einen Aufladebetrag und eine Schwelle über $0 fest.",test:"Testen",testing:"Test läuftâ¦",testQueued:"Testzustellung in der Warteschlange â prüfe deinen Endpunkt",testFailed:"Testzustellung konnte nicht eingereiht werden",signingSecret:"Signatur-Secret",secretOnSave:"Beim Speichern wird ein Signatur-Secret erzeugt.",rotate:"Rotieren",secretRotated:"Signatur-Secret rotiert",rotateFailed:"Secret konnte nicht rotiert werden",secretCopied:"Signatur-Secret kopiert",saved:"Warnungseinstellungen gespeichert",saveFailed:"Warnungseinstellungen konnten nicht gespeichert werden",loadFailed:"Warnungseinstellungen konnten nicht geladen werden",thresholdRequired:"Lege eine Schwelle über $0 fest, um Warnungen zu aktivieren.",webhookUrlRequired:"Gib eine https://-URL für den Webhook ein.",thresholdOrderBad:"Die Warnschwelle muss ⥠der Schwelle für automatisches Aufladen sein.",card:"Karte",changeCard:"Ãndern",removeCard:"Entfernen",cardRemoved:"Karte entfernt",cardRemoveFailed:"Karte konnte nicht entfernt werden",cardSetupFailed:"Karteneinrichtung konnte nicht gestartet werden",lowBalanceGroup:"Warnungen bei niedrigem Guthaben",thresholdLabel:"Warnschwelle"},Ett={title:"Transaktionsverlauf",idSearch:"Transaktions-ID",amountRange:"Betragsbereich (USD)",min:"Min.",max:"Max.",clear:"Löschen",retry:"Erneut versuchen",empty:"Keine Transaktionen in diesem Bereich",date:"Datum",typeMethod:"Typ / Methode",description:"Beschreibung",action:"Aktion",prevMonth:"Vorheriger Monat",nextMonth:"Nächster Monat",viewInvoices:"Rechnungen anzeigen",emptyNew:"Noch keine Transaktionen",emptyNewDesc:"Nach dem Aufladen erscheinen deine Aufladungen, Boni und Erstattungen hier.",topUpCta:"Aufladen",emptyFiltered:"Keine passenden Transaktionen",emptyFilteredDesc:"Leere die Filter oder erweitere den Zeitraum.",clearFilters:"Filter leeren"},Itt="Dein Guthaben ist niedrig und kann Requests unterbrechen. Lade auf oder aktiviere automatische Aufladung.",Ott="Dein Guthaben ist niedrig und kann Requests unterbrechen. Lade auf, um fortzufahren.",Ltt={creditPurchase:"Guthabenaufladung",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Coupon-Bonus",referralCashback:"Empfehlungs-Cashback",referralInviteeCashback:"Bonus für Eingeladene",redeemCode:"Einlösecode {{code}}",redeemCodeReversal:"Einlösecode storniert",stripeRefund:"Stripe-Erstattung",bonusReversal:"Bonusr
771ückbuchung (Erstattung)"},Utt={title:"Zweckgebundenes Guthaben",subtitle:"Bonusguthaben, das nur für bestimmte Modelle nutzbar ist â getrennt von Ihrem Guthaben.",onlyModels:"Nur {{models}}",onlyModelsGeneric:"Eingeschränkte Modelle",validUntil:"Gültig bis {{date}}",noExpiry:"Kein Ablaufdatum",useInChat:"Use in chat"},Btt={card:"Karte",alipay:"Alipay",wechatPay:"WeChat Pay"},Ftt={title:"Einlösecode",description:"Du hast einen Einlösecode? Gib ihn ein, um den Nennwert deinem Guthaben gutzuschreiben.",placeholder:"Zum Beispiel: OHR-XXXXXXXX",redeem:"Einlösen",redeeming:"Wird eingelöstâ¦",success:"{{amount}} dem Guthaben gutgeschrieben",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"Dieser Code ist ungültig.",expired:"Dieser Code ist abgelaufen.",alreadyRedeemed:"Dieser Code wurde bereits eingelöst.",perUserLimit:"Du hast das Einlöselimit für diese Charge erreicht."}},ztt={title:Ket,description:Get,breakdown:Wet,referralRewards:Yet,burnRate:Qet,topup:Xet,addCredits:Zet,creating:Jet,availableCredit:ett,topUp:ttt,poweredByStripe:ntt,amountUsd:att,presetAmounts:ott,redeemCoupon:stt,couponCode:rtt,redeeming:itt,redeem:ltt,couponRedeemed:ctt,redirecting:dtt,summaryFailed:utt,topupFailed:mtt,tabsLabel:ptt,transactions:ftt,creditGrants:gtt,transactionType:htt,source:ytt,noTransactions:vtt,noTransactionsDescription:btt,ledgerEntries:xtt,time:$tt,type:wtt,amount:ktt,balance:Ctt,noGrants:Stt,noGrantsDescription:Att,status:Ttt,topupBanner:Rtt,compliance:Ptt,receipts:_tt,openingPortal:jtt,portalFailed:Ntt,recentTopups:Dtt,alerts:Mtt,history:Ett,lowBalanceWarning:Itt,lowBalanceWarningNoAutoTopup:Ott,ledgerDesc:Ltt,earmarked:Utt,paymentMethod:Btt,redeemCard:Ftt},qtt="Diagramm konnte nicht geladen werden",Htt="Keine Daten",Vtt="Es gibt noch nichts zu visualisieren.",Ktt={errorTitle:qtt,emptyTitle:Htt,emptyDescription:Vtt},Gtt={copy:"Kopieren",regenerate:"Neu generieren",shareComingSoon:"Teilen (bald verfügbar)",download:"Herunterladen",copyLink:"Link kopieren",newChat:"Neuer Chat",deleteChat:"Chat löschen",openConversationList:"Konversationsliste öffnen",openSettings:"Chat-Einstellungen",collapseSidebar:"Seitenleiste einklappen",expandSidebar:"Seitenleiste ausklappen",cancel:"Abbrechen",apply:"Anwenden",newChatTooltip:"Neuen Chat erstellen",copied:"Kopiert"},Wtt={placeholderReady:"Neue Konversation starten...",placeholderNoModel:"Wählen Sie zuerst oben ein Modell aus",attachmentTooLarge:"Die Datei ist gröÃer als {{limit}} und kann nicht hochgeladen werden",attachmentUnsupported:"Nicht unterstützter Dateityp. Verwende PNG, JPEG, WebP, GIF, MP4, WebM oder MOV.",unsupportedVision:"Dieses Modell akzeptiert keine Bild- oder Videoeingaben. Wechsle das Modell, bevor du Dateien ablegst.",send:"Senden",abort:"Stoppen",attachImage:"Bild hinzufügen",attachMedia:"Bild oder Video hinzufügen",removeAttachment:"Entfernen",shortcutSend:"senden",shortcutNewLine:"neue Zeile",shortcutAbort:"stoppen",frameFirst:"Erstes Bild",frameLast:"Letztes Bild",frameReference:"Referenz",imageMode:"Bildgenerierung",videoMode:"Videogenerierung",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"Denken",reasoningOff:"Aus",reasoningAlways:"Immer aktiv",placeholderTopupRequired:"Dieses Modell ist Konten mit Aufladung vorbehalten â laden Sie auf, um es hier zu nutzen"},Ytt={modelUnavailable:"Das Modell {{model}} ist derzeit nicht verfügbar. Ihr Prompt wurde trotzdem gespeichert.",rateLimited:"Zu viele gleichzeitige Anfragen. Versuchen Sie es gleich noch einmal.",accountDisabled:"Dieses Konto ist deaktiviert und kann den Chat nicht fortsetzen.",attachmentsUploading:"Bilder werden noch hochgeladen. Bitte kurz warten, bevor du sendest.",attachmentsFailed:"Ein Bild konnte nicht hochgeladen werden. Entferne es und versuche es erneut, bevor du sendest."},Qtt={title:"Testen Sie hier jedes beliebige Modell.",body:"Chatten Sie direkt mit jedem Modell. Die Nutzung wird Ihrem PAYG-Wallet belastet.",starters:{compareModels:"GPT-5.5 und Claude Opus mit derselben Coding-Aufgabe vergleichen",analyzeImage:"Ein Architekturdiagramm analysieren und die Risiken zusammenfassen",draftPrompt:"Einen System-Prompt für einen Support-Agenten entwerfen",generateImage:"Ein Produkt-Hero-Bild in einem klaren SaaS-Stil generieren"}},Xtt={untitled:"Unbenannter Chat",deleteConfirm:'"{{title}}" löschen?',emptyTitle:"Noch keine Konversationen",emptyBody:"Starten Sie oben mit + Neuer Chat.",listLabel:"Konversationsliste",groups:{today:"Heute",yesterday:"Gestern",earlier:"Früher"},menu:{rename:"Umbenennen",delete:"Löschen"},deleteTitle:"Unterhaltung löschen?"},Ztt={paygWallet:"PAYG-Wallet"},Jtt={chooseModel:"Modell auswählen",searchPlaceholder:"Modelle suchen...",emptyTitle:"Keine Modelle gefunden",emptyBody:"Versuchen Sie einen anderen Suchbegriff oder Tab.",protocols:"{{count}} Protokolle",context:"{{value}} ctx",tabs:{all:"Alle",text:"Text",image:"Bild",video:"Video"},maxOut:"Ausgabe {{value}}",unavailable:"Vorübergehend nicht verfügbar",requiresTopup:"Zum Freischalten aufladen"},ent={title:"Chat-Einstellungen",protocol:"Protokoll",unlimited:"Unbegrenzt",fields:{memory_limit:{label:"Chat-Speicher"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max. tokens",placeholder:"128000"},service_tier:{label:"Service-Stufe",options:{standard:"Standard",priority:"Priorität",flex:"Flex"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"z. B. 2000"},stop_sequences:{label:"Stop Sequences",placeholder:"Durch Kommas getrennt, z. B. END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"System-Prompt eingeben..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"Implizit",explicit:"Explizit"}},image_size:{label:"Bildauflösung"},image_resolution:{label:"Auflösung"},image_quality:{label:"Bildqualität",options:{Auto:"Auto",auto:"Auto",low:"Niedrig",medium:"Mittel",high:"Hoch"}},video_ratio:{label:"Seitenverhältnis"},video_resolution:{label:"Videoauflösung"},video_duration_seconds:{label:"Dauer"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"Bildanzahl"},image_aspect_ratio:{label:"Seitenverhältnis"},reasoning_effort:{label:"Reasoning-Aufwand",options:{none:"Aus",minimal:"Minimal",low:"Niedrig",medium:"Mittel",high:"Hoch",xhigh:"Sehr hoch",max:"Maximal"}},reasoning_pro:{label:"Pro-Modus"},reasoning_context:{label:"Reasoning-Kontext",options:{auto:"Auto",current_turn:"Aktueller Turn",all_turns:"Alle Turns"}},reasoning_enabled:{label:"Denken"},reasoning_always:{label:"Denken",value:"Immer aktiv"}}},tnt={estimating:"wird geschätzt...",settling:"wird abgerechnet...",input:"ein",output:"aus",milliseconds:"ms",realCost:"Tatsächliche Kosten",latency:"Latenz",logDetail:"Logdetails"},nnt={copied:"Bildlink kopiert",expired:"Der Bildlink ist abgelaufen. Kopieren Sie den Link, um ihn erneut zu öffnen, oder generieren Sie neu.",attachment:"[Bildanhang]"},ant={message:"Dieser Chat wird Ihrem PAYG-Wallet berechnet",balance:"Guthaben",billingLink:"Abrechnung",dismiss:"Ausblenden"},ont={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."}
771,snt={trigger:"Als Code kopieren",copied:"Als {{format}} kopiert",failed:"Kopieren fehlgeschlagen",failedDescription:"Die Zwischenablage-Berechtigung kann vom Browser blockiert sein."},rnt={interrupted:"[Unterbrochen]",sending:"wird gesendet"},int={title:"Denkprozess",duration:"{{seconds}}s nachgedacht"},lnt={title:"Videogenerierung ist bald verfügbar",body:"Dieses Modell wird zur Entdeckung gelistet, aber das Senden von Videos ist noch nicht aktiviert.",switchToText:"Zu einem Textmodell wechseln"},cnt={imageGenerating:"Bild wird generiert",videoGenerating:"Video wird generiert",stage:{queued:"In Warteschlange",routing:"Routing",generating:"Generierung",storing:"Speicherung",settling:"Abrechnung"}},dnt={INSUFFICIENT_CREDITS:"Guthaben unzureichend",RATE_LIMITED:"Zu viele Anfragen",rate_limit_error:"Zu viele Anfragen",MODEL_NO_VISION:"Dieses Modell unterstützt keine Bildeingabe",CONTENT_REFUSED:"Das Modell hat diese Anfrage abgelehnt",EMPTY_RESPONSE:"Das Modell hat eine leere Antwort zurückgegeben",upstream_error:"Fehler des Upstream-Dienstes",overloaded_error:"Upstream-Dienst ist ausgelastet",upstream_invalid_json:"Fehlerhafte Upstream-Antwort",stream_read_error:"Antwort-Stream unterbrochen",invalid_api_key:"Upstream-Authentifizierung fehlgeschlagen",model_unavailable:"Modell vorübergehend nicht verfügbar",no_image:"Es wurde kein Bild generiert",no_body:"Keine Antwort vom Upstream-Dienst",http_error:"Anfrage fehlgeschlagen",session_create_failed:"Sitzung konnte nicht erstellt werden"},unt={title:"Laden Sie auf, um dieses Modell freizuschalten",body:"Es steht Konten mit Aufladung offen. Jeder Betrag schaltet es sofort frei, das Guthaben wird weiterhin nutzungsbasiert abgerechnet.",cta:"Aufladen"},mnt={actions:Gtt,composer:Wtt,errors:Ytt,empty:Qtt,sidebar:Xtt,header:Ztt,modelSelector:Jtt,settings:ent,metrics:tnt,image:nnt,payg:ant,earmark:ont,copyAsCode:snt,status:rnt,thinking:int,video:lnt,media:cnt,errorCodes:dnt,topupLock:unt},pnt="Wird geladen...",fnt="Konto",gnt="Sprache",hnt="Anmelden",ynt="Abmelden",vnt="Abmeldung läuft...",bnt="Ãnderungen speichern",xnt="Speichern...",$nt="Gespeichert.",wnt="Zurück",knt="Erneut versuchen",Cnt="5% Rabatt auf die Servicegebühr beim Aufladen.",Snt="Speichern",Ant="Abbrechen",Tnt="Löschen",Rnt="Zurücksetzen",Pnt="Kopiert",_nt="Kopieren fehlgeschlagen",jnt="SchlieÃen",Nnt="Gesamt",Dnt={timestamp:"Zeitstempel",local:"Lokalzeit",relative:"Relativ"},Mnt="Kopieren",Ent={title:"Im Browser öffnen",description:"Du siehst diese Seite in einem <b>In-App-Browser</b>, in dem <b>Google-Anmeldung und die Mensch-Verifizierung nicht funktionieren</b>. Bitte öffne sie in deinem Systembrowser, um fortzufahren.",hintWechat:"Tippe oben rechts auf das Menü ··· und wähle âIm Browser öffnenâ.",hintGeneric:"Wähle über das Menü oben rechts âIm Browser / Safari öffnenâ.",copyLink:"Link kopieren",continueAnyway:"Trotzdem fortfahren"},Int="Alle",Ont="Aktiv",Lnt="Nicht gesetzt",Unt="Entfernen",Bnt={loading:pnt,account:fnt,language:gnt,signIn:hnt,signOut:ynt,signingOut:vnt,saveChanges:bnt,saving:xnt,saved:$nt,back:wnt,retry:knt,topUpPromo:Cnt,save:Snt,cancel:Ant,clearAll:Tnt,reset:Rnt,copied:Pnt,copyFailed:_nt,dismiss:jnt,total:Nnt,time:Dnt,copy:Mnt,inAppBrowser:Ent,all:Int,active:Ont,optional:Lnt,remove:Unt},Fnt="Dashboard",znt="Ãberwache Credits, Nutzung und gateway-Zustand in einer Konsole.",qnt="API key erstellen",Hnt={creditBalance:"Credit-Guthaben",requestsToday:"Requests heute",activeApiKeys:"Aktive API keys"},Vnt={title:"Nutzungstrend",description:"Requests und abgerechneter credit der letzten 14 Tage.",viewUsage:"Nutzung ansehen",loading:"Nutzungstrend wird geladen",empty:"Noch keine Nutzung",emptyDescription:"Nutzung erscheint hier, sobald Requests eingehen."},Knt={title:"Credit-Aktivität",description:"Täglich abgerechneter credit der letzten 90 Tage.",total:"90-Tage-Summe",loading:"Aktivität wird geladen",activeDays:"{{count}} aktive Tage in den letzten {{days}} Tagen",less:"Weniger",more:"Mehr"},Gnt={title:"Nutzungsmix",description:"Kompakte Sicht auf Ausgabenintensität, Token-Volumen und das Modell mit der meisten Nutzung.",activeDays:"Aktive Tage",ofDays:"von {{days}} Tagen",avgDailyCredit:"à credit pro Tag",nonZeroDays:"an aktiven Tagen",peakDay:"Spitzentag",noPeak:"Noch keine Nutzung",tokens:"Tokens",topModel:"Top-Modell",creditShare:"Anteil am abgerechneten credit"},Wnt={title:"Schnellstatus",requests7d:"7-Tage-Requests",creditToday:"Heute verbrauchter credit",credit7d:"7-Tage-credit-Verbrauch"},Ynt={title:"Letzte Requests",description:"Aktuelle gateway-Aufrufe über deine keys.",viewRecords:"Records ansehen",table:{label:"Letzte Requests",model:"Modell",status:"Status",tokens:"Tokens",credit:"Credit",time:"Zeit",apiKey:"API key"}
771,empty:"Noch keine Requests",emptyDescription:"Erstelle einen API key, sende einen Request, und letzte Aufrufe erscheinen hier."},Qnt={title:"Ersten Request senden",description:"OpenAI-kompatibel. Erstelle einen key, setze {{env}} und rufe dann das gateway auf."},Xnt={credit:"Credit",requests:"Requests"},Znt={title:Fnt,description:znt,createApiKey:qnt,cards:Hnt,usageTrend:Vnt,activity:Knt,usageMix:Gnt,quickHealth:Wnt,recent:Ynt,firstRequest:Qnt,tooltip:Xnt},Jnt="Alle Zeilen auswählen",eat="Zeile {{row}} auswählen",tat="Laden fehlgeschlagen",nat="Keine Daten",aat="Es gibt keine anzuzeigenden Datensätze.",oat="Weitere Details",sat="{{count}} weitere Details",rat="Details öffnen",iat={selectAllRows:Jnt,selectRow:eat,errorTitle:tat,emptyTitle:nat,emptyDescription:aat,moreDetails:oat,moreDetailsWithCount:sat,openRow:rat},lat="Letzte 1 Stunde",cat="Heute",dat="Gestern",uat="Letzte 7 Tage",mat="Letzte 30 Tage",pat="Dieser Monat",fat="Nach Monat",gat="Benutzerdefiniert",hat="Gesamter Zeitraum",yat="Datum auswählen",vat="Abbrechen",bat="Anwenden",xat="Das Startdatum muss vor dem Enddatum liegen.",$at="Zeitraum-Vorlagen",wat="Vorheriger Monat",kat="Nächster Monat",Cat={last1h:lat,today:cat,yesterday:dat,last7d:uat,last30d:mat,thisMonth:pat,byMonth:fat,custom:gat,all:hat,selectDate:yat,cancel:vat,apply:bat,reversedError:xat,presetsAriaLabel:$at,previousMonth:wat,nextMonth:kat},Sat="Konto nicht verfügbar",Aat="Konto wird initialisiert",Tat={title:"Konto gesperrt",description:"Dieses Konto kann sich weiterhin anmelden, aber Konsolenzugriff und Gateway-Anfragen sind pausiert.",detail:"Wenn das unerwartet ist, kontaktiere support über die E-Mail-Adresse dieses Kontos."},Rat={accountUnavailable:Sat,accountInitializing:Aat,accountRestricted:Tat},Pat="Kostenlose Tokens",_at="Tägliches Kontingent kostenloser Tokens für ausgewählte Modelle â es wird automatisch aufgefüllt. Es wird nichts von deinem Guthaben abgebucht.",jat="Dein Kontingent an kostenlosen Tokens konnte nicht geladen werden.",Nat="Alle Modelle",Dat="Aktion endet am {{date}}",Mat={daily:"Täglich",weekly:"Wöchentlich"},Eat={daily:"Wird täglich aufgefüllt",weekly:"Wird wöchentlich aufgefüllt",localTime:"deine Ortszeit {{time}}",countdown:"nächste Auffüllung in {{duration}}",refreshingSoon:"wird bald aufgefüllt"},Iat={title:"Keine aktiven Aktionen für kostenlose Tokens",description:"Wenn eine Aktion für kostenlose Tokens läuft, wird dein tägliches Kontingent hier angezeigt."},Oat={title:"Die Vergabe kostenloser Tokens ist für dein Konto pausiert",body:"Dieses Konto sieht nach einem Muster für Massenregistrierungen aus, daher ist die kostenlose Vergabe vorerst pausiert. Falls das ein Fehler ist, melde dich unter"},Lat="Tokens",Uat="Heute noch {{value}} Tokens übrig",Bat={label:"E-Mail bei Aufbrauchen",hint:"Erhalte eine E-Mail, wenn deine kostenlosen Tokens für heute aufgebraucht sind."},Fat={crg_freetoken_daily_cn5:"Chinesische Modelle · tägliche Gratis-Tokens"},zat={title:Pat,description:_at,loadFailed:jat,allModels:Nat,campaignEnds:Dat,cadence:Mat,refresh:Eat,empty:Iat,paused:Oat,tokensUnit:Lat,remainingToday:Uat,emailToggle:Bat,campaigns:Fat},qat="Protokolle",Hat="Prüfe Kosten, Latenz, tokens, Status und routing-Signale pro Request.",Vat={copiedCurl:"curl kopiert",copiedId:"Request-ID kopiert",copyCurl:"Als curl kopieren",copyFailed:"Kopieren fehlgeschlagen",copyId:"Request-ID kopieren",menu:"Zeilenaktionen",openTab:"In neuem Tab öffnen"},Kat={prompt:"Prompt",ratio:"Trefferquote",read:"Cache-Lesezugriff",title:"Cache-Trefferquote"},Gat={confirm:"Job abbrechen",failed:"Job konnte nicht abgebrochen werden",keep:"Behalten",message:"Dieser Job befindet sich noch in der Warteschlange. Abbrechen verhindert die Verarbeitung; es wird nichts berechnet.",success:"Job abgebrochen",title:"Job abbrechen?",pending:"Wird abgebrochen..."},Wat={cacheHit:"Cache-Treffer",cost:"Kosten",ip:"IP",latency:"Latenz",model:"Modell",source:"Quelle",status:"Status",stream:"Streaming",time:"Zeit",tokens:"Tokens",tps:"Throughput"},Yat={trigger:"Spalteneinstellungen"},Qat={body:"Sende einen Request über OneHop, dann erscheint er hier.",title:"Keine Logs in diesem Zeitraum"},Xat={all:"Alle",apiKey:"API key",cost:"Kosten (USD)",desktopDateRangeAria:"Datumsbereich auf Desktop auswählen",finishReason:"Beendigungsgrund",latency:"Latenz (s)",max:"Max.",min:"Min.",mobileDateRangeAria:"Datumsbereich auf Mobilgerät auswählen",model:"Modell",modelsSelected:"{{count}} ausgewählt",more:"Weitere Filter",refresh:"Aktualisieren",request:"Nach Request-ID suchen",requestIdLabel:"Request-ID",status:"Status",stream
771:"Streaming",time:"Zeit",type:"Typ",mobileTitle:"Filter"},Zat={requests:"Requests auf dieser Seite",times:"Zeiten angezeigt in"},Jat={rowsPer:"Zeilen"},eot={all:"Gesamter Zeitraum",custom:"Benutzerdefiniert",last1h:"Letzte 1 Stunde",last30d:"Letzte 30 Tage",last7d:"Letzte 7 Tage",thisMonth:"Dieser Monat",today:"Heute",yesterday:"Gestern"},tot={title:"Client",unknown:"Kein user-agent gemeldet",unknownShort:"Unbekannt"},not={output:"Ausgabe-tokens",rate:"Rate",title:"Throughput",window:"Generierungsfenster"},aot={title:"Request",openDetail:"Request-Details öffnen",copy:"ID kopieren",copied:"Kopiert",copyFailed:"Kopieren fehlgeschlagen",close:"SchlieÃen",loading:"Wird geladenâ¦",response:"Antwort",sections:{request:"Request",routing:"Routing",tokens:"Tokens",cost:"Kostenaufschlüsselung",performance:"Performance",error:"Fehler",outcome:"Ergebnis",multimodal:"Multimodalität"},fields:{requestId:"Request-ID",time:"Zeit",apiKey:"API key",userAgent:"User-Agent",billingMode:"Abrechnungsmodus",onehopModel:"OneHop-Modell",endpoint:"Endpoint",firstToken:"Erster token",total:"Gesamtdauer",throughput:"Throughput",stream:"Streaming",clientIp:"Client-IP",finishReason:"Beendigungsgrund",mediaType:"Medientyp",imageCount:"Bilder",imageSize:"GröÃe",errorCode:"Fehlercode",errorMessage:"Nachricht",requestedModel:"Angefordertes Modell"},billingMode:{token:"Pro token",per_request:"Pro Request",image:"Pro Bild"},timeline:{heading:"Lebenszyklus",received:"Request empfangen",routed:"Geroutet",failed:"Fehlgeschlagen",generated:"Generiert",metered:"Gemessen",billed:"Abgerechnet"},downloadMedia:"Herunterladen"},oot={success:"erfolgreich",completed:"abgeschlossen",failed:"fehlgeschlagen",pending:"ausstehend",repairing:"repariert",queued:"in Warteschlange",running:"läuft",cancelled:"abgebrochen",expired:"abgelaufen"},sot={chat:"Chat",image:"Bild",video:"Video"},rot={stop:"Stop",length:"Längenlimit",tool_calls:"Tool-Aufrufe",content_filter:"Content-Filter",error:"Fehler"},iot={true:"Streaming",false:"Kein Streaming"},lot={title:"Kostenaufschlüsselung"},cot={title:"Token-Aufschlüsselung",prompt:"Eingabe",completion:"Ausgabe",imageOutput:"Bild-Ausgabe-Tokens",cacheRead:"Cache-Lesezugriff",cacheWrite:"Cache-Schreibzugriff",cacheWrite5m:"Cache-Schreibzugriff 5m",cacheWrite1h:"Cache-Schreibzugriff 1h",total:"Gesamt"},dot={timestamp:"Zeitstempel",local:"Lokalzeit",relative:"Relativ"},uot={inputCost:"Input-Kosten",outputCost:"Output-Kosten",cacheReadCost:"Cache-Lesekosten",cacheWriteCost:"Cache-Schreibkosten",inputPrice:"Input-Preis",outputPrice:"Output-Preis",total:"Gesamt",officialPrice:"Offizieller Preis",saved:"Ersparnis",factor:{textInput:"Text-Eingabe",textOutput:"Text-Ausgabe",imageInput:"Bild-Eingabe",imageOutput:"Bild-Ausgabe",perCallImage:"Pro Bild",videoPerSecond:"Video",videoPerCall:"Video",cacheRead:"Cache-Lesen",cacheWrite:"Cache-Schreiben",cacheWrite5m:"Cache-Schreiben (5m)",cacheWrite1h:"Cache-Schreiben (1h)"},unit:{per1mTokens:"/ 1M Tokens",perImage:"/ Bild",perSecond:"/ Sek.",perCall:"/ Aufruf"},promoBasis:"Vor Aktion",promoSaved:"Aktionsrabatt",freeCovered:"Freikontingent ({{tokens}} Tokens)",freeCoveredNoCount:"Freikontingent"},mot={noPreview:"Keine Vorschau verfügbar",video:"Video"},pot={free:"Kostenlos"},fot={title:qat,description:Hat,actions:Vat,cacheHit:Kat,cancelJob:Gat,col:Wat,columns:Yat,empty:Qat,filter:Xat,meta:Zat,pager:Jat,range:eot,source:tot,tps:not,drawer:aot,status:oot,type:sot,finishReason:rot,stream:iot,costBreakdown:lot,tokensBreakdown:cot,time:dot,userCost:uot,export:{label:"CSV exportieren",exporting:"Exportiertâ¦",done:"{{n}} Zeilen exportiert.",truncated:"Die ersten {{n}} Zeilen wurden exportiert. Grenze den Zeitraum ein, um den Rest zu exportieren.",failed:"Export fehlgeschlagen. Bitte versuche es erneut."},media:mot,cost:pot},got="Modelle",hot="Durchsuche alle verfügbaren Modelle, Kontextlängen, Eingabe-/Ausgabepreise und Fähigkeiten, und favorisiere deine meistgenutzten Modelle.",yot={all:"Alle",favorites:"Meine Favoriten",benefit:"Vorteil",hot:"Beliebt",free:"Free"},vot={capability:"Typ",allCapabilities:"Alle Typen",capability_text:"Text",capability_image:"Bild",capability_audio:"Audio",capability_video:"Video",provider:"Anbieter",allProviders:"Alle Anbieter",protocol:"Protokoll",allProtocols:"Alle Protokolle",sort:"Sortieren",search:"Suchen",searchPlaceholder:"Modell / Anbieter",allContexts:"Beliebige Länge",context:"Kontext",mobileTitle:"Filter"},bot="Empfohlen",xot="Neueste",$ot="Top der Woche",wot="Name (A-Z)",kot="Preis (aufsteigend)",Cot="Preis (absteigend)",Sot="Kontextlänge",Aot="Latenz",Tot="Durchsatz",Rot="OpenAI Chat",Pot="OpenAI Responses",_ot="Anthropic",jot="Vertex AI",Not="OpenAI Images",Dot="OpenAI Video",Mot={label:"Modelle",model:"Modell",provider:"Anbieter",capabilities:"Fähigkeiten",context:"Kontext",price:"Preis",discount:"Rabatt",action:"Aktion",tryIt:"Ausprobieren",type:"Typ",maxOutput:"Max. Ausgabe",copyId:"Modell-ID kopieren",copied:"Kopiert",usage:"Nutzung",stability:"Stabilität",protocols:"Protokolle",openDetail:"Open model detail"},Eot="Beliebt",Iot="Vorteil",Oot={add:"Favorit hinzufügen",remove:"Favorit entfernen"},Lot={favorites:"Noch keine Favoriten",noMatch:"Keine passenden Modelle"},Uot="Text",Bot="Bild",Fot="Datei",zot="Video",qot="Audio",Hot="Embeddings",Vot="Vision",Kot="Tool-Aufrufe",Got="JSON-Modus",Wot="Bildgenerierung",Yot="Bildbearbeitung",Qot="Text",Xot="Bild",Zot="Video",Jot="Audio",est="Embedding",tst="Offiziell",nst="Kiro",ast="ab",ost="/ Aufruf",sst="/ Sek.",rst="/ 1M",ist="Schnell",lst="Free",cst="Coming Soon",dst="Free",ust={ariaLabel:"Preiswährung",usd:"USD",rmb:"Yuan (Â¥)",settlement:"Preise in Yuan zum festen Kurs {{rate}} umgerechnet, nur als Richtwert; deine Abrechnung erfolgt stets in USD nach tatsächlicher Nutzung."},mst="Aufladung nötig",pst={title:got,description:hot,tabs:yot,filters:vot,sort_featured:bot,sort_newest:xot,sort_top_weekly:$ot,sort_name:wot,sort_price_asc:kot,sort_price_desc:Cot,sort_context:Sot,sort_latency:Aot,
771sort_throughput:Tot,protocol_openai_chat:Rot,protocol_openai_responses:Pot,protocol_anthropic_messages:_ot,protocol_google_vertex_ai:jot,protocol_openai_images:Not,protocol_openai_sora:Dot,table:Mot,badge_hot:Eot,badge_benefit:Iot,favorite:Oot,empty:Lot,modality_text:Uot,modality_image:Bot,modality_file:Fot,modality_video:zot,modality_audio:qot,modality_embeddings:Hot,capability_vision:Vot,capability_tool_calling:Kot,capability_json_mode:Got,capability_image_generation:Wot,capability_image_edit:Yot,type_text:Qot,type_image:Xot,type_video:Zot,type_audio:Jot,type_embedding:est,provider_official:tst,provider_kiro:nst,price_from:ast,price_perCall:ost,price_perSec:sst,price_per1m:rst,price_fast:ist,badge_free:lst,badge_unavailable:cst,price_free:dst,currency:ust,badge_requiresTopup:mst},fst={main:"Hauptnavigation",utility:"Werkzeugnavigation",console:"Konsolen-Navigation",openNavigation:"Navigation öffnen",collapse:"Seitenleiste einklappen",expand:"Seitenleiste ausklappen"},gst={platform:"Konsole",chat:"Chat",models:"Modelle",logs:"Protokolle",jobs:"Jobs",apiKeys:"API keys",usage:"Nutzung",billing:"Abrechnung",freeTokens:"Kostenlose Tokens",referrals:"Einladungen",settings:"Einstellungen",admin:"Admin",balance:"Guthaben",helpSupport:"Hilfe & Support",announcements:"Ankündigungen",announcementsTitle:"Ankündigungen",announcementsEmpty:"Noch keine Ankündigungen. Schau bald wieder vorbei.",announcementsTicketUnread:"{{count}} Ticket(s) mit neuen Antworten",support:"Support-Tickets",tasks:"Aufgaben",tagNew:"NEU"},hst={staff:"Team"},yst={dashboard:"Ãbersicht",users:"Benutzer",billing:"Plattformabrechnung",usage:"Plattformnutzung",rateLimits:"Rate Limits",access:"Zugriff",staff:"Admins",growth:"Wachstum",models:"Modelle",announcements:"Ankündigungen",upstream:"Upstream",auditLogs:"Audit-Logs",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},vst={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},bst={aria:fst,public:{models:"Modelle",pricing:"Preise",docs:"Doku",blog:"Blog",changelog:"Versionshinweise"},console:gst,adminGroups:hst,admin:yst,notifications:vst},xst={back:"Zurück",done:"Fertig",next:"Weiter",stepOf:"{{current}} / {{total}}"},$st={balance:{body:"Lade nach Bedarf auf. Nicht verbrauchtes Guthaben ist jederzeit erstattbar.",title:"Dein Guthaben"},keys:{body:"Erstelle hier eine key und richte jedes Tool auf OneHop aus.",title:"Erstelle deine erste API key"},models:{body:"Sieh alle aufrufbaren Modelle und ihre Preise auf einer Seite.",cta:"Modelle öffnen",title:"Modelle ansehen"}},wst={body:"Ein URL für alle Modelle. In 30 Sekunden zeigen wir dir drei Dinge.",skip:"Ãberspringen",start:"Starten",title:"Willkommen bei OneHop"},kst={nav:xst,steps:$st,welcome:wst},Cst="Failed to load",Sst="Nothing here yet.",Ast="Weitere Details",Tst={failedLoad:Cst,emptyDescription:Sst,moreDetails:Ast},Rst="Alle",Pst="Erfolgreich",_st="Ausstehend",jst="Wird repariert",Nst="Fehlgeschlagen",Dst="Erstattet",Mst="Aktiv",Est="Deaktiviert",Ist="Aufgebraucht",Ost="Reserviert",Lst="Eingelöst",Ust="Gesperrt",Bst="Gelöscht",Fst="Normal",zst="Unter Beobachtung",qst="Blockiert",Hst="Gewährt",Vst="Zurückgebucht",Kst="Abgelaufen",Gst="Abgelehnt",Wst="Entwurf",Yst="Veröffentlicht",Qst="Veraltet",Xst="Archiviert",Zst="Ausgeblendet",Jst="Erstellt",ert="Checkout geöffnet",trt="Bezahlt",nrt="Abgebrochen",art="OpenAI Chat",ort="OpenAI Responses",srt="Anthropic Messages",rrt="Google Vertex AI",irt="OpenAI Images",lrt="Nutzungsgebühr",crt="Signup-Bonus",drt="Promo-Bonus",urt="Referral-Bonus",mrt="Kompensationsbonus",prt="Top-up-Bonus",frt="Manuelle Anpassung",grt="Credit-Kauf",hrt="Zahlung",yrt="Signup-Bonus",vrt="Coupon",brt="Admin-Gutschrift",xrt="API-Nutzung",$rt="Signup-Bonus",wrt="Manuelle Gutschrift",krt="Sync",Crt="Streaming",Srt="Token billing",Art="Request billing",Trt="Image billing",Rrt="Low reasoning",Prt="Medium reasoning",_rt="High reasoning",jrt="Nicht anwendbar",Nrt="Unbekannt",Drt="Eingefroren",Mrt="Freigegeben",Ert="Storniert",Irt="Teilweise zurückgebucht",Ort="Ãbersprungen",Lrt={all:Rst,success:Pst,pending:_st,repairing:jst,failed:Nst,refunded:Dst,active:Mst,disabled:Est,exhausted:Ist,reserved:Ost,redeemed:Lst,suspended:Ust,deleted:Bst,normal:Fst,watchlisted:zst,blocked:qst,granted:Hst,reversed:Vst,expired:Kst,denied:Gst,draft:Wst,published:Yst,deprecated:Qst,archived:Xst,public:"Ãffentlich",hidden:Zst,created:Jst,checkout_opened:ert,paid:trt,canceled:nrt,openai_chat:art,openai_responses:ort,anthropic_messages:srt,google_vertex_ai:rrt,openai_images:irt,usage_charge:lrt,bonus_signup_grant:crt,bonus_promo_grant:drt,bonus_referral_grant:urt,bonus_compensation_grant:mrt,bonus_topup_grant:prt,manual_adjustment:frt,credit_purchase:grt,payment:hrt,signup:yrt,coupon:vrt,admin:brt,api:xrt,signup_bonus:$rt,manual:wrt,sync:krt,stream:Crt,token:Srt,request:Art,image:Trt,low:Rrt,medium:Prt,high:_rt,not_applicable:jrt,unknown:Nrt,frozen:Drt,released:Mrt,cancelled:Ert,partially_reversed:Irt,skipped:Ort},Urt="{{count}} pro Seite",Brt="Insgesamt {{count}}",Frt={perPage:Urt,total:Brt},zrt="Einladen & verdienen",qrt="Teile deinen persönlichen Link. Sobald eingeladene Nutzer aufladen, wird die Vergütung für beide Seiten klar erfasst.",Hrt="Einladungsdaten konnten nicht geladen werden",Vrt="Dein Einladungslink",Krt="Teilen",Grt="Einladung kopiert. Füge sie in WeChat ein, um sie zu teilen.",Wrt="Kopieren",Yrt="Kopiert",Qrt="WeChat",Xrt="X",Zrt="Telegram",Jrt="Reddit",eit="LinkedIn",tit="WhatsApp",nit="E-Mail",ait="Facebook",oit={default:{title:"Alle AI-Modelle über eine OneHop API aufrufen",body:"Registriere dich über meinen Einladungslink. Wenn du innerhalb von {{firstWindowDays}} Tagen erstmals auflädst, erhalten wir beide {{percent}}% zurück."},x:{title:"Eine API für jedes AI-Modell ð¤",body:"Lade innerhalb von {{firstWindowDays}} Tagen über meinen Link erstmals auf und wir bekommen beide {{percent}}% zurück. ð"},telegram:{title:"Mit OneHop alle AI-Modelle nutzen",body:"Nutze meinen Einladungslink. Deine erste Aufladung innerhalb von {{firstWindowDays}} Tagen bringt uns beiden {{percent}}% Empfehlungsguthaben."},whatsapp:{title:"Alle AI-Modelle nutzen â mit OneHop",body:"Mach über meinen Einladungslink mit. Lade innerhalb von {{firstWindowDays}} Tagen erstmals auf und wir bekommen beide {{percent}}% zurück."},reddit:{title:"OneHop â eine API für jedes AI-Modell. Ãber meinen Einladungslink bekommen wir beide {{percent}}% auf deine erste Aufladung zurück",body:"Lade innerhalb von {{firstWindowDays}} Tagen erstmals auf und wir erhalten beide {{percent}}% Empfehlungsguthaben."},email:{title:"Einladung zu OneHop â alle AI-Modelle über eine API",body:`Hallo, 772 773ich nutze OneHop, um alle wichtigen AI-Modelle über eine einzige API aufzurufen. Wenn du dich über meinen Einladungslink registrierst und deine erste Aufladung machst, erhalten wir beide Empfehlungsguthaben. 774 775Reward-Stufen: {{tiers}}. 776 777Danke!`},wechat:{title:"OneHop â alle AI-Modelle über eine API",body:"Registriere dich über meinen Einladungslink. Wenn du innerhalb von {{firstWindowDays}} Tagen erstmals auflädst, erhalten wir beide {{percent}}% Empfehlungsguthaben."}}
777,sit="Die Vergütung ist sofort nach der Zahlung sichtbar, wird aber zunächst eingefroren, um das Rückerstattungsfenster abzudecken, und nach Ablauf als OneHop-Empfehlungs-Credit freigegeben.",rit="Freigabe in {{days}} Tagen.",iit={referrer:"Einladende Person",referee:"Eingeladene Person"},lit={referrer:": Du erhältst Empfehlungs-Credit, wenn jemand, den du eingeladen hast, auflädt â {{tiers}}.",referee:": Registriere dich über den Link und lade auf, um ebenfalls zu profitieren â {{tiers}}."},cit={dayRange:"Tag {{fromDay}}-{{untilDay}}",dayOpenEnded:"ab Tag {{fromDay}}"},dit="Insgesamt verdient",uit="Freigegebene Empfehlungsvergütung",mit="Eingefrorene Empfehlungsvergütung",pit="Eingeladene Personen",fit="Gültige Einladungen",git="Freigegebene Einladungsprämie",hit="Eingefrorene Einladungsprämie",yit="Storniert / zurückgebucht",vit="Von dir eingeladene Personen",bit="Vergütungsdetails",xit={user:"Nutzer",joined:"Registriert am",topups:"Aufladungen",earned:"Dein Verdienst",frozen:"Eingefroren",date:"Zeitpunkt",event:"Ereignis",topupAmount:"Aufladung der anderen Person",rate:"Anteil",releaseAt:"Freigabezeitpunkt",cashback:"Vergütung",status:"Status"},$it={title:"Noch keine Einladungen",description:"Teile deinen Link, um mit dem Verdienen zu beginnen."},wit={inviteeSignedUp:"Eingeladene Person erfolgreich registriert",youSignedUp:"Du hast dich über eine Einladung erfolgreich registriert",inviteePaid:"Eingeladene Person hat erfolgreich verbraucht",youPaid:"Du hast als eingeladene Person erfolgreich verbraucht"},kit={frozen:"Eingefroren",released:"Freigegeben",cancelled:"Storniert",partially_reversed:"Teilweise zurückgebucht",reversed:"Zurückgebucht",failed:"Fehlgeschlagen",skipped:"Ãbersprungen"},Cit={title:zrt,description:qrt,error:Hrt,yourLink:Vrt,shareVia:Krt,wechatCopied:Grt,copy:Wrt,copied:Yrt,wechat:Qrt,x:Xrt,telegram:Zrt,reddit:Jrt,linkedin:eit,whatsapp:tit,email:nit,facebook:ait,share:oit,offer:sit,releaseDelay:rit,role:iit,roleOffer:lit,policy:cit,totalEarned:dit,availableEarned:uit,frozenEarned:mit,invited:pit,active:fit,availableReceived:git,frozenReceived:hit,cancelledReversed:yit,peopleYouInvited:vit,history:bit,col:xit,empty:$it,event:wit,status:kit},Sit="Einstellungen",Ait="Verwalte Kontoeinstellungen und Konsolen-Standards.",Tit="Angemeldet als {{email}}",Rit="Anzeigename",Pit="Sprache",_it="Zeitzone",jit="Profil konnte nicht geladen werden",Nit="Speichern fehlgeschlagen",Dit="Ãnderungen verwerfen?",Mit="Du hast ungespeicherte Ãnderungen. Wenn du jetzt gehst, werden sie verworfen.",Eit="Verwerfen",Iit="Weiter bearbeiten",Oit={title:Sit,description:Ait,signedInAs:Tit,displayName:Rit,locale:Pit,timezone:_it,failedLoad:jit,failedSave:Nit,discardTitle:Dit,discardMessage:Mit,discardConfirm:Eit,keepEditing:Iit},Lit="Aufgabenwand",Uit="Teile OneHop mit deinem Publikum und verdiene Testguthaben. Jede Einreichung prüfen wir von Hand.",Bit="Link zu deinem Beitrag",Fit="https://â¦",zit="Absenden",qit="Abgeschickt â wir prüfen das in Kürze.",Hit="Akzeptierte Links: {{hosts}}",Vit="Zuvor abgelehnt: {{reason}}. Korrigiere es und sende erneut.",Kit={pending:"In Prüfung",approved:"Gutgeschrieben",rejected:"Abgelehnt",active:"Aktiv"},Git={title:"Derzeit keine Aufgaben",description:"Schau bald wieder vorbei â wir starten solche Aktionen regelmäÃig."},Wit={x_quote:{title:"Zitiere uns auf X",description:"Zitiere den angehefteten Post von @OneHopAI und ergänze deine eigene Einschätzung.",rules:["Dein X-Konto muss mindestens 6 Monate alt sein und 10 oder mehr Follower haben.","Sende den Link zu deinem eigenen Zitat-Post, nicht zum Original.","Das Guthaben kommt innerhalb von 2 Stunden nach der Freigabe an."]},youtube_tutorial:{title:"Veröffentliche ein YouTube-Tutorial",description:"Ein Video ab 6 Minuten, das zeigt, wie du OneHop in deinen eigenen Agenten eingebunden hast.",rules:["Sende den Videolink, sobald es veröffentlicht ist.","Dein YouTube-Kanal braucht 50 oder mehr Abonnenten.","Einmal pro Konto.","Das Guthaben kommt innerhalb von 2 Stunden nach der Freigabe an."]},short_video:{title:"Poste ein kurzes Video",description:"Ein Short ab 40 Sekunden auf TikTok oder YouTube, das dein OneHop-Setup erwähnt.",rules:["Sende den Videolink, sobald es veröffentlicht ist.","Das Guthaben kommt innerhalb von 2 Stunden n
777ach der Freigabe an."]},github_readme:{title:"OneHop in dein GitHub-README aufnehmen",description:"Füge einem eigenen Repository einen OneHop-Credit im README hinzu. Jede spätere Aufladung bringt 15% extra.",rules:["Sende den Link zum Repository, sobald das README online ist.","Das gilt dauerhaft, nicht einmalig: Bei jeder späteren Aufladung zählt der höhere Wert aus Standardbonus und deinen 15%.","Den Text zum Kopieren findest du unten."]}},Yit={load:"Aufgabenwand konnte nicht geladen werden",generic:"Absenden fehlgeschlagen",urlRequired:"Füge zuerst den Link zu deinem Beitrag ein.",urlTooLong:"Dieser Link ist zu lang.",urlMalformed:"Das sieht nicht nach einem gültigen Link aus.",hostNotAllowed:"Diese Aufgabe akzeptiert nur Links von den oben genannten Plattformen.",notAPost:"Verlinke den konkreten Beitrag bzw. das Video, nicht ein Profil oder eine Startseite.",alreadySubmitted:"Du hast diese Aufgabe bereits eingereicht.",notAvailable:"Diese Aufgabe ist derzeit nicht verfügbar.",busy:"Unser Prüfkontingent für heute ist erschöpft. Bitte versuche es morgen erneut.",emailUnverified:"Bestätige zuerst deine E-Mail-Adresse.",accountTooNew:"Dein Konto ist dafür noch nicht alt genug.",riskFlagged:"Dieses Konto kann derzeit nicht teilnehmen. Wende dich an den Support, wenn das ein Fehler ist.",accountInactive:"Dieses Konto ist nicht aktiv.",deviceAlreadyClaimed:"Ein anderes Konto auf diesem Gerät hat bereits teilgenommen."},Qit="Danke an [OneHop]({{url}}) für die Unterstützung dieses Projekts! OneHop gibt dir einen einzigen OpenAI-kompatiblen API-Schlüssel für Hunderte führender Modelle â GPT, Claude, Gemini, DeepSeek, Kimi und Qwen. Kein Jonglieren mit Anbieterkonten, keine Codeänderung zum Modellwechsel, und du zahlst nur, was du nutzt. â {{domain}}",Xit="Text kopieren",Zit={title:Lit,description:Uit,urlLabel:Bit,urlPlaceholder:Fit,submit:zit,submitted:qit,allowedHosts:Hit,rejectedHint:Vit,status:Kit,empty:Git,item:Wit,error:Yit,sponsorBlurb:Qit,copyBlurb:Xit},Jit="Live-Chat",elt="Support-Tickets",tlt="Eröffne ein Ticket, unser Team meldet sich so schnell wie möglich.",nlt="Neues Ticket",alt={subject:"Betreff",category:"Typ",status:"Zustand",updated:"Aktualisiert",user:"User"},olt={billing:"Abrechnung",technical:"Technik",account:"Konto",other:"Sonstiges"},slt={open:"Offen",pending:"Ausstehend",resolved:"Gelöst",closed:"Geschlossen"},rlt={allStatuses:"Alle Status",allCategories:"All categories",search:"Search email or subject"},ilt={subject:"Betreff",subjectPlaceholder:"Beschreibe dein Problem kurz",category:"Typ",message:"Nachricht",messagePlaceholder:"Sag uns, was passiert istâ¦",attachments:"Anhänge",addAttachment:"Datei hinzufügen",submit:"Ticket senden",cancel:"Abbrechen"},llt={you:"Du",support:"Kundendienst",system:"Systemmeldung",replyPlaceholder:"Antwort schreibenâ¦",send:"Senden",closedNotice:"Dieses Ticket ist geschlossen. Eröffne ein neues Ticket, wenn du weitere Hilfe brauchst.",sendHint:"Drücke â/Ctrl + Enter zum Senden",back:"Zurück zu Tickets",systemStatus:{open:"Ticket wieder geöffnet",pending:"Ticket als wartend auf deine Antwort markiert",resolved:"Ticket als gelöst markiert",closed:"Ticket geschlossen"}},clt={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},dlt="Mehr laden",ult={created:"Ticket gesendet",replied:"Antwort gesendet",statusUpdated:"Status updated",error:"Etwas ist schiefgelaufen. Bitte versuche es erneut"},mlt="Ticket nicht gefunden oder entfernt.",plt={title:"Noch keine Tickets",body:"Gibt es ein Problem? Eröffne ein Ticket, wir helfen dir.",cta:"Erstes Ticket öffnen"},flt={liveChat:Jit,title:elt,subtitle:tlt,newTicket:nlt,columns:alt,category:olt,status:slt,filters:rlt,form:ilt,thread:llt,admin:clt,loadMore:dlt,toast:ult,notFound:mlt,empty:plt},glt="Nutzung",hlt="Kontostand, Verbrauchstempo und wofür deine Ausgaben anfallen.",ylt="Aktivität",vlt="Keine Aktivität in diesem Zeitraum",blt="Nutzungsaufschlüsselung",xlt="Nach API-Key",$lt="Nach Modell",wlt="Nach token-Typ",klt="Keine Daten",Clt="Noch keine Nutzung in diesem Zeitraum.",Slt="Beim aktuellen Tempo reicht der Kontostand voraussichtlich noch {{days}} Tage (ca. {{rate}}/Tag).",Alt="Ausgabe",Tlt="Cache",Rlt={tokens:"Tokens",requests:"Anfragen",cost:"Kosten"},Plt="Andere",_lt="Req.",jlt="tok",Nlt="Aktualisiertâ¦",Dlt="Keine Daten",Mlt="Sende eine Anfrage, um Daten zu sammeln.",Elt="Top API-Keys",Ilt="Aufladen",Olt={title:"Nutzung konnte nicht geladen werden"},Llt={firstToken:"Erster token",latency:"Durchschnittslatenz",requests:"Anfragen",spend:"Verbrauch",spendSub:"in diesem Zeitraum abgerechnet",successRate:"{{rate}}% erfolgreich",tokens:"Tokens",textDuration:"Text",mediaDuration:"Bild/Video",cacheHit:"{{rate}}
777% Cache",projected:"â {{amount}}/Mon.",vsPrevious:"vs. Vorperiode"},Ult={activeDays:"Aktive Tage",longestStreak:"Längste Serie",daysValue:"{{n}} Tage",totalSpend:"Gesamt in diesem Zeitraum",peakDay:"Aktivster Tag"},Blt={all:"Gesamter Zeitraum",custom:"Benutzerdefiniert",last1h:"Letzte 1 Stunde",last30d:"Letzte 30 Tage",last7d:"Letzte 7 Tage",thisMonth:"Dieser Monat",today:"Heute",yesterday:"Gestern",byMonth:"Nach Monat"},Flt={failed:"Fehlgeschlagen",success:"Erfolgreich"},zlt={cacheRead:"Cache-Lesezugriff",cacheWrite:"Cache-Schreibzugriff",cacheWrite1h:"Cache-Schreibzugriff 1h",cacheWrite5m:"Cache-Schreibzugriff 5m",completion:"Ausgabe",prompt:"Eingabe"},qlt={body:"Sende eine Anfrage aus dem Terminal oder öffne das playground â die Nutzung erscheint in wenigen Sekunden hier.",openPlayground:"playground öffnen",title:"Dein API-Key ist bereit"},Hlt={body:"Erstelle deinen ersten API-Key, route alle Anfragen über eine URL, und die Nutzung erscheint danach hier.",createKey:"API-Key erstellen",title:"Willkommen bei OneHop",tryPlayground:"playground ausprobieren"},Vlt="Aktualisieren",Klt="{{count}} erfolgreiche Anfragen im aktuellen Filter",Glt="Tokens gesamt",Wlt="Eingabe {{input}} / Ausgabe {{output}}",Ylt="Abgerechneter credit",Qlt="{{cost}} tatsächliche upstream Kosten",Xlt="Durchschnittslatenz",Zlt="Erster token {{duration}}",Jlt="30-Tage-Aktivität",ect="Erfolgreiche Anfragen, token-Volumen und abgerechneter credit.",tct="Nutzungstrend wird geladen",nct="Kein Nutzungstrend",act="Der Nutzungstrend erscheint nach erfolgreichen Anfragen.",oct="Top-Modelle",sct="Abgerechneter credit je Modell in den letzten 30 Tagen.",rct="Noch keine Modellnutzung",ict="Die Modellaufschlüsselung erscheint nach erfolgreichen Anfragen.",lct="Modell",cct="Alle Modelle",dct="Status",uct="Protokoll",mct="Zeilen",pct="Zurücksetzen",fct="Nutzungsdatensätze",gct="API-Key",hct="Endpoint",yct="Typ",vct="Tokens",bct="Kosten",xct="Dauer",$ct="Zeit",wct="User-Agent",kct="Details",Cct="Anfragedetails",Sct="Details zum Nutzungsdatensatz und Abrechnungsmetadata.",Act="Anfrage-ID",Tct="Vorgang",Rct="Eingabe tokens",Pct="Ausgabe tokens",_ct="Cache-Lese tokens",jct="Cache-Schreib tokens",Nct="Eingabekosten",Dct="Ausgabekosten",Mct="Cache-Lesekosten",Ect="Cache-Schreibkosten",Ict="Fehlercode",Oct="Fehlermeldung",Lct="Nicht gefunden.",Uct="credit",Bct="Gesamt {{count}}",Fct="Nutzungsdatensätze werden geladen",zct="Keine Nutzungsdatensätze",qct="Versuche eine andere Filterkombination.",Hct="Datensätze erscheinen, sobald Anfragen durch deine API-Keys laufen.",Vct="Seite {{page}} · zeigt {{shown}} von {{total}} passenden Datensätzen",Kct="Zurück",Gct="Weiter",Wct="Credit",Yct="Tokens",Qct="Anfragen",Xct={time:"Zeit",apiKey:"API-Key",model:"Modell",reasoningEffort:"Reasoning-Aufwand",endpoint:"Endpoint",type:"Typ",billingMode:"Abrechnungsmodus",inputTokens:"Eingabe Tokens",outputTokens:"Ausgabe Tokens",cacheReadTokens:"Cache-Lese Tokens",cacheWriteTokens:"Cache-Schreib Tokens",totalTokens:"Tokens gesamt",billedCredit:"Abgerechneter Credit",firstTokenMs:"Erster Token ms",durationMs:"Dauer ms",status:"Status",userAgent:"User-Agent"},Zct={mon:"Mo",wed:"Mi",fri:"Fr"},Jct="Weniger",edt="Mehr",tdt={title:glt,description:hlt,activity:ylt,activityEmpty:vlt,breakdown:blt,byApiKey:xlt,byModel:$lt,byTokenType:wlt,chartEmpty:klt,chartEmptyHint:Clt,burnRate:Slt,in:"Eingabe",out:Alt,cache:Tlt,metric:Rlt,other:Plt,req:_lt,tok:jlt,refreshing:Nlt,topEmpty:Dlt,topEmptyHint:Mlt,topKeys:Elt,topUp:Ilt,error:Olt,kpi:Llt,stat:Ult,range:Blt,requests:Flt,tokenType:zlt,noRequests:qlt,welcome:Hlt,refresh:Vlt,successfulFilter:Klt,totalTokens:Glt,inOut:Wlt,billedCredit:Ylt,upstreamActualCost:Qlt,avgLatency:Xlt,firstToken:Zlt,activityTitle:Jlt,activityDescription:ect,loadingTrend:tct,noUsageTrend:nct,trendDescription:act,topModels:oct,topModelsDescription:sct,noModelUsage:rct,noModelUsageDescription:ict,model:lct,allModels:cct,status:dct,protocol:uct,rows:mct,reset:pct,tableLabel:fct,apiKey:gct,endpoint:hct,type:yct,tokens:vct,cost:bct,duration:xct,time:$ct,userAgent:wct,details:kct,requestDetail:Cct,detailDescription:Sct,requestId:Act,operation:Tct,inputTokens:Rct,outputTokens:Pct,cacheReadTokens:_ct,cacheWriteTokens:jct,inputCost:Nct,outputCost:Dct,cacheReadCost:Mct,cacheWriteCost:Ect,errorCode:Ict,errorMessage:Oct,notFound:Lct,creditSuffix:Uct,total:Bct,loadingRecords:Fct,noRecords:zct,differentFilters:qct,recordsEmpty:Hct,pageSummary:Vct,previous:Kct,next:Gct,chartCredit:Wct,chartTokens:Yct,chartRequests:Qct,csv:Xct,weekday:Zct,activityLess:Jct,activityMore:edt},ndt="Signup access",adt="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",odt="Signup access allowlist",sdt="No allowlist entr
777ies",rdt="Email / domain",idt="Note",ldt="Status",cdt="Registration",ddt="Expires",udt="Invites",mdt="Updated",pdt="Action",fdt="Add",gdt="Bulk add",hdt="Edit",ydt="Save",vdt="Invite",bdt="Restore",xdt="Remove",$dt="Add signup access",wdt="Edit {{email}}",kdt="Bulk add signup access",Cdt="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",Sdt="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",Adt="Email or domain",Tdt="[email protected] or @company.com",Rdt="Use @company.com to approve an entire domain.",Pdt="Note (optional)",_dt="e.g. founding team",jdt="Expiry (optional)",Ndt="Leave empty for no expiry. Expired entries no longer allow new signups.",Ddt="Emails / domains",Mdt=`[email protected] 778[email protected] 779@partner.com`,Edt="Search",Idt="Search email or domain",Odt="Status",Ldt="Access check",Udt="[email protected]",Bdt="Check",Fdt="Allowed",zdt="Denied",qdt={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},Hdt="Registered",Vdt="Not registered",Kdt="Admin",Gdt="Domain rule",Wdt="Never",Ydt="Added to signup access.",Qdt="Signup access updated.",Xdt="Added {{count}} entries.",Zdt="Invite sent.",Jdt="Entry restored.",eut="Removed from signup access.",tut="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",nut={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},aut={title:ndt,description:adt,label:odt,empty:sdt,email:rdt,note:idt,status:ldt,registration:cdt,expiresAt:ddt,invites:udt,updatedAt:mdt,action:pdt,add:fdt,bulkAdd:gdt,edit:hdt,save:ydt,invite:vdt,restore:bdt,revoke:xdt,newTitle:$dt,editTitle:wdt,bulkTitle:kdt,formDescription:Cdt,bulkDescription:Sdt,emailLabel:Adt,emailPlaceholder:Tdt,emailHint:Rdt,noteLabel:Pdt,notePlaceholder:_dt,expiresAtLabel:jdt,expiresAtHint:Ndt,bulkEntriesLabel:Ddt,bulkEntriesPlaceholder:Mdt,search:Edt,searchPlaceholder:Idt,statusFilter:Odt,checkLabel:Ldt,checkPlaceholder:Udt,check:Bdt,checkAllowed:Fdt,checkDenied:zdt,checkReasons:qdt,registered:Hdt,notRegistered:Vdt,adminAllowed:Kdt,domainRule:Gdt,never:Wdt,added:Ydt,updated:Qdt,bulkAdded:Xdt,invited:Zdt,restored:Jdt,revoked:eut,confirmRevoke:tut,domainRules:nut},out="Billing",sut="Payments, wallets and refunds across all users.",rut={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},iut="User email",lut="Search by email...",cut="Created",dut="Created",uut="Amount (USD)",mut="Min",put="Max",fut="Refunds",gut="No refunds",hut="Refund",yut="Type",vut="Full refund",but="Partial refund",xut="Original payment",$ut="Wallets",wut="Wallet",kut="User",Cut="Total",Sut="Purchased",Aut="Bonus",Tut="No wallets",Rut="Payments",Put="Payment status",_ut="No payments",jut="Payment",Nut="Status",Dut="Amount",Mut="Paid",Eut="Refund",Iut="Not refundable (status must be paid)",Out="View in Stripe Dashboard",Lut="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",Uut="unhealthy",But="Refund {{id}}",Fut="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",zut="Refund amount (USD)",qut="Max ${{value}}",Hut="Reason",Vut="Loading refund preview...",Kut="Could not load the refund preview. Refunds are disabled until it loads.",Gut="No refund
779able transaction found â this payment may already be fully refunded.",Wut="Paid",Yut="Already refunded",Qut="This refund",Xut="Credit reclaimed",Zut="Includes {{amount}} coupon-discount credit reclaimed proportionally",Jut="Includes {{amount}} extra granted credit reclaimed proportionally",emt="Bonus revoked",tmt="Promotional bonus of {{amount}} will be revoked with this refund.",nmt="Returned via Stripe",amt="Charge platform fee ({{fee}}) â covers Stripe processing cost",omt="Platform fee ({{fee}})",smt="Amount exceeds the maximum refundable {{value}}",rmt="Enter a valid positive amount",imt="The user has already spent part of the purchased credit. Maximum refundable: {{value}}",lmt="This payment is already fully refunded",cmt="Net payout after fees is too small. Refund at least {{value}}.",dmt="Cancel",umt="Issue refund",mmt="Submitting...",pmt="Refund submitted",fmt="Stripe will return the funds within 1-3 business days. Audit log written.",gmt="Refund failed",hmt={title:out,description:sut,tabs:rut,emailFilter:iut,emailPlaceholder:lut,created:cut,createdRange:dut,amountRange:uut,amountMin:mut,amountMax:put,refunds:fut,noRefunds:gut,refundId:hut,refundType:yut,typeRefund:vut,typePartialRefund:but,originalPayment:xut,wallets:$ut,wallet:wut,user:kut,total:Cut,purchased:Sut,bonus:Aut,noWallets:Tut,payments:Rut,paymentStatus:Put,noPayments:_ut,payment:jut,status:Nut,amount:Dut,paid:Mut,refund:Eut,notRefundable:Iut,viewInStripe:Out,webhookHealthHint:Lut,unhealthyWebhooks:Uut,refundConfirmTitle:But,refundConfirmBody:Fut,refundAmountLabel:zut,refundMaxHint:qut,refundReasonLabel:Hut,refundPreviewLoading:Vut,refundPreviewFailed:Kut,refundNoRefundableTx:Gut,refundPaidRow:Wut,refundAlreadyRefundedRow:Yut,refundThisRefundRow:Qut,refundCreditReclaimRow:Xut,refundCreditCouponNote:Zut,refundCreditExtraNote:Jut,refundBonusReverseRow:emt,refundBonusForfeitWarning:tmt,refundStripeReturnRow:nmt,refundFeeToggle:amt,refundPlatformFeeRow:omt,refundExceedsMax:smt,refundAmountInvalid:rmt,refundInsufficientCredit:imt,refundAlreadyFull:lmt,refundBelowMin:cmt,cancel:dmt,confirmRefund:umt,submitting:mmt,refundSubmittedTitle:pmt,refundSubmittedBody:fmt,refundFailedTitle:gmt},ymt="Campaigns",vmt="Audience segments, restricted-model access, model discounts, and targeted credit grants.",bmt={mobileLabel:"Campaign section",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"}
779,xmt="Status",$mt="Actions",wmt="All users",kmt="Always",Cmt="No expiry",Smt="Active window",Amt="Leave blank for always-on. Times are end-of-day on the chosen dates.",Tmt="Valid from",Rmt="Valid to",Pmt="Pause",_mt="Resume",jmt="Add",Nmt="Remove",Dmt="Delete",Mmt="Clear",Emt="Close",Imt={allKinds:"All kinds",segmentKindStatic:"Static",segmentKindDynamic:"Dynamic",grantKindGrant:"Grant",grantKindRevoke:"Revoke",allStatuses:"All statuses",statusActive:"Active",statusPaused:"Paused",statusArchived:"Archived",statusEnded:"Ended",statusPending:"Pending",statusProcessing:"Processing",statusCompleted:"Completed",statusFailed:"Failed"},Omt={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",materializeDone:"Materialized {{count}} members",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},Lmt={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},Umt={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for c
779omparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Bmt={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},Fmt={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
7790.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},zmt={title:ymt,description:vmt,tabs:bmt,status:xmt,actions:$mt,allUsers:wmt,always:kmt,noExpiry:Cmt,window:Smt,windowHint:Amt,validFrom:Tmt,validTo:Rmt,pause:Pmt,resume:_mt,actionAdd:jmt,actionRemove:Nmt,actionDelete:Dmt,actionClear:Mmt,actionClose:Emt,filters:Imt,segments:Omt,access:Lmt,discounts:Umt,grants:Bmt,recurring:Fmt},qmt="Announcements",Hmt="Banner / modal announcements shown on the marketing site and the console.",Vmt="Announcements",Kmt="Banner / modal announcements shown on www and console.",Gmt="New announcement",Wmt="No announcements yet. Create one to show a banner or modal.",Ymt="Message",Qmt="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",Xmt="CTA Label",Zmt="CTA Link",Jmt="Severity",ept="Audience",tpt="Starts At",npt="Ends At",apt="Dismissible",opt="Status",spt="Archive",rpt="Archive this announcement? It will no longer be shown to users.",ipt="New announcement",lpt="Edit announcement",cpt="Title",dpt="Type",upt="Content",mpt="Display type",ppt="Banner",fpt="Modal",gpt="Draft",hpt="Active",ypt="Info",vpt="Warning",bpt="Critical",xpt="Console only",$pt="Public site only",wpt="Both",kpt="Hero image",Cpt="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",Spt="Upload",Apt="Uploadingâ¦",Tpt="Remove",Rpt="Only PNG, JPEG, WebP and GIF images are supported.",Ppt="Image must be 5MB or smaller.",_pt="Upload failed, please try again.",jpt="Title",Npt="Body",Dpt="Action buttons",Mpt="Button label",Ept="Button link",Ipt="Style",Opt="Add button",Lpt="Remove",Upt="Primary",Bpt="Secondary",Fpt="Link",zpt="Simplified Chinese (source)",qpt="Fill in Simplified Chinese only, then translate to other languages in one click.",Hpt="Translate to all languages",Vpt="Translatingâ¦",Kpt="Other languages (translated, editable)",Gpt="Translated {{ok}} languages",Wpt="{{failed}} languages failed â fill in manually or retry",Ypt="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",Qpt="Re-show to users who already dismissed it",Xpt="Fill in the Simplified Chinese body first.",Zpt={title:qmt,description:Hmt,annTitle:Vmt,annDescription:Kmt,annNewButton:Gmt,annEmpty:Wmt,annMessage:Ymt,annInlineLinkHint:Qmt,annCtaText:Xmt,annCtaUrl:Zmt,annSeverity:Jmt,annAudience:ept,annStartsAt:tpt,annEndsAt:npt,annDismissible:apt,annStatus:opt,annArchive:spt,annArchiveConfirm:rpt,annCreateTitle:ipt,annEditTitle:lpt,annColTitle:cpt,annColType:dpt,annColContent:upt,annDisplayType:mpt,annTypeBanner:ppt,annTypeModal:fpt,annStatusDraft:gpt,annStatusActive:hpt,annSevInfo:ypt,annSevWarning:vpt,annSevCritical:bpt,annAudConsole:xpt,annAudPublic:$pt,annAudAll:wpt,annHeroImage:kpt,annHeroImageHint:Cpt,annHeroImageUpload:Spt,annHeroImageUploading:Apt,annHeroImageRemove:Tpt,annHeroImageBadType:Rpt,annHeroImageTooLarge:Ppt,annHeroImageUploadFailed:_pt,annModalTitle:jpt,annBody:Npt,annActions:Dpt,annActionLabel:Mpt,annActionUrl:Ept,annActionVariant:Ipt,annActionAdd:Opt,annActionRemove:Lpt,annVariantPrimary:Upt,annVariantSecondary:Bpt,annVariantLink:Fpt,annSourceLocale:zpt,annSourceHint:qpt,annTranslate:Hpt,annTranslating:Vpt,annOtherLocales:Kpt,annTranslateDone:Gpt,annTranslateParti
779al:Wpt,annTranslateStale:Ypt,annBumpRevision:Qpt,annTranslateNeedSource:Xpt},Jpt="Operations dashboard",eft="Real-time overview of platform health, usage, and alerts.",tft="Refresh",nft="Refreshing",aft="Updated {{time}}",oft="Loading dashboard",sft="Failed to load dashboard",rft="No data",ift="No traffic yet",lft="Video fail rate",cft="Avg latency",dft="Error types",uft="No errors",mft="Model anomalies",pft="All models healthy",fft="Components",gft="req",hft="Checkout abandon",yft="Refunds",vft="Chargebacks",bft="First-charge conversion",xft="{{failed}}/{{total}} jobs",$ft="{{delta}}pt vs yesterday",wft="Low sample ({{n}})",kft="Had gateway calls",Cft="Last 7d cohort · normal users only",Sft="Refund rate {{rate}}%",Aft={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},Tft={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},Rft={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Normal users only (excludes flagged)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",successFailed:"{{success}} ok · {{failed}} fail",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change"},Pft={funnel:"opened {{opened}} · paid {{paid}}"},_ft={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},jft={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},Nft={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},Dft={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},Mft={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},Eft={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},Ift={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},Oft={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},Lft={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},Uft={title:Jpt,description:eft,refresh:tft,refreshing:nft,lastUpdated:aft,loading:oft,failedLoad:sft,empty:rft,noTraffic:ift,videoFailRate:lft,avgLatency:cft,errorTypes:dft,noErrors:uft,modelAnomalies:mft,noAnomalies:pft,components:fft,req:gft,abandonRate:hft,refunds:yft,chargebacks:vft,firstChargeConversion:bft,videoJobsDetail:xft,vsYesterdayPt:$ft,lowSample:wft,activeUsersHint:kft,conversionCohortHint:Cft,refundRate:Sft,sections:Aft,leaderboard:Tft,kpi:Rft,checkout:Pft,revenue:_ft,orders:jft,conversion:Nft,componentStatus:Dft,severity:Mft,health:Eft,alerts:Ift,alertSettings:Oft,range:Lft},Bft="Loading...",Fft="Admin permission required",zft="Your account does not have permission to access this administrator page.",qft={loading:Bft,permissionRequired:Fft,permissionDescription:zft},Hft="User growth",Vft="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",Kft={mobileLabel:"Growth section",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Redeem codes",tasks:"Task wall"},Gft="Coupon batch",Wft="Promotion rule",Yft="Count",Qft="Batch code",Xft="Creating...",Zft="Create batch",Jft="{{count}} coupon code created",egt="{{count}} coupon codes created",tgt="Batch {{code}}
779",ngt="Copied",agt="Copy all",ogt="Credit grants",sgt="Source",rgt="Status",igt="No grants yet",lgt="Coupon redemptions, signup bonuses, and manual grants appear here.",cgt="Time",dgt="User",ugt="Amount",mgt="Signup bonus",pgt="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",fgt="Enable signup credit",ggt="Amount (USD)",hgt="Save signup bonus",ygt="Saving...",vgt="Current amount {{amount}}",bgt="Referral cashback",xgt="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",$gt="Enable referral cashback",wgt="Reward tiers",kgt="Add tier",Cgt="Recipient",Sgt="From day",Agt="Until day",Tgt="Percent",Rgt="Label",Pgt="Action",_gt="Inviter",jgt="Invitee",Ngt="No end",Dgt="Remove tier",Mgt="Release delay (days)",Egt="Per-topup cap (USD)",Igt="Min topup (USD, blank = none)",Ogt="Cashback expiry (days, blank = never)",Lgt="Billing-page countdown banner",Ugt="Banner title",Bgt="Subtitle",Fgt="Countdown mode",zgt="Global deadline",qgt="Each invitee's 30-day window",Hgt="Ends at",Vgt="Save referral settings",Kgt="v{{version}}",Ggt="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",Wgt="Version history",Ygt="Version",Qgt="Status",Xgt="Referrals",Zgt="Reward tiers",Jgt="Published",eht="Superseded",tht="current",nht="Version detail",aht="Referral records",oht="Cashback records",sht="Inviter",rht="Invitee",iht="Bound at",lht="Role",cht="Counterparty",dht="Top-up",uht="Rate",mht="Amount",pht="Tier",fht="Released",ght="No referrals under this version",hht="No cashback under this version",yht="Load more",vht="Top-up discount codes",bht="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",xht="Enable discount codes",$ht="Discount type",wht="Fixed amount off (USD)",kht="Percentage off (%)",Cht="Amount off (USD)",Sht="Percentage off (0-100)",Aht="Save discount",Tht="Default low-balance alert",Rht="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",Pht="Threshold (USD)",_ht="Save threshold",jht="Current: {{amount}}",Nht="Generate codes against the discount rule above.",Dht="In effect: {{state}} · {{value}} off",Mht="enabled",Eht="disabled",Iht="Issued codes",Oht="Pick a batch to see who redeemed each code.",Lht="No batches yet",Uht="Generate a batch above to start tracking redemptions.",Bht="Total",Fht="Redeemed",zht="Reserved",qht="Available",Hht="Codes in {{code}}",Vht="No codes in this batch",Kht="Code",Ght="Redeemed by",Wht="Redeemed at",Yht="Paid",Qht="Discount",Xht="Create codes",Zht="A shared code is one code many users can redeem up to N times; a unique batch is N one-time codes.",Jht="Code type",eyt="Single shared code",tyt="Unique code batch",nyt="Code text (leave blank for random)",ayt="e.g. WELCOME100",oyt="Total redemptions (N)",syt="Per user",ryt="Expires at (optional)",iyt="optional group",lyt="Create shared code",cyt="Shared code created",dyt="Use a discount for this batch (else the rule above)",uyt="Shared codes",myt="One code, many users. Used count tracks paid redemptions.",pyt="No shared codes yet",fyt="Used / cap",gyt="Per user",hyt="Expires",yyt="Disable",vyt="Disable this code?",byt="New checkouts are blocked immediately. Orders already in checkout can still complete.",xyt="Code disabled",$yt="CSV",wyt="Status",kyt="Email",Cyt={code:"Code",discount:"Discount",redeemed:"Redeemed",cap:"Cap",perUser:"Per user",status:"Status",expiresAt:"Expires at",batch:"Batch",createdAt:"Created at",redeemedBy:"Redeemed by",redeemedAt:"Redeemed at",paid:"Paid",discountAmount:"Discount",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},Syt={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},Ayt="Create redeem codes",Tyt="Gift-card style codes. Users enter a code on the billing page and the face value is credited to their balance directly (bonus credit, no payment).",Ryt="Batch name (optional)",Pyt="e.g. Conf-2026 giveaway",_yt="How many codes",jyt="Face value (USD each)",Nyt="Per account in this batch (blank = unlimited)",Dyt="unlimited",Myt="Redeem-by deadline (optional)",Eyt="Restrict to models (optional)",Iyt="General balance (no restriction)",Oyt="{{count}} models selected",Lyt="Blank = general balance. Selected models share one earmarked pool.",Uyt="Credit validity after redemption (days, blank = never expires)",Byt="never expires",Fyt="{{n}} d",zyt="Models",qyt="Validity",Hyt="General balance",Vyt="Generate codes",Kyt="Save these now. You can also re-export the plaintext later via Reveal in the batch list.",Gyt="Redeem code batches",Wyt="Click a batch to drill into
779individual codes. Reveal re-exports the plaintext.",Yyt="No redeem code batches yet",Qyt="Batch",Xyt="Face",Zyt="Reveal CSV",Jyt="Reverse this redeemed code?",evt="Claws back the unspent portion of the credited amount from the user. Already-spent credit cannot be recovered.",tvt="Reverse",nvt="Reversed {{amount}}",avt="Codes exported",ovt="Disable unredeemed codes in this batch?",svt="All not-yet-redeemed codes become unusable. Already-redeemed codes are not affected.",rvt="{{n}} codes disabled",ivt="Bonus % on top-up",lvt="Bonus (%)",cvt="Bonus validity (days, optional)",dvt="blank = never expires",uvt={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},mvt={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending cap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},pvt={title:Hft,description:Vft,tabs:Kft,couponBatch:Gft,promotionRule:Wft,count:Yft,batchCode:Qft,creating:Xft,createBatch:Zft,codesCreated:Jft,codesCreated_plural:egt,batch:tgt,copied:ngt,copyAll:agt,creditGrants:ogt,source:sgt,status:rgt,noGrants:igt,noGrantsDescription:lgt,time:cgt,user:dgt,amount:ugt,signupBonus:mgt,signupBonusDescription:pgt,signupBonusEnabled:fgt,signupBonusAmount:ggt,saveSignupBonus:hgt,saving:ygt,currentSignupBonus:vgt,referral:bgt,referralDescription:xgt,referralEnabled:$gt,referralRewardTiers:wgt,addTier:kgt,tierRole:Cgt,tierFromDay:Sgt,tierUntilDay:Agt,tierPercent:Tgt,tierLabel:Rgt,tierAction:Pgt,roleReferrer:_gt,roleReferee:jgt,noEndDay:Ngt,removeTier:Dgt,releaseDelayDays:Mgt,referralCap:Egt,referralMinTopup:Igt,referralExpiryDays:Ogt,bannerEnabled:Lgt,bannerTitle:Ugt,bannerSubtitle:Bgt,bannerMode:Fgt,bannerModeGlobal:zgt,bannerModeWindow:qgt,bannerEndsAt:Hgt,saveReferral:Vgt,referralVersion:Kgt,referralPublishHint:Ggt,referralVersionHistory:Wgt,versionCol:Ygt,versionStatus:Qgt,versionBindings:Xgt,versionTiers:Zgt,versionPublished:Jgt,versionSuperseded:eht,versionCurrent:tht,versionDetail:nht,versionBindingsSection:aht,versionCashbackSection:oht,colInviter:sht,colInvitee:rht,colBoundAt:iht,colRole:lht,colCounterparty:cht,colTopup:dht,colRate:uht,colAmount:mht,colTier:pht,colReleasedAt:fht,noBindings:ght,noCashback:hht,loadMore:yht,discountRule:vht,discountRuleDescription:bht,discountEnabled:xht,discountType:$ht,discountFixed:wht,discountPercent:kht,discountValueFixed:Cht,discountValuePercent:Sht,saveDiscount:Aht,defaultLowBalanceThreshold:Tht,defaultLowBalanceThresholdDescription:Rht,defaultLowBalanceThresholdAmount:Pht,saveDefaultLowBalanceThreshold:_ht,currentDefaultLowBalanceThreshold:jht,couponBatchDescription:Nht,discountEffective:Dht,stateEnabled:Mht,stateDisabled:E
779ht,couponTrace:Iht,couponTraceDescription:Oht,noBatches:Lht,noBatchesDescription:Uht,batchTotal:Bht,batchRedeemed:Fht,batchReserved:zht,batchActive:qht,codesInBatch:Hht,noCodes:Vht,code:Kht,redeemedBy:Ght,redeemedAt:Wht,paid:Yht,discount:Qht,createIssuance:Xht,createIssuanceDescription:Zht,formLabel:Jht,formShared:eyt,formUniqueBatch:tyt,sharedCodeText:nyt,sharedCodeRandomHint:ayt,sharedMaxRedemptions:oyt,sharedPerUser:syt,expiresAt:ryt,batchCodeOptional:iyt,createSharedCode:lyt,sharedCodeCreated:cyt,batchOwnDiscount:dyt,sharedCodesList:uyt,sharedCodesListDescription:myt,noSharedCodes:pyt,colRedeemedTotal:fyt,colPerUser:gyt,colExpiry:hyt,disableCode:yyt,disableCodeConfirmTitle:vyt,disableCodeConfirmMessage:byt,codeDisabled:xyt,exportCsv:$yt,statusFilter:wyt,filterByEmail:kyt,csv:Cyt,topup:Syt,redeemCreate:Ayt,redeemCreateDescription:Tyt,redeemBatchName:Ryt,redeemBatchNameHint:Pyt,redeemCount:_yt,redeemFaceValue:jyt,redeemPerUserLimit:Nyt,redeemUnlimited:Dyt,redeemExpiresAt:Myt,redeemModels:Eyt,redeemModelsAll:Iyt,redeemModelsCount:Oyt,redeemModelsHint:Lyt,redeemValidityDays:Uyt,redeemValidityForever:Byt,redeemValidityDaysValue:Fyt,redeemColModels:zyt,redeemColValidity:qyt,redeemGeneralBalance:Hyt,redeemCreateBtn:Vyt,redeemRevealHint:Kyt,redeemBatches:Gyt,redeemBatchesDescription:Wyt,redeemNoBatches:Yyt,redeemBatchCol:Qyt,redeemFace:Xyt,redeemReveal:Zyt,redeemReverseTitle:Jyt,redeemReverseMessage:evt,redeemReverseBtn:tvt,redeemReversed:nvt,redeemRevealed:avt,redeemDisableBatchTitle:ovt,redeemDisableBatchMessage:svt,redeemBatchDisabled:rvt,discountTypeBonusPercent:ivt,discountValueBonusPercent:lvt,bonusExpiryDays:cvt,bonusExpiryDaysHint:dvt,sharedPayments:uvt,tasks:mvt},fvt="Models",gvt="Model catalog: create, edit, publish.",hvt={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},yvt="Add model",vvt="Edit {{model}}",bvt="Edit model",xvt="New model",$vt="Close",wvt="Basics & content save together; pricing and status changes apply immediately.",kvt="Create the model draft. Set pricing and publish after it exists.",Cvt={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},Svt="Provider slug",Avt="Pick a known provider or type a custom slug.",Tvt="Model slug",Rvt="Aliases",Pvt="Comma-separated lookup aliases for import and review.",_vt="Source (customer-visible)",jvt="Label customers see on the model/logs. Blank = vendor. Use it to distinguish same-model variants at different prices.",Nvt="Platform",Dvt="â select platform â",Mvt="Upstream model id (optional; choose from upstream or enter manually)",Evt="Choose from upstream...",Ivt="Upstream unavailable",Ovt="Protocols",Lvt="Input price / 1M (USD)",Uvt="Output price / 1M (USD)",Bvt="EN summary",Fvt="Preview",zvt="(No summary)",qvt="No protocol",Hvt="Cancel",Vvt="Save",Kvt="Create draft",Gvt={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},Wvt={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},Yvt="Context window (tokens)",Qvt="Max input the model accepts. Leave blank if unknown.",Xvt="Max output tokens",Zvt="Max tokens the model can generate per response.",Jvt={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},ebt="Input modalities",tbt="Declares what this model can receive, including vision, audio, video, and file inputs.",nbt="Output modalities",abt="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",obt="Image billing style",sbt="Video billing style",rbt="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",ibt="â select billing style â",lbt="Per token (image_output_token)",cbt="Per image (per_call_image)",dbt="Per second (video_per_second)",ubt="Per call (video_per_call)",mbt="Display order",pbt="Must be a non-negative integer.",fbt="Editing locale",gbt="Upstream release date",hbt="Summary (this locale)",ybt="Description (Markdown, this locale)",vbt={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filters"},bbt={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}
779"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},xbt={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},$bt={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},wbt="Discard unsaved changes?",kbt={title:fvt,description:gvt,badges:hvt,addModel:yvt,editModel:vvt,editModelShort:bvt,newModel:xvt,close:$vt,sheetDescription:wvt,sheetDescriptionNew:kvt,sections:Cvt,providerSlug:Svt,providerSlugHint:Avt,modelSlug:Tvt,aliases:Rvt,aliasesHint:Pvt,source:_vt,sourceHint:jvt,platform:Nvt,platformUnset:Dvt,sub2apiModelId:Mvt,chooseSub2api:Evt,upstreamUnavailable:Ivt,protocols:Ovt,inputPrice:Lvt,outputPrice:Uvt,enSummary:Bvt,preview:Fvt,noSummary:zvt,noProtocol:qvt,cancel:Hvt,save:Vvt,createDraft:Kvt,tabs:Gvt,steps:Wvt,contextWindow:Yvt,contextWindowHint:Qvt,maxOutputTokens:Xvt,maxOutputTokensHint:Zvt,lifecycle:Jvt,inputModalities:ebt,inputModalitiesHint:tbt,outputModalities:nbt,outputModalitiesHint:abt,billingStyleImage:obt,billingStyleVideo:sbt,billingStyleHint:rbt,billingStyleUnset:ibt,billingStyleToken:lbt,billingStylePerImage:cbt,billingStylePerSecond:dbt,billingStylePerCall:ubt,displayOrder:mbt,displayOrderInvalid:pbt,contentLocale:fbt,upstreamReleaseAt:gbt,summary:hbt,descriptionField:ybt,filters:vbt,table:bbt,errors:xbt,pricing:$bt,discardChanges:wbt},Cbt="Rate Limits",Sbt="Rate limit policies by scope.",Abt="Rate limit policies",Tbt="No policies",Rbt="Code",Pbt="Name",_bt="Scope",jbt="Status",Nbt="Limits",Dbt="No limits",Mbt={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},Ebt={active:"Active",disabled:"Disabled",archived:"Archived"},Ibt={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},Obt="New policy",Lbt="Edit",Ubt="Action",Bbt="New rate limit policy",Fbt="Edit {{name}}",zbt="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",qbt='Delete policy "{{name}}"? Keys and users on it fall back to their default.',Hbt="Policy deleted.",Vbt={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},Kbt={title:Cbt,description:Sbt,label:Abt,empty:Tbt,code:Rbt,name:Pbt,scope:_bt,status:jbt,limits:Nbt,n
779oLimits:Dbt,scopes:Mbt,statuses:Ebt,limitNames:Ibt,add:Obt,edit:Lbt,delete:"Delete",action:Ubt,newTitle:Bbt,editTitle:Fbt,formDescription:zbt,confirmDelete:qbt,deleted:Hbt,form:Vbt},Gbt="Team",Wbt="Who can sign in to the admin console. Owner-only.",Ybt="Admins",Qbt="No admins yet",Xbt="Email",Zbt="Name",Jbt="Role",ext="Status",txt="Last login",nxt="Action",axt="Add admin",oxt="Add admin",sxt="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",rxt="Email",ixt="[email protected]",lxt="Name",cxt="Display name",dxt="Role",uxt="Admin added.",mxt="Change role",pxt="Role updated.",fxt="Suspend",gxt="Activate",hxt="Status updated.",yxt="Remove",vxt="Admin removed.",bxt="Remove {{email}} as an admin? They lose console access immediately.",xxt="You",$xt="Never",wxt={owner:"Owner",admin:"Admin",support:"Support"},kxt={active:"Active",suspended:"Suspended"},Cxt={title:Gbt,description:Wbt,label:Ybt,empty:Qbt,email:Xbt,name:Zbt,role:Jbt,status:ext,lastLogin:txt,action:nxt,add:axt,newTitle:oxt,formDescription:sxt,emailLabel:rxt,emailPlaceholder:ixt,nameLabel:lxt,namePlaceholder:cxt,roleLabel:dxt,added:uxt,changeRole:mxt,roleChanged:pxt,suspend:fxt,activate:gxt,statusChanged:hxt,remove:yxt,removed:vxt,confirmRemove:bxt,self:xxt,never:$xt,roles:wxt,statuses:kxt},Sxt="Upstream",Axt="Read-only upstream configuration mirror plus controlled OneHop routing pools.",Txt="Open upstream admin",Rxt="Upstream tabs",Pxt={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},_xt={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},jxt={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},Nxt={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Upstream coverage",coverageUnchecked:"accounts not readable",coverageOnlyAccount:"only {{accounts}}",coverageNoAccount:"no schedulable account maps this upstream id"},Dxt={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},Mxt={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},Ext={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},Ixt={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},Oxt={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},Lxt={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},Uxt={title:Sxt,description:Axt,openUpstreamAdmin:Txt,tabsLabel:Rxt,tabs:Pxt,metrics:_xt,errors:jxt,audit:Nxt,topology:Dxt,pools:Mxt,readonly:Ext,table:Ixt,common:Oxt,ops:Lxt},Bxt="Usage",Fxt="Cross-user request metering with spend, token, latency, and routing signals.",zxt="Refresh",qxt={label:"Auto refresh",off:"Off"},Hxt="Exporting",Vxt="Export CSV",Kxt="Failed to export usage records",Gxt="Requests",Wxt="{{count}} successful",Yxt="Users",Qxt="Matched by current filters",Xxt="Spent credit",Zxt="{{cost}} spend",Jxt="Tokens",e$t="Avg {{duration}}",t$t="User email",n$t="Search by email",a$t="Model",o$t="Search by model",s$t="Status",r$t="Protocol",i$t="Rows",l$t="Reset",c$t="Ops usage records",d$t="No usage records",u$t="User",m$t="Endpoint",p$t="{{count}} total",f$t="In {{input}} / out {{output}}",g$t="Upstream",h$t="Billed",y$t="Latency",v$t="Started",b$t="Page {{page}} · showing {{shown}} of {{total}} matching records",x$t="Previous",$$t="Next",w$t="{{count}} rows on this page",k$t="Times shown in",C$t="{{count}} API keys",S$t="Spend snapshot",A$t="from OneHop billing snapshot",T$t="User spend",R$t="total billed to users",P$t="Avg latency",_$t="streaming requests",j$t="Avg duration",N$t="settled requests",D$t="Range",M$t={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},E$t="Metric",I$t={cost:"Spend",tokens:"Tokens",requests:"Requests"}
779,O$t="Distribution",L$t={model:"Model",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream:"Transport (stream/sync)"},U$t="Usage trend",B$t="Usage by model",F$t="Hourly",z$t="Daily",q$t="Top endpoints",H$t="Top dimension rows",V$t="Request logs",K$t="API key",G$t="Type",W$t="Billing",Y$t="Channel",Q$t="Group",X$t="Request ID",Z$t="req_ / usg_ / upstream",J$t="All types",ewt="All billing",twt={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"First-token",duration:"Duration",status:"Status"},nwt="Failed to load usage",awt="Loading usage records",owt="Try a different filter set.",swt="No trend data",rwt="No distribution data",iwt="No rows",lwt="Spend breakdown",cwt={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Recorded spend",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},dwt="Request detail",uwt="Open request detail",mwt="Unknown user",pwt="Loading...",fwt="Recorded spend",gwt="Group multiplier",hwt="Account multiplier",ywt="Identity",vwt="User ID",bwt="Key suffix",xwt={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},$wt="Input",wwt="Output",kwt="Cache read",Cwt="Cache write",Swt="Raw metadata",Awt="Request",Twt="Usage ID",Rwt="OneHop ID",Pwt="Sub2API ID",_wt="Sub2API log",jwt="Routing",Nwt="Mapping",Dwt="Performance",Mwt="First token",Ewt="Total",Iwt="Error",Owt="Code",Lwt="Message",Uwt={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Recorded spend",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",firstTokenMs:"First token ms",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID"},Bwt={analytics:"Usage analytics",logs:"Request logs"},Fwt={label:"Chart view",stacked:"Over time",ranking:"Ranking"},zwt={failedOnly:"Failed only",slowOnly:"Slow TTFT > {{sec}}s"},qwt="More filters",Hwt="Slow TTFT threshold (ms)",Vwt="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",Kwt="No model usage",Gwt="No requests yet â usage will appear here as traffic comes in.",Wwt="Viewing",Ywt={title:Bxt,description:Fxt,refresh:zxt,autoRefresh:qxt,exporting:Hxt,exportCsv:Vxt,exportError:Kxt,requests:Gxt,successful:Wxt,users:Yxt,matchedFilters:Qxt,billedCredit:Xxt,upstreamCost:Zxt,tokens:Jxt,avgDuration:e$t,userEmail:t$t,searchEmail:n$t,model:a$t,searchModel:o$t,status:s$t,protocol:r$t,rows:i$t,reset:l$t,label:c$t,empty:d$t,user:u$t,endpoint:m$t,totalTokens:p$t,inOut:f$t,upstream:g$t,billed:h$t,latency:y$t,started:v$t,pageSummary:b$t,previous:x$t,next:$$t,rowsOnPage:w$t,timesShownIn:k$t,apiKeys:C$t,sub2a
779piCharge:S$t,sub2apiChargeSource:A$t,userSpend:T$t,userSpendSource:R$t,avgLatency:P$t,avgLatencySub:_$t,avgTotalDuration:j$t,settledRequests:N$t,range:D$t,ranges:M$t,metric:E$t,metrics:I$t,distribution:O$t,breakdown:L$t,usageTrend:U$t,stackedByModel:B$t,hourly:F$t,daily:z$t,topEndpoints:q$t,topDimensionRows:H$t,requestLogs:V$t,apiKey:K$t,type:G$t,billing:W$t,channel:Y$t,group:Q$t,requestId:X$t,requestIdPlaceholder:Z$t,allTypes:J$t,allBilling:ewt,table:twt,failedLoad:nwt,loadingRecords:awt,tryDifferentFilters:owt,noTrendData:swt,noDistributionData:rwt,noRows:iwt,costBreakdown:lwt,adminCost:cwt,requestDetail:dwt,openRequestDetail:uwt,unknownUser:mwt,loading:pwt,sub2apiActual:fwt,groupMultiplier:gwt,accountMultiplier:hwt,identity:ywt,userId:vwt,keySuffix:bwt,continuity:xwt,input:$wt,output:wwt,cacheRead:kwt,cacheWrite:Cwt,rawMetadata:Swt,request:Awt,usageId:Twt,onehopId:Rwt,sub2apiId:Pwt,sub2apiLog:_wt,routing:jwt,mapping:Nwt,performance:Dwt,firstToken:Mwt,total:Ewt,error:Iwt,code:Owt,message:Lwt,csv:Uwt,tabs:Bwt,modelView:Fwt,chip:zwt,moreFilters:qwt,slowThreshold:Hwt,latencyHint:Vwt,noModelUsage:Kwt,noTrendToday:Gwt,viewing:Wwt},Qwt="Search",Xwt="Search by user ID, email, or name",Zwt="User",Jwt="Back to users",e0t="You do not have permission to view this section.",t0t="Refund",n0t="Refunding...",a0t="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",o0t="Refund initiated.",s0t={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"API Keys",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},r0t={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},i0t={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},l0t={phase2:"Subscriptions are coming in Phase 2."},c0t={empty:"No payments"},d0t={empty:"No refunds"},u0t={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},m0t={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},p0t={empty:"No audit records"},f0t={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},g0t={ipLocationTitle:"IP & Location",deviceBrowserTitle:"Device & Browser",stripeTitle:"Stripe",signupIp:"Signup IP",signupCountry:"Signup Country",lastLoginIp:"Last Login IP",ipDifferent:"Differs from signup IP",sameIpAccounts_one:"{{count}} account on same signup IP",sameIpAccounts_other:"{{count}} accounts on same signup IP",sameDeviceAccounts_one:"{{count}} account on same device",sameDeviceAccounts_other:"{{count}} accounts on same device",deviceFingerprint:"Device Fingerprint",freeTierEligible:"Free Tier Eligibility",firstDevice:"First on device",notFirstDevice:"Not first on device â no free perks",browser:"Browser",os:"OS",deviceType:"Device Type",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"View on ipinfo.io"},h0t={empty:"No calls yet",viewAll:"View all logs â",colStatus:"Status",colTime:"Time",colModel:"Model",colProtocol:"Protocol",colDuration:"Duration",colCost:"Cost",colFreeDiscount:"Free Credit"},y0t={empty:"No API keys",colName:"Name",colKey:"Key",colStatus:"Status",colPolicy:"Rate Limit Policy",colLastUsed:"Last Used",colCreated:"Created",colExpires:"Expires",colSpend:"Spend",spendTitle:"Spend breakdown",spend30d:"Last 30 days",spendAllTime:"All-time",spendRequests:"Requests"},v0t="Copy",b0t="Copied",x0t={search:Qwt,searchPlaceholder:Xwt,title:Zwt,backToList:Jwt,noBlockPerm:e0t,refund:t0t,refunding:n0t,refundConfirm:a0t,refundInitiated:o0t,nav:s0t,freeTokens:r0t,freeQuota:i0t,subscription:l0t,payments:c0t,refunds:d0t,rewards:u0t,referrals:m0t,audit:p0t,col:f0t,network:g0t,recentCalls:h0t,apiKeys:y0t,copy:v0t,copied:b0t},$0t="Users",w0t="Search users, grant credit, and suspend accounts.",k0t="Email",C0t="Search by email",S0t="Account status",A0t={active:"Account active; can sign in and call the gateway",suspended:"Suspended; gateway rejects all requests (401)"},T0t="Risk",R0t={normal:"Eligible for all free perks",watchlisted:"No free tokens or signup bonus; can still top up & call the gateway",blocked:"Gateway rejects all requests (401); fully banned"},P0t="Users",_0t="No users found",j0t="Country",N0t="Last login",D0t="Action",M0t="View",E0t="Deleted",I0t="Set status for {{email}}",O0t='Set {{email}} to "{{status}}"?',L0t="Grant credit",U0t="Add bonus credit to {{email}}. Recorded in the ledger.",B0t="Amount (USD)",F0t="e.g. 5",z0t="Reason (optional)",q0t="e.g. compensation for downtime",H0t="Type",V0t="Bonus credit",K0t="A gift. Does not count as a top-up.",G0t="Offline payment",W0t="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",Y0t="Reference no.",Q0t="e.g. bank slip 20260907-001",X0t="Record payment",Z0t="Recording...",J0t="C
779ancel",ekt="Granting...",tkt="Grant",nkt="Grant ${{amount}} to {{email}}? This is a large amount.",akt="No display name",okt="Loading...",skt="score {{score}}",rkt="Email verified",ikt="Yes",lkt="No",ckt="Signup",dkt="Signup method",ukt="Last login method",mkt="Signup bonus",pkt="Onboarding",fkt="Locale / TZ",gkt="Markup ratio",hkt="Rate limit policy",ykt="Rate limit policy updated.",vkt="Joined",bkt="Never",xkt="Balance",$kt="Wallet & spend",wkt="Total spent",kkt="Recharged",Ckt="Location",Skt="Lang",Akt="Bonus granted",Tkt="Refunded",Rkt="Requests",Pkt="Tokens",_kt="Actions",jkt="Identity & risk",Nkt="Role",Dkt="No permitted actions for your role.",Mkt="Acquisition source",Ekt="Acquisition by source",Ikt="Direct / unknown",Okt="Custom sourceâ¦",Lkt="Set",Ukt="Auto-detected: {{source}}",Bkt="UTM",Fkt="Referred by",zkt="Note",qkt="Add a note to identify this user",Hkt="Save note",Vkt="Note saved",Kkt="No note",Gkt="Filters",Wkt={title:$0t,description:w0t,email:k0t,searchEmail:C0t,status:S0t,statusEffect:A0t,risk:T0t,riskEffect:R0t,label:P0t,empty:_0t,country:j0t,lastLogin:N0t,action:D0t,view:M0t,deleted:E0t,setStatusAria:I0t,setStatusConfirm:O0t,grantCredit:L0t,grantDescription:U0t,amountUsd:B0t,amountPlaceholder:F0t,reason:z0t,reasonPlaceholder:q0t,grantKind:H0t,grantKindBonus:V0t,grantKindBonusHint:K0t,grantKindOffline:G0t,grantKindOfflineHint:W0t,referenceNo:Y0t,referenceNoPlaceholder:Q0t,recordPayment:X0t,recording:Z0t,cancel:J0t,granting:ekt,grant:tkt,largeGrantConfirm:nkt,noDisplayName:akt,loading:okt,score:skt,emailVerified:rkt,yes:ikt,no:lkt,signup:ckt,signupMethod:dkt,lastLoginMethod:ukt,signupBonus:mkt,onboarding:pkt,localeTz:fkt,markupRatio:gkt,rateLimitPolicy:hkt,rateLimitPolicyChanged:ykt,joined:vkt,never:bkt,walletBalance:xkt,walletSection:$kt,consumed:wkt,recharged:kkt,location:Ckt,preferredLocale:Skt,bonusGranted:Akt,refunded:Tkt,requests:Rkt,tokens:Pkt,actionsSection:_kt,identitySection:jkt,role:Nkt,noPermittedActions:Dkt,acquisitionSource:Mkt,acquisitionTitle:Ekt,sourceDirect:Ikt,sourceCustomPlaceholder:Okt,sourceSet:Lkt,sourceCaptured:Ukt,utm:Bkt,referrer:Fkt,note:zkt,notePlaceholder:qkt,noteSave:Hkt,noteSaved:Vkt,noteEmpty:Kkt,filters:Gkt},Ykt="Webhooks",Qkt="Stripe webhook events. Status filter, retry, payload inspection.",Xkt="Status",Zkt="Event type",Jkt="Received",eCt="Event type",tCt="Status",nCt="Mode",aCt="Attempts",oCt="Retry",sCt="Retry queued",rCt="Event {{event}} reset to pending; next job tick will process.",iCt="Retry failed",lCt="No webhook events yet.",cCt="Stripe events will appear here once your endpoint is registered.",dCt="Loading payload...",uCt="Last error",mCt="Payload (JSON)",pCt={title:Ykt,description:Qkt,statusFilter:Xkt,eventTypeFilter:Zkt,receivedAt:Jkt,eventType:eCt,status:tCt,mode:nCt,attempts:aCt,retry:oCt,retrySubmittedTitle:sCt,retrySubmittedBody:rCt,retryFailedTitle:iCt,empty:lCt,emptyHint:cCt,detailLoading:dCt,lastError:uCt,payload:mCt},fCt="API Keys",gCt="Get your first key in 10 seconds",hCt="Failed to copy",yCt={label:"Allowed models",allModels:"All models",allHint:"All models in the catalog are allowed.",noModels:"No models available.",selected:"{{count}} selected",someHint:"{{count}} model(s) allowed."},vCt={label:"Tags",placeholder:"Add a tag and press Enter",remove:"Remove"},bCt="Create and manage account-level keys for every OneHop gateway API.",xCt="Refresh",$Ct="Default key",wCt="Key name",kCt="Creating...",CCt="Create key",SCt="Create API key",ACt="Edit API key",TCt="Name the key. Limits and expiration stay in advanced settings unless you need them.",RCt="Monthly credit limit",PCt="Expires at",_Ct="Unlimited",jCt="Saving...",NCt="Save",DCt="Cancel",MCt="Your full key",ECt="Copy API key",ICt="Copied",OCt="Copy",LCt="Copy it now if you like â you can view this key again anytime from its connection details.",UCt="I've saved it",BCt={title:"Disabled & revoked",description:"Turned-off or revoked keys. Re-enable a disabled one, or keep it here for the record."},FCt={title:"No active keys",description:"Re-enable a disabled key below, or create a new one."},zCt={import:"Import CC Switch",client:"CC Switch client",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"Opened CC Switch with a placeholder â paste your saved API key there.",checking:"Checking compatibilityâ¦",blocked:{title:"{{client}} cannot use this key",body:'"{{keyName}}" only allows models that {{client}} cannot use. Importing will result in errors.',adjust:"Adjust model scope",forceImport:"Import anyway (will not work)"},pin:{title:"Import as {{model}} for {{client}}",body:`"{{keyName}}" doesn't include {{client}}'s default model. Here's how {{client}} requests will be routed through this provider:`,adjust:"Adjust model scope",confirm:"Import with {{model}}"}},qCt="API keys failed to load",HCt="Retry",VCt="No API keys yet",KCt="Create your first key to
779start sending requests through OneHop.",GCt={search:"Search",searchPlaceholder:"Search name or key suffix",status:"Status",allStatus:"All status",clear:"Clear filters",empty:"No keys match these filters",emptyDescription:"Clear the search or status filter to see all keys.",mobileTitle:"Filters"},WCt={active:"Active",inactive:"Disabled",revoked:"Revoked",expired:"Expired",quota_exhausted:"Quota exhausted"},YCt={label:"API keys",tags:"Tags",name:"Name",key:"Key",status:"Status",usage:"Usage",quota:"Quota",expires:"Expires",lastUsed:"Last used",created:"Created",action:"Action"},QCt={today:"Today {{requests}} req · {{credit}}",days30:"30d {{requests}} req · {{credit}}"},XCt={use:"Connection details",edit:"Edit",enable:"Enable",disable:"Disable",delete:"Delete"},ZCt="Use API key",JCt="Use this key with OneHopâs gateway. You can view the full key anytime.",e1t={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization header",env:"Environment variable",curl:"cURL",revealing:"Decrypting keyâ¦",fullKeyUnavailable:"This key can no longer be shown. Use the value you saved, or create a new key.",protocolEndpoints:"Protocol endpoints"},t1t="Revoke",n1t="Revoke {{name}}? This cannot be undone.",a1t="Advanced settings",o1t={label:"Model access",all:"All models",limited:"Restrict to specific models",allHint:"This key can call every model, including ones added later.",snapshotHint:"Only the models you pick â new models added later are not included automatically.",snapshotHintEdit:"Only the models you pick â new models are not added automatically. Switching to All models replaces this whitelist.",searchPlaceholder:"Search modelsâ¦",selectAllResults:"Select all results ({{count}})",selectedCount:"{{count}} / {{max}} selected",clear:"Clear",hiddenSelected:"{{hidden}} of {{total}} selected are hidden by the current filter",selectVendor:"Select all {{vendor}}, {{on}} of {{total}} selected",emptyTitle:"No models match",emptyDescription:"Try a different type or search.",loadFailed:"Could not load models",loadFailedHint:"Retry, or switch back to All models.",type:{all:"All",text:"Text",image:"Image",video:"Video",embedding:"Embedding"},pickAtLeastOne:"Pick at least one model, or switch to All models.",limitReached:"Reached the {{max}}-model limit"},s1t={title:"API key created",subtitle:"{{name}} is ready â connect it now.",onceWarning:"Shown once. You can re-reveal it later, but copy it now to be safe.",connect:"Connect",done:"Done"},r1t="IP",i1t="Revoked {{date}}",l1t={title:fCt,emptyTitle:gCt,copyFailed:hCt,allowedModels:yCt,tags:vCt,description:bCt,refresh:xCt,defaultName:$Ct,keyName:wCt,creating:kCt,createKey:CCt,createTitle:SCt,editTitle:ACt,formDescription:TCt,monthlyCreditLimit:RCt,expiresAt:PCt,unlimited:_Ct,saving:jCt,save:NCt,cancel:DCt,fullKeyTitle:MCt,copyApiKey:ECt,copied:ICt,copy:OCt,fullKeyDescription:LCt,savedIt:UCt,parked:BCt,noActive:FCt,ccswitch:zCt,loadFailed:qCt,retry:HCt,empty:VCt,emptyDescription:KCt,filters:GCt,status:WCt,table:YCt,usage:QCt,actions:XCt,useTitle:ZCt,useDescription:JCt,use:e1t,revoke:t1t,revokeConfirm:n1t,advancedSettings:a1t,scope:o1t,created:s1t,lastUsedIp:r1t,revokedAt:i1t},c1t="Audit Logs",d1t="High-risk admin actions, by action and time.",u1t="Action",m1t="Clear",p1t={ops_user_update_status:"User status updated",ops_users_allowlist_add:"Signup access added",ops_users_allowlist_update:"Signup access updated",ops_users_allowlist_invite:"Signup access invited",ops_users_allowlist_revoke:"Signup access removed",ops_users_allowlist_restore:"Signup access restored",ops_model_create:"Model created",ops_model_update:"Model updated",ops_model_update_status:"Model status updated",sub2api_pool_create:"Routing pool created",sub2api_pool_test:"Routing pool tested",sub2api_pool_rotate_secret:"Routing secret rotated"},f1t="Audit logs",g1t="No audit entries",h1t="Time",y1t="Severity",v1t="Target",b1t={ai_model:"Model",sub2api_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},x1t="Target type",$1t="Request ID",w1t={title:c1t,description:d1t,action:u1t,clear:m1t,actions:p1t,label:f1t,empty:g1t,time:h1t,severity:y1t,target:v1t,targetTypes:b1t,targetType:x1t,requestId:$1t}
779,k1t="Sign in to OneHop",C1t="Enter your code",S1t="Use Google or email to continue",A1t="Enter your email to receive a code",T1t="Enter the 6-digit code sent to {{email}}",R1t="Continue with Google",P1t="Continue with email",_1t="or",j1t="Email",N1t="Send verification code",D1t="Sending...",M1t="Verify",E1t="Verifying...",I1t="Resend in {{seconds}}s",O1t="Resend code",L1t="By continuing you agree to our",U1t="Terms",B1t="Privacy",F1t={signIn:"Sign in",signOutFailed:"Sign out failed",sendCodeFailed:"Failed to send code",notAllowed:"This email isn't approved for access yet. Contact your administrator to request access.",invalidCode:"Invalid code",codeIncorrect:"Code incorrect, try again",googleFailed:"Google sign-in failed",verifyHuman:"Please complete the verification to continue",verifyUnavailable:"Human verification is temporarily unavailable. Please continue with Google above, or try again later."},z1t={signInTitle:k1t,enterCodeTitle:C1t,methodIntro:S1t,emailStepIntro:A1t,codeIntro:T1t,continueGoogle:R1t,continueEmail:P1t,or:_1t,emailLabel:j1t,sendCode:N1t,sending:D1t,verify:M1t,verifying:E1t,resendIn:I1t,resendCode:O1t,termsPrefix:L1t,terms:U1t,privacy:B1t,errors:F1t},q1t="Billing",H1t="Top up Credits, redeem coupons, and review wallet activity.",V1t={title:"Earmarked credit",subtitle:"Bonus credit usable only on specific models â kept separate from your balance.",onlyModels:"Only {{models}}",onlyModelsGeneric:"Restricted models",validUntil:"Valid until {{date}}",noExpiry:"No expiry",useInChat:"Use in chat"},K1t={bonuses:"Bonuses",topups:"Top-ups",usage:"Usage"},G1t={available:"Credited",availableHint:"Already in your available balance",frozen:"Pending (frozen)",frozenHint:"Vests in ~{{days}} days",frozenHintGeneric:"Vests after the holding period",title:"Referral rewards",viewDetails:"View referral details"},W1t={noUsage:"No usage in the last 30 days",perDay:"{{amount}} avg/day",daysLeft:"â {{days}} days left at current rate"},Y1t={amountUsd:"Amount (USD)",minAmountHint:"Minimum top-up is {{amount}}.",apply:"Apply",get:"Get",onehopCredits:"OneHop credits",pay:"Pay",poweredByStripe:"Secured by Stripe",poweredBy:"Secured by {{provider}}",secureCheckout:"Secure hosted checkout",secureCheckoutShort:"Secure checkout",taxExclusiveNotice:"Applicable taxes are calculated at checkout and added to this amount.",presets:"Preset amounts",promoCode:"Promotion code",promoCodePlaceholder:"Enter promotion code",serviceFee:"Service fee",title:"Top up",topupAmount:"Top-up amount",totalDue:"Total due",payCta:"Pay {{amount}}",previewing:"Checkingâ¦",discount:"Coupon discount",couponBelowMin:"Discounted total is too low â raise the amount or try another code.",maintenanceTitle:"Payments temporarily unavailable",maintenanceDescription:"Payments are temporarily unavailable. Contact us on Telegram if you need to pay.",contactTelegram:"Contact us on Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Pay with crypto (USDC / USDT)",payOnStripe:"Payment is completed on the secure Stripe checkout page.",payOnProvider:"Payment is completed on the secure {{provider}} checkout page.",payOnHostedCheckout:"Payment is completed on the secure hosted checkout page.",amountPrecision:"{{provider}} accepts USD amounts with no more than 2 decimal places. Adjust the amount or promotion code.",couponBonus:"Coupon bonus",couponBonusExpiry:"Bonus credits expire {{days}} days after payment.",couponInvalid:"This code cannot be applied â try another code.",couponErrors:{limitReached:"You've already used this code the maximum number of times.",invalid:"This code is invalid.",expired:"This code has expired.",exhausted:"This code has been fully redeemed.",unavailable:"This code is being used â try again shortly."},tierBonus:"Promotion bonus",tierBonusExpiry:"Bonus credits expire {{days}} days after payment.",tierBonusRestricted:"Bonus credits can only be spent on: {{models}}.",nextTierPercent:"Top up {{amount}} more to earn {{percent}}% in bonus credits.",nextTierBonus:"Top up {{amount}} more to earn {{bonus}} in bonus credits.",tierCapReached:"You've already earned the maximum bonus for this promotion."},Q1t="Add Credits",X1t="Creating...",Z1t="Available Credit",J1t="Top up",eSt="Powered by Stripe",tSt="Amount in USD",nSt="Preset top-up amounts",aSt="Redeem coupon",oSt="Coupon code",sSt="Redeeming...",rSt="Redeem",iSt="Coupon redeemed. Balance is refreshing.",lSt="Redirecting to secure checkout...",cSt="Billing summary failed to load",dSt="Top-up failed",uSt="Billing activity tabs",mSt="Transactions",pSt="Credit grants",fSt="Transaction type",gSt="Source",hSt="No transactions yet",ySt="Top-ups, charges, and grants appear here.",vSt="Ledger entries",bSt="Time",xSt="Type",$St="Amount",wSt="Balance",kSt="No grants yet",CSt="Signup bonuses, coupons, and manual grants appear here.",SSt="Status",ASt={successTitle:"Payment received",polling:"Crediting your wallet... about 30 seconds.",delayed:"Slow to arrive. Refresh in a moment or check your Str
779ipe receipts.",cancelledTitle:"Payment cancelled",cancelledBody:"No charge was made. Try again when you are ready.",failedTitle:"Payment failed",failedBody:"Your payment could not be completed. No credit was added. Try again or use a different payment method."},TSt={text:"Credits are a prepaid service balance, not a bank deposit. Consumed credits are non-refundable. All prices in USD. See",tosLink:"Terms"},RSt="Receipts",PSt="Opening...",_St="Could not open billing portal",jSt={title:"Recent top-ups",subtitle:"Last 90 days. Unused balance is refundable anytime.",loading:"Loading top-ups...",date:"Date",amount:"Amount",credits:"Credits",status:"Status",refund:"Refund",alreadyRefunded:"Already refunded",windowExpired:"Refund window expired (24 hours)",confirmTitle:"Confirm refund",confirmBody:"The refund will be processed by Stripe within 1-3 business days. A platform fee ({{fee}}) applies to user-initiated refunds.",amountLabel:"Refund amount (USD)",maxLabel:"Max ${{value}}",requestedLabel:"Refund requested",platformFeeLabel:"Platform fee ({{fee}})",cardReturnLabel:"Returned to your card",bonusForfeitureHint:"Promotional credits granted with this top-up will be forfeited proportionally.",cancel:"Cancel",confirm:"Issue refund",submitting:"Submitting...",refundSubmittedTitle:"Refund submitted",refundSubmittedBody:"Stripe will return the funds to your card within 1-3 business days.",refundFailedTitle:"Refund failed",balance:"Balance",confirmAmount:"Refund {{amount}}"},NSt={title:"Balance alerts",description:"Get notified when your balance runs low.",emailLabel:"Email me",webhookLabel:"Webhook",autorechargeLabel:"Auto top-up",autorechargeUnsupported:"Automatic top-up is unavailable with the active payment provider.",autorechargeAddCardHint:"adds a card to keep your balance topped up",autorechargeTopUp:"Top up",autorechargeWhenBelow:"when balance falls below",autorechargeThreshold:"Auto top-up threshold",autorechargeAmount:"Auto top-up amount",autorechargeDisabledFailures:"Auto top-up was disabled after repeated failures. Update your card and re-enable.",autorechargeIncomplete:"Set an auto top-up amount and threshold above $0.",test:"Test",testing:"Testingâ¦",testQueued:"Test delivery queued â check your endpoint",testFailed:"Failed to queue test delivery",signingSecret:"Signing secret",secretOnSave:"A signing secret is generated
779when you save.",rotate:"Rotate",secretRotated:"Signing secret rotated",rotateFailed:"Failed to rotate secret",secretCopied:"Signing secret copied",saved:"Alert settings saved",saveFailed:"Failed to save alert settings",loadFailed:"Could not load alert settings",thresholdRequired:"Set a threshold above $0 to enable alerts.",webhookUrlRequired:"Enter an https:// URL for the webhook.",thresholdOrderBad:"Alert threshold must be ⥠the auto top-up threshold.",card:"Card",changeCard:"Change",removeCard:"Remove",cardRemoved:"Card removed",cardRemoveFailed:"Failed to remove card",cardSetupFailed:"Failed to start card setup",lowBalanceGroup:"Low-balance alerts",thresholdLabel:"Alert threshold"},DSt={title:"Transaction history",idSearch:"Transaction ID",amountRange:"Amount range (USD)",min:"Min",max:"Max",clear:"Clear",retry:"Retry",empty:"No transactions in this range",date:"Date",typeMethod:"Type / method",description:"Description",action:"Action",prevMonth:"Previous month",nextMonth:"Next month",viewInvoices:"View invoices",emptyNew:"No transactions yet",emptyNewDesc:"Once you top up, your top-ups, bonuses and refunds will appear here.",topUpCta:"Top up",emptyFiltered:"No transactions match these filters",emptyFilteredDesc:"Try clearing filters or widening the date range.",clearFilters:"Clear filters"},MSt="Your balance is low and may interrupt requests. Top up or enable auto top-up.",ESt="Your balance is low and may interrupt requests. Top up to continue.",ISt={creditPurchase:"Credit top-up",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Coupon bonus",referralCashback:"Referral cashback",referralInviteeCashback:"Referral invitee cashback",redeemCode:"Redeem code {{code}}",redeemCodeReversal:"Redeem code reversal",stripeRefund:"Stripe refund",bonusReversal:"Bonus reversal (refund)"},OSt={card:"Card",alipay:"Alipay",wechatPay:"WeChat Pay"},LSt={title:"Redeem a code",description:"Have a redeem code? Enter it to credit the amount to your balance.",placeholder:"e.g. OHR-XXXXXXXX",redeem:"Redeem",redeeming:"Redeemingâ¦",success:"Redeemed {{amount}} to your balance",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"This code is invalid.",expired:"This code has expired.",alreadyRedeemed:"This code has already been redeemed.",perUserLimit:"You've reached the redemption limit for this batch."}},USt={title:q1t,description:H1t,earmarked:V1t,breakdown:K1t,referralRewards:G1t,burnRate:W1t,topup:Y1t,addCredits:Q1t,creating:X1t,availableCredit:Z1t,topUp:J1t,poweredByStripe:eSt,amountUsd:tSt,presetAmounts:nSt,redeemCoupon:aSt,couponCode:oSt,redeeming:sSt,redeem:rSt,couponRedeemed:iSt,redirecting:lSt,summaryFailed:cSt,topupFailed:dSt,tabsLabel:uSt,transactions:mSt,creditGrants:pSt,transactionType:fSt,source:gSt,noTransactions:hSt,noTransactionsDescription:ySt,ledgerEntries:vSt,time:bSt,type:xSt,amount:$St,balance:wSt,noGrants:kSt,noGrantsDescription:CSt,status:SSt,topupBanner:ASt,compliance:TSt,receipts:RSt,openingPortal:PSt,portalFailed:_St,recentTopups:jSt,alerts:NSt,history:DSt,lowBalanceWarning:MSt,lowBalanceWarningNoAutoTopup:ESt,ledgerDesc:ISt,paymentMethod:OSt,redeemCard:LSt},BSt="Chart failed",FSt="No data",zSt="There's nothing to chart yet.",qSt={errorTitle:BSt,emptyTitle:FSt,emptyDescription:zSt},HSt={copy:"Copy",regenerate:"Regenerate",shareComingSoon:"Share (coming soon)",download:"Download",copyLink:"Copy link",newChat:"New chat",deleteChat:"Delete chat",openConversationList:"Open conversation list",openSettings:"Chat settings",collapseSidebar:"Collapse sidebar",expandSidebar:"Expand sidebar",cancel:"Cancel",apply:"Apply",newChatTooltip:"
779Create new chat",copied:"Copied"},VSt={placeholderReady:"Start a new conversation...",placeholderNoModel:"Choose a model above first",placeholderComingSoon:"This model is coming soon â pick another one above",attachmentTooLarge:"File is over {{limit}} and cannot be uploaded",attachmentUnsupported:"Unsupported file type. Use PNG, JPEG, WebP, GIF, MP4, WebM, or MOV.",unsupportedVision:"This model does not accept image or video input. Switch models before dropping files.",send:"Send",abort:"Stop",attachImage:"Add image",attachMedia:"Add image or video",removeAttachment:"Remove",shortcutSend:"send",shortcutNewLine:"new line",shortcutAbort:"stop",frameFirst:"First frame",frameLast:"Last frame",frameReference:"Reference",imageMode:"Image generation",videoMode:"Video generation",reasoning:"Thinking",reasoningOff:"Off",reasoningAlways:"Always on",placeholderTopupRequired:"This model is available to accounts that have topped up â top up to use it here"},KSt={modelUnavailable:"Model {{model}} is not available right now. Your prompt is still saved.",rateLimited:"Too many concurrent requests. Try again shortly.",accountDisabled:"This account is disabled and cannot continue chatting.",attachmentsUploading:"Images are still uploading. Wait a moment before sending.",attachmentsFailed:"An image failed to upload. Remove it and try again before sending."},GSt={title:"Start testing any model here.",body:"Chat directly with any model. Usage is charged to your PAYG wallet.",starters:{compareModels:"Compare GPT-5.5 and Claude Opus on the same coding task",analyzeImage:"Analyze an architecture diagram and summarize the risks",draftPrompt:"Draft a system prompt for a support agent",generateImage:"Generate a product hero image with a clean SaaS style"}},WSt={untitled:"Untitled chat",deleteConfirm:'Delete "{{title}}"?',emptyTitle:"No conversations yet",emptyBody:"Use + New chat above to start.",listLabel:"Conversation list",groups:{today:"Today",yesterday:"Yesterday",earlier:"Earlier"},menu:{rename:"Rename",delete:"Delete"},deleteTitle:"Delete conversation?"},YSt={paygWallet:"PAYG wallet"},QSt={chooseModel:"Choose model",searchPlaceholder:"Search models...",emptyTitle:"No models found",emptyBody:"Try another search term or tab.",protocols:"{{count}} protocols",context:"{{value}} ctx",tabs:{all:"All",text:"Text",image:"Image",video:"Video"},maxOut:"out {{value}}",unavailable:"Coming Soon",requiresTopup:"Top up to unlock"},XSt={title:"Chat settings",protocol:"Protocol",unlimited:"Unlimited",fields:{memory_limit:{label:"Chat memory"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"Service tier",options:{standard:"Standard",priority:"Priority",flex:"Flex"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"e.g. 2000"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},stop_sequences:{label:"Stop Sequences",placeholder:"Comma-separated, e.g. END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"Enter a system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"Implicit",explicit:"Explicit"}},image_size:{label:"Image Resolution"},image_resolution:{label:"Resolution"},image_quality:{label:"Image Quality",options:{Auto:"Auto",auto:"Auto",low:"Low",medium:"Medium",high:"High"}},video_ratio:{label:"Aspect ratio"},video_resolution:{label:"Video resolution"},video_duration_seconds:{label:"Duration"},image_count:{label:"Image Count"},image_aspect_ratio:{label:"Aspect ratio"},reasoning_effort:{label:"Reasoning Effort",options:{none:"Off",minimal:"Minimal",low:"Low",medium:"Medium",high:"High",xhigh:"X-High",max:"Max"}},reasoning_pro:{label:"Pro mode"},reasoning_context:{label:"Reasoning context",options:{auto:"Auto",current_turn:"Current turn",all_turns:"All turns"}},reasoning_enabled:{label:"Thinking"},reasoning_always:{label:"Thinking",value:"Always on"}}},ZSt={estimating:"estimating...",settling:"settling...",input:"in",output:"out",milliseconds:"ms",realCost:"Actual cost",latency:"Latency",logDetail:"Log detail"},JSt={copied:"Image link copied",expired:"Image link expired. Copy the link to reopen or regenerate.",attachment:"[image attachment]"},eAt={message:"This chat is billed to your PAYG wallet",balance:"Balance",billingLink:"Billing",dismiss:"Dismiss"},tAt={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},nAt={trigger:"Copy as code",copied:"Copied as {{format}}",failed:"Copy failed",failedDescription:"Clipboard permission may be blocked by the browser."},aAt={interrupted:"[Interrupted]",sending:"sending"},oAt={title:"Thinking process",duration:"Thought for {{seconds}}s"},sAt={title:"Video generation is coming soon",body:"This model is listed for discovery, but video sending is not enabled yet.",switchToText:"Switch to a text model"},rAt={imageGenerating:"Generating image",videoGenerating:"Generating video",stage:{queued:"Queued",routing:"Routing",generating:"Generating",storing:"Storing",settling:"Settling"}},iAt={INSUFFICIENT_CREDITS:"Insufficient balance",RATE_LIMITED:"Too many requests",rate_limit_error:"Too many requests",MODEL_NO_VISION:"This model does not accept image input",CONTENT_REFUSED:"Request declined by the model",EMPTY_RESPONSE:"Model returned an empty response",upstream_error:"Upstream service error",overloaded_error:"Upstream service is busy",upstream_invalid_json:"Malformed upstream response",stream_read_error:"Response stream interrupted",invali
779d_api_key:"Upstream authentication failed",model_unavailable:"Model temporarily unavailable",no_image:"No image was generated",no_body:"No response from upstream",http_error:"Request failed",session_create_failed:"Failed to create session"},lAt={title:"Top up to unlock this model",body:"It's available to accounts that have topped up. Any amount unlocks it right away, and your balance is still billed per use.",cta:"Top up"},cAt={actions:HSt,composer:VSt,errors:KSt,empty:GSt,sidebar:WSt,header:YSt,modelSelector:QSt,settings:XSt,metrics:ZSt,image:JSt,payg:eAt,earmark:tAt,copyAsCode:nAt,status:aAt,thinking:oAt,video:sAt,media:rAt,errorCodes:iAt,topupLock:lAt},dAt="Loading...",uAt="Account",mAt="Language",pAt="Sign in",fAt="Sign out",gAt="Signing out...",hAt="Save changes",yAt="Saving...",vAt="Saved.",bAt="Back",xAt="Retry",$At="Get 5% off service fee on top-up.",wAt="Save",kAt="Cancel",CAt="Clear",SAt="Reset",AAt="Copied",TAt="Failed to copy",RAt="Dismiss",PAt="Total",_At={timestamp:"Timestamp",local:"Local",relative:"Relative"},jAt="Copy",NAt={title:"Open in your browser",description:"You're viewing this inside an <b>in-app browser</b>, where <b>Google sign-in and human verification don't work</b>. Please open it in your system browser to continue.",hintWechat:"Tap the ··· menu in the top-right corner and choose âOpen in Browserâ.",hintGeneric:"Use the top-right menu and choose âOpen in Browser / Safariâ.",copyLink:"Copy link",continueAnyway:"Continue anyway"},DAt="All",MAt="Active",EAt="Optional",IAt="Remove",OAt={loading:dAt,account:uAt,language:mAt,signIn:pAt,signOut:fAt,signingOut:gAt,saveChanges:hAt,saving:yAt,saved:vAt,back:bAt,retry:xAt,topUpPromo:$At,save:wAt,cancel:kAt,clearAll:CAt,reset:SAt,copied:AAt,copyFailed:TAt,dismiss:RAt,total:PAt,time:_At,copy:jAt,inAppBrowser:NAt,all:DAt,active:MAt,optional:EAt,remove:IAt},LAt="Dashboard",UAt="Monitor credits, usage, and key gateway health from one console.",BAt="Create API key",FAt={creditBalance:"Credit balance",requestsToday:"Requests today",activeApiKeys:"Active API keys"},zAt={title:"Usage trend",description:"Requests and billed credit over the last 14 days.",viewUsage:"View usage",loading:"Loading usage trend",empty:"No usage yet",emptyDescription:"Usage appears here once requests start flowing."},qAt={title:"Credit activity",description:"Daily billed credit over the last 90 days.",total:"90-day total",loading:"Loading activity",activeDays:"{{count}} active days in the last {{days}} days",less:"Less",more:"More"},HAt={title:"Usage mix",description:"A compact view of spend intensity, token volume, and the model carrying most usage.",activeDays:"Active days",ofDays:"of {{days}} days",avgDailyCredit:"Avg daily credit",nonZeroDays:"on active days",peakDay:"Peak day",noPeak:"No usage yet",tokens:"Tokens",topModel:"Top model",creditShare:"Share of billed credit"},VAt={title:"Quick health",requests7d:"7-day requests",creditToday:"Credit spent today",credit7d:"7-day credit spent"},KAt={title:"Recent requests",description:"Latest gateway calls across your keys.",viewRecords:"View records",table:{label:"Recent requests",model:"Model",status:"Status",tokens:"Tokens",credit:"Credit",time:"Time",apiKey:"API key"},empty:"No requests yet",emptyDescription:"Create an API key, send a request, and recent calls will show here."},GAt={title:"Make your first request",description:"OpenAI-compatible. Create a key, set {{env}}, then call the gateway."},WAt={credit:"Credit",requests:"Requests"},YAt={title:LAt,description:UAt,createApiKey:BAt,cards:FAt,usageTrend:zAt,activity:qAt,usageMix:HAt,quickHealth:VAt,recent:KAt,firstRequest:GAt,tooltip:WAt},QAt="Select all rows",XAt="Select row {{row}}",ZAt="Failed to load",JAt="No data",eTt="There are no records to show.",tTt="More details",nTt="{{count}} more details",aTt="Open details",oTt={selectAllRows:QAt,selectRow:XAt,errorTitle:ZAt,emptyTitle:JAt,emptyDescription:eTt,moreDetails:tTt,moreDetailsWithCount:nTt,openRow:aTt},sTt="Last 1 hour",rTt="Today",iTt="Yesterday",lTt="Last 7 days",cTt="Last 30 days",dTt="This month",uTt="By month",mTt="Custom",pTt="All time",fTt="Select date",gTt="Cancel",hTt="Apply",yTt="Start date must be before end date.",vTt="Range presets",bTt="Previous month",xTt="Next month",$Tt={last1h:sTt,today:rTt,
779yesterday:iTt,last7d:lTt,last30d:cTt,thisMonth:dTt,byMonth:uTt,custom:mTt,all:pTt,selectDate:fTt,cancel:gTt,apply:hTt,reversedError:yTt,presetsAriaLabel:vTt,previousMonth:bTt,nextMonth:xTt},wTt="Account unavailable",kTt="Account is initializing",CTt={title:"Account suspended",description:"This account can still sign in, but console access and gateway requests are paused.",detail:"If you believe this is unexpected, contact support from the email address on this account."},STt={accountUnavailable:wTt,accountInitializing:kTt,accountRestricted:CTt},ATt="Free Tokens",TTt="Daily free token allowances for selected models â they refresh on their own. No charge to your wallet.",RTt="Couldn't load your free token allowances.",PTt="All models",_Tt="Campaign ends {{date}}",jTt={daily:"Daily",weekly:"Weekly"},NTt={daily:"Refreshes daily",weekly:"Refreshes weekly",localTime:"your local {{time}}",countdown:"next refresh in {{duration}}",refreshingSoon:"refreshing soon"},DTt={title:"No active free token campaigns",description:"When a free token campaign is running, your daily allowance will show up here."},MTt={title:"Free token grants are paused on your account",body:"This account looks like part of a bulk sign-up pattern, so free grants are paused for now. If this is a mistake, reach out at"},ETt="tokens",ITt="{{value}} tokens remaining today",OTt={label:"Email me when used up",hint:"Get a heads-up email when today's free tokens run out."},LTt={crg_freetoken_daily_cn5:"Chinese models · daily free tokens"},UTt={title:ATt,description:TTt,loadFailed:RTt,allModels:PTt,campaignEnds:_Tt,cadence:jTt,refresh:NTt,empty:DTt,paused:MTt,tokensUnit:ETt,remainingToday:ITt,emailToggle:OTt,campaigns:LTt},BTt="Logs",FTt="Inspect request-level cost, latency, tokens, status, and routing signals.",zTt={copiedCurl:"curl copied",copiedId:"Request ID copied",copyCurl:"Copy as curl",copyFailed:"Copy failed",copyId:"Copy request ID",menu:"Row actions",openTab:"Open in new tab"},qTt={prompt:"Prompt",ratio:"Hit ratio",read:"Cache read",title:"Cache hit ratio"},HTt={confirm:"Cancel job",failed:"Failed to cancel job",keep:"Keep",message:"This job is still queued. Cancelling stops it from being processed; no charge will be applied.",success:"Job cancelled",title:"Cancel job?",pending:"Cancelling..."},VTt={cacheHit:"Cache hit",cost:"Cost",ip:"IP",latency:"Latency",model:"Model",source:"Source",status:"Status",stream:"Stream",time:"Time",tokens:"Tokens",tps:"Throughput"},KTt={trigger:"Column settings"},GTt={body:"Make a request through OneHop and it shows up here.",title:"No logs in this range"},WTt={all:"All",apiKey:"API key",cost:"Cost (USD)",desktopDateRangeAria:"Select desktop date range",finishReason:"Finish reason",latency:"Duration (s)",max:"Max",min:"Min",mobileDateRangeAria:"Select mobile date range",model:"Model",modelsSelected:"{{count}} selected",more:"More filters",refresh:"Refresh",request:"Search by request ID",requestIdLabel:"Request ID",status:"Status",stream:"Stream",time:"Time",type:"Type",mobileTitle:"Filters"},YTt={requests:"requests on this page",times:"times shown in"},QTt={rowsPer:"Rows"},XTt={all:"All time",custom:"Custom",last1h:"Last 1 hour",last30d:"Last 30 days",last7d:"Last 7 days",thisMonth:"This month",today:"Today",yesterday:"Yesterday"},ZTt={title:"Client",unknownShort:"Unknown",unknown:"No user-agent reported"},JTt={output:"Output tokens",rate:"Rate",title:"Throughput",window:"Generation window"},eRt={title:"Request",openDetail:"Open request detail",copy:"Copy ID",copied:"Copied",copyFailed:"Failed to copy",close:"Close",loading:"Loadingâ¦",response:"Response",sections:{request:"Request",routing:"Routing",tokens:"Tokens",cost:"Cost breakdown",performance:"Performance",error:"Error",outcome:"Outcome",multimodal:"Multimodalities"},fields:{requestId:"Request ID",time:"Time",apiKey:"API key",userAgent:"User-Agent",billingMode:"Billing mode",onehopModel:"OneHop model",endpoint:"Endpoint",firstToken:"First token",total:"Total",throughput:"Throughput",stream:"Stream",clientIp:"Client IP",finishReason:"Finish reason",mediaType:"Media type",imageCount:"Images",imageSize:"Size",errorCode:"Code",errorMessage:"Message",requestedModel:"Requested model"},billingMode:{token:"Per token",per_request:"Per request",image:"Per image"},timeline:{heading:"Lifecycle",received:"Request received",routed:"Routed",failed:"Failed",generated:"Generated",metered:"Metered",billed:"Billed"},downloadMedia:"Download"},tRt={success:"success",completed:"completed",failed:"failed",pending:"pending",repairing:"repairing",queued:"queued",running:"running",cancelled:"cancelled",expired:"expired"},nRt={chat:"Chat",image:"Image",video:"Video"},aRt={stop:"Stop",length:"Length",tool_calls:"Tool calls",content_filter:"Content filter",error:"Error"},oRt={true:"Streaming",false:"Non-streaming"},sRt={title:"Cost breakdown"},rRt={title:"Token breakdown",prompt:"Input",completion:"Output",imageOutput:"Image output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",cacheWrite5m:"Cache write 5m",cacheWrite1h:"Cache write 1h",total:"Total"},iRt={timestamp:"Timestamp",local:"Local",relative:"Relative"},lRt={promoBasis:"Before promo",promoSaved:"Promo savings",inputCost:"Input cost",outputCost:"Output cost",cacheReadCost:"Cache read cost",cacheWriteCost:"Cache write cost",inputPrice:"Input price",outputPrice:"Output price",total:"Total",officialPrice
779:"Official price",saved:"You save",factor:{textInput:"Text input",textOutput:"Text output",imageInput:"Image input",imageOutput:"Image output",perCallImage:"Per image",videoPerSecond:"Video",videoPerCall:"Video",cacheRead:"Cache read",cacheWrite:"Cache write",cacheWrite5m:"Cache write (5m)",cacheWrite1h:"Cache write (1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ image",perSecond:"/ sec",perCall:"/ call"},freeCovered:"Free allowance ({{tokens}} tokens)",freeCoveredNoCount:"Free allowance"},cRt={noPreview:"No preview available",video:"Video"},dRt={free:"Free"},uRt={title:BTt,description:FTt,actions:zTt,cacheHit:qTt,cancelJob:HTt,col:VTt,columns:KTt,empty:GTt,filter:WTt,meta:YTt,pager:QTt,range:XTt,source:ZTt,tps:JTt,drawer:eRt,status:tRt,type:nRt,finishReason:aRt,stream:oRt,costBreakdown:sRt,tokensBreakdown:rRt,time:iRt,userCost:lRt,export:{label:"Export CSV",exporting:"Exportingâ¦",done:"Exported {{n}} rows.",truncated:"Exported the first {{n}} rows. Narrow the time range to export the rest.",failed:"Export failed. Please try again."},media:cRt,cost:dRt},mRt="Models",pRt="Browse every available model, its context window, input/output price, and capabilities â and favorite the ones you use most.",fRt={all:"All",favorites:"My favorites",free:"Free",benefit:"Benefit",hot:"Hot"},gRt={capability:"Type",allCapabilities:"All types",capability_text:"Text",capability_image:"Image",capability_audio:"Audio",capability_video:"Video",provider:"Provider",allProviders:"All providers",protocol:"Protocol",allProtocols:"All protocols",sort:"Sort",search:"Search",searchPlaceholder:"Model / maker",context:"Context",allContexts:"Any length",mobileTitle:"Filters"},hRt="Featured",yRt="Newest",vRt="Top weekly",bRt="Name (A-Z)",xRt="Price (low to high)",$Rt="Price (high to low)",wRt="Context length",kRt="Latency",CRt="Throughput",SRt="OpenAI Chat",ARt="OpenAI Responses",TRt="Anthropic",RRt="Vertex AI",PRt="OpenAI Images",_Rt="OpenAI Video",jRt={label:"Models",model:"Model",provider:"Provider",capabilities:"Capabilities",context:"Context",price:"Price",discount:"Discount",action:"Action",tryIt:"Try it",type:"Type",maxOutput:"Max output",copyId:"Copy model ID",copied:"Copied",usage:"Usage",stability:"Stability",protocols:"Protocols",openDetail:"Open model detail"},NRt="Hot",DRt="Benefit",MRt="Free",ERt="Coming Soon",IRt={add:"Add favorite",remove:"Remove favorite"},ORt={favorites:"No favorites yet",noMatch:"No matching models"},LRt="Text",URt="Image",BRt="File",FRt="Video",zRt="Audio",qRt="Embeddings",HRt="Vision",VRt="Tool calling",KRt="JSON mode",GRt="Image generation",WRt="Image edit",YRt="Text",QRt="Image",XRt="Video",ZRt="Audio",JRt="Embedding",ePt="Official",tPt="Kiro",nPt="from",aPt="/ call",oPt="/ sec",sPt="/ 1M",rPt="Fast",iPt="Free",lPt={ariaLabel:"Price currency",usd:"USD",rmb:"RMB (Â¥)",settlement:"Prices shown in RMB at a fixed {{rate}} rate, for reference only; your wallet is always billed in USD by actual usage."},cPt="Top-up required",dPt={title:mRt,description:pRt,tabs:fRt,filters:gRt,sort_featured:hRt,sort_newest:yRt,sort_top_weekly:vRt,sort_name:bRt,sort_price_asc:xRt,sort_price_desc:$Rt,sort_context:wRt,sort_latency:kRt,sort_throughput:CRt,protocol_openai_chat:SRt,protocol_openai_responses:ARt,protocol_anthropic_messages:TRt,protocol_google_vertex_ai:RRt,protocol_openai_images:PRt,protocol_openai_sora:_Rt,table:jRt,badge_hot:NRt,badge_benefit:DRt,badge_free:MRt,badge_unavailable:ERt,favorite:IRt,empty:ORt,modality_text:LRt,modality_image:URt,modality_file:BRt,modality_video:FRt,modality_audio:zRt,modality_embeddings:qRt,capability_vision:HRt,capability_tool_calling:VRt,capability_json_mode:KRt,capability_image_generation:GRt,capability_image_edit:WRt,type_text:YRt,type_image:QRt,type_video:XRt,type_audio:ZRt,type_embedding:JRt,provider_official:ePt,provider_kiro:tPt,price_from:nPt,price_perCall:aPt,price_perSec:oPt,price_per1m:sPt,price_fast:rPt,price_free:iPt,currency:lPt,badge_requiresTopup:cPt},uPt={main:"Main",utility:"Utility",console:"Console",openNavigation:"Open navigation",collapse:"Collapse sidebar",expand:"Expand sidebar"},mPt={platform:"Platform",chat:"Chat",models:"Models",logs:"Logs",jobs:"Jobs",apiKeys:"API keys",usage:"Usage",b
779illing:"Billing",freeTokens:"Free Tokens",referrals:"Referrals",support:"Support",settings:"Settings",admin:"Admin",balance:"Balance",helpSupport:"Help & Support",announcements:"Announcements",announcementsTitle:"Announcements",announcementsEmpty:"No announcements yet. Check back soon.",announcementsTicketUnread:"{{count}} ticket(s) with new replies",tasks:"Task Wall",tagNew:"NEW"},pPt={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},fPt={staff:"Staff"},gPt={dashboard:"Dashboard",users:"Users",billing:"Billing",usage:"Usage",rateLimits:"Rate Limits",access:"Signup access",staff:"Team",growth:"User growth",models:"Models",announcements:"Announcements",upstream:"Upstream",auditLogs:"Audit Logs",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},hPt={aria:uPt,public:{models:"Models",pricing:"Pricing",docs:"Docs",blog:"Blog",changelog:"Changelog"},console:mPt,notifications:pPt,adminGroups:fPt,admin:gPt},yPt={title:"Welcome to OneHop",body:"One URL for every model. Let's take 30 seconds to show you around.",start:"Show me",skip:"Skip"},vPt={models:{title:"Browse the models",body:"See every model you can call and what each costs, on one page.",cta:"Open models"},keys:{title:"Create your first API key",body:"Click here to mint a key, then point any tool at OneHop with it."},balance:{title:"Your balance",body:"Top up as you go. Unused balance is refundable anytime."}},bPt={next:"Next",back:"Back",done:"Done",stepOf:"{{current}} / {{total}}"},xPt={welcome:yPt,steps:vPt,nav:bPt},$Pt="Failed to load",wPt="Nothing here yet.",kPt="More details",CPt={failedLoad:$Pt,emptyDescription:wPt,moreDetails:kPt},SPt="All",APt="Success",TPt="Pending",RPt="Repairing",PPt="Failed",_Pt="Refunded",jPt="Active",NPt="Disabled",DPt="Exhausted",MPt="Reserved",EPt="Redeemed",IPt="Suspended",OPt="Deleted",LPt="Normal",UPt="Watchlisted",BPt="Blocked",FPt="Granted",zPt="Frozen",qPt="Released",HPt="Cancelled",VPt="Partially reversed",KPt="Reversed",GPt="Skipped",WPt="Expired",YPt="Denied",QPt="Draft",XPt="Published",ZPt="Deprecated",JPt="Archived",e_t="Hidden",t_t="Created",n_t="Checkout opened",a_t="Paid",o_t="Canceled",s_t="OpenAI Chat",r_t="OpenAI Responses",i_t="Anthropic Messages",l_t="Google Vertex AI",c_t="OpenAI Images",d_t="Usage charge",u_t="Signup bonus",m_t="Promo bonus",p_t="Referral bonus",f_t="Compensation bonus",g_t="Top-up bonus",h_t="Manual adjustment",y_t="Credit purchase",v_t="Payment",b_t="Signup bonus",x_t="Coupon",$_t="Admin grant",w_t="API usage",k_t="Signup bonus",C_t="Manual grant",S_t="Sync",A_t="Stream",T_t="Token billing",R_t="Request billing",P_t="Image billing",__t="Low reasoning",j_t="Medium reasoning",N_t="High reasoning",D_t="Not applicable",M_t="Unknown",E_t={all:SPt,success:APt,pending:TPt,repairing:RPt,failed:PPt,refunded:_Pt,active:jPt,disabled:NPt,exhausted:DPt,reserved:MPt,redeemed:EPt,suspended:IPt,deleted:OPt,normal:LPt,watchlisted:UPt,blocked:BPt,granted:FPt,frozen:zPt,released:qPt,cancelled:HPt,partially_reversed:VPt,reversed:KPt,skipped:GPt,expired:WPt,denied:YPt,draft:QPt,published:XPt,deprecated:ZPt,archived:JPt,public:"Public",hidden:e_t,created:t_t,checkout_opened:n_t,paid:a_t,canceled:o_t,openai_chat:s_t,openai_responses:r_t,anthropic_messages:i_t,google_vertex_ai:l_t,openai_images:c_t,usage_charge:d_t,bonus_signup_grant:u_t,bonus_promo_grant:m_t,bonus_referral_grant:p_t,bonus_compensation_grant:f_t,bonus_topup_grant:g_t,manual_adjustment:h_t,credit_purchase:y_t,payment:v_t,signup:b_t,coupon:x_t,admin:$_t,api:w_t,signup_bonus:k_t,manual:C_t,sync:S_t,stream:A_t,token:T_t,request:R_t,image:P_t,low:__t,medium:j_t,high:N_t,not_applicable:D_t,unknown:M_t},I_t="Total {{count}}",O_t="{{count}} / page",L_t={total:I_t,perPage:O_t},U_t="Invite & Earn",B_t="Share your personal link. Referral credits are tracked for both sides after eligible top-ups.",F_t="Could not load your referrals",z_t="Your invite link",q_t="Share",H_t="Invite copied. Paste it into WeChat to share.",V_t="Copy",K_t="Copied",G_t="WeChat",W_t="X",Y_t="Telegram",Q_t="Reddit",X_t="LinkedIn",Z_t="WhatsApp",J_t="Email",ejt="Facebook",tjt={default:{title:"Call every AI model through one OneHop API",body:"Sign up with my invite link â top up within {{firstWindowDays}} days and we both earn {{percent}}% back."},x:{title:"One API for every AI model ð¤",body:"Top up within {{firstWindowDays}} days with my link and we each get {{percent}}% back. ð"},telegram:{title:"Build with every AI model through OneHop",body:"Use my invite link â a first top-up within {{firstWindowDays}} days earns us both {{percent}}% referral credit."},whatsapp:{title:"Build with every AI model â OneHop",body:"Join with my invite link. Top up within {{firstWindowDays}} days and we both get {{percent}}% back."},reddit:{title:"OneHop â one API for every AI model. My invite gets us both {{percent}}% back on your first top-up",body:"Top up within {{firstWindowDays}} days and we both earn {{percent}}% referral credit."},email:{title:"An invite to OneHop â every AI model through one API",body:`Hi, 780 781I'm using OneHop to call every major AI model through a single API. Sign up with my invite link, and after your first top-up we both earn referral credit. 782 783Reward tiers: {{tiers}}. 784 785Thanks!`},wechat:{title:"OneHop â every AI model through one API",body:"Sign up with my invite link. Top up within {{firstWindowDays}} days and we both earn {{percent}}% referral credit."}},njt="Rewards are visible immediately after payment, frozen during the refund window, then released as OneHop referral credit.",ajt="Released after {{days}} days.",ojt={referrer:"Inviter",referee:"Invitee"},sjt={referrer:": earn referral credit when someone you invite tops up â {{tiers}}.",referee:": sign up with the link, then top up to earn too â {{tiers}}."},rjt={dayRange:"days {{fromDay}}-{{untilDay}
785}",dayOpenEnded:"day {{fromDay}}+"},ijt="Total earned",ljt="Available earned",cjt="Frozen earned",djt="Invited",ujt="Active",mjt="Available received",pjt="Frozen received",fjt="Cancelled / reversed",gjt="People you invited",hjt="Cashback history",yjt={user:"User",joined:"Joined",topups:"Top-ups",earned:"You earned",frozen:"Frozen",date:"Date",event:"Event",topupAmount:"Their top-up",rate:"Rate",releaseAt:"Release",cashback:"Cashback",status:"Status"},vjt={title:"No invites yet",description:"Share your link to start earning."},bjt={inviteeSignedUp:"Invitee signed up",youSignedUp:"You signed up by invite",inviteePaid:"Invitee paid",youPaid:"Your invited payment"},xjt={frozen:"Frozen",released:"Released",cancelled:"Cancelled",partially_reversed:"Partially reversed",reversed:"Reversed",failed:"Failed",skipped:"Skipped"},$jt={title:U_t,description:B_t,error:F_t,yourLink:z_t,shareVia:q_t,wechatCopied:H_t,copy:V_t,copied:K_t,wechat:G_t,x:W_t,telegram:Y_t,reddit:Q_t,linkedin:X_t,whatsapp:Z_t,email:J_t,facebook:ejt,share:tjt,offer:njt,releaseDelay:ajt,role:ojt,roleOffer:sjt,policy:rjt,totalEarned:ijt,availableEarned:ljt,frozenEarned:cjt,invited:djt,active:ujt,availableReceived:mjt,frozenReceived:pjt,cancelledReversed:fjt,peopleYouInvited:gjt,history:hjt,col:yjt,empty:vjt,event:bjt,status:xjt},wjt="Settings",kjt="Manage account preferences and console defaults.",Cjt="Signed in as {{email}}",Sjt="Display name",Ajt="Locale",Tjt="Timezone",Rjt="Failed to load profile",Pjt="Failed to save",_jt="Discard changes?",jjt="You have unsaved changes. Leaving now will discard them.",Njt="Discard",Djt="Keep editing",Mjt={title:wjt,description:kjt,signedInAs:Cjt,displayName:Sjt,locale:Ajt,timezone:Tjt,failedLoad:Rjt,failedSave:Pjt,discardTitle:_jt,discardMessage:jjt,discardConfirm:Njt,keepEditing:Djt},Ejt="Task Wall",Ijt="Share OneHop with your audience and earn trial credit. We review each submission by hand.",Ojt="Link to your post",Ljt="https://â¦",Ujt="Submit",Bjt="Submitted â we will review it shortly.",Fjt="Accepted links: {{hosts}}",zjt="Previously rejected: {{reason}}. Fix it and submit again.",qjt={pending:"In review",approved:"Credited",rejected:"Rejected",active:"Active"},Hjt={title:"No tasks right now",description:"Check back soon â we run these campaigns periodically."},Vjt={x_quote:{title:"Quote-post us on X",description:"Quote @OneHopAI's pinned post and add your own take.",rules:["Your X account must be at least 6 months old with 10 or more followers.","Submit the link to your own quote post, not the original.","Credit lands within 2 hours of approval."]},youtube_tutorial:{title:"Publish a YouTube tutorial",description:"A 6 minute or longer video showing how you wired OneHop into your own agent.",rules:["Submit the video link once it is published.","Your YouTube channel needs 50 or more subscribers.","One per account.","Credit lands within 2 hours of approval."]},short_video:{title:"Post a short video",description:"A 40 second or longer short on TikTok or YouTube that mentions your OneHop setup.",rules:["Submit the video link once it is published.","Credit lands within 2 hours of approval."]},github_readme:{title:"Put OneHop in your GitHub README",description:"Add a OneHop credit to a repo you own. Every top-up you make afterwards earns an extra 15%.",rules:["Submit the link to the repository once the README is live.","This is permanent, not a one-off: every later top-up pays whichever is higher â our standard bonus or your 15%.","Copy-paste text is below."]}},Kjt={load:"Could not load the task wall",generic:"Could not submit",urlRequired:"Paste the link to your post first.",urlTooLong:"That link is too long.",urlMalformed:"That does not look like a valid link.",hostNotAllowed:"This task only accepts links from the platforms listed above.",notAPost:"Link to the specific post or video, not a profile or home page.",alreadySubmitted:"You have already submitted this task.",notAvailable:"This task is not available right now.",busy:"We have hit today's review capacity. Please try again tomorrow.",emailUnverified:"Verify your email address first.",accountTooNew:"Your account is not old enough for this yet.",riskFlagged:"This account cannot take part right now. Contact support if you think this is wrong.",accountInactive:"This account is not active.",deviceAlreadyClaimed:"Another account on this device has already taken part."},Gjt="Thanks to [OneHop]({{url}}) for sponsoring this project! OneHop gives you one OpenAI-compatible API key for hundreds of leading models â GPT, Claude, Gemini, DeepSeek, Kimi and Qwen. No juggling provider accounts, no code changes to switch models, and you only pay for what you use. â {{domain}}",Wjt="Copy this text",Yjt={title:Ejt,description:Ijt,urlLabel:Ojt,urlPlaceholder:Ljt,submit:Ujt,submitted:Bjt,allowedHosts:Fjt,rejectedHint:zjt,status:qjt,empty:Hjt,item:Vjt,error:Kjt,sponsorBlurb:Gjt,copyBlurb:Wjt},Qjt="Chat with us",Xjt="Support",Zjt="Open a ticket and our team will get back to you.",Jjt="New ticket",e2t="Ticket not found or has been removed.",t2t={title:"No tickets yet",body:"Hit a problem? Open a ticket and we'll help you out.",cta:"Open your first ticket"},n2t={subject:"Subject",category:"Category",status:"Status",updated:"Updated",user:"User"},a2t={billing:"Billing",technical:"Technical",account:"Account",other:"Other"},o2t={open:"Open",pending:"Pending",resolved:"Resolved",closed:"Closed"},s2t={allStatuses:"All statuses",allCategories:"All categories",search:"Search email or subject"},r2t={subject:"Subject",subjectPlaceholder:"Briefly describe your issue",category:"Category",message:"Message",messagePlaceholder:"Tell us what's going onâ¦",attachments:"Attachments",addAttachment:"Add file",submit:"Submit ticket",cancel:"Cancel"},i2t={you:"You",support:"Support",system:"System",replyPlaceholder:"Write a replyâ¦",send:"Send",closedNotice:"This ticket is closed. Open a new ticket if you still need help.",sendHint:"Press â/Ctrl + Enter to send",back:"Back to tickets",systemStatus:{open:"Ticket reopened",pen
785ding:"Ticket marked as waiting for you",resolved:"Ticket marked as resolved",closed:"Ticket closed"}},l2t={title:"Support",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},c2t="Load more",d2t={created:"Ticket submitted",replied:"Reply sent",statusUpdated:"Status updated",error:"Something went wrong, please try again"},u2t={liveChat:Qjt,title:Xjt,subtitle:Zjt,newTicket:Jjt,notFound:e2t,empty:t2t,columns:n2t,category:a2t,status:o2t,filters:s2t,form:r2t,thread:i2t,admin:l2t,loadMore:c2t,toast:d2t},m2t="Usage",p2t="Balance, burn rate, and where your spend goes.",f2t="Activity",g2t="No activity in this range",h2t="Usage breakdown",y2t="By API key",v2t="By model",b2t="By token type",x2t="No data",$2t="No usage in this range yet.",w2t="Estimated {{days}} days remaining at {{rate}}/day current rate.",k2t="out",C2t="cache",S2t={tokens:"Tokens",requests:"Requests",cost:"Cost"},A2t="Other",T2t="req",R2t="tok",P2t="Refreshingâ¦",_2t="No data",j2t="Make a request to start populating this.",N2t="Top API keys",D2t="Top up",M2t={title:"Could not load usage"},E2t={firstToken:"first token",latency:"Avg latency",requests:"Requests",spend:"Spend",spendSub:"billed this period",successRate:"{{rate}}% success",tokens:"Tokens",textDuration:"text",mediaDuration:"image/video",cacheHit:"{{rate}}% cached",projected:"â {{amount}}/mo",vsPrevious:"vs previous period"},I2t={all:"All time",custom:"Custom",last1h:"Last 1 hour",last30d:"Last 30 days",last7d:"Last 7 days",thisMonth:"This month",today:"Today",yesterday:"Yesterday",byMonth:"By month"},O2t={failed:"Failed",success:"Success"},L2t={cacheRead:"Cache read",cacheWrite:"Cache write",cacheWrite1h:"Cache write 1h",cacheWrite5m:"Cache write 5m",completion:"Output",prompt:"Input"},U2t={body:"Send a request from your terminal or open the playground â usage shows up here within seconds.",openPlayground:"Open playground",title:"Your key is ready"},B2t={body:"Create your first API key to route requests through one URL, then watch your usage land here.",createKey:"Create API key",title:"Welcome to OneHop",tryPlayground:"Try playground"},F2t="Refresh",z2t="{{count}} successful in current filter",q2t="Total tokens",H2t="In {{input}} / out {{output}}",V2t="Billed credit",K2t="{{cost}} upstream actual cost",G2t="Avg latency",W2t="First token {{duration}}",Y2t="30-day activity",Q2t="Successful requests, token volume, and billed credit.",X2t="Loading usage trend",Z2t="No usage trend",J2t="Usage trend appears after successful requests.",eNt="Top models",tNt="Billed credit by model over 30 days.",nNt="No model usage yet",aNt="Model breakdown appears after successful requests.",oNt="Model",sNt="All models",rNt="Status",iNt="Protocol",lNt="Rows",cNt="Reset",dNt="Usage records",uNt="API key",mNt="Endpoint",pNt="Type",fNt="Tokens",gNt="Cost",hNt="Duration",yNt="Time",vNt="User-Agent",bNt="Details",xNt="Request detail",$Nt="Usage record details and billing metadata.",wNt="Request ID",kNt="Operation",CNt="Input tokens",SNt="Output tokens",ANt="Cache read tokens",TNt="Cache write tokens",RNt="Input cost",PNt="Output cost",_Nt="Cache read cost",jNt="Cache write cost",NNt="Error code",DNt="Error message",MNt="Not found.",ENt="credit",INt="Total {{count}}",ONt="Loading usage records",LNt="No usage records",UNt="Try a different filter set.",BNt="Records appear once requests flow through your API keys.",FNt="Page {{page}} · showing {{shown}} of {{total}} matching records",zNt="Previous",qNt="Next",HNt={activeDays:"Active days",longestStreak:"Longest streak",daysValue:"{{n}} days",totalSpend:"Total this period",peakDay:"Busiest day"},VNt="Credit",KNt="Tokens",GNt="Requests",WNt={time:"Time",apiKey:"API Key",model:"Model",reasoningEffort:"Reasoning Effort",endpoint:"Endpoint",type:"Type",billingMode:"Billing Mode",inputTokens:"Input Tokens",outputTokens:"Output Tokens",cacheReadTokens:"Cache Read Tokens",cacheWriteTokens:"Cache Write Tokens",totalTokens:"Total Tokens",billedCredit:"Billed Credit",firstTokenMs:"First Token Ms",durationMs:"Duration Ms",status:"Status",userAgent:"User-Agent"},YNt={mon:"Mon",wed:"Wed",fri:"Fri"},QNt="Less",XNt="More",ZNt={title:m2t,description:p2t,activity:f2t,activityEmpty:g2t,breakdown:h2t,byApiKey:y2t,byModel:v2t,byTokenType:b2t,chartEmpty:x2t,chartEmptyHint:$2t,burnRate:w2t,in:"in",out:k2t,cache:C2t,metric:S2t,other:A2t,req:T2t,tok:R2t,refreshing:P2t,topEmpty:_2t,topEmptyHint:j2t,topKeys:N2t,topUp:D2t,error:M2t,kpi:E2t,range:I2t,requests:O2t,tokenType:L2t,n
785oRequests:U2t,welcome:B2t,refresh:F2t,successfulFilter:z2t,totalTokens:q2t,inOut:H2t,billedCredit:V2t,upstreamActualCost:K2t,avgLatency:G2t,firstToken:W2t,activityTitle:Y2t,activityDescription:Q2t,loadingTrend:X2t,noUsageTrend:Z2t,trendDescription:J2t,topModels:eNt,topModelsDescription:tNt,noModelUsage:nNt,noModelUsageDescription:aNt,model:oNt,allModels:sNt,status:rNt,protocol:iNt,rows:lNt,reset:cNt,tableLabel:dNt,apiKey:uNt,endpoint:mNt,type:pNt,tokens:fNt,cost:gNt,duration:hNt,time:yNt,userAgent:vNt,details:bNt,requestDetail:xNt,detailDescription:$Nt,requestId:wNt,operation:kNt,inputTokens:CNt,outputTokens:SNt,cacheReadTokens:ANt,cacheWriteTokens:TNt,inputCost:RNt,outputCost:PNt,cacheReadCost:_Nt,cacheWriteCost:jNt,errorCode:NNt,errorMessage:DNt,notFound:MNt,creditSuffix:ENt,total:INt,loadingRecords:ONt,noRecords:LNt,differentFilters:UNt,recordsEmpty:BNt,pageSummary:FNt,previous:zNt,next:qNt,stat:HNt,chartCredit:VNt,chartTokens:KNt,chartRequests:GNt,csv:WNt,weekday:YNt,activityLess:QNt,activityMore:XNt},JNt="Signup access",eDt="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",tDt="Signup access allowlist",nDt="No allowlist entries",aDt="Email / domain",oDt="Note",sDt="Status",rDt="Registration",iDt="Expires",lDt="Invites",cDt="Updated",dDt="Action",uDt="Add",mDt="Bulk add",pDt="Edit",fDt="Save",gDt="Invite",hDt="Restore",yDt="Remove",vDt="Add signup access",bDt="Edit {{email}}",xDt="Bulk add signup access",$Dt="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",wDt="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",kDt="Email or domain",CDt="[email protected] or @company.com",SDt="Use @company.com to approve an entire domain.",ADt="Note (optional)",TDt="e.g. founding team",RDt="Expiry (optional)",PDt="Leave empty for no expiry. Expired entries no longer allow new signups.",_Dt="Emails / domains",jDt=`[email protected] 786[email protected] 787@partner.com`,NDt="Search",DDt="Search email or domain",MDt="Status",EDt="Access check",IDt="[email protected]",ODt="Check",LDt="Allowed",UDt="Denied",BDt={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},FDt="Registered",zDt="Not registered",qDt="Admin",HDt="Domain rule",VDt="Never",KDt="Added to signup access.",GDt="Signup access updated.",WDt="Added {{count}} entries.",YDt="Invite sent.",QDt="Entry restored.",XDt="Removed from signup access.",ZDt="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",JDt={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},eMt={title:JNt,description:eDt,label:tDt,empty:nDt,email:aDt,note:oDt,status:sDt,registration:rDt,expiresAt:iDt,invites:lDt,updatedAt:cDt,action:dDt,add:uDt,bulkAdd:mDt,edit:pDt,save:fDt,invite:gDt,restore:hDt,revoke:yDt,newTitle:vDt,editTitle:bDt,bulkTitle:xDt,formDescription:$Dt,bulkDescription:wDt,emailLabel:kDt,emailPlaceholder:CDt,emailHint:SDt,noteLabel:ADt,notePlaceholder:TDt,expiresAtLabel:RDt,expiresAtHint:PDt,bulkEntriesLabel:_Dt,bulkEntriesPlaceholder:jDt,search:NDt,searchPlaceholder:DDt,statusFilter:MDt,checkLabel:EDt,checkPlaceholder:IDt,check:ODt,checkAllowed:LDt,checkDenied:UDt,checkReasons:BDt,registered:FDt,notRegistered:zDt,adminAllowed:qDt,domainRule:HDt,never:VDt,added:KDt,updated:GDt,bulkAdded:WDt,invited:YDt,restored:QDt,revoked:XDt,confirmRevoke:ZDt,domainRules:JDt},tMt="Ops Billing",nMt="Payments, wallets and refunds across all users.",aMt={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},oMt="User email",sMt="Search by email...",rMt="Created",iMt="Created",lMt="Amount (USD)",cMt="Min",dMt="Max",uMt="Refunds",mMt="No refunds",pMt="Refund",fMt="Type",gMt="Full refund",hMt="Partial refund",yMt="Original payment",vMt="Wallets",bMt="Wallet",xMt="User",$Mt="Total",wMt="Purchased",kMt="Bonus",CMt="No wallets",SMt="Payments",AMt="Payment status",TMt="No payments",RMt="Payment",PMt="Status",_Mt="Amount",jMt="Paid",NMt="Refund",DMt="Not refundable (status must be paid)",MMt="View in Stripe Dashboard",EMt="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",IMt="unhealthy",OMt="Refund {{id}}",LMt="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",UMt="Refund amount (USD)",BMt="Max ${{value}}",FMt="Reason",zMt="Cargando la vista previa del reembolsoâ¦",qMt="No se pudo cargar la vista previa del reembolso. No se puede reembolsar hasta que c
787argue.",HMt="No se encontró ninguna transacción reembolsable; es posible que este pago ya esté totalmente reembolsado.",VMt="Pagado",KMt="Ya reembolsado",GMt="Este reembolso",WMt="Crédito recuperado",YMt="Incluye {{amount}} de crédito del descuento de cupón recuperado proporcionalmente",QMt="Incluye {{amount}} de crédito adicional otorgado recuperado proporcionalmente",XMt="Bono revocado",ZMt="Con este reembolso se revocará el bono promocional de {{amount}}.",JMt="Devuelto vÃa Stripe",eEt="Cobrar comisión de plataforma ({{fee}}) â cubre el coste de Stripe",tEt="Comisión ({{fee}})",nEt="El importe supera el máximo reembolsable {{value}}",aEt="Introduce un importe positivo válido",oEt="El usuario ya consumió parte del crédito comprado. Máximo reembolsable: {{value}}",sEt="Este pago ya está totalmente reembolsado",rEt="El importe neto tras comisiones es demasiado bajo. Reembolsa al menos {{value}}.",iEt="Cancel",lEt="Issue refund",cEt="Submitting...",dEt="Refund submitted",uEt="Stripe will return the funds within 1-3 business days. Audit log written.",mEt="Refund failed",pEt={title:tMt,description:nMt,tabs:aMt,emailFilter:oMt,emailPlaceholder:sMt,created:rMt,createdRange:iMt,amountRange:lMt,amountMin:cMt,amountMax:dMt,refunds:uMt,
787noRefunds:mMt,refundId:pMt,refundType:fMt,typeRefund:gMt,typePartialRefund:hMt,originalPayment:yMt,wallets:vMt,wallet:bMt,user:xMt,total:$Mt,purchased:wMt,bonus:kMt,noWallets:CMt,payments:SMt,paymentStatus:AMt,noPayments:TMt,payment:RMt,status:PMt,amount:_Mt,paid:jMt,refund:NMt,notRefundable:DMt,viewInStripe:MMt,webhookHealthHint:EMt,unhealthyWebhooks:IMt,refundConfirmTitle:OMt,refundConfirmBody:LMt,refundAmountLabel:UMt,refundMaxHint:BMt,refundReasonLabel:FMt,refundPreviewLoading:zMt,refundPreviewFailed:qMt,refundNoRefundableTx:HMt,refundPaidRow:VMt,refundAlreadyRefundedRow:KMt,refundThisRefundRow:GMt,refundCreditReclaimRow:WMt,refundCreditCouponNote:YMt,refundCreditExtraNote:QMt,refundBonusReverseRow:XMt,refundBonusForfeitWarning:ZMt,refundStripeReturnRow:JMt,refundFeeToggle:eEt,refundPlatformFeeRow:tEt,refundExceedsMax:nEt,refundAmountInvalid:aEt,refundInsufficientCredit:oEt,refundAlreadyFull:sEt,refundBelowMin:rEt,cancel:iEt,confirmRefund:lEt,submitting:cEt,refundSubmittedTitle:dEt,refundSubmittedBody:uEt,refundFailedTitle:mEt},fEt="Campaigns",gEt="Audience segments, restricted-model access, model discounts, and targeted credit grants.",hEt={mobileLabel:"Sección de campañas",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},yEt="Status",vEt="Actions",bEt="All users",xEt="Always",$Et="No expiry",wEt="Active window",kEt="Leave blank for always-on. Times are end-of-day on the chosen dates.",CEt="Valid from",SEt="Valid to",AEt="Pause",TEt="Resume",REt="Add",PEt="Remove",_Et="Delete",jEt="Clear",NEt="Close",DEt={allKinds:"Todos los tipos",segmentKindStatic:"Estático",segmentKindDynamic:"Dinámico",grantKindGrant:"Conceder",grantKindRevoke:"Revocar",allStatuses:"Todos los estados",statusActive:"Activo",statusPaused:"En pausa",statusArchived:"Archivado",statusEnded:"Finalizado",statusPending:"Pendiente",statusProcessing:"Procesando",statusCompleted:"Completado",statusFailed:"Fallido"},MEt={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},EEt={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audie
787nce for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},IEt={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},OEt={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},LEt={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}}
787 models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"0.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},UEt={title:fEt,description:gEt,tabs:hEt,status:yEt,actions:vEt,allUsers:bEt,always:xEt,noExpiry:$Et,window:wEt,windowHint:kEt,validFrom:CEt,validTo:SEt,pause:AEt,resume:TEt,actionAdd:REt,actionRemove:PEt,actionDelete:_Et,actionClear:jEt,actionClose:NEt,filters:DEt,segments:MEt,access:EEt,discounts:IEt,grants:OEt,recurring:LEt},BEt="Announcements",FEt="Banners shown at the top of the marketing site and the console.",zEt="Banners",qEt="Top-of-page banners shown on www and console.",HEt="New Banner",VEt="No banners yet. Create one to show a top-of-page announcement.",KEt="Message",GEt="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",WEt="CTA Label",YEt="CTA Link",QEt="Severity",XEt="Audience",ZEt="Starts At",JEt="Ends At",eIt="Dismissible",tIt="Status",nIt="Archive",aIt="Archive this banner? It will no longer be shown to users.",oIt="New Banner",sIt="Edit Banner",rIt="Title",iIt="Type",lIt="Content",cIt="Display type",dIt="Banner",uIt="Modal",mIt="Draft",pIt="Active",fIt="Info",gIt="Warning",hIt="Critical",yIt="Console only",vIt="Public site only",bIt="Both",xIt="Hero image",$It="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",wIt="Upload",kIt="Uploadingâ¦",CIt="Remove",SIt="Only PNG, JPEG, WebP and GIF images are supported.",AIt="Image must be 5MB or smaller.",TIt="Upload failed, please try again.",RIt="Title",PIt="Body",_It="Action buttons",jIt="Button label",NIt="Button link",DIt="Style",MIt="Add button",EIt="Remove",IIt="Primary",OIt="Secondary",LIt="Link",UIt="Simplified Chinese (source)",BIt="Fill in Simplified Chinese only, then translate to other languages in one click.",FIt="Translate to all languages",zIt="Translatingâ¦",qIt="Other languages (translated, editable)",HIt="Translated {{ok}} languages",VIt="{{failed}} languages failed â fill in manually or retry",KIt="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",GIt="Re-show to users who already dismissed it",WIt="Fill in the Simplified Chinese body first.",YIt={title:BEt,description:FEt,annTitle:zEt,annDescription:qEt,annNewButton:HEt,annEmpty:VEt,annMessage:KEt,annInlineLinkHint:GEt,annCtaText:WEt,annCtaUrl:YEt,annSeverity:QEt,annAudience:XEt,annStartsAt:ZEt,annEndsAt:JEt,annDismissible:eIt,annStatus:tIt,annArchive:nIt,annArchiveConfirm:aIt,annCreateTitle:oIt,annEditTitle:sIt,annColTitle:rIt,annColType:iIt,annColContent:lIt,annDisplayType:cIt,annTypeBanner:dIt,annTypeModal:uIt,annStatusDraft:mIt,annStatusActive:pIt,annSevInfo:fIt,annSevWarning:gIt,annSevCritical:hIt,annAudConsole:yIt,annAudPublic:vIt,annAudAll:bIt,annHeroImage:xIt,annHeroImageHint:$It,annHeroImageUpload:wIt,annHeroImageUploading:kIt,annHeroImageRemove:CIt,annHeroImageBadType:SIt,annHeroImageTooLarge:AIt,annHeroImageUploadFailed:TIt,annModalTitle:RIt,annBody:PIt,annActions:_It,annActionLabel:jIt,annActionUrl:NIt,annActionVariant:DIt,annActionAdd:MIt,annActionRemove:EIt,annVariantPrimary:IIt,annVariantSecondary:OIt,annVariantLink:LIt,annSourceLocale:UIt,annSourceHint:BIt,annTranslate:FIt,annTranslating:zIt,annOtherLocales:qIt,annTranslateDone:HIt,annTranslateParti
787al:VIt,annTranslateStale:KIt,annBumpRevision:GIt,annTranslateNeedSource:WIt},QIt="Operations dashboard",XIt="Real-time overview of platform health, usage, and alerts.",ZIt="Refresh",JIt="Refreshing",eOt="Updated {{time}}",tOt="Loading dashboard",nOt="Failed to load dashboard",aOt="No data",oOt="No traffic yet",sOt="Video fail rate",rOt="Avg latency",iOt="Error types",lOt="No errors",cOt="Model anomalies",dOt="All models healthy",uOt="Components",mOt="req",pOt="Checkout abandon",fOt="Refunds",gOt="Chargebacks",hOt="First-charge conversion",yOt={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},vOt={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},bOt={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Solo usuarios normales (excluye marcados)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},xOt={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},$Ot={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},wOt={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},kOt={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},COt={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},SOt={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},AOt={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},TOt={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},ROt={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},POt="{{failed}}/{{total}} jobs",_Ot="{{delta}}pt vs yesterday",jOt="Low sample ({{n}})",NOt="Had gateway calls",DOt="Last 7d cohort · normal users only",MOt="Refund rate {{rate}}%",EOt={funnel:"opened {{opened}} · paid {{paid}}"},IOt={title:QIt,description:XIt,refresh:ZIt,refreshing:JIt,lastUpdated:eOt,loading:tOt,failedLoad:nOt,empty:aOt,noTraffic:oOt,videoFailRate:sOt,avgLatency:rOt,errorTypes:iOt,noErrors:lOt,modelAnomalies:cOt,noAnomalies:dOt,components:uOt,req:mOt,abandonRate:pOt,refunds:fOt,chargebacks:gOt,firstChargeConversion:hOt,sections:yOt,leaderboard:vOt,kpi:bOt,revenue:xOt,orders:$Ot,conversion:wOt,componentStatus:kOt,severity:COt,health:SOt,alerts:AOt,alertSettings:TOt,range:ROt,videoJobsDetail:POt,vsYesterdayPt:_Ot,lowSample:jOt,activeUsersHint:NOt,conversionCohortHint:DOt,refundRate:MOt,checkout:EOt},OOt="Loading...",LOt="Admin permission required",UOt="Your account does not have permission to access this administrator page.",BOt={loading:OOt,permissionRequired:LOt,permissionDescription:UOt},FOt="User growth",zOt="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",qOt={mobileLabel:"Sección de crecimiento",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Códigos de canje",tasks:"Task wall"},HOt="Coupon batch",VOt="Promotion rule",KOt="Count",GOt="Batch code",WOt="Creating...",YOt="Create batch",QOt="{{count}} coupon code created",XOt="{{count}} coupon codes created",ZOt="Batch {{code}}",JOt="Copied",e3t="Copy all",t3t="Credit grants",n3t="Source",a3t="Status",o3t="No grants yet",s3t="Coupon redemptions, signup bonuses, and manual grants appear here.",r3t="Time",i3t="User",l3t="Amount",c3t="Signup bonus",d3t="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",u3t="Enable signup credit",m3t="Amount (USD)",p3t="Save signup bonus",f3t="Saving...",g3t="Current amount {{amount}}",h3t="Referral cashback",y3t="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",v3t="Enable referral cashback",b3t="Reward tiers",x3t="Add tier",$3t="Recipient",w3t="From day",k3t="Until day",C3t="Percent",S3t="Label",A3t="Action",T3t="Inviter",R3t="Invitee",P3t="No end",_3t="Remove tier",j3t="Release delay (days)",N3t="Per-topup cap (USD)",D3t="Min topup (USD, blank = none)",M3t="Cashback expiry (days, blank = never)",E3t="Billing-page countdown banner",I3t="Banner title",O3t="Subtitle",L3t="Countdown mode",U3t="Global deadline",B3t="Each invitee's 30-day window",F3t="Ends at",z3t="Save referral settings",q3t="v{{version}}",H3t="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",V3t="Version history",K3t="Version",G3t="Status",W3t="Reward tiers",Y3t="Published",Q3t="Superseded",X3t="current",Z3t="Top-up discount codes",J3t="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",eLt="Enable discount codes",tLt="Discount type",nLt="Fixed amount off (USD)",aLt="Percentage off (%)",oLt="Amount off (USD)",sLt="Percentage off (0-100)",rLt="Save discount",iLt="Default low-balance alert",lLt="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",cLt="Threshold (USD)",dLt="Save threshold",uLt="Current: {{amount}}",mLt="Generate codes against the discount rule above.",pLt="In effect: {{state}} · {{value}} off",fLt="enabled",gLt="disabled",hLt="Issued codes",yLt="Pick a batch to see who redeemed each code.",vLt="No batches yet",bLt="Generate a batch above to start tracking redemptions.",xLt="Total",$Lt="Redeemed",wLt="Reserved",kLt="Available",CLt="Codes in {{code}}",SLt="No codes in this batch",ALt="Code",TLt="Redeemed by",RLt="Redeemed at",PLt="Paid",_Lt="Discount",jLt="Crear códigos",NLt="Un código compartido es un único código que muchos usuarios pueden canjear hasta N veces; un lote de códigos únicos son N códigos de un solo uso.",DLt="Tipo de código",MLt="Código compartido único",
787ELt="Lote de códigos únicos",ILt="Texto del código (déjalo en blanco para uno aleatorio)",OLt="p. ej. WELCOME100",LLt="Canjes totales (N)",ULt="Por usuario",BLt="Caduca el (opcional)",FLt="grupo opcional",zLt="Crear código compartido",qLt="Código compartido creado",HLt="Usar un descuento para este lote (si no, la regla de arriba)",VLt="Códigos compartidos",KLt="Un código, muchos usuarios. El recuento de usos registra los canjes pagados.",GLt="Aún no hay códigos compartidos",WLt="Usados / lÃmite",YLt="Por usuario",QLt="Caduca",XLt="Desactivar",ZLt="¿Desactivar este código?",JLt="Los nuevos pagos se bloquean de inmediato. Los pedidos que ya estén en checkout pueden completarse.",e4t="Código desactivado",t4t="CSV",n4t="Estado",a4t="Correo",o4t={code:"Código",discount:"Descuento",redeemed:"Canjeado",cap:"LÃmite",perUser:"Por usuario",status:"Estado",expiresAt:"Caduca el",batch:"Lote",createdAt:"Creado el",redeemedBy:"Canjeado por",redeemedAt:"Canjeado el",paid:"Pagado",discountAmount:"Descuento",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},s4t="Amount",r4t="Bound at",i4t="Counterparty",l4t="Invitee",c4t="Inviter",d4t="Rate",u4t="Released",m4t="Role",p4t="Tier",f4t="Top-up",g4t="Load more",h4t="No referrals under this version",y4t="No cashback under this version",v4t="Referrals",b4t="Referral records",x4t="Cashback records",$4t="Version detail",w4t={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},k4t="Generar códigos de canje",C4t="Códigos de canje tipo tarjeta de recarga. El usuario introduce el código en la página de facturación y el valor nominal se abona directamente (saldo de regalo, sin necesidad de pagar).",S4t="Nombre del lote (opcional)",A4t="Por ejemplo: regalo Conf-2026",T4t="Cantidad a generar",R4t="Valor nominal por código (USD)",P4t="Códigos canjeables por cuenta en este lote (vacÃo = sin lÃmite)",_4t="Sin lÃmite",j4t="Fecha lÃmite de canje (opcional)",N4t="Restrict to models (optional)",D4t="General balance (no restriction)",M4t="{{count}} models selected",E4t="Blank = general balance. Selected models share one earmarked pool.",I4t="Credit validity after redemption (days, blank = never expires)",O4t="never expires",L4t="{{n}} d",U4t="Models",B4t="Validity",F4t="General balance",z4t="Generar códigos de canje",q4t="Guárdalos de inmediato. También puedes volver a obtenerlos más tarde con «Exportar en texto plano» desde la lista de lotes.",H4t="Lotes de códigos de canje",V4t="Haz clic en un lote para ver el detalle de cada código; «Exportar en texto plano» permite volver a exportar el texto plano.",K4t="Aún no hay lotes de códigos de canje",G4t="Lote",W4t="Valor nominal",Y4t="Exportar en texto plano",Q4t="¿Revertir este código ya canjeado?",X4t="Se recupera del saldo del usuario la parte aún no consumida; la parte ya consumida no se puede recuperar.",Z4t="Revertir",J4t="Se revirtió {{amount}}",e5t="Códigos de canje exportados",t5t="¿Desactivar los códigos no canjeados de este lote?",n5t="Todos los códigos aún no canjeados quedarán inválidos; los códigos ya canjeados no se ven afectados.",a5t="Se desactivaron {{n}} códigos",o5t="Bonus % on top-up",s5t="Bonus (%)",r5t="Bonus validity (days, optional)",i5t="blank = never expires",l5t={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},c5t={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
787ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},d5t={title:FOt,description:zOt,tabs:qOt,couponBatch:HOt,promotionRule:VOt,count:KOt,batchCode:GOt,creating:WOt,createBatch:YOt,codesCreated:QOt,codesCreated_plural:XOt,batch:ZOt,copied:JOt,copyAll:e3t,creditGrants:t3t,source:n3t,status:a3t,noGrants:o3t,noGrantsDescription:s3t,time:r3t,user:i3t,amount:l3t,signupBonus:c3t,signupBonusDescription:d3t,signupBonusEnabled:u3t,signupBonusAmount:m3t,saveSignupBonus:p3t,saving:f3t,currentSignupBonus:g3t,referral:h3t,referralDescription:y3t,referralEnabled:v3t,referralRewardTiers:b3t,addTier:x3t,tierRole:$3t,tierFromDay:w3t,tierUntilDay:k3t,tierPercent:C3t,tierLabel:S3t,tierAction:A3t,roleReferrer:T3t,roleReferee:R3t,noEndDay:P3t,removeTier:_3t,releaseDelayDays:j3t,referralCap:N3t,referralMinTopup:D3t,referralExpiryDays:M3t,bannerEnabled:E3t,bannerTitle:I3t,bannerSubtitle:O3t,bannerMode:L3t,bannerModeGlobal:U3t,bannerModeWindow:B3t,bannerEndsAt:F3t,saveReferral:z3t,referralVersion:q3t,referralPublishHint:H3t,referralVersionHistory:V3t,versionCol:K3t,versionStatus:G3t,versionTiers:W3t,versionPublished:Y3t,versionSuperseded:Q3t,versionCurrent:X3t,discountRule:Z3t,discountRuleDescription:J3t,discountEnabled:eLt,discountType:tLt,discountFixed:nLt,discountPercent:aLt,discountValueFixed:oLt,discountValuePercent:sLt,saveDiscount:rLt,defaultLowBalanceThreshold:iLt,defaultLowBalanceThresholdDescription:lLt,defaultLowBalanceThresholdAmount:cLt,saveDefaultLowBalanceThreshold:dLt,currentDefaultLowBalanceThreshold:uLt,couponBatchDescription:mLt,discountEffective:pLt,stateEnabled:fLt,stateDisabled:gLt,couponTrace:hLt,couponTraceDescription:yLt,noBatches:vLt,noBatchesDescription:bLt,batchTotal:xLt,batchRedeemed:$Lt,batchReserved:wLt,batchActive:kLt,codesInBatch:CLt,noCodes:SLt,code:ALt,redeemedBy:TLt,redeemedAt:RLt,paid:PLt,discount:_Lt,createIssuance:jLt,createIssuanceDescription:NLt,formLabel:DLt,formShared:MLt,formUniqueBatch:ELt,sharedCodeText:ILt,sharedCodeRandomHint:OLt,sharedMaxRedemptions:LLt,sharedPerUser:ULt,expiresAt:BLt,batchCodeOptional:FLt,createSharedCode:zLt,sharedCodeCreated:qLt,batchOwnDiscount:HLt,sharedCodesList:VLt,sharedCodesListDescription:KLt,noSharedCodes:GLt,colRedeemedTotal:WLt,colPerUser:YLt,colExpiry:QLt,disableCode:XLt,disableCodeConfirmTitle:ZLt,disableCodeConfirmMessage:JLt,codeDisabled:e4t,exportCsv:t4t,statusFilter:n4t,filterByEmail:a4t,csv:o4t,colAmount:s4t,colBoundAt:r4t,colCounterparty:i4t,colInvitee:l4t,colInviter:c4t,colRate:d4t,colReleasedAt:u4t,colRole:m4t,colTier:p4t,colTopup:f4t,loadMore:g4t,noBindings:h4t,noCashback:y4t,versionBindings:v4t,versionBindingsSection:b4t,versionCashbackSection:x4t,versionDetail:$4t,topup:w4t,redeemCreate:k4t,redeemCreateDescription:C4t,redeemBatchName:S4t,redeemBatchNameHint:A4t,redeemCount:T4t,redeemFaceValue:R4t,redeemPerUserLimit:P4t,redeemUnlimited:_4t,redeemExpiresAt:j4t,redeemModels:N4t,redeemModelsAll:D4t,redeemModelsCount:M4t,redeemModelsHint:E4t,redeemValidityDays:I4t,redeemValidityForever:O4t,redeemValidityDaysValue:L4t,redeemColModels:U4t,redeemColValidity:B4t,redeemGeneralBalance:F4t,redeemCreateBtn:z4t,redeemRevealHint:q4t,redeemBatches:H4t,redeemBatchesDescription:V4t,redeemNoBatches:K4t,redeemBatchCol:G4t,redeemFace:W4t,redeemReveal:Y4t,redeemReverseTitle:Q4t,redeemReverseMessage:X4t,redeemReverseBtn:Z4t,redeemReversed:J4t,redeemRevealed:e5t,redeemDisableBatchTitle:t5t,redeemDisableBatchMessage:n5t,redeemBatchDisabled:a5t,discountTypeBonusPercent:o5t,discountValueBonusPercent:s5t,bonusExpiryDays:r5t,bonusExpiryDaysHint:i5t,sharedPayments:l5t,tasks:c5t},u5t="Models",m5t="Model catalog: create, edit, publish.",p5t={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},f5t="Add model",g5t="Edit {{model}}",h5t="New model",y5t="Close",v5t="Basics & content save together; pricing and status changes apply immediately.",b5t="Create the model draft. Set pricing and publish after it exists.",x5t={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},$5t="Provider slug",w5t="Pick a known provider or type a custom slug.",k5t="Model slug",C5t="Aliases",S5t="Comma-separated lookup aliases for import and review.",A5t="Source (customer-visible)",T5t="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
787ame-model variants at different prices.",R5t="Platform",P5t="â select platform â",_5t="Upstream model id (optional; choose from upstream or enter manually)",j5t="Choose from upstream...",N5t="Upstream unavailable",D5t="Protocols",M5t="Input price / 1M (USD)",E5t="Output price / 1M (USD)",I5t="EN summary",O5t="Preview",L5t="(No summary)",U5t="No protocol",B5t="Cancel",F5t="Save",z5t="Create draft",q5t={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},H5t={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},V5t="Context window (tokens)",K5t="Max input the model accepts. Leave blank if unknown.",G5t="Max output tokens",W5t="Max tokens the model can generate per response.",Y5t={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},Q5t="Input modalities",X5t="Declares what this model can receive, including vision, audio, video, and file inputs.",Z5t="Output modalities",J5t="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",eUt="Image billing style",tUt="Video billing style",nUt="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",aUt="â select billing style â",oUt="Per token (image_output_token)",sUt="Per image (per_call_image)",rUt="Per second (video_per_second)",iUt="Per call (video_per_call)",lUt="Display order",cUt="Must be a non-negative integer.",dUt="Editing locale",uUt="Upstream release date",mUt="Summary (this locale)",pUt="Description (Markdown, this locale)",fUt={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filtros"},gUt={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},hUt={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},yUt={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
787:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},vUt="Discard unsaved changes?",bUt="Editar modelo",xUt={title:u5t,description:m5t,badges:p5t,addModel:f5t,editModel:g5t,newModel:h5t,close:y5t,sheetDescription:v5t,sheetDescriptionNew:b5t,sections:x5t,providerSlug:$5t,providerSlugHint:w5t,modelSlug:k5t,aliases:C5t,aliasesHint:S5t,source:A5t,sourceHint:T5t,platform:R5t,platformUnset:P5t,sub2apiModelId:_5t,chooseSub2api:j5t,upstreamUnavailable:N5t,protocols:D5t,inputPrice:M5t,outputPrice:E5t,enSummary:I5t,preview:O5t,noSummary:L5t,noProtocol:U5t,cancel:B5t,save:F5t,createDraft:z5t,tabs:q5t,steps:H5t,contextWindow:V5t,contextWindowHint:K5t,maxOutputTokens:G5t,maxOutputTokensHint:W5t,lifecycle:Y5t,inputModalities:Q5t,inputModalitiesHint:X5t,outputModalities:Z5t,outputModalitiesHint:J5t,billingStyleImage:eUt,billingStyleVideo:tUt,billingStyleHint:nUt,billingStyleUnset:aUt,billingStyleToken:oUt,billingStylePerImage:sUt,billingStylePerSecond:rUt,billingStylePerCall:iUt,displayOrder:lUt,displayOrderInvalid:cUt,contentLocale:dUt,upstreamReleaseAt:uUt,summary:mUt,descriptionField:pUt,filters:fUt,table:gUt,errors:hUt,pricing:yUt,discardChanges:vUt,editModelShort:bUt},$Ut="Rate Limits",wUt="Rate limit policies by scope.",kUt="Rate limit policies",CUt="No policies",SUt="Code",AUt="Name",TUt="Scope",RUt="Status",PUt="Limits",_Ut="No limits",jUt={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},NUt={active:"Active",disabled:"Disabled",archived:"Archived"},DUt={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},MUt="New policy",EUt="Edit",IUt="Action",OUt="New rate limit policy",LUt="Edit {{name}}",UUt="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",BUt='Delete policy "{{name}}"? Keys and users on it fall back to their default.',FUt="Policy deleted.",zUt={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},qUt={title:$Ut,description:wUt,label:kUt,empty:CUt,code:SUt,name:AUt,scope:TUt,status:RUt,limits:PUt,noLimits:_Ut,scopes:jUt,statuses:NUt,limitNames:DUt,add:MUt,edit:EUt,delete:"Delete",action:IUt,newTitle:OUt,editTitle:LUt,formDescription:UUt,confirmDelete:BUt,deleted:FUt,form:zUt},HUt="Admins",VUt="Who can sign in to the admin console. Owner-only.",KUt="Admins",GUt="No admins yet",WUt="Email",YUt="Name",QUt="Role",XUt="Status",ZUt="Last login",JUt="Action",eBt="Add admin",tBt="Add admin",nBt="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",aBt="Email",oBt="[email protected]",sBt="Name",rBt="Display name",iBt="Role",lBt="Admin added.",cBt="Change role",dBt="Role updated.",uBt="Suspend",mBt="Activate",pBt="Status updated.",fBt="Remove",gBt="Admin removed.",hBt="Remove {{email}} as an admin? They lose console access immediately.",yBt="You",vBt="Never",bBt={owner:"Owner",admin:"Admin",
787support:"Support"},xBt={active:"Active",suspended:"Suspended"},$Bt={title:HUt,description:VUt,label:KUt,empty:GUt,email:WUt,name:YUt,role:QUt,status:XUt,lastLogin:ZUt,action:JUt,add:eBt,newTitle:tBt,formDescription:nBt,emailLabel:aBt,emailPlaceholder:oBt,nameLabel:sBt,namePlaceholder:rBt,roleLabel:iBt,added:lBt,changeRole:cBt,roleChanged:dBt,suspend:uBt,activate:mBt,statusChanged:pBt,remove:fBt,removed:gBt,confirmRemove:hBt,self:yBt,never:vBt,roles:bBt,statuses:xBt},wBt="Upstream",kBt="Read-only upstream configuration mirror plus controlled OneHop routing pools.",CBt="Open upstream admin",SBt="Upstream tabs",ABt={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},TBt={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},RBt={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},PBt={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Cobertura de upstream",coverageUnchecked:"cuentas no legibles",coverageOnlyAccount:"solo {{accounts}}",coverageNoAccount:"Ninguna cuenta programable asigna este ID de upstream"},_Bt={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},jBt={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},NBt={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},DBt={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},MBt={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},EBt={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},IBt={title:wBt,description:kBt,openUpstreamAdmin:CBt,tabsLabel:SBt,tabs:ABt,metrics:TBt,errors:RBt,audit:PBt,topology:_Bt,pools:jBt,readonly:NBt,table:DBt,common:MBt,ops:EBt},OBt="Platform usage",LBt="Cross-user request metering with cost, token, latency, and routing signals.",UBt="Refresh",BBt={label:"Auto refresh",off:"Off"},FBt="Exporting",zBt="Export CSV",qBt="Failed to export usage records",HBt="Requests",VBt="{{count}} successful",KBt="Users",GBt="Matched by current filters",WBt="Billed credit",YBt="{{cost}} upstream cost",QBt="Tokens",XBt="Avg {{duration}}",ZBt="User email",JBt="Search by email",e6t="Model",t6t="Search by model",n6t="Status",a6t="Protocol",o6t="Rows",s6t="Reset",r6t="Ops usage records",i6t="No usage records",l6t="User",c6t="Endpoint",d6t="{{count}} total",u6t="In {{input}} / out {{output}}",m6t="Upstream",p6t="Billed",f6t="Latency",g6t="Started",h6t="Page {{page}} · showing {{shown}} of {{total}} matching records",y6t="Previous",v6t="Next",b6t="{{count}} rows on this page",x6t="Times shown in",$6t="{{count}} API keys",w6t="Spend snapshot",k6t="from OneHop billing snapshot",C6t="User spend",S6t="total billed to users",A6t="Avg latency",T6t="settled requests",R6t="Range",P6t={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},_6t="Metric",j6t={cost:"Spend",tokens:"Tokens",requests:"Requests"},N6t="Distribution",D6t={model:"Modelo",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
787:"Transport (stream/sync)"},M6t="Usage trend",E6t="Usage by model",I6t="Hourly",O6t="Daily",L6t="Top endpoints",U6t="Top dimension rows",B6t="Request logs",F6t="API key",z6t="Type",q6t="Billing",H6t="Channel",V6t="Group",K6t="Request ID",G6t="req_ / usg_ / upstream",W6t="All types",Y6t="All billing",Q6t={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},X6t="Failed to load usage",Z6t="Loading usage records",J6t="Try a different filter set.",e8t="No trend data",t8t="No distribution data",n8t="No rows",a8t="Spend breakdown",o8t={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},s8t="Request detail",r8t="Unknown user",i8t="Loading...",l8t="Sub2API actual",c8t="Group multiplier",d8t="Account multiplier",u8t="Identity",m8t="User ID",p8t="Key suffix",f8t={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},g8t="Input",h8t="Output",y8t="Cache read",v8t="Cache write",b8t="Raw metadata",x8t="Request",$8t="Usage ID",w8t="OneHop ID",k8t="Sub2API ID",C8t="Sub2API log",S8t="Routing",A8t="Mapping",T8t="Performance",R8t="First token",P8t="Total",_8t="Error",j8t="Code",N8t="Message",D8t={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},M8t={analytics:"Usage analytics",logs:"Request logs"},E8t={label:"Chart view",stacked:"Over time",ranking:"Ranking"},I8t={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},O8t="More filters",L8t="Slow threshold (ms)",U8t="No model usage",B8t="No requests yet â usage will appear here as traffic comes in.",F8t="Viewing",z8t="streaming requests",q8t="Avg duration",H8t="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",V8t="Open request detail",K8t={title:OBt,description:LBt,refresh:UBt,autoRefresh:BBt,exporting:FBt,exportCsv:zBt,exportError:qBt,requests:HBt,successful:VBt,users:KBt,matchedFilters:GBt,billedCredit:WBt,upstreamCost:YBt,tokens:QBt,avgDuration:XBt,userEmail:ZBt,searchEmail:JBt,model:e6t,searchModel:t6t,status:n6t,protocol:a6t,rows:o6t,reset:s6t,label:r6t,empty:i6t,user:l6t,endpoint:c6t,totalTokens:d6t,inOut:u6t,upstream:m6t,billed:p6t,latency:f6t,started:g6t,pageSummary:h6t,previous:y6t,next:v6t,rowsOnPage:b6t,timesShownIn:x6t,apiKeys:$6t,sub2apiCharge:w6t,sub2apiChargeSource:k6t,userSpend:C6t,userSpendSource:S6t,avgLatency:A6t,settledRequests:T6t,range:R6t,ranges:P6t,metric:_6t,metrics:j6t,distribution:N6t,breakdown:D6t,usageTrend:M6t,stackedByModel:E6t,hourly:I6t,daily:O6t,to
787pEndpoints:L6t,topDimensionRows:U6t,requestLogs:B6t,apiKey:F6t,type:z6t,billing:q6t,channel:H6t,group:V6t,requestId:K6t,requestIdPlaceholder:G6t,allTypes:W6t,allBilling:Y6t,table:Q6t,failedLoad:X6t,loadingRecords:Z6t,tryDifferentFilters:J6t,noTrendData:e8t,noDistributionData:t8t,noRows:n8t,costBreakdown:a8t,adminCost:o8t,requestDetail:s8t,unknownUser:r8t,loading:i8t,sub2apiActual:l8t,groupMultiplier:c8t,accountMultiplier:d8t,identity:u8t,userId:m8t,keySuffix:p8t,continuity:f8t,input:g8t,output:h8t,cacheRead:y8t,cacheWrite:v8t,rawMetadata:b8t,request:x8t,usageId:$8t,onehopId:w8t,sub2apiId:k8t,sub2apiLog:C8t,routing:S8t,mapping:A8t,performance:T8t,firstToken:R8t,total:P8t,error:_8t,code:j8t,message:N8t,csv:D8t,tabs:M8t,modelView:E8t,chip:I8t,moreFilters:O8t,slowThreshold:L8t,noModelUsage:U8t,noTrendToday:B8t,viewing:F8t,avgLatencySub:z8t,avgTotalDuration:q8t,latencyHint:H8t,openRequestDetail:V8t},G8t="Search",W8t="Search by user ID, email, or name",Y8t="User",Q8t="Back to users",X8t="You do not have permission to view this section.",Z8t="Refund",J8t="Refunding...",eFt="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",tFt="Refund initiated.",nFt={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"Claves API",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},aFt={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},oFt={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},sFt={phase2:"Subscriptions are coming in Phase 2."},rFt={empty:"No payments"},iFt={empty:"No refunds"},lFt={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},cFt={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},dFt={empty:"No audit records"},uFt={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},mFt={ipLocationTitle:"IP y ubicación",deviceBrowserTitle:"Dispositivo y navegador",stripeTitle:"Stripe",signupIp:"IP de registro",signupCountry:"PaÃs de registro",lastLoginIp:"IP del último inicio de sesión",ipDifferent:"Difiere de la IP de registro",sameIpAccounts_one:"{{count}} cuenta con la misma IP de registro",sameIpAccounts_other:"{{count}} cuentas con la misma IP de registro",sameDeviceAccounts_one:"{{count}} cuenta en el mismo dispositivo",sameDeviceAccounts_other:"{{count}} cuentas en el mismo dispositivo",deviceFingerprint:"Huella del dispositivo",freeTierEligible:"Elegibilidad para nivel gratuito",firstDevice:"Primera en el dispositivo",notFirstDevice:"No es la primera en el dispositivo â sin beneficios gratuitos",browser:"Navegador",os:"OS",deviceType:"Tipo de dispositivo",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"Ver en ipinfo.io"},pFt={empty:"Aún no hay llamadas",viewAll:"Ver todos los logs â",colStatus:"Estado",colTime:"Hora",colModel:"Modelo",colProtocol:"Protocolo",colDuration:"Duración",colCost:"Costo",colFreeDiscount:"Crédito gratuito"},fFt={empty:"Aún no hay API keys",colName:"Nombre",colKey:"Key",colStatus:"Estado",colPolicy:"PolÃtica de lÃmite de uso",colLastUsed:"Ãltimo uso",colCreated:"Creada",colExpires:"Caduca",colSpend:"Gasto",spendTitle:"Desglose del gasto",spend30d:"Ãltimos 30 dÃas",spendAllTime:"Total",spendRequests:"Solicitudes"},gFt="Copiar",hFt="Copiado",yFt={search:G8t,searchPlaceholder:W8t,title:Y8t,backToList:Q8t,noBlockPerm:X8t,refund:Z8t,refunding:J8t,refundConfirm:eFt,refundInitiated:tFt,nav:nFt,freeTokens:aFt,freeQuota:oFt,subscription:sFt,payments:rFt,refunds:iFt,rewards:lFt,referrals:cFt,audit:dFt,col:uFt,network:mFt,recentCalls:pFt,apiKeys:fFt,copy:gFt,copied:hFt},vFt="Users",bFt="Search users, grant credit, and suspend accounts.",xFt="Email",$Ft="Search by email",wFt="Account status",kFt={active:"Cuenta activa; puede iniciar sesión y llamar al gateway",suspended:"Suspendida; el gateway rechaza todas las solicitudes (401)"},CFt="Risk",SFt={normal:"Apto para todos los beneficios gratuitos",watchlisted:"Sin tokens gratis ni bono de registro; aún puede recargar y llamar al gateway",blocked:"El gateway rechaza todas las solicitudes (401); bloqueo total"},AFt="Users",TFt="No users found",RFt="Country",PFt="Last login",_Ft="Action",jFt="View",NFt="Deleted",DFt="Set status for {{email}}",MFt='Set {{email}} to "{{status}}"?',EFt="Grant credit",IFt="Add bonus credit to {{email}}. Recorded in the ledger.",OFt="Amount (USD)",LFt="e.g. 5",UFt="Reason (optional)",BFt="e.g. compensation for downtime",FFt="Type",zFt="Bonus credit",qFt="A gift. Does not count as a top-up.",HFt="Offline payment",VFt="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",KFt="Reference no.",GFt="e.g. bank slip 20260907-001",WFt="Record payment",YFt="Recording...",QFt="Cancel",XFt="Granting...",ZFt="Grant",JFt="Grant ${{amount}} to {{email}}? This is a large amount.",ezt="No display name",tzt="Loading...",nzt="score {{score}}",azt="Email verified",ozt="Yes",szt="No",rzt="Signup",izt="Signup method",lzt="Last login method",czt="Signup bonus",dzt="Onboarding",uzt="Locale / TZ",mzt="Markup ratio",pzt="Rate limit policy",fzt="Rate limit policy updated.",gzt="Joined",hzt="Never",yzt="Balance",vzt="Wallet & spend",bzt="Total spent",xzt="Recharged",$zt="Bonus granted",wzt="Refunded",kzt="Requests",Czt="Tokens",Szt="Actions",Azt="Identity & risk",Tzt="Role",Rzt="No permitted actions for your role.",Pzt="Acquisition source",_zt="Acquisition by source",jzt="Direct / unknown",Nzt="Custom sourceâ¦",Dzt="Set",Mzt="Auto-detected: {{source}}",Ezt="UTM",Izt="Referred by",Ozt="Nota",Lzt="Añade una nota para identificar a este usuario",Uzt="Guardar nota",Bzt="Nota guardada",Fzt="Sin nota",zzt="Filtros",qzt="Location",Hzt="Preferred locale",Vzt={title:vFt,de
787scription:bFt,email:xFt,searchEmail:$Ft,status:wFt,statusEffect:kFt,risk:CFt,riskEffect:SFt,label:AFt,empty:TFt,country:RFt,lastLogin:PFt,action:_Ft,view:jFt,deleted:NFt,setStatusAria:DFt,setStatusConfirm:MFt,grantCredit:EFt,grantDescription:IFt,amountUsd:OFt,amountPlaceholder:LFt,reason:UFt,reasonPlaceholder:BFt,grantKind:FFt,grantKindBonus:zFt,grantKindBonusHint:qFt,grantKindOffline:HFt,grantKindOfflineHint:VFt,referenceNo:KFt,referenceNoPlaceholder:GFt,recordPayment:WFt,recording:YFt,cancel:QFt,granting:XFt,grant:ZFt,largeGrantConfirm:JFt,noDisplayName:ezt,loading:tzt,score:nzt,emailVerified:azt,yes:ozt,no:szt,signup:rzt,signupMethod:izt,lastLoginMethod:lzt,signupBonus:czt,onboarding:dzt,localeTz:uzt,markupRatio:mzt,rateLimitPolicy:pzt,rateLimitPolicyChanged:fzt,joined:gzt,never:hzt,walletBalance:yzt,walletSection:vzt,consumed:bzt,recharged:xzt,bonusGranted:$zt,refunded:wzt,requests:kzt,tokens:Czt,actionsSection:Szt,identitySection:Azt,role:Tzt,noPermittedActions:Rzt,acquisitionSource:Pzt,acquisitionTitle:_zt,sourceDirect:jzt,sourceCustomPlaceholder:Nzt,sourceSet:Dzt,sourceCaptured:Mzt,utm:Ezt,referrer:Izt,note:Ozt,notePlaceholder:Lzt,noteSave:Uzt,noteSaved:Bzt,noteEmpty:Fzt,filters:zzt,location:qzt,preferredLocale:Hzt},Kzt="Webhooks",Gzt="Stripe webhook events. Status filter, retry, payload inspection.",Wzt="Status",Yzt="Event type",Qzt="Received",Xzt="Event type",Zzt="Status",Jzt="Mode",e7t="Attempts",t7t="Retry",n7t="Retry queued",a7t="Event {{event}} reset to pending; next job tick will process.",o7t="Retry failed",s7t="No webhook events yet.",r7t="Stripe events will appear here once your endpoint is registered.",i7t="Loading payload...",l7t="Last error",c7t="Payload (JSON)",d7t={title:Kzt,description:Gzt,statusFilter:Wzt,eventTypeFilter:Yzt,receivedAt:Qzt,eventType:Xzt,status:Zzt,mode:Jzt,attempts:e7t,retry:t7t,retrySubmittedTitle:n7t,retrySubmittedBody:a7t,retryFailedTitle:o7t,empty:s7t,emptyHint:r7t,detailLoading:i7t,lastError:l7t,payload:c7t},u7t="API Keys",m7t="Crea tu primera key en 10 segundos",p7t="No se pudo copiar",f7t={label:"Modelos permitidos",allModels:"Todos los modelos",allHint:"Todos los modelos del catálogo están permitidos.",noModels:"No hay modelos disponibles.",selected:"{{count}} seleccionados",someHint:"{{count}} modelo(s) permitidos."},g7t={label:"Etiquetas",placeholder:"Añade una etiqueta y pulsa Enter",remove:"Quitar"},h7t="Crea keys con alcance para producción, staging y flujos de equipo.",y7t="Actualizar",v7t="Key predeterminada",b7t="Nombre de key",x7t="Creando...",$7t="Crear key",w7t="Key completa, se muestra una vez",k7t="Copiar API key",C7t="Copiado",S7t="Copiar",A7t="Cópiala y guárdala ahora. Al cerrar este panel, la key completa no podrá verse de nuevo.",T7t="Ya la guardé",R7t="No se pudieron cargar las API keys",P7t="Reintentar",_7t="Aún no hay API keys",j7t="Crea tu primera key para empezar a enviar solicitudes por OneHop.",N7t={label:"API keys",tags:"Etiquetas",name:"Nombre",key:"Key",status:"Estado",created:"Creada",action:"Acción",usage:"Uso",quota:"Cuota",expires:"Caduca",lastUsed:"Ãltimo uso"},D7t="Revocar",M7t="¿Revocar {{name}}? Esta acción no se puede deshacer.",E7t="Nombra la key. Los lÃmites y la caducidad quedan en ajustes avanzados salvo que los necesites.",I7t="LÃmite mensual de credit",O7t="Caduca el",L7t="Sin lÃmite",U7t="Guardando...",B7t="Guardar",F7t="Cancelar",z7t={title:"Deshabilitadas y revocadas",description:"Keys deshabilitadas o revocadas. Puedes reactivar una deshabilitada o conservar las revocadas como registro."},q7t={title:"No hay keys activas",description:"Vuelve a habilitar una key deshabilitada abajo o crea una nueva."},H7t={import:"Importar a CCS",client:"Cliente CC-Switch",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"Se abrió CC Switch con un marcador. Pega ahà tu API key guardada.",checking:"Comprobando compatibilidadâ¦",blocked:{title:"{{client}} no puede usar esta clave",body:"«{{keyName}}» solo permite modelos que {{client}} no puede usar. La importación provocará errores.",adjust:"Ajustar alcance de modelos",forceImport:"Importar de todos modos (no funcionará)"},pin:{title:"Importar como {{model}} para {{client}}",body:"«{{keyName}}» no incluye el modelo predeterminado de {{client}}. Asà se enrutarán las solicitudes de {{client}} a través de este proveedor:",adjust:"Ajustar alcance de modelos",confirm:"Importar con {{model}}"}},V7t={search:"Buscar",searchPlaceholder:"Buscar nombre o sufijo de key",status:"Estado",allStatus:"Todos los estados",clear:"Borrar filtros",empty:"Ninguna key coincide con estos filtros",emptyDescription:"Borra la búsqueda o el filtro de estado para ver todas las keys.",mobileTitle:"Filtros"},K7t={active:"Activa",inactive:"Deshabilitada",revoked:"Revocada",expired:"Caducada",quota_exhausted:"Cuota agotada"},G7t={today:"Hoy {{requests}} req · {{credit}}",days30:"30 d {{requests}} req · {{credit}}"},W7t={use:"Detalles de conexión",edit:"Editar",enable:"Habilitar",disable:"Deshabilitar",delete:"Eliminar"},Y7t="Usar API key",Q7t="Usa la key guardada con el gateway de OneHop. La key completa solo se muestra al crearla.",X7t={baseUrl:"Base URL",keyHint:"API key",authorization:"Encabezado Authorization",env:"Variable de entorno",curl:"cURL",revealing:"Descifrando keyâ¦",fullKeyUnavailable:"La key completa solo se muestra al crearla. Usa el valor que guardaste o crea una key nueva si la perdiste.",protocolEndpoints:"Endpoints de protocolo"},Z7t="Ajustes avanzados",J7t="Crear API key",eqt="Editar API key",tqt={label:"Acceso a modelos",all:"Todos los modelos",limited:"Restringir a modelos especÃficos",allHint:"Esta key puede llamar a todos los modelos, incluidos los que se añadan más adelante.",snapshotHint:"Solo los modelos que elijas; los modelos nuevos no se incluyen automáticamente.",snapshotHintEdit:"Solo los modelos que elijas; los modelos nuevos no se añaden automáticamente. Cambiar a Todos los modelos reemplaza esta lista blanca.",searchPlaceholder:"Buscar modelosâ¦",selectAllResults:"Seleccionar todos los resultados ({{count}})",selectedCount:"{{count}} / {{max}} seleccionados",clear:"Limpiar",hiddenSelected:"{{hidden}} de {{total}} seleccionados están ocultos por el filtro actual",selectVendor:"Seleccionar todo {{vendor}}, {{on}} de {{total}} seleccionados",emptyTitle:"Ningún modelo coincide",emptyDescription:"Prueba con otro tipo o búsqueda.",loadFailed:"No se pudieron cargar los modelos",loadFailedHint:"Reintenta o vuelve a Todos los modelos.",type:{all:"Todos",text:"Texto",image:"Imagen",video:"Video",embedding:"Embedding"},pickAtLeastOne:"Selecciona al menos un modelo o vuelve a Todos los modelos.",limitReached:"Reached the {{max}}-model limit"},nqt={title:"API key creada",subtitle:"{{name}} está lista; conéctala ahora.",onceWarning:"Se muestra una vez. Puedes volver a revelarla después, pero conviene copiarla ahora.",connect:"Conectar",done:"Listo"},aqt="IP",oqt="Revocada el {{date}}",sqt={title:u7t,emptyTitle:m7t,copyFailed:p7t,allowedModels:f7t,tags:g7t,description:h7t,refresh:y7t,defaultName:v7t,keyName:b7t,creating:x7t,createKey:$7t,fullKeyTitle:w7t,copyApiKey:k7t,copied:C7t,copy:S7t,fullKeyDescription:A7t,savedIt:T7t,loadFailed:R7t,retry:P7t,empty:_7t,emptyDescription:j7t,table:N7t,revoke:D7t,revokeConfirm:M7t,formDescription:E
7877t,monthlyCreditLimit:I7t,expiresAt:O7t,unlimited:L7t,saving:U7t,save:B7t,cancel:F7t,parked:z7t,noActive:q7t,ccswitch:H7t,filters:V7t,status:K7t,usage:G7t,actions:W7t,useTitle:Y7t,useDescription:Q7t,use:X7t,advancedSettings:Z7t,createTitle:J7t,editTitle:eqt,scope:tqt,created:nqt,lastUsedIp:aqt,revokedAt:oqt},rqt="Audit Logs",iqt="High-risk admin actions, by action and time.",lqt="Action",cqt="Clear",dqt={ops_user_update_status:"Estado del usuario actualizado",ops_users_allowlist_add:"Acceso de registro añadido",ops_users_allowlist_update:"Acceso de registro actualizado",ops_users_allowlist_invite:"Invitación de acceso de registro enviada",ops_users_allowlist_revoke:"Acceso de registro eliminado",ops_users_allowlist_restore:"Acceso de registro restaurado",ops_model_create:"Modelo creado",ops_model_update:"Modelo actualizado",ops_model_update_status:"Estado del modelo actualizado",sub2api_pool_create:"Pool de enrutamiento creado",sub2api_pool_test:"Pool de enrutamiento probado",sub2api_pool_rotate_secret:"Secreto de enrutamiento rotado"},uqt="Audit logs",mqt="No audit entries",pqt="Time",fqt="Severity",gqt="Target",hqt={ai_model:"Model",sub2api_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},yqt="Tipo de destino",vqt="ID de solicitud",bqt={title:rqt,description:iqt,action:lqt,clear:cqt,actions:dqt,label:uqt,empty:mqt,time:pqt,severity:fqt,target:gqt,targetTypes:hqt,targetType:yqt,requestId:vqt},xqt="Inicia sesión en OneHop",$qt="Introduce tu código",wqt="Continúa con Google o email",kqt="Introduce tu email para recibir un código",Cqt="Introduce el código de 6 dÃgitos enviado a {{email}}",Sqt="Continuar con Google",Aqt="Continuar con email",Tqt="o",Rqt="Email",Pqt="Enviar código de verificación",_qt="Enviando...",jqt="Verificar",Nqt="Verificando...",Dqt="Reenviar en {{seconds}}s",Mqt="Reenviar código",Eqt="Al continuar aceptas nuestros",Iqt="Términos",Oqt="Privacidad",Lqt={signIn:"Iniciar sesión",signOutFailed:"No se pudo cerrar sesión",sendCodeFailed:"No se pudo enviar el código",notAllowed:"Este correo aún no tiene acceso aprobado. Contacta a tu administrador para solicitarlo.",invalidCode:"Código no válido",codeIncorrect:"Código incorrecto, inténtalo de nuevo",googleFailed:"No se pudo iniciar sesión con Google",verifyHuman:"Completa la verificación para continuar",verifyUnavailable:"La verificación humana no está disponible temporalmente. Continúa con Google arriba o vuelve a intentarlo más tarde."},Uqt={signInTitle:xqt,enterCodeTitle:$qt,methodIntro:wqt,emailStepIntro:kqt,codeIntro:Cqt,continueGoogle:Sqt,continueEmail:Aqt,or:Tqt,emailLabel:Rqt,sendCode:Pqt,sending:_qt,verify:jqt,verifying:Nqt,resendIn:Dqt,resendCode:Mqt,termsPrefix:Eqt,terms:Iqt,privacy:Oqt,errors:Lqt},Bqt="Facturación",Fqt="Recarga Credits, canjea cupones y revisa la actividad de la wallet.",zqt={bonuses:"Bonificaciones",topups:"Recargas",usage:"Consumo"},qqt={available:"Acreditado",availableHint:"Ya incluido en tu saldo disponible",frozen:"Pendiente (bloqueado)",frozenHint:"Disponible en ~{{days}} dÃas",frozenHintGeneric:"Disponible tras el periodo de retención",title:"Recompensas por referidos",viewDetails:"Ver detalles de referidos"},Hqt={noUsage:"Sin consumo en los últimos 30 dÃas",perDay:"{{amount}} de media/dÃa",daysLeft:"â {{days}} dÃas al ritmo actual"},Vqt={amountUsd:"Importe (USD)",minAmountHint:"Recarga mÃnima de {{amount}}.",apply:"Aplicar",get:"Recibirás",onehopCredits:"OneHop credits",pay:"Pagar",poweredByStripe:"Protegido por Stripe",poweredBy:"Protegido por {{provider}}
787",secureCheckout:"Pago alojado seguro",secureCheckoutShort:"Pago seguro",taxExclusiveNotice:"Los impuestos aplicables se calculan en el pago y se suman a este importe.",presets:"Importes predefinidos",promoCode:"Código promocional",promoCodePlaceholder:"Introduce el código",serviceFee:"Comisión de servicio",title:"Recargar",topupAmount:"Importe de recarga",totalDue:"Total a pagar",payCta:"Pagar {{amount}}",previewing:"Comprobandoâ¦",discount:"Descuento del cupón",couponBelowMin:"El total con descuento es demasiado bajo: aumenta el importe o prueba otro código.",maintenanceTitle:"Pagos temporalmente no disponibles",maintenanceDescription:"Los pagos no están disponibles temporalmente. Contáctanos por Telegram si necesitas pagar.",contactTelegram:"Contáctanos por Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Pagar con cripto (USDC / USDT)",payOnStripe:"El pago se completa en la página segura de pago de Stripe.",payOnProvider:"El pago se completa en la página segura de pago de {{provider}}.",payOnHostedCheckout:"El pago se completa en la página segura de pago alojada.",amountPrecision:"{{provider}} acepta importes en USD con un máximo de 2 decimales. Ajusta el importe o el código promocional.",couponBonus:"Bono del cupón",couponBonusExpiry:"El crédito de bono caduca {{days}} dÃas después del pago.",couponInvalid:"Este código no se puede aplicar; prueba con otro.",couponErrors:{limitReached:"Ya has usado este código el número máximo de veces.",invalid:"Este código no es válido.",expired:"Este código ha caducado.",exhausted:"Este código ya se ha canjeado por completo.",unavailable:"Este código está en uso; inténtalo de nuevo en un momento."},tierBonus:"Bono de promoción",tierBonusExpiry:"El crédito de bono caduca {{days}} dÃas después del pago.",tierBonusRestricted:"El crédito de bono solo puede usarse en: {{models}}.",nextTierPercent:"Recarga {{amount}} más y obtén un {{percent}} % en crédito de bono.",nextTierBonus:"Recarga {{amount}} más y obtén {{bonus}} en crédito de bono.",tierCapReached:"Ya has alcanzado el bono máximo de esta promoción."},Kqt="Añadir Credits",Gqt="Creando...",Wqt="Credit disponible",Yqt="Recargar",Qqt="Pagos con Stripe",Xqt="Importe (USD)",Zqt="Importes de recarga predefinidos",Jqt="Canjear cupón",eHt="Código de cupón",tHt="Canjeando...",nHt="Canjear",aHt="Cupón canjeado. El saldo se está actualizando.",oHt="Redirigiendo al checkout seguro...",sHt="No se pudo cargar el resumen de facturación",rHt="Error al recargar",iHt="Pestañas de actividad de facturación",lHt="Transacciones",cHt="Credit concedidos",dHt="Tipo de transacción",uHt="Origen",mHt="Aún no hay transacciones",pHt="Recargas, cargos y concesiones aparecen aquÃ.",fHt="Entradas del ledger",gHt="Hora",hHt="Tipo",yHt="Importe",vHt="Saldo",bHt="Aún no hay concesiones",xHt="Bonos de registro, cupones y concesiones manuales aparecen aquÃ.",$Ht="Estado",wHt={successTitle:"Pago recibido",polling:"Acreditando tu wallet... unos 30 segundos.",delayed:"Está tardando en llegar. Actualiza en un momento o revisa tus recibos de Stripe.",cancelledTitle:"Pago cancelado",cancelledBody:"No se realizó ningún cargo. Inténtalo de nuevo cuando lo prefieras.",failedTitle:"El pago falló",failedBody:"No se pudo completar tu pago. No se añadió crédito. Inténtalo de nuevo o usa otro método de pago."},kHt={text:"Los Credits son un saldo de servicio prepagado, no un depósito bancario. Los Credits consumidos no son reembolsables. Todos los precios están en USD. Consulta los",tosLink:"Términos"},CHt="Recibos",SHt="Abriendo...",AHt="No se pudo abrir el portal de facturación",THt={title:"Recargas recientes",subtitle:"Ãltimos 90 dÃas, reembolsables dentro de 24 horas.",loading:"Cargando recargas...",date:"Fecha",amount:"Importe",credits:"Credits",status:"Estado",refund:"Reembolsar",alreadyRefunded:"Ya reembolsado",windowExpired:"Ventana de reembolso vencida (24 horas)",confirmTitle:"Confirmar reembolso",confirmBody:"Stripe procesará el reembolso en 1-3 dÃas hábiles. Se aplica una comisión de plataforma ({{fee}}) en reembolsos iniciados por el usuario.",amountLabel:"Importe del reembolso (USD)",maxLabel:"Máx. ${{value}}",requestedLabel:"Reembolso solicitado",platformFeeLabel:"Comisión de plataforma ({{fee}})",cardReturnLabel:"Devuelto a tu tarjeta",bonusForfeitureHint:"Los Credits promocionales otorgados con esta recarga se anularán de forma proporcional.",cancel:"Cancelar",confirm:"Emitir reembolso",submitting:"Env
787iando...",refundSubmittedTitle:"Reembolso enviado",refundSubmittedBody:"Stripe devolverá los fondos a tu tarjeta en 1-3 dÃas hábiles.",refundFailedTitle:"El reembolso falló",balance:"Saldo",confirmAmount:"Reembolsar {{amount}}"},RHt={title:"Alertas de saldo",description:"Te avisamos cuando tu saldo se agota.",emailLabel:"AvÃsame por correo",webhookLabel:"Webhook",autorechargeLabel:"Recarga automática",autorechargeUnsupported:"La recarga automática no está disponible con el proveedor de pago activo.",autorechargeAddCardHint:"añade una tarjeta para mantener tu saldo",autorechargeTopUp:"Recargar",autorechargeWhenBelow:"cuando el saldo baje de",autorechargeThreshold:"Umbral de recarga automática",autorechargeAmount:"Importe de recarga automática",autorechargeDisabledFailures:"La recarga automática se desactivó tras varios fallos seguidos. Actualiza tu tarjeta y vuelve a activarla.",autorechargeIncomplete:"Define un importe de recarga y un umbral superior a $0.",test:"Probar",testing:"Probandoâ¦",testQueued:"Entrega de prueba en cola: revisa tu endpoint",testFailed:"No se pudo poner en cola la entrega de prueba",signingSecret:"Secreto de firma",secretOnSave:"Se genera un secreto de firma al guardar.",rotate:"Rotar",secretRotated:"Secreto de firma rotado",rotateFailed:"No se pudo rotar el secreto",secretCopied:"Secreto de firma copiado",saved:"Ajustes de alerta guardados",saveFailed:"No se pudieron guardar los ajustes de alerta",loadFailed:"No se pudieron cargar los ajustes de alerta",thresholdRequired:"Define un umbral superior a $0 para activar las alertas.",webhookUrlRequired:"Introduce una URL https:// para el webhook.",thresholdOrderBad:"El umbral de alerta debe ser ⥠al umbral de recarga automática.",card:"Tarjeta",changeCard:"Cambiar",removeCard:"Quitar",cardRemoved:"Tarjeta eliminada",cardRemoveFailed:"No se pudo eliminar la tarjeta",cardSetupFailed:"No se pudo iniciar la configuración de la tarjeta",lowBalanceGroup:"Alertas de saldo bajo",thresholdLabel:"Umbral de alerta"},PHt={title:"Historial de transacciones",idSearch:"ID de transacción",amountRange:"Rango de importe (USD)",min:"MÃn",max:"Máx",clear:"Borrar",retry:"Reintentar",empty:"No hay transacciones en este rango",date:"Fecha",typeMethod:"Tipo / método",description:"Descripción",action:"Acción",prevMonth:"Mes anterior",nextMonth:"Mes siguiente",viewInvoices:"Ver facturas",emptyNew:"Aún no hay transacciones",emptyNewDesc:"Cuando recargues, tus recargas, bonos y reembolsos aparecerán aquÃ.",topUpCta:"Recargar",emptyFiltered:"Ninguna transacción coincide",emptyFilteredDesc:"Borra filtros o amplÃa el rango de fechas.",clearFilters:"Borrar filtros"},_Ht="Tu saldo es bajo y puede interrumpir solicitudes. Recarga o activa la recarga automática.",jHt="Tu saldo es bajo y puede interrumpir solicitudes. Recarga para continuar.",NHt={creditPurchase:"Recarga de crédito",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Bono del cupón",referralCashback:"Reembolso por referidos",referralInviteeCashback:"Bono del invitado",redeemCode:"Código de canje {{code}}",redeemCodeReversal:"Canje revertido",stripeRefund:"Reembolso de Stripe",bonusReversal:"Reversión de bono (reembolso)"},DHt={title:"Crédito asignado",subtitle:"Crédito de bonificación utilizable solo en modelos especÃficos, separado de tu saldo.",onlyModels:"Solo {{models}}",onlyModelsGeneric:"Modelos restringidos",validUntil:"Válido hasta {{date}}",noExpiry:"Sin caducidad",useInChat:"Use in chat"},MHt={card:"Tarjeta",alipay:"Alipay",wechatPay:"WeChat Pay"},EHt={title:"Código de canje",description:"¿Tienes un código de canje? Introdúcelo para abonar su valor nominal a tu saldo.",placeholder:"Por ejemplo: OHR-XXXXXXXX",redeem:"Canjear",redeeming:"Canjeandoâ¦",success:"Se canjeó {{amount}} a tu saldo",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"Este código no es válido.",expired:"Este código ha caducado.",alreadyRedeemed:"Este código ya se ha canjeado.",perUserLimit:"Has alcanzado el lÃmite de canje de este lote."}},IHt={title:Bqt,description:Fqt,breakdown:zqt,referralRewards:qqt,burn
787Rate:Hqt,topup:Vqt,addCredits:Kqt,creating:Gqt,availableCredit:Wqt,topUp:Yqt,poweredByStripe:Qqt,amountUsd:Xqt,presetAmounts:Zqt,redeemCoupon:Jqt,couponCode:eHt,redeeming:tHt,redeem:nHt,couponRedeemed:aHt,redirecting:oHt,summaryFailed:sHt,topupFailed:rHt,tabsLabel:iHt,transactions:lHt,creditGrants:cHt,transactionType:dHt,source:uHt,noTransactions:mHt,noTransactionsDescription:pHt,ledgerEntries:fHt,time:gHt,type:hHt,amount:yHt,balance:vHt,noGrants:bHt,noGrantsDescription:xHt,status:$Ht,topupBanner:wHt,compliance:kHt,receipts:CHt,openingPortal:SHt,portalFailed:AHt,recentTopups:THt,alerts:RHt,history:PHt,lowBalanceWarning:_Ht,lowBalanceWarningNoAutoTopup:jHt,ledgerDesc:NHt,earmarked:DHt,paymentMethod:MHt,redeemCard:EHt},OHt="No se pudo cargar el gráfico",LHt="Sin datos",UHt="TodavÃa no hay datos para graficar.",BHt={errorTitle:OHt,emptyTitle:LHt,emptyDescription:UHt},FHt={copy:"Copiar",regenerate:"Regenerar",shareComingSoon:"Compartir (próximamente)",download:"Descargar",copyLink:"Copiar enlace",newChat:"Nuevo chat",deleteChat:"Eliminar chat",openConversationList:"Abrir lista de conversaciones",openSettings:"Ajustes del chat",collapseSidebar:"Contraer barra lateral",expandSidebar:"Expandir barra lateral",cancel:"Cancelar",apply:"Aplicar",newChatTooltip:"
787Crear nuevo chat",copied:"Copiado"},zHt={placeholderReady:"Inicia una nueva conversación...",placeholderNoModel:"Primero elige un modelo arriba",attachmentTooLarge:"El archivo supera {{limit}} y no se puede subir",attachmentUnsupported:"Tipo de archivo no admitido. Usa PNG, JPEG, WebP, GIF, MP4, WebM o MOV.",unsupportedVision:"Este modelo no acepta entradas de imagen ni de vÃdeo. Cambia de modelo antes de soltar archivos.",send:"Enviar",abort:"Detener",attachImage:"Añadir imagen",attachMedia:"Añadir imagen o vÃdeo",removeAttachment:"Quitar",shortcutSend:"enviar",shortcutNewLine:"nueva lÃnea",shortcutAbort:"detener",frameFirst:"Primer fotograma",frameLast:"Ãltimo fotograma",frameReference:"Referencia",imageMode:"Generación de imágenes",videoMode:"Generación de video",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"Razonamiento",reasoningOff:"Desactivado",reasoningAlways:"Siempre activado",placeholderTopupRequired:"Este modelo es para cuentas que han recargado: recarga para usarlo aquÃ"},qHt={modelUnavailable:"El modelo {{model}} no está disponible ahora mismo. Tu prompt se ha guardado.",rateLimited:"Hay demasiadas solicitudes concurrentes. Inténtalo de nuevo en breve.",accountDisabled:"Esta cuenta está deshabilitada y no puede seguir chateando.",attachmentsUploading:"Las imágenes aún se están subiendo. Espera un momento antes de enviar.",attachmentsFailed:"No se pudo subir una imagen. QuÃtala y vuelve a intentarlo antes de enviar."},HHt={title:"Prueba cualquier modelo aquÃ.",body:"Chatea directamente con cualquier modelo. El uso se cobra a tu wallet PAYG.",starters:{compareModels:"Compara GPT-5.5 y Claude Opus en la misma tarea de código",analyzeImage:"Analiza un diagrama de arquitectura y resume los riesgos",draftPrompt:"Redacta un system prompt para un agente de soporte",generateImage:"Genera una imagen hero de producto con un estilo SaaS limpio"}},VHt={untitled:"Chat sin tÃtulo",deleteConfirm:'¿Eliminar "{{title}}"?',emptyTitle:"Aún no hay conversaciones",emptyBody:"Usa + Nuevo chat arriba para empezar.",listLabel:"Lista de conversaciones",groups:{today:"Hoy",yesterday:"Ayer",earlier:"Anteriores"},menu:{rename:"Renombrar",delete:"Eliminar"},deleteTitle:"¿Eliminar conversación?"},KHt={paygWallet:"Wallet PAYG"},GHt={chooseModel:"Elegir modelo",searchPlaceholder:"Buscar modelos...",emptyTitle:"No se encontraron modelos",emptyBody:"Prueba con otro término de búsqueda o pestaña.",protocols:"{{count}} protocols",context:"{{value}} ctx",tabs:{all:"Todos",text:"Texto",image:"Imagen",video:"VÃdeo"},maxOut:"salida {{value}}",unavailable:"Temporalmente no disponible",requiresTopup:"Recarga para desbloquear"},WHt={title:"Ajustes del chat",protocol:"Protocol",unlimited:"Ilimitado",fields:{memory_limit:{label:"Memoria del chat"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Tokens máximos",placeholder:"128000"},service_tier:{label:"Nivel de servicio",options:{standard:"Estándar",priority:"Prioritario",flex:"Flexible"}},thinking_budget:{label:"Presupuesto de razonamiento (tokens)",placeholder:"p. ej., 2000"},stop_sequences:{label:"Secuencias de parada",placeholder:"Separadas por comas, p. ej., END, STOP",itemLabel:"Parada"},system_prompt:{label:"System Prompt",placeholder:"Introduce un system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"ImplÃcito",explicit:"ExplÃcito"}},image_size:{label:"Resolución de imagen"},image_resolution:{label:"Resolución"},image_quality:{label:"Calidad de imagen",options:{Auto:"Automática",auto:"Automática",low:"Baja",medium:"Media",high:"Alta"}},video_ratio:{label:"Relación de aspecto"},video_resolution:{label:"Resolución de video"},video_duration_seconds:{label:"Duración"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"Cantidad de imágenes"},image_aspect_ratio:{label:"Relación de aspecto"},reasoning_effort:{label:"Intensidad de razonamiento",options:{none:"Desactivado",minimal:"MÃnima",low:"Baja",medium:"Media",high:"Alta",xhigh:"Muy alta",max:"Máxima"}},reasoning_pro:{label:"Modo Pro"},reasoning_context:{label:"Contexto de razonamiento",options:{auto:"Automático",current_turn:"Turno actual",all_turns:"Todos los turnos"}},reasoning_enabled:{label:"Razonamiento"},reasoning_always:{label:"Razonamiento",value:"Siempre activado"}}},YHt={estimating:"estimando...",settling:"liquidando...",input:"entrada",output:"salida",milliseconds:"ms",realCost:"Coste real",latency:"Latencia",logDetail:"Detalle del log"},QHt={copied:"Enlace de imagen copiado",expired:"El enlace de la imagen ha caducado. Copia el enlace para volver a abrirla o regenerarla.",attachment:"[imagen adjunta]"},XHt={message:"Este chat se factura a tu wallet PAYG",balance:"Saldo",billingLink:"Facturación",dismiss:"Descartar"},ZHt={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},JHt={trigger:"Copiar como código",copied:"Copiado como {{format}}",failed:"No se pudo copiar",failedDescription:"Es posible que el navegador haya bloqueado el permiso del portapapeles."},eVt={interrupted:"[Interrumpido]",sending:"enviando"},tVt={title:"Proceso de razonamiento",duration:"Razonó durante {{seconds}}s"},nVt={title:"La generación de vÃdeo estará disponible pronto",body:"Este modelo aparece para exploración, pero el envÃo de vÃdeo aún no está habilitado.",switchToText:"Cambiar a un modelo de texto"},aVt={imageGenerating:"Generando imagen",videoGenerating:"Generando video",stage:{queued:"En cola",routing:"Enrutando",generating:"Generando",storing:"Almacenando",settling:"Liquidando"}},oVt={INSUFFICIENT_CREDITS:"Saldo insuficiente",RATE_LIMITED:"Demasiadas solicitudes",rate_limit_error:"Demasiadas solicitudes",MODEL_NO_VISION:"Este modelo no admite entrada de imágenes",CONTENT_REFUSED:"El modelo rechazó esta solicitud",EMPTY_RESPONSE:"El modelo devolvió una respuesta vacÃa",upstream_error:"Error del servicio upstream",overloaded_error:"El servicio upstream está saturado",upstream_invalid_json:"Respuesta del upstream con formato incorrecto",stream_read_error:"Flujo de respuesta interrumpido",invali
787d_api_key:"Error de autenticación con el upstream",model_unavailable:"Modelo temporalmente no disponible",no_image:"No se generó ninguna imagen",no_body:"Sin respuesta del upstream",http_error:"Error en la solicitud",session_create_failed:"No se pudo crear la sesión"},sVt={title:"Recarga para desbloquear este modelo",body:"Está disponible para cuentas que han recargado. Cualquier importe lo desbloquea al instante y el saldo se cobra por uso.",cta:"Recargar"},rVt={actions:FHt,composer:zHt,errors:qHt,empty:HHt,sidebar:VHt,header:KHt,modelSelector:GHt,settings:WHt,metrics:YHt,image:QHt,payg:XHt,earmark:ZHt,copyAsCode:JHt,status:eVt,thinking:tVt,video:nVt,media:aVt,errorCodes:oVt,topupLock:sVt},iVt="Cargando...",lVt="Cuenta",cVt="Idioma",dVt="Iniciar sesión",uVt="Cerrar sesión",mVt="Cerrando sesión...",pVt="Guardar cambios",fVt="Guardando...",gVt="Guardado.",hVt="Atrás",yVt="Reintentar",vVt="5% de descuento en la comisión de servicio al recargar.",bVt="Guardar",xVt="Cancelar",$Vt="Borrar",wVt="Restablecer",kVt="Copiado",CVt="No se pudo copiar",SVt="Cerrar",AVt="Total",TVt={timestamp:"Marca de tiempo",local:"Hora local",relative:"Relativo"},RVt="Copiar",PVt={title:"Abre en tu navegador",description:"Estás viendo esto dentro del <b>navegador de una app</b>, donde <b>el inicio de sesión con Google y la verificación humana no funcionan</b>. Ãbrelo en el navegador de tu sistema para continuar.",hintWechat:"Toca el menú ··· de la esquina superior derecha y elige «Abrir en el navegador».",hintGeneric:"Usa el menú de la esquina superior derecha y elige «Abrir en el navegador / Safari».",copyLink:"Copiar enlace",continueAnyway:"Continuar de todos modos"},_Vt="Todos",jVt="Activo",NVt="Opcional",DVt="Quitar",MVt={loading:iVt,account:lVt,language:cVt,signIn:dVt,signOut:uVt,signingOut:mVt,saveChanges:pVt,saving:fVt,saved:gVt,back:hVt,retry:yVt,topUpPromo:vVt,save:bVt,cancel:xVt,clearAll:$Vt,reset:wVt,copied:kVt,copyFailed:CVt,dismiss:SVt,total:AVt,time:TVt,copy:RVt,inAppBrowser:PVt,all:_Vt,active:jVt,optional:NVt,remove:DVt},EVt="Panel",IVt="Supervisa créditos, uso y salud clave del gateway desde una sola consola.",OVt="Crear API key",LVt={creditBalance:"Saldo de credit",requestsToday:"Solicitudes de hoy",activeApiKeys:"API keys activas"},UVt={title:"Tendencia de uso",description:"Solicitudes y credit facturado durante los últimos 14 dÃas.",viewUsage:"Ver uso",loading:"Cargando tendencia de uso",empty:"Aún no hay uso",emptyDescription:"El uso aparece aquà cuando empiecen a llegar solicitudes."},BVt={title:"Actividad de credit",description:"Credit facturado por dÃa en los últimos 90 dÃas.",total:"Total de 90 dÃas",loading:"Cargando actividad",activeDays:"{{count}} dÃas activos en los últimos {{days}} dÃas",less:"Menos",more:"Más"},FVt={title:"Resumen de uso",description:"Una vista compacta de la intensidad de gasto, el volumen de tokens y el modelo con más uso.",activeDays:"DÃas activos",ofDays:"de {{days}} dÃas",avgDailyCredit:"Credit diario medio",nonZeroDays:"en dÃas activos",peakDay:"DÃa pico",noPeak:"Aún no hay uso",tokens:"Tokens",topModel:"Modelo principal",creditShare:"Cuota del credit facturado"},zVt={title:"Salud rápida",requests7d:"Solicitudes de 7 dÃas",creditToday:"Credit gastado hoy",credit7d:"Credit gastado en 7 dÃas"},qVt={title:"Solicitudes recientes",description:"Ãltimas llamadas al gateway en tus keys.",viewRecords:"Ver registros",table:{label:"Solicitudes recientes",model:"Modelo",status:"Estado",tokens:"Tokens",credit:"Credit",time:"Hora",apiKey:"API key"},empty:"Aún no hay solicitudes",emptyDescription:"Crea una API key, envÃa una solicitud y las llamadas recientes aparecerán aquÃ."},HVt={title:"Haz tu primera solicitud",description:"Compatible con OpenAI. Crea una key, configura {{env}} y llama al gateway."},VVt={credit:"Credit",requests:"Solicitudes"},KVt={title:EVt,description:IVt,createApiKey:OVt,cards:LVt,usageTrend:UVt,activity:BVt,usageMix:FVt,quickHealth:zVt,recent:qVt,firstRequest:HVt,tooltip:VVt},GVt="Seleccionar todas las filas",WVt="Seleccionar fila {{row}}",YVt="No se pudo cargar",QVt="Sin datos",XVt="No hay registros para mostrar.",ZVt="Más detalles",JVt="{{count}} detalles más",e9t="Abrir detalles",t9t={selectAllRows:GVt,selectRow:WVt,errorTitle:YVt,emptyTitle:QVt,emptyDescription:XVt,moreDetails:ZVt,moreDetailsWithCount:JVt,o
787penRow:e9t},n9t="Ãltima hora",a9t="Hoy",o9t="Ayer",s9t="Ãltimos 7 dÃas",r9t="Ãltimos 30 dÃas",i9t="Este mes",l9t="Por mes",c9t="Personalizado",d9t="Todo el tiempo",u9t="Seleccionar fecha",m9t="Cancelar",p9t="Aplicar",f9t="La fecha de inicio debe ser anterior a la fecha de fin.",g9t="Preajustes de intervalo",h9t="Mes anterior",y9t="Mes siguiente",v9t={last1h:n9t,today:a9t,yesterday:o9t,last7d:s9t,last30d:r9t,thisMonth:i9t,byMonth:l9t,custom:c9t,all:d9t,selectDate:u9t,cancel:m9t,apply:p9t,reversedError:f9t,presetsAriaLabel:g9t,previousMonth:h9t,nextMonth:y9t},b9t="Cuenta no disponible",x9t="La cuenta se está inicializando",$9t={title:"Cuenta suspendida",description:"Esta cuenta aún puede iniciar sesión, pero el acceso a la consola y las solicitudes al gateway están pausados.",detail:"Si crees que esto es un error, contacta con support desde el email de esta cuenta."},w9t={accountUnavailable:b9t,accountInitializing:x9t,accountRestricted:$9t},k9t="Tokens gratis",C9t="Cuota diaria de tokens gratis para modelos seleccionados: se renueva automáticamente. No se cobra nada a tu monedero.",S9t="No se pudo cargar tu cuota de tokens gratis.",A9t="Todos los modelos",T9t="La campaña termina el {{date}}",R9t={daily:"Diaria",weekly:"Semanal"},P9t={daily:"Se renueva a diario",weekly:"Se renueva cada semana",localTime:"tu hora local {{time}}",countdown:"próxima renovación en {{duration}}",refreshingSoon:"se renovará pronto"},_9t={title:"No hay campañas de tokens gratis activas",description:"Cuando haya una campaña de tokens gratis en curso, tu cuota diaria aparecerá aquÃ."},j9t={title:"La concesión de tokens gratis está en pausa en tu cuenta",body:"Esta cuenta parece formar parte de un patrón de registro masivo, por lo que las concesiones gratuitas están en pausa por ahora. Si se trata de un error, escrÃbenos a"},N9t="tokens",D9t="Quedan {{value}} tokens hoy",M9t={label:"AvÃsame por correo al agotarse",hint:"Recibe un correo cuando se agoten tus tokens gratis del dÃa."},E9t={crg_freetoken_daily_cn5:"Modelos chinos · tokens gratis diarios"},I9t={title:k9t,description:C9t,loadFailed:S9t,allModels:A9t,campaignEnds:T9t,cadence:R9t,refresh:P9t,empty:_9t,paused:j9t,tokensUnit:N9t,remainingToday:D9t,emailToggle:M9t,campaigns:E9t},O9t="Logs",L9t="Inspecciona coste, latencia, tokens, estado y señales de routing por solicitud.",U9t={copiedCurl:"curl copiado",copiedId:"ID de solicitud copiado",copyCurl:"Copiar como curl",copyFailed:"No se pudo copiar",copyId:"Copiar ID de solicitud",menu:"Acciones de fila",openTab:"Abrir en nueva pestaña"},B9t={prompt:"Prompt",ratio:"Tasa de acierto",read:"Lectura de caché",title:"Tasa de acierto de caché"},F9t={confirm:"Cancelar tarea",failed:"No se pudo cancelar la tarea",keep:"Mantener",message:"Esta tarea sigue en cola. Al cancelarla dejará de procesarse y no se aplicará ningún cargo.",success:"Tarea cancelada",title:"¿Cancelar tarea?",pending:"Cancelando..."},z9t={cacheHit:"Acierto de caché",cost:"Coste",ip:"IP",latency:"Latencia",model:"Modelo",source:"Origen",status:"Estado",stream:"Streaming",time:"Hora",tokens:"Tokens",tps:"Throughput"},q9t={trigger:"Ajustes de columnas"},H9t={body:"Haz una solicitud a través de OneHop y aparecerá aquÃ.",title:"No hay logs en este intervalo"},V9t={all:"Todo",apiKey:"API key",cost:"Coste (USD)",desktopDateRangeAria:"Seleccionar intervalo de fechas en escritorio",finishReason:"Motivo de finalización",latency:"Latencia (s)",max:"Máx.",min:"MÃn.",mobileDateRangeAria:"Seleccionar intervalo de fechas en móvil",model:"Modelo",modelsSelected:"{{count}} seleccionados",more:"Más filtros",refresh:"Actualizar",request:"Buscar por ID de solicitud",requestIdLabel:"ID de solicitud",status:"Estado",stream:"Streaming",time:"Hora",type:"Tipo",mobileTitle:"Filtros"},K9t={requests:"registros en esta página",times:"horas mostradas en"},G9t={rowsPer:"Filas"},W9t={all:"Todo el tiempo",custom:"Personalizado",last1h:"Ãltima hora",last30d:"Ãltimos 30 dÃas",last7d:"Ãltimos 7 dÃas",thisMonth:"Este mes",today:"Hoy",yesterday:"Ayer"},Y9t={title:"Cliente",unknown:"No se reportó user-agent",unknownShort:"Desconocido"},Q9t={output:"Tokens de salida",rate:"Tasa",title:"Throughput",window:"Ventana de generación"},X9t={title:"Solicitud",openDetail:"Abrir detalle de la solicitud",copy:"Copiar ID",copied:"Copiado",copyFailed:"No se pudo copiar",close:"Cerrar",loading:"Cargandoâ¦",response:"Respuesta",sections:{request:"Solicitud",routing:"Routing",tokens:"Tokens",cost:"Desglose de coste",performance:"Ren
787dimiento",error:"Error",outcome:"Resultado",multimodal:"Multimodalidad"},fields:{requestId:"ID de solicitud",time:"Hora",apiKey:"API key",userAgent:"User-Agent",billingMode:"Modo de facturación",onehopModel:"Modelo OneHop",endpoint:"Endpoint",firstToken:"Primer token",total:"Duración total",throughput:"Throughput",stream:"Stream",clientIp:"IP del cliente",finishReason:"Motivo de finalización",mediaType:"Tipo de medio",imageCount:"Imágenes",imageSize:"Tamaño",errorCode:"Código",errorMessage:"Mensaje",requestedModel:"Modelo solicitado"},billingMode:{token:"Por token",per_request:"Por solicitud",image:"Por imagen"},timeline:{heading:"Ciclo de vida",received:"Solicitud recibida",routed:"Enrutada",failed:"Fallida",generated:"Generada",metered:"Medida",billed:"Facturada"},downloadMedia:"Descargar"},Z9t={success:"correcto",completed:"completado",failed:"fallido",pending:"pendiente",repairing:"reparando",queued:"en cola",running:"en ejecución",cancelled:"cancelado",expired:"caducado"},J9t={chat:"Chat",image:"Imagen",video:"Video"},eKt={stop:"Stop",length:"LÃmite de longitud",tool_calls:"Llamadas a herramientas",content_filter:"Filtro de contenido",error:"Error"},tKt={true:"Streaming",false:"Sin streaming"},nKt={title:"Desglose de coste"},aKt={title:"Desglose de tokens",prompt:"Entrada",completion:"Salida",imageOutput:"Tokens de salida de imagen",cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché",cacheWrite5m:"Escritura de caché 5m",cacheWrite1h:"Escritura de caché 1h",total:"Total"},oKt={timestamp:"Marca de tiempo",local:"Hora local",relative:"Relativo"},sKt={inputCost:"Coste de entrada",outputCost:"Coste de salida",cacheReadCost:"Coste de lectura de caché",cacheWriteCost:"Coste de escritura de caché",inputPrice:"Precio de entrada",outputPrice:"Precio de salida",total:"Total",officialPrice:"Precio oficial",saved:"Ahorro",factor:{textInput:"Entrada de texto",textOutput:"Salida de texto",imageInput:"Entrada de imagen",imageOutput:"Salida de imagen",perCallImage:"Por imagen",videoPerSecond:"VÃdeo",videoPerCall:"VÃdeo",cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché",cacheWrite5m:"Escritura de caché (5m)",cacheWrite1h:"Escritura de caché (1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ imagen",perSecond:"/ s",perCall:"/ llamada"},promoBasis:"Antes de la promo",promoSaved:"Ahorro de la promo",freeCovered:"Asignación gratuita ({{tokens}} tokens)",freeCoveredNoCount:"Asignación gratuita"},rKt={noPreview:"Vista previa no disponible",video:"Video"},iKt={free:"Gratis"},lKt={title:O9t,description:L9t,actions:U9t,cacheHit:B9t,cancelJob:F9t,col:z9t,columns:q9t,empty:H9t,filter:V9t,meta:K9t,pager:G9t,range:W9t,source:Y9t,tps:Q9t,drawer:X9t,status:Z9t,type:J9t,finishReason:eKt,stream:tKt,costBreakdown:nKt,tokensBreakdown:aKt,time:oKt,userCost:sKt,export:{label:"Exportar CSV",exporting:"Exportandoâ¦",done:"{{n}} filas exportadas.",truncated:"Se exportaron las primeras {{n}} filas. Reduce el rango de fechas para exportar el resto.",failed:"Error al exportar. Inténtalo de nuevo."},media:rKt,cost:iKt},cKt="Modelos",dKt="Consulta todos los modelos disponibles, su ventana de contexto, precios de entrada/salida y capacidades, y guarda tus favoritos.",uKt={all:"Todos",favorites:"Mis favoritos",benefit:"Beneficio",hot:"Popular",free:"Free"},mKt={capability:"Tipo",allCapabilities:"Todos los tipos",capability_text:"Texto",capability_image:"Imagen",capability_audio:"Audio",capability_video:"VÃdeo",provider:"Proveedor",allProviders:"Todos los proveedores",protocol:"Protocolo",allProtocols:"Todos los protocolos",sort:"Ordenar",search:"Buscar",searchPlaceholder:"Modelo / proveedor",allContexts:"Cualquier longitud",context:"Contexto",mobileTitle:"Filtros"},pKt="Destacados",fKt="Más recientes",gKt="Popular esta semana",hKt="Nombre (A-Z)",yKt="Precio (menor a mayor)",vKt="Precio (mayor a menor)",bKt="Longitud de contexto",xKt="Latencia",$Kt="Rendimiento",wKt="OpenAI Chat",kKt="OpenAI Responses",CKt="Anthropic",SKt="Vertex AI",AKt="OpenAI Images",TKt="OpenAI Video",RKt={label:"Modelos",model:"Modelo",provider:"Proveedor",capabilities:"Capacidades",context:"Contexto",price:"Precio",discount:"Descuento",action:"Acción",tryIt:"Probar",type:"Tipo",maxOutput:"Salida máxima",copyId:"Copiar ID del modelo",copied:"Copiado",usage:"Uso",stability:"Estabilidad",protocols:"Protocolos",openDetail:"Open model detail"},PKt="Popular",_Kt="Beneficio",jKt={add:"Añadir favorito",remove:"Quitar favorito"},NKt={favorites:"Aún no hay favoritos",noMatch:"No hay modelos coincidentes"},DKt="Texto",MKt="Imagen",EKt="Archivo",IKt="VÃdeo",OKt="Audio",LKt="Embeddings",UKt="Vision",BKt="Llamadas a herramientas",FKt="Modo JSON",zKt="Generación de imágenes",qKt="Edición de imágenes",HKt="Texto",VKt="Imagen",KKt="VÃdeo",GKt="Audio",WKt="Embedding",YKt="Oficial",QKt="Kiro",XKt="desde",ZKt="/ llamada",JKt="/ s",eGt="/ 1M",tGt="Rápido",nGt="Free",aGt="Coming Soon",oGt="Free",sGt={ariaLabel:"Moneda de precios",usd:"USD",rmb:"yuan (Â¥)",settlement:"Precios mostrados en yuanes con un tipo de cambio fijo de {{rate}}, solo como referencia; tu monedero siempre se cobra en USD según el uso real."},rGt="Requiere recarga",iGt={title:cKt,description:dKt,tabs:uKt,filters:mKt,sort_featured:pKt,sort_newest:fKt,sort_top_weekly:gKt,sort_name:hKt,sort_price_asc:yKt,sort_price_desc:vKt,sort_context:bKt,sort_latency:xKt,sort_throughput:$Kt,protocol_openai_chat:wKt,protocol_openai_responses:kKt,protocol_anthropic_messages:CKt,protocol_google_vertex_ai:SKt,protocol_openai_images:AKt,protocol_openai_sora:TKt,table:RKt,badge_hot:PKt,badge_benefit:_Kt,favorite:jKt,empty:NKt,modality_text:DKt,modality_image:MKt,modality_file:EKt,modality_video:IKt,modality_audio:OKt,modality_embeddings:LKt,capability_vision:UKt,capability_tool_calling:BKt,capability_json_mode:FKt,capability_image_generation:zKt,capability_image_edit:qKt,type_text:HKt,type_image:VKt,type_video:KKt,type_audio:GKt,type_embedding:WKt,provider_official:YKt,provider_kiro:QKt,price_from:XKt,price_perCall:ZKt,price_perSec:JKt,price_per1m:eGt,price_fast:tGt,badge_free:nGt,badge_unavailable:aGt,price_free:oGt,currency:sGt,badge_requiresTopup:rGt},lGt={main:"Navegación principal",utility:"Navegación de utilidades",console:"Navegación de consola",openNavigation:"Abrir navegación",collapse:"Contraer barra lateral",expand:"Expandir barra lateral"},cGt={platform:"Consola",chat:"Chat",models:"Modelos",logs:"Registros",jobs:"Trabajos",apiKeys:"API keys",usage:"Uso",billing:"Facturación",freeTokens:"Tokens gratis",referrals:"Invitaciones",settings:"Ajustes",admin:"Admin",balance:"Saldo",helpSupport:"Ayuda y soporte",announcements:"Anuncios",announcementsTitle:"Anuncios",announcementsEmpty:"Aún no hay anuncios. Vuelve pronto.",announcementsTicketUnread:"{{count}}
787 ticket(s) con respuestas nuevas",support:"Soporte",tasks:"Tareas",tagNew:"NUEVO"},dGt={staff:"Equipo"},uGt={dashboard:"Panel",users:"Usuarios",billing:"Facturación de plataforma",usage:"Uso de plataforma",rateLimits:"LÃmites de tasa",access:"Acceso",staff:"Admins",growth:"Crecimiento",models:"Modelos",announcements:"Anuncios",upstream:"Upstream",auditLogs:"Registros de auditorÃa",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},mGt={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},pGt={aria:lGt,public:{models:"Modelos",pricing:"Precios",docs:"Documentación",blog:"Blog",changelog:"Novedades"},console:cGt,adminGroups:dGt,admin:uGt,notifications:mGt},fGt={back:"Atrás",done:"Listo",next:"Siguiente",stepOf:"{{current}} / {{total}}"},gGt={balance:{body:"Recarga según lo necesites. El saldo no usado se puede reembolsar en cualquier momento.",title:"Tu saldo"},keys:{body:"Haz clic aquà para crear una key y apunta cualquier herramienta a OneHop.",title:"Crea tu primera API key"},models:{body:"Consulta en una sola página todos los modelos que puedes llamar y cuánto cuesta cada uno.",cta:"Abrir modelos",title:"Explora los modelos"}},hGt={body:"Un URL para todos los modelos. Te mostramos tres cosas en 30 segundos.",skip:"Omitir",start:"Empezar",title:"Bienvenido a OneHop"},yGt={nav:fGt,steps:gGt,welcome:hGt},vGt="Failed to load",bGt="Nothing here yet.",xGt="Más detalles",$Gt={failedLoad:vGt,emptyDescription:bGt,moreDetails:xGt},wGt="Todos",kGt="Correcto",CGt="Pendiente",SGt="Reparando",AGt="Fallido",TGt="Reembolsado",RGt="Activo",PGt="Desactivado",_Gt="Agotado",jGt="Reservado",NGt="Canjeado",DGt="Suspendido",MGt="Eliminado",EGt="Normal",IGt="En observación",OGt="Bloqueado",LGt="Concedido",UGt="Revertido",BGt="Expirado",FGt="Denegado",zGt="Borrador",qGt="Publicado",HGt="Obsoleto",VGt="Archivado",KGt="Oculto",GGt="Creado",WGt="Checkout abierto",YGt="Pagado",QGt="Cancelado",XGt="OpenAI Chat",ZGt="OpenAI Responses",JGt="Anthropic Messages",eWt="Google Vertex AI",tWt="OpenAI Images",nWt="Cargo por uso",aWt="Bono de registro",oWt="Bono promocional",sWt="Bono de referido",rWt="Bono de compensación",iWt="Bono de recarga",lWt="Ajuste manual",cWt="Compra de credit",dWt="Pago",uWt="Bono de registro",mWt="Cupón",pWt="Crédito de admin",fWt="Uso de API",gWt="Bono de registro",hWt="Crédito manual",yWt="SÃncrono",vWt="Streaming",bWt="Facturación por token",xWt="Facturación por solicitud",$Wt="Facturación de imágenes",wWt="Reasoning bajo",kWt="Reasoning medio",CWt="Reasoning alto",SWt="No aplica",AWt="Desconocido",TWt="Congelado",RWt="Liberado",PWt="Cancelado",_Wt="Parcialmente revertido",jWt="Omitido",NWt={all:wGt,success:kGt,pending:CGt,repairing:SGt,failed:AGt,refunded:TGt,active:RGt,disabled:PGt,exhausted:_Gt,reserved:jGt,redeemed:NGt,suspended:DGt,deleted:MGt,normal:EGt,watchlisted:IGt,blocked:OGt,granted:LGt,reversed:UGt,expired:BGt,denied:FGt,draft:zGt,published:qGt,deprecated:HGt,archived:VGt,public:"Público",hidden:KGt,created:GGt,checkout_opened:WGt,paid:YGt,canceled:QGt,openai_chat:XGt,openai_responses:ZGt,anthropic_messages:JGt,google_vertex_ai:eWt,openai_images:tWt,usage_charge:nWt,bonus_signup_grant:aWt,bonus_promo_grant:oWt,bonus_referral_grant:sWt,bonus_compensation_grant:rWt,bonus_topup_grant:iWt,manual_adjustment:lWt,credit_purchase:cWt,payment:dWt,signup:uWt,coupon:mWt,admin:pWt,api:fWt,signup_bonus:gWt,manual:hWt,sync:yWt,stream:vWt,token:bWt,request:xWt,image:$Wt,low:wWt,medium:kWt,high:CWt,not_applicable:SWt,unknown:AWt,frozen:TWt,released:RWt,cancelled:PWt,partially_reversed:_Wt,skipped:jWt},DWt="{{count}} por página",MWt="Total: {{count}}",EWt={perPage:DWt,total:MWt},IWt="Invita y gana",OWt="Comparte tu enlace exclusivo. Cuando un usuario invitado recarga saldo, las recompensas de ambas partes quedan registradas con claridad.",LWt="No se pudieron cargar los datos de invitación",UWt="Tu enlace de invitación",BWt="Compartir",FWt="Invitación copiada. Pégala en WeChat para compartir.",zWt="Copiar",qWt="Copiado",HWt="WeChat",VWt="X",KWt="Telegram",GWt="Reddit",WWt="LinkedIn",YWt="WhatsApp",QWt="Correo",XWt="Facebook",ZWt={default:{title:"Todos los modelos de AI desde una sola API de OneHop",body:"RegÃstrate con mi enlace de invitación â haz tu primera recarga en {{firstWindowDays}} dÃas y ambos recibimos un {{percent}}% de vuelta."},x:{title:"Una API para todos los modelos de AI ð¤",body:"Recarga en {{firstWindowDays}} dÃas con mi enlace y ambos recibimos un {{percent}}% de vuelta. ð"},telegram:{title:"Crea con todos los modelos de AI desde OneHop",body:"Usa mi enlace de invitación â si haces tu primera recarga en {{firstWindowDays}} dÃas, ambos ganamos un {{percent}}% en crédito de referido."},whatsapp:{title:"Crea con todos los modelos de AI â OneHop",body:"Ãnete con mi enlace de invitación. Recarga en {{firstWindowDays}} dÃas y ambos recibimos un {{percent}}% de vuelta."},reddit:{title:"OneHop â una API para todos los modelos de AI. Con mi invitación ambos recibimos un {{percent}}% de vuelta en tu primera recarga",body:"Recarga en {{firstWindowDays}} dÃas y ambos ganamos un {{percent}}% en crédito de referido."},email:{title:"Una invitación a OneHop â todos los modelos de AI desde una sola API",body:`Hola, 788 789Estoy usando OneHop para llamar a los principales modelos de AI desde una sola API. RegÃstrate con mi enlace de invitación y, después de tu primera recarga, ambos ganamos crédito de referido. 790 791Niveles de recompensa: {{tiers}}. 792 793¡Gracias!`},wechat:{title:"OneHop â todos los modelos de AI desde una sola API",body:"RegÃstrate con mi enlace de invitación. Recarga en {{firstWindowDays}} dÃas y ambos ganamos un {{percent}}% en crédito de referido."}},JWt="El credit por referidos es visible de inmediato tras el pago, pero primero se congela para cubrir la ventana de reembolsos y, al vencer, se libera como credit de recompensa por invitación de OneHop.",eYt="Se libera en {{days}} dÃas.",tYt={referrer:"Invitador",referee:"Invitado"},nYt={referrer:": gana credit de referidos cuando alguien a quien invitas recarga â {{tiers}}.",referee:": regÃstrate con el enlace y recarga para ganar tú también â {{tiers}}."}
793,aYt={dayRange:"dÃas {{fromDay}}-{{untilDay}}",dayOpenEnded:"desde el dÃa {{fromDay}}"},oYt="Total ganado",sYt="Credit por referidos liberado",rYt="Credit por referidos congelado",iYt="Personas invitadas",lYt="Invitaciones válidas",cYt="Recompensa por invitación liberada",dYt="Recompensa por invitación congelada",uYt="Cancelado / revertido",mYt="Personas que invitaste",pYt="Detalle de recompensas",fYt={user:"Usuario",joined:"Fecha de registro",topups:"Recargas",earned:"Lo que ganaste",frozen:"Congelado",date:"Fecha",event:"Evento",topupAmount:"Su recarga",rate:"Porcentaje",releaseAt:"Fecha de liberación",cashback:"Recompensa",status:"Estado"},gYt={title:"Aún no hay invitaciones",description:"Comparte tu enlace para empezar a ganar recompensas."},hYt={inviteeSignedUp:"El invitado se registró correctamente",youSignedUp:"Te registraste correctamente mediante una invitación",inviteePaid:"El invitado realizó un consumo correctamente",youPaid:"Realizaste un consumo correctamente como invitado"},yYt={frozen:"Congelado",released:"Liberado",cancelled:"Cancelado",partially_reversed:"Parcialmente revertido",reversed:"Revertido",failed:"Fallido",skipped:"Omitido"},vYt={title:IWt,description:OWt,error:LWt,yourLink:UWt,shareVia:BWt,wechatCopied:FWt,copy:zWt,copied:qWt,wechat:HWt,x:VWt,telegram:KWt,reddit:GWt,linkedin:WWt,whatsapp:YWt,email:QWt,facebook:XWt,share:ZWt,offer:JWt,releaseDelay:eYt,role:tYt,roleOffer:nYt,policy:aYt,totalEarned:oYt,availableEarned:sYt,frozenEarned:rYt,invited:iYt,active:lYt,availableReceived:cYt,frozenReceived:dYt,cancelledReversed:uYt,peopleYouInvited:mYt,history:pYt,col:fYt,empty:gYt,event:hYt,status:yYt},bYt="Ajustes",xYt="Gestiona las preferencias de la cuenta y los valores predeterminados de la consola.",$Yt="Sesión iniciada como {{email}}",wYt="Nombre visible",kYt="Idioma",CYt="Zona horaria",SYt="No se pudo cargar el perfil",AYt="No se pudo guardar",TYt="¿Descartar cambios?",RYt="Tienes cambios sin guardar. Si sales ahora, se descartarán.",PYt="Descartar",_Yt="Seguir editando",jYt={title:bYt,description:xYt,signedInAs:$Yt,displayName:wYt,locale:kYt,timezone:CYt,failedLoad:SYt,failedSave:AYt,discardTitle:TYt,discardMessage:RYt,discardConfirm:PYt,keepEditing:_Yt},NYt="Muro de tareas",DYt="Comparte OneHop con tu audiencia y gana crédito de prueba. Revisamos cada envÃo a mano.",MYt="Enlace a tu publicación",EYt="https://â¦",IYt="Enviar",OYt="Enviado: lo revisaremos en breve.",LYt="Enlaces aceptados: {{hosts}}",UYt="Rechazado antes: {{reason}}. CorrÃgelo y vuelve a enviarlo.",BYt={pending:"En revisión",approved:"Acreditado",rejected:"Rechazado",active:"Activo"},FYt={title:"No hay tareas ahora mismo",description:"Vuelve pronto: lanzamos estas campañas de forma periódica."},zYt={x_quote:{title:"CÃtanos en X",description:"Cita la publicación fijada de @OneHopAI y añade tu propia opinión.",rules:["Tu cuenta de X debe tener al menos 6 meses y 10 seguidores o más.","EnvÃa el enlace de tu propia cita, no el de la publicación original.","El crédito llega en un plazo de 2 horas tras la aprobación."]},youtube_tutorial:{title:"Publica un tutorial en YouTube",description:"Un vÃdeo de 6 minutos o más que muestre cómo conectaste OneHop a tu propio agente.",rules:["EnvÃa el enlace del vÃdeo una vez publicado.","Tu canal de YouTube necesita 50 suscriptores o más.","Una vez por cuenta.","El crédito llega en un plazo de 2 horas tras la aprobación."]},short_video:{title:"Publica un vÃdeo corto",description:"Un short de 40 segundos o más en TikTok o YouTube que mencione tu configuración de OneHop.",rules:["EnvÃa el enlace del vÃdeo una vez publicado.","El crédito llega en un plazo de 2 horas tras la aprobación."]},github_readme:{title:"Pon OneHop en tu README de GitHub",description:"Añade un crédito de OneHop al README de un repositorio tuyo. Cada recarga posterior gana un 15% extra.",rules:["EnvÃa el enlace del repositorio cuando el README esté publicado.","Es permanente, no puntual: cada recarga posterior aplica lo que sea mayor, nuestro bono estándar o tu 15%.","El texto para copiar está más abajo."]}},qYt={load:"No se pudo cargar el muro de tareas",generic:"No se pudo enviar",urlRequired:"Pega primero el enlace de tu publicación.",urlTooLong:"Ese enlace es demasiado largo.",urlMalformed:"Eso no parece un enlace válido.",hostNotAllowed:"Esta tarea solo acepta enlaces de las plataformas indicadas arriba.",n
793otAPost:"Enlaza la publicación o el vÃdeo concreto, no un perfil o una página de inicio.",alreadySubmitted:"Ya has enviado esta tarea.",notAvailable:"Esta tarea no está disponible ahora mismo.",busy:"Hemos alcanzado la capacidad de revisión de hoy. Inténtalo mañana.",emailUnverified:"Verifica primero tu correo electrónico.",accountTooNew:"Tu cuenta aún no tiene la antigüedad necesaria.",riskFlagged:"Esta cuenta no puede participar ahora mismo. Contacta con soporte si crees que es un error.",accountInactive:"Esta cuenta no está activa.",deviceAlreadyClaimed:"Otra cuenta en este dispositivo ya ha participado."},HYt="¡Gracias a [OneHop]({{url}}) por patrocinar este proyecto! OneHop te da una sola clave API compatible con OpenAI para cientos de modelos lÃderes: GPT, Claude, Gemini, DeepSeek, Kimi y Qwen. Sin gestionar cuentas de varios proveedores, sin cambiar código para cambiar de modelo, y pagas solo por lo que usas. â {{domain}}",VYt="Copiar este texto",KYt={title:NYt,description:DYt,urlLabel:MYt,urlPlaceholder:EYt,submit:IYt,submitted:OYt,allowedHosts:LYt,rejectedHint:UYt,status:BYt,empty:FYt,item:zYt,error:qYt,sponsorBlurb:HYt,copyBlurb:VYt},GYt="Chatea con nosotros",WYt="Tickets de soporte",YYt="Abre un ticket y nuestro equipo te responderá lo antes posible.",QYt="Nuevo ticket",XYt={subject:"Asunto",category:"Tipo",status:"Estado",updated:"Actualizado",user:"User"},ZYt={billing:"Facturación",technical:"Técnico",account:"Cuenta",other:"Otro"},JYt={open:"Abierto",pending:"Pendiente",resolved:"Resuelto",closed:"Cerrado"},eQt={allStatuses:"Todos los estados",allCategories:"All categories",search:"Search email or subject"},tQt={subject:"Asunto",subjectPlaceholder:"Describe brevemente el problema",category:"Tipo",message:"Mensaje",messagePlaceholder:"Cuéntanos qué está pasandoâ¦",attachments:"Adjuntos",addAttachment:"Añadir archivo",submit:"Enviar ticket",cancel:"Cancelar"},nQt={you:"Tú",support:"Soporte",system:"Sistema",replyPlaceholder:"Escribe una respuestaâ¦",send:"Enviar",closedNotice:"Este ticket está cerrado. Abre uno nuevo si aún necesitas ayuda.",sendHint:"Pulsa â/Ctrl + Enter para enviar",back:"Volver a los tickets",systemStatus:{open:"Ticket reabierto",pending:"Ticket marcado como pendiente de tu respuesta",resolved:"Ticket marcado como resuelto",closed:"Ticket cerrado"}},aQt={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},oQt="Cargar más",sQt={created:"Ticket enviado",replied:"Respuesta enviada",statusUpdated:"Status updated",error:"Algo salió mal. Inténtalo de nuevo"},rQt="No se encontró el ticket o se eliminó.",iQt={title:"Aún no hay tickets",body:"¿Tienes un problema? Abre un ticket y te ayudaremos.",cta:"Abrir tu primer ticket"},lQt={liveChat:GYt,title:WYt,subtitle:YYt,newTicket:QYt,columns:XYt,category:ZYt,status:JYt,filters:eQt,form:tQt,thread:nQt,admin:aQt,loadMore:oQt,toast:sQt,notFound:rQt,empty:iQt},cQt="Uso",dQt="Saldo, ritmo de consumo y dónde se va tu gasto.",uQt="Actividad",mQt="No hay actividad en este intervalo",pQt="Desglose de uso",fQt="Por API key",gQt="Por modelo",hQt="Por tipo de token",yQt="Sin datos",vQt="Aún no hay uso en este intervalo.",bQt="Al ritmo actual, el saldo alcanzará para {{days}} dÃas (unos {{rate}}/dÃa).",xQt="salida",$Qt="caché",wQt={tokens:"Tokens",requests:"Solicitudes",cost:"Coste"},kQt="Otros",CQt="sol.",SQt="tok",AQt="Actualizandoâ¦",TQt="Sin datos",RQt="Haz una solicitud para empezar a acumular datos.",PQt="API keys principales",_Qt="Recargar",jQt={title:"No se pudo cargar el uso"},NQt={firstToken:"primer token",latency:"Latencia media",requests:"Solicitudes",spend:"Consumo",spendSub:"facturado en este periodo",successRate:"{{rate}}% correctas",tokens:"Tokens",textDuration:"texto",mediaDuration:"imagen/vÃdeo",cacheHit:"{{rate}}% en caché",projected:"â {{amount}}/mes",vsPrevious:"vs perÃodo anterior"},DQt={activeDays:"DÃas activos",longestStreak:"Racha más larga",daysValue:"{{n}} dÃas",totalSpend:"Total de este periodo",peakDay:"DÃa con más actividad"},MQt={all:"Todo el tiempo",custom:"Personalizado",last1h:"Ãltima hora",last30d:"Ãltimos 30 dÃas",last7d:"Ãltimos 7 dÃas",thisMonth:"Este mes",today:"Hoy",yesterday:"Ayer",byMonth:"Por mes"},EQt={failed:"Fallidas",success:"Correctas"},IQt={cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché",cacheWrite1h:"Escritura de caché 1h",cacheWrite5m:"Escritura de caché 5m",completion:"Salida",prompt:"Entrada"},OQt={body:"EnvÃa una solicitud desde la terminal o abre el playground; el uso aparecerá aquà en segundos.",openPlayground:"Abrir playground",title:"Tu key está lista"},LQt={body:"Crea tu primer API key, enruta todas las solicitudes con una sola URL y el uso aparecerá aquÃ.",createKey:"Crear API key",title:"Bienvenido a OneHop",tryPlayground:"Probar playground"},UQt="Actualizar",BQt="{{count}} solicitudes correctas en el filtro actual",FQt="Tokens totales",zQt="Entrada {{input}} / salida {{output}}",qQt="credit facturado",HQt="{{cost}} coste upstream real",VQt="Latencia media",KQt="Primer token {{duration}}",GQt="Actividad de 30 dÃas",WQt="Solicitudes correctas, volumen de tokens y credit facturado.",YQt="Cargando tendencia de uso",QQt="Sin tendencia de uso",XQt="La tendencia de uso aparece después de las solicitudes correctas.",ZQt="Modelos principales",JQt="credit facturado por modelo en los últimos 30 dÃas.",eXt="Aún no hay uso por modelo",tXt="El desglose por modelo aparece después de las solicitudes correctas.",nXt="Modelo",aXt="Todos los modelos",oXt="Estado",sXt="Protocolo",rXt="Filas",iXt="Restablecer",lXt="Registros de uso",cXt="API key",dXt="Endpoint",uXt="Tipo",mXt="Tokens",pXt="Coste",fXt="Duración",gXt="Hora",hXt="User-Agent",yXt="Detalles",vXt="Detalle de solicitud",bXt="Detalles del registro de uso y metadata de facturación.",xXt="ID de solicitud",$Xt="Operación",wXt="Tokens de entrada",kXt="Tokens de salida",CXt="Tokens de lectura de caché",SXt="Tokens de escritura de caché",AXt="Coste de entrada",TXt="Coste de salida",RXt="Coste de lectura de caché",PXt="Coste de escritura de caché",_Xt="Código de error",jXt="Mensaje de error",NXt="No encontrado.",DXt="credit",MXt="Total {{count}}",EXt="Cargando registros de uso",IXt="No hay registros de uso",OXt="Prueba otra combinación de filtros.",LXt="Los registros aparecen cuando las solicitudes pasan por tus API keys.",UXt="Página {{page}} · mostrando {{shown}} de {{total}} registros coincidentes",BXt="Anterior",FXt="Siguiente",zXt="Credit",qXt="Tokens",HXt="Solicitudes",VXt={time:"Hora",apiKey:"API Key",model:"Modelo",reasoningEffort:"Esfuerzo de razonamiento",endpoint:"Endpoint",type:"Tipo",billingMode:"Modo de facturación",inputTokens:"Tokens de entrada",outputTokens:"Tokens de salida",cacheReadTokens:"Tokens de lectura de caché",cacheWriteTokens:"Tokens de escritura de caché",totalTokens:"Tokens totales",billedCredit:"Credit facturado",firstTokenMs:"Primer token ms",durationMs:"Duración ms",status:"Estado",userAgent:"User-Agent"},KXt={mon:"Lun",wed:"Mié",fri:"Vie"},GXt="Menos",WXt="Más",YXt={title:cQt,description:dQt,activity:uQt,activityEmpty:mQt,breakdown:pQt,byApiKey:fQt,byModel:gQt,byTokenType:hQt,chartEmpty:yQt,chartEmptyHint:vQt,burnRate:bQt,in:"entrada",out:xQt,cache:$Qt,metric:wQt,other:kQt,req:CQt,tok:SQt,refreshing:AQt,topEmpty:TQt,topEmptyHint:RQt,topKeys:PQt,topUp:_Qt,error:jQt,kpi:NQt,stat:DQt,range:MQt,requests:EQt,tokenType:IQt,noRequests:OQt,welcome:LQt,refresh:UQt,successfulFilter:BQt,totalTokens:FQt,inOut:zQt,billedCredit:qQt,upstreamA
793ctualCost:HQt,avgLatency:VQt,firstToken:KQt,activityTitle:GQt,activityDescription:WQt,loadingTrend:YQt,noUsageTrend:QQt,trendDescription:XQt,topModels:ZQt,topModelsDescription:JQt,noModelUsage:eXt,noModelUsageDescription:tXt,model:nXt,allModels:aXt,status:oXt,protocol:sXt,rows:rXt,reset:iXt,tableLabel:lXt,apiKey:cXt,endpoint:dXt,type:uXt,tokens:mXt,cost:pXt,duration:fXt,time:gXt,userAgent:hXt,details:yXt,requestDetail:vXt,detailDescription:bXt,requestId:xXt,operation:$Xt,inputTokens:wXt,outputTokens:kXt,cacheReadTokens:CXt,cacheWriteTokens:SXt,inputCost:AXt,outputCost:TXt,cacheReadCost:RXt,cacheWriteCost:PXt,errorCode:_Xt,errorMessage:jXt,notFound:NXt,creditSuffix:DXt,total:MXt,loadingRecords:EXt,noRecords:IXt,differentFilters:OXt,recordsEmpty:LXt,pageSummary:UXt,previous:BXt,next:FXt,chartCredit:zXt,chartTokens:qXt,chartRequests:HXt,csv:VXt,weekday:KXt,activityLess:GXt,activityMore:WXt},QXt="Signup access",XXt="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",ZXt="Signup access allowlist",JXt="No allowlist entries",eZt="Email / domain",tZt="Note",nZt="Status",aZt="Registration",oZt="Expires",sZt="Invites",rZt="Updated",iZt="Action",lZt="Add",cZt="Bulk add",dZt="Edit",uZt="Save",mZt="Invite",pZt="Restore",fZt="Remove",gZt="Add signup access",hZt="Edit {{email}}",yZt="Bulk add signup access",vZt="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",bZt="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",xZt="Email or domain",$Zt="[email protected] or @company.com",wZt="Use @company.com to approve an entire domain.",kZt="Note (optional)",CZt="e.g. founding team",SZt="Expiry (optional)",AZt="Leave empty for no expiry. Expired entries no longer allow new signups.",TZt="Emails / domains",RZt=`[email protected] 794[email protected] 795@partner.com`,PZt="Search",_Zt="Search email or domain",jZt="Status",NZt="Access check",DZt="[email protected]",MZt="Check",EZt="Allowed",IZt="Denied",OZt={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},LZt="Registered",UZt="Not registered",BZt="Admin",FZt="Domain rule",zZt="Never",qZt="Added to signup access.",HZt="Signup access updated.",VZt="Added {{count}} entries.",KZt="Invite sent.",GZt="Entry restored.",WZt="Removed from signup access.",YZt="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",QZt={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},XZt={title:QXt,description:XXt,label:ZXt,empty:JXt,email:eZt,note:tZt,status:nZt,registration:aZt,expiresAt:oZt,invites:sZt,updatedAt:rZt,action:iZt,add:lZt,bulkAdd:cZt,edit:dZt,save:uZt,invite:mZt,restore:pZt,revoke:fZt,newTitle:gZt,editTitle:hZt,bulkTitle:yZt,formDescription:vZt,bulkDescription:bZt,emailLabel:xZt,emailPlaceholder:$Zt,emailHint:wZt,noteLabel:kZt,notePlaceholder:CZt,expiresAtLabel:SZt,expiresAtHint:AZt,bulkEntriesLabel:TZt,bulkEntriesPlaceholder:RZt,search:PZt,
795searchPlaceholder:_Zt,statusFilter:jZt,checkLabel:NZt,checkPlaceholder:DZt,check:MZt,checkAllowed:EZt,checkDenied:IZt,checkReasons:OZt,registered:LZt,notRegistered:UZt,adminAllowed:BZt,domainRule:FZt,never:zZt,added:qZt,updated:HZt,bulkAdded:VZt,invited:KZt,restored:GZt,revoked:WZt,confirmRevoke:YZt,domainRules:QZt},ZZt="Ops Billing",JZt="Payments, wallets and refunds across all users.",eJt={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},tJt="User email",nJt="Search by email...",aJt="Created",oJt="Created",sJt="Amount (USD)",rJt="Min",iJt="Max",lJt="Refunds",cJt="No refunds",dJt="Refund",uJt="Type",mJt="Full refund",pJt="Partial refund",fJt="Original payment",gJt="Wallets",hJt="Wallet",yJt="User",vJt="Total",bJt="Purchased",xJt="Bonus",$Jt="No wallets",wJt="Payments",kJt="Payment status",CJt="No payments",SJt="Payment",AJt="Status",TJt="Amount",RJt="Paid",PJt="Refund",_Jt="Not refundable (status must be paid)",jJt="View in Stripe Dashboard",NJt="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",DJt="unhealthy",MJt="Refund {{id}}",EJt="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",IJt="Refund amount (USD)",OJt="Max ${{value}}",LJt="Reason",UJt="Chargement de l'aperçu du remboursementâ¦",BJt="Impossible de charger l'aperçu du remboursement. Aucun remboursement possible tant qu'il n'est pas chargé.",FJt="Aucune transaction remboursable trouvée â ce paiement a peut-être déjà été intégralement remboursé.",zJt="Payé",qJt="Déjà remboursé",HJt="Ce remboursement",VJt="Crédit récupéré",KJt="Inclut {{amount}} de crédit de remise coupon récupéré au prorata",GJt="Inclut {{amount}} de crédit supplémentaire accordé récupéré au prorata",WJt="Bonus révoqué",YJt="Ce remboursement révoquera le bonus promotionnel de {{amount}}.",QJt="Remboursé via Stripe",XJt="Prélever les frais de plateforme ({{fee}}) â couvre les frais Stripe",ZJt="Frais de plateforme ({{fee}})",JJt="Le montant dépasse le maximum remboursable {{value}}",een="Saisissez un montant positif valide",ten="L'utilisateur a déjà consommé une partie du crédit acheté. Maximum remboursable : {{value}}",nen="Ce paiement a déjà été intégralement remboursé",aen="Le montant net après frais est trop faible. Remboursez au moins {{value}}.",oen="Cancel",sen="Issue refund",ren="Submitting...",ien="Refund submitted",len="Stripe will return the funds within 1-3 business days. Audit log written.",cen="Refund failed",den={title:ZZt,description:JZt,tabs:eJt,emailFilter:tJt,emailPlaceholder:nJt,created:aJt,createdRange:oJt,amountRange:sJt,amountMin:rJt,amountMax:iJt,refunds:lJt,noRefunds:cJt,refundId:dJt,refundType:uJt,typeRefund:mJt,typePartialRefund:pJt,originalPayment:fJt,wallets:gJt,wallet:hJt,user:yJt,total:vJt,purchased:bJt,bonus:xJt,noWallets:$Jt,payments:wJt,paymentStatus:kJt,noPayments:CJt,payment:SJt,status:AJt,amount:TJt,paid:RJt,refund:PJt,notRefundable:_Jt,viewInStripe:jJt,webhookHealthHint:NJt,unhealthyWebhooks:DJt,refundConfirmTitle:MJt,refundConfirmBody:EJt,refundAmountLabel:IJt,refundMaxHint:OJt,refundReasonLabel:LJt,refundPreviewLoading:UJt,refundPreviewFailed:BJt,refundNoRefundableTx:FJt,refundPaidRow:zJt,refundAlreadyRefundedRow:qJt,refundThisRefundRow:HJt,refundCreditReclaimRow:VJt,refundCreditCouponNote:KJt,refundCreditExtraNote:GJt,refundBonusReverseRow:WJt,refundBonusForfeitWarning:YJt,refundStripeReturnRow:QJt,refundFeeToggle:XJt,refundPlatformFeeRow:ZJt,refundExceedsMax:JJt,refundAmountInvalid:een,refundInsufficientCredit:ten,refundAlreadyFull:nen,refundBelowMin:aen,cancel:oen,confirmRefund:sen,submitting:ren,refundSubmittedTitle:ien,refundSubmittedBody:len,refundFailedTitle:cen},uen="Campaigns",men="Audience segments, restricted-model access, model discounts, and targeted credit grants.",pen={mobileLabel:"Section campagnes",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},fen="Status",gen="Actions",hen="All users",yen="Always",ven="No expiry",ben="Active window",xen="Leave blank for always-on. Times are end-of-day on the chosen dates.",$en="Valid from",wen="Valid to",ken="Pause",Cen="Resume",Sen="Add",Aen="Remove",Ten="Delete",Ren="Clear",Pen="Close",_en={allKinds:"Tous les types",segmentKindStatic:"Statique",segmentKindDynamic:"Dynamique",grantKindGrant:"Attribuer",grantKindRevoke:"Révoquer",allStatuses:"Tous les statuts",statusActive:"Actif",statusPaused:"En pause",statusArchived:"Archivé",statusEnded:"Terminé",statusPending:"En attente",statusProcessing:"En cours",statusCompleted:"Terminé",statusFailed:"Ãchec"},jen={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 c
795odes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},Nen={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},Den={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Men={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restr
795icted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},Een={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
7950.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},Ien={title:uen,description:men,tabs:pen,status:fen,actions:gen,allUsers:hen,always:yen,noExpiry:ven,window:ben,windowHint:xen,validFrom:$en,validTo:wen,pause:ken,resume:Cen,actionAdd:Sen,actionRemove:Aen,actionDelete:Ten,actionClear:Ren,actionClose:Pen,filters:_en,segments:jen,access:Nen,discounts:Den,grants:Men,recurring:Een},Oen="Announcements",Len="Banners shown at the top of the marketing site and the console.",Uen="Banners",Ben="Top-of-page banners shown on www and console.",Fen="New Banner",zen="No banners yet. Create one to show a top-of-page announcement.",qen="Message",Hen="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",Ven="CTA Label",Ken="CTA Link",Gen="Severity",Wen="Audience",Yen="Starts At",Qen="Ends At",Xen="Dismissible",Zen="Status",Jen="Archive",etn="Archive this banner? It will no longer be shown to users.",ttn="New Banner",ntn="Edit Banner",atn="Title",otn="Type",stn="Content",rtn="Display type",itn="Banner",ltn="Modal",ctn="Draft",dtn="Active",utn="Info",mtn="Warning",ptn="Critical",ftn="Console only",gtn="Public site only",htn="Both",ytn="Hero image",vtn="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",btn="Upload",xtn="Uploadingâ¦",$tn="Remove",wtn="Only PNG, JPEG, WebP and GIF images are supported.",ktn="Image must be 5MB or smaller.",Ctn="Upload failed, please try again.",Stn="Title",Atn="Body",Ttn="Action buttons",Rtn="Button label",Ptn="Button link",_tn="Style",jtn="Add button",Ntn="Remove",Dtn="Primary",Mtn="Secondary",Etn="Link",Itn="Simplified Chinese (source)",Otn="Fill in Simplified Chinese only, then translate to other languages in one click.",Ltn="Translate to all languages",Utn="Translatingâ¦",Btn="Other languages (translated, editable)",Ftn="Translated {{ok}} languages",ztn="{{failed}} languages failed â fill in manually or retry",qtn="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",Htn="Re-show to users who already dismissed it",Vtn="Fill in the Simplified Chinese body first.",Ktn={title:Oen,description:Len,annTitle:Uen,annDescription:Ben,annNewButton:Fen,annEmpty:zen,annMessage:qen,annInlineLinkHint:Hen,annCtaText:Ven,annCtaUrl:Ken,annSeverity:Gen,annAudience:Wen,annStartsAt:Yen,annEndsAt:Qen,annDismissible:Xen,annStatus:Zen,annArchive:Jen,annArchiveConfirm:etn,annCreateTitle:ttn,annEditTitle:ntn,annColTitle:atn,annColType:otn,annColContent:stn,annDisplayType:rtn,annTypeBanner:itn,annTypeModal:ltn,annStatusDraft:ctn,annStatusActive:dtn,annSevInfo:utn,annSevWarning:mtn,annSevCritical:ptn,annAudConsole:ftn,annAudPublic:gtn,annAudAll:htn,annHeroImage:ytn,annHeroImageHint:vtn,annHeroImageUpload:btn,annHeroImageUploading:xtn,annHeroImageRemove:$tn,annHeroImageBadType:wtn,annHeroImageTooLarge:ktn,annHeroImageUploadFailed:Ctn,annModalTitle:Stn,annBody:Atn,annActions:Ttn,annActionLabel:Rtn,annActionUrl:Ptn,annActionVariant:_tn,annActionAdd:jtn,annActionRemove:Ntn,annVariantPrimary:Dtn,annVariantSecondary:Mtn,annVariantLink:Etn,annSourceLocale:Itn,annSourceHint:Otn,annTranslate:Ltn,annTranslating:Utn,annOtherLocales:Btn,annTranslateDone:Ftn,annTranslateParti
795al:ztn,annTranslateStale:qtn,annBumpRevision:Htn,annTranslateNeedSource:Vtn},Gtn="Operations dashboard",Wtn="Real-time overview of platform health, usage, and alerts.",Ytn="Refresh",Qtn="Refreshing",Xtn="Updated {{time}}",Ztn="Loading dashboard",Jtn="Failed to load dashboard",enn="No data",tnn="No traffic yet",nnn="Video fail rate",ann="Avg latency",onn="Error types",snn="No errors",rnn="Model anomalies",inn="All models healthy",lnn="Components",cnn="req",dnn="Checkout abandon",unn="Refunds",mnn="Chargebacks",pnn="First-charge conversion",fnn={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},gnn={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},hnn={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Utilisateurs normaux uniquement (hors signalés)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},ynn={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},vnn={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},bnn={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},xnn={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},$nn={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},wnn={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},knn={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},Cnn={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},Snn={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},Ann="{{failed}}/{{total}} jobs",Tnn="{{delta}}pt vs yesterday",Rnn="Low sample ({{n}})",Pnn="Had gateway calls",_nn="Last 7d cohort · normal users only",jnn="Refund rate {{rate}}%",Nnn={funnel:"opened {{opened}} · paid {{paid}}"}
795,Dnn={title:Gtn,description:Wtn,refresh:Ytn,refreshing:Qtn,lastUpdated:Xtn,loading:Ztn,failedLoad:Jtn,empty:enn,noTraffic:tnn,videoFailRate:nnn,avgLatency:ann,errorTypes:onn,noErrors:snn,modelAnomalies:rnn,noAnomalies:inn,components:lnn,req:cnn,abandonRate:dnn,refunds:unn,chargebacks:mnn,firstChargeConversion:pnn,sections:fnn,leaderboard:gnn,kpi:hnn,revenue:ynn,orders:vnn,conversion:bnn,componentStatus:xnn,severity:$nn,health:wnn,alerts:knn,alertSettings:Cnn,range:Snn,videoJobsDetail:Ann,vsYesterdayPt:Tnn,lowSample:Rnn,activeUsersHint:Pnn,conversionCohortHint:_nn,refundRate:jnn,checkout:Nnn},Mnn="Loading...",Enn="Admin permission required",Inn="Your account does not have permission to access this administrator page.",Onn={loading:Mnn,permissionRequired:Enn,permissionDescription:Inn},Lnn="User growth",Unn="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",Bnn={mobileLabel:"Section croissance",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Codes de recharge",tasks:"Task wall"},Fnn="Coupon batch",znn="Promotion rule",qnn="Count",Hnn="Batch code",Vnn="Creating...",Knn="Create batch",Gnn="{{count}} coupon code created",Wnn="{{count}} coupon codes created",Ynn="Batch {{code}}",Qnn="Copied",Xnn="Copy all",Znn="Credit grants",Jnn="Source",ean="Status",tan="No grants yet",nan="Coupon redemptions, signup bonuses, and manual grants appear here.",aan="Time",oan="User",san="Amount",ran="Signup bonus",ian="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",lan="Enable signup credit",can="Amount (USD)",dan="Save signup bonus",uan="Saving...",man="Current amount {{amount}}",pan="Referral cashback",fan="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",gan="Enable referral cashback",han="Reward tiers",yan="Add tier",van="Recipient",ban="From day",xan="Until day",$an="Percent",wan="Label",kan="Action",Can="Inviter",San="Invitee",Aan="No end",Tan="Remove tier",Ran="Release delay (days)",Pan="Per-topup cap (USD)",_an="Min topup (USD, blank = none)",jan="Cashback expiry (days, blank = never)",Nan="Billing-page countdown banner",Dan="Banner title",Man="Subtitle",Ean="Countdown mode",Ian="Global deadline",Oan="Each invitee's 30-day window",Lan="Ends at",Uan="Save referral settings",Ban="v{{version}}",Fan="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",zan="Version history",qan="Version",Han="Status",Van="Reward tiers",Kan="Published",Gan="Superseded",Wan="current",Yan="Top-up discount codes",Qan="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",Xan="Enable discount codes",Zan="Discount type",Jan="Fixed amount off (USD)",eon="Percentage off (%)",ton="Amount off (USD)",non="Percentage off (0-100)",aon="Save discount",oon="Default low-balance alert",son="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",ron="Threshold (USD)",ion="Save threshold",lon="Current: {{amount}}",con="Generate codes against the discount rule above.",don="In effect: {{state}} · {{value}} off",uon="enabled",mon="disabled",pon="Issued codes",fon="Pick a batch to see who redeemed each code.",gon="No batches yet",hon="Generate a batch above to start tracking redemptions.",yon="Total",von="Redeemed",bon="Reserved",xon="Available",$on="Codes in {{code}}",won="No codes in this batch",kon="Code",Con="Redeemed by",Son="Redeemed at",Aon="Paid",Ton="Discount",Ron="Créer des codes",Pon="Un code partagé est un seul code que plusieurs utilisateurs peuvent utiliser jusqu'à N fois ; un lot de codes uniques est composé de N codes à usage unique.",_on="Type de code",jon="Code partagé unique",Non="Lot de codes uniques",Don="Texte du code (laisser vide pour aléatoire)",Mon="ex. WELCOME100",Eon="Utilisations totales (N)",Ion="Par utilisateur",Oon="Expire le (facultatif)",Lon="groupe facultatif",Uon="Créer le code partagé",Bon="Code partagé créé",Fon="Utiliser une réduction pour ce lot (sinon la règle ci-dessus)",zon="Codes partagés",qon="Un code, plusieurs utilisateurs. Le nombre d'utilisations suit les utilisations payées.",Hon="Aucun code partagé pour le moment",Von="Utilisé / plafond",Kon="Par utilisateur",Gon="Expire",Won="Désactiver",Yon="Désactiver ce code ?",Qon="Les nouveaux paiements sont bloqués immédiatement. Les commandes déjà en cours de paiement peuvent encore aboutir.",Xon="Code désactivé",Zon="CSV",Jon="Statut",esn="E-mail",tsn={code:"Code",discount:"Réduction",redeemed:"Utilisé",cap:"Plafond",perUser:"Par utilisateur",status:"Statut",expiresAt:"Expire le",batch:"Lot",createdAt:"Créé le",redeemedBy:"Utilisé par",redeemedAt:"Utilisé le",paid:"Payé",discountAmount:"Réduction",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"}
795,nsn="Amount",asn="Bound at",osn="Counterparty",ssn="Invitee",rsn="Inviter",isn="Rate",lsn="Released",csn="Role",dsn="Tier",usn="Top-up",msn="Load more",psn="No referrals under this version",fsn="No cashback under this version",gsn="Referrals",hsn="Referral records",ysn="Cashback records",vsn="Version detail",bsn={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},xsn="Générer des codes de recharge",$sn="Codes de recharge de type carte prépayée. L'utilisateur saisit le code sur la page de facturation et la valeur faciale est créditée directement (solde offert, sans paiement).",wsn="Nom du lot (facultatif)",ksn="Par exemple : crédit offert Conf-2026",Csn="Nombre à générer",Ssn="Valeur faciale unitaire (USD)",Asn="Codes utilisables par compte dans ce lot (laisser vide = illimité)",Tsn="Illimité",Rsn="Date limite de validité (facultatif)",Psn="Restrict to models (optional)",_sn="General balance (no restriction)",jsn="{{count}} models selected",Nsn="Blank = general balance. Selected models share one earmarked pool.",Dsn="Credit validity after redemption (days, blank = never expires)",Msn="never expires",Esn="{{n}} d",Isn="Models",Osn="Validity",Lsn="General balance",Usn="Générer des codes de recharge",Bsn="Enregistrez-les immédiatement. Vous pourrez aussi les récupérer plus tard via « Exporter en clair » depuis la liste des lots.",Fsn="Lots de codes de recharge",zsn="Cliquez sur un lot pour voir le détail de chaque code ; « Exporter en clair » permet de réexporter les codes en clair.",qsn="Aucun lot de codes de recharge pour le moment",Hsn="Lot",Vsn="Valeur faciale",Ksn="Exporter en clair",Gsn="Annuler ce code déjà utilisé ?",Wsn="La part non encore consommée est récupérée sur le solde de l'utilisateur ; la part déjà consommée est irrécupérable.",Ysn="Annuler",Qsn="Annulé : {{amount}}",Xsn="Codes de recharge exportés",Zsn="Désactiver les codes non utilisés de ce lot ?",Jsn="Tous les codes non encore utilisés deviendront invalides ; les codes déjà utilisés ne sont pas affectés.",ern="{{n}} code(s) désactivé(s)",trn="Bonus % on top-up",nrn="Bonus (%)",arn="Bonus validity (days, optional)",orn="blank = never expires",srn={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},rrn={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
795ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},irn={title:Lnn,description:Unn,tabs:Bnn,couponBatch:Fnn,promotionRule:znn,count:qnn,batchCode:Hnn,creating:Vnn,createBatch:Knn,codesCreated:Gnn,codesCreated_plural:Wnn,batch:Ynn,copied:Qnn,copyAll:Xnn,creditGrants:Znn,source:Jnn,status:ean,noGrants:tan,noGrantsDescription:nan,time:aan,user:oan,amount:san,signupBonus:ran,signupBonusDescription:ian,signupBonusEnabled:lan,signupBonusAmount:can,saveSignupBonus:dan,saving:uan,currentSignupBonus:man,referral:pan,referralDescription:fan,referralEnabled:gan,referralRewardTiers:han,addTier:yan,tierRole:van,tierFromDay:ban,tierUntilDay:xan,tierPercent:$an,tierLabel:wan,tierAction:kan,roleReferrer:Can,roleReferee:San,noEndDay:Aan,removeTier:Tan,releaseDelayDays:Ran,referralCap:Pan,referralMinTopup:_an,referralExpiryDays:jan,bannerEnabled:Nan,bannerTitle:Dan,bannerSubtitle:Man,bannerMode:Ean,bannerModeGlobal:Ian,bannerModeWindow:Oan,bannerEndsAt:Lan,saveReferral:Uan,referralVersion:Ban,referralPublishHint:Fan,referralVersionHistory:zan,versionCol:qan,versionStatus:Han,versionTiers:Van,versionPublished:Kan,versionSuperseded:Gan,versionCurrent:Wan,discountRule:Yan,discountRuleDescription:Qan,discountEnabled:Xan,discountType:Zan,discountFixed:Jan,discountPercent:eon,discountValueFixed:ton,discountValuePercent:non,saveDiscount:aon,defaultLowBalanceThreshold:oon,defaultLowBalanceThresholdDescription:son,defaultLowBalanceThresholdAmount:ron,saveDefaultLowBalanceThreshold:ion,currentDefaultLowBalanceThreshold:lon,couponBatchDescription:con,discountEffective:don,stateEnabled:uon,stateDisabled:mon,couponTrace:pon,couponTraceDescription:fon,noBatches:gon,noBatchesDescription:hon,batchTotal:yon,batchRedeemed:von,batchReserved:bon,batchActive:xon,codesInBatch:$on,noCodes:won,code:kon,redeemedBy:Con,redeemedAt:Son,paid:Aon,discount:Ton,createIssuance:Ron,createIssuanceDescription:Pon,formLabel:_on,formShared:jon,formUniqueBatch:Non,sharedCodeText:Don,sharedCodeRandomHint:Mon,sharedMaxRedemptions:Eon,sharedPerUser:Ion,expiresAt:Oon,batchCodeOptional:Lon,createSharedCode:Uon,sharedCodeCreated:Bon,batchOwnDiscount:Fon,sharedCodesList:zon,sharedCodesListDescription:qon,noSharedCodes:Hon,colRedeemedTotal:Von,colPerUser:Kon,colExpiry:Gon,disableCode:Won,disableCodeConfirmTitle:Yon,disableCodeConfirmMessage:Qon,codeDisabled:Xon,exportCsv:Zon,statusFilter:Jon,filterByEmail:esn,csv:tsn,colAmount:nsn,colBoundAt:asn,colCounterparty:osn,colInvitee:ssn,colInviter:rsn,colRate:isn,colReleasedAt:lsn,colRole:csn,colTier:dsn,colTopup:usn,loadMore:msn,noBindings:psn,noCashback:fsn,versionBindings:gsn,versionBindingsSection:hsn,versionCashbackSection:ysn,versionDetail:vsn,topup:bsn,redeemCreate:xsn,redeemCreateDescription:$sn,redeemBatchName:wsn,redeemBatchNameHint:ksn,redeemCount:Csn,redeemFaceValue:Ssn,redeemPerUserLimit:Asn,redeemUnlimited:Tsn,redeemExpiresAt:Rsn,redeemModels:Psn,redeemModelsAll:_sn,redeemModelsCount:jsn,redeemModelsHint:Nsn,redeemValidityDays:Dsn,redeemValidityForever:Msn,redeemValidityDaysValue:Esn,redeemColModels:Isn,redeemColValidity:Osn,redeemGeneralBalance:Lsn,redeemCreateBtn:Usn,redeemRevealHint:Bsn,redeemBatches:Fsn,redeemBatchesDescription:zsn,redeemNoBatches:qsn,redeemBatchCol:Hsn,redeemFace:Vsn,redeemReveal:Ksn,redeemReverseTitle:Gsn,redeemReverseMessage:Wsn,redeemReverseBtn:Ysn,redeemReversed:Qsn,redeemRevealed:Xsn,redeemDisableBatchTitle:Zsn,redeemDisableBatchMessage:Jsn,redeemBatchDisabled:ern,discountTypeBonusPercent:trn,discountValueBonusPercent:nrn,bonusExpiryDays:arn,bonusExpiryDaysHint:orn,sharedPayments:srn,tasks:rrn},lrn="Models",crn="Model catalog: create, edit, publish.",drn={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},urn="Add model",mrn="Edit {{model}}",prn="New model",frn="Close",grn="Basics & content save together; pricing and status changes apply immediately.",hrn="Create the model draft. Set pricing and publish after it exists.",yrn={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},vrn="Provider slug",brn="Pick a known provider or type a custom slug.",xrn="Model slug",$rn="Aliases",wrn="Comma-separated lookup aliases for import and review.",krn="Source (customer-visible)",Crn="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
795ame-model variants at different prices.",Srn="Platform",Arn="â select platform â",Trn="Upstream model id (optional; choose from upstream or enter manually)",Rrn="Choose from upstream...",Prn="Upstream unavailable",_rn="Protocols",jrn="Input price / 1M (USD)",Nrn="Output price / 1M (USD)",Drn="EN summary",Mrn="Preview",Ern="(No summary)",Irn="No protocol",Orn="Cancel",Lrn="Save",Urn="Create draft",Brn={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},Frn={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},zrn="Context window (tokens)",qrn="Max input the model accepts. Leave blank if unknown.",Hrn="Max output tokens",Vrn="Max tokens the model can generate per response.",Krn={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},Grn="Input modalities",Wrn="Declares what this model can receive, including vision, audio, video, and file inputs.",Yrn="Output modalities",Qrn="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",Xrn="Image billing style",Zrn="Video billing style",Jrn="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",ein="â select billing style â",tin="Per token (image_output_token)",nin="Per image (per_call_image)",ain="Per second (video_per_second)",oin="Per call (video_per_call)",sin="Display order",rin="Must be a non-negative integer.",iin="Editing locale",lin="Upstream release date",cin="Summary (this locale)",din="Description (Markdown, this locale)",uin={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filtres"},min={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},pin={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},fin={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
795:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},gin="Discard unsaved changes?",hin="Modifier le modèle",yin={title:lrn,description:crn,badges:drn,addModel:urn,editModel:mrn,newModel:prn,close:frn,sheetDescription:grn,sheetDescriptionNew:hrn,sections:yrn,providerSlug:vrn,providerSlugHint:brn,modelSlug:xrn,aliases:$rn,aliasesHint:wrn,source:krn,sourceHint:Crn,platform:Srn,platformUnset:Arn,sub2apiModelId:Trn,chooseSub2api:Rrn,upstreamUnavailable:Prn,protocols:_rn,inputPrice:jrn,outputPrice:Nrn,enSummary:Drn,preview:Mrn,noSummary:Ern,noProtocol:Irn,cancel:Orn,save:Lrn,createDraft:Urn,tabs:Brn,steps:Frn,contextWindow:zrn,contextWindowHint:qrn,maxOutputTokens:Hrn,maxOutputTokensHint:Vrn,lifecycle:Krn,inputModalities:Grn,inputModalitiesHint:Wrn,outputModalities:Yrn,outputModalitiesHint:Qrn,billingStyleImage:Xrn,billingStyleVideo:Zrn,billingStyleHint:Jrn,billingStyleUnset:ein,billingStyleToken:tin,billingStylePerImage:nin,billingStylePerSecond:ain,billingStylePerCall:oin,displayOrder:sin,displayOrderInvalid:rin,contentLocale:iin,upstreamReleaseAt:lin,summary:cin,descriptionField:din,filters:uin,table:min,errors:pin,pricing:fin,discardChanges:gin,editModelShort:hin},vin="Rate Limits",bin="Rate limit policies by scope.",xin="Rate limit policies",$in="No policies",win="Code",kin="Name",Cin="Scope",Sin="Status",Ain="Limits",Tin="No limits",Rin={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},Pin={active:"Active",disabled:"Disabled",archived:"Archived"},_in={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},jin="New policy",Nin="Edit",Din="Action",Min="New rate limit policy",Ein="Edit {{name}}",Iin="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",Oin='Delete policy "{{name}}"? Keys and users on it fall back to their default.',Lin="Policy deleted.",Uin={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},Bin={title:vin,description:bin,label:xin,empty:$in,code:win,name:kin,scope:Cin,status:Sin,limits:Ain,noLimits:Tin,scopes:Rin,statuses:Pin,limitNames:_in,add:jin,edit:Nin,delete:"Delete",action:Din,newTitle:Min,editTitle:Ein,formDescription:Iin,confirmDelete:Oin,deleted:Lin,form:Uin},Fin="Admins",zin="Who can sign in to the admin console. Owner-only.",qin="Admins",Hin="No admins yet",Vin="Email",
795Kin="Name",Gin="Role",Win="Status",Yin="Last login",Qin="Action",Xin="Add admin",Zin="Add admin",Jin="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",eln="Email",tln="[email protected]",nln="Name",aln="Display name",oln="Role",sln="Admin added.",rln="Change role",iln="Role updated.",lln="Suspend",cln="Activate",dln="Status updated.",uln="Remove",mln="Admin removed.",pln="Remove {{email}} as an admin? They lose console access immediately.",fln="You",gln="Never",hln={owner:"Owner",admin:"Admin",support:"Support"},yln={active:"Active",suspended:"Suspended"},vln={title:Fin,description:zin,label:qin,empty:Hin,email:Vin,name:Kin,role:Gin,status:Win,lastLogin:Yin,action:Qin,add:Xin,newTitle:Zin,formDescription:Jin,emailLabel:eln,emailPlaceholder:tln,nameLabel:nln,namePlaceholder:aln,roleLabel:oln,added:sln,changeRole:rln,roleChanged:iln,suspend:lln,activate:cln,statusChanged:dln,remove:uln,removed:mln,confirmRemove:pln,self:fln,never:gln,roles:hln,statuses:yln},bln="Upstream",xln="Read-only upstream configuration mirror plus controlled OneHop routing pools.",$ln="Open upstream admin",wln="Upstream tabs",kln={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},Cln={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},Sln={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},Aln={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Couverture amont",coverageUnchecked:"comptes illisibles",coverageOnlyAccount:"seulement {{accounts}}",coverageNoAccount:"Aucun compte planifiable ne mappe cet ID amont"},Tln={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},Rln={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},Pln={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},_ln={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},jln={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},Nln={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},Dln={title:bln,description:xln,openUpstreamAdmin:$ln,tabsLabel:wln,tabs:kln,metrics:Cln,errors:Sl
795n,audit:Aln,topology:Tln,pools:Rln,readonly:Pln,table:_ln,common:jln,ops:Nln},Mln="Platform usage",Eln="Cross-user request metering with cost, token, latency, and routing signals.",Iln="Refresh",Oln={label:"Auto refresh",off:"Off"},Lln="Exporting",Uln="Export CSV",Bln="Failed to export usage records",Fln="Requests",zln="{{count}} successful",qln="Users",Hln="Matched by current filters",Vln="Billed credit",Kln="{{cost}} upstream cost",Gln="Tokens",Wln="Avg {{duration}}",Yln="User email",Qln="Search by email",Xln="Model",Zln="Search by model",Jln="Status",ecn="Protocol",tcn="Rows",ncn="Reset",acn="Ops usage records",ocn="No usage records",scn="User",rcn="Endpoint",icn="{{count}} total",lcn="In {{input}} / out {{output}}",ccn="Upstream",dcn="Billed",ucn="Latency",mcn="Started",pcn="Page {{page}} · showing {{shown}} of {{total}} matching records",fcn="Previous",gcn="Next",hcn="{{count}} rows on this page",ycn="Times shown in",vcn="{{count}} API keys",bcn="Spend snapshot",xcn="from OneHop billing snapshot",$cn="User spend",wcn="total billed to users",kcn="Avg latency",Ccn="settled requests",Scn="Range",Acn={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},Tcn="Metric",Rcn={cost:"Spend",tokens:"Tokens",requests:"Requests"},Pcn="Distribution",_cn={model:"Modèle",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream:"Transport (stream/sync)"},jcn="Usage trend",Ncn="Usage by model",Dcn="Hourly",Mcn="Daily",Ecn="Top endpoints",Icn="Top dimension rows",Ocn="Request logs",Lcn="API key",Ucn="Type",Bcn="Billing",Fcn="Channel",zcn="Group",qcn="Request ID",Hcn="req_ / usg_ / upstream",Vcn="All types",Kcn="All billing",Gcn={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},Wcn="Failed to load usage",Ycn="Loading usage records",Qcn="Try a different filter set.",Xcn="No trend data",Zcn="No distribution data",Jcn="No rows",edn="Spend breakdown",tdn={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},ndn="Request detail",adn="Unknown user",odn="Loading...",sdn="Sub2API actual",rdn="Group multiplier",idn="Account multiplier",ldn="Identity",cdn="User ID",ddn="Key suffix",udn={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},mdn="Input",pdn="Output",fdn="Cache read",gdn="Cache write",hdn="Raw metadata",ydn="Request",vdn="Usage ID",bdn="OneHop ID",xdn="Sub2API ID",$dn="Sub2API log",wdn="Routing",kdn="Mapping",Cdn="Performance",Sdn="First token",Adn="Total",Tdn="Error",Rdn="Code",Pdn="Message",_dn={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2a
795piActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},jdn={analytics:"Usage analytics",logs:"Request logs"},Ndn={label:"Chart view",stacked:"Over time",ranking:"Ranking"},Ddn={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},Mdn="More filters",Edn="Slow threshold (ms)",Idn="No model usage",Odn="No requests yet â usage will appear here as traffic comes in.",Ldn="Viewing",Udn="streaming requests",Bdn="Avg duration",Fdn="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",zdn="Open request detail",qdn={title:Mln,description:Eln,refresh:Iln,autoRefresh:Oln,exporting:Lln,exportCsv:Uln,exportError:Bln,requests:Fln,successful:zln,users:qln,matchedFilters:Hln,billedCredit:Vln,upstreamCost:Kln,tokens:Gln,avgDuration:Wln,userEmail:Yln,searchEmail:Qln,model:Xln,searchModel:Zln,status:Jln,protocol:ecn,rows:tcn,reset:ncn,label:acn,empty:ocn,user:scn,endpoint:rcn,totalTokens:icn,inOut:lcn,upstream:ccn,billed:dcn,latency:ucn,started:mcn,pageSummary:pcn,previous:fcn,next:gcn,rowsOnPage:hcn,timesShownIn:ycn,apiKeys:vcn,sub2apiCharge:bcn,sub2apiChargeSource:xcn,userSpend:$cn,userSpendSource:wcn,avgLatency:kcn,settledRequests:Ccn,range:Scn,ranges:Acn,metric:Tcn,metrics:Rcn,distribution:Pcn,breakdown:_cn,usageTrend:jcn,stackedByModel:Ncn,hourly:Dcn,daily:Mcn,topEndpoints:Ecn,topDimensionRows:Icn,requestLogs:Ocn,apiKey:Lcn,type:Ucn,billing:Bcn,channel:Fcn,group:zcn,requestId:qcn,requestIdPlaceholder:Hcn,allTypes:Vcn,allBilling:Kcn,table:Gcn,failedLoad:Wcn,loadingRecords:Ycn,tryDifferentFilters:Qcn,noTrendData:Xcn,noDistributionData:Zcn,noRows:Jcn,costBreakdown:edn,adminCost:tdn,requestDetail:ndn,unknownUser:adn,loading:odn,sub2apiActual:sdn,groupMultiplier:rdn,accountMultiplier:idn,identity:ldn,userId:cdn,keySuffix:ddn,continuity:udn,input:mdn,output:pdn,cacheRead:fdn,cacheWrite:gdn,rawMetadata:hdn,request:ydn,usageId:vdn,onehopId:bdn,sub2apiId:xdn,sub2apiLog:$dn,routing:wdn,mapping:kdn,performance:Cdn,firstToken:Sdn,total:Adn,error:Tdn,code:Rdn,message:Pdn,csv:_dn,tabs:jdn,modelView:Ndn,chip:Ddn,moreFilters:Mdn,slowThreshold:Edn,noModelUsage:Idn,noTrendToday:Odn,viewing:Ldn,avgLatencySub:Udn,avgTotalDuration:Bdn,latencyHint:Fdn,openRequestDetail:zdn},Hdn="Search",Vdn="Search by user ID, email, or name",Kdn="User",Gdn="Back to users",Wdn="You do not have permission to view this section.",Ydn="Refund",Qdn="Refunding...",Xdn="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",Zdn="Refund initiated.",Jdn={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"Clés API",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},eun={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},tun={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},nun={phase2:"Subscriptions are coming in Phase 2."},aun={empty:"No payments"},oun={empty:"No refunds"},sun={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},run={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},iun={empty:"No audit records"},lun={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},cun={ipLocationTitle:"IP et localisation",deviceBrowserTitle:"Ap
795pareil et navigateur",stripeTitle:"Stripe",signupIp:"IP dâinscription",signupCountry:"Pays dâinscription",lastLoginIp:"IP de dernière connexion",ipDifferent:"Diffère de lâIP dâinscription",sameIpAccounts_one:"{{count}} compte avec la même IP dâinscription",sameIpAccounts_other:"{{count}} comptes avec la même IP dâinscription",sameDeviceAccounts_one:"{{count}} compte sur le même appareil",sameDeviceAccounts_other:"{{count}} comptes sur le même appareil",deviceFingerprint:"Empreinte de lâappareil",freeTierEligible:"Ãligibilité au niveau gratuit",firstDevice:"Premier sur lâappareil",notFirstDevice:"Pas le premier sur lâappareil â pas dâavantages gratuits",browser:"Navigateur",os:"OS",deviceType:"Type dâappareil",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"Voir sur ipinfo.io"},dun={empty:"Aucun appel pour lâinstant",viewAll:"Voir tous les logs â",colStatus:"Statut",colTime:"Heure",colModel:"Modèle",colProtocol:"Protocole",colDuration:"Durée",colCost:"Coût",colFreeDiscount:"Crédit gratuit"},uun={empty:"Aucune API key pour le moment",colName:"Nom",colKey:"Key",colStatus:"Statut",colPolicy:"Politique de débit",colLastUsed:"Dernière utilisation",colCreated:"Créée",colExpires:"Expiration",colSpend:"Dépenses",spendTitle:"Détail des dépenses",spend30d:"30 derniers jours",spendAllTime:"Cumul",spendRequests:"Requêtes"},mun="Copier",pun="Copié",fun={search:Hdn,searchPlaceholder:Vdn,title:Kdn,backToList:Gdn,noBlockPerm:Wdn,refund:Ydn,refunding:Qdn,refundConfirm:Xdn,refundInitiated:Zdn,nav:Jdn,freeTokens:eun,freeQuota:tun,subscription:nun,payments:aun,refunds:oun,rewards:sun,referrals:run,audit:iun,col:lun,network:cun,recentCalls:dun,apiKeys:uun,copy:mun,copied:pun},gun="Users",hun="Search users, grant credit, and suspend accounts.",yun="Email",vun="Search by email",bun="Account status",xun={active:"Compte actif ; connexion et appels au gateway autorisés",suspended:"Suspendu ; le gateway rejette toutes les requêtes (401)"},$un="Risk",wun={normal:"Ãligible à tous les avantages gratuits",watchlisted:"Aucun token gratuit ni bonus dâinscription ; peut toujours recharger et appeler le gateway",blocked:"Le gateway rejette toutes les requêtes (401) ; bannissement complet"},kun="Users",Cun="No users found",Sun="Country",Aun="Last login",Tun="Action",Run="View",Pun="Deleted",_un="Set status for {{email}}",jun='Set {{email}} to "{{status}}"?',Nun="Grant credit",Dun="Add bonus credit to {{email}}. Recorded in the ledger.",Mun="Amount (USD)",Eun="e.g. 5",Iun="Reason (optional)",Oun="e.g. compensation for downtime",Lun="Type",Uun="Bonus credit",Bun="A gift. Does not count as a top-up.",Fun="Offline payment",zun="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",qun="Reference no.",Hun="e.g. bank slip 20260907-001",Vun="Record payment",Kun="Recording...",Gun="Cancel",Wun="Granting...",Yun="Grant",Qun="Grant ${{amount}} to {{email}}? This is a large amount.",Xun="No display name",Zun="Loading...",Jun="score {{score}}",emn="Email verified",tmn="Yes",nmn="No",amn="Signup",omn="Signup method",smn="Last login method",rmn="Signup bonus",imn="Onboarding",lmn="Locale / TZ",cmn="Markup ratio",dmn="Rate limit policy",umn="Rate limit policy updated.",mmn="Joined",pmn="Never",fmn="Balance",gmn="Wallet & spend",hmn="Total spent",ymn="Recharged",vmn="Bonus granted",bmn="Refunded",xmn="Requests",$mn="Tokens",wmn="Actions",kmn="Identity & risk",Cmn="Role",Smn="No permitted actions for your role.",Amn="Acquisition source",Tmn="Acquisition by source",Rmn="Direct / unknown",Pmn="Custom sourceâ¦",_mn="Set",jmn="Auto-detected: {{source}}",Nmn="UTM",Dmn="Referred by",Mmn="Note",Emn="Ajouter une note pour identifier cet utilisateur",Imn="Enregistrer la note",Omn="Note enregistrée",Lmn="Aucune note",Umn="Filtres",Bmn="Location",Fmn="Preferred locale",zmn={title:gun,description:hun,email:yun,searchEmail:vun,status:bun,statusEffect:xun,risk:$un,riskEffect:wun,label:kun,empty:Cun,country:Sun,lastLogin:Aun,action:Tun,view:Run,deleted:Pun,setStatusAria:_un,setStatusConfirm:jun,grantCredit:Nun,grantDescription:Dun,amountUsd:Mun,amountPlaceholder:Eun,reason:Iun,reasonPlaceholder:Oun,grantKind:Lun,grantKindBonus:Uun,grantKindBonusHint:
795Bun,grantKindOffline:Fun,grantKindOfflineHint:zun,referenceNo:qun,referenceNoPlaceholder:Hun,recordPayment:Vun,recording:Kun,cancel:Gun,granting:Wun,grant:Yun,largeGrantConfirm:Qun,noDisplayName:Xun,loading:Zun,score:Jun,emailVerified:emn,yes:tmn,no:nmn,signup:amn,signupMethod:omn,lastLoginMethod:smn,signupBonus:rmn,onboarding:imn,localeTz:lmn,markupRatio:cmn,rateLimitPolicy:dmn,rateLimitPolicyChanged:umn,joined:mmn,never:pmn,walletBalance:fmn,walletSection:gmn,consumed:hmn,recharged:ymn,bonusGranted:vmn,refunded:bmn,requests:xmn,tokens:$mn,actionsSection:wmn,identitySection:kmn,role:Cmn,noPermittedActions:Smn,acquisitionSource:Amn,acquisitionTitle:Tmn,sourceDirect:Rmn,sourceCustomPlaceholder:Pmn,sourceSet:_mn,sourceCaptured:jmn,utm:Nmn,referrer:Dmn,note:Mmn,notePlaceholder:Emn,noteSave:Imn,noteSaved:Omn,noteEmpty:Lmn,filters:Umn,location:Bmn,preferredLocale:Fmn},qmn="Webhooks",Hmn="Stripe webhook events. Status filter, retry, payload inspection.",Vmn="Status",Kmn="Event type",Gmn="Received",Wmn="Event type",Ymn="Status",Qmn="Mode",Xmn="Attempts",Zmn="Retry",Jmn="Retry queued",epn="Event {{event}} reset to pending; next job tick will process.",tpn="Retry failed",npn="No webhook events yet.",apn="Stripe events will appear here once your endpoint is registered.",opn="Loading payload...",spn="Last error",rpn="Payload (JSON)",ipn={title:qmn,description:Hmn,statusFilter:Vmn,eventTypeFilter:Kmn,receivedAt:Gmn,eventType:Wmn,status:Ymn,mode:Qmn,attempts:Xmn,retry:Zmn,retrySubmittedTitle:Jmn,retrySubmittedBody:epn,retryFailedTitle:tpn,empty:npn,emptyHint:apn,detailLoading:opn,lastError:spn,payload:rpn},lpn="API Keys",cpn="Créez votre première key en 10 secondes",dpn="Ãchec de la copie",upn={label:"Modèles autorisés",allModels:"Tous les modèles",allHint:"Tous les modèles du catalogue sont autorisés.",noModels:"Aucun modèle disponible.",selected:"{{count}} sélectionnés",someHint:"{{count}} modèle(s) autorisé(s)."},mpn={label:"Tags",placeholder:"Ajoutez un tag puis appuyez sur Entrée",remove:"Retirer"},ppn="Créez des keys limitées pour la production, le staging et les workflows dâéquipe.",fpn="Actualiser",gpn="Key par défaut",hpn="Nom de la key",ypn="Création...",vpn="Créer une key",bpn="Key complète, affichée une seule fois",xpn="Copier lâAPI key",$pn="Copié",wpn="Copier",kpn="Copiez-la et conservez-la maintenant. Une fois ce panneau fermé, la key complète ne sera plus visible.",Cpn="Je lâai enregistrée",Spn="Ãchec du chargement des API keys",Apn="Réessayer",Tpn="Aucune API key pour le moment",Rpn="Créez votre première key pour commencer à envoyer des requêtes via OneHop.",Ppn={label:"API keys",tags:"Tags",name:"Nom",key:"Key",status:"Statut",created:"Créée",action:"Action",usage:"Usage",quota:"Quota",expires:"Expiration",lastUsed:"Dernière utilisation"},_pn="Révoquer",jpn="Révoquer {{name}} ? Cette action est irréversible.",Npn="Nommez la key. Les limites et lâexpiration restent dans les paramètres avancés sauf si vous en avez besoin.",Dpn="Limite mensuelle de credit",Mpn="Expire le",Epn="Illimité",Ipn="Enregistrement...",Opn="Enregistrer",Lpn="Annuler",Upn={title:"Désactivées et révoquées",description:"Keys désactivées ou révoquées. Vous pouvez réactiver une key désactivée; les révoquées restent conservées pour lâhistorique."},Bpn={title:"Aucune key active",description:"Réactivez une key désactivée ci-dessous ou créez-en une nouvelle."},Fpn={import:"Importer dans CCS",client:"Client CC-Switch",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"CC Switch a été ouvert avec un espace réservé. Collez-y votre API key enregistrée.",checking:"Vérification de la compatibilitéâ¦",blocked:{title:"{{client}} ne peut pas utiliser cette clé",body:"« {{keyName}} » autorise uniquement des modèles que {{client}} ne peut pas utiliser. Lâimportation entraînera des erreurs.",adjust:"Ajuster la portée des modèles",forceImport:"Importer quand même (ne fonctionnera pas)"},pin:{title:"Importer en tant que {{model}} pour {{client}}",body:"« {{keyName}} » nâinclut pas le modèle par défaut de {{client}}
795. Voici comment les requêtes {{client}} seront routées via ce fournisseur :",adjust:"Ajuster la portée des modèles",confirm:"Importer avec {{model}}"}},zpn={search:"Rechercher",searchPlaceholder:"Rechercher un nom ou un suffixe de key",status:"Statut",allStatus:"Tous les statuts",clear:"Effacer les filtres",empty:"Aucune key ne correspond à ces filtres",emptyDescription:"Effacez la recherche ou le filtre de statut pour voir toutes les keys.",mobileTitle:"Filtres"},qpn={active:"Active",inactive:"Désactivée",revoked:"Révoquée",expired:"Expirée",quota_exhausted:"Quota épuisé"},Hpn={today:"Aujourdâhui {{requests}} req · {{credit}}",days30:"30 j {{requests}} req · {{credit}}"},Vpn={use:"Détails de connexion",edit:"Modifier",enable:"Activer",disable:"Désactiver",delete:"Supprimer"},Kpn="Utiliser lâAPI key",Gpn="Utilisez la key enregistrée avec le gateway OneHop. La key complète nâest affichée quâà la création.",Wpn={baseUrl:"Base URL",keyHint:"API key",authorization:"En-tête Authorization",env:"Variable dâenvironnement",curl:"cURL",revealing:"Déchiffrement de la keyâ¦",fullKeyUnavailable:"La key complète nâest affichée quâà sa création. Utilisez la valeur enregistrée ou créez une nouvelle key si vous lâavez perdue.",protocolEndpoints:"Endpoints de protocole"},Ypn="Paramètres avancés",Qpn="Créer une API key",Xpn="Modifier lâAPI key",Zpn={label:"Accès aux modèles",all:"Tous les modèles",limited:"Limiter à des modèles précis",allHint:"Cette key peut appeler tous les modèles, y compris ceux ajoutés plus tard.",snapshotHint:"Uniquement les modèles choisis; les nouveaux modèles ne sont pas ajoutés automatiquement.",snapshotHintEdit:"Uniquement les modèles choisis; les nouveaux modèles ne sont pas ajoutés automatiquement. Passer à Tous les modèles remplace cette liste blanche.",searchPlaceholder:"Rechercher des modèlesâ¦",selectAllResults:"Sélectionner tous les résultats ({{count}})",selectedCount:"{{count}} / {{max}} sélectionnés",clear:"Effacer",hiddenSelected:"{{hidden}} sur {{total}} sélectionnés sont masqués par le filtre actuel",selectVendor:"Sélectionner tous les {{vendor}}, {{on}} sur {{total}} sélectionnés",emptyTitle:"Aucun modèle ne correspond",emptyDescription:"Essayez un autre type ou une autre recherche.",loadFailed:"Impossible de charger les modèles",loadFailedHint:"Réessayez ou revenez à Tous les modèles.",type:{all:"Tous",text:"Texte",image:"Image",video:"Vidéo",embedding:"Embedding"},pickAtLeastOne:"Sélectionnez au moins un modèle ou revenez à Tous les modèles.",limitReached:"Reached the {{max}}-model limit"},Jpn={title:"API key créée",subtitle:"{{name}} est prête â connectez-la maintenant.",onceWarning:"Affichée une seule fois. Vous pourrez la révéler à nouveau plus tard, mais copiez-la maintenant par sécurité.",connect:"Connecter",done:"Terminé"},efn="IP",tfn="Révoquée le {{date}}",nfn={title:lpn,emptyTitle:cpn,copyFailed:dpn,allowedModels:upn,tags:mpn,description:ppn,refresh:fpn,defaultName:gpn,keyName:hpn,creating:ypn,createKey:vpn,fullKeyTitle:bpn,copyApiKey:xpn,copied:$pn,copy:wpn,fullKeyDescription:kpn,savedIt:Cpn,loadFailed:Spn,retry:Apn,empty:Tpn,emptyDescription:Rpn,table:Ppn,revoke:_pn,revokeConfirm:jpn,formDescription:Npn,monthlyCreditLimit:Dpn,expiresAt:Mpn,unlimited:Epn,saving:Ipn,save:Opn,cancel:Lpn,parked:Upn,noActive:Bpn,ccswitch:Fpn,filters:zpn,status:qpn,usage:Hpn,actions:Vpn,useTitle:Kpn,useDescription:Gpn,use:Wpn,advancedSettings:Ypn,createTitle:Qpn,editTitle:Xpn,scope:Zpn,created:Jpn,lastUsedIp:efn,revokedAt:tfn},afn="Audit Logs",ofn="High-risk admin actions, by action and time.",sfn="Action",rfn="Clear",ifn={ops_user_update_status:"Statut utilisateur mis à jour",ops_users_allowlist_add:"Accès à lâinscription ajouté",ops_users_allowlist_update:"Accès à lâinscription mis à jour",ops_users_allowlist_invite:"Invitation dâaccès à lâinscription envoyée",ops_users_allowlist_revoke:"Accès à lâinscription retiré",ops_users_allowlist_restore:"Accès à lâinscription restauré",ops_model_create:"Modèle créé",ops_model_update:"Modèle mis à jour",ops_model_update_status:"Statut du modèle mis à jour",sub2api_pool_create:"Pool de routage créé",sub2api_pool_test:"Pool de routage testé",sub2api_pool_rotate_secret:"Secret de routage renouvelé"},lfn="Audit logs",cfn="No audit entries",dfn="Time",ufn="Severity",mfn="Target",pfn={ai_model:"Model",sub2a
795pi_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},ffn="Type de cible",gfn="ID de requête",hfn={title:afn,description:ofn,action:sfn,clear:rfn,actions:ifn,label:lfn,empty:cfn,time:dfn,severity:ufn,target:mfn,targetTypes:pfn,targetType:ffn,requestId:gfn},yfn="Connectez-vous à OneHop",vfn="Saisissez votre code",bfn="Continuez avec Google ou email",xfn="Saisissez votre email pour recevoir un code",$fn="Saisissez le code à 6 chiffres envoyé à {{email}}",wfn="Continuer avec Google",kfn="Continuer avec email",Cfn="ou",Sfn="Email",Afn="Envoyer le code de vérification",Tfn="Envoi...",Rfn="Vérifier",Pfn="Vérification...",_fn="Renvoyer dans {{seconds}} s",jfn="Renvoyer le code",Nfn="En continuant, vous acceptez nos",Dfn="Conditions",Mfn="Confidentialité",Efn={signIn:"Connexion",signOutFailed:"Ãchec de la déconnexion",sendCodeFailed:"Ãchec de lâenvoi du code",notAllowed:"Cet e-mail nâest pas encore autorisé. Contactez votre administrateur pour demander lâaccès.",invalidCode:"Code invalide",codeIncorrect:"Code incorrect, réessayez",googleFailed:"Ãchec de la connexion Google",verifyHuman:"Veuillez terminer la vérification pour continuer",verifyUnavailable:"La vérification humaine est temporairement indisponible. Continuez avec Google ci-dessus ou réessayez plus tard."},Ifn={signInTitle:yfn,enterCodeTitle:vfn,methodIntro:bfn,emailStepIntro:xfn,codeIntro:$fn,continueGoogle:wfn,continueEmail:kfn,or:Cfn,emailLabel:Sfn,sendCode:Afn,sending:Tfn,verify:Rfn,verifying:Pfn,resendIn:_fn,resendCode:jfn,termsPrefix:Nfn,terms:Dfn,privacy:Mfn,errors:Efn},Ofn="Facturation",Lfn="Rechargez des Credits, utilisez des codes promo et consultez les mouvements du wallet.",Ufn={bonuses:"Bonus",topups:"Recharges",usage:"Consommation"},Bfn={available:"Crédité",availableHint:"Déjà inclus dans votre solde disponible",frozen:"En attente (gelé)",frozenHint:"Disponible dans ~{{days}} jours",frozenHintGeneric:"Disponible après la période de retenue",title:"Récompenses de parrainage",viewDetails:"Voir les détails des parrainages"},Ffn={noUsage:"Aucune consommation sur les 30 derniers jours",perDay:"{{amount}} moy./jour",daysLeft:"â {{days}} jours au rythme actuel"},zfn={amountUsd:"Montant (USD)",minAmountHint:"Recharge minimum de {{amount}}.",apply:"Appliquer",get:"Recevoir",onehopCredits:"OneHop credits",pay:"Payer",poweredByStripe:"Sécurisé par Stripe",poweredBy:"Sécurisé par {{provider}}",secureCheckout:"Paiement hébergé sécurisé",secureCheckoutShort:"Paiement sécurisé",taxExclusiveNotice:"Les taxes applicables sont calculées lors du paiement et ajoutées à ce montant.",presets:"Montants prédéfinis",promoCode:"Code promo",promoCodePlaceholder:"Saisir le code",serviceFee:"Frais de service",title:"Recharger",topupAmount:"Montant de recharge",totalDue:"Total à payer",payCta:"Payer {{amount}}",previewing:"Vérificationâ¦",discount:"Remise du code promo",couponBelowMin:"Le total après remise est trop bas â augmentez le montant ou essayez un autre code.",maintenanceTitle:"Paiements temporairement indisponibles",maintenanceDescription:"Les paiements sont temporairement indisponibles. Contactez-nous sur Telegram si vous devez payer.",contactTelegram:"Contactez-nous sur Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Payer en crypto (USDC / USDT)",payOnStripe:"Le paiement s'effectue sur la page de paiement sécurisée de Stripe.",payOnProvider:"Le paiement s'effectue sur la page de paiement sécurisée de {{provider}}.",payOnHostedCheckout:"Le paiement s'effectue sur la page de paiement sécurisée hébergée.",amountPrecision:"{{provider}} accepte les montants en USD avec au maximum 2 décimales. Ajustez le montant ou le code promo.",couponBonus:"Bonus du code",couponBonusExpiry:"Le crédit bonus expire {{days}} jours après le paiement.",couponInvalid:"Ce code ne peut pas être appliqué â essayez un autre code.",couponErrors:{limitReached:"Vous avez déjà utilisé ce code le nombre maximal de fois.",invalid:"Ce code est invalide.",expired:"Ce code a expiré.",exhausted:"Ce code a été entièrement utilisé.",unavailable:"Ce code est en cours d'utilisation â réessayez dans un instant."},tierBonus:"Bonus promotionnel",tierBonusExpiry:"Le crédit bonus expire {{days}} jours après le paiement.",tierBonusRestricted:"Le crédit bonus est utilisable uniquement sur : {{models}}.",nextTierPercent:"Rechargez {{amount}} de plus pour obtenir {{percent}} % de crédit bonus.",nextTierBonus:"Rechargez {{amount}} de plus pour obtenir {{bonus}} de crédit bonus.",tierCapReached:"Vous avez déjà atteint le bonus maximal de cette promotion."},qfn="Ajouter des Credits",Hfn="Création...",Vfn="Credit disponible",Kfn="Recharger",Gfn="Paiement via Stripe",Wfn="Montant (USD)",Yfn="Montants de recharge prédéfinis",Qfn="Utiliser un code promo",Xfn="Code promo",Zfn="Utilisation...",Jfn="Utiliser",egn="Code promo utilisé, le solde se met à jour.",tgn="Redirection vers le checkout sécurisé...",ngn="Ãchec du chargement du résumé de facturation",agn="Ãchec de la recharge",ogn="Onglets dâactivité de facturation",sgn="Transactions",rgn="Attributions de Credit",ign="Type de transaction",lgn="Source",cgn="Aucune transaction pour le moment",dgn="Recharges, débits et attributions apparaissent ici.",ugn="Entrées ledger",mgn="Heure",pgn="Type",fgn="Montant",ggn="Solde",hgn="Aucune attribution pour le moment",ygn="Bonus dâinscription, codes promo et attributions manuelles apparaissent ici.",vgn="Statut",bgn={successTitle:"Paiement reçu",polling:"Créditation de votre wallet en cours... environ 30 secondes.",delayed:"Lâarrivée prend du temps. Actualisez dans un instant ou consultez vos reçus Stripe.",cancelledTitle:"Paiement annulé",cancelledBody:"Aucun débit nâa été effectué. Réessayez quand vous serez prêt.",failedTitle:"Ãchec du paiement",failedBody:"Votre paiement nâa pas pu être finalisé. Aucun crédit nâa été ajouté. Réessayez ou utilisez un autre moyen de paiement."},xgn={text:"Les Credits sont un solde de service prépayé, pas un dépôt bancaire. Les Credits consommés ne sont pas remboursables. Tous les prix sont en USD. Voir les",tosLink:"Conditions"},$gn="Reçus",wgn="Ouverture...",kgn="Impossible dâouvrir le portail de facturation",Cgn={title:"Recharges récentes",subtitle:"90 derniers jours, remboursables sous 24 heures.",loading:"Chargement des recharges...",date:"Date",amount:"Montant",credits:"Credits",status:"Statut",refund:"Rembourser",alreadyRefunded:"Déjà remboursé",windowExpired:"Fenêtre de remboursement expirée (24 heures)",confirmTitle:"Confirmer le remboursement",confirmBody:"Le remboursement sera traité par Stripe sous 1-3 jours ouvrés. Des frais de plateforme ({{fee}}) sâappliquent aux remboursements initiés par lâutilisateur.",amountLabel:"Montant du remboursement (USD)",maxLabel:"Maximum ${{value}}",requestedLabel:"Remboursement demandé",platformFeeLabel:"Frais de plateforme ({{fee}})",cardReturnLabel:"Reversé sur votre carte",bonusForfeitureHint:"Les Credits promotionnels accordés avec cette recharge seront annulés au prorata.",cancel:"Annuler",confirm:"Ãmettre le remboursement",submitting:"Envoi en cours...",refundSubmittedTitle:"Remboursement envoyé",refundSubmittedBody:"Stripe reversera les fonds sur votre carte sous 1-3 jours ouvrés.",refundFailedTitle:"Ãchec du remboursement",balance:"Solde",confirmAmount:"Rembourser {{amount}}"},Sgn={title:"Alertes de solde",description:"Nous vous prévenons lorsque votre solde est bas.",emailLabel:"Mâavertir par e-mail",webhookLabel:"Webhook",autorechargeLabel:"Recharge automatique",autorechargeUnsupported:"La recharge automatique n'est pas disponible avec le prestataire de paiement actif.",autorechargeAddCardHint:"ajoutez une carte pour maintenir votre solde",autorechargeTopUp:"Recharger de",autorechargeWhenBelow:"lorsque le solde passe sous",autorechargeThreshold:"Seuil de recharge automatique",autorechargeAmount:"Montant de recharge automatique",autorechargeDisabledFailures:"La recharge automatique a été désactivée après plusieurs échecs consécutifs. Mettez à jour votre carte et réactivez-la.",autorechargeIncomplete:"Définissez un montant de recharge et un seuil supérieur à $0.",test:"Tester",testing:"Test en coursâ¦",testQueued:"Livraison de test en file dâattente â vérifiez votre endpoint",testFailed:"Ãchec de la mise en file de la livraison de test",signingSecret:"Secret de signature",secretOnSave:"Un secret de signature est généré à lâenregistrement.",rotate:"Renouveler",secretRotated:"Secret de signature renouvelé",rotateFailed:"Ãchec du renouvellement du secret",secretCopied:"Secret de signature copié",saved:"Réglages dâalerte enregistrés",saveFailed:"Ãchec de lâenregistrement des réglages dâalerte",loadFailed:"Impossible de charger les réglages dâalerte",thresholdRequired:"Définissez un seuil supérieur à $0 pour activer les alertes.",webhookUrlRequired:"Saisissez une URL https:// pour le webhook.",thresholdOrderBad:"Le seuil dâalerte doit être ⥠au seuil de recharge automatique.",card:"Carte",changeCard:"Modifier",removeCard:"Retirer",cardRemoved:"Carte retirée",cardRemoveFailed:"Ãchec du retrait de la carte",cardSetupFailed:"Impossible de démarrer la configuration de la carte",lowBalanceGroup:"Alertes de solde faible",thresholdLabel:"Seuil dâalerte"},Agn={title:"Historique des transactions",idSearch:"ID de transaction",amountRange:"Plage de montant (USD)",min:"Min.",max:"Max.",clear:"Effacer",retry:"Réessayer",empty:"Aucune transaction sur cette période",date:"Date",typeMethod:"Type / méthode",description:"Description",action:"Action",prevMonth:"Mois précédent",nextMonth:"Mois suivant",viewInvoices:"Voir les factures",emptyNew:"Aucune transaction pour lâinstant",emptyNewDesc:"Après une recharge, vos recharges, bonus et remboursements apparaîtront ici.",topUpCta:"Recharger",emptyFiltered:"Aucune transaction ne correspond",emptyFilteredDesc:"Essayez dâeffacer les filtres ou dâélargir la période.",clearFilters:"Effacer les filtres"},Tgn="Votre solde est faible et peut interrompre les requêtes. Rechargez ou activez la recharge automatique.",Rgn="Votre solde est faible et peut interrompre les requêtes. Rechargez pour continuer.",Pgn={creditPurchase:"Recharge de crédit",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Bonus du code",referralCashback:"Cashback de parrainage",referralInviteeCashback:"Bonus du filleul",redeemCode:"Code de réduction {{code}}",redeemCodeReversal:"Annulation du code",stripeRefund:"Remboursement Stripe",bonusReversal:"Reprise du bonus (remboursement)"},_gn={title:"Crédit dédié",subtitle:"Crédit bonus utilisable uniquement sur certains modèles â distinct de votre solde.",onlyModels:"Uniquement {{models}}",onlyModelsGeneric:"Modèles restreints",validUntil:"Valable jusqu'au {{date}}",noExpiry:"Sans expiration",useInChat:"Use in chat"},jgn={card:"Carte",alipay:"Alipay",wechatPay:"WeChat Pay"},Ngn={title:"Code de recharge",description:"Vous avez un code de recharge ? Saisissez-le pour créditer sa valeur faciale sur votre solde.",placeholder:"Par exemple : OHR-XXXXXXXX",redeem:"Utiliser",redeeming:"Validationâ¦",success:"{{amount}} crédité(s) sur votre solde",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"Ce code est invalide.",expired:"Ce code a expiré.",alreadyRedeemed:"Ce code a déjà été utilisé.",perUserLimit:"Vous avez atteint la limite d'utilisation de ce lot."}},Dgn={title:Ofn,description:Lfn,breakdown:Ufn,referralRewards:Bfn,burnRate:Ffn,topup:zfn,addCredits:qfn,creating:Hfn,availableCredit:Vfn,topUp:Kfn,poweredByStripe:Gfn,amountUsd:Wfn,presetAmounts:Yfn,redeemCoupon:Qfn,couponCode:Xfn,redeeming:Zfn,redeem:Jfn,couponRedeemed:egn,redirecting:tgn,summaryFailed:ngn,topupFailed:agn,tabsLabel:ogn,transactions:sgn,creditGrants:rgn,transactionType:ign,source:lgn,noTransactions:cgn,noTransactionsDescription:dgn,ledgerEntries:ugn,time:mgn,type:pgn,amount:fgn,balance:ggn,noGrants:hgn,noGrantsDescription:ygn,status:vgn,topupBanner:bgn,compliance:xgn,receipts:$gn,openingPortal:wgn,portalFailed:kgn,recentTopups:Cgn,alerts:Sgn,history:Agn,lowBalanceWarning:Tgn,lowBalanceWarningNoAutoTopup:Rgn,ledgerDesc:Pgn,earmarked:_gn,paymentMethod:jgn,redeemCard:Ngn},Mgn="Ãchec du chargement du graphique",Egn="Aucune donnée",Ign="Il nây a encore rien à tracer.",Ogn={errorTitle:Mgn,emptyTitle:Egn,emptyDescription:Ign},Lgn={copy:"Copier",regenerate:"Régénérer",shareComingSoon:"Partager (bientôt)",download:"Télécharger",copyLink:"Copier le lien",newChat:"Nouveau chat",deleteChat:"Supprimer le chat",openConversationList:"Ouvrir la liste des conversations",openSettings:"Paramètres du chat",collapseSidebar:"Réduire la barre latérale",expandSidebar:"Déployer la barre latérale",cancel:"Annuler",apply:"Appliquer",newChatTooltip:"
795Créer un nouveau chat",copied:"Copié"},Ugn={placeholderReady:"Commencer une nouvelle conversation...",placeholderNoModel:"Choisissez dâabord un modèle ci-dessus",attachmentTooLarge:"Le fichier dépasse {{limit}} et ne peut pas être téléversé",attachmentUnsupported:"Type de fichier non pris en charge. Utilisez PNG, JPEG, WebP, GIF, MP4, WebM ou MOV.",unsupportedVision:"Ce modèle n'accepte pas les entrées image ou vidéo. Changez de modèle avant de déposer des fichiers.",send:"Envoyer",abort:"Arrêter",attachImage:"Ajouter une image",attachMedia:"Ajouter une image ou une vidéo",removeAttachment:"Retirer",shortcutSend:"envoyer",shortcutNewLine:"nouvelle ligne",shortcutAbort:"arrêter",frameFirst:"Première image",frameLast:"Dernière image",frameReference:"Référence",imageMode:"Génération dâimage",videoMode:"Génération de vidéo",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"Réflexion",reasoningOff:"Désactivé",reasoningAlways:"Toujours activé",placeholderTopupRequired:"Ce modèle est réservé aux comptes rechargés â rechargez pour l'utiliser ici"},Bgn={modelUnavailable:"Le modèle {{model}} nâest pas disponible pour le moment. Votre prompt est quand même conservé.",rateLimited:"Trop de requêtes simultanées. Réessayez dans un instant.",accountDisabled:"Ce compte est désactivé et ne peut pas continuer le chat.",attachmentsUploading:"Images en cours de téléversement. Patientez avant d'envoyer.",attachmentsFailed:"Ãchec du téléversement d'une image. Supprimez-la et réessayez avant d'envoyer."},Fgn={title:"Commencez à tester nâimporte quel modèle ici.",body:"Discutez directement avec nâimporte quel modèle. Lâusage est facturé à votre wallet PAYG.",starters:{compareModels:"Comparer GPT-5.5 et Claude Opus sur la même tâche de code",analyzeImage:"Analyser un diagramme dâarchitecture et résumer les risques",draftPrompt:"Rédiger un system prompt pour un agent de support",generateImage:"Générer une image hero produit avec un style SaaS sobre"}},zgn={untitled:"Chat sans titre",deleteConfirm:'Supprimer "{{title}}" ?',emptyTitle:"Aucune conversation pour le moment",emptyBody:"Utilisez + Nouveau chat ci-dessus pour commencer.",listLabel:"Liste des conversations",groups:{today:"Aujourdâhui",yesterday:"Hier",earlier:"Plus tôt"},menu:{rename:"Renommer",delete:"Supprimer"},deleteTitle:"Supprimer la conversation ?"},qgn={paygWallet:"Wallet PAYG"},Hgn={chooseModel:"Choisir un modèle",searchPlaceholder:"Rechercher des modèles...",emptyTitle:"Aucun modèle trouvé",emptyBody:"Essayez un autre terme de recherche ou un autre onglet.",protocols:"{{count}} protocoles",context:"{{value}} ctx",tabs:{all:"Tous",text:"Texte",image:"Image",video:"Vidéo"},maxOut:"sortie {{value}}",unavailable:"Temporairement indisponible",requiresTopup:"Rechargez pour débloquer"},Vgn={title:"Paramètres du chat",protocol:"Protocole",unlimited:"Illimité",fields:{memory_limit:{label:"Mémoire du chat"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"Niveau de service",options:{standard:"Standard",priority:"Prioritaire",flex:"Flexible"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"p. ex. 2000"},stop_sequences:{label:"Stop Sequences",placeholder:"Séparées par des virgules, ex. END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"Saisissez un system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"Implicite",explicit:"Explicite"}},image_size:{label:"Résolution de lâimage"},image_resolution:{label:"Résolution"},image_quality:{label:"Qualité de lâimage",options:{Auto:"Auto",auto:"Auto",low:"Basse",medium:"Moyenne",high:"Haute"}},video_ratio:{label:"Format dâimage"},video_resolution:{label:"Résolution vidéo"},video_duration_seconds:{label:"Durée"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"Nombre dâimages"},image_aspect_ratio:{label:"Format dâimage"},reasoning_effort:{label:"Intensité de raisonnement",options:{none:"Désactivé",minimal:"Minimale",low:"Faible",medium:"Moyenne",high:"Ãlevée",xhigh:"Très élevée",max:"Maximale"}},reasoning_pro:{label:"Mode Pro"},reasoning_context:{label:"Contexte de raisonnement",options:{auto:"Auto",current_turn:"Tour en cours",all_turns:"Tous les tours"}},reasoning_enabled:{label:"Réflexion"},reasoning_always:{label:"Réflexion",value:"Toujours activé"}}},Kgn={estimating:"estimation...",settling:"règlement...",input:"entrée",output:"sortie",milliseconds:"ms",realCost:"Coût réel",latency:"Latence",logDetail:"Détail du log"},Ggn={copied:"Lien de lâimage copié",expired:"Le lien de lâimage a expiré. Copiez le lien pour la rouvrir ou régénérez-la.",attachment:"[image jointe]"},Wgn={message:"Ce chat est facturé à votre wallet PAYG",balance:"Solde",billingLink:"Facturation",dismiss:"Fermer"},Ygn={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},Qgn={trigger:"Copier comme code",copied:"Copié comme {{format}}",failed:"Ãchec de la copie",failedDescription:"Lâautorisation du presse-papiers peut être bloquée par le navigateur."},Xgn={interrupted:"[Interrompu]",sending:"envoi"},Zgn={title:"Processus de raisonnement",duration:"A raisonné pendant {{seconds}}s"},Jgn={title:"La génération vidéo arrive bientôt",body:"Ce modèle est listé pour découverte, mais lâenvoi vidéo nâest pas encore activé.",switchToText:"Passer à un modèle texte"},ehn={imageGenerating:"Génération de lâimage",videoGenerating:"Génération de la vidéo",stage:{queued:"En file dâattente",routing:"Routage",generating:"Génération",storing:"Stockage",settling:"Règlement"}},thn={INSUFFICIENT_CREDITS:"Solde insuffisant",RATE_LIMITED:"Trop de requêtes",rate_limit_error:"Trop de requêtes",MODEL_NO_VISION:"Ce modèle nâaccepte pas les images en entrée",CONTENT_REFUSED:"Le modèle a refusé cette requête",EMPTY_RESPONSE:"Le modèle a renvoyé une réponse vide",upstream_error:"Erreur du service en amont",overloaded_error:"Le service en amont est surchargé",upstream_invalid_json:"Réponse du service en amont mal formée",stream_read_error:"Flux de réponse interrompu",invalid_api_key:"Ãchec dâauthentification auprès du service en amont",model_unavailable:"Modèle temporairement indisponible",no_image:"Aucune image nâa été générée",no_body:"Aucune réponse du service en amont",http_error:"Ãchec de la requête",session_create_failed:"Ãchec de la création de la session"},nhn={title:"Rechargez pour débloquer ce modèle",body:"Il est réservé aux comptes ayant rechargé. N'importe quel montant le débloque aussitôt, et le solde reste facturé à l'usage.",cta:"Recharger"},ahn={actions:Lgn,composer:Ugn,errors:Bgn,empty:Fgn,sidebar:zgn,header:qgn,modelSelector:Hgn,settings:Vgn,metrics:Kgn,image:Ggn,payg:Wgn,earmark:Ygn,copyAsCode:Qgn,status:Xgn,thinking:Zgn,video:Jgn,media:ehn,errorCodes:thn,topupLock:nhn},ohn="Chargement...",shn="Compte",rhn="Langue",ihn="Se connecter",lhn="Se déconnecter",chn="Déconnexion...",dhn="Enregistrer",uhn="Enregistrement...",mhn="Enregistré.",phn="Retour",fhn="Réessayer",ghn="5 % de remise sur les frais de service lors de la recharge.",hhn="Enregistrer",yhn="Annuler",vhn="Effacer",bhn="Réinitialiser",xhn="Copié",$hn="Ãchec de la copie",whn="Fermer",khn="Total",Chn={timestamp:"Horodatage",local:"Heure locale",relative:"Relatif"},Shn="Copier",Ahn={title:"Ouvrir dans votre navigateur",description:"Vous consultez cette page dans le <b>navigateur intégré d'une application</b>, où <b>la connexion Google et la vérification humaine ne fonctionnent pas</b>. Ouvrez-la dans le navigateur de votre système pour continuer.",hintWechat:"Appuyez sur le menu ··· en haut à droite et
795choisissez « Ouvrir dans le navigateur ».",hintGeneric:"Utilisez le menu en haut à droite et choisissez « Ouvrir dans le navigateur / Safari ».",copyLink:"Copier le lien",continueAnyway:"Continuer quand même"},Thn="Tous",Rhn="Actif",Phn="Facultatif",_hn="Retirer",jhn={loading:ohn,account:shn,language:rhn,signIn:ihn,signOut:lhn,signingOut:chn,saveChanges:dhn,saving:uhn,saved:mhn,back:phn,retry:fhn,topUpPromo:ghn,save:hhn,cancel:yhn,clearAll:vhn,reset:bhn,copied:xhn,copyFailed:$hn,dismiss:whn,total:khn,time:Chn,copy:Shn,inAppBrowser:Ahn,all:Thn,active:Rhn,optional:Phn,remove:_hn},Nhn="Tableau de bord",Dhn="Surveillez les credits, lâusage et la santé du gateway depuis une seule console.",Mhn="Créer une API key",Ehn={creditBalance:"Solde de credit",requestsToday:"Requêtes aujourdâhui",activeApiKeys:"API keys actives"},Ihn={title:"Tendance dâusage",description:"Requêtes et credit facturé sur les 14 derniers jours.",viewUsage:"Voir lâusage",loading:"Chargement de la tendance",empty:"Aucun usage pour le moment",emptyDescription:"Lâusage apparaîtra ici dès que des requêtes arriveront."},Ohn={title:"Activité de credit",description:"Credit facturé par jour sur les 90 derniers jours.",total:"Total sur 90 jours",loading:"Chargement de lâactivité",activeDays:"{{count}} jours actifs sur les {{days}} derniers jours",less:"Moins",more:"Plus"},Lhn={title:"Aperçu de lâusage",description:"Une vue compacte de lâintensité des dépenses, du volume de tokens et du modèle le plus utilisé.",activeDays:"Jours actifs",ofDays:"sur {{days}} jours",avgDailyCredit:"Credit quotidien moyen",nonZeroDays:"sur les jours actifs",peakDay:"Jour de pointe",noPeak:"Aucun usage pour le moment",tokens:"Tokens",topModel:"Modèle principal",creditShare:"Part du credit facturé"},Uhn={title:"Santé rapide",requests7d:"Requêtes sur 7 jours",creditToday:"Credit dépensé aujourdâhui",credit7d:"Credit dépensé sur 7 jours"},Bhn={title:"Requêtes récentes",description:"Derniers appels gateway pour vos keys.",viewRecords:"Voir les enregistrements",table:{label:"Requêtes récentes",model:"Modèle",status:"Statut",tokens:"Tokens",credit:"Credit",time:"Heure",apiKey:"API key"},empty:"Aucune requête pour le moment",emptyDescription:"Créez une API key, envoyez une requête, et les appels récents apparaîtront ici."},Fhn={title:"Envoyer votre première requête",description:"Compatible OpenAI. Créez une key, définissez {{env}}, puis appelez le gateway."},zhn={credit:"Credit",requests:"Requêtes"},qhn={title:Nhn,description:Dhn,createApiKey:Mhn,cards:Ehn,usageTrend:Ihn,activity:Ohn,usageMix:Lhn,quickHealth:Uhn,recent:Bhn,firstRequest:Fhn,tooltip:zhn},Hhn="Sélectionner toutes les lignes",Vhn="Sélectionner la ligne {{row}}",Khn="Ãchec du chargement",Ghn="Aucune donnée",Whn="Aucun enregistrement à afficher.",Yhn="Plus de détails",Qhn="{{count}} détails supplémentaires",Xhn="Ouvrir les détails",Zhn={selectAllRows:Hhn,selectRow:Vhn,errorTitle:Khn,emptyTitle:Ghn,emptyDescription:Whn,moreDetails:Yhn,moreDetailsWithCount:Qhn,openRow:Xhn},Jhn="Dernière heure",eyn="Aujourdâhui",tyn="Hier",nyn="7 derniers jours",ayn="30 derniers jours",oyn="Ce mois-ci",syn="Par mois",ryn="Personnalisé",iyn="Toute la période",lyn="Sélectionner une date",cyn="Annuler",dyn="Appliquer",uyn="La date de début doit précéder la date de fin.",myn="Préréglages de période",pyn="Mois précédent",fyn="Mois suivant",gyn={last1h:Jhn,today:eyn,yesterday:tyn,last7d:nyn,last30d:ayn,thisMonth:oyn,byMonth:syn,custom:ryn,all:iyn,selectDate:lyn,cancel:cyn,apply:dyn,reversedError:uyn,presetsAriaLabel:myn,previousMonth:pyn,nextMonth:fyn},hyn="Compte indisponible",yyn="Initialisation du compte",vyn={title:"Compte suspendu",description:"Ce compte peut encore se connecter, mais lâaccès à la console et les requêtes gateway sont suspendus.",detail:"Si cela vous semble être une erreur, contactez support depuis lâemail de ce compte."},byn={accountUnavailable:hyn,accountInitializing:yyn,accountRestricted:vyn},xyn="Tokens gratuits",$yn="Quota quotidien de tokens gratuits pour certains modèles â il se renouvelle automatiquement. Aucun débit sur votre portefeuille.",wyn="Impossible de charger votre quota de tokens gratuits.",kyn="Tous les modèles",Cyn="La campagne se termine le {{date}}",Syn={daily:"Quotidien",weekly:"Hebdomadaire"},Ayn={daily:"Renouvelé chaque jour",weekly:"Renouvelé chaque semaine",localTime:"votre heure locale {{time}}",countdown:"prochain renouvellement dans {{duration}}",refreshingSoon:"renouvellement imminent"},Tyn={title:"Aucune campagne de tokens gratuits en cours",description:"Lorsqu'une campagne de tokens gratuits est active, votre quota quotidien s'affiche ici."},Ryn={title:"L'attribution de tokens gratuits est suspendue sur votre compte",body:"Ce compte semble faire partie d'un schéma d'inscriptions en masse ; l'attribution gratuite est donc suspendue pour le moment. S'il s'agit d'une erreur, contactez-nous à "},Pyn="tokens",_yn="Il reste {{value}} tokens aujourd'hui",jyn={label:"M'avertir par e-mail à l'épuisement",hint:"Recevez un e-mail lorsque vos tokens gratuits du jour sont épuisés."},Nyn={crg_freetoken_daily_cn5:"Modèles chinois · tokens gratuits quotidiens"},Dyn={title:xyn,description:$yn,loadFailed:wyn,allModels:kyn,campaignEnds:Cyn,cadence:Syn,refresh:Ayn,empty:Tyn,paused:Ryn,tokensUnit:Pyn,remainingToday:_yn,emailToggle:jyn,campaigns:Nyn}
795,Myn="Journaux",Eyn="Inspectez le coût, la latence, les tokens, le statut et les signaux de routing par requête.",Iyn={copiedCurl:"curl copié",copiedId:"ID de requête copié",copyCurl:"Copier en curl",copyFailed:"Ãchec de la copie",copyId:"Copier lâID de requête",menu:"Actions de ligne",openTab:"Ouvrir dans un nouvel onglet"},Oyn={prompt:"Prompt",ratio:"Taux de hit",read:"Lecture cache",title:"Taux de cache hit"},Lyn={confirm:"Annuler le job",failed:"Ãchec de lâannulation du job",keep:"Conserver",message:"Ce job est encore en file dâattente. Lâannuler empêche son traitement ; aucun frais ne sera appliqué.",success:"Job annulé",title:"Annuler le job ?",pending:"Annulation..."},Uyn={cacheHit:"Cache touché",cost:"Coût",ip:"IP",latency:"Latence",model:"Modèle",source:"Source",status:"Statut",stream:"Streaming",time:"Heure",tokens:"Tokens",tps:"Throughput"},Byn={trigger:"Réglages des colonnes"},Fyn={body:"Envoyez une requête via OneHop et elle apparaîtra ici.",title:"Aucun log sur cette période"},zyn={all:"Tout",apiKey:"API key",cost:"Coût (USD)",desktopDateRangeAria:"Sélectionner la plage de dates sur ordinateur",finishReason:"Raison de fin",latency:"Latence (s)",max:"Max.",min:"Min.",mobileDateRangeAria:"Sélectionner la plage de dates sur mobile",model:"Modèle",modelsSelected:"{{count}} sélectionnés",more:"Plus de filtres",refresh:"Actualiser",request:"Rechercher par ID de requête",requestIdLabel:"ID de requête",status:"Statut",stream:"Streaming",time:"Heure",type:"Type",mobileTitle:"Filtres"},qyn={requests:"requêtes sur cette page",times:"heures affichées en"},Hyn={rowsPer:"Lignes"},Vyn={all:"Toute la période",custom:"Personnalisée",last1h:"Dernière heure",last30d:"30 derniers jours",last7d:"7 derniers jours",thisMonth:"Ce mois-ci",today:"Aujourdâhui",yesterday:"Hier"},Kyn={title:"Client",unknown:"Aucun user-agent signalé",unknownShort:"Inconnu"},Gyn={output:"Tokens de sortie",rate:"Débit",title:"Throughput",window:"Fenêtre de génération"},Wyn={title:"Requête",openDetail:"Ouvrir le détail de la requête",copy:"Copier lâID",copied:"Copié",copyFailed:"Ãchec de la copie",close:"Fermer",loading:"Chargementâ¦",response:"Réponse",sections:{request:"Requête",routing:"Routage",tokens:"Tokens",cost:"Décomposition du coût",performance:"Performance",error:"Erreur",outcome:"Résultat",multimodal:"Multimodalité"},fields:{requestId:"ID de requête",time:"Heure",apiKey:"API key",userAgent:"User-Agent",billingMode:"Mode de facturation",onehopModel:"Modèle OneHop",endpoint:"Endpoint",firstToken:"Premier token",total:"Durée totale",throughput:"Throughput",stream:"Streaming",clientIp:"IP client",finishReason:"Raison de fin",mediaType:"Type de média",imageCount:"Images",imageSize:"Taille",errorCode:"Code erreur",errorMessage:"Message dâerreur",requestedModel:"Modèle demandé"},billingMode:{token:"Par token",per_request:"Par requête",image:"Par image"},timeline:{heading:"Cycle de vie",received:"Requête reçue",routed:"Routée",failed:"Ãchouée",generated:"Générée",metered:"Mesurée",billed:"Facturée"},downloadMedia:"Télécharger"},Yyn={success:"réussi",completed:"terminé",failed:"échoué",pending:"en attente",repairing:"réparation",queued:"en file",running:"en cours",cancelled:"annulé",expired:"expiré"},Qyn={chat:"Chat",image:"Image",video:"Vidéo"},Xyn={stop:"Stop",length:"Limite de longueur",tool_calls:"Appels dâoutils",content_filter:"Filtre de contenu",error:"Erreur"},Zyn={true:"Streaming",false:"Sans streaming"},Jyn={title:"Décomposition du coût"},evn={title:"Décomposition des tokens",prompt:"Entrée",completion:"Sortie",imageOutput:"Tokens de sortie dâimage",cacheRead:"Lecture cache",cacheWrite:"Ãcriture cache",cacheWrite5m:"Ãcriture cache 5m",cacheWrite1h:"Ãcriture cache 1h",total:"Total"},tvn={timestamp:"Horodatage",local:"Heure locale",relative:"Relatif"},nvn={inputCost:"Coût dâentrée",outputCost:"Coût de sortie",cacheReadCost:"Coût de lecture cache",cacheWriteCost:"Coût dâécriture cache",inputPrice:"Prix dâentrée",outputPrice:"Prix de sortie",total:"Total",officialPrice
795:"Prix officiel",saved:"Ãconomie",factor:{textInput:"Entrée texte",textOutput:"Sortie texte",imageInput:"Entrée image",imageOutput:"Sortie image",perCallImage:"Par image",videoPerSecond:"Vidéo",videoPerCall:"Vidéo",cacheRead:"Lecture cache",cacheWrite:"Ãcriture cache",cacheWrite5m:"Ãcriture cache (5m)",cacheWrite1h:"Ãcriture cache (1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ image",perSecond:"/ s",perCall:"/ appel"},promoBasis:"Avant promo",promoSaved:"Ãconomies promo",freeCovered:"Allocation gratuite ({{tokens}} tokens)",freeCoveredNoCount:"Allocation gratuite"},avn={noPreview:"Aucun aperçu disponible",video:"Vidéo"},ovn={free:"Gratuit"},svn={title:Myn,description:Eyn,actions:Iyn,cacheHit:Oyn,cancelJob:Lyn,col:Uyn,columns:Byn,empty:Fyn,filter:zyn,meta:qyn,pager:Hyn,range:Vyn,source:Kyn,tps:Gyn,drawer:Wyn,status:Yyn,type:Qyn,finishReason:Xyn,stream:Zyn,costBreakdown:Jyn,tokensBreakdown:evn,time:tvn,userCost:nvn,export:{label:"Exporter en CSV",exporting:"Exportationâ¦",done:"{{n}} lignes exportées.",truncated:"Les {{n}} premières lignes ont été exportées. Réduisez la période pour exporter le reste.",failed:"Ãchec de l'exportation. Veuillez réessayer."},media:avn,cost:ovn},rvn="Modèles",ivn="Parcourez tous les modèles disponibles, leur fenêtre de contexte, leurs prix entrée/sortie et leurs capacités, puis ajoutez vos favoris.",lvn={all:"Tous",favorites:"Mes favoris",benefit:"Avantage",hot:"Populaire",free:"Free"},cvn={capability:"Type",allCapabilities:"Tous les types",capability_text:"Texte",capability_image:"Image",capability_audio:"Audio",capability_video:"Vidéo",provider:"Fournisseur",allProviders:"Tous les fournisseurs",protocol:"Protocole",allProtocols:"Tous les protocoles",sort:"Trier",search:"Rechercher",searchPlaceholder:"Modèle / fournisseur",allContexts:"Toute longueur",context:"Contexte",mobileTitle:"Filtres"},dvn="En vedette",uvn="Plus récents",mvn="Top de la semaine",pvn="Nom (A-Z)",fvn="Prix croissant",gvn="Prix décroissant",hvn="Longueur de contexte",yvn="Latence",vvn="Débit",bvn="OpenAI Chat",xvn="OpenAI Responses",$vn="Anthropic",wvn="Vertex AI",kvn="OpenAI Images",Cvn="OpenAI Video",Svn={label:"Modèles",model:"Modèle",provider:"Fournisseur",capabilities:"Capacités",context:"Contexte",price:"Prix",discount:"Remise",action:"Action",tryIt:"Essayer",type:"Type",maxOutput:"Sortie max.",copyId:"Copier lâID du modèle",copied:"Copié",usage:"Utilisation",stability:"Stabilité",protocols:"Protocoles",openDetail:"Open model detail"},Avn="Populaire",Tvn="Avantage",Rvn={add:"Ajouter aux favoris",remove:"Retirer des favoris"},Pvn={favorites:"Aucun favori pour lâinstant",noMatch:"Aucun modèle correspondant"},_vn="Texte",jvn="Image",Nvn="Fichier",Dvn="Vidéo",Mvn="Audio",Evn="Embeddings",Ivn="Vision",Ovn="Appels dâoutils",Lvn="Mode JSON",Uvn="Génération dâimages",Bvn="Ãdition dâimages",Fvn="Texte",zvn="Image",qvn="Vidéo",Hvn="Audio",Vvn="Embedding",Kvn="Officiel",Gvn="Kiro",Wvn="dès",Yvn="/ appel",Qvn="/ s",Xvn="/ 1M",Zvn="Rapide",Jvn="Free",ebn="Coming Soon",tbn="Free",nbn={ariaLabel:"Devise des prix",usd:"USD",rmb:"yuan (Â¥)",settlement:"Prix affichés en yuans à un taux fixe de {{rate}}, à titre indicatif ; votre portefeuille est toujours débité en USD selon l'usage réel."},abn="Recharge requise",obn={title:rvn,description:ivn,tabs:lvn,filters:cvn,sort_featured:dvn,sort_newest:uvn,sort_top_weekly:mvn,sort_name:pvn,sort_price_asc:fvn,sort_price_desc:gvn,sort_context:hvn,sort_latency:yvn,sort_throughput:vvn,protocol_openai_chat:bvn,protocol_openai_responses:xvn,protocol_anthropic_messages:$vn,protocol_google_vertex_ai:wvn,protocol_openai_images:kvn,protocol_openai_sora:Cvn,table:Svn,badge_hot:Avn,badge_benefit:Tvn,favorite:Rvn,empty:Pvn,modality_text:_vn,modality_image:jvn,modality_file:Nvn,modality_video:Dvn,modality_audio:Mvn,modality_embeddings:Evn,capability_vision:Ivn,capability_tool_calling:Ovn,capability_json_mode:Lvn,capability_image_generation:Uvn,capability_image_edit:Bvn,type_text:Fvn,type_image:zvn,type_video:qvn,type_audio:Hvn,type_embedding:Vvn,provider_official:Kvn,provider_kiro:Gvn,price_from:Wvn,price_perCall:Yvn,price_perSec:Qvn,price_per1m:Xvn,price_fast:Zvn,badge_free:Jvn,badge_unavailable:ebn,price_free:tbn,currency:nbn,badge_requiresTopup:abn},sbn={main:"Navigation principale",utility:"Navigation utilitaire",console:"Navigation de la console",openNavigation:"Ouvrir la navigation",collapse:"Réduire la barre latérale",expand:"Développer la barre latérale"},rbn={platform:"Console",chat:"Chat",models:"Modèles",logs:"Journaux",jobs:"Tâches",apiKeys:"API keys",usage:"Utilisation",billing:"Facturation",freeTokens:"Tokens gratuits",referrals:"Parrainage",settings:"Paramètres",admin:"Admin",balance:"Solde",helpSupport:"Aide et support",announcements:"Annonces",announcementsTitle:"Annonces",announcementsEmpty:"Aucune annonce pour lâinstant. Revenez bientôt.",announcementsTicketUnread:"{{count}} ticket(s) avec de nouvelles réponses",support:"Assistance",tasks:"Missions",tagNew:"NOUVEAU"},ibn={staff:"Ãquipe"},lbn={dashboard:"Tableau de bord",users:"Utilisateurs",billing:"Facturation plateforme",usage:"Utilisation plateforme",rateLimits:"Rate limits",access:"Accès",staff:"Admins",growth:"Croissance",models:"Modèles",announcements:"Annonces",upstream:"Upstream",auditLogs:"Journaux dâaudit",webhooks:"Webhooks",supp
795ort:"Support",campaigns:"Campaigns",domainRules:"Email domains"},cbn={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},dbn={aria:sbn,public:{models:"Modèles",pricing:"Tarifs",docs:"Docs",blog:"Blog",changelog:"Notes de version"},console:rbn,adminGroups:ibn,admin:lbn,notifications:cbn},ubn={back:"Retour",done:"Terminé",next:"Suivant",stepOf:"{{current}} / {{total}}"},mbn={balance:{body:"Rechargez au fil de lâusage. Le solde non consommé est remboursable à tout moment.",title:"Votre solde"},keys:{body:"Créez une key ici, puis pointez nâimporte quel outil vers OneHop.",title:"Créez votre première API key"},models:{body:"Voyez sur une seule page tous les modèles appelables et le prix de chacun.",cta:"Ouvrir les modèles",title:"Parcourir les modèles"}},pbn={body:"Un URL pour tous les modèles. En 30 secondes, on vous montre les trois points clés.",skip:"Ignorer",start:"Commencer",title:"Bienvenue sur OneHop"},fbn={nav:ubn,steps:mbn,welcome:pbn},gbn="Failed to load",hbn="Nothing here yet.",ybn="Plus de détails",vbn={failedLoad:gbn,emptyDescription:hbn,moreDetails:ybn},bbn="Tous",xbn="Succès",$bn="En attente",wbn="Réparation",kbn="Ãchec",Cbn="Remboursé",Sbn="Actif",Abn="Désactivé",Tbn="Ãpuisé",Rbn="Réservé",Pb
795n="Utilisé",_bn="Suspendu",jbn="Supprimé",Nbn="Normal",Dbn="Sous surveillance",Mbn="Bloqué",Ebn="Accordé",Ibn="Annulé",Obn="Expiré",Lbn="Refusé",Ubn="Brouillon",Bbn="Publié",Fbn="Déprécié",zbn="Archivé",qbn="Masqué",Hbn="Créé",Vbn="Checkout ouvert",Kbn="Payé",Gbn="Annulé",Wbn="OpenAI Chat",Ybn="OpenAI Responses",Qbn="Anthropic Messages",Xbn="Google Vertex AI",Zbn="OpenAI Images",Jbn="Frais dâusage",exn="Bonus dâinscription",txn="Bonus promo",nxn="Bonus de parrainage",axn="Bonus de compensation",oxn="Bonus de recharge",sxn="Ajustement manuel",rxn="Achat de credit",ixn="Paiement",lxn="Bonus dâinscription",cxn="Coupon",dxn="Crédit admin",uxn="Usage API",mxn="Bonus dâinscription",pxn="Crédit manuel",fxn="Sync",gxn="Streaming",hxn="Facturation token",yxn="Facturation requête",vxn="Facturation image",bxn="Reasoning faible",xxn="Reasoning moyen",$xn="Reasoning élevé",wxn="Sans objet",kxn="Inconnu",Cxn="Gelé",Sxn="Libéré",Axn="Annulé",Txn="Partiellement annulé",Rxn="Ignoré",Pxn={all:bbn,success:xbn,pending:$bn,repairing:wbn,failed:kbn,refunded:Cbn,active:Sbn,disabled:Abn,exhausted:Tbn,reserved:Rbn,redeemed:Pbn,suspended:_bn,deleted:jbn,normal:Nbn,watchlisted:Dbn,blocked:Mbn,granted:Ebn,reversed:Ibn,expired:Obn,denied:Lbn,draft:Ubn,published:Bbn,deprecated:Fbn,archived:zbn,public:"Public",hidden:qbn,created:Hbn,checkout_opened:Vbn,paid:Kbn,canceled:Gbn,openai_chat:Wbn,openai_responses:Ybn,anthropic_messages:Qbn,google_vertex_ai:Xbn,openai_images:Zbn,usage_charge:Jbn,bonus_signup_grant:exn,bonus_promo_grant:txn,bonus_referral_grant:nxn,bonus_compensation_grant:axn,bonus_topup_grant:oxn,manual_adjustment:sxn,credit_purchase:rxn,payment:ixn,signup:lxn,coupon:cxn,admin:dxn,api:uxn,signup_bonus:mxn,manual:pxn,sync:fxn,stream:gxn,token:hxn,request:yxn,image:vxn,low:bxn,medium:xxn,high:$xn,not_applicable:wxn,unknown:kxn,frozen:Cxn,released:Sxn,cancelled:Axn,partially_reversed:Txn,skipped:Rxn},_xn="{{count}} par page",jxn="{{count}} au total",Nxn={perPage:_xn,total:jxn},Dxn="Inviter et gagner",Mxn="Partagez votre lien personnalisé. Lorsquâun utilisateur invité recharge son compte, les gains de chacun sont consignés en toute clarté.",Exn="Impossible de charger les données de parrainage",Ixn="Votre lien dâinvitation",Oxn="Partager",Lxn="Invitation copiée. Collez-la dans WeChat pour partager.",Uxn="Copier",Bxn="Copié",Fxn="WeChat",zxn="X",qxn="Telegram",Hxn="Reddit",Vxn="LinkedIn",Kxn="WhatsApp",Gxn="E-mail",Wxn="Facebook",Yxn={default:{title:"Appelez tous les modèles AI avec une seule API OneHop",body:"Inscrivez-vous avec mon lien dâinvitation : rechargez dans les {{firstWindowDays}} jours et nous recevons chacun {{percent}}% de remise."},x:{title:"Une API pour tous les modèles AI ð¤",body:"Rechargez dans les {{firstWindowDays}} jours avec mon lien et nous récupérons chacun {{percent}}%. ð"},telegram:{title:"Développez avec tous les modèles AI via OneHop",body:"Utilisez mon lien dâinvitation : une première recharge dans les {{firstWindowDays}} jours nous rapporte à tous les deux {{percent}}% de crédit de parrainage."},whatsapp:{title:"Tous les modèles AI avec OneHop",body:"Rejoignez OneHop avec mon lien dâinvitation. Rechargez dans les {{firstWindowDays}} jours et nous recevons tous les deux {{percent}}% de remise."},reddit:{title:"OneHop â une API pour tous les modèles AI. Mon invitation nous donne à tous les deux {{percent}}% sur votre première recharge",body:"Rechargez dans les {{firstWindowDays}} jours et nous recevons tous les deux {{percent}}% de crédit de parrainage."},email:{title:"Invitation à OneHop â tous les modèles AI via une seule API",body:`Bonjour, 796 797Jâutilise OneHop pour appeler tous les grands modèles AI via une seule API. Inscrivez-vous avec mon lien dâinvitation : après votre première recharge, nous recevrons tous les deux du crédit de parrainage. 798 799Paliers de récompense : {{tiers}}. 800 801Merci !`},wechat:{title:"OneHop â tous les modèles AI via une seule API",body:"Inscrivez-vous avec mon lien dâinvitation. Rechargez dans les {{firstWindowDays}} jours et nous recevrons tous les deux {{percent}}% de crédit de parrainage."}},Qxn="Les gains sont visibles dès le paiement, mais ils sont dâabord gelés pour couvrir la fenêtre de remboursement ; à expiration, ils sont libérés sous forme de credit de récompense de parrainage OneHop.",Xxn="Lib
801éré dans {{days}} jours.",Zxn={referrer:"Parrain",referee:"Filleul"},Jxn={referrer:" : touchez du credit de parrainage lorsquâune personne que vous invitez recharge â {{tiers}}.",referee:" : inscrivez-vous avec le lien, puis rechargez pour gagner vous aussi â {{tiers}}."},e$n={dayRange:"jours {{fromDay}}-{{untilDay}}",dayOpenEnded:"à partir du jour {{fromDay}}"},t$n="Total gagné",n$n="Gains de parrainage libérés",a$n="Gains de parrainage gelés",o$n="Personnes invitées",s$n="Invitations valides",r$n="Récompenses de filleul libérées",i$n="Récompenses de filleul gelées",l$n="Annulé / récupéré",c$n="Personnes que vous avez invitées",d$n="Détail des gains",u$n={user:"Utilisateur",joined:"Date dâinscription",topups:"Recharges",earned:"Vos gains",frozen:"Gelé",date:"Date",event:"Ãvénement",topupAmount:"Recharge du filleul",rate:"Taux",releaseAt:"Date de libération",cashback:"Gain",status:"Statut"},m$n={title:"Aucune invitation pour le moment",description:"Partagez votre lien pour commencer à gagner."},p$n={inviteeSignedUp:"Le filleul sâest inscrit",youSignedUp:"Vous vous êtes inscrit via une invitation",inviteePaid:"Le filleul a effectué une dépense",youPaid:"Vous avez effectué une dépense en tant que filleul"},f$n={frozen:"Gelé",released:"Libéré",cancelled:"Annulé",partially_reversed:"Partiellement récupéré",reversed:"Récupéré",failed:"Ãchec",skipped:"Ignoré"},g$n={title:Dxn,description:Mxn,error:Exn,yourLink:Ixn,shareVia:Oxn,wechatCopied:Lxn,copy:Uxn,copied:Bxn,wechat:Fxn,x:zxn,telegram:qxn,reddit:Hxn,linkedin:Vxn,whatsapp:Kxn,email:Gxn,facebook:Wxn,share:Yxn,offer:Qxn,releaseDelay:Xxn,role:Zxn,roleOffer:Jxn,policy:e$n,totalEarned:t$n,availableEarned:n$n,frozenEarned:a$n,invited:o$n,active:s$n,availableReceived:r$n,frozenReceived:i$n,cancelledReversed:l$n,peopleYouInvited:c$n,history:d$n,col:u$n,empty:m$n,event:p$n,status:f$n},h$n="Paramètres",y$n="Gérez les préférences du compte et les valeurs par défaut de la console.",v$n="Connecté en tant que {{email}}",b$n="Nom affiché",x$n="Langue",$$n="Fuseau horaire",w$n="Impossible de charger le profil",k$n="Impossible dâenregistrer",C$n="Abandonner les modifications ?",S$n="Vous avez des modifications non enregistrées. Quitter maintenant les abandonnera.",A$n="Abandonner",T$n="Continuer à modifier",R$n={title:h$n,description:y$n,signedInAs:v$n,displayName:b$n,locale:x$n,timezone:$$n,failedLoad:w$n,failedSave:k$n,discardTitle:C$n,discardMessage:S$n,discardConfirm:A$n,keepEditing:T$n},P$n="Mur de missions",_$n="Parlez de OneHop à votre audience et gagnez du crédit d'essai. Chaque soumission est vérifiée à la main.",j$n="Lien vers votre publication",N$n="https://â¦",D$n="Envoyer",M$n="Envoyé â nous examinons cela sous peu.",E$n="Liens acceptés : {{hosts}}",I$n="Refusé précédemment : {{reason}}. Corrigez et renvoyez.",O$n={pending:"En cours d'examen",approved:"Crédité",rejected:"Refusé",active:"Actif"},L$n={title:"Aucune mission pour l'instant",description:"Revenez bientôt â nous lançons ces campagnes régulièrement."},U$n={x_quote:{title:"Citez-nous sur X",description:"Citez le post épinglé de @OneHopAI en ajoutant votre propre avis.",rules:["Votre compte X doit avoir au moins 6 mois et 10 abonnés ou plus.","Envoyez le lien de votre propre citation, pas celui du post d'origine.","Le crédit arrive dans les 2 heures suivant la validation."]},youtube_tutorial:{title:"Publiez un tutoriel YouTube",description:"Une vidéo de 6 minutes ou plus montrant comment vous avez branché OneHop sur votre agent.",rules:["Envoyez le lien de la vidéo une fois publiée.","Votre chaîne YouTube doit avoir 50 abonnés ou plus.","Une seule fois par compte.","Le crédit arrive dans les 2 heures suivant la validation."]},short_video:{title:"Publiez une vidéo courte",description:"Un short de 40 secondes ou plus sur TikTok ou YouTube qui mentionne votre configuration OneHop.",rules:["Envoyez le lien de la vidéo une fois publiée.","Le crédit arrive dans les 2 heures suivant la validation."]},github_readme:{title:"Mettez OneHop dans votre README GitHub",description:"Ajoutez un crédit OneHop au README d'un dépôt qui vous appartient. Chaque rechargement ultérieur rapporte 15% de plus.",rules:["Envoyez le lien du dépôt une fois le README en ligne.","C'est permanent, pas ponctuel : chaque rechargement retient le plus avantageux entre notre bonus standard et vos 15%.","Le texte à copier se trouve ci-dessous."]}},B$n={load:"Impossible de charger le mur de missions",generic:"Envoi impossible",urlRequired:"Collez d'abord le lien de votre publication.",urlTooLong:"Ce lien est trop long.",urlMalformed:"Cela ne ressemble pas à un lien valide.",hostNotAllowed:"Cette mission n'accepte que les liens des plateformes listées ci-dessus.",notAPost:"Indiquez le lien de la publication ou de la vidéo, pas d'un profil ou d'une page d'accueil.",alreadySubmitted:"Vous avez déjà soumis cette mission.",notAvailable:"Cette mission n'est pas disponible actuellement.",busy:"Nous avons atteint notre capacité de vérification du jour. Réessayez demain.",emailUnverified:"Vérifiez d'abord votre adresse e-mail.",accountTooNew:"Votre compte n'est pas encore assez ancien pour cela.",riskFlagged:"Ce compte ne peut pas participer pour le moment. Contactez le support si vous pensez que c'est une erreur.",accountInactive:"Ce compte n'est pas actif.",deviceAlreadyClaimed:"Un autre compte sur cet appareil a déjà participé."},F$n="Merci à [OneHop]({{url}}) de sponsoriser ce projet ! OneHop vous donne une seule clé API compatible OpenAI pour des centaines de modèles de premier plan â GPT, Claude, Gemini, DeepSeek, Kimi et Qwen. Plus de comptes fournisseurs à jongler, aucun changement de code pour changer de modèle, et vous ne payez que ce que vous consommez. â {{domain}}",z$n="Copier ce texte",q$n={title:P$n,description:_$n,urlLabel:j$n,urlPlaceholder:N$n,submit:D$n,submitted:M$n,allowedHosts:E$n,rejectedHint:I$n,status:O$n,empty:L$n,item:U$n,error:B$n,sponsorBlurb:F$n,copyBlurb:z$n},H$n="Discutez avec nous",V$n="Tickets dâassistance",K$n="Ouvrez un ticket, notre équipe vous répondra rapidement.",G$n="Nouveau ticket",W$n={subject:"Objet",category:"Type",status:"Statut",updated:"Mis à jour",user:"User"},Y$n={billing:"Facturation",technical:"Technique",account:"Compte",other:"Autre"},Q$n={open:"Ouvert",pending:"En attente",resolved:"Résolu",closed:"Fermé"},X$n={allStatuses:"Tous les statuts",allCategories:"All categories",search:"Search email or subject"},Z$n={subject:"Objet",subjectPlaceholder:"Décrivez brièvement le problème",category:"Type",message:"Votre message",messagePlaceholder:"Dites-nous ce qui se passeâ¦",attachments:"Pièces jointes",addAttachment:"Ajouter un fichier",submit:"Envoyer le ticket",cancel:"Annuler"},J$n={you:"Vous",support:"Assistance",system:"Système",replyPlaceholder:"Rédiger une réponseâ¦",send:"Envoyer",closedNotice:"Ce ticket est fermé. Ouvrez un nouveau ticket si vous avez encore besoin dâaide.",sendHint:"Appuyez sur â/Ctrl + Entrée pour envoyer",back:"Retour aux tickets",systemStatus:{open:"Ticket rouvert",pending:"Ticket marqué comme en attente de votre réponse",resolved:"Ticket marqué comme résolu",closed:"Ticket fermé"}},ewn={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},twn="Charger plus",nwn={created:"Ticket envoyé",replied:"Réponse envoyée",statusUpdated:"Status updated",error:"Une erreur est survenue. Réessayez"},awn="Ticket introuvable ou supprimé.",own={title:"Aucun ticket pour le moment",body:"Un problème ? Ouvrez un ticket et nous vous aiderons.",cta:"Ouvrir votre premier ticket"},swn={liveChat:H$n,title:V$n,subtitle:K$n,newTicket:G$n,columns:W$n,category:Y$n,status:Q$n,filters:X$n,form:Z$n,thread:J$n,admin:ewn,loadMore:twn,toast:nwn,notFound:awn,empty:own},rwn="Utilisation",iwn="Solde, rythme de consommation et destination de vos dépenses.",lwn="Activité",cwn="Aucune activité sur cette période",dwn="Détail de lâutilisation",uwn="Par API key",mwn="Par modèle",pwn="Par type de token",fwn="Aucune donnée",gwn="Aucune utilisation sur cette période.",hwn="Au rythme actuel, le solde devrait tenir {{days}} jours (environ {{rate}}/jour).",ywn="sortie",vwn="cache",bwn={tokens:"Tokens",requests:"Requêtes",cost:"Coût"},xwn="Autre",$wn="req.",wwn="tok",kwn="Actualisationâ¦",Cwn="Aucune donnée",Swn="Envoyez une requête pour commencer à accumuler des données.",Awn="Principales API keys",Twn="Recharger",Rwn={title:"Impossible de charger lâutilisation"},Pwn={firstToken:"premier token",latency:"Latence moyenne",requests:"Requêtes",spend:"Consommation",spendSub:"facturée sur cette période",successRate:"{{rate}}% de réussite",tokens:"Tokens",textDuration:"texte",mediaDuration:"image/vidéo",cacheHit:"{{rate}}% en cache",projected:"â {{amount}}
801/mois",vsPrevious:"vs période précédente"},_wn={activeDays:"Jours actifs",longestStreak:"Plus longue série",daysValue:"{{n}} jours",totalSpend:"Total sur cette période",peakDay:"Jour le plus actif"},jwn={all:"Toute la période",custom:"Personnalisée",last1h:"Dernière heure",last30d:"30 derniers jours",last7d:"7 derniers jours",thisMonth:"Ce mois-ci",today:"Aujourdâhui",yesterday:"Hier",byMonth:"Par mois"},Nwn={failed:"Ãchec",success:"Réussite"},Dwn={cacheRead:"Lecture cache",cacheWrite:"Ãcriture cache",cacheWrite1h:"Ãcriture cache 1h",cacheWrite5m:"Ãcriture cache 5m",completion:"Sortie",prompt:"Entrée"},Mwn={body:"Envoyez une requête depuis le terminal ou ouvrez le playground â lâutilisation apparaîtra ici en quelques secondes.",openPlayground:"Ouvrir le playground",title:"Votre key est prêt"},Ewn={body:"Créez votre premier API key, routez toutes les requêtes par une URL, puis lâutilisation apparaîtra ici.",createKey:"Créer une API key",title:"Bienvenue sur OneHop",tryPlayground:"Essayer le playground"},Iwn="Actualiser",Own="{{count}} requêtes réussies dans le filtre actuel",Lwn="Tokens totaux",Uwn="Entrée {{input}} / sortie {{output}}",Bwn="Credit facturé",Fwn="{{cost}} coût upstream réel",zwn="Latence moyenne",qwn="Premier token {{duration}}",Hwn="Activité sur 30 jours",Vwn="Requêtes réussies, volume de token et credit facturé.",Kwn="Chargement de la tendance dâutilisation",Gwn="Aucune tendance dâutilisation",Wwn="La tendance dâutilisation apparaît après des requêtes réussies.",Ywn="Modèles principaux",Qwn="Credit facturé par modèle sur les 30 derniers jours.",Xwn="Aucune utilisation par modèle",Zwn="La répartition par modèle apparaît après des requêtes réussies.",Jwn="Modèle",e0n="Tous les modèles",t0n="Statut",n0n="Protocole",a0n="Lignes",o0n="Réinitialiser",s0n="Enregistrements dâutilisation",r0n="API key",i0n="Endpoint",l0n="Type",c0n="Tokens",d0n="Coût",u0n="Durée",m0n="Heure",p0n="User-Agent",f0n="Détails",g0n="Détail de la requête",h0n="Détails de lâenregistrement dâutilisation et metadata de facturation.",y0n="ID de la requête",v0n="Opération",b0n="Tokens dâentrée",x0n="Tokens de sortie",$0n="Tokens cache read",w0n="Tokens cache write",k0n="Coût dâentrée",C0n="Coût de sortie",S0n="Coût cache read",A0n="Coût cache write",T0n="Code dâerreur",R0n="Message dâerreur",P0n="Introuvable.",_0n="credit",j0n="Total {{count}}",N0n="Chargement des enregistrements dâutilisation",D0n="Aucun enregistrement dâutilisation",M0n="Essayez un autre jeu de filtres.",E0n="Les enregistrements apparaissent quand les requêtes passent par vos API keys.",I0n="Page {{page}} · {{shown}} sur {{total}} enregistrements correspondants",O0n="Précédent",L0n="Suivant",U0n="Credit",B0n="Tokens",F0n="Requêtes",z0n={time:"Heure",apiKey:"API Key",model:"Modèle",reasoningEffort:"Effort de raisonnement",endpoint:"Endpoint",type:"Type",billingMode:"Mode de facturation",inputTokens:"Tokens dâentrée",outputTokens:"Tokens de sortie",cacheReadTokens:"Tokens de lecture cache",cacheWriteTokens:"Tokens dâécriture cache",totalTokens:"Tokens totaux",billedCredit:"Credit facturé",firstTokenMs:"Premier Token ms",durationMs:"Durée ms",status:"Statut",userAgent:"User-Agent"},q0n={mon:"Lun",wed:"Mer",fri:"Ven"},H0n="Moins",V0n="Plus",K0n={title:rwn,description:iwn,activity:lwn,activityEmpty:cwn,breakdown:dwn,byApiKey:uwn,byModel:mwn,byTokenType:pwn,chartEmpty:fwn,chartEmptyHint:gwn,burnRate:hwn,in:"entrée",out:ywn,cache:vwn,metric:bwn,other:xwn,req:$wn,tok:wwn,refreshing:kwn,topEmpty:Cwn,topEmptyHint:Swn,topKeys:Awn,topUp:Twn,error:Rwn,kpi:Pwn,stat:_wn,range:jwn,requests:Nwn,tokenType:Dwn,noRequests:Mwn,welcome:Ewn,refresh:Iwn,successfulFilter:Own,totalTokens:Lwn,inOut:Uwn,billedCredit:Bwn,upstreamActualCost:Fwn,avgLatency:zwn,firstToken:qwn,activityTitle:Hwn,activityDescription:Vwn,loadingTrend:Kwn,noUsageTrend:Gwn,trendDescription:Wwn,topModels:Ywn,topModelsDescription:Qwn,noModelUsage:Xwn,noModelUsageDescription:Zwn,model:Jwn,allModels:e0n,status:t0n,protocol:n0n,rows:a0n,reset:o0n,tableLabel:s0n,apiKey:r0n,endpoint:i0n,type:l0n,tokens:c0n,cost:d0n,duration:u0n,time:m0n,userAgent:p0n,details:f0n,requestDetail:g0n,detailDescription:h0n,requestId:y0n,operation:v0n,inputTokens:b0n,outputTokens:x0n,cacheReadTokens:$0n,cacheWriteTokens:w0n,inputCost:k0n,outputCost:C0n,cacheReadCost:S0n,cacheWriteCost:A0n,errorCode:T0n,errorMessage:R0n,notFound:P0n,creditSuffix:_0n,total:j0n,loadingRecords:N0n,noRecords:D0n,differentFilters:M0n,recordsEmpty:E0n,pageSummary:I0n,previous:O0n,next:L0n,chartCredit:U0n,chartTokens:B0n,chartRequests:F0n,csv:z0n,weekday:q0n,activityLess:H0n,activityMore:V0n},G0n="Signup access",W0n="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",Y0n="Signup access allowlist",Q0n="No allowlist entr
801ies",X0n="Email / domain",Z0n="Note",J0n="Status",ekn="Registration",tkn="Expires",nkn="Invites",akn="Updated",okn="Action",skn="Add",rkn="Bulk add",ikn="Edit",lkn="Save",ckn="Invite",dkn="Restore",ukn="Remove",mkn="Add signup access",pkn="Edit {{email}}",fkn="Bulk add signup access",gkn="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",hkn="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",ykn="Email or domain",vkn="[email protected] or @company.com",bkn="Use @company.com to approve an entire domain.",xkn="Note (optional)",$kn="e.g. founding team",wkn="Expiry (optional)",kkn="Leave empty for no expiry. Expired entries no longer allow new signups.",Ckn="Emails / domains",Skn=`[email protected] 802[email protected] 803@partner.com`,Akn="Search",Tkn="Search email or domain",Rkn="Status",Pkn="Access check",_kn="[email protected]",jkn="Check",Nkn="Allowed",Dkn="Denied",Mkn={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},Ekn="Registered",Ikn="Not registered",Okn="Admin",Lkn="Domain rule",Ukn="Never",Bkn="Added to signup access.",Fkn="Signup access updated.",zkn="Added {{count}} entries.",qkn="Invite sent.",Hkn="Entry restored.",Vkn="Removed from signup access.",Kkn="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",Gkn={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},Wkn={title:G0n,description:W0n,label:Y0n,empty:Q0n,email:X0n,note:Z0n,status:J0n,registration:ekn,expiresAt:tkn,invites:nkn,updatedAt:akn,action:okn,add:skn,bulkAdd:rkn,edit:ikn,save:lkn,invite:ckn,restore:dkn,revoke:ukn,newTitle:mkn,editTitle:pkn,bulkTitle:fkn,formDescription:gkn,bulkDescription:hkn,emailLabel:ykn,emailPlaceholder:vkn,emailHint:bkn,noteLabel:xkn,notePlaceholder:$kn,expiresAtLabel:wkn,expiresAtHint:kkn,bulkEntriesLabel:Ckn,bulkEntriesPlaceholder:Skn,search:Akn,searchPlaceholder:Tkn,statusFilter:Rkn,checkLabel:Pkn,checkPlaceholder:_kn,check:jkn,checkAllowed:Nkn,checkDenied:Dkn,checkReasons:Mkn,registered:Ekn,notRegistered:Ikn,adminAllowed:Okn,domainRule:Lkn,never:Ukn,added:Bkn,updated:Fkn,bulkAdded:zkn,invited:qkn,restored:Hkn,revoked:Vkn,confirmRevoke:Kkn,domainRules:Gkn},Ykn="Ops Billing",Qkn="Payments, wallets and refunds across all users.",Xkn={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},Zkn="User email",Jkn="Search by email...",eCn="Created",tCn="Created",nCn="Amount (USD)",aCn="Min",oCn="Max",sCn="Refunds",rCn="No refunds",iCn="Refund",lCn="Type",cCn="Full refund",dCn="Partial refund",uCn="Original payment",mCn="Wallets",pCn="Wallet",fCn="User",gCn="Total",hCn="Purchased",yCn="Bonus",vCn="No wallets",bCn="Payments",xCn="Payment status",$Cn="No payments",wCn="Payment",kCn="Status",CCn="Amount",SCn="Paid",ACn="Refund",TCn="Not refundable (status must be paid)",RCn="View in Stripe Dashboard",PCn="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",_Cn="unhealthy",jCn="Refund {{id}}",NCn="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",DCn="Refund amount (USD)",MCn="Max ${{value}}",ECn="Reason",ICn="è¿éãã¬ãã¥ã¼ãèªã¿è¾¼ã¿ä¸â¦",OCn="è¿éãã¬ãã¥ã¼ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ããããã¬ãã¥ã¼ãæåããã¾ã§è¿éã¯å®è¡ã§ãã¾ããã",LCn="è¿éå¯è½ãªåå¼ãè¦ã¤ããã¾ããããã®æ¯æãã¯ãã§ã«å ¨é¡è¿éæ¸ã¿ã®å¯è½æ§ãããã¾ãã",UCn="æ¯æé¡",BCn="è¿éæ¸ã¿",FCn="ä»åã®è¿é",zCn="ååã¯ã¬ã¸ãã",qCn="ã¯ã¼ãã³å²å¼åã®ã¯ã¬ã¸ãã {{amount}} ã®æ¯ä¾ååãå«ã¿ã¾ã",HCn="追å ä»ä¸åã®ã¯ã¬ã¸ãã {{amount}} ã®æ¯ä¾ååãå«ã¿ã¾ã",VCn="ãã¼ãã¹åãæ¶ã",KCn="ãã®è¿éã«ããããã¢ã¼ã·ã§ã³ãã¼ãã¹ {{amount}} ãåãæ¶ããã¾ãã",GCn="Stripe çµç±ã§è¿é",WCn="ææ°æãå·®ãå¼ãï¼{{fee}}ãStripe 決æ¸ã³ã¹ãå å½ï¼",YCn="ææ°æï¼{{fee}}ï¼",QCn="éé¡ãè¿éå¯è½ä¸é {{value}} ãè¶ ãã¦ãã¾ã",XCn="æå¹ãªæ£ã®éé¡ãå ¥åãã¦ãã ãã",ZCn="ã¦ã¼ã¶ã¼ã¯è³¼å ¥ã¯ã¬ã¸ããã®ä¸é¨ããã§ã«æ¶è²»ãã¦ãã¾ããè¿éå¯è½ä¸é: {{value}}",JCn="ãã®æ¯æãã¯ãã§ã«å ¨é¡è¿éæ¸ã¿ã§ã",e1n="ææ°æå·®å¼å¾ã®è¿éé¡ãå°ãããã¾ãã{{value}} 以ä¸ã§è¿éãã¦ãã ããã",t1n="Cancel",n1n="Issue refund",a1n="Submitting...",o1n="Refund submitted",s1n="Stripe will return the funds within 1-3 business days. Audit log written.",r1n="Refund failed",i1n={title:Ykn,description:Qkn,tabs:Xkn,emailFilter:Zkn,emailPlaceholder:Jkn,created:eCn,createdRange:tCn,amountRange:nCn,amountMin:aCn,amountMax:oCn,refunds:sCn,noRefunds:rCn,refundId:iCn,refundType:lCn,typeRefund:cCn,typePartialRefund:dCn,originalPayment:uCn,wallets:mCn,wallet:pCn,user:fCn,total:gCn,purchased:hCn,bonus:yCn,noWallets:vCn,payments:bCn,paymentStatus:xCn,noPayments:$Cn,payment:wCn,status:kCn,amount:CCn,paid:SCn,refund:ACn,notRefundable:TCn,viewInStripe:RCn,webhookHealthHint:PCn,unhealthyWebhooks:_Cn,refundConfirmTitle:jCn,refundConfirmBody:NCn,refundAmountLabel:DCn,refundMaxHint:MCn,refundReasonLabel:ECn,refundPreviewLoading:ICn,refundPreviewFailed:OCn,refundNoRefundableTx:LCn,refundPaidRow:UCn,refundAlreadyRefundedRow:BCn,refundThisRefundRow:FCn,refundCreditReclaimRow:zCn,refundCreditCouponNote:qCn,refundCreditExtraNote:HCn,refundBonusReverseRow:VCn,refundBonusForfeitWarning:KCn,refundStripeReturnRow:GCn,refundFeeToggle:WCn,refundPlatformFeeRow:YCn,refundExceedsMax:QCn,refundAmountInvalid:XCn,refundInsufficientCredit:ZCn,refundAlreadyFull:JCn,refundBelowMin:e1n,
803cancel:t1n,confirmRefund:n1n,submitting:a1n,refundSubmittedTitle:o1n,refundSubmittedBody:s1n,refundFailedTitle:r1n},l1n="Campaigns",c1n="Audience segments, restricted-model access, model discounts, and targeted credit grants.",d1n={mobileLabel:"ãã£ã³ãã¼ã³ ã»ã¯ã·ã§ã³",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},u1n="Status",m1n="Actions",p1n="All users",f1n="Always",g1n="No expiry",h1n="Active window",y1n="Leave blank for always-on. Times are end-of-day on the chosen dates.",v1n="Valid from",b1n="Valid to",x1n="Pause",$1n="Resume",w1n="Add",k1n="Remove",C1n="Delete",S1n="Clear",A1n="Close",T1n={allKinds:"ãã¹ã¦ã®ç¨®é¡",segmentKindStatic:"éç",segmentKindDynamic:"åç",grantKindGrant:"ä»ä¸",grantKindRevoke:"åãæ¶ã",allStatuses:"ãã¹ã¦ã®ã¹ãã¼ã¿ã¹",statusActive:"æå¹",statusPaused:"䏿忢ä¸",statusArchived:"ã¢ã¼ã«ã¤ãæ¸ã¿",statusEnded:"çµäºæ¸ã¿",statusPending:"ä¿çä¸",statusProcessing:"å¦çä¸",statusCompleted:"å®äº",statusFailed:"失æ"},R1n={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},P1n={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},_1n={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for c
803omparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},j1n={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},N1n={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
8030.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},D1n={title:l1n,description:c1n,tabs:d1n,status:u1n,actions:m1n,allUsers:p1n,always:f1n,noExpiry:g1n,window:h1n,windowHint:y1n,validFrom:v1n,validTo:b1n,pause:x1n,resume:$1n,actionAdd:w1n,actionRemove:k1n,actionDelete:C1n,actionClear:S1n,actionClose:A1n,filters:T1n,segments:R1n,access:P1n,discounts:_1n,grants:j1n,recurring:N1n},M1n="Announcements",E1n="Banners shown at the top of the marketing site and the console.",I1n="Banners",O1n="Top-of-page banners shown on www and console.",L1n="New Banner",U1n="No banners yet. Create one to show a top-of-page announcement.",B1n="Message",F1n="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",z1n="CTA Label",q1n="CTA Link",H1n="Severity",V1n="Audience",K1n="Starts At",G1n="Ends At",W1n="Dismissible",Y1n="Status",Q1n="Archive",X1n="Archive this banner? It will no longer be shown to users.",Z1n="New Banner",J1n="Edit Banner",eSn="Title",tSn="Type",nSn="Content",aSn="Display type",oSn="Banner",sSn="Modal",rSn="Draft",iSn="Active",lSn="Info",cSn="Warning",dSn="Critical",uSn="Console only",mSn="Public site only",pSn="Both",fSn="Hero image",gSn="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",hSn="Upload",ySn="Uploadingâ¦",vSn="Remove",bSn="Only PNG, JPEG, WebP and GIF images are supported.",xSn="Image must be 5MB or smaller.",$Sn="Upload failed, please try again.",wSn="Title",kSn="Body",CSn="Action buttons",SSn="Button label",ASn="Button link",TSn="Style",RSn="Add button",PSn="Remove",_Sn="Primary",jSn="Secondary",NSn="Link",DSn="Simplified Chinese (source)",MSn="Fill in Simplified Chinese only, then translate to other languages in one click.",ESn="Translate to all languages",ISn="Translatingâ¦",OSn="Other languages (translated, editable)",LSn="Translated {{ok}} languages",USn="{{failed}} languages failed â fill in manually or retry",BSn="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",FSn="Re-show to users who already dismissed it",zSn="Fill in the Simplified Chinese body first.",qSn={title:M1n,description:E1n,annTitle:I1n,annDescription:O1n,annNewButton:L1n,annEmpty:U1n,annMessage:B1n,annInlineLinkHint:F1n,annCtaText:z1n,annCtaUrl:q1n,annSeverity:H1n,annAudience:V1n,annStartsAt:K1n,annEndsAt:G1n,annDismissible:W1n,annStatus:Y1n,annArchive:Q1n,annArchiveConfirm:X1n,annCreateTitle:Z1n,annEditTitle:J1n,annColTitle:eSn,annColType:tSn,annColContent:nSn,annDisplayType:aSn,annTypeBanner:oSn,annTypeModal:sSn,annStatusDraft:rSn,annStatusActive:iSn,annSevInfo:lSn,annSevWarning:cSn,annSevCritical:dSn,annAudConsole:uSn,annAudPublic:mSn,annAudAll:pSn,annHeroImage:fSn,annHeroImageHint:gSn,annHeroImageUpload:hSn,annHeroImageUploading:ySn,annHeroImageRemove:vSn,annHeroImageBadType:bSn,annHeroImageTooLarge:xSn,annHeroImageUploadFailed:$Sn,annModalTitle:wSn,annBody:kSn,annActions:CSn,annActionLabel:SSn,annActionUrl:ASn,annActionVariant:TSn,annActionAdd:RSn,annActionRemove:PSn,annVariantPrimary:_Sn,annVariantSecondary:jSn,annVariantLink:NSn,annSourceLocale:DSn,annSourceHint:MSn,annTranslate:ESn,annTranslating:ISn,annOtherLocales:OSn,annTranslateDone:LSn,annTranslateParti
803al:USn,annTranslateStale:BSn,annBumpRevision:FSn,annTranslateNeedSource:zSn},HSn="Operations dashboard",VSn="Real-time overview of platform health, usage, and alerts.",KSn="Refresh",GSn="Refreshing",WSn="Updated {{time}}",YSn="Loading dashboard",QSn="Failed to load dashboard",XSn="No data",ZSn="No traffic yet",JSn="Video fail rate",eAn="Avg latency",tAn="Error types",nAn="No errors",aAn="Model anomalies",oAn="All models healthy",sAn="Components",rAn="req",iAn="Checkout abandon",lAn="Refunds",cAn="Chargebacks",dAn="First-charge conversion",uAn={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},mAn={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},pAn={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"æ£å¸¸ãªã¦ã¼ã¶ã¼ã®ã¿ï¼ãã©ã°ä»ããé¤ãï¼",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},fAn={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},gAn={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},hAn={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},yAn={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},vAn={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},bAn={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},xAn={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},$An={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},wAn={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},kAn="{{failed}}/{{total}} jobs",CAn="{{delta}}pt vs yesterday",SAn="Low sample ({{n}})",AAn="Had gateway calls",TAn="Last 7d cohort · normal users only",RAn="Refund rate {{rate}}%",PAn={funnel:"opened {{opened}} · paid {{paid}}"},_An={title:HSn,description:VSn,refresh:KSn,refreshing:GSn,lastUpdated:WSn,loading:YSn,failedLoad:QSn,empty:XSn,noTraffic:ZSn,videoFailRate:JSn,avgLatency:eAn,errorTypes:tAn,noErrors:nAn,modelAnomalies:aAn,noAnomalies:oAn,c
803omponents:sAn,req:rAn,abandonRate:iAn,refunds:lAn,chargebacks:cAn,firstChargeConversion:dAn,sections:uAn,leaderboard:mAn,kpi:pAn,revenue:fAn,orders:gAn,conversion:hAn,componentStatus:yAn,severity:vAn,health:bAn,alerts:xAn,alertSettings:$An,range:wAn,videoJobsDetail:kAn,vsYesterdayPt:CAn,lowSample:SAn,activeUsersHint:AAn,conversionCohortHint:TAn,refundRate:RAn,checkout:PAn},jAn="Loading...",NAn="Admin permission required",DAn="Your account does not have permission to access this administrator page.",MAn={loading:jAn,permissionRequired:NAn,permissionDescription:DAn},EAn="User growth",IAn="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",OAn={mobileLabel:"æé·ã»ã¯ã·ã§ã³",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"å¼ãæãã³ã¼ã",tasks:"Task wall"},LAn="Coupon batch",UAn="Promotion rule",BAn="Count",FAn="Batch code",zAn="Creating...",qAn="Create batch",HAn="{{count}} coupon code created",VAn="{{count}} coupon codes created",KAn="Batch {{code}}",GAn="Copied",WAn="Copy all",YAn="Credit grants",QAn="Source",XAn="Status",ZAn="No grants yet",JAn="Coupon redemptions, signup bonuses, and manual grants appear here.",eTn="Time",tTn="User",nTn="Amount",aTn="Signup bonus",oTn="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",sTn="Enable signup credit",rTn="Amount (USD)",iTn="Save signup bonus",lTn="Saving...",cTn="Current amount {{amount}}",dTn="Referral cashback",uTn="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",mTn="Enable referral cashback",pTn="Reward tiers",fTn="Add tier",gTn="Recipient",hTn="From day",yTn="Until day",vTn="Percent",bTn="Label",xTn="Action",$Tn="Inviter",wTn="Invitee",kTn="No end",CTn="Remove tier",STn="Release delay (days)",ATn="Per-topup cap (USD)",TTn="Min topup (USD, blank = none)",RTn="Cashback expiry (days, blank = never)",PTn="Billing-page countdown banner",_Tn="Banner title",jTn="Subtitle",NTn="Countdown mode",DTn="Global deadline",MTn="Each invitee's 30-day window",ETn="Ends at",ITn="Save referral settings",OTn="v{{version}}",LTn="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",UTn="Version history",BTn="Version",FTn="Status",zTn="Reward tiers",qTn="Published",HTn="Superseded",VTn="current",KTn="Top-up discount codes",GTn="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",WTn="Enable discount codes",YTn="Discount type",QTn="Fixed amount off (USD)",XTn="Percentage off (%)",ZTn="Amount off (USD)",JTn="Percentage off (0-100)",eRn="Save discount",tRn="Default low-balance alert",nRn="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",aRn="Threshold (USD)",oRn="Save threshold",sRn="Current: {{amount}}",rRn="Generate codes against the discount rule above.",iRn="In effect: {{state}} · {{value}} off",lRn="enabled",cRn="disabled",dRn="Issued codes",uRn="Pick a batch to see who redeemed each code.",mRn="No batches yet",pRn="Generate a batch above to start tracking redemptions.",fRn="Total",gRn="Redeemed",hRn="Reserved",yRn="Available",vRn="Codes in {{code}}",bRn="No codes in this batch",xRn="Code",$Rn="Redeemed by",wRn="Redeemed at",kRn="Paid",CRn="Discount",SRn="ã³ã¼ãã使",ARn="å
±æã³ã¼ã㯠1 ã¤ã®ã³ã¼ããè¤æ°ã¦ã¼ã¶ã¼ãæå¤§ N åã¾ã§å©ç¨å¯è½ãã¦ãã¼ã¯ã³ã¼ãã®ããã㯠N åã®ä½¿ãåãã³ã¼ãã§ãã",TRn="ã³ã¼ãã®ç¨®é¡",RRn="åä¸ã®å
±æã³ã¼ã",PRn="ã¦ãã¼ã¯ã³ã¼ãã®ããã",_Rn="ã³ã¼ãæååï¼ç©ºæ¬ã§ã©ã³ãã çæï¼",jRn="ä¾: WELCOME100",NRn="ç·å©ç¨åæ°ï¼Nï¼",DRn="ã¦ã¼ã¶ã¼ãã¨",MRn="æå¹æéï¼ä»»æï¼",ERn="ã°ã«ã¼ãï¼ä»»æï¼",IRn="å
±æã³ã¼ãã使",ORn="å
±æã³ã¼ãã使ãã¾ãã",
803LRn="ãã®ãããå°ç¨ã®å²å¼ã使ç¨ï¼æªè¨å®ãªãä¸è¨ã«ã¼ã«ãé©ç¨ï¼",URn="å
±æã³ã¼ã",BRn="1 ã¤ã®ã³ã¼ããè¤æ°ã¦ã¼ã¶ã¼ãå©ç¨ãå©ç¨æ°ã¯æ¯æãæ¸ã¿ã®å¼ãæããéè¨ãã¾ãã",FRn="å
±æã³ã¼ãã¯ã¾ã ããã¾ãã",zRn="å©ç¨æ° / ä¸é",qRn="ã¦ã¼ã¶ã¼ãã¨",HRn="æå¹æé",VRn="ç¡å¹å",KRn="ãã®ã³ã¼ããç¡å¹åãã¾ããï¼",GRn="æ°è¦ã®ãã§ãã¯ã¢ã¦ãã¯å³åº§ã«ãããã¯ããã¾ãããã§ã«ãã§ãã¯ã¢ã¦ãä¸ã®æ³¨æã¯ãã®ã¾ã¾å®äºã§ãã¾ãã",WRn="ã³ã¼ããç¡å¹åãã¾ãã",YRn="CSV",QRn="ç¶æ
",XRn="ã¡ã¼ã«",ZRn={code:"ã³ã¼ã",discount:"å²å¼",redeemed:"å©ç¨æ¸ã¿",cap:"ä¸é",perUser:"ã¦ã¼ã¶ã¼ãã¨",status:"ç¶æ
",expiresAt:"æå¹æé",batch:"ããã",createdAt:"ä½ææ¥æ",redeemedBy:"å©ç¨è
",redeemedAt:"å©ç¨æ¥æ",paid:"æ¯æãæ¸ã¿",discountAmount:"å²å¼",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},JRn="Amount",ePn="Bound at",tPn="Counterparty",nPn="Invitee",aPn="Inviter",oPn="Rate",sPn="Released",rPn="Role",iPn="Tier",lPn="Top-up",cPn="Load more",dPn="No referrals under this version",uPn="No cashback under this version",mPn="Referrals",pPn="Referral records",fPn="Cashback records",gPn="Version detail",hPn={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},yPn="å¼ãæãã³ã¼ããçæ",vPn="ããªãã¤ãã«ã¼ãåã®å¼ãæãã³ã¼ãã§ããã¦ã¼ã¶ã¼ãè«æ±ãã¼ã¸ã§ã³ã¼ããå
¥åããã¨ãé¡é¢ããã®ã¾ã¾æ®é«ã«åæ ããã¾ãï¼ä»ä¸æ®é«ã®ãããæ¯æãã¯ä¸è¦ã§ãï¼ã",bPn="ãããåï¼ä»»æï¼",xPn="ä¾: Conf-2026 é
å¸å",$Pn="çææ°",wPn="1æãããã®é¡é¢ï¼USDï¼",kPn="ãã®ãããã§1ã¢ã«ã¦ã³ããããã«å¼ãæãå¯è½ãªææ°ï¼ç©ºæ¬ = ç¡å¶éï¼",CPn="ç¡å¶é",SPn="å¼ãæãæéï¼ä»»æï¼",APn="Restrict to models (optional)",TPn="General balance (no restriction)",RPn="{{count}} models selected",PPn="Blank = general balance. Selected models share one earmarked pool.",_Pn="Credit validity after redemption (days, blank = never expires)",jPn="never expires",NPn="{{n}} d",DPn="Models",MPn="Validity",EPn="General balance",IPn="å¼ãæãã³ã¼ããçæ",OPn="ããã«ä¿åãã¦ãã ãããå¾ããã§ããããä¸è¦§ã®ãå¹³æã§ã¨ã¯ã¹ãã¼ããã§ååå¾ã§ãã¾ãã",LPn="å¼ãæãã³ã¼ãã®ããã",UPn="ããããã¯ãªãã¯ããã¨åã³ã¼ãã®è©³ç´°ã確èªã§ãã¾ãããå¹³æã§ã¨ã¯ã¹ãã¼ããã§ã³ã¼ããåã¨ã¯ã¹ãã¼ãã§ãã¾ãã",BPn="å¼ãæãã³ã¼ãã®ãããã¯ã¾ã ããã¾ããã",FPn="ããã",zPn="é¡é¢",qPn="å¹³æã§ã¨ã¯ã¹ãã¼ã",HPn="ãã®å¼ãæãæ¸ã¿ã³ã¼ããåãæ¶ãã¾ããã",VPn="ã¦ã¼ã¶ã¼æ®é«ããæªæ¶è²»åã®ã¿ãååãã¾ããæ¶è²»æ¸ã¿ã®åã¯ååã§ãã¾ããã",KPn="åãæ¶ã",GPn="{{amount}} ãåãæ¶ãã¾ããã",WPn="å¼ãæãã³ã¼ããã¨ã¯ã¹ãã¼ããã¾ããã",YPn="ãã®ãããã®æªä½¿ç¨ã³ã¼ããç¡å¹åãã¾ããã",QPn="æªä½¿ç¨ã®ã³ã¼ãã¯ãã¹ã¦ç¡å¹ã«ãªãã¾ããä½¿ç¨æ¸ã¿ã®ã³ã¼ãã«ã¯å½±é¿ãã¾ããã",XPn="{{n}}
803 ä»¶ã®ã³ã¼ããç¡å¹åãã¾ããã",ZPn="Bonus % on top-up",JPn="Bonus (%)",e_n="Bonus validity (days, optional)",t_n="blank = never expires",n_n={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},a_n={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending cap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},o_n={title:EAn,description:IAn,tabs:OAn,couponBatch:LAn,promotionRule:UAn,count:BAn,batchCode:FAn,creating:zAn,createBatch:qAn,codesCreated:HAn,codesCreated_plural:VAn,batch:KAn,copied:GAn,copyAll:WAn,creditGrants:YAn,source:QAn,status:XAn,noGrants:ZAn,noGrantsDescription:JAn,time:eTn,user:tTn,amount:nTn,signupBonus:aTn,signupBonusDescription:oTn,signupBonusEnabled:sTn,signupBonusAmount:rTn,saveSignupBonus:iTn,saving:lTn,currentSignupBonus:cTn,referral:dTn,referralDescription:uTn,referralEnabled:mTn,referralRewardTiers:pTn,addTier:fTn,tierRole:gTn,tierFromDay:hTn,tierUntilDay:yTn,tierPercent:vTn,tierLabel:bTn,tierAction:xTn,roleReferrer:$Tn,roleReferee:wTn,noEndDay:kTn,removeTier:CTn,releaseDelayDays:STn,referralCap:ATn,referralMinTopup:TTn,referralExpiryDays:RTn,bannerEnabled:PTn,bannerTitle:_Tn,bannerSubtitle:jTn,bannerMode:NTn,bannerModeGlobal:DTn,bannerModeWindow:MTn,bannerEndsAt:ETn,saveReferral:ITn,referralVersion:OTn,referralPublishHint:LTn,referralVersionHistory:UTn,versionCol:BTn,versionStatus:FTn,versionTiers:zTn,versionPublished:qTn,versionSuperseded:HTn,versionCurrent:VTn,discountRule:KTn,discountRuleDescription:GTn,discountEnabled:WTn,discountType:YTn,discountFixed:QTn,discountPercent:XTn,discountValueFixed:ZTn,discountValuePercent:JTn,saveDiscount:eRn,defaultLowBalanceThreshold:tRn,defaultLowBalanceThresholdDescription:nRn,defaultLowBalanceThresholdAmount:aRn,saveDefaultLowBalanceThreshold:oRn,currentDefaultLowBalanceThreshold:sRn,couponBatchDescription:rRn,discountEffective:iRn,stateEnabled:lRn,stateDisabled:cRn,couponTrace:dRn,couponTraceDescription:uRn,noBatches:mRn,noBatchesDescription:pRn,batchTotal:fRn,batchRedeemed:gRn,batchReserved:hRn,batchActive:yRn,codesInBatch:vRn,noCodes:bRn,code:xRn,redeemedBy:$Rn,redeemedAt:wRn,paid:kRn,discount:CRn,createIssuance:SRn,createIssuanceDescription:ARn,formLabel:TRn,formShared:RRn,formUniqueBatch:PRn,sharedCodeText:_Rn,sharedCodeRandomHint:jRn,sharedMaxRedemptions:NRn,sharedPerUser:DRn,expiresAt:MRn,batchCodeOptional:ERn,createSharedCode:IRn,sharedCodeCreated:ORn,batchOwnDiscount:LRn,sharedCodesList:URn,sharedCodesListDescription:BRn,noSharedCodes:FRn,colRedeemedTotal:zRn,colPerUser:qRn,colExpiry:HRn,disableCode:VRn,disableCodeConfirmTitle:KRn,disableCodeConfirmMessage:GRn,codeDisabled:WRn,exportCsv:YRn,statusFilter:QRn,filterByEmail:XRn,csv:ZRn,colAmount:JRn,colBoundAt:ePn,colCounterparty:tPn,colInvitee:nPn,colInviter:aPn,colRate:oPn,colReleasedAt:sPn,colRole:rPn,colTier:iPn,colTopup:lPn,loadMore:cPn,noBindings:dPn,noCashback:uPn,versionBindings:mPn,versionBindingsSection:pPn,versionCashbackSection:fPn,versionDetail:gPn,topup:hPn,redeemCreate:yPn,redeemCreateDescription:vPn,redeemBatchName:bPn,redeemBatchNameHint:xPn,redeemCount:$Pn,redeemFaceValue:wPn,redeemPerUserLimit:kPn,redeemUnlimited:CPn,redeemExpiresAt:SPn,redeemModels:APn,redeemModelsAll:TPn,redeemModelsCount:RPn,redeemModelsHint:PPn,redeemValidityDays:_Pn,redeemValidityForever:jPn,redeemValidityDaysValue:NPn,redeemColModels:DPn,redeemColValidity:MPn,redeemGeneralBalance:EPn,redeemCreateBtn:IPn,redeemRevealHint:OPn,redeemBatches:LPn,redeemBatchesDescription:UPn,redeemNoBatches:BPn,redeemBatchCol:FPn,redeemFace:zPn,redeemReveal:qPn,redeemReverseTitle:HPn,redeemReverseMessage:VPn,redeemReverseBtn:KPn,redeemReversed:GPn,redeemRevealed:WPn,redeemDisableBatchTitle:YPn,redeemDisableBatchMessage:QPn,redeemBatchDisabled:XPn,discountTypeBonusPercent:ZPn,discountValueBonusPercent:JPn,bonusExpiryDays:e_n,bonusExpiryDaysHint:t_n,sharedPayments:n_n,tasks:a_n},s_n="Models",r_n="Model catalog: create, edit, publish.",i_n={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},l_n="Add model",c_n="Edit {{model}}
803",d_n="New model",u_n="Close",m_n="Basics & content save together; pricing and status changes apply immediately.",p_n="Create the model draft. Set pricing and publish after it exists.",f_n={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},g_n="Provider slug",h_n="Pick a known provider or type a custom slug.",y_n="Model slug",v_n="Aliases",b_n="Comma-separated lookup aliases for import and review.",x_n="Source (customer-visible)",$_n="Label customers see on the model/logs. Blank = vendor. Use it to distinguish same-model variants at different prices.",w_n="Platform",k_n="â select platform â",C_n="Upstream model id (optional; choose from upstream or enter manually)",S_n="Choose from upstream...",A_n="Upstream unavailable",T_n="Protocols",R_n="Input price / 1M (USD)",P_n="Output price / 1M (USD)",__n="EN summary",j_n="Preview",N_n="(No summary)",D_n="No protocol",M_n="Cancel",E_n="Save",I_n="Create draft",O_n={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},L_n={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},U_n="Context window (tokens)",B_n="Max input the model accepts. Leave blank if unknown.",F_n="Max output tokens",z_n="Max tokens the model can generate per response.",q_n={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},H_n="Input modalities",V_n="Declares what this model can receive, including vision, audio, video, and file inputs.",K_n="Output modalities",G_n="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",W_n="Image billing style",Y_n="Video billing style",Q_n="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",X_n="â select billing style â",Z_n="Per token (image_output_token)",J_n="Per image (per_call_image)",ejn="Per second (video_per_second)",tjn="Per call (video_per_call)",njn="Display order",ajn="Must be a non-negative integer.",ojn="Editing locale",sjn="Upstream release date",rjn="Summary (this locale)",ijn="Description (Markdown, this locale)",ljn={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"ãã£ã«ã¿ã¼"},cjn={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}
803"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},djn={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},ujn={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},mjn="Discard unsaved changes?",pjn="ã¢ãã«ãç·¨é",fjn={title:s_n,description:r_n,badges:i_n,addModel:l_n,editModel:c_n,newModel:d_n,close:u_n,sheetDescription:m_n,sheetDescriptionNew:p_n,sections:f_n,providerSlug:g_n,providerSlugHint:h_n,modelSlug:y_n,aliases:v_n,aliasesHint:b_n,source:x_n,sourceHint:$_n,platform:w_n,platformUnset:k_n,sub2apiModelId:C_n,chooseSub2api:S_n,upstreamUnavailable:A_n,protocols:T_n,inputPrice:R_n,outputPrice:P_n,enSummary:__n,preview:j_n,noSummary:N_n,noProtocol:D_n,cancel:M_n,save:E_n,createDraft:I_n,tabs:O_n,steps:L_n,contextWindow:U_n,contextWindowHint:B_n,maxOutputTokens:F_n,maxOutputTokensHint:z_n,lifecycle:q_n,inputModalities:H_n,inputModalitiesHint:V_n,outputModalities:K_n,outputModalitiesHint:G_n,billingStyleImage:W_n,billingStyleVideo:Y_n,billingStyleHint:Q_n,billingStyleUnset:X_n,billingStyleToken:Z_n,billingStylePerImage:J_n,billingStylePerSecond:ejn,billingStylePerCall:tjn,displayOrder:njn,displayOrderInvalid:ajn,contentLocale:ojn,upstreamReleaseAt:sjn,summary:rjn,descriptionField:ijn,filters:ljn,table:cjn,errors:djn,pricing:ujn,discardChanges:mjn,editModelShort:pjn},gjn="Rate Limits",hjn="Rate limit policies by scope.",yjn="Rate limit policies",vjn="No policies",bjn="Code",xjn="Name",$jn="Scope",wjn="Status",kjn="Limits",Cjn="No limits",Sjn={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},Ajn={active:"Active",disabled:"Disabled",archived:"Archived"},Tjn={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},Rjn="New policy",Pjn="Edit",_jn="Action",jjn="New rate limit policy",Njn="Edit {{name}}",Djn="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",Mjn='Delete policy "{{name}}"? Keys and users on it fall back to their default.',Ejn="Policy deleted.",Ijn={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},Ojn={title:gjn,description:hjn,label:yjn,empty:vjn,code:bjn,name:xjn,scope:$jn,status:wjn,limits:kjn,noLimits:Cjn,scopes:Sjn,statuses:Ajn,limitNames:Tjn,add:Rjn,edit:Pjn,delete:"Delete",action:_jn,newTitle:jjn,editTitle:Njn,formDescription:Djn,confirmDelete:Mjn,deleted:Ejn,form:Ijn},Ljn="Admins",Ujn="Who can sign in to the admin console. Owner-only.",Bjn="Admins",Fjn="No admins yet",zjn="Email",qjn="Name",Hjn="Role",Vjn="Status",Kjn="Last login",Gjn="Action",Wjn="Add admin",Yjn="Add admin",Qjn="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",Xjn="Email",Zjn="[email protected]",Jjn="Name",e2n="Display name",t2n="Role",n2n="Admin added.",a2n="Change role",o2n="Role updated.",s2n="Suspend",r2n="Activate",i2n="Status updated.",l2n="Remove",c2n="Admin removed.",d2n="Remove {{email}} as an admin? They lose console access immediately.",u2n="You",m2n="Never",p2n={owner:"Owner",admin:"Admin",
803support:"Support"},f2n={active:"Active",suspended:"Suspended"},g2n={title:Ljn,description:Ujn,label:Bjn,empty:Fjn,email:zjn,name:qjn,role:Hjn,status:Vjn,lastLogin:Kjn,action:Gjn,add:Wjn,newTitle:Yjn,formDescription:Qjn,emailLabel:Xjn,emailPlaceholder:Zjn,nameLabel:Jjn,namePlaceholder:e2n,roleLabel:t2n,added:n2n,changeRole:a2n,roleChanged:o2n,suspend:s2n,activate:r2n,statusChanged:i2n,remove:l2n,removed:c2n,confirmRemove:d2n,self:u2n,never:m2n,roles:p2n,statuses:f2n},h2n="Upstream",y2n="Read-only upstream configuration mirror plus controlled OneHop routing pools.",v2n="Open upstream admin",b2n="Upstream tabs",x2n={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},$2n={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},w2n={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},k2n={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"䏿µã«ãã¬ãã¸",coverageUnchecked:"ã¢ã«ã¦ã³ããåå¾ã§ãã¾ãã",coverageOnlyAccount:"{{accounts}} ã®ã¿",coverageNoAccount:"ãã®ä¸æµ ID ããããã³ã°ããé
è»å¯è½ãªã¢ã«ã¦ã³ããããã¾ãã"},C2n={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},S2n={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},A2n={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},T2n={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},R2n={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},P2n={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},_2n={title:h2n,description:y2n,openUpstreamAdmin:v2n,tabsLabel:b2n,tabs:x2n,metrics:$2n,errors:w2n,audit:k2n,topology:C2n,pools:S2n,readonly:A2n,table:T2n,common:R2n,ops:P2n},j2n="Platform usage",N2n="Cross-user request metering with cost, token, latency, and routing signals.",D2n="Refresh",M2n={label:"Auto refresh",off:"Off"},E2n="Exporting",I2n="Export CSV",O2n="Failed to export usage records",L2n="Requests",U2n="{{count}} successful",B2n="Users",F2n="Matched by current filters",z2n="Billed credit",q2n="{{cost}} upstream cost",H2n="Tokens",V2n="Avg {{duration}}",K2n="User email",G2n="Search by email",W2n="Model",Y2n="Search by model",Q2n="Status",X2n="Protocol",Z2n="Rows",J2n="Reset",eNn="Ops usage records",tNn="No usage records",nNn="User",aNn="Endpoint",oNn="{{count}} total",sNn="In {{input}} / out {{output}}",rNn="Upstream",iNn="Billed",lNn="Latency",cNn="Started",dNn="Page {{page}} · showing {{shown}} of {{total}} matching records",uNn="Previous",mNn="Next",pNn="{{count}} rows on this page",fNn="Times shown in",gNn="{{count}} API keys",hNn="Spend snapshot",yNn="from OneHop billing snapshot",vNn="User spend",bNn="total billed to users",xNn="Avg latency",$Nn="settled requests",wNn="Range",kNn={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},CNn="Metric",SNn={cost:"Spend",tokens:"Tokens",requests:"Requests"},ANn="Distribution",TNn={model:"ã¢ãã«",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
803:"Transport (stream/sync)"},RNn="Usage trend",PNn="Usage by model",_Nn="Hourly",jNn="Daily",NNn="Top endpoints",DNn="Top dimension rows",MNn="Request logs",ENn="API key",INn="Type",ONn="Billing",LNn="Channel",UNn="Group",BNn="Request ID",FNn="req_ / usg_ / upstream",zNn="All types",qNn="All billing",HNn={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},VNn="Failed to load usage",KNn="Loading usage records",GNn="Try a different filter set.",WNn="No trend data",YNn="No distribution data",QNn="No rows",XNn="Spend breakdown",ZNn={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},JNn="Request detail",eDn="Unknown user",tDn="Loading...",nDn="Sub2API actual",aDn="Group multiplier",oDn="Account multiplier",sDn="Identity",rDn="User ID",iDn="Key suffix",lDn={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},cDn="Input",dDn="Output",uDn="Cache read",mDn="Cache write",pDn="Raw metadata",fDn="Request",gDn="Usage ID",hDn="OneHop ID",yDn="Sub2API ID",vDn="Sub2API log",bDn="Routing",xDn="Mapping",$Dn="Performance",wDn="First token",kDn="Total",CDn="Error",SDn="Code",ADn="Message",TDn={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},RDn={analytics:"Usage analytics",logs:"Request logs"},PDn={label:"Chart view",stacked:"Over time",ranking:"Ranking"},_Dn={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},jDn="More filters",NDn="Slow threshold (ms)",DDn="No model usage",MDn="No requests yet â usage will appear here as traffic comes in.",EDn="Viewing",IDn="streaming requests",ODn="Avg duration",LDn="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",UDn="Open request detail",BDn={title:j2n,description:N2n,refresh:D2n,autoRefresh:M2n,exporting:E2n,exportCsv:I2n,exportError:O2n,requests:L2n,successful:U2n,users:B2n,matchedFilters:F2n,billedCredit:z2n,upstreamCost:q2n,tokens:H2n,avgDuration:V2n,userEmail:K2n,searchEmail:G2n,model:W2n,searchModel:Y2n,status:Q2n,protocol:X2n,rows:Z2n,reset:J2n,label:eNn,empty:tNn,user:nNn,endpoint:aNn,totalTokens:oNn,inOut:sNn,upstream:rNn,billed:iNn,latency:lNn,started:cNn,pageSummary:dNn,previous:uNn,next:mNn,rowsOnPage:pNn,timesShownIn:fNn,apiKeys:gNn,sub2apiCharge:hNn,sub2apiChargeSource:yNn,userSpend:vNn,userSpendSource:bNn,avgLatency:xNn,settledRequests:$Nn,range:wNn,ranges:kNn,metric:CNn,metrics:SNn,distribution:ANn,breakdown:TNn,usageTrend:RNn,stackedByModel:PNn,hourly:_Nn,daily:jNn,topEndpoints:NNn,topDimensionRows:DNn,requestLogs:MNn,apiKey:ENn,type:INn,billing:ONn,channel:LNn,group:UNn,requestId:BNn,requestIdPlaceholder:FNn,allTypes:zNn,allBilling:qNn,table:HNn,failedLoad:VNn,loadingRecords:KNn,tryDifferentFilters:GNn,noTrendData:WNn,noDistributionData:YNn,noRows:QNn,costBreakdown:XNn,adminCost:ZNn,requestDetail:JNn,unknownUser:eDn,loading:tDn,sub2apiActual:nDn,groupMultiplier:aDn,accountMultiplier:oDn,identity:sDn,userId:rDn,keySuffix:iDn,continuity:lDn,input:cDn,output:
803dDn,cacheRead:uDn,cacheWrite:mDn,rawMetadata:pDn,request:fDn,usageId:gDn,onehopId:hDn,sub2apiId:yDn,sub2apiLog:vDn,routing:bDn,mapping:xDn,performance:$Dn,firstToken:wDn,total:kDn,error:CDn,code:SDn,message:ADn,csv:TDn,tabs:RDn,modelView:PDn,chip:_Dn,moreFilters:jDn,slowThreshold:NDn,noModelUsage:DDn,noTrendToday:MDn,viewing:EDn,avgLatencySub:IDn,avgTotalDuration:ODn,latencyHint:LDn,openRequestDetail:UDn},FDn="Search",zDn="Search by user ID, email, or name",qDn="User",HDn="Back to users",VDn="You do not have permission to view this section.",KDn="Refund",GDn="Refunding...",WDn="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",YDn="Refund initiated.",QDn={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"APIãã¼",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},XDn={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},ZDn={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},JDn={phase2:"Subscriptions are coming in Phase 2."},eMn={empty:"No payments"},tMn={empty:"No refunds"},nMn={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},aMn={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},oMn={empty:"No audit records"},sMn={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},rMn={ipLocationTitle:"IPã»ä½ç½®æ
å ±",deviceBrowserTitle:"ããã¤ã¹ã»ãã©ã¦ã¶",stripeTitle:"Stripe",signupIp:"ç»é²æIP",signupCountry:"ç»é²å½",lastLoginIp:"æçµãã°ã¤ã³IP",ipDifferent:"ç»é²æIPã¨ç°ãªã",sameIpAccounts_one:"åãç»é²æIPã®ã¢ã«ã¦ã³ã {{count}} ä»¶",sameIpAccounts_other:"åãç»é²æIPã®ã¢ã«ã¦ã³ã {{count}} ä»¶",sameDeviceAccounts_one:"åãããã¤ã¹ã®ã¢ã«ã¦ã³ã {{count}} ä»¶",sameDeviceAccounts_other:"åãããã¤ã¹ã®ã¢ã«ã¦ã³ã {{count}} ä»¶",deviceFingerprint:"ããã¤ã¹ãã£ã³ã¬ã¼ããªã³ã",freeTierEligible:"ç¡ææ ã®é©ç¨å¯å¦",firstDevice:"ãã®ããã¤ã¹ã§æå",notFirstDevice:"ãã®ããã¤ã¹ã§æåã§ã¯ããã¾ãã â ç¡æç¹å
¸ãªã",browser:"ãã©ã¦ã¶",os:"OS",deviceType:"ããã¤ã¹ã¿ã¤ã",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"ipinfo.ioã§è¡¨ç¤º"},iMn={empty:"ã¾ã å¼ã³åºãã¯ããã¾ãã",viewAll:"ãã¹ã¦ã®ãã°ã表示 â",colStatus:"ã¹ãã¼ã¿ã¹",colTime:"æå»",colModel:"ã¢ãã«",colProtocol:"ãããã³ã«",colDuration:"æè¦æé",colCost:"ã³ã¹ã",colFreeDiscount:"ç¡æã¯ã¬ã¸ãã"},lMn={empty:"API keys ã¯ã¾ã ããã¾ãã",colName:"åå",colKey:"Key",colStatus:"ç¶æ
",colPolicy:"ã¬ã¼ãå¶éããªã·ã¼",colLastUsed:"æçµä½¿ç¨",colCreated:"ä½ææ¥æ",colExpires:"æå¹æé",colSpend:"æ¶è²»é¡",spendTitle:"æ¶è²»å
訳",spend30d:"éå» 30 æ¥",spendAllTime:"ç´¯è¨",spendRequests:"ãªã¯ã¨ã¹ãæ°"},cMn="ã³ãã¼",dMn="ã³ãã¼æ¸ã¿",uMn={search:FDn,searchPlaceholder:zDn,title:qDn,backToList:HDn,noBlockPerm:VDn,refund:KDn,refunding:GDn,refundConfirm:WDn,refundInitiated:YDn,nav:QDn,freeTokens:XDn,freeQuota:ZDn,subscription:JDn,payments:eMn,refunds:tMn,rewards:nMn,referrals:aMn,audit:oMn,col:sMn,network:rMn,recentCalls:iMn,apiKeys:lMn,copy:cMn,copied:dMn},mMn="Users",pMn="Search users, grant credit, and suspend accounts.",fMn="Email",gMn="Search by email",hMn="Account status",yMn={active:"ã¢ã«ã¦ã³ãã¯æå¹ããµã¤ã³ã¤ã³ã
803¨ gateway å¼ã³åºããå¯è½",suspended:"忢ä¸ãGateway ããã¹ã¦ã®ãªã¯ã¨ã¹ããæå¦ï¼401ï¼"},vMn="Risk",bMn={normal:"ãã¹ã¦ã®ç¡æç¹å
¸ã®å¯¾è±¡",watchlisted:"ç¡æ token ã¨ç»é²ãã¼ãã¹ãªãããã£ã¼ã¸ã¨ gateway å¼ã³åºãã¯å¯è½",blocked:"Gateway ããã¹ã¦ã®ãªã¯ã¨ã¹ããæå¦ï¼401ï¼ãå®å
¨ã«ç¦æ¢"},xMn="Users",$Mn="No users found",wMn="Country",kMn="Last login",CMn="Action",SMn="View",AMn="Deleted",TMn="Set status for {{email}}",RMn='Set {{email}} to "{{status}}"?',PMn="Grant credit",_Mn="Add bonus credit to {{email}}. Recorded in the ledger.",jMn="Amount (USD)",NMn="e.g. 5",DMn="Reason (optional)",MMn="e.g. compensation for downtime",EMn="Type",IMn="Bonus credit",OMn="A gift. Does not count as a top-up.",LMn="Offline payment",UMn="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",BMn="Reference no.",FMn="e.g. bank slip 20260907-001",zMn="Record payment",qMn="Recording...",HMn="Cancel",VMn="Granting...",KMn="Grant",GMn="Grant ${{amount}} to {{email}}? This is a large amount.",WMn="No display name",YMn="Loading...",QMn="score {{score}}",XMn="Email verified",ZMn="Yes",JMn="No",eEn="Signup",tEn="Signup method",nEn="Last login method",aEn="Signup bonus",oEn="Onboarding",sEn="Locale / TZ",rEn="Markup ratio",iEn="Rate limit policy",lEn="Rate limit policy updated.",cEn="Joined",dEn="Never",uEn="Balance",mEn="Wallet & spend",pEn="Total spent",fEn="Recharged",gEn="Bonus granted",hEn="Refunded",yEn="Requests",vEn="Tokens",bEn="Actions",xEn="Identity & risk",$En="Role",wEn="No permitted actions for your role.",kEn="Acquisition source",CEn="Acquisition by source",SEn="Direct / unknown",AEn="Custom sourceâ¦",TEn="Set",REn="Auto-detected: {{source}}",PEn="UTM",_En="Referred by",jEn="ã¡ã¢",NEn="ãã®ã¦ã¼ã¶ã¼ãèå¥ããããã®ã¡ã¢ã追å ",DEn="ã¡ã¢ãä¿å",MEn="ã¡ã¢ãä¿åãã¾ãã",EEn="ã¡ã¢ãªã",IEn="ãã£ã«ã¿ã¼",OEn="Location",LEn="Preferred locale",UEn={title:mMn,description:pMn,email:fMn,searchEmail:gMn,status:hMn,statusEffect:yMn,risk:vMn,riskEffect:bMn,label:xMn,empty:$Mn,country:wMn,lastLogin:kMn,action:CMn,view:SMn,deleted:AMn,setStatusAria:TMn,setStatusConfirm:RMn,grantCredit:PMn,grantDescription:_Mn,amountUsd:jMn,amountPlaceholder:NMn,reason:DMn,reasonPlaceholder:MMn,grantKind:EMn,grantKindBonus:IMn,grantKindBonusHint:OMn,grantKindOffline:LMn,grantKindOfflineHint:UMn,referenceNo:BMn,referenceNoPlaceholder:FMn,recordPayment:zMn,recording:qMn,cancel:HMn,granting:VMn,grant:KMn,largeGrantConfirm:GMn,noDisplayName:WMn,loading:YMn,score:QMn,emailVerified:XMn,yes:ZMn,no:JMn,signup:eEn,signupMethod:tEn,lastLoginMethod:nEn,signupBonus:aEn,onboarding:oEn,localeTz:sEn,markupRatio:rEn,rateLimitPolicy:iEn,rateLimitPolicyChanged:lEn,joined:cEn,never:dEn,walletBalance:uEn,walletSection:mEn,consumed:pEn,recharged:fEn,bonusGranted:gEn,refunded:hEn,requests:yEn,tokens:vEn,actionsSection:bEn,identitySection:xEn,role:$En,noPermittedActions:wEn,acquisitionSource:kEn,acquisitionTitle:CEn,sourceDirect:SEn,sourceCustomPlaceholder:AEn,sourceSet:TEn,sourceCaptured:REn,utm:PEn,referrer:_En,note:jEn,notePlaceholder:NEn,noteSave:DEn,noteSaved:MEn,noteEmpty:EEn,filters:IEn,location:OEn,preferredLocale:LEn},BEn="Webhooks",FEn="Stripe webhook events. Status filter, retry, payload inspection.",zEn="Status",qEn="Event type",HEn="Received",VEn="Event type",KEn="Status",GEn="Mode",WEn="Attempts",YEn="Retry",QEn="Retry queued",XEn="Event {{event}} reset to pending; next job tick will process.",ZEn="Retry failed",JEn="No webhook events yet.",eIn="Stripe events will appear here once your endpoint is registered.",tIn="Loading payload...",nIn="Last error",aIn="Payload (JSON)",oIn={title:BEn,description:FEn,statusFilter:zEn,eventTypeFilter:qEn,receivedAt:HEn,eventType:VEn,status:KEn,mode:GEn,attempts:WEn,retry:YEn,retrySubmittedTitle:QEn,retrySubmittedBody:XEn,retryFailedTitle:ZEn,empty:JEn,emptyHint:eIn,detailLoading:tIn,lastError:nIn,payload:aIn}
803,sIn="API Keys",rIn="10 ç§ã§æåã® key ãåå¾",iIn="ã³ãã¼ã«å¤±æãã¾ãã",lIn={label:"許å¯ããã¢ãã«",allModels:"ãã¹ã¦ã®ã¢ãã«",allHint:"ã«ã¿ãã°å
ã®ãã¹ã¦ã®ã¢ãã«ã許å¯ããã¦ãã¾ãã",noModels:"å©ç¨ã§ããã¢ãã«ã¯ããã¾ããã",selected:"{{count}} 件鏿ä¸",someHint:"{{count}} ä»¶ã®ã¢ãã«ã許å¯ã"},cIn={label:"ã¿ã°",placeholder:"ã¿ã°ãå
¥åã㦠Enter",remove:"åé¤"},dIn="æ¬çªãã¹ãã¼ã¸ã³ã°ããã¼ã éç¨åãã® scoped key ã使ãã¾ãã",uIn="æ´æ°",mIn="ããã©ã«ã key",pIn="Key å",fIn="使ä¸...",gIn="Key ã使",hIn="å®å
¨ãª keyï¼ä¸åº¦ã ã表示ï¼",yIn="API key ãã³ãã¼",vIn="ã³ãã¼ãã¾ãã",bIn="ã³ãã¼",xIn="ä»ããã³ãã¼ãã¦ä¿åãã¦ãã ããããã®ããã«ãéããã¨å®å
¨ãª key ã¯å表示ã§ãã¾ããã",$In="ä¿åãã¾ãã",wIn="API keys ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",kIn="å試è¡",CIn="API keys ã¯ã¾ã ããã¾ãã",SIn="æåã® key ã使ããã¨ãOneHop çµç±ã§ãªã¯ã¨ã¹ããéä¿¡ã§ãã¾ãã",AIn={label:"API keys",tags:"ã¿ã°",name:"åå",key:"Key",status:"ç¶æ
",created:"ä½ææ¥æ",action:"æä½",usage:"使ç¨é",quota:"ä¸é",expires:"æå¹æé",lastUsed:"æçµä½¿ç¨"},TIn="åãæ¶ã",RIn="{{name}} ãåãæ¶ãã¾ããï¼ãã®æä½ã¯å
ã«æ»ãã¾ããã",PIn="key ã«ååãä»ãã¾ããä¸éã¨æå¹æéã¯å¿
è¦ãªå ´åã ã詳細è¨å®ã§å¤æ´ãã¾ãã",_In="æé credit ä¸é",jIn="æå¹æé",NIn="ç¡å¶é",DIn="ä¿åä¸...",MIn="ä¿å",EIn="ãã£ã³ã»ã«",IIn={title:"ç¡å¹å / åãæ¶ãæ¸ã¿",description:"ç¡å¹åã¾ãã¯åãæ¶ããã key ã§ããç¡å¹åããã key ã¯åæå¹åã§ããåãæ¶ããã key ã¯è¨é²ã¨ãã¦æ®ãã¾ãã"},OIn={title:"æå¹ãª key ã¯ããã¾ãã",description:"ä¸ã®ç¡å¹åããã key ãåæå¹åããããæ°ãã key ã使ãã¦ãã ããã"},LIn={import:"CCS ã«ã¤ã³ãã¼ã",client:"CC-Switch ã¯ã©ã¤ã¢ã³ã",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"ãã¬ã¼ã¹ãã«ãã¼ã§ CC Switch ãéãã¾ãããä¿åãã API key ãè²¼ãä»ãã¦ãã ããã",checking:"äºææ§ã確èªãã¦ãã¾ãâ¦",blocked:{title:"{{client}} ã¯ãã®ãã¼ã使ç¨ã§ãã¾ãã",body:"ã{{keyName}}ãã§ã¯ã{{client}} ã使ç¨ã§ããªãã¢ãã«ã®ã¿ã許å¯ããã¦ãã¾ããã¤ã³ãã¼ãããã¨ã¨ã©ã¼ã«ãªãã¾ãã",adjust:"ã¢ãã«ç¯å²ã調æ´",forceImport:"ããã§ãã¤ã³ãã¼ãï¼åä½ãã¾ããï¼"},pin:{title:"{{client}} ç¨ã« {{model}} ã¨ãã¦ã¤ã³ãã¼ã",body:"ã{{keyName}}ãã«ã¯ {{client}} ã®ããã©ã«ãã¢ãã«ãå«ã¾ãã¦ãã¾ããã{{client}} ã®ãªã¯ã¨ã¹ãã¯ããã®ãããã¤ãã¼çµç±ã§æ¬¡ã®ããã«ã«ã¼ãã£ã³ã°ããã¾ãï¼",adjust:"ã¢ãã«ç¯å²ã調æ´",confirm:"{{model}} ã§ã¤ã³ãã¼ã"}},UIn={search:"æ¤ç´¢",searchPlaceholder:"ååã¾ã㯠key ã®æ«å°¾ã§æ¤ç´¢",status:"ç¶æ
",allStatus:"ãã¹ã¦ã®ç¶æ
",clear:"ãã£ã«ã¿ã¼ãã¯ãªã¢",empty:"ãã®æ¡ä»¶ã«ä¸è´ãã key ã¯ããã¾ãã",emptyDescription:"æ¤ç´¢ã¾ãã¯ç¶æ
ãã£ã«ã¿ã¼ãã¯ãªã¢ããã¨ããã¹ã¦ã® key ã表示ããã¾ãã",mobileTitle:"ãã£ã«ã¿ã¼"},BIn={active:"æå¹",inactive:"ç¡å¹",revoked:"åãæ¶ãæ¸ã¿",expired:"æéåã",quota_exhausted:"ä¸éå°é"},FIn={today:"仿¥ {{requests}} ä»¶ · {{credit}}",days30:"30 æ¥ {{requests}} ä»¶ · {{credit}}"},zIn={use:"æ¥ç¶æ
å ±",edit:"ç·¨é",enable:"æå¹å",disable:"ç¡å¹å",delete:"åé¤"},qIn="API key ã使ã",HIn="ä¿åæ¸ã¿ã® key ã§ OneHop gateway ãå¼ã³åºãã¾ããå®å
¨ãª key ã¯ä½ææã«ä¸åº¦ã ã表示ããã¾ãã",VIn={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization ãããã¼",env:"ç°å¢å¤æ°",curl:"cURL",revealing:"key ã復å·ä¸â¦",fullKeyUnavailable:"å®å
¨ãª key ã¯ä½ææã«ä¸åº¦ã ã表示ããã¾ããä¿åããå¤ã使ããã失ãããå ´åã¯æ°ãã key ã使ãã¦ãã ããã",protocolEndpoints:"ãããã³ã« endpoint"},KIn="詳細è¨å®",GIn="API key ã使",WIn="API key ãç·¨é",YIn={label:"ã¢ãã«ã¢ã¯ã»ã¹",all:"ã
803ã¹ã¦ã®ã¢ãã«",limited:"ç¹å®ã®ã¢ãã«ã«å¶é",allHint:"ãã® key ã¯ä»å¾è¿½å ãããã¢ãã«ãå«ãããã¹ã¦ã®ã¢ãã«ãå¼ã³åºãã¾ãã",snapshotHint:"鏿ããã¢ãã«ã®ã¿ãå¾ãã追å ãããã¢ãã«ã¯èªåã§ã¯å«ã¾ãã¾ããã",snapshotHintEdit:"鏿ããã¢ãã«ã®ã¿ãæ°ããã¢ãã«ã¯èªåã§ã¯è¿½å ããã¾ãããããã¹ã¦ã®ã¢ãã«ãã«åãæ¿ããã¨ãã®ãã¯ã¤ããªã¹ããç½®ãæããã¾ãã",searchPlaceholder:"ã¢ãã«ãæ¤ç´¢â¦",selectAllResults:"ç¾å¨ã®çµæããã¹ã¦é¸æï¼{{count}}ï¼",selectedCount:"{{count}} / {{max}} 鏿æ¸ã¿",clear:"ã¯ãªã¢",hiddenSelected:"鏿æ¸ã¿ {{total}} ä»¶ã®ãã¡ {{hidden}} ä»¶ãç¾å¨ã®ãã£ã«ã¿ã¼ã§é表示ã§ã",selectVendor:"{{vendor}} ããã¹ã¦é¸æã{{on}}/{{total}} 鏿æ¸ã¿",emptyTitle:"ä¸è´ããã¢ãã«ã¯ããã¾ãã",emptyDescription:"å¥ã®ã¿ã¤ãã¾ãã¯æ¤ç´¢èªã試ãã¦ãã ããã",loadFailed:"ã¢ãã«ãèªã¿è¾¼ãã¾ããã§ãã",loadFailedHint:"å試è¡ããããããã¹ã¦ã®ã¢ãã«ãã«æ»ãã¦ãã ããã",type:{all:"ãã¹ã¦",text:"ããã¹ã",image:"ç»å",video:"åç»",embedding:"åãè¾¼ã¿"},pickAtLeastOne:"å°ãªãã¨ã1ã¤ã®ã¢ãã«ãé¸ã¶ããããã¹ã¦ã®ã¢ãã«ãã«æ»ãã¦ãã ããã",limitReached:"Reached the {{max}}-model limit"},QIn={title:"API key ã使ãã¾ãã",subtitle:"{{name}} ã®æºåãã§ãã¾ãããä»ããæ¥ç¶ã§ãã¾ãã",onceWarning:"ä¸åº¦ã ã表示ããã¾ããå¾ããå表示ã§ãã¾ããã念ã®ããä»ã³ãã¼ãã¦ãã ããã",connect:"æ¥ç¶",done:"å®äº"},XIn="IP",ZIn="{{date}} ã«åãæ¶ãæ¸ã¿",JIn={title:sIn,emptyTitle:rIn,copyFailed:iIn,allowedModels:lIn,tags:cIn,description:dIn,refresh:uIn,defaultName:mIn,keyName:pIn,creating:fIn,createKey:gIn,fullKeyTitle:hIn,copyApiKey:yIn,copied:vIn,copy:bIn,fullKeyDescription:xIn,savedIt:$In,loadFailed:wIn,retry:kIn,empty:CIn,emptyDescription:SIn,table:AIn,revoke:TIn,revokeConfirm:RIn,formDescription:PIn,monthlyCreditLimit:_In,expiresAt:jIn,unlimited:NIn,saving:DIn,save:MIn,cancel:EIn,parked:IIn,noActive:OIn,ccswitch:LIn,filters:UIn,status:BIn,usage:FIn,actions:zIn,useTitle:qIn,useDescription:HIn,use:VIn,advancedSettings:KIn,createTitle:GIn,editTitle:WIn,scope:YIn,created:QIn,lastUsedIp:XIn,revokedAt:ZIn},eOn="Audit Logs",tOn="High-risk admin actions, by action and time.",nOn="Action",aOn="Clear",oOn={ops_user_update_status:"ã¦ã¼ã¶ã¼ã®ã¹ãã¼ã¿ã¹ãæ´æ°ãã¾ãã",ops_users_allowlist_add:"ç»é²ã¢ã¯ã»ã¹ã追å ãã¾ãã",ops_users_allowlist_update:"ç»é²ã¢ã¯ã»ã¹ãæ´æ°ãã¾ãã",ops_users_allowlist_invite:"ç»é²ã¢ã¯ã»ã¹ã®æå¾
ãéä¿¡ãã¾ãã",ops_users_allowlist_revoke:"ç»é²ã¢ã¯ã»ã¹ãåé¤ãã¾ãã",ops_users_allowlist_restore:"ç»é²ã¢ã¯ã»ã¹ã復å
ãã¾ãã",ops_model_create:"ã¢ãã«ã使ãã¾ãã",ops_model_update:"ã¢ãã«ãæ´æ°ãã¾ãã",ops_model_update_status:"ã¢ãã«ã®ã¹ãã¼ã¿ã¹ãæ´æ°ãã¾ãã",sub2api_pool_create:"ã«ã¼ãã£ã³ã°ãã¼ã«ã使ãã¾ãã",sub2api_pool_test:"ã«ã¼ãã£ã³ã°ãã¼ã«ããã¹ããã¾ãã",sub2api_pool_rotate_secret:"ã«ã¼ãã£ã³ã°ã·ã¼ã¯ã¬ããããã¼ãã¼ã·ã§ã³ãã¾ãã"},sOn="Audit logs",rOn="No audit entries",iOn="Time",lOn="Severity",cOn="Target",dOn={ai_model:"Model",sub2api_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},uOn="対象ã¿ã¤ã",mOn="ãªã¯ã¨ã¹ã ID",pOn={title:eOn,description:tOn,action:nOn,clear:aOn,actions:oOn,label:sOn,empty:rOn,time:iOn,severity:lOn,target:cOn,targetTypes:dOn,targetType:uOn,requestId:mOn},fOn="OneHop ã«ãµã¤ã³ã¤ã³",gOn="ã³ã¼ããå
¥å",hOn="Google ã¾ã㯠Email ã§ç¶è¡",yOn="ã³ã¼ããåãåã Email ãå
¥åãã¦ãã ãã",vOn="{{email}} ã«éä¿¡ããã 6 æ¡ã®ã³ã¼ããå
¥åãã¦ãã ãã",bOn="Google ã§ç¶è¡",xOn="Email ã§ç¶è¡",$On="ã¾ãã¯",wOn="Email",kOn="確èªã³ã¼ããéä¿¡",COn="éä¿¡ä¸...",SOn="確èª",AOn="確èªä¸...",TOn="{{seconds}} ç§å¾ã«åéä¿¡",ROn="ã³ã¼ããåéä¿¡",POn="ç¶è¡ããã¨ã以ä¸ã«åæãããã®ã¨ã¿ãªã
803ãã¾ã:",_On="å©ç¨è¦ç´",jOn="ãã©ã¤ãã·ã¼ããªã·ã¼",NOn={signIn:"ãµã¤ã³ã¤ã³",signOutFailed:"ãµã¤ã³ã¢ã¦ãã«å¤±æãã¾ãã",sendCodeFailed:"ã³ã¼ãã®éä¿¡ã«å¤±æãã¾ãã",notAllowed:"ãã®ã¡ã¼ã«ã¢ãã¬ã¹ã¯ã¾ã ã¢ã¯ã»ã¹ã許å¯ããã¦ãã¾ããã管çè
ã«ç³è«ãã¦ãã ããã",invalidCode:"ã³ã¼ããç¡å¹ã§ã",codeIncorrect:"ã³ã¼ããéãã¾ããããä¸åº¦ã試ããã ãã",googleFailed:"Google ãµã¤ã³ã¤ã³ã«å¤±æãã¾ãã",verifyHuman:"èªè¨¼ãå®äºãã¦ããç¶è¡ãã¦ãã ãã",verifyUnavailable:"人é確èªã䏿çã«å©ç¨ã§ãã¾ãããä¸é¨ã® Google ãã°ã¤ã³ããå©ç¨ããã ããããã°ãããã¦ããã試ããã ããã"},DOn={signInTitle:fOn,enterCodeTitle:gOn,methodIntro:hOn,emailStepIntro:yOn,codeIntro:vOn,continueGoogle:bOn,continueEmail:xOn,or:$On,emailLabel:wOn,sendCode:kOn,sending:COn,verify:SOn,verifying:AOn,resendIn:TOn,resendCode:ROn,termsPrefix:POn,terms:_On,privacy:jOn,errors:NOn},MOn="è«æ±",EOn="Credits ããã£ã¼ã¸ããã¯ã¼ãã³ãå¼ãæãã¦ãã¦ã©ã¬ããå±¥æ´ã確èªãã¾ãã",IOn={bonuses:"ãã¼ãã¹",topups:"ãã£ã¼ã¸",usage:"使ç¨é"},OOn={available:"åæ æ¸ã¿",availableHint:"å©ç¨å¯è½æ®é«ã«åæ æ¸ã¿",frozen:"ä¿çä¸ï¼åçµï¼",frozenHint:"ç´{{days}}æ¥å¾ã«åæ ",frozenHintGeneric:"ä¿çæéçµäºå¾ã«åæ ",title:"ç´¹ä»å ±é
¬",viewDetails:"ç´¹ä»æç´°ã表示"},LOn={noUsage:"éå» 30 æ¥éã®ä½¿ç¨éã¯ããã¾ãã",perDay:"1 æ¥å¹³å {{amount}}",daysLeft:"ç¾å¨ã®ãã¼ã¹ã§ç´ {{days}} æ¥å"},UOn={amountUsd:"éé¡ (USD)",minAmountHint:"æä½ãã£ã¼ã¸é¡ã¯ {{amount}} ã§ãã",apply:"é©ç¨",get:"åãåã",onehopCredits:"OneHop credits",pay:"æ¯æã",poweredByStripe:"Stripe ã«ããä¿è·",poweredBy:"{{provider}} ã«ããä¿è·",secureCheckout:"å®å
¨ãªãã¹ãåãã§ãã¯ã¢ã¦ã",secureCheckoutShort:"å®å
¨ãªãã§ãã¯ã¢ã¦ã",taxExclusiveNotice:"ç¨é¡ã¯ãã§ãã¯ã¢ã¦ãæã«ã客æ§ã®å°åã«å¿ãã¦è¨ç®ããããã®éé¡ã«å ç®ããã¾ãã",presets:"ããªã»ããéé¡",promoCode:"ããã¢ã¼ã·ã§ã³ã³ã¼ã",promoCodePlaceholder:"ã³ã¼ããå
¥å",serviceFee:"ãµã¼ãã¹ææ°æ",title:"ãã£ã¼ã¸",topupAmount:"ãã£ã¼ã¸éé¡",totalDue:"æ¯æç·é¡",payCta:"{{amount}} ãæ¯æã",previewing:"確èªä¸â¦",discount:"ã¯ã¼ãã³å²å¼",couponBelowMin:"å²å¼å¾ã®éé¡ãä½ããã¾ããéé¡ãå¢ãããå¥ã®ã³ã¼ããã試ããã ããã",maintenanceTitle:"ãæ¯æãã䏿çã«ãå©ç¨ããã ãã¾ãã",maintenanceDescription:"ãæ¯æãã䏿çã«ãå©ç¨ããã ãã¾ããããæ¯æããå¿
è¦ãªå ´å㯠Telegram ã§ãé£çµ¡ãã ããã",contactTelegram:"Telegram ã§ãåãåãã",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"æå·è³ç£ã§æ¯æã (USDC / USDT)",payOnStripe:"ãæ¯æã㯠Stripe ã®å®å
¨ãªãã§ãã¯ã¢ã¦ããã¼ã¸ã§å®äºãã¾ãã",payOnProvider:"ãæ¯æã㯠{{provider}} ã®å®å
¨ãªãã§ãã¯ã¢ã¦ããã¼ã¸ã§å®äºãã¾ãã",payOnHostedCheckout:"ãæ¯æãã¯å®å
¨ãªãã¹ãåãã§ãã¯ã¢ã¦ããã¼ã¸ã§å®äºãã¾ãã",amountPrecision:"{{provider}} ã¯å°æ°ç¹ä»¥ä¸ 2 æ¡ã¾ã§ã® USD éé¡ã«å¯¾å¿ãã¦ãã¾ããéé¡ã¾ãã¯ããã¢ã¼ã·ã§ã³ã³ã¼ãã調æ´ãã¦ãã ããã",couponBonus:"ã¯ã¼ãã³ãã¼ãã¹",couponBonusExpiry:"ãã¼ãã¹ã¯ã¬ã¸ããã¯ãæ¯æãå¾ {{days}} æ¥ã§å¤±å¹ãã¾ãã",couponInvalid:"ãã®ã³ã¼ãã¯é©ç¨ã§ãã¾ãããå¥ã®ã³ã¼ããã試ããã ããã",couponErrors:{limitReached:"ãã®ã³ã¼ãã®å©ç¨åæ°ãä¸éã«éãã¦ãã¾ãã",invalid:"ãã®ã³ã¼ãã¯ç¡å¹ã§ãã",expired:"ãã®ã³ã¼ãã¯æå¹æéåãã§ãã",exhausted:"ãã®ã³ã¼ãã¯å©ç¨æ ãä¸éã«éãã¾ããã",unavailable:"ãã®ã³ã¼ãã¯ç¾å¨ä½¿ç¨ä¸ã§ãããã°ãããã¦ããã試ããã ããã"},tierBonus:"ãã£ã³ãã¼ã³ãã¼ãã¹",tierBonusExpiry:"ãã¼ãã¹ã¯ã¬ã¸ããã¯ãæ¯æãå¾ {{days}} æ¥ã§å¤±å¹ãã¾ãã",tierBonusRestricted:"ãã¼ãã¹ã¯ã¬ã¸ããã¯æ¬¡ã®ã¢ãã«ã«ã®ã¿å©ç¨ã§ãã¾ã: {{models}}",nextTierPercent:"ã㨠{{amount}} ãã£ã¼ã¸ãã㨠{{percent}}% ã®ãã¼ãã¹ã¯ã¬ã¸ãããç²å¾ã§ãã¾ãã",nextTierBonus:"ã㨠{{amount}} ãã£ã¼ã¸ãã㨠{{bonus}} ã®ãã¼ãã¹ã¯ã¬ã¸ãããç²å¾ã§ãã¾ãã",tierCapReached:"ãã®ãã£ã³ãã¼ã³ã®ãã¼ãã¹ä¸éã«ãã§ã«éãã¦ãã¾ãã"},BOn="Credits ã追å ",FOn="使ä¸...",zOn="å©ç¨å¯è½ Credit",qOn="ãã£ã¼ã¸",HOn="決æ¸ã¯ Stripe",VOn="éé¡ (USD)",KOn="ããªã»ãããã£ã¼ã¸éé¡",GOn="ã¯ã¼ãã³ãå¼ãæã",WOn="ã¯ã¼ãã³ã³ã¼ã",YOn="å¼ãæãä¸...",QOn="å¼ãæã",XOn="ã¯ã¼ãã³ãå¼ãæãã¾ãããæ®é«ãæ´æ°ãã¦ãã¾ãã",ZOn="å®å
¨ãª checkout ã«ç§»åãã¦ãã¾ã...",JOn="è«æ±ãµããªã¼ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",e3n="ãã£ã¼ã¸ã«å¤±æãã¾ãã",t3n="è«æ±ã¢ã¯ãã£ããã£ã¿ã",n3n="åå¼",a3n="Credit ä»ä¸",o3n="å
803å¼ã¿ã¤ã",s3n="ã½ã¼ã¹",r3n="ã¾ã åå¼ã¯ããã¾ãã",i3n="ãã£ã¼ã¸ãè«æ±ãä»ä¸ãããã«è¡¨ç¤ºããã¾ãã",l3n="å°å¸³ã¨ã³ããª",c3n="æå»",d3n="ã¿ã¤ã",u3n="éé¡",m3n="æ®é«",p3n="ã¾ã ä»ä¸ã¯ããã¾ãã",f3n="ç»é²ãã¼ãã¹ãã¯ã¼ãã³ãæåä»ä¸ãããã«è¡¨ç¤ºããã¾ãã",g3n="ç¶æ
",h3n={successTitle:"決æ¸ãåé ãã¾ãã",polling:"ã¦ã©ã¬ããã«åæ ä¸ã§ã... ç´ 30 ç§ã",delayed:"åæ ãé
ãã¦ãã¾ããå°ãå¾
ã£ã¦åèªã¿è¾¼ã¿ããããStripe ã®é 忏ãã確èªãã ããã",cancelledTitle:"決æ¸ã¯ãã£ã³ã»ã«ããã¾ãã",cancelledBody:"è«æ±ã¯çºçãã¦ãã¾ãããæºåãã§ãããå度ã試ããã ããã",failedTitle:"決æ¸ã«å¤±æãã¾ãã",failedBody:"ãæ¯æããå®äºã§ãã¾ããã§ãããã¯ã¬ã¸ããã¯å ç®ããã¦ãã¾ãããå度ã試ãããã ãããå¥ã®ãæ¯æãæ¹æ³ããå©ç¨ãã ããã"},y3n={text:"Credit ã¯åæãã®ãµã¼ãã¹æ®é«ã§ãããéè¡é éã§ã¯ããã¾ãããæ¶è²»æ¸ã¿ Credit ã¯è¿éä¸å¯ãä¾¡æ ¼ã¯ãã¹ã¦ USD 建ã¦ã§ãã詳ããã¯",tosLink:"å©ç¨è¦ç´"},v3n="é 忏",b3n="éãã¦ãã¾ã...",x3n="è«æ±ãã¼ã¿ã«ãéãã¾ããã§ãã",$3n={title:"æè¿ã®ãã£ã¼ã¸",subtitle:"ç´è¿ 90 æ¥ã24 æé以å
ãªãè¿éå¯è½ã",loading:"ãã£ã¼ã¸å±¥æ´ãèªã¿è¾¼ã¿ä¸...",date:"æ¥ä»",amount:"éé¡",credits:"Credit",status:"ç¶æ
",refund:"è¿é",alreadyRefunded:"è¿éæ¸ã¿",windowExpired:"è¿éæéåãï¼24 æéï¼",confirmTitle:"è¿éã®ç¢ºèª",confirmBody:"è¿é㯠Stripe ã«ãã 1ï½3 å¶æ¥æ¥ã§å¦çããã¾ããã¦ã¼ã¶ã¼èµ·ç¥¨ã®è¿éã«ã¯ãã©ãããã©ã¼ã ææ°æ ({{fee}}) ããããã¾ãã",amountLabel:"è¿éé¡ (USD)",maxLabel:"ä¸é ${{value}}",requestedLabel:"è¿éç³è«é¡",platformFeeLabel:"ãã©ãããã©ã¼ã ææ°æ ({{fee}})",cardReturnLabel:"ã«ã¼ãã¸ã®è¿éé¡",bonusForfeitureHint:"ãã®ãã£ã¼ã¸ã«ä¼´ã£ã¦ä»ä¸ãããããã¢ã¼ã·ã§ã³ Credit ã¯ãæåã§å¤±å¹ãã¾ãã",cancel:"ãã£ã³ã»ã«",confirm:"è¿éãå®è¡",submitting:"éä¿¡ä¸...",refundSubmittedTitle:"è¿éãåãä»ãã¾ãã",refundSubmittedBody:"Stripe ã 1ï½3 å¶æ¥æ¥ä»¥å
ã«ã«ã¼ãã¸è¿éãã¾ãã",refundFailedTitle:"è¿éã«å¤±æãã¾ãã",balance:"å
¥é",confirmAmount:"{{amount}} ãè¿é"},w3n={title:"æ®é«ã¢ã©ã¼ã",description:"æ®é«ãå°ãªããªã£ãããç¥ãããã¾ãã",emailLabel:"ã¡ã¼ã«ã§éç¥",webhookLabel:"Webhook",autorechargeLabel:"èªåãã£ã¼ã¸",autorechargeUnsupported:"ç¾å¨ã®æ±ºæ¸ãããã¤ãã¼ã§ã¯èªåãã£ã¼ã¸ããå©ç¨ããã ãã¾ããã",autorechargeAddCardHint:"ã«ã¼ããç»é²ãã¦æ®é«ãèªåã§è£å
",autorechargeTopUp:"ãã£ã¼ã¸é¡",autorechargeWhenBelow:"æ®é«ã次ãä¸åã£ãã",autorechargeThreshold:"èªåãã£ã¼ã¸ã®ãããå¤",autorechargeAmount:"èªåãã£ã¼ã¸é¡",autorechargeDisabledFailures:"é£ç¶ãã失æã«ããèªåãã£ã¼ã¸ãç¡å¹ã«ãã¾ãããã«ã¼ããæ´æ°ãã¦å度æå¹ã«ãã¦ãã ããã",autorechargeIncomplete:"èªåãã£ã¼ã¸é¡ã¨ $0 ãã大ãããããå¤ãè¨å®ãã¦ãã ããã",test:"ãã¹ã",testing:"ãã¹ãä¸â¦",testQueued:"ãã¹ãé
ä¿¡ããã¥ã¼ã«è¿½å ãã¾ãã ââ ã¨ã³ããã¤ã³ãã確èªãã¦ãã ãã",testFailed:"ãã¹ãé
ä¿¡ã®ãã¥ã¼è¿½å ã«å¤±æãã¾ãã",signingSecret:"ç½²åã·ã¼ã¯ã¬ãã",secretOnSave:"ä¿åããã¨ç½²åã·ã¼ã¯ã¬ãããçæããã¾ãã",rotate:"ãã¼ãã¼ã·ã§ã³",secretRotated:"ç½²åã·ã¼ã¯ã¬ããããã¼ãã¼ã·ã§ã³ãã¾ãã",rotateFailed:"ã·ã¼ã¯ã¬ããã®ãã¼ãã¼ã·ã§ã³ã«å¤±æãã¾ãã",secretCopied:"ç½²åã·ã¼ã¯ã¬ãããã³ãã¼ãã¾ãã",saved:"ã¢ã©ã¼ãè¨å®ãä¿åãã¾ãã",saveFailed:"ã¢ã©ã¼ãè¨å®ã®ä¿åã«å¤±æãã¾ãã",loadFailed:"ã¢ã©ã¼ãè¨å®ãèªã¿è¾¼ãã¾ããã§ãã",thresholdRequired:"ã¢ã©ã¼ããæå¹ã«ããã«ã¯ $0 ãã大ãããããå¤ãè¨å®ãã¦ãã ããã",webhookUrlRequired:"webhook ã® https:// URL ãå
¥åãã¦ãã ããã",thresholdOrderBad:"ã¢ã©ã¼ãã®ãããå¤ã¯èªåãã£ã¼ã¸ã®ãããå¤ä»¥ä¸ã«ãã¦ãã ããã",card:"ã«ã¼ã",changeCard:"夿´",removeCard:"åé¤",cardRemoved:"ã«ã¼ããåé¤ãã¾ãã",cardRemoveFailed:"ã«ã¼ãã®åé¤ã«å¤±æãã¾ãã",cardSetupFailed:"ã«ã¼ãç»é²ãéå§ã§ãã¾ããã§ãã",lowBalanceGroup:"使®é«ã¢ã©ã¼ã",thresholdLabel:"ã¢ã©ã¼ããããå¤"},k3n={title:"åå¼å±¥æ´",idSearch:"åå¼ ID",amountRange:"éé¡ç¯å² (USD)",min:"æå°",max:"æå¤§",clear:"ã¯ãªã¢",retry:"å試
803è¡",empty:"ãã®ç¯å²ã®åå¼ã¯ããã¾ãã",date:"æ¥ä»",typeMethod:"ç¨®é¡ / æ¹æ³",description:"説æ",action:"æä½",prevMonth:"åã®æ",nextMonth:"æ¬¡ã®æ",viewInvoices:"è«æ±æ¸ã表示",emptyNew:"åå¼ã¯ã¾ã ããã¾ãã",emptyNewDesc:"ãã£ã¼ã¸å¾ããã£ã¼ã¸ããã¼ãã¹ãè¿éã®è¨é²ãããã«è¡¨ç¤ºããã¾ãã",topUpCta:"ãã£ã¼ã¸ãã",emptyFiltered:"ä¸è´ããåå¼ã¯ããã¾ãã",emptyFilteredDesc:"ãã£ã«ã¿ã¼ãè§£é¤ããããæéãåºãã¦ãã ããã",clearFilters:"ãã£ã«ã¿ã¼ãã¯ãªã¢"},C3n="æ®é«ãå°ãªãããããªã¯ã¨ã¹ãã«å½±é¿ããå¯è½æ§ãããã¾ãããã£ã¼ã¸ãããèªåãã£ã¼ã¸ãæå¹ã«ãã¦ãã ããã",S3n="æ®é«ãå°ãªãããããªã¯ã¨ã¹ãã«å½±é¿ããå¯è½æ§ãããã¾ãããã£ã¼ã¸ãã¦ç¶è¡ãã¦ãã ããã",A3n={creditPurchase:"ã¯ã¬ã¸ãããã£ã¼ã¸",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"ã¯ã¼ãã³ãã¼ãã¹",referralCashback:"ç´¹ä»ãã£ãã·ã¥ããã¯",referralInviteeCashback:"被紹ä»è
ãã¼ãã¹",redeemCode:"å¼ãæãã³ã¼ã {{code}}",redeemCodeReversal:"å¼ãæãã³ã¼ãã®åæ¶",stripeRefund:"Stripe è¿é",bonusReversal:"è¿éã«ãããã¼ãã¹åå"},T3n={title:"å°ç¨ã¯ã¬ã¸ãã",subtitle:"ç¹å®ã¢ãã«ã®ã¿ã§ä½¿ãããã¼ãã¹ã¯ã¬ã¸ããã§ããæ®é«ã¨ã¯å¥ç®¡çããã¾ãã",onlyModels:"{{models}} ã®ã¿",onlyModelsGeneric:"対象éå®ã¢ãã«",validUntil:"{{date}} ã¾ã§æå¹",noExpiry:"æå¹æéãªã",useInChat:"Use in chat"},R3n={card:"ã«ã¼ã",alipay:"Alipay",wechatPay:"WeChat Pay"},P3n={title:"å¼ãæãã³ã¼ã",description:"å¼ãæãã³ã¼ãããæã¡ã§ãããå
¥åããã¨é¡é¢ãæ®é«ã«ãã£ã¼ã¸ããã¾ãã",placeholder:"ä¾:OHR-XXXXXXXX",redeem:"å¼ãæãã",redeeming:"å¼ãæãä¸â¦",success:"{{amount}} ãæ®é«ã«ãã£ã¼ã¸ãã¾ããã",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"ãã®ã³ã¼ãã¯ç¡å¹ã§ãã",expired:"ãã®ã³ã¼ãã¯æå¹æéåãã§ãã",alreadyRedeemed:"ãã®ã³ã¼ãã¯æ¢ã«ä½¿ç¨ããã¦ãã¾ãã",perUserLimit:"ãã®ãããã®å¼ãæãä¸éã«éãã¦ãã¾ãã"}},_3n={title:MOn,description:EOn,breakdown:IOn,referralRewards:OOn,burnRate:LOn,topup:UOn,addCredits:BOn,creating:FOn,availableCredit:zOn,topUp:qOn,poweredByStripe:HOn,amountUsd:VOn,presetAmounts:KOn,redeemCoupon:GOn,couponCode:WOn,redeeming:YOn,redeem:QOn,couponRedeemed:XOn,redirecting:ZOn,summaryFailed:JOn,topupFailed:e3n,tabsLabel:t3n,transactions:n3n,creditGrants:a3n,transactionType:o3n,source:s3n,noTransactions:r3n,noTransactionsDescription:i3n,ledgerEntries:l3n,time:c3n,type:d3n,amount:u3n,balance:m3n,noGrants:p3n,noGrantsDescription:f3n,status:g3n,topupBanner:h3n,compliance:y3n,receipts:v3n,openingPortal:b3n,portalFailed:x3n,recentTopups:$3n,alerts:w3n,history:k3n,lowBalanceWarning:C3n,lowBalanceWarningNoAutoTopup:S3n,ledgerDesc:A3n,earmarked:T3n,paymentMethod:R3n,redeemCard:P3n},j3n="ãã£ã¼ããèªã¿è¾¼ãã¾ããã§ãã",N3n="ãã¼ã¿ãããã¾ãã",D3n="ã¾ã ãã£ã¼ãåã§ãããã¼ã¿ãããã¾ããã",M3n={errorTitle:j3n,emptyTitle:N3n,emptyDescription:D3n},E3n={copy:"ã³ãã¼",regenerate:"åçæ",shareComingSoon:"å
±æï¼è¿æ¥å
¬éï¼",download:"ãã¦ã³ãã¼ã",copyLink:"ãªã³ã¯ãã³ãã¼",newChat:"æ°ãããã£ãã",deleteChat:"ãã£ãããåé¤",openConversationList:"ä¼è©±ãªã¹ããéã",openSettings:"ãã£ããè¨å®",collapseSidebar:"ãµã¤ããã¼ãæãããã",expandSidebar:"ãµã¤ããã¼ãå±é",cancel:"ãã£ã³ã»ã«",apply:"é©ç¨",newChatTooltip:"æ°ãããã£ããã使",copied:"ã³ãã¼ãã¾ãã"},I3n={placeholderReady:"æ°ããä¼è©±ãéå§...",placeholderNoModel:"å
ã«ä¸ã§ã¢ãã«ã鏿ãã¦ãã ãã",attachmentTooLarge:"ãã¡ã¤ã«ã {{limit}} ãè¶
ãã¦ããããã¢ãããã¼ãã§ãã¾ãã",attachmentUnsupported:"ãµãã¼ãããã¦ããªããã¡ã¤ã«å½¢å¼ã§ããPNGãJPEGãWebPãGIFãMP4ãWebMãMOV ã使ç¨ãã¦ãã ããã",unsupportedVision:"ãã®ã¢ãã«ã¯ç»åã»åç»å
¥åã«å¯¾å¿
803ãã¦ãã¾ããããã¡ã¤ã«ãããããããåã«ã¢ãã«ãåãæ¿ãã¦ãã ããã",send:"éä¿¡",abort:"忢",attachImage:"ç»åã追å ",attachMedia:"ç»åã»åç»ã追å ",removeAttachment:"åé¤",shortcutSend:"éä¿¡",shortcutNewLine:"æ¹è¡",shortcutAbort:"忢",frameFirst:"æåã®ãã¬ã¼ã ",frameLast:"æå¾ã®ãã¬ã¼ã ",frameReference:"åç
§ç»å",imageMode:"ç»åçæ",videoMode:"åç»çæ",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"æè",reasoningOff:"ãªã",reasoningAlways:"常ã«ãªã³",placeholderTopupRequired:"ãã®ã¢ãã«ã¯ãã£ã¼ã¸æ¸ã¿ã®ã¢ã«ã¦ã³ãéå®ã§ãããã£ã¼ã¸ããã¨ããã§ä½¿ãã¾ã"},O3n={modelUnavailable:"ã¢ãã« {{model}} ã¯ç¾å¨å©ç¨ã§ãã¾ãããããã³ããã¯ä¿åããã¦ãã¾ãã",rateLimited:"åæãªã¯ã¨ã¹ããå¤ããã¾ãããã°ãããã¦ããå試è¡ãã¦ãã ããã",accountDisabled:"ãã®ã¢ã«ã¦ã³ãã¯ç¡å¹åããã¦ããããããã£ãããç¶è¡ã§ãã¾ããã",attachmentsUploading:"ç»åãã¢ãããã¼ãä¸ã§ããå°ãå¾
ã£ã¦ããéä¿¡ãã¦ãã ããã",attachmentsFailed:"ç»åã®ã¢ãããã¼ãã«å¤±æãã¾ãããåé¤ãã¦ããå度ã試ããã ããã"},L3n={title:"ããã§ä»»æã®ã¢ãã«ããã¹ãã§ãã¾ãã",body:"ä»»æã®ã¢ãã«ã¨ç´æ¥ãã£ããã§ãã¾ããå©ç¨å㯠PAYG ã¦ã©ã¬ããã«è«æ±ããã¾ãã",starters:{compareModels:"åãã³ã¼ãã£ã³ã°ã¿ã¹ã¯ã§ GPT-5.5 㨠Claude Opus ãæ¯è¼ãã",analyzeImage:"ã¢ã¼ããã¯ãã£å³ãåæãããªã¹ã¯ãè¦ç´ãã",draftPrompt:"ãµãã¼ãã¨ã¼ã¸ã§ã³ãç¨ã® system prompt ã使ãã",generateImage:"ã¯ãªã¼ã³ãª SaaS ã¹ã¿ã¤ã«ã®ååãã¼ãã¼ç»åãçæãã"}},U3n={untitled:"ç¡é¡ã®ãã£ãã",deleteConfirm:"ã{{title}}ããåé¤ãã¾ããï¼",emptyTitle:"ã¾ã ä¼è©±ãããã¾ãã",emptyBody:"ä¸ã® + æ°ãããã£ãã ããéå§ãã¦ãã ããã",listLabel:"ä¼è©±ãªã¹ã",groups:{today:"仿¥",yesterday:"æ¨æ¥",earlier:"以å"},menu:{rename:"ååã夿´",delete:"åé¤"},deleteTitle:"ä¼è©±ãåé¤ãã¾ããï¼"},B3n={paygWallet:"PAYG ã¦ã©ã¬ãã"},F3n={chooseModel:"ã¢ãã«ã鏿",searchPlaceholder:"ã¢ãã«ãæ¤ç´¢...",emptyTitle:"ã¢ãã«ãè¦ã¤ããã¾ãã",emptyBody:"å¥ã®æ¤ç´¢èªã¾ãã¯ã¿ãã試ãã¦ãã ããã",protocols:"{{count}} protocols",context:"{{value}} ctx",tabs:{all:"ãã¹ã¦",text:"ããã¹ã",image:"ç»å",video:"åç»"},maxOut:"åºå {{value}}",unavailable:"䏿çã«å©ç¨ä¸å¯",requiresTopup:"ãã£ã¼ã¸ã§è§£é¤"},z3n={title:"ãã£ããè¨å®",protocol:"Protocol",unlimited:"ç¡å¶é",fields:{memory_limit:{label:"ãã£ããã¡ã¢ãª"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"æå¤§ Tokens",placeholder:"128000"},service_tier:{label:"ãµã¼ãã¹ã¿ã¤ã¢",options:{standard:"Standard",priority:"Priority",flex:"Flex"}},thinking_budget:{label:"æèäºç® (tokens)",placeholder:"ä¾: 2000"},stop_sequences:{label:"忢ã·ã¼ã±ã³ã¹",placeholder:"ã«ã³ãåºåããä¾: END, STOP",itemLabel:"忢"},system_prompt:{label:"System Prompt",placeholder:"system prompt ãå
¥å..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"æé»",explicit:"æç¤º"}},image_size:{label:"ç»åè§£å度"},image_resolution:{label:"è§£å度"},image_quality:{label:"ç»åå質",options:{Auto:"èªå",auto:"èªå",low:"ä½",medium:"ä¸",high:"é«"}},video_ratio:{label:"ã¢ã¹ãã¯ãæ¯"},video_resolution:{label:"åç»è§£å度"},video_duration_seconds:{label:"é·ã"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"ç»åæ°"},image_aspect_ratio:{label:"ã¢ã¹ãã¯ãæ¯"},reasoning_effort:{label:"æ¨è«ã®å¼·åº¦",options:{none:"ãªã",minimal:"æå°",low:"ä½",medium:"ä¸",high:"é«",xhigh:"極é«",max:"æå¤§"}},reasoning_pro:{label:"Pro ã¢ã¼ã"},reasoning_context:{label:"æ¨è«ã³ã³ããã¹ã",options:{auto:"èªå",current_turn:"ç¾å¨ã®ã¿ã¼ã³",all_turns:"ãã¹ã¦ã®ã¿ã¼ã³"}},reasoning_enabled:{label:"æè"},reasoning_always:{label:"æè",value:"常ã«ãªã³"}}},q3n={estimating:"è¦ç©ããä¸...",settling:"確å®ä¸...",input:"å
¥å",output:"åºå",milliseconds:"ms",realCost:"å®éã®ã³ã¹ã",latency:"ã¬ã¤ãã³ã·",logDetail:"ãã°è©³ç´°"},H3n={copied:"ç»åãªã³ã¯ãã³ãã¼ãã¾ãã",expired:"ç»åãªã³ã¯ã®æå¹æéãåãã¦ãã¾ãããªã³ã¯ãã³ãã¼ãã¦å度éãããåçæãã¦ãã ããã",attachment:"[ç»åæ·»ä»]"},V3n={message:"ãã®ãã£ãã㯠PAYG ã¦ã©ã¬ããã«è«æ±ããã¾ã",balance:"æ®é«",billingLink:"è«æ±",dismiss:"éãã"},K3n={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},G3n={trigger:"ã³ã¼ãã¨ãã¦ã³ãã¼",copied:"{{format}} ã¨ãã¦ã³ãã¼ãã¾ãã",failed:"ã³ãã¼ã«å¤±æãã¾ãã",failedDescription:"ãã©ã¦ã¶ã«ãã£ã¦ã¯ãªãããã¼ã権éããããã¯ããã¦ããå¯è½æ§ãããã¾ãã"},W3n={interrupted:"[䏿æ¸ã¿]",sending:"éä¿¡ä¸"},Y3n={title:"æèéç¨",duration:"{{seconds}}s æè"},Q3n={title:"åç»çæã¯è¿æ¥å
¬éäºå®ã§ã",body:"ãã®ã¢ãã«ã¯ç¢ºèªç¨ã«è¡¨ç¤ºããã¦ãã¾ãããåç»éä¿¡ã¯ã¾ã æå¹åããã¦ãã¾ããã",switchToText:"ããã¹ãã¢ãã«ã«åãæ¿ã"},X3n={imageGenerating:"ç»åãçæä¸",videoGenerating:"åç»ãçæä¸",stage:{queued:"å¾
æ©ä¸",routing:"ã«ã¼ãã£ã³ã°ä¸",generating:"çæä¸",storing:"ä¿åä¸",settling:"ç²¾ç®ä¸"}}
803,Z3n={INSUFFICIENT_CREDITS:"æ®é«ä¸è¶³",RATE_LIMITED:"ãªã¯ã¨ã¹ããå¤ããã¾ã",rate_limit_error:"ãªã¯ã¨ã¹ããå¤ããã¾ã",MODEL_NO_VISION:"ãã®ã¢ãã«ã¯ç»åå
¥åã«å¯¾å¿ãã¦ãã¾ãã",CONTENT_REFUSED:"ã¢ãã«ããã®ãªã¯ã¨ã¹ããæå¦ãã¾ãã",EMPTY_RESPONSE:"ã¢ãã«ã空ã®å¿çãè¿ãã¾ãã",upstream_error:"䏿µãµã¼ãã¹ã®ã¨ã©ã¼",overloaded_error:"䏿µãµã¼ãã¹ãæ··éãã¦ãã¾ã",upstream_invalid_json:"䏿µã®å¿çã䏿£ã§ã",stream_read_error:"å¿çã®èªã¿åãã䏿ããã¾ãã",invalid_api_key:"䏿µã®èªè¨¼ã«å¤±æãã¾ãã",model_unavailable:"ã¢ãã«ã䏿çã«å©ç¨ã§ãã¾ãã",no_image:"ç»åãçæã§ãã¾ããã§ãã",no_body:"䏿µããã®å¿çãããã¾ãã",http_error:"ãªã¯ã¨ã¹ãã«å¤±æãã¾ãã",session_create_failed:"ã»ãã·ã§ã³ã®ä½æã«å¤±æãã¾ãã"},J3n={title:"ãã£ã¼ã¸ããã¨ãã®ã¢ãã«ã使ãã¾ã",body:"ãã£ã¼ã¸æ¸ã¿ã®ã¢ã«ã¦ã³ãéå®ã§ããéé¡ãåãããã£ã¼ã¸ããã°ããã«è§£é¤ãããæ®é«ã¯å¾é課éã®ã¾ã¾ã§ãã",cta:"ãã£ã¼ã¸ãã"},eLn={actions:E3n,composer:I3n,errors:O3n,empty:L3n,sidebar:U3n,header:B3n,modelSelector:F3n,settings:z3n,metrics:q3n,image:H3n,payg:V3n,earmark:K3n,copyAsCode:G3n,status:W3n,thinking:Y3n,video:Q3n,media:X3n,errorCodes:Z3n,topupLock:J3n},tLn="èªã¿è¾¼ã¿ä¸...",nLn="ã¢ã«ã¦ã³ã",aLn="è¨èª",oLn="ãµã¤ã³ã¤ã³",sLn="ãµã¤ã³ã¢ã¦ã",rLn="ãµã¤ã³ã¢ã¦ãä¸...",iLn="夿´ãä¿å",lLn="ä¿åä¸...",cLn="ä¿åãã¾ããã",dLn="æ»ã",uLn="å試è¡",mLn="ãããã¢ããã®ãµã¼ãã¹ææ°æã 5% ãªãã",pLn="ä¿å",fLn="ãã£ã³ã»ã«",gLn="ã¯ãªã¢",hLn="ãªã»ãã",yLn="ã³ãã¼ãã¾ãã",vLn="ã³ãã¼ã«å¤±æãã¾ãã",bLn="éãã",xLn="åè¨",$Ln={timestamp:"ã¿ã¤ã ã¹ã¿ã³ã",local:"ãã¼ã«ã«",relative:"ç¸å¯¾æå»"},wLn="ã³ãã¼",kLn={title:"ãã©ã¦ã¶ã§éãã¦ãã ãã",description:"<b>ã¢ããªå
ãã©ã¦ã¶</b>ã§è¡¨ç¤ºãã¦ãã¾ãã<b>Google ãã°ã¤ã³ã¨äººé確èªã¯ããã§ã¯å©ç¨ã§ãã¾ãã</b>ãç¶ããã«ã¯ã使ãã®ãã©ã¦ã¶ã§éãã¦ãã ããã",hintWechat:"å³ä¸ã® ··· ã¡ãã¥ã¼ããããã©ã¦ã¶ã§éããã鏿ãã¦ãã ããã",hintGeneric:"å³ä¸ã®ã¡ãã¥ã¼ããããã©ã¦ã¶ / Safari ã§éããã鏿ãã¦ãã ããã",copyLink:"ãªã³ã¯ãã³ãã¼",continueAnyway:"ãã®ã¾ã¾ç¶ãã"},CLn="ãã¹ã¦",SLn="é©ç¨ä¸",ALn="ä»»æ",TLn="åé¤",RLn={loading:tLn,account:nLn,language:aLn,signIn:oLn,signOut:sLn,signingOut:rLn,saveChanges:iLn,saving:lLn,saved:cLn,back:dLn,retry:uLn,topUpPromo:mLn,save:pLn,cancel:fLn,clearAll:gLn,reset:hLn,copied:yLn,copyFailed:vLn,dismiss:bLn,total:xLn,time:$Ln,copy:wLn,inAppBrowser:kLn,all:CLn,active:SLn,optional:ALn,remove:TLn},PLn="ããã·ã¥ãã¼ã",_Ln="creditã使ç¨éãgateway ã®ä¸»è¦ãªå¥å
¨æ§ã 1 ã¤ã®ã³ã³ã½ã¼ã«ã§ç¢ºèªãã¾ãã",jLn="API key ã使",NLn={creditBalance:"Credit æ®é«",requestsToday:"仿¥ã®ãªã¯ã¨ã¹ã",activeApiKeys:"æå¹ãª API keys"},DLn={title:"使ç¨éã®æ¨ç§»",description:"éå» 14 æ¥éã®ãªã¯ã¨ã¹ãæ°ã¨èª²é creditã",viewUsage:"使ç¨éãè¦ã",loading:"使ç¨éã®æ¨ç§»ãèªã¿è¾¼ã¿ä¸",empty:"ã¾ã 使ç¨éã¯ããã¾ãã",emptyDescription:"ãªã¯ã¨ã¹ããæµãå§ããã¨ãããã«ä½¿ç¨éã表示ããã¾ãã"},MLn={title:"Credit ã¢ã¯ãã£ããã£",description:"éå» 90 æ¥éã®æ¥æ¬¡ã®èª²é creditã",total:"90 æ¥éã®åè¨",loading:"ã¢ã¯ãã£ããã£ãèªã¿è¾¼ã¿ä¸",activeDays:"éå» {{days}} æ¥éã§ {{count}} æ¥ã¢ã¯ãã£ã",less:"å°",more:"å¤"},ELn={title:"使ç¨éã®å
訳",description:"æ¶è²»ã®å¼·åº¦ãtoken éãæã使ããã¦ããã¢ãã«ã 1 ç»é¢ã«å縮ã",activeDays:"ã¢ã¯ãã£ãæ¥æ°",ofDays:"/ {{days}} æ¥",avgDailyCredit:"1 æ¥å¹³å credit",nonZeroDays:"ã¢ã¯ãã£ãæ¥ããã",peakDay:"ãã¼ã¯æ¥",noPeak:"ã¾ã 使ç¨éã¯ããã¾ãã",tokens:"Tokens",topModel:"主è¦ã¢ãã«",creditShare:"課é credit ã®å²å"},ILn={title:"ã¯ã¤ãã¯ãã«ã¹",requests7d:"7 æ¥éã®ãªã¯ã¨ã¹ã",creditToday:"仿¥ä½¿ã£ã credit",credit7d:"7 æ¥éã§ä½¿ã£ã credit"},OLn={title:"æè¿ã®ãªã¯ã¨ã¹ã",description:"å key ããã®ææ° gateway å¼ã³åºãã",viewRecords:"è¨é²ãè¦ã",table:{label:"æè¿ã®ãªã¯ã¨ã¹ã",model:"ã¢ãã«",status:"ç¶æ
",tokens:"Tokens",credit:"Credit",time:"æå»",apiKey:"API key"},empty:"ã¾ã ãªã¯ã¨ã¹ãã¯ããã¾ãã",emptyDescription:"API key ã使ãã¦ãªã¯ã¨ã¹ããéãã¨ãæè¿ã®å¼ã³åºããããã«è¡¨ç¤ºããã¾ãã"},LLn={title:"æåã®ãªã¯ã¨ã¹ããéã",description:"OpenAI äºæã§ããkey ã使ãã{{env}} ãè¨å®ãã¦ãã gateway ãå¼ã³åºãã¾ãã"},ULn={credit:"Credit",requests:"ãªã¯ã¨ã¹ã"},BLn={title:PLn,description:_Ln,createApiKey:jLn,cards:NLn,usageTrend:DLn,activity:MLn,usageMix:ELn,quickHealth:ILn,recent:OLn,firstRequest:LLn,tooltip:ULn},FLn="ãã¹ã¦ã®è¡ã鏿",zLn="{{row}} è¡ç®ã鏿",qLn="èªã¿è¾¼ãã¾ããã§ãã",HLn="ãã¼ã¿ãããã¾ãã",VLn="表示ã§ããã¬ã³ã¼ããããã¾ããã",KLn="詳細ã表示",GLn="ããã«{{count}}ä»¶ã®è©³ç´°",WLn="詳細ãéã",YLn={selectAllRows:FLn,selectRow:zLn,errorTitle:qLn,emptyTitle:HLn,emptyDescription:VLn,moreDetails:KLn,moreDetailsWithCount:GLn,openRow:WLn},QLn="éå» 1 æé",XLn="仿¥",ZLn="æ¨æ¥",JLn="éå» 7 æ¥",e4n="éå» 30 æ¥",t4n="仿",n4n="æå¥",a4n="ã«ã¹ã¿ã ",o4n="å
¨æé",s4n="æ¥ä»ã鏿",r4n="ãã£ã³ã»ã«",i4n="é©ç¨",l4n="éå§æ¥ã¯çµäºæ¥ããåã§ããå¿
è¦ãããã¾ãã",c4n="æéããªã»ãã",d4n="åã®æ",u4n="æ¬¡ã®æ",m4n={last1h:QLn,today:XLn,yesterday:ZLn,last7d:JLn,last30d:e4n,thisMonth:t4n,byMonth:n4n,custom:a4n,all:o4n,selectDate:s4n,cancel:r4n,apply:i4n,reversedError:l4n,presetsAriaLabel:c4n,previousMonth:d4n,nextMonth:u4n},p4n="ã¢ã«ã¦ã³ããå©ç¨ã§ãã¾ãã",f4n="ã¢ã«ã¦ã³ããåæåãã¦ãã¾ã",g4n={title:"ã¢ã«ã¦ã³ãã¯åæ¢ããã¦ãã¾ã",description:"ãã®ã¢ã«ã¦ã³ãã¯ãµã¤ã³ã¤ã³ã
803§ãã¾ãããã³ã³ã½ã¼ã«ã¢ã¯ã»ã¹ã¨ gateway ãªã¯ã¨ã¹ãã¯åæ¢ããã¦ãã¾ãã",detail:"äºæããªãåæ¢ã¨æãããå ´åã¯ããã®ã¢ã«ã¦ã³ãã®ã¡ã¼ã«ã¢ãã¬ã¹ã§ support ã«é£çµ¡ãã¦ãã ããã"},h4n={accountUnavailable:p4n,accountInitializing:f4n,accountRestricted:g4n},y4n="ç¡æãã¼ã¯ã³",v4n="対象ã¢ãã«ã«æ¯æ¥ä»ä¸ãããç¡æãã¼ã¯ã³ã®å©ç¨æ ã§ããèªåçã«æ´æ°ãããã¦ã©ã¬ããããã¯èª²éããã¾ããã",b4n="ç¡æãã¼ã¯ã³ã®å©ç¨æ ãèªã¿è¾¼ãã¾ããã§ããã",x4n="ãã¹ã¦ã®ã¢ãã«",$4n="ãã£ã³ãã¼ã³ã¯ {{date}} ã«çµäº",w4n={daily:"æ¯æ¥",weekly:"æ¯é±"},k4n={daily:"æ¯æ¥æ´æ°",weekly:"æ¯é±æ´æ°",localTime:"ç¾å°æé {{time}}",countdown:"次åã®æ´æ°ã¾ã§ {{duration}}",refreshingSoon:"ã¾ããªãæ´æ°"},C4n={title:"宿½ä¸ã®ç¡æãã¼ã¯ã³ãã£ã³ãã¼ã³ã¯ããã¾ãã",description:"ç¡æãã¼ã¯ã³ã®ãã£ã³ãã¼ã³ã宿½ãããã¨ãæ¯æ¥ã®å©ç¨æ ãããã«è¡¨ç¤ºããã¾ãã"},S4n={title:"ã使ãã®ã¢ã«ã¦ã³ãã§ã¯ç¡æãã¼ã¯ã³ã®ä»ä¸ã忢ããã¦ãã¾ã",body:"ãã®ã¢ã«ã¦ã³ãã¯å¤§éç»é²ã®ãã¿ã¼ã³ã«è©²å½ããå¯è½æ§ããããããç¾å¨ãç¡æä»ä¸ã忢ãã¦ãã¾ãã誤ãã®å ´åã¯ããã¡ãã¾ã§ãé£çµ¡ãã ãã:"},A4n="ãã¼ã¯ã³",T4n="æ¬æ¥ã®æ®ã {{value}} ãã¼ã¯ã³",R4n={label:"使ãåã£ããã¡ã¼ã«éç¥",hint:"æ¬æ¥ã®ç¡æãã¼ã¯ã³ã使ãåã£ããã¡ã¼ã«ã§ãç¥ãããã¾ãã"},P4n={crg_freetoken_daily_cn5:"å½ç£ã¢ã㫠· æ¯æ¥ç¡æãã¼ã¯ã³"},_4n={title:y4n,description:v4n,loadFailed:b4n,allModels:x4n,campaignEnds:$4n,cadence:w4n,refresh:k4n,empty:C4n,paused:S4n,tokensUnit:A4n,remainingToday:T4n,emailToggle:R4n,campaigns:P4n},j4n="ãã°",N4n="ãªã¯ã¨ã¹ãåä½ã®ã³ã¹ããã¬ã¤ãã³ã·ãtokensãç¶æ
ãrouting ã·ã°ãã«ã確èªãã¾ãã",D4n={copiedCurl:"curl ãã³ãã¼ãã¾ãã",copiedId:"ãªã¯ã¨ã¹ã ID ãã³ãã¼ãã¾ãã",copyCurl:"curl ã¨ãã¦ã³ãã¼",copyFailed:"ã³ãã¼ã«å¤±æãã¾ãã",copyId:"ãªã¯ã¨ã¹ã ID ãã³ãã¼",menu:"è¡ã¢ã¯ã·ã§ã³",openTab:"æ°ããã¿ãã§éã"},M4n={prompt:"Prompt",ratio:"ãããç",read:"ãã£ãã·ã¥èªã¿åã",title:"ãã£ãã·ã¥ãããç"},E4n={confirm:"ã¸ã§ãããã£ã³ã»ã«",failed:"ã¸ã§ãããã£ã³ã»ã«ã§ãã¾ããã§ãã",keep:"æ®ã",message:"ãã®ã¸ã§ãã¯ã¾ã ãã¥ã¼ã«ããã¾ãããã£ã³ã»ã«ããã¨å¦çãããã課éãçºçãã¾ããã",success:"ã¸ã§ãããã£ã³ã»ã«ãã¾ãã",title:"ã¸ã§ãããã£ã³ã»ã«ãã¾ããï¼",pending:"ãã£ã³ã»ã«ä¸..."},I4n={cacheHit:"ãã£ãã·ã¥ããã",cost:"ã³ã¹ã",ip:"IP",latency:"ã¬ã¤ãã³ã·",model:"ã¢ãã«",source:"ã½ã¼ã¹",status:"ç¶æ
",stream:"ã¹ããªã¼ãã³ã°",time:"æå»",tokens:"Tokens",tps:"ã¹ã«ã¼ããã"},O4n={trigger:"åè¨å®"},L4n={body:"OneHop çµç±ã§ãªã¯ã¨ã¹ããéãã¨ãããã«è¡¨ç¤ºããã¾ãã",title:"ãã®æéã®ãã°ã¯ããã¾ãã"},U4n={all:"ãã¹ã¦",apiKey:"API key",cost:"ã³ã¹ã (USD)",desktopDateRangeAria:"ãã¹ã¯ãããã®æ¥ä»ç¯å²ã鏿",finishReason:"çµäºçç±",latency:"ã¬ã¤ãã³ã· (s)",max:"æå¤§",min:"æå°",mobileDateRangeAria:"ã¢ãã¤ã«ã®æ¥ä»ç¯å²ã鏿",model:"ã¢ãã«",modelsSelected:"{{count}} 件鏿ä¸",more:"ãã®ä»ã®ãã£ã«ã¿ã¼",refresh:"æ´æ°",request:"ãªã¯ã¨ã¹ã ID ã§æ¤ç´¢",requestIdLabel:"ãªã¯ã¨ã¹ã ID",status:"ç¶æ
",stream:"ã¹ããªã¼ãã³ã°",time:"æå»",type:"種é¡",mobileTitle:"ãã£ã«ã¿ã¼"},B4n={requests:"ãã®ãã¼ã¸ã®ãªã¯ã¨ã¹ã",times:"æå»è¡¨ç¤º"},F4n={rowsPer:"è¡æ°"},z4n={all:"å
¨æé",custom:"ã«ã¹ã¿ã ",last1h:"éå» 1 æé",last30d:"éå» 30 æ¥",last7d:"éå» 7 æ¥",thisMonth:"仿",today:"仿¥",yesterday:"æ¨æ¥"},q4n={title:"ã¯ã©ã¤ã¢ã³ã",unknown:"user-agent ã¯å ±åããã¦ãã¾ãã",unknownShort:"䏿"},H4n={output:"åºå tokens",rate:"ã¬ã¼ã",title:"ã¹ã«ã¼ããã",window:"çæã¦ã£ã³ãã¦"},V4n={title:"ãªã¯ã¨ã¹ã",openDetail:"ãªã¯ã¨ã¹ã詳細ãéã",copy:"ID ã
803ã³ãã¼",copied:"ã³ãã¼ãã¾ãã",copyFailed:"ã³ãã¼ã«å¤±æãã¾ãã",close:"éãã",loading:"èªã¿è¾¼ã¿ä¸â¦",response:"ã¬ã¹ãã³ã¹",sections:{request:"ãªã¯ã¨ã¹ã",routing:"ã«ã¼ãã£ã³ã°",tokens:"Tokens",cost:"ã³ã¹ãå
訳",performance:"ããã©ã¼ãã³ã¹",error:"ã¨ã©ã¼",outcome:"çµæ",multimodal:"ãã«ãã¢ã¼ãã«"},fields:{requestId:"ãªã¯ã¨ã¹ã ID",time:"æå»",apiKey:"API key",userAgent:"User-Agent",billingMode:"課éã¢ã¼ã",onehopModel:"OneHop ã¢ãã«",endpoint:"Endpoint",firstToken:"åå token",total:"åè¨",throughput:"ã¹ã«ã¼ããã",stream:"ã¹ããªã¼ã ",clientIp:"ã¯ã©ã¤ã¢ã³ã IP",finishReason:"çµäºçç±",mediaType:"ã¡ãã£ã¢ã¿ã¤ã",imageCount:"ç»åæ°",imageSize:"ãµã¤ãº",errorCode:"ã³ã¼ã",errorMessage:"ã¡ãã»ã¼ã¸",requestedModel:"ãªã¯ã¨ã¹ããããã¢ãã«"},billingMode:{token:"token åä½",per_request:"ãªã¯ã¨ã¹ãåä½",image:"ç»ååä½"},timeline:{heading:"ã©ã¤ããµã¤ã¯ã«",received:"ãªã¯ã¨ã¹ãåä¿¡",routed:"ã«ã¼ãã£ã³ã°å®äº",failed:"失æ",generated:"çæå®äº",metered:"è¨æ¸¬å®äº",billed:"è«æ±å®äº"},downloadMedia:"ãã¦ã³ãã¼ã"},K4n={success:"æå",completed:"å®äº",failed:"失æ",pending:"ä¿çä¸",repairing:"修復ä¸",queued:"ãã¥ã¼ä¸",running:"å®è¡ä¸",cancelled:"ãã£ã³ã»ã«æ¸ã¿",expired:"æéåã"},G4n={chat:"ãã£ãã",image:"ç»å",video:"åç»"},W4n={stop:"æ£å¸¸çµäº",length:"é·ãä¸é",tool_calls:"ãã¼ã«å¼ã³åºã",content_filter:"ã³ã³ãã³ããã£ã«ã¿ã¼",error:"ã¨ã©ã¼"},Y4n={true:"ã¹ããªã¼ãã³ã°",false:"éã¹ããªã¼ãã³ã°"},Q4n={title:"ã³ã¹ãå
訳"},X4n={title:"Token å
訳",prompt:"Input",completion:"Output",imageOutput:"ç»ååºå tokens",cacheRead:"ãã£ãã·ã¥èªã¿åã",cacheWrite:"ãã£ãã·ã¥æ¸ãè¾¼ã¿",cacheWrite5m:"ãã£ãã·ã¥æ¸ã込㿠5m",cacheWrite1h:"ãã£ãã·ã¥æ¸ã込㿠1h",total:"åè¨"},Z4n={timestamp:"ã¿ã¤ã ã¹ã¿ã³ã",local:"ãã¼ã«ã«",relative:"ç¸å¯¾æå»"},J4n={inputCost:"å
¥åã³ã¹ã",outputCost:"åºåã³ã¹ã",cacheReadCost:"ãã£ãã·ã¥èªã¿åãã³ã¹ã",cacheWriteCost:"ãã£ãã·ã¥æ¸ãè¾¼ã¿ã³ã¹ã",inputPrice:"å
¥åå価",outputPrice:"åºåå価",total:"åè¨",officialPrice:"å
¬å¼ä¾¡æ ¼",saved:"å²å¼é¡",factor:{textInput:"ããã¹ãå
¥å",textOutput:"ããã¹ãåºå",imageInput:"ç»åå
¥å",imageOutput:"ç»ååºå",perCallImage:"ç»åããã",videoPerSecond:"åç»",videoPerCall:"åç»",cacheRead:"ãã£ãã·ã¥èªã¿åã",cacheWrite:"ãã£ãã·ã¥æ¸ãè¾¼ã¿",cacheWrite5m:"ãã£ãã·ã¥æ¸ã込㿠(5m)",cacheWrite1h:"ãã£ãã·ã¥æ¸ã込㿠(1h)"},unit:{per1mTokens:"/ 100ä¸ tokens",perImage:"/ æ",perSecond:"/ ç§",perCall:"/ å"},promoBasis:"å²å¼å",promoSaved:"ãã£ã³ãã¼ã³å²å¼",freeCovered:"ç¡ææ ã§å
å½ï¼{{tokens}} ãã¼ã¯ã³ï¼",freeCoveredNoCount:"ç¡ææ ã§å
å½"},e5n={noPreview:"ãã¬ãã¥ã¼ã¯ããã¾ãã",video:"åç»"},t5n={free:"ç¡æ"},n5n={title:j4n,description:N4n,actions:D4n,cacheHit:M4n,cancelJob:E4n,col:I4n,columns:O4n,empty:L4n,filter:U4n,meta:B4n,pager:F4n,range:z4n,source:q4n,tps:H4n,drawer:V4n,status:K4n,type:G4n,finishReason:W4n,stream:Y4n,costBreakdown:Q4n,tokensBreakdown:X4n,time:Z4n,userCost:J4n,export:{label:"CSV ãã¨ã¯ã¹ãã¼ã",exporting:"ã¨ã¯ã¹ãã¼ãä¸â¦",done:"{{n}} è¡ãã¨ã¯ã¹ãã¼ããã¾ããã",truncated:"å
é {{n}} è¡ãã¨ã¯ã¹ãã¼ããã¾ãããæ®ãã¯æéãçµã£ã¦å度ã¨ã¯ã¹ãã¼ããã¦ãã ããã",failed:"ã¨ã¯ã¹ãã¼ãã«å¤±æãã¾ãããããä¸åº¦ã試ããã ããã"},media:e5n,cost:t5n},a5n="ã¢ãã«",o5n="å©ç¨å¯è½ãªã¢ãã«ãã³ã³ããã¹ãé·ãå
¥åºåä¾¡æ ¼ãæ©è½ã確èªãããã使ãã¢ãã«ããæ°ã«å
¥ãã«è¿½å ã§ãã¾ãã",s5n={all:"ã
803ã¹ã¦",favorites:"ãæ°ã«å
¥ã",benefit:"ç¹å
¸",hot:"人æ°",free:"Free"},r5n={capability:"ã¿ã¤ã",allCapabilities:"ãã¹ã¦ã®ã¿ã¤ã",capability_text:"ããã¹ã",capability_image:"ç»å",capability_audio:"é³å£°",capability_video:"åç»",provider:"ãããã¤ãã¼",allProviders:"ãã¹ã¦ã®ãããã¤ãã¼",protocol:"ãããã³ã«",allProtocols:"ãã¹ã¦ã®ãããã³ã«",sort:"ä¸¦ã³æ¿ã",search:"æ¤ç´¢",searchPlaceholder:"ã¢ãã« / ã¡ã¼ã«ã¼",allContexts:"æå®ãªã",context:"ã³ã³ããã¹ã",mobileTitle:"ãã£ã«ã¿ã¼"},i5n="ãããã",l5n="æ°çé ",c5n="é±é人æ°",d5n="åå (A-Z)",u5n="ä¾¡æ ¼ï¼å®ãé ï¼",m5n="ä¾¡æ ¼ï¼é«ãé ï¼",p5n="ã³ã³ããã¹ãé·",f5n="ã¬ã¤ãã³ã·",g5n="ã¹ã«ã¼ããã",h5n="OpenAI Chat",y5n="OpenAI Responses",v5n="Anthropic",b5n="Vertex AI",x5n="OpenAI Images",$5n="OpenAI Video",w5n={label:"ã¢ãã«",model:"ã¢ãã«",provider:"ãããã¤ãã¼",capabilities:"æ©è½",context:"ã³ã³ããã¹ã",price:"æé",discount:"å²å¼",action:"æä½",tryIt:"試ã",type:"ã¿ã¤ã",maxOutput:"æå¤§åºå",copyId:"ã¢ãã« ID ãã³ãã¼",copied:"ã³ãã¼ãã¾ãã",usage:"使ç¨é",stability:"å®å®æ§",protocols:"ãããã³ã«",openDetail:"Open model detail"},k5n="人æ°",C5n="ç¹å
¸",S5n={add:"ãæ°ã«å
¥ãã«è¿½å ",remove:"ãæ°ã«å
¥ãããåé¤"},A5n={favorites:"ãæ°ã«å
¥ãã¯ã¾ã ããã¾ãã",noMatch:"ä¸è´ããã¢ãã«ã¯ããã¾ãã"},T5n="ããã¹ã",R5n="ç»å",P5n="ãã¡ã¤ã«",_5n="åç»",j5n="é³å£°",N5n="åãè¾¼ã¿",D5n="Vision",M5n="ãã¼ã«å¼ã³åºã",E5n="JSONã¢ã¼ã",I5n="ç»åçæ",O5n="ç»åç·¨é",L5n="ããã¹ã",U5n="ç»å",B5n="åç»",F5n="é³å£°",z5n="åãè¾¼ã¿",q5n="å
¬å¼",H5n="Kiro",V5n="æå®",K5n="/ å",G5n="/ ç§",W5n="/ 1M",Y5n="é«é",Q5n="Free",X5n="Coming Soon",Z5n="Free",J5n={ariaLabel:"ä¾¡æ ¼ã®é貨",usd:"ç±³ãã«",rmb:"人æ°å
(Â¥)",settlement:"ä¾¡æ ¼ã¯åºå®ã¬ã¼ã {{rate}} ã§äººæ°å
æç®ããåèå¤ã§ããã¦ã©ã¬ããã¯å¸¸ã«ç±³ãã«ã§å®ä½¿ç¨éã«å¿ãã¦è«æ±ããã¾ãã"},eUn="ãã£ã¼ã¸å¿
è¦",tUn={title:a5n,description:o5n,tabs:s5n,filters:r5n,sort_featured:i5n,sort_newest:l5n,sort_top_weekly:c5n,sort_name:d5n,sort_price_asc:u5n,sort_price_desc:m5n,sort_context:p5n,sort_latency:f5n,sort_throughput:g5n,protocol_openai_chat:h5n,protocol_openai_responses:y5n,protocol_anthropic_messages:v5n,protocol_google_vertex_ai:b5n,protocol_openai_images:x5n,protocol_openai_sora:$5n,table:w5n,badge_hot:k5n,badge_benefit:C5n,favorite:S5n,empty:A5n,modality_text:T5n,modality_image:R5n,modality_file:P5n,modality_video:_5n,modality_audio:j5n,modality_embeddings:N5n,capability_vision:D5n,capability_tool_calling:M5n,capability_json_mode:E5n,capability_image_generation:I5n,capability_image_edit:O5n,type_text:L5n,type_image:U5n,type_video:B5n,type_audio:F5n,type_embedding:z5n,provider_official:q5n,provider_kiro:H5n,price_from:V5n,price_perCall:K5n,price_perSec:G5n,price_per1m:W5n,price_fast:Y5n,badge_free:Q5n,badge_unavailable:X5n,price_free:Z5n,currency:J5n,badge_requiresTopup:eUn},nUn={main:"ã¡ã¤ã³ããã²ã¼ã·ã§ã³",utility:"ã¦ã¼ãã£ãªãã£ããã²ã¼ã·ã§ã³",console:"ã³ã³ã½ã¼ã«ããã²ã¼ã·ã§ã³",openNavigation:"ããã²ã¼ã·ã§ã³ãéã",collapse:"ãµã¤ããã¼ãæãããã",expand:"ãµã¤ããã¼ãå±é"},aUn={platform:"ã³ã³ã½ã¼ã«",chat:"ãã£ãã",models:"ã¢ãã«",logs:"ãã°",jobs:"ã¸ã§ã",apiKeys:"API keys",usage:"使ç¨é",billing:"è«æ±",freeTokens:"ç¡æãã¼ã¯ã³",referrals:"ç´¹ä»",settings:"è¨å®",admin:"管ç",balance:"æ®é«",helpSupport:"ãã«ãã¨ãµãã¼ã",announcements:"ãç¥ãã",announcementsTitle:"ãç¥ãã",announcementsEmpty:"ãç¥ããã¯ã¾ã ããã¾ããããã°ãããã¦ãã確èªãã¦ãã ããã",announcementsTicketUnread:"æ°ããè¿ä¿¡ã®ãããã±ãã {{count}} ä»¶",support:"ãµãã¼ã",tasks:"ã¿ã¹ã¯ã¦ã©ã¼ã«",tagNew:"NEW"},oUn={staff:"管ç"},sUn={dashboard:"ããã·ã¥ãã¼ã",users:"ã¦ã¼ã¶ã¼",billing:"ãã©ãããã©ã¼ã è«æ±",usage:"ãã©ãããã©ã¼ã 使ç¨é",rateLimits:"ã¬ã¼ãå¶é",access:"ã¢ã¯ã»ã¹å¶å¾¡",staff:"管çè
",growth:"æé·",models:"ã¢ãã«",announcements:"ãç¥ãã",upstream:"䏿µ",auditLogs:"ç£æ»ãã°",webhooks:"Webhooks",supp
803ort:"Support",campaigns:"Campaigns",domainRules:"Email domains"},rUn={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},iUn={aria:nUn,public:{models:"ã¢ãã«",pricing:"æé",docs:"ããã¥ã¡ã³ã",blog:"ããã°",changelog:"æ´æ°å±¥æ´"},console:aUn,adminGroups:oUn,admin:sUn,notifications:rUn},lUn={back:"æ»ã",done:"å®äº",next:"次ã¸",stepOf:"{{current}} / {{total}}"},cUn={balance:{body:"使ãåã ããã£ã¼ã¸ãæªä½¿ç¨æ®é«ã¯ãã¤ã§ãè¿éã§ãã¾ãã",title:"æ®é«"},keys:{body:"ããã§ key ã使ããä»»æã®ãã¼ã«ã OneHop ã«åããã ãã§ãã",title:"æåã® API key ã使"},models:{body:"å¼ã³åºãããã¹ã¦ã®ã¢ãã«ã¨æéã1ãã¼ã¸ã§ç¢ºèªã§ãã¾ãã",cta:"ã¢ãã«ãã¼ã¸ãéã",title:"ã¢ãã«ã確èª"}},dUn={body:"1ã¤ã® URL ã§ãã¹ã¦ã®ã¢ãã«ãå¼ã³åºãã¾ãã30ç§ã§3ã¤ã®ãã¤ã³ããæ¡å
ãã¾ãã",skip:"ã¹ããã",start:"éå§",title:"OneHop ã¸ãããã"},uUn={nav:lUn,steps:cUn,welcome:dUn},mUn="Failed to load",pUn="Nothing here yet.",fUn="詳細ã表示",gUn={failedLoad:mUn,emptyDescription:pUn,moreDetails:fUn},hUn="ãã¹ã¦",yUn="æå",vUn="ä¿çä¸",bUn="修復ä¸",xUn="失æ",$Un="è¿éæ¸ã¿",wUn="æå¹",kUn="ç¡å¹",CUn="ä¸éå°é",SUn="äºç´æ¸ã¿",AUn="å©ç¨æ¸ã¿",TUn="忢ä¸",RUn="å餿¸ã¿",PUn="é常",_Un="ç£è¦ä¸",jUn="ãããã¯æ¸ã¿",NUn="ä»ä¸æ¸ã¿",DUn="åãæ¶ãæ¸ã¿",MUn="æéåã",EUn="æå¦æ¸ã¿",IUn="䏿¸ã",OUn="å
¬éæ¸ã¿",LUn="鿍奍",UUn="ã¢ã¼ã«ã¤ãæ¸ã¿",BUn="é表示",FUn="使æ¸ã¿",zUn="Checkout éå§æ¸ã¿",qUn="æ¯æãæ¸ã¿",HUn="ãã£ã³ã»ã«æ¸ã¿",VUn="OpenAI Chat",KUn="OpenAI Responses",GUn="Anthropic Messages",WUn="Google Vertex AI",YUn="OpenAI Images",QUn="使ç¨é課é",XUn="ç»é²ãã¼ãã¹",ZUn="ããã¢ãã¼ãã¹",JUn="ç´¹ä»ãã¼ãã¹",eBn="è£åãã¼ãã¹",tBn="ãã£ã¼ã¸ãã¼ãã¹",nBn="æå調æ´",aBn="Credit è³¼å
¥",oBn="æ¯æã",sBn="ç»é²ãã¼ãã¹",rBn="ã¯ã¼ãã³",iBn="管çè
ä»ä¸",lBn="API 使ç¨é",cBn="ç»é²ãã¼ãã¹",dBn="æåä»ä¸",uBn="åæ",mBn="Streaming",pBn="Token 課é",fBn="ãªã¯ã¨ã¹ã課é",gBn="ç»å課é",hBn="ä½ reasoning",yBn="ä¸ reasoning",vBn="é« reasoning",bBn="該å½ãªã",xBn="䏿",$Bn="åçµä¸",wBn="ãªãªã¼ã¹æ¸ã¿",kBn="ãã£ã³ã»ã«æ¸ã¿",CBn="ä¸é¨åãæ¶ãæ¸ã¿",SBn="ã¹ãããæ¸ã¿",ABn={all:hUn,success:yUn,pending:vUn,repairing:bUn,failed:xUn,refunded:$Un,active:wUn,disabled:kUn,exhausted:CUn,reserved:SUn,redeemed:AUn,suspended:TUn,deleted:RUn,normal:PUn,watchlisted:_Un,blocked:jUn,granted:NUn,reversed:DUn,expired:MUn,denied:EUn,draft:IUn,published:OUn,deprecated:LUn,archived:UUn,public:"å
¬é",hidden:BUn,created:FUn,checkout_opened:zUn,paid:qUn,canceled:HUn,openai_chat:VUn,openai_responses:KUn,anthropic_messages:GUn,google_vertex_ai:WUn,openai_images:YUn,usage_charge:QUn,bonus_signup_grant:XUn,bonus_promo_grant:ZUn,bonus_referral_grant:JUn,bonus_compensation_grant:eBn,bonus_topup_grant:tBn,manual_adjustment:nBn,credit_purchase:aBn,payment:oBn,signup:sBn,coupon:rBn,admin:iBn,api:lBn,signup_bonus:cBn,manual:dBn,sync:uBn,stream:mBn,token:pBn,request:fBn,image:gBn,low:hBn,medium:yBn,high:vBn,not_applicable:bBn,unknown:xBn,frozen:$Bn,released:wBn,cancelled:kBn,partially_reversed:CBn,skipped:SBn},TBn="{{count}} ä»¶/ãã¼ã¸",RBn="åè¨ {{count}} ä»¶",PBn={perPage:TBn,total:RBn},_Bn="æå¾
ãã¦å ±é
¬ãç²å¾",jBn="å°ç¨ãªã³ã¯ãã·ã§ã¢ãã¾ããããæå¾
ããã¦ã¼ã¶ã¼ããã£ã¼ã¸ããã¨ãåæ¹ã®å ±é
¬ããã¹ã¦æç¢ºã«è¨é²ããã¾ãã",NBn="æå¾
ãã¼ã¿ãèªã¿è¾¼ãã¾ãã",DBn="ããªãã®æå¾
ãªã³ã¯",MBn="å
±æ",EBn="æå¾
å
容ãã³ãã¼ãã¾ãããWeChat ã«è²¼ãä»ãã¦å
±æãã¦ãã ããã",IBn="ã³ãã¼",OBn="ã³ãã¼ãã¾ãã",LBn="WeChat",UBn="X",BBn="Telegram",FBn="Reddit",zBn="LinkedIn",qBn="WhatsApp",HBn="ã¡ã¼ã«",VBn="Facebook",KBn={default:{title:"1ã¤ã® OneHop API ã§ããããã AI ã¢ãã«ãå¼ã³åºã",body:"ç§ã®æå¾
ãªã³ã¯ããç»é²ãã{{firstWindowDays}} æ¥ä»¥å
ã«ååãã£ã¼ã¸ããã¨ãåæ¹ã« {{percent}}% ã®éå
ãä»ä¸ããã¾ãã"},x:{title:"1ã¤ã® API ã§ããã¹ã¦ã® AI ã¢ãã«ã¸ ð¤",body:"ç§ã®ãªã³ã¯ãã {{firstWindowDays}} æ¥ä»¥å
ã«ååãã£ã¼ã¸ããã¨ããäºãã« {{percent}}% éå
ð"}
803,telegram:{title:"OneHop ã§ãããã AI ã¢ãã«ãæ´»ç¨",body:"ç§ã®æå¾ ãªã³ã¯ã使ã£ã¦ãã ããã{{firstWindowDays}} æ¥ä»¥å ã®ååãã£ã¼ã¸ã§ãåæ¹ã« {{percent}}% ã®ç´¹ä»ã¯ã¬ã¸ãããä»ä¸ããã¾ãã"},whatsapp:{title:"OneHop ã§ãããã AI ã¢ãã«ãæ´»ç¨",body:"ç§ã®æå¾ ãªã³ã¯ããåå ãã¦ãã ããã{{firstWindowDays}} æ¥ä»¥å ã«ååãã£ã¼ã¸ããã¨ããäºãã« {{percent}}% éå ããã¾ãã"},reddit:{title:"OneHop â 1ã¤ã® API ã§ãããã AI ã¢ãã«ã¸ãç§ã®æå¾ ãªã³ã¯çµç±ã®ååãã£ã¼ã¸ã§åæ¹ã« {{percent}}% éå ",body:"{{firstWindowDays}} æ¥ä»¥å ã«ååãã£ã¼ã¸ããã¨ãåæ¹ã« {{percent}}% ã®ç´¹ä»ã¯ã¬ã¸ãããä»ä¸ããã¾ãã"},email:{title:"OneHop ã¸ã®ãæå¾ â 1ã¤ã® API ã§ãããã AI ã¢ãã«ãå©ç¨",body:`ããã«ã¡ã¯ã 804 805ç§ã¯ OneHop ã使ã£ã¦ãåä¸ã® API ãã主è¦ãª AI ã¢ãã«ãå¼ã³åºãã¦ãã¾ããç§ã®æå¾ ãªã³ã¯ããç»é²ããååãã£ã¼ã¸ãè¡ãã¨ãåæ¹ã«ç´¹ä»ã¯ã¬ã¸ãããä»ä¸ããã¾ãã 806 807éå ãã£ã¢: {{tiers}}ã 808 809ãããããé¡ããã¾ãã`},wechat:{title:"OneHop â 1ã¤ã® API ã§ãããã AI ã¢ãã«ã¸",body:"ç§ã®æå¾ ãªã³ã¯ããç»é²ãã¦ã{{firstWindowDays}} æ¥ä»¥å ã«ååãã£ã¼ã¸ããã¨ããäºãã« {{percent}}% éå ããã¾ãã"}},GBn="å ±é ¬ã¯æ¯æãå¾ããã«è¡¨ç¤ºããã¾ãããè¿éæéãã«ãã¼ãããã䏿¦åçµãããæéãéãã㨠OneHop ã®æå¾ å ±é ¬ credit ã¨ãã¦è§£æ¾ããã¾ãã",WBn="{{days}} æ¥å¾ã«è§£æ¾ããã¾ãã",YBn={referrer:"æå¾ è ",referee:"被æå¾ è "},QBn={referrer:"ï¼è¢«æå¾ è ããã£ã¼ã¸ããã¨ç´¹ä» credit ãç²å¾ãã¾ã â {{tiers}}ã",referee:"ï¼ãªã³ã¯ããç»é²ãã¦ãã£ã¼ã¸ããã°ãããªããéå ãåãåãã¾ã â {{tiers}}ã"},XBn={dayRange:"{{fromDay}}ã{{untilDay}} æ¥ç®",dayOpenEnded:"{{fromDay}} æ¥ç®ä»¥é"},ZBn="ç´¯è¨ç²å¾",JBn="è§£æ¾æ¸ã¿æå¾ å ±é ¬",e6n="åçµä¸ã®æå¾ å ±é ¬",t6n="æå¾ 人æ°",n6n="æå¹ãªæå¾ ",a6n="è§£æ¾æ¸ã¿è¢«æå¾ ç¹å ¸",o6n="åçµä¸ã®è¢«æå¾ ç¹å ¸",s6n="ãã£ã³ã»ã« / å·®æ»ã",r6n="ããªããæå¾ ãã人",i6n="å ±é ¬æç´°",l6n={user:"ã¦ã¼ã¶ã¼",joined:"ç»é²æ¥æ",topups:"ãã£ã¼ã¸åæ°",earned:"ããªãã®ç²å¾é¡",frozen:"åçµä¸",date:"æ¥æ",event:"ã¤ãã³ã",topupAmount:"ç¸æã®ãã£ã¼ã¸é¡",rate:"æ¯ç",releaseAt:"è§£æ¾æ¥æ",cashback:"å ±é ¬",status:"ã¹ãã¼ã¿ã¹"},c6n={title:"ã¾ã æå¾ ãããã¾ãã",description:"ãªã³ã¯ãã·ã§ã¢ããã¨å ±é ¬ã®ç²å¾ãå§ãããã¾ãã"},d6n={inviteeSignedUp:"被æå¾ è ãç»é²ãå®äºãã¾ãã",youSignedUp:"ããªããæå¾ çµç±ã§ç»é²ãå®äºãã¾ãã",inviteePaid:"被æå¾ è ãå©ç¨æãæ¯æãã¾ãã",youPaid:"ããªãã被æå¾ è ã¨ãã¦å©ç¨æãæ¯æãã¾ãã"},u6n={frozen:"åçµä¸",released:"è§£æ¾æ¸ã¿",cancelled:"ãã£ã³ã»ã«æ¸ã¿",partially_reversed:"ä¸é¨å·®æ»ã",reversed:"å·®æ»ãæ¸ã¿",failed:"失æ",skipped:"ã¹ãããæ¸ã¿"},m6n={title:_Bn,description:jBn,error:NBn,yourLink:DBn,shareVia:MBn,wechatCopied:EBn,copy:IBn,copied:OBn,wechat:LBn,x:UBn,telegram:BBn,reddit:FBn,linkedin:zBn,whatsapp:qBn,email:HBn,facebook:VBn,share:KBn,offer:GBn,releaseDelay:WBn,role:YBn,roleOffer:QBn,policy:XBn,totalEarned:ZBn,availableEarned:JBn,frozenEarned:e6n,invited:t6n,active:n6n,availableReceived:a6n,frozenReceived:o6n,cancelledReversed:s6n,peopleYouInvited:r6n,history:i6n,col:l6n,empty:c6n,event:d6n,status:u6n},p6n="è¨å®",f6n="ã¢ã«ã¦ã³ãè¨å®ã¨ã³ã³ã½ã¼ã«ã®æ¢å®å¤ã管çãã¾ãã",g6n="{{email}} ã¨ãã¦ãµã¤ã³ã¤ã³ä¸",h6n="表示å",y6n="è¨èª",v6n="ã¿ã¤ã ã¾ã¼ã³",b6n="ãããã£ã¼ã«ã®èªã¿è¾¼ã¿ã«å¤±æãã¾ãã",x6n="ä¿åã«å¤±æãã¾ãã",$6n="夿´ãç ´æ£ãã¾ããï¼",w6n="ä¿åãã¦ããªã夿´ãããã¾ããä»é¢ããã¨å¤æ´ã¯ç ´æ£ããã¾ãã",k6n="ç ´æ£",C6n="ç·¨éãç¶ãã",S6n={title:p6n,description:f6n,signedInAs:g6n,displayName:h6n,locale:y6n,timezone:v6n,failedLoad:b6n,failedSave:x6n,discardTitle:$6n,discardMessage:w6n,discardConfirm:k6n,keepEditing:C6n},A6n="ã¿ã¹ã¯ã¦ã©ã¼ã«",T6n="OneHop ãããªãã®ãã©ãã¯ã¼ã«ç´¹ä»ãã¦ããã©ã¤ã¢ã«ã¯ã¬ã¸ãããç²å¾ãã¾ãããããã¹ã¦ã®å¿åã人æã§ç¢ºèªãã¦ãã¾ãã",R6n="æç¨¿ã®ãªã³ã¯",P6n="https://â¦",_6n="éä¿¡",j6n="éä¿¡ãã¾ãããã¾ããªã確èªãã¾ãã",N6n="対å¿ãªã³ã¯ï¼{{hosts}}",D6n="ååã¯å´ä¸ããã¾ããï¼{{reason}}ãä¿®æ£ãã¦åéä¿¡ã§ãã¾ãã",M6n={pending:"確èªä¸",approved:"ä»ä¸æ¸ã¿",rejected:"å´ä¸",active:"æå¹"},E6n={title:"ç¾å¨ã¿ã¹ã¯ã¯ããã¾ãã",description:"ã¾ãã確èªãã ããããã£ã³ãã¼ã³ã¯ä¸å®æã«å®æ½ãã¦ãã¾ãã"},I6n={x_quote:{title:"X ã§å¼ç¨ãã¹ããã",description:"@OneHopAI ã®åºå®ãã¹ããå¼ç¨ããããªãèªèº«ã®ææ³ãæ·»ãã¦ãã ããã",rules:["X ã¢ã«ã¦ã³ãã¯éè¨ãã 6 ãæä»¥ä¸ããã©ãã¯ã¼ 10 人以ä¸ãå¿ è¦ã§ãã","å ã®ãã¹ãã§ã¯ãªããããªãèªèº«ã®å¼ç¨ãã¹ãã®ãªã³ã¯ãéä¿¡ãã¦ãã ããã","æ¿èªå¾ 2 æé以å ã«ä»ä¸ããã¾ãã"]},youtube_tutorial:{title:"YouTube ã«ãã¥ã¼ããªã¢ã«ãå ¬éãã",description:"OneHop ãèªåã®ã¨ã¼ã¸ã§ã³ãã«çµã¿è¾¼ãæé ã示ã 6 å以ä¸ã®åç»ã",rules:["å ¬éå¾ã«åç»ã®ãªã³ã¯ãéä¿¡ãã¦ãã ããã","YouTube ãã£ã³ãã«ã®ç»é²è æ°ã 50 人以ä¸å¿ è¦ã§ãã","1 ã¢ã«ã¦ã³ãã«ã¤ã 1 åã¾ã§ã","æ¿èªå¾ 2 æé以å ã«ä»ä¸ããã¾ãã"]},short_video:{title:"ã·ã§ã¼ãåç»ãæç¨¿ãã",description:"TikTok ã¾ã㯠YouTube ã§ãOneHop ã®è¨å®ã«è§¦ãã 40 ç§ä»¥ä¸ã®ã·ã§ã¼ãåç»ã",rules:["å ¬éå¾ã«åç»ã®ãªã³ã¯ãéä¿¡ãã¦ãã ããã","æ¿èªå¾ 2 æé以å ã«ä»ä¸ããã¾ãã"]},github_readme:{title:"GitHub ã® README ã« OneHop ãè¼ãã",de
809scription:"ããªãã®ãªãã¸ããªã® README ã« OneHop ã®ã¯ã¬ã¸ããã追å ããã¨ã以å¾ã®ãã£ã¼ã¸ãæ¯å 15% å¢éããã¾ãã",rules:["README ãå
¬éããããªãã¸ããªã®ãªã³ã¯ãéä¿¡ãã¦ãã ããã","ããã¯ä¸åº¦ããã§ã¯ãªãæ°¸ç¶çã§ãã以å¾ã®ãã£ã¼ã¸ã§ã¯æ¨æºãã¼ãã¹ã¨ããªãã® 15% ã®ãã¡é«ãæ¹ãé©ç¨ããã¾ãã","ã³ãã¼ãã¦ä½¿ããæé¢ã¯ä¸è¨ã®ã¨ããã§ãã"]}},O6n={load:"ã¿ã¹ã¯ã¦ã©ã¼ã«ãèªã¿è¾¼ãã¾ããã§ãã",generic:"éä¿¡ã§ãã¾ããã§ãã",urlRequired:"ã¾ãæç¨¿ã®ãªã³ã¯ãè²¼ãä»ãã¦ãã ããã",urlTooLong:"ãªã³ã¯ãé·ããã¾ãã",urlMalformed:"æå¹ãªãªã³ã¯ã§ã¯ãªãããã§ãã",hostNotAllowed:"ãã®ã¿ã¹ã¯ã¯ä¸è¨ã®ãã©ãããã©ã¼ã ã®ãªã³ã¯ã®ã¿åãä»ãã¾ãã",notAPost:"ãããã£ã¼ã«ããã¼ã ã§ã¯ãªãããã®æç¨¿ã»åç»ã®ãªã³ã¯ãæå®ãã¦ãã ããã",alreadySubmitted:"ãã®ã¿ã¹ã¯ã¯ãã§ã«éä¿¡æ¸ã¿ã§ãã",notAvailable:"ãã®ã¿ã¹ã¯ã¯ç¾å¨å©ç¨ã§ãã¾ããã",busy:"æ¬æ¥ã®ç¢ºèªä¸éã«éãã¾ãããææ¥ã試ããã ããã",emailUnverified:"å
ã«ã¡ã¼ã«ã¢ãã¬ã¹ã確èªãã¦ãã ããã",accountTooNew:"ã¢ã«ã¦ã³ãã®éè¨ããã®æéãè¶³ãã¾ããã",riskFlagged:"ãã®ã¢ã«ã¦ã³ãã¯ç¾å¨åå ã§ãã¾ããã誤ãã ã¨æãããå ´åã¯ãµãã¼ãã«ãé£çµ¡ãã ããã",accountInactive:"ãã®ã¢ã«ã¦ã³ãã¯æå¹ã§ã¯ããã¾ããã",deviceAlreadyClaimed:"ãã®ç«¯æ«ã®å¥ã®ã¢ã«ã¦ã³ãããã§ã«åå ãã¦ãã¾ãã"},L6n="ãã®ããã¸ã§ã¯ããæ¯æ´ãã¦ããã [OneHop]({{url}}) ã«æè¬ãã¾ããOneHop 㯠OpenAI äºæã® API ãã¼ 1 æ¬ã§ãGPTã»Claudeã»Geminiã»DeepSeekã»Kimiã»Qwen ãªã©æ°ç¾ã®ã¢ãã«ãå©ç¨ã§ãã¾ããè¤æ°ã®ãããã¤ãã¼å¥ç´ã管çããå¿
è¦ããã¢ãã«ãåãæ¿ããããã«ã³ã¼ããæ¸ãæããå¿
è¦ãããã¾ãããæéã¯å¾é課éã§ããâ {{domain}}",U6n="ãã®æé¢ãã³ãã¼",B6n={title:A6n,description:T6n,urlLabel:R6n,urlPlaceholder:P6n,submit:_6n,submitted:j6n,allowedHosts:N6n,rejectedHint:D6n,status:M6n,empty:E6n,item:I6n,error:O6n,sponsorBlurb:L6n,copyBlurb:U6n},F6n="ãã£ããã§åãåãã",z6n="ãµãã¼ããã±ãã",q6n="ãã±ããã使ãã¦ãã ãããæ
å½ãã¼ã ãã§ããã ãæ©ãè¿ä¿¡ãã¾ãã",H6n="æ°è¦ãã±ãã",V6n={subject:"ä»¶å",category:"種é¡",status:"ã¹ãã¼ã¿ã¹",updated:"æ´æ°æ¥æ",user:"User"},K6n={billing:"è«æ±",technical:"æè¡",account:"ã¢ã«ã¦ã³ã",other:"ãã®ä»"},G6n={open:"対å¿å¾
ã¡",pending:"è¿ä¿¡å¾
ã¡",resolved:"解決æ¸ã¿",closed:"ã¯ãã¼ãºæ¸ã¿"},W6n={allStatuses:"ãã¹ã¦ã®ã¹ãã¼ã¿ã¹",allCategories:"All categories",search:"Search email or subject"},Y6n={subject:"ä»¶å",subjectPlaceholder:"åé¡ãç°¡åã«èª¬æãã¦ãã ãã",category:"種é¡",message:"å
容",messagePlaceholder:"ç¶æ³ãå
¥åãã¦ãã ããâ¦",attachments:"æ·»ä»ãã¡ã¤ã«",addAttachment:"ãã¡ã¤ã«ã追å ",submit:"ãã±ãããéä¿¡",cancel:"ãã£ã³ã»ã«"},Q6n={you:"ããªã",support:"ãµãã¼ã",system:"ã·ã¹ãã ",replyPlaceholder:"è¿ä¿¡ãæ¸ãâ¦",send:"éä¿¡",closedNotice:"ãã®ãã±ããã¯ã¯ãã¼ãºããã¦ãã¾ããã¾ã ãµãã¼ããå¿
è¦ãªå ´åã¯æ°ãããã±ããã使ãã¦ãã ããã",sendHint:"â/Ctrl + Enter ã§éä¿¡",back:"ãã±ããä¸è¦§ã«æ»ã",systemStatus:{open:"ãã±ãããåãªã¼ãã³ãã¾ãã",pending:"ãã±ãããã¦ã¼ã¶ã¼è¿ä¿¡å¾
ã¡ã«ãã¾ãã",resolved:"ãã±ããã解決æ¸ã¿ã«ãã¾ãã",closed:"ãã±ãããã¯ãã¼ãºãã¾ãã"}},X6n={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},Z6n="ããã«èªã¿è¾¼ã",J6n={created:"ãã±ãããéä¿¡ãã¾ãã",replied:"è¿ä¿¡ãéä¿¡ãã¾ãã",statusUpdated:"Status updated",error:"åé¡ãçºçãã¾ãããããä¸åº¦ã試ããã ãã"},e8n="ãã±ãããè¦ã¤ãããªãããåé¤ããã¦ãã¾ãã",t8n={title:"ã¾ã ãã±ããã¯ããã¾ãã",body:"ãå°ãã§ããï¼ãã±ããã使ãã¦ãã ããããµãã¼ããã¾ãã",cta:"æåã®ãã±ããã使"},n8n={liveChat:F6n,title:z6n,subtitle:q6n,newTicket:H6n,columns:V6n,category:K6n,status:G6n,filters:W6n,form:Y6n,thread:Q6n,admin:X6n,loadMore:Z6n,toast:J6n,notFound:e8n,empty:t8n},a8n="使ç¨é",o8n="æ®é«ãæ¶è²»ãã¼ã¹ãæ¯åºã®å
訳ã確èªãã¾ãã",s8n="ã¢ã¯ãã£ããã£",r8n="ãã®æéã«ã¢ã¯ãã£ããã£ã¯ããã¾ãã",i8n="使ç¨éã®å
訳",l8n="API key å¥",c8n="ã¢ãã«å¥",d8n="token 種å¥",u8n="ãã¼ã¿ã
809ªã",m8n="ãã®æéã®ä½¿ç¨éã¯ã¾ã ããã¾ããã",p8n="ç¾å¨ã®ãã¼ã¹ã§ã¯æ®é«ã¯ç´ {{days}} æ¥ï¼{{rate}}/æ¥ï¼æã¡ã¾ãã",f8n="åºå",g8n="ãã£ãã·ã¥",h8n={tokens:"Tokens",requests:"ãªã¯ã¨ã¹ã",cost:"ã³ã¹ã"},y8n="ãã®ä»",v8n="ä»¶",b8n="tok",x8n="æ´æ°ä¸â¦",$8n="ãã¼ã¿ãªã",w8n="ãªã¯ã¨ã¹ããéãã¨ãã¼ã¿ãå
¥ãå§ãã¾ãã",k8n="ä¸ä½ API keys",C8n="ãã£ã¼ã¸",S8n={title:"使ç¨éãèªã¿è¾¼ãã¾ããã§ãã"},A8n={firstToken:"åå token",latency:"å¹³åã¬ã¤ãã³ã·",requests:"ãªã¯ã¨ã¹ã",spend:"æ¶è²»",spendSub:"ãã®æéã®è«æ±",successRate:"{{rate}}% æå",tokens:"Tokens",textDuration:"ããã¹ã",mediaDuration:"ç»åã»åç»",cacheHit:"ãã£ãã·ã¥ {{rate}}%",projected:"ç´ {{amount}}/æ",vsPrevious:"åæéã¨ã®æ¯è¼"},T8n={activeDays:"ã¢ã¯ãã£ãæ¥æ°",longestStreak:"æé·é£ç¶æ¥æ°",daysValue:"{{n}} æ¥",totalSpend:"ãã®æéã®æ¶è²»",peakDay:"æãå©ç¨ãå¤ãæ¥"},R8n={all:"å
¨æé",custom:"ã«ã¹ã¿ã ",last1h:"éå» 1 æé",last30d:"éå» 30 æ¥",last7d:"éå» 7 æ¥",thisMonth:"仿",today:"仿¥",yesterday:"æ¨æ¥",byMonth:"æå¥"},P8n={failed:"失æ",success:"æå"},_8n={cacheRead:"ãã£ãã·ã¥èªã¿åã",cacheWrite:"ãã£ãã·ã¥æ¸ãè¾¼ã¿",cacheWrite1h:"ãã£ãã·ã¥æ¸ã込㿠1h",cacheWrite5m:"ãã£ãã·ã¥æ¸ã込㿠5m",completion:"åºå",prompt:"å
¥å"},j8n={body:"ã¿ã¼ããã«ãããªã¯ã¨ã¹ããéãã playground ãéãã¨ãæ°ç§ã§ä½¿ç¨éãããã«è¡¨ç¤ºããã¾ãã",openPlayground:"playground ãéã",title:"key ã®æºåãã§ãã¾ãã"},N8n={body:"æåã® API key ã使ãã1 ã¤ã® URL ã§ãªã¯ã¨ã¹ããã«ã¼ãã£ã³ã°ããã¨ã使ç¨éãããã«è¡¨ç¤ºããã¾ãã",createKey:"API key ã使",title:"OneHop ã¸ãããã",tryPlayground:"playground ã試ã"},D8n="æ´æ°",M8n="ç¾å¨ã®ãã£ã«ã¿ã¼ã§ {{count}} ä»¶æå",E8n="åè¨ tokens",I8n="å
¥å {{input}} / åºå {{output}}",O8n="課é credit",L8n="{{cost}} 䏿µå®ã³ã¹ã",U8n="å¹³åã¬ã¤ãã³ã·",B8n="åå token {{duration}}",F8n="30 æ¥éã®ã¢ã¯ãã£ããã£",z8n="æåãªã¯ã¨ã¹ããtoken éã課é creditã",q8n="使ç¨éãã¬ã³ããèªã¿è¾¼ã¿ä¸",H8n="使ç¨éãã¬ã³ãã¯ããã¾ãã",V8n="æåãªã¯ã¨ã¹ãå¾ã«ä½¿ç¨éãã¬ã³ãã表示ããã¾ãã",K8n="ä¸ä½ã¢ãã«",G8n="éå» 30 æ¥ã®ã¢ãã«å¥èª²é creditã",W8n="ã¢ãã«ä½¿ç¨éã¯ã¾ã ããã¾ãã",Y8n="æåãªã¯ã¨ã¹ãå¾ã«ã¢ãã«å
訳ã表示ããã¾ãã",Q8n="ã¢ãã«",X8n="ãã¹ã¦ã®ã¢ãã«",Z8n="ç¶æ
",J8n="ãããã³ã«",eFn="è¡æ°",tFn="ãªã»ãã",nFn="使ç¨éã¬ã³ã¼ã",aFn="API key",oFn="Endpoint",sFn="種é¡",rFn="Tokens",iFn="ã³ã¹ã",lFn="æè¦æé",cFn="æå»",dFn="User-Agent",uFn="詳細",mFn="ãªã¯ã¨ã¹ã詳細",pFn="使ç¨éã¬ã³ã¼ãã®è©³ç´°ã¨èª²é metadataã",fFn="ãªã¯ã¨ã¹ã ID",gFn="æä½",hFn="å
¥å tokens",yFn="åºå tokens",vFn="ãã£ãã·ã¥èªã¿åã tokens",bFn="ãã£ãã·ã¥æ¸ã込㿠tokens",xFn="å
¥åã³ã¹ã",$Fn="åºåã³ã¹ã",wFn="ãã£ãã·ã¥èªã¿åãã³ã¹ã",kFn="ãã£ãã·ã¥æ¸ãè¾¼ã¿ã³ã¹ã",CFn="ã¨ã©ã¼ã³ã¼ã",SFn="ã¨ã©ã¼ã¡ãã»ã¼ã¸",AFn="è¦ã¤ããã¾ããã",TFn="credit",RFn="åè¨ {{count}}",PFn="使ç¨éã¬ã³ã¼ããèªã¿è¾¼ã¿ä¸",_Fn="使ç¨éã¬ã³ã¼ãã¯ããã¾ãã",jFn="å¥ã®ãã£ã«ã¿ã¼æ¡ä»¶ã試ãã¦ãã ããã",NFn="ãªã¯ã¨ã¹ãã API keys ãéãã¨ã¬ã³ã¼ããããã«è¡¨ç¤ºããã¾ãã",DFn="{{page}} ãã¼ã¸ · {{total}} ä»¶ä¸ {{shown}} ä»¶ã表示",MFn="åã¸",EFn="次ã¸",IFn="Credit",OFn="Tokens",LFn="ãªã¯ã¨ã¹ã",UFn={time:"æå»",apiKey:"API Key",model:"ã¢ãã«",reasoningEffort:"æ¨è«å¼·åº¦",endpoint:"Endpoint",type:"種é¡",billingMode:"課éã¢ã¼ã",inputTokens:"å
¥å Tokens",outputTokens:"åºå Tokens",cacheReadTokens:"ãã£ãã·ã¥èªã¿åã Tokens",cacheWriteTokens:"ãã£ãã·ã¥æ¸ã込㿠Tokens",totalTokens:"åè¨ Tokens",billedCredit:"課é Credit",firstTokenMs:"åå Token ms",durationMs:"æè¦æé ms",status:"ç¶æ
",userAgent:"User-Agent"},BFn={mon:"æ",wed:"æ°´",fri:"é"},FFn="å°",zFn="å¤",qFn={title:a8n,description:o8n,activity:s8n,activityEmpty:r8n,breakdown:i8n,byApiKey:l8n,byModel:c8n,byTokenType:d8n,chartEmpty:u8n,chartEmptyHint:m8n,burnRate:p8n,in:"å
¥å",out:f8n,cache:g8n,metric:h8n,other:y8n,req:v8n,tok:b8n,refreshing:x8n,topEmpty:$8n,topEmptyHint:w8n,topKeys:k8n,topUp:C8n,error:S8n,kpi:A8n,stat:T8n,range:R8n,requests:P8n,tokenType:_8n,noRequests:j8n,welcome:N8n,refresh:D8n,successfulFilter:M8n,totalTokens:E8n,inOut:I8n,billedCredit:O8n,upstreamA
809ctualCost:L8n,avgLatency:U8n,firstToken:B8n,activityTitle:F8n,activityDescription:z8n,loadingTrend:q8n,noUsageTrend:H8n,trendDescription:V8n,topModels:K8n,topModelsDescription:G8n,noModelUsage:W8n,noModelUsageDescription:Y8n,model:Q8n,allModels:X8n,status:Z8n,protocol:J8n,rows:eFn,reset:tFn,tableLabel:nFn,apiKey:aFn,endpoint:oFn,type:sFn,tokens:rFn,cost:iFn,duration:lFn,time:cFn,userAgent:dFn,details:uFn,requestDetail:mFn,detailDescription:pFn,requestId:fFn,operation:gFn,inputTokens:hFn,outputTokens:yFn,cacheReadTokens:vFn,cacheWriteTokens:bFn,inputCost:xFn,outputCost:$Fn,cacheReadCost:wFn,cacheWriteCost:kFn,errorCode:CFn,errorMessage:SFn,notFound:AFn,creditSuffix:TFn,total:RFn,loadingRecords:PFn,noRecords:_Fn,differentFilters:jFn,recordsEmpty:NFn,pageSummary:DFn,previous:MFn,next:EFn,chartCredit:IFn,chartTokens:OFn,chartRequests:LFn,csv:UFn,weekday:BFn,activityLess:FFn,activityMore:zFn},HFn="Signup access",VFn="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",KFn="Signup access allowlist",GFn="No allowlist entries",WFn="Email / domain",YFn="Note",QFn="Status",XFn="Registration",ZFn="Expires",JFn="Invites",ezn="Updated",tzn="Action",nzn="Add",azn="Bulk add",ozn="Edit",szn="Save",rzn="Invite",izn="Restore",lzn="Remove",czn="Add signup access",dzn="Edit {{email}}",uzn="Bulk add signup access",mzn="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",pzn="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",fzn="Email or domain",gzn="[email protected] or @company.com",hzn="Use @company.com to approve an entire domain.",yzn="Note (optional)",vzn="e.g. founding team",bzn="Expiry (optional)",xzn="Leave empty for no expiry. Expired entries no longer allow new signups.",$zn="Emails / domains",wzn=`[email protected] 810[email protected] 811@partner.com`,kzn="Search",Czn="Search email or domain",Szn="Status",Azn="Access check",Tzn="[email protected]",Rzn="Check",Pzn="Allowed",_zn="Denied",jzn={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},Nzn="Registered",Dzn="Not registered",Mzn="Admin",Ezn="Domain rule",Izn="Never",Ozn="Added to signup access.",Lzn="Signup access updated.",Uzn="Added {{count}} entries.",Bzn="Invite sent.",Fzn="Entry restored.",zzn="Removed from signup access.",qzn="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",Hzn={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},Vzn={title:HFn,description:VFn,label:KFn,empty:GFn,email:WFn,note:YFn,status:QFn,registration:XFn,expiresAt:ZFn,invites:JFn,updatedAt:ezn,action:tzn,add:nzn,bulkAdd:azn,edit:ozn,save:szn,invite:rzn,restore:izn,revoke:lzn,newTitle:czn,editTitle:dzn,bulkTitle:uzn,formDescription:mzn,bulkDescription:pzn,emailLabel:fzn,emailPlaceholder:gzn,emailHint:hzn,noteLabel:yzn,notePlaceholder:vzn,expiresAtLabel:bzn,expiresAtHint:xzn,bulkEntriesLabel:$zn,bulkEntriesPlaceholder:wzn,search:kzn,searchPlaceholder:Czn,statusFilter:Szn,checkLabel:Azn,checkPlaceholder:Tzn,check:Rzn,checkAllowed:Pzn,checkDenied:_z
811n,checkReasons:jzn,registered:Nzn,notRegistered:Dzn,adminAllowed:Mzn,domainRule:Ezn,never:Izn,added:Ozn,updated:Lzn,bulkAdded:Uzn,invited:Bzn,restored:Fzn,revoked:zzn,confirmRevoke:qzn,domainRules:Hzn},Kzn="Ops Billing",Gzn="Payments, wallets and refunds across all users.",Wzn={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},Yzn="User email",Qzn="Search by email...",Xzn="Created",Zzn="Created",Jzn="Amount (USD)",e7n="Min",t7n="Max",n7n="Refunds",a7n="No refunds",o7n="Refund",s7n="Type",r7n="Full refund",i7n="Partial refund",l7n="Original payment",c7n="Wallets",d7n="Wallet",u7n="User",m7n="Total",p7n="Purchased",f7n="Bonus",g7n="No wallets",h7n="Payments",y7n="Payment status",v7n="No payments",b7n="Payment",x7n="Status",$7n="Amount",w7n="Paid",k7n="Refund",C7n="Not refundable (status must be paid)",S7n="View in Stripe Dashboard",A7n="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",T7n="unhealthy",R7n="Refund {{id}}",P7n="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",_7n="Refund amount (USD)",j7n="Max ${{value}}",N7n="Reason",D7n="íë¶ ë¯¸ë¦¬ë³´ê¸°ë¥¼ ë¶ë¬ì¤ë ì¤â¦",M7n="íë¶ ë¯¸ë¦¬ë³´ê¸°ë¥¼ ë¶ë¬ì¤ì§ 못íìµëë¤. ë¯¸ë¦¬ë³´ê¸°ê° ìë£ë ëê¹ì§ íë¶í ì ììµëë¤.",E7n="íë¶ ê°ë¥í ê±°ë를 ì°¾ì ì ììµëë¤. ì´ë¯¸ ì ì¡ íë¶ë ê²°ì ì¼ ì ììµëë¤.",I7n="ê²°ì ê¸ì¡",O7n="기íë¶ ê¸ì¡",L7n="ì´ë² íë¶",U7n="íì í¬ë ë§",B7n="ì¿ í° í ì¸ í¬ë ë§ {{amount}}ì ë¹ë¡ íìê° í¬í¨ë©ëë¤",F7n="ì¶ê° ì§ê¸ í¬ë ë§ {{amount}}ì ë¹ë¡ íìê° í¬í¨ë©ëë¤",z7n="ë³´ëì¤ íì",q7n="ì´ë² íë¶ë¡ íë¡ëª¨ì
ë³´ëì¤ {{amount}}ì´(ê°) íìë©ëë¤.",H7n="Stripeë¡ íë¶",V7n="ììë£ ì°¨ê°({{fee}}, Stripe ê²°ì ë¹ì© ì¶©ë¹)",K7n="ììë£({{fee}})",G7n="ê¸ì¡ì´ ìµë íë¶ ê°ë¥ì¡ {{value}}ì(를) ì´ê³¼í©ëë¤",W7n="ì í¨í ìì ê¸ì¡ì ì
ë ¥íì¸ì",Y7n="ì¬ì©ìê° êµ¬ë§¤ í¬ë ë§ ì¼ë¶ë¥¼ ì´ë¯¸ ì¬ì©íìµëë¤. ìµë íë¶ ê°ë¥ì¡: {{value}}",Q7n="ì´ ê²°ì ë ì´ë¯¸ ì ì¡ íë¶ëììµëë¤",X7n="ììë£ ì°¨ê° í ì¤ì íë¶ì¡ì´ ë무 ì ìµëë¤. ìµì {{value}} ì´ì íë¶íì¸ì.",Z7n="Cancel",J7n="Issue refund",eqn="Submitting...",tqn="Refund submitted",nqn="Stripe will return the funds within 1-3 business days. Audit log written.",aqn="Refund failed",oqn={title:Kzn,description:Gzn,tabs:Wzn,emailFilter:Yzn,emailPlaceholder:Qzn,created:Xzn,createdRange:Zzn,amountRange:Jzn,amountMin:e7n,amountMax:t7n,refunds:n7n,noRefunds:a7n,refundId:o7n,refundType:s7n,typeRefund:r7n,typePartialRefund:i7n,originalPayment:l7n,wallets:c7n,wallet:d7n,user:u7n,total:m7n,purchased:p7n,bonus:f7n,noWallets:g7n,payments:h7n,paymentStatus:y7n,noPayments:v7n,payment:b7n,status:x7n,amount:$7n,paid:w7n,refund:k7n,notRefundable:C7n,viewInStripe:S7n,webhookHealthHint:A7n,unhealthyWebhooks:T7n,refundConfirmTitle:R7n,refundConfirmBody:P7n,refundAmountLabel:_7n,refundMaxHint:j7n,refundReasonLabel:N7n,refundPreviewLoading:D7n,refundPreviewFailed:M7n,refundNoRefundableTx:E7n,refundPaidRow:I7n,refundAlreadyRefundedRow:O7n,refundThisRefundRow:L7n,refundCreditReclaimRow:U7n,refundCreditCouponNote:B7n,refundCreditExtraNote:F7n,refundBonusReverseRow:z7n,refundBonusForfeitWarning:q7n,refundStripeReturnRow:H7n,refundFeeToggle:V7n,refundPlatformFeeRow:K7n,refundExceedsMax:G7n,refundAmountInvalid:W7n,refundInsufficientCredit:Y7n,refundAlreadyFull:Q7n,refundBelowMin:X7n,cancel:Z7n,confirmRefund:J7n,submitting:eqn,refundSubmittedTitle:tqn,refundSubmittedBody:nqn,refundFailedTitle:aqn},sqn="Campaigns",rqn="Audience segments, restricted-model access, model discounts, and targeted credit grants.",iqn={mobileLabel:"ìº íì¸ ì¹ì
",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},lqn="Status",cqn="Actions",dqn="All users",uqn="Always",mqn="No expiry",pqn="Active window",fqn="Leave blank for always-on. Times are end-of-day on the chosen dates.",gqn="Valid from",hqn="Valid to",yqn="Pause",vqn="Resume",bqn="Add",xqn="Remove",$qn="Delete",wqn="Clear",kqn="Close",Cqn={allKinds:"모ë ì í",segmentKindStatic:"ì ì ",segmentKindDynamic:"ëì ",grantKindGrant:"ì§ê¸",grantKindRevoke:"íì",allStatuses:"모ë ìí",statusActive:"íì
811±",statusPaused:"ì¼ì ì¤ì§",statusArchived:"ë³´ê´ë¨",statusEnded:"ì¢
ë£ë¨",statusPending:"ë기 ì¤",statusProcessing:"ì²ë¦¬ ì¤",statusCompleted:"ìë£ë¨",statusFailed:"ì¤í¨"},Sqn={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},Aqn={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},Tqn={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Rqn={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audie
811nce",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},Pqn={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
8110.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},_qn={title:sqn,description:rqn,tabs:iqn,status:lqn,actions:cqn,allUsers:dqn,always:uqn,noExpiry:mqn,window:pqn,windowHint:fqn,validFrom:gqn,validTo:hqn,pause:yqn,resume:vqn,actionAdd:bqn,actionRemove:xqn,actionDelete:$qn,actionClear:wqn,actionClose:kqn,filters:Cqn,segments:Sqn,access:Aqn,discounts:Tqn,grants:Rqn,recurring:Pqn},jqn="Announcements",Nqn="Banners shown at the top of the marketing site and the console.",Dqn="Banners",Mqn="Top-of-page banners shown on www and console.",Eqn="New Banner",Iqn="No banners yet. Create one to show a top-of-page announcement.",Oqn="Message",Lqn="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",Uqn="CTA Label",Bqn="CTA Link",Fqn="Severity",zqn="Audience",qqn="Starts At",Hqn="Ends At",Vqn="Dismissible",Kqn="Status",Gqn="Archive",Wqn="Archive this banner? It will no longer be shown to users.",Yqn="New Banner",Qqn="Edit Banner",Xqn="Title",Zqn="Type",Jqn="Content",eHn="Display type",tHn="Banner",nHn="Modal",aHn="Draft",oHn="Active",sHn="Info",rHn="Warning",iHn="Critical",lHn="Console only",cHn="Public site only",dHn="Both",uHn="Hero image",mHn="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",pHn="Upload",fHn="Uploadingâ¦",gHn="Remove",hHn="Only PNG, JPEG, WebP and GIF images are supported.",yHn="Image must be 5MB or smaller.",vHn="Upload failed, please try again.",bHn="Title",xHn="Body",$Hn="Action buttons",wHn="Button label",kHn="Button link",CHn="Style",SHn="Add button",AHn="Remove",THn="Primary",RHn="Secondary",PHn="Link",_Hn="Simplified Chinese (source)",jHn="Fill in Simplified Chinese only, then translate to other languages in one click.",NHn="Translate to all languages",DHn="Translatingâ¦",MHn="Other languages (translated, editable)",EHn="Translated {{ok}} languages",IHn="{{failed}} languages failed â fill in manually or retry",OHn="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",LHn="Re-show to users who already dismissed it",UHn="Fill in the Simplified Chinese body first.",BHn={title:jqn,description:Nqn,annTitle:Dqn,annDescription:Mqn,annNewButton:Eqn,annEmpty:Iqn,annMessage:Oqn,annInlineLinkHint:Lqn,annCtaText:Uqn,annCtaUrl:Bqn,annSeverity:Fqn,annAudience:zqn,annStartsAt:qqn,annEndsAt:Hqn,annDismissible:Vqn,annStatus:Kqn,annArchive:Gqn,annArchiveConfirm:Wqn,annCreateTitle:Yqn,annEditTitle:Qqn,annColTitle:Xqn,annColType:Zqn,annColContent:Jqn,annDisplayType:eHn,annTypeBanner:tHn,annTypeModal:nHn,annStatusDraft:aHn,annStatusActive:oHn,annSevInfo:sHn,annSevWarning:rHn,annSevCritical:iHn,annAudConsole:lHn,annAudPublic:cHn,annAudAll:dHn,annHeroImage:uHn,annHeroImageHint:mHn,annHeroImageUpload:pHn,annHeroImageUploading:fHn,annHeroImageRemove:gHn,annHeroImageBadType:hHn,annHeroImageTooLarge:yHn,annHeroImageUploadFailed:vHn,annModalTitle:bHn,annBody:xHn,annActions:$Hn,annActionLabel:wHn,annActionUrl:kHn,annActionVariant:CHn,annActionAdd:SHn,annActionRemove:AHn,annVariantPrimary:THn,annVariantSecondary:RHn,annVariantLink:PHn,annSourceLocale:_Hn,annSourceHint:jHn,annTranslate:NHn,annTranslating:DHn,annOtherLocales:MHn,annTranslateDone:EHn,annTranslateParti
811al:IHn,annTranslateStale:OHn,annBumpRevision:LHn,annTranslateNeedSource:UHn},FHn="Operations dashboard",zHn="Real-time overview of platform health, usage, and alerts.",qHn="Refresh",HHn="Refreshing",VHn="Updated {{time}}",KHn="Loading dashboard",GHn="Failed to load dashboard",WHn="No data",YHn="No traffic yet",QHn="Video fail rate",XHn="Avg latency",ZHn="Error types",JHn="No errors",eVn="Model anomalies",tVn="All models healthy",nVn="Components",aVn="req",oVn="Checkout abandon",sVn="Refunds",rVn="Chargebacks",iVn="First-charge conversion",lVn={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},cVn={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},dVn={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"ì ì ì¬ì©ìë§ (íëê·¸ ì ì¸)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},uVn={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},mVn={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},pVn={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},fVn={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},gVn={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},hVn={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},yVn={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},vVn={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},bVn={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},xVn="{{failed}}/{{total}} jobs",$Vn="{{delta}}pt vs yesterday",wVn="Low sample ({{n}})",kVn="Had gateway calls",CVn="Last 7d cohort · normal users only",SVn="Refund rate {{rate}}%",AVn={funnel:"opened {{opened}} · paid {{paid}}"},TVn={title:FHn,description:zHn,refresh:qHn,refreshing:HHn,lastUpdated:VHn,loading:KHn,failedLoad:GHn,empty:WHn,noTraffic:YHn,videoFailRate:QHn,avgLatency:XHn,errorTypes:ZHn,noErrors:JHn,modelAnomalies:eVn,noAnomalies:tVn,components:nVn,req:aVn,abandonRate:oVn,refunds:sVn,chargebacks:rVn,firstChargeConversion:iVn,sections:lVn,leaderboard:cVn,kpi:dVn,revenue:uVn,orders:mVn,conversion:pVn,componentStatus:fVn,severity:gVn,health:hVn,alerts:yVn,alertSettings:vVn,range:bVn,videoJobsDetail:xVn,vsYesterdayPt:$Vn,lowSample:wVn,activeUsersHint:kVn,conversionCohortHint:CVn,refundRate:SVn,checkout:AVn},RVn="Loading...",PVn="Admin permission required",_Vn="Your account does not have permission to access this administrator page.",jVn={loading:RVn,permissionRequired:PVn,permissionDescription:_Vn},NVn="User growth",DVn="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",MVn={mobileLabel:"ì±ì¥ ì¹ì
",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"êµí ì½ë",tasks:"Task wall"},EVn="Coupon batch",IVn="Promotion rule",OVn="Count",LVn="Batch code",UVn="Creating...",BVn="Create batch",FVn="{{count}} coupon code created",zVn="{{count}} coupon codes created",qVn="Batch {{code}}",HVn="Copied",VVn="Copy all",KVn="Credit grants",GVn="Source",WVn="Status",YVn="No grants yet",QVn="Coupon redemptions, signup bonuses, and manual grants appear here.",XVn="Time",ZVn="User",JVn="Amount",e9n="Signup bonus",t9n="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",n9n="Enable signup credit",a9n="Amount (USD)",o9n="Save signup bonus",s9n="Saving...",r9n="Current amount {{amount}}",i9n="Referral cashback",l9n="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",c9n="Enable referral cashback",d9n="Reward tiers",u9n="Add tier",m9n="Recipient",p9n="From day",f9n="Until day",g9n="Percent",h9n="Label",y9n="Action",v9n="Inviter",b9n="Invitee",x9n="No end",$9n="Remove tier",w9n="Release delay (days)",k9n="Per-topup cap (USD)",C9n="Min topup (USD, blank = none)",S9n="Cashback expiry (days, blank = never)",A9n="Billing-page countdown banner",T9n="Banner title",R9n="Subtitle",P9n="Countdown mode",_9n="Global deadline",j9n="Each invitee's 30-day window",N9n="Ends at",D9n="Save referral settings",M9n="v{{version}}",E9n="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",I9n="Version history",O9n="Version",L9n="Status",U9n="Reward tiers",B9n="Published",F9n="Superseded",z9n="current",q9n="Top-up discount codes",H9n="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",V9n="Enable discount codes",K9n="Discount type",G9n="Fixed amount off (USD)",W9n="Percentage off (%)",Y9n="Amount off (USD)",Q9n="Percentage off (0-100)",X9n="Save discount",Z9n="Default low-balance alert",J9n="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",eKn="Threshold (USD)",tKn="Save threshold",nKn="Current: {{amount}}",aKn="Generate codes against the discount rule above.",oKn="In effect: {{state}} · {{value}} off",sKn="enabled",rKn="disabled",iKn="Issued codes",lKn="Pick a batch to see who redeemed each code.",cKn="No batches yet",dKn="Generate a batch above to start tracking redemptions.",uKn="Total",mKn="Redeemed",pKn="Reserved",fKn="Available",gKn="Codes in {{code}}",hKn="No codes in this batch",yKn="Code",vKn="Redeemed by",bKn="Redeemed at",xKn="Paid",$Kn="Discount",wKn="ì½ë ìì±",kKn="ê³µì ì½ëë íëì ì½ë를 ì¬ë¬ ì¬ì©ìê° ê°ê° ìµë Níê¹ì§ ì¬ì©í ì ìê³ , ê³ ì ì½ë ë°°ì¹ë ì¼íì© ì½ë Nê°ì
ëë¤.",CKn="ì½ë ì í",SKn="ë¨ì¼ ê³µì ì½ë",AKn="ê³ ì ì½ë ë°°ì¹",TKn="ì½ë 문ìì´ (ë¹ì ëë©´ 무ìì ìì±)",RKn="ì: WELCOME100",PKn="ì´ ì¬ì© íì (N)",_Kn="ì¬ì©ìë¹",jKn="ë§ë£ ì¼ì (ì í)",NKn="그룹 (ì í)",DKn="ê³µì ì½ë ìì±",MKn="ê³µì ì½ëê° ìì±ëììµëë¤",EKn="ì´ ë°°ì¹ì ë³ë í ì¸ ì ì© (미ì¤ì ì ì ê·ì¹ ì¬ì©)",IKn="ê³µì ì½ë",OKn="íëì ì½ë를 ì¬ë¬ ì¬ì©ìê° ì¬ì©í©ëë¤. ì¬ì© íìë ê²°ì ìë£ë ì¬ì©ë¶ì ì§ê³í©ëë¤.",LKn="ìì§ ê³µì ì½ëê° ììµëë¤",UKn="ì¬ì© / íë",BKn="ì¬ì©ìë¹",FKn="ë§ë£",zKn="ë¹íì±í",qKn="ì´ ì½ë를 ë¹íì±íí ê¹ì?",HKn="ì ê²°ì ë ì¦ì ì°¨ë¨ë©ëë¤. ì´ë¯¸ ê²°ì ì§í ì¤ì¸ 주문ì ê·¸ëë¡ ìë£ë ì ììµëë¤.",VKn="ì½ëê° ë¹íì±íëììµëë¤",KKn="CSV",GKn="ìí",WKn="ì´ë©ì¼",YKn={code:"ì½ë",discount:"í ì¸",redeemed:"ì¬ì©",cap:"íë",perUser:"ì¬ì©ìë¹",status:"ìí",expiresAt:"ë§ë£ ì¼ì",batch:"ë°°ì¹",createdAt:"ìì± ì¼ì",redeemedBy:"ì¬ì©ì",redeemedAt:"ì¬ì© ì¼ì",paid:"ê²°ì ",discountAmount:"í ì¸",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"}
811,QKn="Amount",XKn="Bound at",ZKn="Counterparty",JKn="Invitee",eGn="Inviter",tGn="Rate",nGn="Released",aGn="Role",oGn="Tier",sGn="Top-up",rGn="Load more",iGn="No referrals under this version",lGn="No cashback under this version",cGn="Referrals",dGn="Referral records",uGn="Cashback records",mGn="Version detail",pGn={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},fGn="êµí ì½ë ìì±",gGn="ì¶©ì ì¹´ë ë°©ìì êµí ì½ëì
ëë¤. ì¬ì©ìê° ì²êµ¬ íì´ì§ìì ì½ë를 ì
ë ¥íë©´ ì¡ë©´ê°ê° ë°ë¡ ìì¡ì ë°ìë©ëë¤(ë³´ëì¤ ìì¡, ê²°ì ë¶íì).",hGn="ë°°ì¹ ì´ë¦(ì í)",yGn="ì: Conf-2026 ì¦ì ",vGn="ìì± ìë",bGn="ì½ëë¹ ì¡ë©´ê°(USD)",xGn="ê³ì ë¹ ì´ ë°°ì¹ìì êµí ê°ë¥ íì(ë¹ì ëë©´ = 무ì í)",$Gn="무ì í",wGn="êµí ë§ê° ìê°(ì í)",kGn="Restrict to models (optional)",CGn="General balance (no restriction)",SGn="{{count}} models selected",AGn="Blank = general balance. Selected models share one earmarked pool.",TGn="Credit validity after redemption (days, blank = never expires)",RGn="never expires",PGn="{{n}} d",_Gn="Models",jGn="Validity",NGn="General balance",DGn="êµí ì½ë ìì±",MGn="ì§ê¸ ë°ë¡ ì ì¥íì¸ì. ì´íìë ë°°ì¹ ëª©ë¡ì ãí문 ë´ë³´ë´ê¸°ãë¡ ë¤ì ë°ì ì ììµëë¤.",EGn="êµí ì½ë ë°°ì¹",IGn="ë°°ì¹ë¥¼ í´ë¦íë©´ ì½ëë³ ìì¸ë¥¼ ë³¼ ì ììµëë¤. ãí문 ë´ë³´ë´ê¸°ãë¡ í문ì ë¤ì ë´ë³´ë¼ ì ììµëë¤.",OGn="êµí ì½ë ë°°ì¹ê° ìì§ ììµëë¤",LGn="ë°°ì¹",UGn="ì¡ë©´ê°",BGn="í문 ë´ë³´ë´ê¸°",FGn="ì´ë¯¸ êµíë ì´ ì½ë를 ì·¨ìí ê¹ì?",zGn="ì¬ì©ì ìì¡ìì ìì§ ì¬ì©ëì§ ìì ë¶ë¶ì íìí©ëë¤. ì´ë¯¸ ì¬ì©ë ë¶ë¶ì íìí ì ììµëë¤.",qGn="ì·¨ì",HGn="{{amount}} ì·¨ìë¨",VGn="êµí ì½ë를 ë´ë³´ëìµëë¤",KGn="ì´ ë°°ì¹ì 미êµí ì½ë를 ë¹íì±íí ê¹ì?",GGn="ìì§ êµíëì§ ìì 모ë ì½ëê° ë¬´í¨íë©ëë¤. ì´ë¯¸ êµíë ì½ëë ìí¥ì ë°ì§ ììµëë¤.",WGn="ì½ë {{n}}ê°ë¥¼ ë¹íì±ííìµëë¤",YGn="Bonus % on top-up",QGn="Bonus (%)",XGn="Bonus validity (days, optional)",ZGn="blank = never expires",JGn={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},eWn={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
811ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},tWn={title:NVn,description:DVn,tabs:MVn,couponBatch:EVn,promotionRule:IVn,count:OVn,batchCode:LVn,creating:UVn,createBatch:BVn,codesCreated:FVn,codesCreated_plural:zVn,batch:qVn,copied:HVn,copyAll:VVn,creditGrants:KVn,source:GVn,status:WVn,noGrants:YVn,noGrantsDescription:QVn,time:XVn,user:ZVn,amount:JVn,signupBonus:e9n,signupBonusDescription:t9n,signupBonusEnabled:n9n,signupBonusAmount:a9n,saveSignupBonus:o9n,saving:s9n,currentSignupBonus:r9n,referral:i9n,referralDescription:l9n,referralEnabled:c9n,referralRewardTiers:d9n,addTier:u9n,tierRole:m9n,tierFromDay:p9n,tierUntilDay:f9n,tierPercent:g9n,tierLabel:h9n,tierAction:y9n,roleReferrer:v9n,roleReferee:b9n,noEndDay:x9n,removeTier:$9n,releaseDelayDays:w9n,referralCap:k9n,referralMinTopup:C9n,referralExpiryDays:S9n,bannerEnabled:A9n,bannerTitle:T9n,bannerSubtitle:R9n,bannerMode:P9n,bannerModeGlobal:_9n,bannerModeWindow:j9n,bannerEndsAt:N9n,saveReferral:D9n,referralVersion:M9n,referralPublishHint:E9n,referralVersionHistory:I9n,versionCol:O9n,versionStatus:L9n,versionTiers:U9n,versionPublished:B9n,versionSuperseded:F9n,versionCurrent:z9n,discountRule:q9n,discountRuleDescription:H9n,discountEnabled:V9n,discountType:K9n,discountFixed:G9n,discountPercent:W9n,discountValueFixed:Y9n,discountValuePercent:Q9n,saveDiscount:X9n,defaultLowBalanceThreshold:Z9n,defaultLowBalanceThresholdDescription:J9n,defaultLowBalanceThresholdAmount:eKn,saveDefaultLowBalanceThreshold:tKn,currentDefaultLowBalanceThreshold:nKn,couponBatchDescription:aKn,discountEffective:oKn,stateEnabled:sKn,stateDisabled:rKn,couponTrace:iKn,couponTraceDescription:lKn,noBatches:cKn,noBatchesDescription:dKn,batchTotal:uKn,batchRedeemed:mKn,batchReserved:pKn,batchActive:fKn,codesInBatch:gKn,noCodes:hKn,code:yKn,redeemedBy:vKn,redeemedAt:bKn,paid:xKn,discount:$Kn,createIssuance:wKn,createIssuanceDescription:kKn,formLabel:CKn,formShared:SKn,formUniqueBatch:AKn,sharedCodeText:TKn,sharedCodeRandomHint:RKn,sharedMaxRedemptions:PKn,sharedPerUser:_Kn,expiresAt:jKn,batchCodeOptional:NKn,createSharedCode:DKn,sharedCodeCreated:MKn,batchOwnDiscount:EKn,sharedCodesList:IKn,sharedCodesListDescription:OKn,noSharedCodes:LKn,colRedeemedTotal:UKn,colPerUser:BKn,colExpiry:FKn,disableCode:zKn,disableCodeConfirmTitle:qKn,disableCodeConfirmMessage:HKn,codeDisabled:VKn,exportCsv:KKn,statusFilter:GKn,filterByEmail:WKn,csv:YKn,colAmount:QKn,colBoundAt:XKn,colCounterparty:ZKn,colInvitee:JKn,colInviter:eGn,colRate:tGn,colReleasedAt:nGn,colRole:aGn,colTier:oGn,colTopup:sGn,loadMore:rGn,noBindings:iGn,noCashback:lGn,versionBindings:cGn,versionBindingsSection:dGn,versionCashbackSection:uGn,versionDetail:mGn,topup:pGn,redeemCreate:fGn,redeemCreateDescription:gGn,redeemBatchName:hGn,redeemBatchNameHint:yGn,redeemCount:vGn,redeemFaceValue:bGn,redeemPerUserLimit:xGn,redeemUnlimited:$Gn,redeemExpiresAt:wGn,redeemModels:kGn,redeemModelsAll:CGn,redeemModelsCount:SGn,redeemModelsHint:AGn,redeemValidityDays:TGn,redeemValidityForever:RGn,redeemValidityDaysValue:PGn,redeemColModels:_Gn,redeemColValidity:jGn,redeemGeneralBalance:NGn,redeemCreateBtn:DGn,redeemRevealHint:MGn,redeemBatches:EGn,redeemBatchesDescription:IGn,redeemNoBatches:OGn,redeemBatchCol:LGn,redeemFace:UGn,redeemReveal:BGn,redeemReverseTitle:FGn,redeemReverseMessage:zGn,redeemReverseBtn:qGn,redeemReversed:HGn,redeemRevealed:VGn,redeemDisableBatchTitle:KGn,redeemDisableBatchMessage:GGn,redeemBatchDisabled:WGn,discountTypeBonusPercent:YGn,discountValueBonusPercent:QGn,bonusExpiryDays:XGn,bonusExpiryDaysHint:ZGn,sharedPayments:JGn,tasks:eWn},nWn="Models",aWn="Model catalog: create, edit, publish.",oWn={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},sWn="Add model",rWn="Edit {{model}}",iWn="New model",lWn="Close",cWn="Basics & content save together; pricing and status changes apply immediately.",dWn="Create the model draft. Set pricing and publish after it exists.",uWn={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},mWn="Provider slug",pWn="Pick a known provider or type a custom slug.",fWn="Model slug",gWn="Aliases",hWn="Comma-separated lookup aliases for import and review.",yWn="Source (customer-visible)",vWn="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
811ame-model variants at different prices.",bWn="Platform",xWn="â select platform â",$Wn="Upstream model id (optional; choose from upstream or enter manually)",wWn="Choose from upstream...",kWn="Upstream unavailable",CWn="Protocols",SWn="Input price / 1M (USD)",AWn="Output price / 1M (USD)",TWn="EN summary",RWn="Preview",PWn="(No summary)",_Wn="No protocol",jWn="Cancel",NWn="Save",DWn="Create draft",MWn={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},EWn={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},IWn="Context window (tokens)",OWn="Max input the model accepts. Leave blank if unknown.",LWn="Max output tokens",UWn="Max tokens the model can generate per response.",BWn={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},FWn="Input modalities",zWn="Declares what this model can receive, including vision, audio, video, and file inputs.",qWn="Output modalities",HWn="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",VWn="Image billing style",KWn="Video billing style",GWn="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",WWn="â select billing style â",YWn="Per token (image_output_token)",QWn="Per image (per_call_image)",XWn="Per second (video_per_second)",ZWn="Per call (video_per_call)",JWn="Display order",eYn="Must be a non-negative integer.",tYn="Editing locale",nYn="Upstream release date",aYn="Summary (this locale)",oYn="Description (Markdown, this locale)",sYn={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"íí°"},rYn={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},iYn={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},lYn={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
811:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},cYn="Discard unsaved changes?",dYn="ëª¨ë¸ í¸ì§",uYn={title:nWn,description:aWn,badges:oWn,addModel:sWn,editModel:rWn,newModel:iWn,close:lWn,sheetDescription:cWn,sheetDescriptionNew:dWn,sections:uWn,providerSlug:mWn,providerSlugHint:pWn,modelSlug:fWn,aliases:gWn,aliasesHint:hWn,source:yWn,sourceHint:vWn,platform:bWn,platformUnset:xWn,sub2apiModelId:$Wn,chooseSub2api:wWn,upstreamUnavailable:kWn,protocols:CWn,inputPrice:SWn,outputPrice:AWn,enSummary:TWn,preview:RWn,noSummary:PWn,noProtocol:_Wn,cancel:jWn,save:NWn,createDraft:DWn,tabs:MWn,steps:EWn,contextWindow:IWn,contextWindowHint:OWn,maxOutputTokens:LWn,maxOutputTokensHint:UWn,lifecycle:BWn,inputModalities:FWn,inputModalitiesHint:zWn,outputModalities:qWn,outputModalitiesHint:HWn,billingStyleImage:VWn,billingStyleVideo:KWn,billingStyleHint:GWn,billingStyleUnset:WWn,billingStyleToken:YWn,billingStylePerImage:QWn,billingStylePerSecond:XWn,billingStylePerCall:ZWn,displayOrder:JWn,displayOrderInvalid:eYn,contentLocale:tYn,upstreamReleaseAt:nYn,summary:aYn,descriptionField:oYn,filters:sYn,table:rYn,errors:iYn,pricing:lYn,discardChanges:cYn,editModelShort:dYn},mYn="Rate Limits",pYn="Rate limit policies by scope.",fYn="Rate limit policies",gYn="No policies",hYn="Code",yYn="Name",vYn="Scope",bYn="Status",xYn="Limits",$Yn="No limits",wYn={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},kYn={active:"Active",disabled:"Disabled",archived:"Archived"},CYn={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},SYn="New policy",AYn="Edit",TYn="Action",RYn="New rate limit policy",PYn="Edit {{name}}",_Yn="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",jYn='Delete policy "{{name}}"? Keys and users on it fall back to their default.',NYn="Policy deleted.",DYn={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},MYn={title:mYn,description:pYn,label:fYn,empty:gYn,code:hYn,name:yYn,scope:vYn,status:bYn,limits:xYn,noLimits:$Yn,scopes:wYn,statuses:kYn,limitNames:CYn,add:SYn,edit:AYn,delete:"Delete",action:TYn,newTitle:RYn,editTitle:PYn,formDescription:_Yn,confirmDelete:jYn,deleted:NYn,form:DYn},EYn="Admins",IYn="Who can sign in to the admin console. Owner-only.",OYn="Admins",LYn="No admins yet",UYn="Email",BYn="Name",FYn="Role",zYn="Status",qYn="Last login",HYn="Action",VYn="Add admin",KYn="Add admin",GYn="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",WYn="Email",YYn="[email protected]",QYn="Name",XYn="Display name",ZYn="Role",JYn="Admin added.",eQn="Change role",tQn="Role updated.",nQn="Suspend",aQn="Activate",oQn="Status updated.",sQn="Remove",rQn="Admin removed.",iQn="Remove {{email}} as an admin? They lose console access immediately.",lQn="You",cQn="Never",dQn={owner:"Owner",admin:"Admin",
811support:"Support"},uQn={active:"Active",suspended:"Suspended"},mQn={title:EYn,description:IYn,label:OYn,empty:LYn,email:UYn,name:BYn,role:FYn,status:zYn,lastLogin:qYn,action:HYn,add:VYn,newTitle:KYn,formDescription:GYn,emailLabel:WYn,emailPlaceholder:YYn,nameLabel:QYn,namePlaceholder:XYn,roleLabel:ZYn,added:JYn,changeRole:eQn,roleChanged:tQn,suspend:nQn,activate:aQn,statusChanged:oQn,remove:sQn,removed:rQn,confirmRemove:iQn,self:lQn,never:cQn,roles:dQn,statuses:uQn},pQn="Upstream",fQn="Read-only upstream configuration mirror plus controlled OneHop routing pools.",gQn="Open upstream admin",hQn="Upstream tabs",yQn={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},vQn={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},bQn={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},xQn={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"ì
ì¤í¸ë¦¼ 커ë²ë¦¬ì§",coverageUnchecked:"ê³ì ì ì½ì ì ìì",coverageOnlyAccount:"{{accounts}} ë¿",coverageNoAccount:"ì´ ì
ì¤í¸ë¦¼ ID를 매ííë ì¤ì¼ì¤ ê°ë¥ ê³ì ì´ ìì"},$Qn={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},wQn={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},kQn={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},CQn={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},SQn={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},AQn={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},TQn={title:pQn,description:fQn,openUpstreamAdmin:gQn,tabsLabel:hQn,tabs:yQn,metrics:vQn,errors:bQn,audit:xQn,topology:$Qn,pools:wQn,readonly:kQn,table:CQn,common:SQn,ops:AQn},RQn="Platform usage",PQn="Cross-user request metering with cost, token, latency, and routing signals.",_Qn="Refresh",jQn={label:"Auto refresh",off:"Off"},NQn="Exporting",DQn="Export CSV",MQn="Failed to export usage records",EQn="Requests",IQn="{{count}} successful",OQn="Users",LQn="Matched by current filters",UQn="Billed credit",BQn="{{cost}} upstream cost",FQn="Tokens",zQn="Avg {{duration}}",qQn="User email",HQn="Search by email",VQn="Model",KQn="Search by model",GQn="Status",WQn="Protocol",YQn="Rows",QQn="Reset",XQn="Ops usage records",ZQn="No usage records",JQn="User",eXn="Endpoint",tXn="{{count}} total",nXn="In {{input}} / out {{output}}",aXn="Upstream",oXn="Billed",sXn="Latency",rXn="Started",iXn="Page {{page}} · showing {{shown}} of {{total}} matching records",lXn="Previous",cXn="Next",dXn="{{count}} rows on this page",uXn="Times shown in",mXn="{{count}} API keys",pXn="Spend snapshot",fXn="from OneHop billing snapshot",gXn="User spend",hXn="total billed to users",yXn="Avg latency",vXn="settled requests",bXn="Range",xXn={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},$Xn="Metric",wXn={cost:"Spend",tokens:"Tokens",requests:"Requests"},kXn="Distribution",CXn={model:"모ë¸",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
811:"Transport (stream/sync)"},SXn="Usage trend",AXn="Usage by model",TXn="Hourly",RXn="Daily",PXn="Top endpoints",_Xn="Top dimension rows",jXn="Request logs",NXn="API key",DXn="Type",MXn="Billing",EXn="Channel",IXn="Group",OXn="Request ID",LXn="req_ / usg_ / upstream",UXn="All types",BXn="All billing",FXn={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},zXn="Failed to load usage",qXn="Loading usage records",HXn="Try a different filter set.",VXn="No trend data",KXn="No distribution data",GXn="No rows",WXn="Spend breakdown",YXn={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},QXn="Request detail",XXn="Unknown user",ZXn="Loading...",JXn="Sub2API actual",eZn="Group multiplier",tZn="Account multiplier",nZn="Identity",aZn="User ID",oZn="Key suffix",sZn={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},rZn="Input",iZn="Output",lZn="Cache read",cZn="Cache write",dZn="Raw metadata",uZn="Request",mZn="Usage ID",pZn="OneHop ID",fZn="Sub2API ID",gZn="Sub2API log",hZn="Routing",yZn="Mapping",vZn="Performance",bZn="First token",xZn="Total",$Zn="Error",wZn="Code",kZn="Message",CZn={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},SZn={analytics:"Usage analytics",logs:"Request logs"},AZn={label:"Chart view",stacked:"Over time",ranking:"Ranking"},TZn={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},RZn="More filters",PZn="Slow threshold (ms)",_Zn="No model usage",jZn="No requests yet â usage will appear here as traffic comes in.",NZn="Viewing",DZn="streaming requests",MZn="Avg duration",EZn="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",IZn="Open request detail",OZn={title:RQn,description:PQn,refresh:_Qn,autoRefresh:jQn,exporting:NQn,exportCsv:DQn,exportError:MQn,requests:EQn,successful:IQn,users:OQn,matchedFilters:LQn,billedCredit:UQn,upstreamCost:BQn,tokens:FQn,avgDuration:zQn,userEmail:qQn,searchEmail:HQn,model:VQn,searchModel:KQn,status:GQn,protocol:WQn,rows:YQn,reset:QQn,label:XQn,empty:ZQn,user:JQn,endpoint:eXn,totalTokens:tXn,inOut:nXn,upstream:aXn,billed:oXn,latency:sXn,started:rXn,pageSummary:iXn,previous:lXn,next:cXn,rowsOnPage:dXn,timesShownIn:uXn,apiKeys:mXn,sub2apiCharge:pXn,sub2apiChargeSource:fXn,userSpend:gXn,userSpendSource:hXn,avgLatency:yXn,settledRequests:vXn,range:bXn,ranges:xXn,metric:$Xn,metrics:wXn,distribution:kXn,breakdown:CXn,usageTrend:SXn,stackedByModel:AXn,hourly:TXn,daily:RXn,topEndpoints:PXn,topDimensionRows:_Xn,requestLogs:jXn,apiKey:NXn,type:DXn,billing:MXn,channel:EXn,group:IXn,requestId:OXn,requestIdPlaceholder:LXn,allTypes:UXn,allBilling:BXn,table:FXn,failedLoad:zXn,loadingRecords:qXn,tryDifferentFilters:HXn,noTrendData:VXn,noDistributionData:KXn,noRows:GXn,costBreakdown:WXn,adminCost:YXn,requestDetail:QXn,unknownUser:XXn,loading:ZXn,sub2apiActual:JXn,groupMultiplier:eZn,accountMultiplier:tZn,identity:nZn,userId:aZn,keySuffix:oZn,
811continuity:sZn,input:rZn,output:iZn,cacheRead:lZn,cacheWrite:cZn,rawMetadata:dZn,request:uZn,usageId:mZn,onehopId:pZn,sub2apiId:fZn,sub2apiLog:gZn,routing:hZn,mapping:yZn,performance:vZn,firstToken:bZn,total:xZn,error:$Zn,code:wZn,message:kZn,csv:CZn,tabs:SZn,modelView:AZn,chip:TZn,moreFilters:RZn,slowThreshold:PZn,noModelUsage:_Zn,noTrendToday:jZn,viewing:NZn,avgLatencySub:DZn,avgTotalDuration:MZn,latencyHint:EZn,openRequestDetail:IZn},LZn="Search",UZn="Search by user ID, email, or name",BZn="User",FZn="Back to users",zZn="You do not have permission to view this section.",qZn="Refund",HZn="Refunding...",VZn="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",KZn="Refund initiated.",GZn={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"API í¤",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},WZn={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},YZn={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},QZn={phase2:"Subscriptions are coming in Phase 2."},XZn={empty:"No payments"},ZZn={empty:"No refunds"},JZn={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},eJn={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},tJn={empty:"No audit records"},nJn={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},aJn={ipLocationTitle:"IP ë° ìì¹",deviceBrowserTitle:"기기 ë° ë¸ë¼ì°ì ",stripeTitle:"Stripe",signupIp:"ê°ì
IP",signupCountry:"ê°ì
êµê°",lastLoginIp:"ë§ì§ë§ ë¡ê·¸ì¸ IP",ipDifferent:"ê°ì
IPì ë¤ë¦",sameIpAccounts_one:"ëì¼ ê°ì
IPì ê³ì {{count}}ê°",sameIpAccounts_other:"ëì¼ ê°ì
IPì ê³ì {{count}}ê°",sameDeviceAccounts_one:"ëì¼ ê¸°ê¸°ì ê³ì {{count}}ê°",sameDeviceAccounts_other:"ëì¼ ê¸°ê¸°ì ê³ì {{count}}ê°",deviceFingerprint:"기기 ì§ë¬¸",freeTierEligible:"ë¬´ë£ í°ì´ ì격",firstDevice:"ì´ ê¸°ê¸°ì 첫 ê³ì ",notFirstDevice:"ì´ ê¸°ê¸°ì 첫 ê³ì ìë â ë¬´ë£ íí ìì",browser:"ë¸ë¼ì°ì ",os:"OS",deviceType:"기기 ì í",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"ipinfo.ioìì 보기"},oJn={empty:"ìì§ í¸ì¶ ìì",viewAll:"모ë ë¡ê·¸ 보기 â",colStatus:"ìí",colTime:"ìê°",colModel:"모ë¸",colProtocol:"íë¡í ì½",colDuration:"ìì ìê°",colCost:"ë¹ì©",colFreeDiscount:"ë¬´ë£ í¬ë ë§"},sJn={empty:"ìì§ API keys ìì",colName:"ì´ë¦",colKey:"Key",colStatus:"ìí",colPolicy:"ë ì´í¸ ë¦¬ë° ì ì±
",colLastUsed:"ë§ì§ë§ ì¬ì©",colCreated:"ìì±ì¼",colExpires:"ë§ë£ì¼",colSpend:"ì¬ì© ê¸ì¡",spendTitle:"ì¬ì© ë´ì",spend30d:"ìµê·¼ 30ì¼",spendAllTime:"ëì ",spendRequests:"ìì² ì"},rJn="ë³µì¬",iJn="ë³µì¬ë¨",lJn={search:LZn,searchPlaceholder:UZn,title:BZn,backToList:FZn,noBlockPerm:zZn,refund:qZn,refunding:HZn,refundConfirm:VZn,refundInitiated:KZn,nav:GZn,freeTokens:WZn,freeQuota:YZn,subscription:QZn,payments:XZn,refunds:ZZn,rewards:JZn,referrals:eJn,audit:tJn,col:nJn,network:aJn,recentCalls:oJn,apiKeys:sJn,copy:rJn,copied:iJn},cJn="Users",dJn="Search users, grant credit, and suspend accounts.",uJn="Email",mJn="Search by email",pJn="Account status",fJn={active:"ê³ì íì± ìí. ë¡ê·¸ì¸ ë° gateway í¸ì¶ ê°ë¥",suspended:"ì ì§ë¨. Gatewayê° ëª¨ë ìì²ì ê±°ë¶í¨(401)"}
811,gJn="Risk",hJn={normal:"모ë ë¬´ë£ íí ëì",watchlisted:"ë¬´ë£ token ë° ê°ì
ë³´ëì¤ ìì. ì¶©ì ë° gateway í¸ì¶ì ê°ë¥",blocked:"Gatewayê° ëª¨ë ìì²ì ê±°ë¶í¨(401). ìì ì°¨ë¨"},yJn="Users",vJn="No users found",bJn="Country",xJn="Last login",$Jn="Action",wJn="View",kJn="Deleted",CJn="Set status for {{email}}",SJn='Set {{email}} to "{{status}}"?',AJn="Grant credit",TJn="Add bonus credit to {{email}}. Recorded in the ledger.",RJn="Amount (USD)",PJn="e.g. 5",_Jn="Reason (optional)",jJn="e.g. compensation for downtime",NJn="Type",DJn="Bonus credit",MJn="A gift. Does not count as a top-up.",EJn="Offline payment",IJn="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",OJn="Reference no.",LJn="e.g. bank slip 20260907-001",UJn="Record payment",BJn="Recording...",FJn="Cancel",zJn="Granting...",qJn="Grant",HJn="Grant ${{amount}} to {{email}}? This is a large amount.",VJn="No display name",KJn="Loading...",GJn="score {{score}}",WJn="Email verified",YJn="Yes",QJn="No",XJn="Signup",ZJn="Signup method",JJn="Last login method",eea="Signup bonus",tea="Onboarding",nea="Locale / TZ",aea="Markup ratio",oea="Rate limit policy",sea="Rate limit policy updated.",rea="Joined",iea="Never",lea="Balance",cea="Wallet & spend",dea="Total spent",uea="Recharged",mea="Bonus granted",pea="Refunded",fea="Requests",gea="Tokens",hea="Actions",yea="Identity & risk",vea="Role",bea="No permitted actions for your role.",xea="Acquisition source",$ea="Acquisition by source",wea="Direct / unknown",kea="Custom sourceâ¦",Cea="Set",Sea="Auto-detected: {{source}}",Aea="UTM",Tea="Referred by",Rea="ë©ëª¨",Pea="ì´ ì¬ì©ì를 ìë³í ë©ëª¨ ì¶ê°",_ea="ë©ëª¨ ì ì¥",jea="ë©ëª¨ ì ì¥ë¨",Nea="ë©ëª¨ ìì",Dea="íí°",Mea="Location",Eea="Preferred locale",Iea={title:cJn,description:dJn,email:uJn,searchEmail:mJn,status:pJn,statusEffect:fJn,risk:gJn,riskEffect:hJn,label:yJn,empty:vJn,country:bJn,lastLogin:xJn,action:$Jn,view:wJn,deleted:kJn,setStatusAria:CJn,setStatusConfirm:SJn,grantCredit:AJn,grantDescription:TJn,amountUsd:RJn,amountPlaceholder:PJn,reason:_Jn,reasonPlaceholder:jJn,grantKind:NJn,grantKindBonus:DJn,grantKindBonusHint:MJn,grantKindOffline:EJn,grantKindOfflineHint:IJn,referenceNo:OJn,referenceNoPlaceholder:LJn,recordPayment:UJn,recording:BJn,cancel:FJn,granting:zJn,grant:qJn,largeGrantConfirm:HJn,noDisplayName:VJn,loading:KJn,score:GJn,emailVerified:WJn,yes:YJn,no:QJn,signup:XJn,signupMethod:ZJn,lastLoginMethod:JJn,signupBonus:eea,onboarding:tea,localeTz:nea,markupRatio:aea,rateLimitPolicy:oea,rateLimitPolicyChanged:sea,joined:rea,never:iea,walletBalance:lea,walletSection:cea,consumed:dea,recharged:uea,bonusGranted:mea,refunded:pea,requests:fea,tokens:gea,actionsSection:hea,identitySection:yea,role:vea,noPermittedActions:bea,acquisitionSource:xea,acquisitionTitle:$ea,sourceDirect:wea,sourceCustomPlaceholder:kea,sourceSet:Cea,sourceCaptured:Sea,utm:Aea,referrer:Tea,note:Rea,notePlaceholder:Pea,noteSave:_ea,noteSaved:jea,noteEmpty:Nea,filters:Dea,location:Mea,preferredLocale:Eea},Oea="Webhooks",Lea="Stripe webhook events. Status filter, retry, payload inspection.",Uea="Status",Bea="Event type",Fea="Received",zea="Event type",qea="Status",Hea="Mode",Vea="Attempts",Kea="Retry",Gea="Retry queued",Wea="Event {{event}} reset to pending; next job tick will process.",Yea="Retry failed",Qea="No webhook events yet.",Xea="Stripe events will appear here once your endpoint is registered.",Zea="Loading payload...",Jea="Last error",eta="Payload (JSON)",tta={title:Oea,description:Lea,statusFilter:Uea,eventTypeFilter:Bea,receivedAt:Fea,eventType:zea,status:qea,mode:Hea,attempts:Vea,retry:Kea,retrySubmittedTitle:Gea,retrySubmittedBody:Wea,retryFailedTitle:Yea,empty:Qea,emptyHint:Xea,detailLoading:Zea,lastError:Jea,payload:eta},nta="API Keys",ata="10ì´ ìì 첫 key ë§ë¤ê¸°",ota="ë³µì¬íì§ ëª»íìµëë¤",sta={label:"íì©ë 모ë¸",allModels:"모ë 모ë¸",allHint:"ì¹´íë¡ê·¸ì 모ë 모ë¸ì´ íì©ë©ëë¤.",noModels:"ì¬ì© ê°ë¥í 모ë¸ì´ ììµëë¤.",selected:"{{count}}ê° ì íë¨",someHint:"{{count}}ê° ëª¨ë¸ íì©."},rta={label:"íê·¸",placeholder:"í그를 ì
ë ¥íê³ Enter를 ë르ì¸ì",remove:"ì ê±°"},ita="íë¡ëì
, ì¤í
ì´ì§, í ìí¬íë¡ì© scoped key를 ë§ëëë¤.",lta="ìë¡ê³ 침",cta="기본 key",dta="Key ì´ë¦",uta="ìì± ì¤...",mta="Key ë§ë¤ê¸°",pta="ì ì²´ key, í ë²ë§ íì",fta="API key ë³µ
811ì¬",gta="ë³µì¬ë¨",hta="ë³µì¬",yta="ì§ê¸ ë³µì¬í´ ì ì¥íì¸ì. ì´ í¨ëì ë«ì¼ë©´ ì ì²´ key를 ë¤ì ë³¼ ì ììµëë¤.",vta="ì ì¥íìµëë¤",bta="API keys ë¡ë ì¤í¨",xta="ë¤ì ìë",$ta="ìì§ API keys ìì",wta="첫 key를 ë§ë¤ë©´ OneHopì íµí´ ìì²ì ë³´ë¼ ì ììµëë¤.",kta={label:"API keys",tags:"íê·¸",name:"ì´ë¦",key:"Key",status:"ìí",created:"ìì±ì¼",action:"ìì
",usage:"ì¬ì©ë",quota:"íë",expires:"ë§ë£ì¼",lastUsed:"ë§ì§ë§ ì¬ì©"},Cta="í기",Sta="{{name}}ì(를) í기í ê¹ì? ì´ ìì
ì ëë릴 ì ììµëë¤.",Ata="key ì´ë¦ì ì§ì íì¸ì. íëì ë§ë£ì¼ì íìí ê²½ì°ìë§ ê³ ê¸ ì¤ì ìì ì¡°ì í©ëë¤.",Tta="ìê° credit íë",Rta="ë§ë£ì¼",Pta="무ì í",_ta="ì ì¥ ì¤...",jta="ì ì¥",Nta="ì·¨ì",Dta={title:"ë¹íì± / ì·¨ìë¨",description:"êº¼ì ¸ ìê±°ë ì·¨ìë keyì
ëë¤. ë¹íì± keyë ë¤ì íì±íí ì ìê³ ì·¨ìë keyë 기ë¡ì¼ë¡ ë³´ê´ë©ëë¤."},Mta={title:"íì± keyê° ììµëë¤",description:"ìëìì ë¹íì±íë key를 ë¤ì íì±ííê±°ë ì key를 ë§ëì¸ì."},Eta={import:"CCSë¡ ê°ì ¸ì¤ê¸°",client:"CC-Switch í´ë¼ì´ì¸í¸",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"íë ì´ì¤íëë¡ CC Switch를 ì´ììµëë¤. ì ì¥í API key를 ë¶ì¬ë£ì¼ì¸ì.",checking:"í¸íì±ì íì¸íë ì¤â¦",blocked:{title:"{{client}}ìì ì´ í¤ë¥¼ ì¬ì©í ì ììµëë¤",body:"â{{keyName}}âì {{client}}ìì ì¬ì©í ì ìë 모ë¸ë§ íì©í©ëë¤. ê°ì ¸ì¤ë©´ ì¤ë¥ê° ë°ìí©ëë¤.",adjust:"ëª¨ë¸ ë²ì ì¡°ì ",forceImport:"ê·¸ëë ê°ì ¸ì¤ê¸°(ìëíì§ ìì)"},pin:{title:"{{client}}ì©ì¼ë¡ {{model}}ë¡ ê°ì ¸ì¤ê¸°",body:"â{{keyName}}âìë {{client}}ì 기본 모ë¸ì´ í¬í¨ëì´ ìì§ ììµëë¤. {{client}} ìì²ì ì´ ê³µê¸ì를 íµí´ ë¤ìê³¼ ê°ì´ ë¼ì°í
ë©ëë¤:",adjust:"ëª¨ë¸ ë²ì ì¡°ì ",confirm:"{{model}}ë¡ ê°ì ¸ì¤ê¸°"}},Ita={search:"ê²ì",searchPlaceholder:"ì´ë¦ ëë key ì ë¯¸ì¬ ê²ì",status:"ìí",allStatus:"모ë ìí",clear:"íí° ì§ì°ê¸°",empty:"ì´ íí°ì ì¼ì¹íë keyê° ììµëë¤",emptyDescription:"ê²ì ëë ìí íí°ë¥¼ ì§ì°ë©´ 모ë key를 ë³¼ ì ììµëë¤.",mobileTitle:"íí°"},Ota={active:"íì±",inactive:"ë¹íì±",revoked:"í기ë¨",expired:"ë§ë£ë¨",quota_exhausted:"íë ìì§"},Lta={today:"ì¤ë {{requests}}í · {{credit}}",days30:"30ì¼ {{requests}}í · {{credit}}"},Uta={use:"ì°ê²° ì ë³´",edit:"í¸ì§",enable:"íì±í",disable:"ë¹íì±í",delete:"ìì "},Bta="API key ì¬ì©",Fta="ì ì¥í keyë¡ OneHop gateway를 í¸ì¶í©ëë¤. ì ì²´ keyë ìì± ì í ë²ë§ íìë©ëë¤.",zta={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization í¤ë",env:"íê²½ ë³ì",curl:"cURL",revealing:"key ë³µí¸í ì¤â¦",fullKeyUnavailable:"ì ì²´ keyë ìì± ì í ë²ë§ íìë©ëë¤. ì ì¥í´ ë ê°ì ì¬ì©íê±°ë, ìì´ë²ë ¸ë¤ë©´ ì key를 ë§ëì¸ì.",protocolEndpoints:"íë¡í ì½ endpoint"},qta="ê³ ê¸ ì¤ì ",Hta="API key ë§ë¤ê¸°",Vta="API key í¸ì§",Kta={label:"ëª¨ë¸ ì ê·¼",all:"모ë 모ë¸",limited:"í¹ì 모ë¸ë¡ ì í",allHint:"ì´ keyë ëì¤ì ì¶ê°ëë 모ë¸ì í¬í¨í´ 모ë 모ë¸ì í¸ì¶í ì ììµëë¤.",snapshotHint:"ì íí 모ë¸ë§ í¬í¨ë©ëë¤. ì´í ì¶ê°ëë 모ë¸ì ìëì¼ë¡ í¬í¨ëì§ ììµëë¤.",snapshotHintEdit:"ì íí 모ë¸ë§ í¬í¨ë©ëë¤. ì 모ë¸ì ìëì¼ë¡ ì¶ê°ëì§ ììµëë¤. 모ë 모ë¸ë¡ ì ííë©´ ì´ íì´í¸ë¦¬ì¤í¸ê° ëì²´ë©ëë¤.",searchPlaceholder:"ëª¨ë¸ ê²ìâ¦",selectAllResults:"íì¬ ê²°ê³¼ 모ë ì í({{count}})",selectedCount:"{{count}} / {{max}} ì íë¨",clear:"ì§ì°ê¸°",hiddenSelected:"ì íí {{total}}ê° ì¤ {{hidden}}ê°ê° íì¬ íí°ì ì¨ê²¨ì ¸ ììµëë¤",selectVendor:"{{vendor}} 모ë ì í, {{on}}/{{total}} ì íë¨",emptyTitle:"ì¼ì¹íë 모ë¸ì´ ììµëë¤",emptyDescription:"ë¤ë¥¸ ì íì´ë ê²ìì´ë¥¼ ìëíì¸ì.",loadFailed:"모ë¸ì ë¶ë¬ì¬ ì ììµëë¤",loadFailedHint:"ë¤ì ìëíê±°ë 모ë 모ë¸ë¡ ì ííì¸ì.",type:{all:"ì ì²´",text:"í
ì¤í¸",image:"ì´ë¯¸ì§",video:"ëìì",embedding:"ìë² ë©"},pickAtLeastOne:"모ë¸ì íë ì´ì ì ííê±°ë 모ë 모ë¸ë¡ ì ííì¸ì.",limitReached:"Reached the {{max}}-model limit"},Gta={title:"API keyê° ìì±ëììµëë¤",subtitle:"{{name}} ì¤ë¹ê° ìë£ëììµëë¤. ì§ê¸ ì°ê²°íì¸ì.",onceWarning:"í ë²ë§ íìë©ëë¤. ëì¤ì ë¤ì íìí ì ìì§ë§ ì§ê¸ ë³µì¬í´ ëë ê²ì´ ìì í©ëë¤.",connect:"ì°ê²°",done:"ìë£"},Wta="IP",Yta="{{date}}ì ì·¨ìë¨",Qta={title:nta,emptyTitle:ata,copyFailed:ota,allowedModels:sta,tags:rta,description:ita,refresh:lta,defaultName:cta,keyName:dta,creating:uta,createKey:mta,fullKeyTitle:pta,copyApiKey:fta,copied:gta,copy:hta,fullKeyDescription:yta,savedIt:vta,loadFailed:bta,retry:xta,empty:$ta,emptyDescription:wta,table:kta,revoke:Cta,revokeConfirm:Sta,formDescription:Ata,monthlyCreditLimit:Tta,expiresAt:Rta,unlimited:Pta,saving:_ta,save:jta,cancel:Nta,parked:Dta,noActive:Mta,ccswitch:Eta,filters:Ita,status:Ota,usage:Lta,actions:Uta,useTitle:Bta,useDescription:Fta,use:zta,advancedSettings:qta,createTitle:Hta,editTitle:Vta,scope:Kta,created:Gta,lastUsedIp:Wta,revokedAt:Yta},Xta="Audit Logs",Zta="High-risk admin actions, by action and time.",Jta="Action",ena="Clear",tna={ops_user_update_status:"ì¬ì©ì ìíê° ì
ë°ì´í¸ë¨",ops_users_allowlist_add:"ê°ì
ì ê·¼ ê¶íì´ ì¶ê°ë¨",ops_users_allowlist_update:"ê°ì
ì ê·¼ ê¶íì´ ì
ë°ì´í¸ë¨",ops_users_allowlist_invite:"ê°ì
ì ê·¼ ì´ëê° ì ì¡ë¨",ops_users_allowlist_revoke:"ê°ì
ì ê·¼ ê¶íì´ ì ê±°ë¨",ops_users_allowlist_restore:"ê°ì
ì ê·¼ ê¶íì´ ë³µìë¨",ops_model_create:"모ë¸ì´ ìì±ë¨",ops_model_update:"모ë¸ì´ ì
ë°ì´í¸ë¨",ops_model_update_status:"ëª¨ë¸ ìíê° ì
ë°ì´í¸ë¨",sub2api_pool_create:"ë¼ì°í
íì´ ìì±ë¨",sub2api_pool_test:"ë¼ì°í
íì´ í
ì¤í¸ë¨",sub2api_pool_rotate_secret:"ë¼ì°í
ìí¬ë¦¿ì´ êµì²´ë¨"},nna="Audit logs",ana="No audit entries",ona="Time",sna="Severity",rna="Target",ina={ai_model:"Model",sub2a
811pi_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},lna="ëì ì í",cna="ìì² ID",dna={title:Xta,description:Zta,action:Jta,clear:ena,actions:tna,label:nna,empty:ana,time:ona,severity:sna,target:rna,targetTypes:ina,targetType:lna,requestId:cna},una="OneHopì ë¡ê·¸ì¸",mna="ì½ë ì
ë ¥",pna="Google ëë Emailë¡ ê³ìíì¸ì",fna="ì½ë를 ë°ì Emailì ì
ë ¥íì¸ì",gna="{{email}} 주ìë¡ ë³´ë¸ 6ì리 ì½ë를 ì
ë ¥íì¸ì",hna="Googleë¡ ê³ì",yna="Emailë¡ ê³ì",vna="ëë",bna="Email",xna="ì¸ì¦ ì½ë ë³´ë´ê¸°",$na="ë³´ë´ë ì¤...",wna="íì¸",kna="íì¸ ì¤...",Cna="{{seconds}}ì´ í ì¬ì ì¡",Sna="ì½ë ë¤ì ë³´ë´ê¸°",Ana="ê³ìíë©´ ë¤ìì ëìíë ê²ì
ëë¤:",Tna="ìë¹ì¤ ì½ê´",Rna="ê°ì¸ì ë³´ ì²ë¦¬ë°©ì¹¨",Pna={signIn:"ë¡ê·¸ì¸",signOutFailed:"ë¡ê·¸ìì ì¤í¨",sendCodeFailed:"ì½ë를 ë³´ë´ì§ 못íìµëë¤",notAllowed:"ì´ ì´ë©ì¼ì ìì§ ì ê·¼ì´ ì¹ì¸ëì§ ìììµëë¤. ê´ë¦¬ììê² ìì²íì¸ì.",invalidCode:"ì½ëê° ì¬ë°ë¥´ì§ ììµëë¤",codeIncorrect:"ì½ëê° íë ¸ìµëë¤. ë¤ì ìëíì¸ì",googleFailed:"Google ë¡ê·¸ì¸ ì¤í¨",verifyHuman:"ì¸ì¦ì ìë£í í ê³ìíì¸ì",verifyUnavailable:"ì¬ë ì¸ì¦ì ì¼ìì ì¼ë¡ ì¬ì©í ì ììµëë¤. ìì Google ë¡ê·¸ì¸ì ì´ì©íê±°ë ì ì í ë¤ì ìëí´ ì£¼ì¸ì."},_na={signInTitle:una,enterCodeTitle:mna,methodIntro:pna,emailStepIntro:fna,codeIntro:gna,continueGoogle:hna,continueEmail:yna,or:vna,emailLabel:bna,sendCode:xna,sending:$na,verify:wna,verifying:kna,resendIn:Cna,resendCode:Sna,termsPrefix:Ana,terms:Tna,privacy:Rna,errors:Pna},jna="ê²°ì ",Nna="Credits를 ì¶©ì íê³ ì¿ í°ì ì¬ì©íë©° ì§ê° ë´ìì íì¸í©ëë¤.",Dna={bonuses:"ë³´ëì¤",topups:"ì¶©ì ",usage:"ì¬ì©ë"},Mna={available:"ì§ê¸ ìë£",availableHint:"ì¬ì© ê°ë¥ ìì¡ì ì´ë¯¸ ë°ìë¨",frozen:"ë기 ì¤(ëê²°)",frozenHint:"ì½ {{days}}ì¼ í ì§ê¸",frozenHintGeneric:"ë³´ë¥ ê¸°ê° ì¢
ë£ í ì§ê¸",title:"ì¶ì² ë³´ì",viewDetails:"ì¶ì² ë´ì 보기"},Ena={noUsage:"ìµê·¼ 30ì¼ ëì ì¬ì©ëì´ ììµëë¤",perDay:"ì¼íê· {{amount}}",daysLeft:"íì¬ ìëë¡ ì½ {{days}}ì¼ ë¨ì"},Ina={amountUsd:"ê¸ì¡ (USD)",minAmountHint:"ìµì ì¶©ì ê¸ì¡ì {{amount}}ì
ëë¤.",apply:"ì ì©",get:"ë°ì ê¸ì¡",onehopCredits:"OneHop credits",pay:"ê²°ì ",poweredByStripe:"Stripe ë³´í¸",poweredBy:"{{provider}} ë³´í¸",secureCheckout:"ìì í í¸ì¤í
ê²°ì ",secureCheckoutShort:"ìì ê²°ì ",taxExclusiveNotice:"ì¸ê¸ì ê²°ì ì 거주 ì§ìì ë°ë¼ ê³ì°ëì´ ì´ ê¸ì¡ì ì¶ê°ë©ëë¤.",presets:"미리 ì í ê¸ì¡",promoCode:"íë¡ëª¨ì
ì½ë",promoCodePlaceholder:"ì½ë ì
ë ¥",serviceFee:"ìë¹ì¤ ììë£",title:"ì¶©ì ",topupAmount:"ì¶©ì ê¸ì¡",totalDue:"ê²°ì ì´ì¡",payCta:"{{amount}} ê²°ì ",previewing:"íì¸ ì¤â¦",discount:"ì¿ í° í ì¸",couponBelowMin:"í ì¸ í ê¸ì¡ì´ ë무 ë®ìµëë¤. ê¸ì¡ì ë리거ë ë¤ë¥¸ ì½ë를 ì¬ì©íì¸ì.",maintenanceTitle:"ê²°ì 를 ì¼ìì ì¼ë¡ ì´ì©í ì ììµëë¤",maintenanceDescription:"ê²°ì 를 ì¼ìì ì¼ë¡ ì´ì©í ì ììµëë¤. ê²°ì ê° íìíë©´ Telegramì¼ë¡ 문ìí´ ì£¼ì¸ì.",contactTelegram:"Telegramì¼ë¡ 문ìí기",alipay:"ì리íì´",wechatPay:"ìì±íì´",crypto:"ê°ììì°ì¼ë¡ ê²°ì (USDC / USDT)",payOnStripe:"ê²°ì ë Stripeì ìì í ê²°ì íì´ì§ìì ìë£ë©ëë¤.",payOnProvider:"ê²°ì ë {{provider}}ì ìì í ê²°ì íì´ì§ìì ìë£ë©ëë¤.",payOnHostedCheckout:"ê²°ì ë ìì í í¸ì¤í
ê²°ì íì´ì§ìì ìë£ë©ëë¤.",amountPrecision:"{{provider}}ë ììì ë ì리ê¹ì§ì USD ê¸ì¡ë§ ì§ìí©ëë¤. ê¸ì¡ ëë íë¡ëª¨ì
ì½ë를 ì¡°ì íì¸ì.",couponBonus:"ì¿ í° ë³´ëì¤",couponBonusExpiry:"ë³´ëì¤ í¬ë ë§ì ê²°ì í {{days}}ì¼ì´ ì§ëë©´ ë§ë£ë©ëë¤.",couponInvalid:"ì´ ì½ëë ì ì©í ì ììµëë¤. ë¤ë¥¸ ì½ë를 ìëí´ ì£¼ì¸ì.",couponErrors:{limitReached:"ì´ ì½ëì ì¬ì© íì íëì ëë¬íìµëë¤.",invalid:"ì í¨íì§ ìì ì½ëì
ëë¤.",expired:"ì´ ì½ëë ë§ë£ëììµëë¤.",exhausted:"ì´ ì½ëë 모ë ìì§ëììµëë¤.",unavailable:"ì´ ì½ëë íì¬ ì¬ì© ì¤ì
ëë¤. ì ì í ë¤ì ìëí´ ì£¼ì¸ì."},tierBonus:"íë¡ëª¨ì
ë³´ëì¤",tierBonusExpiry:"ë³´ëì¤ í¬ë ë§ì ê²°ì í {{days}}ì¼ì´ ì§ëë©´ ë§ë£ë©ëë¤.",tierBonusRestricted:"ë³´ëì¤ í¬ë ë§ì ë¤ì 모ë¸ììë§ ì¬ì©í ì ììµëë¤: {{models}}",nextTierPercent:"{{amount}}를 ë ì¶©ì íë©´ {{percent}}% ë³´ëì¤ í¬ë ë§ì ë°ìµëë¤.",nextTierBonus:"{{amount}}를 ë ì¶©ì íë©´ {{bonus}} ë³´ëì¤ í¬ë ë§ì ë°ìµëë¤.",tierCapReached:"ì´ íë¡ëª¨ì
ì ìµë ë³´ëì¤ë¥¼ ì´ë¯¸ ë°ì¼ì
¨ìµëë¤."},Ona="Credits ì¶ê°",Lna="ìì± ì¤...",Una="ì¬ì© ê°ë¥ Credit",Bna="ì¶©ì ",Fna="ê²°ì ë Stripe",zna="ê¸ì¡ (USD)",qna="미리 ì í ì¶©ì ê¸ì¡",Hna="ì¿ í° ì¬ì©",Vna="ì¿ í° ì½ë",Kna="ì¬ì© ì¤...",Gna="ì¬ì©",Wna="ì¿ í°ì´ ì¬ì©ëììµëë¤. ìì¡ì ìë¡ê³ 침í©ëë¤.",Yna="ë³´ì checkoutì¼ë¡ ì´ë ì¤...",Qna="ê²°ì ìì½ ë¡ë ì¤í¨",Xna="ì¶©ì ì¤í¨",Zna="ê²°ì íë í",Jna="ê±°ë",eaa="Credit ì§ê¸",taa="ê±°ë ì í",naa="ìì¤",aaa="ìì§ ê±°ë ìì",oaa="ì¶©ì , ì°¨ê°, ì§ê¸ 기ë¡ì´ ì¬ê¸°ì íìë©ëë¤.",saa="ìì¥ ê¸°ë¡",raa="ìê°",iaa="ì í",laa="ê¸ì¡",caa="ìì¡",daa="ìì§ ì§ê¸ ê¸°ë¡ ìì",uaa="ê°ì
ë³´ëì¤, ì¿ í°, ìë ì§ê¸ì´ ì¬ê¸°ì íìë©ëë¤.",maa="ìí",paa={successTitle:"ê²°ì ê° ì ìëììµëë¤",polling:"ì§ê°ì Creditì ì 립íë ì¤... ì½ 30ì´ ììë©ëë¤.",delayed:"ëì°©ì´ ì§ì°ëê³ ììµëë¤. ì ì í ìë¡ê³ 침íê±°ë Stripe ììì¦ì íì¸í´ 주ì¸ì.",cancelledTitle:"ê²°ì ê° ì·¨ìëììµëë¤",cancelledBody:"ì²êµ¬ëì§ ìììµëë¤. ì¤ë¹ëìë©´ ë¤ì ìëí´ ì£¼ì¸ì.",failedTitle:"ê²°ì ì ì¤í¨íìµëë¤",failedBody:"ê²°ì 를 ìë£íì§ ëª»íìµëë¤. í¬ë ë§ì´ ì 립ëì§ ìììµëë¤. ë¤ì ìëíê±°ë ë¤ë¥¸ ê²°ì ìë¨ì ì´ì©í´ 주ì¸ì."},faa={text:"Creditì ì ë¶ ìë¹ì¤ íëì´ë©° ìí ìê¸ì´ ìëëë¤. ìë¹ë Creditì íë¶ëì§ ììµëë¤. 모ë ê°ê²©ì USDë¡ íìë©ëë¤. ìì¸í ë´ì©ì",tosLink:"ìë¹ì¤ ì½ê´"},gaa="ììì¦",haa="ì¬ë ì¤...",yaa="ê²°ì í¬í¸ì ì´ ì ììµëë¤",vaa={title:"ìµê·¼ ì¶©ì ë´ì",subt
811itle:"ìµê·¼ 90ì¼, 24ìê° ì´ë´ íë¶ ê°ë¥.",loading:"ì¶©ì ë´ìì ë¶ë¬ì¤ë ì¤...",date:"ë ì§",amount:"ê¸ì¡",credits:"Credit",status:"ìí",refund:"íë¶",alreadyRefunded:"ì´ë¯¸ íë¶ë¨",windowExpired:"íë¶ ê¸°í ë§ë£(24ìê°)",confirmTitle:"íë¶ íì¸",confirmBody:"íë¶ì Stripe를 íµí´ 1-3 ìì
ì¼ ë´ì ì²ë¦¬ë©ëë¤. ì¬ì©ì ìì² íë¶ìë íë«í¼ ììë£({{fee}})ê° ì ì©ë©ëë¤.",amountLabel:"íë¶ ê¸ì¡ (USD)",maxLabel:"ìµë ${{value}}",requestedLabel:"íë¶ ì ì² ê¸ì¡",platformFeeLabel:"íë«í¼ ììë£ ({{fee}})",cardReturnLabel:"ì¹´ëë¡ ë°íëë ê¸ì¡",bonusForfeitureHint:"ì´ ì¶©ì ê³¼ í¨ê» ì§ê¸ë íë¡ëª¨ì
Creditì ë¹ë¡íì¬ íìë©ëë¤.",cancel:"ì·¨ì",confirm:"íë¶ ì§í",submitting:"ì ì¶ ì¤...",refundSubmittedTitle:"íë¶ì´ ì ìëììµëë¤",refundSubmittedBody:"Stripeê° 1-3 ìì
ì¼ ë´ì ì¹´ëë¡ ê¸ì¡ì ë°íí©ëë¤.",refundFailedTitle:"íë¶ì ì¤í¨íìµëë¤",balance:"ì
ê¸",confirmAmount:"{{amount}} íë¶"},baa={title:"ìì¡ ì림",description:"ìì¡ì´ ë¶ì¡±í´ì§ë©´ ìë ¤ë립ëë¤.",emailLabel:"ì´ë©ì¼ë¡ ì림",webhookLabel:"Webhook",autorechargeLabel:"ìë ì¶©ì ",autorechargeUnsupported:"íì¬ ê²°ì ì ê³µì
ì²´ììë ìë ì¶©ì ì ì¬ì©í ì ììµëë¤.",autorechargeAddCardHint:"ì¹´ë를 ë±ë¡í´ ìì¡ì ìëì¼ë¡ ì¶©ì ",autorechargeTopUp:"ì¶©ì ê¸ì¡",autorechargeWhenBelow:"ìì¡ì´ ë¤ì 미ë§ì¼ ë",autorechargeThreshold:"ìë ì¶©ì ìê³ê°",autorechargeAmount:"ìë ì¶©ì ê¸ì¡",autorechargeDisabledFailures:"ê²°ì ê° ì¬ë¬ ë² ì°ì ì¤í¨íì¬ ìë ì¶©ì ì´ ë¹íì±íëììµëë¤. ì¹´ë를 ì
ë°ì´í¸íê³ ë¤ì ì¼ì¸ì.",autorechargeIncomplete:"ìë ì¶©ì ê¸ì¡ê³¼ $0 ë³´ë¤ í° ìê³ê°ì ì¤ì íì¸ì.",test:"í
ì¤í¸",testing:"í
ì¤í¸ ì¤â¦",testQueued:"í
ì¤í¸ ì ì¡ì ë기ì´ì ì¶ê°íìµëë¤ ââ ìëí¬ì¸í¸ë¥¼ íì¸íì¸ì",testFailed:"í
ì¤í¸ ì ì¡ ëê¸°ì´ ì¶ê° ì¤í¨",signingSecret:"ìëª
ìí¬ë¦¿",secretOnSave:"ì ì¥íë©´ ìëª
ìí¬ë¦¿ì´ ìì±ë©ëë¤.",rotate:"êµì²´",secretRotated:"ìëª
ìí¬ë¦¿ì êµì²´íìµëë¤",rotateFailed:"ìí¬ë¦¿ êµì²´ ì¤í¨",secretCopied:"ìëª
ìí¬ë¦¿ì ë³µì¬íìµëë¤",saved:"ì림 ì¤ì ì ì ì¥íìµëë¤",saveFailed:"ì림 ì¤ì ì ì¥ ì¤í¨",loadFailed:"ì림 ì¤ì ì ë¶ë¬ì¬ ì ììµëë¤",thresholdRequired:"ì림ì ì¼ë ¤ë©´ $0 ë³´ë¤ í° ìê³ê°ì ì¤ì íì¸ì.",webhookUrlRequired:"webhookì https:// URLì ì
ë ¥íì¸ì.",thresholdOrderBad:"ì림 ìê³ê°ì ìë ì¶©ì ìê³ê° ì´ìì´ì´ì¼ í©ëë¤.",card:"ì¹´ë",changeCard:"ë³ê²½",removeCard:"ìì ",cardRemoved:"ì¹´ë를 ìì íìµëë¤",cardRemoveFailed:"ì¹´ë ìì ì¤í¨",cardSetupFailed:"ì¹´ë ë±ë¡ì ììíì§ ëª»íìµëë¤",lowBalanceGroup:"ìì¡ ë¶ì¡± ì림",thresholdLabel:"ì림 ìê³ê°"},xaa={title:"ê±°ë ë´ì",idSearch:"ê±°ë ID",amountRange:"ê¸ì¡ ë²ì (USD)",min:"ìµì",max:"ìµë",clear:"ì§ì°ê¸°",retry:"ë¤ì ìë",empty:"ì´ ë²ìì ê±°ëê° ììµëë¤",date:"ë ì§",typeMethod:"ì í / ë°©ì",description:"ì¤ëª
",action:"ìì
",prevMonth:"ì´ì ë¬",nextMonth:"ë¤ì ë¬",viewInvoices:"ì²êµ¬ì 보기",emptyNew:"ìì§ ê±°ëê° ììµëë¤",emptyNewDesc:"ì¶©ì í ì¶©ì , ë³´ëì¤, íë¶ ê¸°ë¡ì´ ì¬ê¸°ì íìë©ëë¤.",topUpCta:"ì¶©ì í기",emptyFiltered:"ì¼ì¹íë ê±°ëê° ììµëë¤",emptyFilteredDesc:"íí°ë¥¼ ì§ì°ê±°ë 기ê°ì ëí ë³´ì¸ì.",clearFilters:"íí° ì§ì°ê¸°"},$aa="ìì¡ì´ ë®ì ìì²ì ìí¥ì ì¤ ì ììµëë¤. ì¶©ì íê±°ë ìë ì¶©ì ì ì¼ì¸ì.",waa="ìì¡ì´ ë®ì ìì²ì ìí¥ì ì¤ ì ììµëë¤. ì¶©ì í ê³ìíì¸ì.",kaa={creditPurchase:"í¬ë ë§ ì¶©ì ",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"ì¿ í° ë³´ëì¤",referralCashback:"ì¶ì² ìºìë°±",referralInviteeCashback:"í¼ì¶ì²ì¸ ë³´ëì¤",redeemCode:"êµí ì½ë {{code}}",redeemCodeReversal:"êµí ì½ë ì·¨ì",stripeRefund:"Stripe íë¶",bonusReversal:"íë¶ë¡ ì¸í ë³´ëì¤ íì"},Caa={title:"ì ì© í¬ë ë§",subtitle:"í¹ì 모ë¸ììë§ ì¬ì©í ì ìë ë³´ëì¤ í¬ë ë§ì¼ë¡, ìì¡ê³¼ ë³ëë¡ ê´ë¦¬ë©ëë¤.",onlyModels:"{{models}} ì ì©",onlyModelsGeneric:"ì íë 모ë¸",validUntil:"{{date}}ê¹ì§ ì í¨",noExpiry:"ë§ë£ ìì",useInChat:"Use in chat"},Saa={card:"ì¹´ë",alipay:"ì리íì´",wechatPay:"ìì±íì´"},Aaa={title:"êµí ì½ë",description:"êµí ì½ëê° ìëì? ì
ë ¥íë©´ ì¡ë©´ê°ê° ìì¡ì ì¶©ì ë©ëë¤.",placeholder:"ì: OHR-XXXXXXXX",redeem:"êµí",redeeming:"êµí ì¤â¦",success:"{{amount}}ì(를) ìì¡ì êµííìµëë¤",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"ì í¨íì§ ìì ì½ëì
ëë¤.",expired:"ì´ ì½ëë ë§ë£ëììµëë¤.",alreadyRedeemed:"ì´ë¯¸ ì¬ì©ë ì½ëì
ëë¤.",perUserLimit:"ì´ ë°°ì¹ì êµí íëì ëë¬íìµëë¤."}},Taa={title:jna,description:Nna,breakdown:Dna,referralRewards:Mna,burnRate:Ena,topup:Ina,addCredits:Ona,creating:Lna,availableCredit:Una,topUp:Bna,poweredByStripe:Fna,amountUsd:zna,presetAmounts:qna,redeemCoupon:Hna,couponCode:Vna,redeeming:Kna,redeem:Gna,couponRedeemed:Wna,redirecting:Yna,summaryFailed:Qna,topupFailed:Xna,tabsLabel:Zna,transactions:Jna,creditGrants:eaa,transactionType:taa,source:naa,noTransactions:aaa,noTransactionsDescription:oaa,ledgerEntries:saa,time:raa,type:iaa,amount:laa,balance:caa,noGrants:daa,noGrantsDescription:uaa,status:maa,topupBanner:paa,compliance:faa,receipts:gaa,openingPortal:haa,portalFailed:yaa,recentTopups:vaa,alerts:baa,history:xaa,lowBalanceWarning:$aa,lowBalanceWarningNoAutoTopup:waa,ledgerDesc:kaa,earmarked:Caa,paymentMethod:Saa,redeemCard:Aaa},Raa="ì°¨í¸ ë¡ë ì¤í¨",Paa="ë°ì´í° ìì",_aa="ìì§ ì°¨í¸ë¡ íìí ë°ì´í°ê° ììµëë¤.",jaa={errorTitle:Raa,emptyTitle:Paa,emptyDescription:_aa},Naa={copy:"ë³µì¬",regenerate:"ë¤ì ìì±",shareComingSoon:"ê³µì (ê³§ ì ê³µ ìì )",download:"ë¤ì´ë¡ë",copyLink:"ë§í¬ ë³µì¬",newChat:"ì ì±í
811
",deleteChat:"ì±í
ìì ",openConversationList:"ëí ëª©ë¡ ì´ê¸°",openSettings:"ì±í
ì¤ì ",collapseSidebar:"ì¬ì´ëë° ì 기",expandSidebar:"ì¬ì´ëë° í¼ì¹ê¸°",cancel:"ì·¨ì",apply:"ì ì©",newChatTooltip:"ì ì±í
ë§ë¤ê¸°",copied:"ë³µì¬ë¨"},Daa={placeholderReady:"ì ëí ìì...",placeholderNoModel:"먼ì ììì 모ë¸ì ì ííì¸ì",attachmentTooLarge:"íì¼ì´ {{limit}}ì(를) ì´ê³¼íì¬ ì
ë¡ëí ì ììµëë¤",attachmentUnsupported:"ì§ìíì§ ìë íì¼ íìì
ëë¤. PNG, JPEG, WebP, GIF, MP4, WebM ëë MOV를 ì¬ì©íì¸ì.",unsupportedVision:"ì´ ëª¨ë¸ì ì´ë¯¸ì§ ëë ëìì ì
ë ¥ì ì§ìíì§ ììµëë¤. íì¼ì ë기 ì ì 모ë¸ì ë³ê²½íì¸ì.",send:"ì ì¡",abort:"ì¤ì§",attachImage:"ì´ë¯¸ì§ ì¶ê°",attachMedia:"ì´ë¯¸ì§ ëë ëìì ì¶ê°",removeAttachment:"ì ê±°",shortcutSend:"ì ì¡",shortcutNewLine:"ì¤ë°ê¿",shortcutAbort:"ì¤ì§",frameFirst:"첫 íë ì",frameLast:"ë§ì§ë§ íë ì",frameReference:"참조 ì´ë¯¸ì§",imageMode:"ì´ë¯¸ì§ ìì±",videoMode:"ëìì ìì±",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"ì¬ê³ ",reasoningOff:"꺼ì§",reasoningAlways:"íì ì¼ì§",placeholderTopupRequired:"ì´ ëª¨ë¸ì ì¶©ì í ê³ì ë§ ì¬ì©í ì ììµëë¤ â ì¶©ì íë©´ ì¬ê¸°ì ë°ë¡ ì¸ ì ìì´ì"},Maa={modelUnavailable:"ëª¨ë¸ {{model}}ì íì¬ ì¬ì©í ì ììµëë¤. í롬íí¸ë ì ì¥ëì´ ììµëë¤.",rateLimited:"ëì ìì²ì´ ë무 ë§ìµëë¤. ì ì í ë¤ì ìëíì¸ì.",accountDisabled:"ì´ ê³ì ì ë¹íì±íëì´ ì±í
ì ê³ìí ì ììµëë¤.",attachmentsUploading:"ì´ë¯¸ì§ë¥¼ ì
ë¡ëíë ì¤ì
ëë¤. ì ì í ë³´ë´ì¸ì.",attachmentsFailed:"ì´ë¯¸ì§ ì
ë¡ëì ì¤í¨íìµëë¤. ì ê±°í í ë¤ì ìëíì¸ì."},Eaa={title:"ì¬ê¸°ìì ì´ë¤ 모ë¸ì´ë í
ì¤í¸í´ ë³´ì¸ì.",body:"ìíë 모ë¸ê³¼ ë°ë¡ ì±í
íì¸ì. ì¬ì©ëì PAYG ì§ê°ì ì²êµ¬ë©ëë¤.",starters:{compareModels:"ê°ì ì½ë© ìì
ìì GPT-5.5ì Claude Opus ë¹êµí기",analyzeImage:"ìí¤í
ì² ë¤ì´ì´ê·¸ë¨ì ë¶ìíê³ ë¦¬ì¤í¬ ìì½í기",draftPrompt:"ì§ì ìì´ì í¸ì© system prompt ìì±í기",generateImage:"ê¹ëí SaaS ì¤íì¼ì ì í íì´ë¡ ì´ë¯¸ì§ ìì±í기"}},Iaa={untitled:"ì 목 ìë ì±í
",deleteConfirm:'"{{title}}"ì ìì í ê¹ì?',emptyTitle:"ìì§ ëíê° ììµëë¤",emptyBody:"ìì + ì ì±í
ì¼ë¡ ììíì¸ì.",listLabel:"ëí 목ë¡",groups:{today:"ì¤ë",yesterday:"ì´ì ",earlier:"ì´ì "},menu:{rename:"ì´ë¦ ë³ê²½",delete:"ìì "},deleteTitle:"ëí를 ìì í ê¹ì?"},Oaa={paygWallet:"PAYG ì§ê°"},Laa={chooseModel:"ëª¨ë¸ ì í",searchPlaceholder:"ëª¨ë¸ ê²ì...",emptyTitle:"모ë¸ì ì°¾ì ì ììµëë¤",emptyBody:"ë¤ë¥¸ ê²ìì´ë íì ìëí´ ë³´ì¸ì.",protocols:"{{count}} protocols",context:"{{value}} ctx",tabs:{all:"ì ì²´",text:"í
ì¤í¸",image:"ì´ë¯¸ì§",video:"ë¹ëì¤"},maxOut:"ì¶ë ¥ {{value}}",unavailable:"ì¼ìì ì¼ë¡ ì¬ì© ë¶ê°",requiresTopup:"ì¶©ì ì ì¬ì© ê°ë¥"},Uaa={title:"ì±í
ì¤ì ",protocol:"Protocol",unlimited:"무ì í",fields:{memory_limit:{label:"ì±í
ë©ëª¨ë¦¬"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"ìµë Tokens",placeholder:"128000"},service_tier:{label:"ìë¹ì¤ í°ì´",options:{standard:"íì¤",priority:"ì°ì ",flex:"Flex"}},thinking_budget:{label:"ì¬ê³ ìì° (tokens)",placeholder:"ì: 2000"},stop_sequences:{label:"ì¤ì§ ìíì¤",placeholder:"ì¼íë¡ êµ¬ë¶, ì: END, STOP",itemLabel:"ì¤ì§"},system_prompt:{label:"System Prompt",placeholder:"system prompt ì
ë ¥..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"ììì ",explicit:"ëª
ìì "}},image_size:{label:"ì´ë¯¸ì§ í´ìë"},image_resolution:{label:"í´ìë"},image_quality:{label:"ì´ë¯¸ì§ íì§",options:{Auto:"ìë",auto:"ìë",low:"ë®ì",medium:"ì¤ê°",high:"ëì"}},video_ratio:{label:"íë©´ ë¹ì¨"},video_resolution:{label:"ëìì í´ìë"},video_duration_seconds:{label:"길ì´"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"ì´ë¯¸ì§ ì"},image_aspect_ratio:{label:"ê°ë¡ì¸ë¡ ë¹ì¨"}
811,reasoning_effort:{label:"ì¶ë¡ ê°ë",options:{none:"꺼ì§",minimal:"ìµì",low:"ë®ì",medium:"ë³´íµ",high:"ëì",xhigh:"ë§¤ì° ëì",max:"ìµë"}},reasoning_pro:{label:"Pro 모ë"},reasoning_context:{label:"ì¶ë¡ 컨í
ì¤í¸",options:{auto:"ìë",current_turn:"íì¬ í´",all_turns:"모ë í´"}},reasoning_enabled:{label:"ì¬ê³ "},reasoning_always:{label:"ì¬ê³ ",value:"íì ì¼ì§"}}},Baa={estimating:"ì¶ì ì¤...",settling:"ì ì° ì¤...",input:"ì
ë ¥",output:"ì¶ë ¥",milliseconds:"ms",realCost:"ì¤ì ë¹ì©",latency:"ì§ì° ìê°",logDetail:"ë¡ê·¸ ìì¸"},Faa={copied:"ì´ë¯¸ì§ ë§í¬ê° ë³µì¬ëììµëë¤",expired:"ì´ë¯¸ì§ ë§í¬ê° ë§ë£ëììµëë¤. ë§í¬ë¥¼ ë³µì¬í´ ë¤ì ì´ê±°ë ì¬ìì±íì¸ì.",attachment:"[ì´ë¯¸ì§ 첨ë¶]"},zaa={message:"ì´ ì±í
ì PAYG ì§ê°ì¼ë¡ ì²êµ¬ë©ëë¤",balance:"ìì¡",billingLink:"ì²êµ¬",dismiss:"ë«ê¸°"},qaa={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},Haa={trigger:"ì½ëë¡ ë³µì¬",copied:"{{format}}ë¡ ë³µì¬ë¨",failed:"ë³µì¬ ì¤í¨",failedDescription:"ë¸ë¼ì°ì ìì í´ë¦½ë³´ë ê¶íì´ ì°¨ë¨ëìì ì ììµëë¤."},Vaa={interrupted:"[ì¤ë¨ë¨]",sending:"ì ì¡ ì¤"},Kaa={title:"ì¬ê³ ê³¼ì ",duration:"{{seconds}}s ëì ì¬ê³ "},Gaa={title:"ë¹ëì¤ ìì±ì ê³§ ì ê³µë©ëë¤",body:"ì´ ëª¨ë¸ì íìì©ì¼ë¡ íìëì´ ìì§ë§, ë¹ëì¤ ì ì¡ì ìì§ íì±íëì§ ìììµëë¤.",switchToText:"í
ì¤í¸ 모ë¸ë¡ ì í"},Waa={imageGenerating:"ì´ë¯¸ì§ ìì± ì¤",videoGenerating:"ëìì ìì± ì¤",stage:{queued:"ë기 ì¤",routing:"ë¼ì°í
ì¤",generating:"ìì± ì¤",storing:"ì ì¥ ì¤",settling:"ì ì° ì¤"}},Yaa={INSUFFICIENT_CREDITS:"ìì¡ ë¶ì¡±",RATE_LIMITED:"ìì²ì´ ë무 ë§ìµëë¤",rate_limit_error:"ìì²ì´ ë무 ë§ìµëë¤",MODEL_NO_VISION:"ì´ ëª¨ë¸ì ì´ë¯¸ì§ ì
ë ¥ì ì§ìíì§ ììµëë¤",CONTENT_REFUSED:"모ë¸ì´ ì´ ìì²ì ê±°ë¶íìµëë¤",EMPTY_RESPONSE:"모ë¸ì´ ë¹ ìëµì ë°ííìµëë¤",upstream_error:"ì
ì¤í¸ë¦¼ ìë¹ì¤ ì¤ë¥",overloaded_error:"ì
ì¤í¸ë¦¼ ìë¹ì¤ê° í¼ì¡í©ëë¤",upstream_invalid_json:"ì
ì¤í¸ë¦¼ ìëµì´ ì¬ë°ë¥´ì§ ììµëë¤",stream_read_error:"ìëµ ì¤í¸ë¦¼ì´ ì¤ë¨ëììµëë¤",invali
811d_api_key:"ì
ì¤í¸ë¦¼ ì¸ì¦ ì¤í¨",model_unavailable:"모ë¸ì ì¼ìì ì¼ë¡ ì¬ì©í ì ììµëë¤",no_image:"ì´ë¯¸ì§ë¥¼ ìì±íì§ ëª»íìµëë¤",no_body:"ì
ì¤í¸ë¦¼ìì ìëµì´ ììµëë¤",http_error:"ìì² ì¤í¨",session_create_failed:"ì¸ì
ìì± ì¤í¨"},Qaa={title:"ì¶©ì íë©´ ì´ ëª¨ë¸ì ì¬ì©í ì ììµëë¤",body:"ì¶©ì í ê³ì ë§ ì¬ì©í ì ììµëë¤. ê¸ì¡ì ê´ê³ìì´ ì¶©ì íë©´ ë°ë¡ ì´ë¦¬ê³ , ìì¡ì ì¬ì©ëë§í¼ ì°¨ê°ë©ëë¤.",cta:"ì¶©ì í기"},Xaa={actions:Naa,composer:Daa,errors:Maa,empty:Eaa,sidebar:Iaa,header:Oaa,modelSelector:Laa,settings:Uaa,metrics:Baa,image:Faa,payg:zaa,earmark:qaa,copyAsCode:Haa,status:Vaa,thinking:Kaa,video:Gaa,media:Waa,errorCodes:Yaa,topupLock:Qaa},Zaa="ë¶ë¬ì¤ë ì¤...",Jaa="ê³ì ",eoa="ì¸ì´",toa="ë¡ê·¸ì¸",noa="ë¡ê·¸ìì",aoa="ë¡ê·¸ìì ì¤...",ooa="ë³ê²½ ì¬í ì ì¥",soa="ì ì¥ ì¤...",roa="ì ì¥ëììµëë¤.",ioa="ë¤ë¡",loa="ë¤ì ìë",coa="ì¶©ì ì ìë¹ì¤ ììë£ 5% í ì¸.",doa="ì ì¥",uoa="ì·¨ì",moa="ì§ì°ê¸°",poa="ì¬ì¤ì ",foa="ë³µì¬ë¨",goa="ë³µì¬ ì¤í¨",hoa="ë«ê¸°",yoa="í©ê³",voa={timestamp:"íìì¤í¬í",local:"ë¡ì»¬ ìê°",relative:"ìë ìê°"},boa="ë³µì¬",xoa={title:"ë¸ë¼ì°ì ìì ì´ì´ 주ì¸ì",description:"<b>ì± ë´ì¥ ë¸ë¼ì°ì </b>ìì ë³´ê³ ììµëë¤. <b>ì¬ê¸°ìë Google ë¡ê·¸ì¸ê³¼ ì¬ë ì¸ì¦ì ì¬ì©í ì ììµëë¤</b>. ê³ìíë ¤ë©´ ìì¤í
ë¸ë¼ì°ì ìì ì´ì´ 주ì¸ì.",hintWechat:"ì¤ë¥¸ìª½ ìë¨ Â·Â·Â· ë©ë´ìì 'ë¸ë¼ì°ì ìì ì´ê¸°'를 ì ííì¸ì.",hintGeneric:"ì¤ë¥¸ìª½ ìë¨ ë©ë´ìì 'ë¸ë¼ì°ì / Safariìì ì´ê¸°'를 ì ííì¸ì.",copyLink:"ë§í¬ ë³µì¬",continueAnyway:"ê³ì ì§í"}
811,$oa="ì ì²´",woa="ì ì©ë¨",koa="ì í ì¬í",Coa="ìì ",Soa={loading:Zaa,account:Jaa,language:eoa,signIn:toa,signOut:noa,signingOut:aoa,saveChanges:ooa,saving:soa,saved:roa,back:ioa,retry:loa,topUpPromo:coa,save:doa,cancel:uoa,clearAll:moa,reset:poa,copied:foa,copyFailed:goa,dismiss:hoa,total:yoa,time:voa,copy:boa,inAppBrowser:xoa,all:$oa,active:woa,optional:koa,remove:Coa},Aoa="ëìë³´ë",Toa="í ì½ììì credit, ì¬ì©ë, gateway íµì¬ ìí를 íì¸í©ëë¤.",Roa="API key ë§ë¤ê¸°",Poa={creditBalance:"Credit ìì¡",requestsToday:"ì¤ë ìì²",activeApiKeys:"íì± API keys"},_oa={title:"ì¬ì©ë ì¶ì´",description:"ìµê·¼ 14ì¼ ìì² ìì ê³¼ê¸ creditì
ëë¤.",viewUsage:"ì¬ì©ë 보기",loading:"ì¬ì©ë ì¶ì´ ë¡ë ì¤",empty:"ìì§ ì¬ì©ë ìì",emptyDescription:"ìì²ì´ ë¤ì´ì¤ê¸° ììíë©´ ì¬ê¸°ì ì¬ì©ëì´ íìë©ëë¤."},joa={title:"Credit íë",description:"ìµê·¼ 90ì¼ ëìì ì¼ë³ ê³¼ê¸ creditì
ëë¤.",total:"90ì¼ í©ê³",loading:"íë ë¡ë ì¤",activeDays:"ìµê·¼ {{days}}ì¼ ì¤ {{count}}ì¼ íì±",less:"ì ì",more:"ë§ì"},Noa={title:"ì¬ì©ë 구ì±",description:"ìë¹ ê°ë, token ê·ëª¨, ì¬ì©ëì´ ê°ì¥ ë§ì 모ë¸ì í íë©´ì ìì¶íìµëë¤.",activeDays:"íì± ì¼ì",ofDays:"/ {{days}}ì¼",avgDailyCredit:"ì¼íê· credit",nonZeroDays:"íì±ì¼ 기ì¤",peakDay:"í¼í¬ì¼",noPeak:"ìì§ ì¬ì©ë ìì",tokens:"Tokens",topModel:"주ì 모ë¸",creditShare:"ê³¼ê¸ credit ë¹ì¤"},Doa={title:"ë¹ ë¥¸ ìí",requests7d:"7ì¼ ìì²",creditToday:"ì¤ë ì¬ì©í credit",credit7d:"7ì¼ ì¬ì© credit"},Moa={title:"ìµê·¼ ìì²",description:"ê° keyì ìµì gateway í¸ì¶ì
ëë¤.",viewRecords:"ê¸°ë¡ ë³´ê¸°",table:{label:"ìµê·¼ ìì²",model:"모ë¸",status:"ìí",tokens:"Tokens",credit:"Credit",time:"ìê°",apiKey:"API key"},empty:"ìì§ ìì² ìì",emptyDescription:"API key를 ë§ë¤ê³ ìì²ì ë³´ë´ë©´ ìµê·¼ í¸ì¶ì´ ì¬ê¸°ì íìë©ëë¤."},Eoa={title:"첫 ìì² ë³´ë´ê¸°",description:"OpenAI í¸íì
ëë¤. key를 ë§ë¤ê³ {{env}}를 ì¤ì í ë¤ gateway를 í¸ì¶íì¸ì."},Ioa={credit:"Credit",requests:"ìì²"},Ooa={title:Aoa,description:Toa,createApiKey:Roa,cards:Poa,usageTrend:_oa,activity:joa,usageMix:Noa,quickHealth:Doa,recent:Moa,firstRequest:Eoa,tooltip:Ioa},Loa="모ë í ì í",Uoa="{{row}}í ì í",Boa="ë¡ë ì¤í¨",Foa="ë°ì´í° ìì",zoa="íìí ë ì½ëê° ììµëë¤.",qoa="ìì¸í 보기",Hoa="ì¶ê° ì¸ë¶ ì ë³´ {{count}}ê°",Voa="ì¸ë¶ ì ë³´ ì´ê¸°",Koa={selectAllRows:Loa,selectRow:Uoa,errorTitle:Boa,emptyTitle:Foa,emptyDescription:zoa,moreDetails:qoa,moreDetailsWithCount:Hoa,openRow:Voa},Goa="ìµê·¼ 1ìê°",Woa="ì¤ë",Yoa="ì´ì ",Qoa="ìµê·¼ 7ì¼",Xoa="ìµê·¼ 30ì¼",Zoa="ì´ë² ë¬",Joa="ìë³",esa="ì¬ì©ì ì§ì ",tsa="ì ì²´ 기ê°",nsa="ë ì§ ì í",asa="ì·¨ì",osa="ì ì©",ssa="ìì ë ì§ë ì¢
ë£ ë ì§ë³´ë¤ ììì¼ í©ëë¤.",rsa="ê¸°ê° í리ì
",isa="ì´ì ë¬",lsa="ë¤ì ë¬",csa={last1h:Goa,today:Woa,yesterday:Yoa,last7d:Qoa,last30d:Xoa,thisMonth:Zoa,byMonth:Joa,custom:esa,all:tsa,selectDate:nsa,cancel:asa,apply:osa,reversedError:ssa,presetsAriaLabel:rsa,previousMonth:isa,nextMonth:lsa},dsa="ê³ì ì ì¬ì©í ì ììµëë¤",usa="ê³ì ì ì´ê¸°ííë ì¤ì
ëë¤",msa={title:"ê³ì ì´ ì ì§ëììµëë¤",description:"ì´ ê³ì ì ë¡ê·¸ì¸í ì ìì§ë§ ì½ì ì 근과 gateway ìì²ì ì¼ì ì¤ì§ëììµëë¤.",detail:"ììíì§ ëª»í ìíë¼ë©´ ì´ ê³ì ì ì´ë©ì¼ë¡ supportì 문ìíì¸ì."},psa={accountUnavailable:dsa,accountInitializing:usa,accountRestricted:msa},fsa="ë¬´ë£ í í°",gsa="ì íë 모ë¸ì ë§¤ì¼ ì§ê¸ëë ë¬´ë£ í í° íëì
ëë¤. ìëì¼ë¡ ê°±ì ëë©° ì§ê°ìì ì°¨ê°ëì§ ììµëë¤.",hsa="ë¬´ë£ í í° íë를 ë¶ë¬ì¤ì§ 못íìµëë¤.",ysa="ì ì²´ 모ë¸",vsa="ìº íì¸ ì¢
ë£: {{date}}",bsa={daily:"매ì¼",weekly:"매주"},xsa={daily:"ë§¤ì¼ ê°±ì ",weekly:"매주 ê°±ì ",localTime:"íì§ ìê° {{time}}",countdown:"ë¤ì ê°±ì ê¹ì§ {{duration}}",refreshingSoon:"ê³§ ê°±ì "},$sa={title:"ì§í ì¤ì¸ ë¬´ë£ í í° ìº íì¸ì´ ììµëë¤",description:"ë¬´ë£ í í° ìº íì¸ì´ ì§íëë©´ ë§¤ì¼ íëê° ì¬ê¸°ì íìë©ëë¤."},wsa={title:"ì´ ê³ì ì ë¬´ë£ í í° ì§ê¸ì´ ì¼ì ì¤ì§ëììµëë¤",body:"ì´ ê³ì ì ëë ê°ì
í¨í´ì ì¼ë¶ë¡ ë³´ì¬ íì¬ ë¬´ë£ ì§ê¸ì´ ì¼ì ì¤ì§ëììµëë¤. ì¤ë¥ë¼ê³ ìê°ëìë©´ ë¤ìì¼ë¡ 문ìí´ ì£¼ì¸ì:"},ksa="í í°",Csa="ì¤ë ë¨ì {{value}} í í°",Ssa={label:"ìì§ ì ì´ë©ì¼ ì림",hint:"ì¤ëì ë¬´ë£ í í°ì 모ë ì¬ì©íë©´ ì´ë©ì¼ë¡ ìë ¤ë립ëë¤."},Asa={crg_freetoken_daily_cn5:"êµì° ëª¨ë¸ Â· ë§¤ì¼ ë¬´ë£ í í°"},Tsa={title:fsa,description:gsa,loadFailed:hsa,allModels:ysa,campaignEnds:vsa,cadence:bsa,refresh:xsa,empty:$sa,paused:wsa,tokensUnit:ksa,remainingToday:Csa,emailToggle:Ssa,campaigns:Asa},Rsa="ë¡ê·¸",Psa="ìì²ë³ ë¹ì©, ì§ì° ìê°, tokens, ìí, routing ì í¸ë¥¼ íì¸í©ëë¤.",_sa={copiedCurl:"curl ë³µì¬ë¨",copiedId:"ìì² ID ë³µì¬ë¨",copyCurl:"curlë¡ ë³µì¬",copyFailed:"ë³µì¬ ì¤í¨",copyId:"ìì² ID ë³µì¬",menu:"í ìì
",openTab:"ì íìì ì´ê¸°"},jsa={prompt:"Prompt",ratio:"ì ì¤ë¥ ",read:"ìºì ì½ê¸°",title:"ìºì ì ì¤ë¥ "},Nsa={confirm:"ìì
ì·¨ì",failed:"ìì
ì·¨ì ì¤í¨",keep:"ì ì§",message:"ì´ ìì
ì ìì§ ë기ì´ì ììµëë¤. ì·¨ìíë©´ ì²ë¦¬ëì§ ìì¼ë©° ë¹ì©ë ë°ìíì§ ììµëë¤.",success:"ìì
ì´ ì·¨ìëììµëë¤",title:"ìì
ì ì·¨ìí ê¹ì?",pending:"ì·¨ì ì¤..."},Dsa={cacheHit:"ìºì ì ì¤",cost:"ë¹ì©",ip:"IP",latency:"ì§ì° ìê°",model:"모ë¸",source:"ìì¤",status:"ìí",stream
811:"ì¤í¸ë¦¬ë°",time:"ìê°",tokens:"Tokens",tps:"ì²ë¦¬ë"},Msa={trigger:"ì´ ì¤ì "},Esa={body:"OneHopì íµí´ ìì²ì ë³´ë´ë©´ ì¬ê¸°ì íìë©ëë¤.",title:"ì´ ê¸°ê°ìë ë¡ê·¸ê° ììµëë¤"},Isa={all:"ì ì²´",apiKey:"API key",cost:"ë¹ì© (USD)",desktopDateRangeAria:"ë°ì¤í¬í± ë ì§ ë²ì ì í",finishReason:"ì¢
ë£ ì¬ì ",latency:"ì§ì° ìê° (s)",max:"ìµë",min:"ìµì",mobileDateRangeAria:"모ë°ì¼ ë ì§ ë²ì ì í",model:"모ë¸",modelsSelected:"{{count}}ê° ì íë¨",more:"ë ë§ì íí°",refresh:"ìë¡ê³ 침",request:"ìì² IDë¡ ê²ì",requestIdLabel:"ìì² ID",status:"ìí",stream:"ì¤í¸ë¦¬ë°",time:"ìê°",type:"ì í",mobileTitle:"íí°"},Osa={requests:"ì´ íì´ì§ì ìì²",times:"ìê° íì 기ì¤"},Lsa={rowsPer:"íì´ì§ë¹"},Usa={all:"ì ì²´ 기ê°",custom:"ì¬ì©ì ì§ì ",last1h:"ìµê·¼ 1ìê°",last30d:"ìµê·¼ 30ì¼",last7d:"ìµê·¼ 7ì¼",thisMonth:"ì´ë² ë¬",today:"ì¤ë",yesterday:"ì´ì "},Bsa={title:"í´ë¼ì´ì¸í¸",unknown:"ë³´ê³ ë user-agent ìì",unknownShort:"ì ì ìì"},Fsa={output:"ì¶ë ¥ tokens",rate:"ìë",title:"ì²ë¦¬ë",window:"ìì± êµ¬ê°"},zsa={title:"ìì²",openDetail:"ìì² ìì¸ ì´ê¸°",copy:"ID ë³µì¬",copied:"ë³µì¬ë¨",copyFailed:"ë³µì¬ ì¤í¨",close:"ë«ê¸°",loading:"ë¡ë ì¤â¦",response:"ìëµ",sections:{request:"ìì²",routing:"ë¼ì°í
",tokens:"Tokens",cost:"ë¹ì© ë¶í´",performance:"ì±ë¥",error:"ì¤ë¥",outcome:"ê²°ê³¼",multimodal:"ë©í°ëª¨ë¬"},fields:{requestId:"ìì² ID",time:"ìê°",apiKey:"API key",userAgent:"User-Agent",billingMode:"ê³¼ê¸ ë°©ì",onehopModel:"OneHop 모ë¸",endpoint:"Endpoint",firstToken:"첫 token",total:"ì´ ìê°",throughput:"ì²ë¦¬ë",stream:"ì¤í¸ë¦¼",clientIp:"í´ë¼ì´ì¸í¸ IP",finishReason:"ì¢
ë£ ì´ì ",mediaType:"미ëì´ ì í",imageCount:"ì´ë¯¸ì§ ì",imageSize:"í¬ê¸°",errorCode:"ì½ë",errorMessage:"ë©ìì§",requestedModel:"ìì²í 모ë¸"},billingMode:{token:"token ë¨ì",per_request:"ìì² ë¨ì",image:"ì´ë¯¸ì§ ë¨ì"},timeline:{heading:"ë¼ì´íì¬ì´í´",received:"ìì² ìì ",routed:"ë¼ì°í
ë¨",failed:"ì¤í¨",generated:"ìì±ë¨",metered:"ê³ëë¨",billed:"ê³¼ê¸ë¨"},downloadMedia:"ë¤ì´ë¡ë"},qsa={success:"ì±ê³µ",completed:"ìë£",failed:"ì¤í¨",pending:"ë기 ì¤",repairing:"복구 ì¤",queued:"ë기ì´",running:"ì¤í ì¤",cancelled:"ì·¨ìë¨",expired:"ë§ë£ë¨"},Hsa={chat:"ì±í
",image:"ì´ë¯¸ì§",video:"ë¹ëì¤"},Vsa={stop:"ì ì ì¢
ë£",length:"ê¸¸ì´ ì í",tool_calls:"ë구 í¸ì¶",content_filter:"ì½í
ì¸ íí°",error:"ì¤ë¥"},Ksa={true:"ì¤í¸ë¦¬ë°",false:"ë¹ì¤í¸ë¦¬ë°"},Gsa={title:"ë¹ì© ë´ì"},Wsa={title:"Token ë´ì",prompt:"Input",completion:"Output",imageOutput:"ì´ë¯¸ì§ ì¶ë ¥ í í°",cacheRead:"ìºì ì½ê¸°",cacheWrite:"ìºì ì°ê¸°",cacheWrite5m:"ìºì ì°ê¸° 5m",cacheWrite1h:"ìºì ì°ê¸° 1h",total:"í©ê³"},Ysa={timestamp:"íìì¤í¬í",local:"ë¡ì»¬ ìê°",relative:"ìë ìê°"},Qsa={inputCost:"ì
ë ¥ ë¹ì©",outputCost:"ì¶ë ¥ ë¹ì©",cacheReadCost:"ìºì ì½ê¸° ë¹ì©",cacheWriteCost:"ìºì ì°ê¸° ë¹ì©",inputPrice:"ì
ë ¥ ë¨ê°",outputPrice:"ì¶ë ¥ ë¨ê°",total:"í©ê³",officialPrice:"ê³µì ê°ê²©",saved:"ì ê°ì¡",factor:{textInput:"í
ì¤í¸ ì
ë ¥",textOutput:"í
ì¤í¸ ì¶ë ¥",imageInput:"ì´ë¯¸ì§ ì
ë ¥",imageOutput:"ì´ë¯¸ì§ ì¶ë ¥",perCallImage:"ì´ë¯¸ì§ë¹",videoPerSecond:"ë¹ëì¤",videoPerCall:"ë¹ëì¤",cacheRead:"ìºì ì½ê¸°",cacheWrite:"ìºì ì°ê¸°",cacheWrite5m:"ìºì ì°ê¸° (5m)",cacheWrite1h:"ìºì ì°ê¸° (1h)"},unit:{per1mTokens:"/ 100ë§ tokens",perImage:"/ ì¥",perSecond:"/ ì´",perCall:"/ í"},promoBasis:"íë¡ëª¨ì
ì ",promoSaved:"íë¡ëª¨ì
í ì¸",freeCovered:"ë¬´ë£ íë ì ì© ({{tokens}} í í°)",freeCoveredNoCount:"ë¬´ë£ íë ì ì©"},Xsa={noPreview:"ë¯¸ë¦¬ë³´ê¸°ê° ììµëë¤",video:"ëìì"},Zsa={free:"무ë£"},Jsa={title:Rsa,description:Psa,actions:_sa,cacheHit:jsa,cancelJob:Nsa,col:Dsa,columns:Msa,empty:Esa,filter:Isa,meta:Osa,pager:Lsa,range:Usa,source:Bsa,tps:Fsa,drawer:zsa,status:qsa,type:Hsa,finishReason:Vsa,stream:Ksa,costBreakdown:Gsa,tokensBreakdown:Wsa,time:Ysa,userCost:Qsa,export:{label:"CSV ë´ë³´ë´ê¸°",exp
811orting:"ë´ë³´ë´ë ì¤â¦",done:"{{n}}ê° íì ë´ë³´ëìµëë¤.",truncated:"ì²ì {{n}}ê° íì ë´ë³´ëìµëë¤. 기ê°ì ì¢í ë머ì§ë¥¼ ë´ë³´ë´ì¸ì.",failed:"ë´ë³´ë´ê¸°ì ì¤í¨íìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì."},media:Xsa,cost:Zsa},era="모ë¸",tra="ì¬ì© ê°ë¥í 모ë 모ë¸, 컨í
ì¤í¸ 길ì´, ì
ì¶ë ¥ ê°ê²©ê³¼ 기ë¥ì íì¸íê³ ì주 ì°ë 모ë¸ì ì¦ê²¨ì°¾ê¸°ì ì¶ê°íì¸ì.",nra={all:"ì ì²´",favorites:"ë´ ì¦ê²¨ì°¾ê¸°",benefit:"íí",hot:"ì¸ê¸°",free:"Free"},ara={capability:"ì í",allCapabilities:"모ë ì í",capability_text:"í
ì¤í¸",capability_image:"ì´ë¯¸ì§",capability_audio:"ì¤ëì¤",capability_video:"ëìì",provider:"ì ê³µì¬",allProviders:"모ë ì ê³µì¬",protocol:"íë¡í ì½",allProtocols:"모ë íë¡í ì½",sort:"ì ë ¬",search:"ê²ì",searchPlaceholder:"ëª¨ë¸ / ì ì¡°ì¬",allContexts:"ì í ìì",context:"컨í
ì¤í¸",mobileTitle:"íí°"},ora="ì¶ì²",sra="ìµì ì",rra="ì£¼ê° ì¸ê¸°",ira="ì´ë¦ (A-Z)",lra="ê°ê²© ë®ìì",cra="ê°ê²© ëìì",dra="컨í
ì¤í¸ 길ì´",ura="ì§ì° ìê°",mra="ì²ë¦¬ë",pra="OpenAI Chat",fra="OpenAI Responses",gra="Anthropic",hra="Vertex AI",yra="OpenAI Images",vra="OpenAI Video",bra={label:"모ë¸",model:"모ë¸",provider:"ì ê³µì¬",capabilities:"기ë¥",context:"컨í
ì¤í¸",price:"ê°ê²©",discount:"í ì¸",action:"ìì
",tryIt:"ì¬ì©í´ 보기",type:"ì í",maxOutput:"ìµë ì¶ë ¥",copyId:"ëª¨ë¸ ID ë³µì¬",copied:"ë³µì¬ë¨",usage:"ì¬ì©ë",stability:"ìì ì±",protocols:"íë¡í ì½",openDetail:"Open model detail"},xra="ì¸ê¸°",$ra="íí",wra={add:"ì¦ê²¨ì°¾ê¸° ì¶ê°",remove:"ì¦ê²¨ì°¾ê¸° í´ì "},kra={favorites:"ìì§ ì¦ê²¨ì°¾ê¸°ê° ììµëë¤",noMatch:"ì¼ì¹íë 모ë¸ì´ ììµëë¤"},Cra="í
ì¤í¸",Sra="ì´ë¯¸ì§",Ara="íì¼",Tra="ëìì",Rra="ì¤ëì¤",Pra="ìë² ë©",_ra="Vision",jra="ë구 í¸ì¶",Nra="JSON 모ë",Dra="ì´ë¯¸ì§ ìì±",Mra="ì´ë¯¸ì§ í¸ì§",Era="í
ì¤í¸",Ira="ì´ë¯¸ì§",Ora="ëìì",Lra="ì¤ëì¤",Ura="ìë² ë©",Bra="ê³µì",Fra="Kiro",zra="ìµì ",qra="/ í",Hra="/ ì´",Vra="/ 1M",Kra="ê³ ì",Gra="Free",Wra="Coming Soon",Yra="Free",Qra={ariaLabel:"ê°ê²© íµí",usd:"ë¯¸êµ ë¬ë¬",rmb:"ìì (Â¥)",settlement:"ê°ê²©ì ê³ ì íì¨ {{rate}}ë¡ ììí íì°í ì°¸ê³ ê°ì
ëë¤. ì§ê°ì íì ë¯¸êµ ë¬ë¬ë¡ ì¤ì ì¬ì©ëì ë°ë¼ ì²êµ¬ë©ëë¤."},Xra="ì¶©ì íì",Zra={title:era,description:tra,tabs:nra,filters:ara,sort_featured:ora,sort_newest:sra,sort_top_weekly:rra,sort_name:ira,sort_price_asc:lra,sort_price_desc:cra,sort_context:dra,sort_latency:ura,sort_throughput:mra,protocol_openai_chat:pra,protocol_openai_responses:fra,protocol_anthropic_messages:gra,protocol_google_vertex_ai:hra,protocol_openai_images:yra,protocol_openai_sora:vra,table:bra,badge_hot:xra,badge_benefit:$ra,favorite:wra,empty:kra,modality_text:Cra,modality_image:Sra,modality_file:Ara,modality_video:Tra,modality_audio:Rra,modality_embeddings:Pra,capability_vision:_ra,capability_tool_calling:jra,capability_json_mode:Nra,capability_image_generation:Dra,capability_image_edit:Mra,type_text:Era,type_image:Ira,type_video:Ora,type_audio:Lra,type_embedding:Ura,provider_official:Bra,provider_kiro:Fra,price_from:zra,price_perCall:qra,price_perSec:Hra,price_per1m:Vra,price_fast:Kra,badge_free:Gra,badge_unavailable:Wra,price_free:Yra,currency:Qra,badge_requiresTopup:Xra},Jra={main:"기본 íì",utility:"ë구 íì",console:"ì½ì íì",openNavigation:"íì ì´ê¸°",collapse:"ì¬ì´ëë° ì 기",expand:"ì¬ì´ëë° í¼ì¹ê¸°"},eia={platform:"ì½ì",chat:"ì±í
",models:"모ë¸",logs:"ë¡ê·¸",jobs:"ìì
",apiKeys:"API keys",usage:"ì¬ì©ë",billing:"ê²°ì ",freeTokens:"ë¬´ë£ í í°",referrals:"ì¶ì²",settings:"ì¤ì ",admin:"ê´ë¦¬",balance:"ìì¡",helpSupport:"ëìë§ ë° ì§ì",announcements:"ê³µì§",announcementsTitle:"ê³µì§",announcementsEmpty:"ìì§ ê³µì§ê° ììµëë¤. ê³§ ë¤ì íì¸íì¸ì.",announcementsTicketUnread:"ì ëµë³ì´ ìë í°ì¼ {{count}}ê°",support:"ì§ì",tasks:"íì¤í¬ ì",tagNew:"NEW"},tia={staff:"ê´ë¦¬"},nia={dashboard:"ëìë³´ë",users:"ì¬ì©ì",billing:"íë«í¼ ê²°ì ",usage:"íë«í¼ ì¬ì©ë",rateLimits:"ìë ì í",access:"ì ê·¼ ì ì´",staff:"ê´ë¦¬ì",growth:"ì±ì¥",models:"모ë¸",announcements:"ê³µì§",upstream:"ì
ì¤í¸ë¦¼",auditLogs:"ê°ì¬ ë¡ê·¸",webhooks:"Webhooks",supp
811ort:"Support",campaigns:"Campaigns",domainRules:"Email domains"},aia={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},oia={aria:Jra,public:{models:"모ë¸",pricing:"ê°ê²©",docs:"문ì",blog:"ë¸ë¡ê·¸",changelog:"ë³ê²½ ë´ì"},console:eia,adminGroups:tia,admin:nia,notifications:aia},sia={back:"ì´ì ",done:"ìë£",next:"ë¤ì",stepOf:"{{current}} / {{total}}"},ria={balance:{body:"íìí ë§í¼ ì¶©ì íì¸ì. ì¬ì©íì§ ìì ìì¡ì ì¸ì ë íë¶ë©ëë¤.",title:"ë´ ìì¡"},keys:{body:"ì¬ê¸°ì key를 ë§ë¤ê³ ìíë ëêµ¬ê° OneHopì ê°ë¦¬í¤ê² íì¸ì.",title:"첫 API key ë§ë¤ê¸°"},models:{body:"í íì´ì§ìì í¸ì¶ ê°ë¥í 모ë 모ë¸ê³¼ ê° ê°ê²©ì íì¸íì¸ì.",cta:"ëª¨ë¸ íì´ì§ ì´ê¸°",title:"ëª¨ë¸ ì´í´ë³´ê¸°"}},iia={body:"íëì URLë¡ ëª¨ë 모ë¸ì í¸ì¶í ì ììµëë¤. 30ì´ ëì ì¸ ê°ì§ë¥¼ ìë´í©ëë¤.",skip:"ê±´ëë°ê¸°",start:"ìì",title:"OneHopì ì¤ì ê²ì íìí©ëë¤"},lia={nav:sia,steps:ria,welcome:iia},cia="Failed to load",dia="Nothing here yet.",uia="ìì¸í 보기",mia={failedLoad:cia,emptyDescription:dia,moreDetails:uia},pia="ì ì²´",fia="ì±ê³µ",gia="ë기 ì¤",hia="복구 ì¤",yia="ì¤í¨",via="íë¶ë¨",bia="íì±",xia="ë¹íì±",$ia="ìì§ë¨",wia="ìì½ë¨",kia="ì¬ì©ë¨",Cia="ì ì§ë¨",Sia="ìì ë¨",Aia="ì ì",Tia="ê´ì°° ì¤",Ria="ì°¨ë¨ë¨",Pia="ì§ê¸ë¨",_ia="ëë림",jia="ë§ë£ë¨",Nia="ê±°ë¶ë¨",Dia="ì´ì",Mia="ê²ìë¨",Eia="ì¬ì© ì¤ë¨",Iia="ë³´ê´ë¨",Oia="ì¨ê¹",Lia="ìì±ë¨",Uia="Checkout ì´ë¦¼",Bia="ê²°ì ë¨",Fia="ì·¨ìë¨",zia="OpenAI Chat",qia="OpenAI Responses",Hia="Anthropic Messages",Via="Google Vertex AI",Kia="OpenAI Images",Gia="ì¬ì©ë ê³¼ê¸",Wia="ê°ì ë³´ëì¤",Yia="íë¡ëª¨ì ë³´ëì¤",Qia="ì¶ì² ë³´ëì¤",Xia="ë³´ì ë³´ëì¤",Zia="ì¶©ì ë³´ëì¤",Jia="ìë ì¡°ì ",ela="Credit 구매",tla="ê²°ì ",nla="ê°ì ë³´ëì¤",ala="ì¿ í°",ola="ê´ë¦¬ì ì§ê¸",sla="API ì¬ì©ë",rla="ê°ì ë³´ëì¤",ila="ìë ì§ê¸",lla="ë기",cla="Streaming",dla="Token ê³¼ê¸",ula="ìì² ê³¼ê¸",mla="ì´ë¯¸ì§ ê³¼ê¸",pla="ë®ì reasoning",fla="ì¤ê° reasoning",gla="ëì reasoning",hla="í´ë¹ ìì",yla="ì ì ìì",vla="ëê²°ë¨",bla="í´ì ë¨",xla="ì·¨ìë¨",$la="ë¶ë¶ ëë림",wla="ê±´ëë",kla={all:pia,success:fia,pending:gia,repairing:hia,failed:yia,refunded:via,active:bia,disabled:xia,exhausted:$ia,reserved:wia,redeemed:kia,suspended:Cia,deleted:Sia,normal:Aia,watchlisted:Tia,blocked:Ria,granted:Pia,reversed:_ia,expired:jia,denied:Nia,draft:Dia,published:Mia,deprecated:Eia,archived:Iia,public:"ê³µê°",hidden:Oia,created:Lia,checkout_opened:Uia,paid:Bia,canceled:Fia,openai_chat:zia,openai_responses:qia,anthropic_messages:Hia,google_vertex_ai:Via,openai_images:Kia,usage_charge:Gia,bonus_signup_grant:Wia,bonus_promo_grant:Yia,bonus_referral_grant:Qia,bonus_compensation_grant:Xia,bonus_topup_grant:Zia,manual_adjustment:Jia,credit_purchase:ela,payment:tla,signup:nla,coupon:ala,admin:ola,api:sla,signup_bonus:rla,manual:ila,sync:lla,stream:cla,token:dla,request:ula,image:mla,low:pla,medium:fla,high:gla,not_applicable:hla,unknown:yla,frozen:vla,released:bla,cancelled:xla,partially_reversed:$la,skipped:wla},Cla="íì´ì§ë¹ {{count}}ê°",Sla="ì´ {{count}}ê°",Ala={perPage:Cla,total:Sla},Tla="ì´ëíê³ ë¦¬ìë ë°ê¸°",Rla="ëë§ì ì´ë ë§í¬ë¥¼ ê³µì íì¸ì. ì´ëë°ì ì¬ì©ìê° ì¶©ì íë©´ ì쪽 모ëì 리ìëê° ëª ííê² ê¸°ë¡ë©ëë¤.",Pla="ì´ë ë°ì´í°ë¥¼ ë¶ë¬ì¬ ì ììµëë¤",_la="ë´ ì´ë ë§í¬",jla="ê³µì ",Nla="ì´ë ë´ì©ì ë³µì¬íì´ì. WeChatì ë¶ì¬ë£ì´ ê³µì íì¸ì.",Dla="ë³µì¬",Mla="ë³µì¬ë¨",Ela="WeChat",Ila="X",Ola="Telegram",Lla="Reddit",Ula="LinkedIn",Bla="WhatsApp",Fla="ì´ë©ì¼",zla="Facebook",qla={default:{title:"íëì OneHop APIë¡ ëª¨ë AI ëª¨ë¸ í¸ì¶",body:"ì ì´ë ë§í¬ë¡ ê°ì íê³ {{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´, ì쪽 모ë {{percent}}%를 ëë ¤ë°ìµëë¤."},x:{title:"모ë AI 모ë¸ì íëì APIë¡ ð¤",body:"ì ë§í¬ë¡ {{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´ ì°ë¦¬ ë ë¤ {{percent}}% íê¸ ð"},telegram:{title:"OneHopì¼ë¡ 모ë AI 모ë¸ì ì¬ì©íì¸ì",body:"ì ì´ë ë§í¬ë¥¼ ì¬ì©íì¸ì. {{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´ ì쪽 모ë {{percent}}% ì¶ì² í¬ë ë§ì ë°ìµëë¤."},whatsapp:{title:"OneHopì¼ë¡ 모ë AI 모ë¸ì ì¬ì©íì¸ì",body:"ì ì´ë ë§í¬ë¡ ê°ì í´ ë³´ì¸ì. {{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´ ì°ë¦¬ ë ë¤ {{percent}}%를 ëë ¤ë°ìµëë¤."},reddit:{title:"OneHop â 모ë AI 모ë¸ì ìí íëì API. ì ì´ë ë§í¬ë¡ 첫 ì¶©ì íë©´ ì쪽 모ë {{percent}}%를 ëë ¤ë°ìµëë¤",body:"{{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´ ì쪽 모ë {{percent}}% ì¶ì² í¬ë ë§ì ë°ìµëë¤."},email:{title:"OneHop ì´ë â íëì APIë¡ ëª¨ë AI ëª¨ë¸ ì¬ì©",body:`ìë íì¸ì, 812 813ì ë OneHopì ì¬ì©í´ íëì APIë¡ ì£¼ì AI 모ë¸ì í¸ì¶íê³ ììµëë¤. ì ì´ë ë§í¬ë¡ ê°ì í ë¤ ì²« ì¶©ì ì ìë£íë©´, ì쪽 모ë ì¶ì² í¬ë ë§ì ë°ì ì ììµëë¤. 814 815리ìë ë±ê¸: {{tiers}}. 816 817ê°ì¬í©ëë¤.`},wechat:{title:"OneHop â íëì APIë¡ ëª¨ë AI ëª¨ë¸ í¸ì¶",body:"ì ì´ë ë§í¬ë¡ ê°ì íê³ {{firstWindowDays}}ì¼ ìì 첫 ì¶©ì íë©´, ì°ë¦¬ ë ë¤ {{percent}}%를 ëë ¤ë°ìµëë¤."}},Hla="리ìëë ê²°ì ì§í ë°ë¡ íìëì§ë§, íë¶ ê¸°ê°ì ëë¹í´ 먼ì ëê²°ëë©° ë§ë£ í OneHop ì´ë ë³´ì creditì¼ë¡ ì§ê¸ë©ëë¤.",Vla="{{days}}ì¼ í ì§ê¸ë©ëë¤.",Kla={referrer:"ì´ëí ì¬ë",referee:"ì´
817ëë°ì ì¬ë"},Gla={referrer:": ì´ëë°ì ì¬ëì´ ì¶©ì íë©´ ì¶ì² creditì ë°ìµëë¤ â {{tiers}}.",referee:": ë§í¬ë¡ ê°ì
íê³ ì¶©ì íë©´ íìëë í¨ê» ì 립ë°ìµëë¤ â {{tiers}}."},Wla={dayRange:"{{fromDay}}-{{untilDay}}ì¼",dayOpenEnded:"{{fromDay}}ì¼ ì´í"},Yla="ëì íë",Qla="ì§ê¸ë ì´ë 리ìë",Xla="ëê²° ì¤ì¸ ì´ë 리ìë",Zla="ì´ë ì¸ì",Jla="ì í¨ ì´ë",eca="ì§ê¸ë í¼ì´ë ë³´ì",tca="ëê²° ì¤ì¸ í¼ì´ë ë³´ì",nca="ì·¨ì / íì",aca="ë´ê° ì´ëí ì¬ë",oca="리ìë ë´ì",sca={user:"ì¬ì©ì",joined:"ê°ì
ìê°",topups:"ì¶©ì íì",earned:"ë´ê° íë",frozen:"ëê²° ì¤",date:"ìê°",event:"ì´ë²¤í¸",topupAmount:"ìëë°© ì¶©ì ì¡",rate:"ë¹ì¨",releaseAt:"ì§ê¸ ìê°",cashback:"리ìë",status:"ìí"},rca={title:"ìì§ ì´ëê° ììµëë¤",description:"ë§í¬ë¥¼ ê³µì íë©´ 리ìë를 ë°ê¸° ììí ì ììµëë¤."},ica={inviteeSignedUp:"ì´ëë°ì ì¬ì©ìê° ê°ì
ì ìë£íìµëë¤",youSignedUp:"ì´ë를 íµí´ ê°ì
ì ìë£íìµëë¤",inviteePaid:"ì´ëë°ì ì¬ì©ìê° ê²°ì 를 ìë£íìµëë¤",youPaid:"í¼ì´ëìë¡ì ê²°ì 를 ìë£íìµëë¤"},lca={frozen:"ëê²° ì¤",released:"ì§ê¸ë¨",cancelled:"ì·¨ìë¨",partially_reversed:"ë¶ë¶ íì",reversed:"íìë¨",failed:"ì¤í¨",skipped:"ê±´ëë"},cca={title:Tla,description:Rla,error:Pla,yourLink:_la,shareVia:jla,wechatCopied:Nla,copy:Dla,copied:Mla,wechat:Ela,x:Ila,telegram:Ola,reddit:Lla,linkedin:Ula,whatsapp:Bla,email:Fla,facebook:zla,share:qla,offer:Hla,releaseDelay:Vla,role:Kla,roleOffer:Gla,policy:Wla,totalEarned:Yla,availableEarned:Qla,frozenEarned:Xla,invited:Zla,active:Jla,availableReceived:eca,frozenReceived:tca,cancelledReversed:nca,peopleYouInvited:aca,history:oca,col:sca,empty:rca,event:ica,status:lca},dca="ì¤ì ",uca="ê³ì 기본 ì¤ì ê³¼ ì½ì 기본ê°ì ê´ë¦¬í©ëë¤.",mca="{{email}} ê³ì ì¼ë¡ ë¡ê·¸ì¸ë¨",pca="íì ì´ë¦",fca="ì¸ì´",gca="ìê°ë",hca="íë¡íì ë¶ë¬ì¤ì§ 못íìµëë¤",yca="ì ì¥íì§ ëª»íìµëë¤",vca="ë³ê²½ ì¬íì ë²ë¦´ê¹ì?",bca="ì ì¥íì§ ìì ë³ê²½ ì¬íì´ ììµëë¤. ì§ê¸ ëê°ë©´ ë³ê²½ ì¬íì´ ë²ë ¤ì§ëë¤.",xca="ë²ë¦¬ê¸°",$ca="ê³ì í¸ì§",wca={title:dca,description:uca,signedInAs:mca,displayName:pca,locale:fca,timezone:gca,failedLoad:hca,failedSave:yca,discardTitle:vca,discardMessage:bca,discardConfirm:xca,keepEditing:$ca},kca="íì¤í¬ ì",Cca="OneHopì ì¬ë¬ë¶ì ë
ììê² ìë¦¬ê³ ì²´í í¬ë ë§ì ë°ì¼ì¸ì. 모ë ì ì¶ì ì¬ëì´ ì§ì ê²í í©ëë¤.",Sca="ê²ì물 ë§í¬",Aca="https://â¦",Tca="ì ì¶",Rca="ì ì¶íìµëë¤. ê³§ ê²í íê² ìµëë¤.",Pca="íì© ë§í¬: {{hosts}}",_ca="ì´ì ì ë°ë ¤ë¨: {{reason}}. ìì í ë¤ì ì ì¶í ì ììµëë¤.",jca={pending:"ê²í ì¤",approved:"ì§ê¸ ìë£",rejected:"ë°ë ¤ë¨",active:"ì ì© ì¤"},Nca={title:"íì¬ ì§í ì¤ì¸ íì¤í¬ê° ììµëë¤",description:"ê³§ ë¤ì íì¸í´ 주ì¸ì. ì´ë° ìº íì¸ì ììë¡ ì§íí©ëë¤."},Dca={x_quote:{title:"Xìì ì¸ì© ê²ìí기",description:"@OneHopAIì ê³ ì ê²ì물ì ì¸ì©íê³ ì§ì ì¬ì© í기를 ë§ë¶ì¬ 주ì¸ì.",rules:["X ê³ì ì ê°ì¤ 6ê°ì ì´ì, íë¡ì 10ëª
ì´ìì´ì´ì¼ í©ëë¤.","ìë³¸ì´ ìëë¼ ë³¸ì¸ì´ ìì±í ì¸ì© ê²ì물 ë§í¬ë¥¼ ì ì¶íì¸ì.","ì¹ì¸ í 2ìê° ì´ë´ì ì§ê¸ë©ëë¤."]},youtube_tutorial:{title:"YouTube íí ë¦¬ì¼ ì¬ë¦¬ê¸°",description:"OneHopì ë³¸ì¸ ìì´ì í¸ì ì°ê²°íë ê³¼ì ì ë³´ì¬ ì£¼ë 6ë¶ ì´ì ìì.",rules:["ê²ì í ìì ë§í¬ë¥¼ ì ì¶íì¸ì.","YouTube ì±ë 구ë
ìê° 50ëª
ì´ìì´ì´ì¼ í©ëë¤.","ê³ì ë¹ 1íë§ ì°¸ì¬í ì ììµëë¤.","ì¹ì¸ í 2ìê° ì´ë´ì ì§ê¸ë©ëë¤."]},short_video:{title:"ìí¼ ìì ì¬ë¦¬ê¸°",description:"TikTok ëë YouTubeì OneHop ì¤ì ì ì¸ê¸í 40ì´ ì´ì ìí¼ ìì.",rules:["ê²ì í ìì ë§í¬ë¥¼ ì ì¶íì¸ì.","ì¹ì¸ í 2ìê° ì´ë´ì ì§ê¸ë©ëë¤."]},github_readme:{title:"GitHub READMEì OneHop ë£ê¸°",description:"ë³¸ì¸ ì ì¥ìì READMEì OneHop í¬ë ë§ì ì¶ê°íë©´ ì´í 모ë ì¶©ì ì 15%ê° ì¶ê° ì§ê¸ë©ëë¤.",rules:["README를 ê³µê°í ë¤ ì ì¥ì ë§í¬ë¥¼ ì ì¶íì¸ì.","ì¼íì±ì´ ìëë¼ ì구ì ì
ëë¤. ì´í ì¶©ì ìë 기본 ë³´ëì¤ì 15% ì¤ ë ëì ìª½ì´ ì ì©ë©ëë¤.","ë³µì¬í´ì ì¸ ì ìë 문구ë ìëì ììµëë¤."]}},Mca={load:"íì¤í¬ ìì ë¶ë¬ì¤ì§ 못íìµëë¤",generic:"ì ì¶íì§ ëª»íìµëë¤",urlRequired:"먼ì ê²ì물 ë§í¬ë¥¼ ë¶ì¬ë£ì´ 주ì¸ì.",urlTooLong:"ë§í¬ê° ë무 ê¹ëë¤.",urlMalformed:"ì í¨í ë§í¬ë¡ ë³´ì´ì§ ììµëë¤.",hostNotAllowed:"ì´ íì¤í¬ë ìì ëì´ë íë«í¼ì ë§í¬ë§ ë°ìµëë¤.",notAPost:"íë¡íì´ë íì´ ìëë¼ í´ë¹ ê²ì물·ìì ë§í¬ë¥¼ ì
ë ¥íì¸ì.",alreadySubmitted:"ì´ íì¤í¬ë ì´ë¯¸ ì ì¶íìµëë¤.",notAvailable:"íì¬ ì´ì©í ì ìë íì¤í¬ì
ëë¤.",busy:"ì¤ë ê²í ê°ë¥ ê±´ì를 모ë ìì§íìµëë¤. ë´ì¼ ë¤ì ìëí´ ì£¼ì¸ì.",emailUnverified:"먼ì ì´ë©ì¼ì ì¸ì¦í´ 주ì¸ì.",accountTooNew:"ê³ì ê°ì¤ 기ê°ì´ ìì§ ë¶ì¡±í©ëë¤.",riskFlagged:"ì´ ê³ì ì íì¬ ì°¸ì¬í ì ììµëë¤. ì못ëìë¤ê³ ìê°ëë©´ ê³ ê°ì§ìì 문ìíì¸ì.",accountInactive:"íì
817± ìíê° ìë ê³ì ì
ëë¤.",deviceAlreadyClaimed:"ì´ ê¸°ê¸°ì ë¤ë¥¸ ê³ì ì´ ì´ë¯¸ ì°¸ì¬íìµëë¤."},Eca="ì´ íë¡ì í¸ë¥¼ íìí´ ì¤ [OneHop]({{url}})ì ê°ì¬ë립ëë¤! OneHopì OpenAI í¸í API í¤ íëë¡ GPT, Claude, Gemini, DeepSeek, Kimi, Qwen ë± ìë°± ê°ì 주ì 모ë¸ì ì¬ì©í ì ìê² í´ ì¤ëë¤. ì¬ë¬ ì ê³µì
ì²´ ê³ì ì ê´ë¦¬í íìë, 모ë¸ì ë°ê¾¸ë ¤ê³ ì½ë를 ê³ ì¹ íìë ìì¼ë©°, ì¬ì©í ë§í¼ë§ ì§ë¶í©ëë¤. â {{domain}}",Ica="ì´ ë¬¸êµ¬ ë³µì¬",Oca={title:kca,description:Cca,urlLabel:Sca,urlPlaceholder:Aca,submit:Tca,submitted:Rca,allowedHosts:Pca,rejectedHint:_ca,status:jca,empty:Nca,item:Dca,error:Mca,sponsorBlurb:Eca,copyBlurb:Ica},Lca="ì±í
ìë´",Uca="ì§ì í°ì¼",Bca="í°ì¼ì ì´ë©´ ì í¬ íì´ ìµëí ë¹ ë¥´ê² ëµë³ë립ëë¤.",Fca="ì í°ì¼",zca={subject:"ì 목",category:"ì í",status:"ìí",updated:"ì
ë°ì´í¸",user:"User"},qca={billing:"ì²êµ¬",technical:"기ì ",account:"ê³ì ",other:"기í"},Hca={open:"ì²ë¦¬ ë기",pending:"ëµë³ ë기",resolved:"í´ê²°ë¨",closed:"ì¢
ë£ë¨"},Vca={allStatuses:"모ë ìí",allCategories:"All categories",search:"Search email or subject"},Kca={subject:"ì 목",subjectPlaceholder:"문ì 를 ê°ë¨í ì¤ëª
í´ ì£¼ì¸ì",category:"ì í",message:"ë´ì©",messagePlaceholder:"ì´ë¤ ì¼ì´ ììëì§ ìë ¤ì£¼ì¸ìâ¦",attachments:"ì²¨ë¶ íì¼",addAttachment:"íì¼ ì¶ê°",submit:"í°ì¼ ì ì¶",cancel:"ì·¨ì"},Gca={you:"ë",support:"ì§ìí",system:"ìì¤í
",replyPlaceholder:"ëµë³ ìì±â¦",send:"ë³´ë´ê¸°",closedNotice:"ì´ í°ì¼ì ì¢
ë£ëììµëë¤. ìì§ ëìì´ íìíë©´ ì í°ì¼ì ì´ì´ 주ì¸ì.",sendHint:"â/Ctrl + Enterë¡ ë³´ë´ê¸°",back:"í°ì¼ 목ë¡ì¼ë¡ ëìê°ê¸°",systemStatus:{open:"í°ì¼ì ë¤ì ì´ììµëë¤",pending:"í°ì¼ì ì¬ì©ì ëµë³ ëê¸°ë¡ íìíìµëë¤",resolved:"í°ì¼ì í´ê²°ë¨ì¼ë¡ íìíìµëë¤",closed:"í°ì¼ì ì¢
ë£íìµëë¤"}},Wca={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},Yca="ë ë¶ë¬ì¤ê¸°",Qca={created:"í°ì¼ì´ ì ì¶ëììµëë¤",replied:"ëµë³ì ë³´ëìµëë¤",statusUpdated:"Status updated",error:"문ì ê° ë°ìíìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì"},Xca="í°ì¼ì ì°¾ì ì ìê±°ë ìì ëììµëë¤.",Zca={title:"ìì§ í°ì¼ì´ ììµëë¤",body:"문ì ê° ìëì? í°ì¼ì ì´ë©´ ì í¬ê° ëìëë¦¬ê² ìµëë¤.",cta:"첫 í°ì¼ ì´ê¸°"},Jca={liveChat:Lca,title:Uca,subtitle:Bca,newTicket:Fca,columns:zca,category:qca,status:Hca,filters:Vca,form:Kca,thread:Gca,admin:Wca,loadMore:Yca,toast:Qca,notFound:Xca,empty:Zca},eda="ì¬ì©ë",tda="ìì¡, ìì§ ìë, ì§ì¶ì´ ì´ëì ì°ìëì§ íì¸í©ëë¤.",nda="íë",ada="ì´ ê¸°ê°ìë íëì´ ììµëë¤",oda="ì¬ì©ë ë´ì",sda="API keyë³",rda="모ë¸ë³",ida="token ì íë³",lda="ë°ì´í° ìì",cda="ì´ ê¸°ê°ìë ìì§ ì¬ì©ëì´ ììµëë¤.",dda="íì¬ ìëë¼ë©´ ìì¡ì ì½ {{days}}ì¼(í루 {{rate}}) ë ì¬ì©í ì ììµëë¤.",uda="ì¶ë ¥",mda="ìºì",pda={tokens:"Tokens",requests:"ìì² ì",cost:"ë¹ì©"},fda="기í",gda="í",hda="tok",yda="ìë¡ê³ 침 ì¤â¦",vda="ë°ì´í° ìì",bda="ìì²ì ë³´ë´ë©´ ë°ì´í°ê° ìì´ê¸° ììí©ëë¤.",xda="ìì API keys",$da="ì¶©ì ",wda={title:"ì¬ì©ëì ë¶ë¬ì¬ ì ììµëë¤"},kda={firstToken:"첫 token",latency:"íê· ì§ì° ìê°",requests:"ìì²",spend:"ì¬ì©ì¡",spendSub:"ì´ë² ê¸°ê° ê³¼ê¸",successRate:"{{rate}}% ì±ê³µ",tokens:"Tokens",textDuration:"í
ì¤í¸",mediaDuration:"ì´ë¯¸ì§Â·ëìì",cacheHit:"ìºì {{rate}}%",projected:"ì½ {{amount}}/ì",vsPrevious:"ì´ì ê¸°ê° ëë¹"},Cda={activeDays:"íì± ì¼ì",longestStreak:"ìµì¥ ì°ì",daysValue:"{{n}}ì¼",totalSpend:"ì´ë² ê¸°ê° ì¬ì©ì¡",peakDay:"ê°ì¥ íë°í ë "},Sda={all:"ì ì²´ 기ê°",custom:"ì¬ì©ì ì§ì ",last1h:"ìµê·¼ 1ìê°",last30d:"ìµê·¼ 30ì¼",last7d:"ìµê·¼ 7ì¼",thisMonth:"ì´ë² ë¬",today:"ì¤ë",yesterday:"ì´ì ",byMonth:"ìë³"},Ada={failed:"ì¤í¨",success:"ì±ê³µ"},Tda={cacheRead:"ìºì ì½ê¸°",cacheWrite:"ìºì ì°ê¸°",cacheWrite1h:"ìºì ì°ê¸° 1h",cacheWrite5m:"ìºì ì°ê¸° 5m",completion:"ì¶ë ¥",prompt:"ì
ë ¥"},Rda={body:"í°ë¯¸ëìì ìì²ì ë³´ë´ê±°ë playground를 ì´ë©´ ëª ì´ ìì ì¬ì©ëì´ ì¬ê¸°ì íìë©ëë¤.",openPlayground:"playground ì´ê¸°",title:"key ì¤ë¹ ìë£"},Pda={body:"첫 API key를 ë§ë¤ê³ íëì URLë¡ ëª¨ë ìì²ì ë¼ì°í
íë©´, ì¬ì©ëì´ ê³§ ì¬ê¸°ì íìë©ëë¤.",createKey:"API key ë§ë¤ê¸°",title:"OneHopì ì¤ì ê²ì íìí©ëë¤",tryPlayground:"playground ì¬ì©í´ 보기"},_da="ìë¡ê³ 침",jda="íì¬ íí°ìì {{count}}ê° ì±ê³µ ìì²",Nda="ì´ tokens",Dda="ì
ë ¥ {{input}} / ì¶ë ¥ {{output}}",Mda="ê³¼ê¸ credit",Eda="{{cost}} upstream ì¤ì ë¹ì©",Ida="íê· ì§ì° ìê°",Oda="첫 token {{duration}}",Lda="30ì¼ íë",Uda="ì±ê³µ ìì², token ì, ê³¼ê¸ creditì
ëë¤.",Bda="ì¬ì©ë ì¶ì´ ë¡ë ì¤",Fda="ì¬ì©ë ì¶ì´ ìì",zda="ì±ê³µ ìì² í ì¬ì©ë ì¶ì´ê° íìë©ëë¤.",qda="ìì 모ë¸",Hda="ìµê·¼ 30ì¼ ëª¨ë¸ë³ ê³¼ê¸ creditì
ëë¤.",Vda="ìì§ ëª¨ë¸ ì¬ì©ë ìì",Kda="ì±ê³µ ìì² í ëª¨ë¸ ë¶ìì´ íìë©ëë¤.",Gda="모ë¸",Wda="모ë 모ë¸",Yda="ìí",Qda="íë¡í ì½",Xda="í ì",Zda="ì´ê¸°í",Jda="ì¬ì©ë 기ë¡",eua="API key",tua="Endpoint",nua="ì í",aua="Tokens",oua="ë¹ì©",sua="ìì ìê°",rua="ìê°",iua="User-Agent",lua="ìì¸",cua="ìì² ìì¸",dua="ì¬ì©ë ê¸°ë¡ ìì¸ì ê³¼ê¸ metadataì
ëë¤.",uua="ìì² ID",mua="ìì
",pua="ì
ë ¥ tokens",fua="ì¶ë ¥ tokens",gua="ìºì ì½ê¸° tokens",hua="ìºì ì°ê¸° tokens",yua="ì
ë ¥ ë¹ì©",vua="ì¶ë ¥ ë¹ì©",bua="ìºì ì½ê¸° ë¹ì©",xua="ìºì ì°ê¸° ë¹ì©",$ua="ì¤ë¥ ì½ë",wua="ì¤ë¥ ë©ìì§",kua="ì°¾ì ì ììµëë¤.",Cua="credit",Sua="ì´ {{count}}",Aua="ì¬ì©ë ê¸°ë¡ ë¡ë ì¤",Tua="ì¬ì©ë ê¸°ë¡ ìì",Rua="ë¤ë¥¸ íí° ì¡°í©ì ìëíì¸ì.",Pua="ìì²ì´ API keys를 íµê³¼íë©´ 기ë¡ì´ ì¬ê¸°ì íìë©ëë¤.",_ua="{{page}}íì´ì§ · ì¼ì¹íë {{total}}ê° ì¤ {{shown}}ê° íì",jua="ì´ì ",Nua="ë¤ì",Dua="Credit",Mua="Tokens",Eua="ìì²",Iua={time:"ìê°",apiKey:"API Key",model:"모ë¸",reasoningEffort:"ì¶ë¡ ê°ë
817",endpoint:"Endpoint",type:"ì í",billingMode:"ê³¼ê¸ ë°©ì",inputTokens:"ì ë ¥ Tokens",outputTokens:"ì¶ë ¥ Tokens",cacheReadTokens:"ìºì ì½ê¸° Tokens",cacheWriteTokens:"ìºì ì°ê¸° Tokens",totalTokens:"ì´ Tokens",billedCredit:"ê³¼ê¸ Credit",firstTokenMs:"첫 Token ms",durationMs:"ìì ìê° ms",status:"ìí",userAgent:"User-Agent"},Oua={mon:"ì",wed:"ì",fri:"ê¸"},Lua="ì ì",Uua="ë§ì",Bua={title:eda,description:tda,activity:nda,activityEmpty:ada,breakdown:oda,byApiKey:sda,byModel:rda,byTokenType:ida,chartEmpty:lda,chartEmptyHint:cda,burnRate:dda,in:"ì ë ¥",out:uda,cache:mda,metric:pda,other:fda,req:gda,tok:hda,refreshing:yda,topEmpty:vda,topEmptyHint:bda,topKeys:xda,topUp:$da,error:wda,kpi:kda,stat:Cda,range:Sda,requests:Ada,tokenType:Tda,noRequests:Rda,welcome:Pda,refresh:_da,successfulFilter:jda,totalTokens:Nda,inOut:Dda,billedCredit:Mda,upstreamActualCost:Eda,avgLatency:Ida,firstToken:Oda,activityTitle:Lda,activityDescription:Uda,loadingTrend:Bda,noUsageTrend:Fda,trendDescription:zda,topModels:qda,topModelsDescription:Hda,noModelUsage:Vda,noModelUsageDescription:Kda,model:Gda,allModels:Wda,status:Yda,protocol:Qda,rows:Xda,reset:Zda,tableLabel:Jda,apiKey:eua,endpoint:tua,type:nua,tokens:aua,cost:oua,duration:sua,time:rua,userAgent:iua,details:lua,requestDetail:cua,detailDescription:dua,requestId:uua,operation:mua,inputTokens:pua,outputTokens:fua,cacheReadTokens:gua,cacheWriteTokens:hua,inputCost:yua,outputCost:vua,cacheReadCost:bua,cacheWriteCost:xua,errorCode:$ua,errorMessage:wua,notFound:kua,creditSuffix:Cua,total:Sua,loadingRecords:Aua,noRecords:Tua,differentFilters:Rua,recordsEmpty:Pua,pageSummary:_ua,previous:jua,next:Nua,chartCredit:Dua,chartTokens:Mua,chartRequests:Eua,csv:Iua,weekday:Oua,activityLess:Lua,activityMore:Uua},Fua="Signup access",zua="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",qua="Signup access allowlist",Hua="No allowlist entries",Vua="Email / domain",Kua="Note",Gua="Status",Wua="Registration",Yua="Expires",Qua="Invites",Xua="Updated",Zua="Action",Jua="Add",ema="Bulk add",tma="Edit",nma="Save",ama="Invite",oma="Restore",sma="Remove",rma="Add signup access",ima="Edit {{email}}",lma="Bulk add signup access",cma="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",dma="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",uma="Email or domain",mma="[email protected] or @company.com",pma="Use @company.com to approve an entire domain.",fma="Note (optional)",gma="e.g. founding team",hma="Expiry (optional)",yma="Leave empty for no expiry. Expired entries no longer allow new signups.",vma="Emails / domains",bma=`[email protected] 818[email protected] 819@partner.com`,xma="Search",$ma="Search email or domain",wma="Status",kma="Access check",Cma="[email protected]",Sma="Check",Ama="Allowed",Tma="Denied",Rma={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},Pma="Registered",_ma="Not registered",jma="Admin",Nma="Domain rule",Dma="Never",Mma="Added to signup access.",Ema="Signup access updated.",Ima="Added {{count}} entries.",Oma="Invite sent.",Lma="Entry restored.",Uma="Removed from signup access.",Bma="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",Fma={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},zma={title:Fua,description:zua,label:qua,empty:Hua,email:Vua,note:Kua,status:Gua,registration:Wua,expiresAt:Yua,invites:Qua,updatedAt:Xua,action:Zua,add:Jua,bulkAdd:ema,edit:tma,save:nma,invite:ama,restore:oma,revoke:sma,newTitle:rma,editTitle:ima,bulkTitle:lma,formDescription:cma,bulkDescription:dma,emailLabel:uma,emailPlaceholder:mma,emailHint:pma,noteLabel:fma,notePlaceholder:gma,expiresAtLabel:hma,expiresAtHint:yma,bulkEntriesLabel:vma,bulkEntriesPlaceholder:bma,search:xma,searchPlaceholder:$ma,statusFilter:wma,checkLabel:kma,checkPlaceholder:Cma,check:Sma,checkAllowed:Ama,checkDenied:Tma,checkReasons:Rma,registered:Pma,notRegistered:_ma,adminAllowed:jma,domainRule:Nma,never:Dma,added:Mma,updated:Ema,bulkAdded:Ima,invited:Oma,restored:Lma,revoked:Uma,confirmRevoke:Bma,domainRules:Fma},qma="Ops Billing",Hma="Payments, wallets and refunds across all users.",Vma={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},Kma="User email",Gma="Search by email...",Wma="Created",Yma="Created",Qma="Amou
819nt (USD)",Xma="Min",Zma="Max",Jma="Refunds",epa="No refunds",tpa="Refund",npa="Type",apa="Full refund",opa="Partial refund",spa="Original payment",rpa="Wallets",ipa="Wallet",lpa="User",cpa="Total",dpa="Purchased",upa="Bonus",mpa="No wallets",ppa="Payments",fpa="Payment status",gpa="No payments",hpa="Payment",ypa="Status",vpa="Amount",bpa="Paid",xpa="Refund",$pa="Not refundable (status must be paid)",wpa="View in Stripe Dashboard",kpa="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",Cpa="unhealthy",Spa="Refund {{id}}",Apa="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",Tpa="Refund amount (USD)",Rpa="Max ${{value}}",Ppa="Reason",_pa="Carregando a prévia do reembolsoâ¦",jpa="Não foi possÃvel carregar a prévia do reembolso. O reembolso fica bloqueado até a prévia carregar.",Npa="Nenhuma transação reembolsável encontrada â este pagamento pode já ter sido totalmente reembolsado.",Dpa="Pago",Mpa="Já reembolsado",Epa="Este reembolso",Ipa="Crédito recuperado",Opa="Inclui {{amount}} de crédito do desconto de cupom recuperado proporcionalmente",Lpa="Inclui {{amount}} de crédito extra concedido recuperado proporcionalmente",Upa="Bônus revogado",Bpa="Este reembolso revogará o bônus promocional de {{amount}}.",Fpa="Devolvido via Stripe",zpa="Cobrar taxa da plataforma ({{fee}}) â cobre o custo do Stripe",qpa="Taxa da plataforma ({{fee}})",Hpa="O valor excede o máximo reembolsável {{value}}",Vpa="Informe um valor positivo válido",Kpa="O usuário já consumiu parte do crédito comprado. Máximo reembolsável: {{value}}",Gpa="Este pagamento já foi totalmente reembolsado",Wpa="O valor lÃquido após as taxas é baixo demais. Reembolse ao menos {{value}}.",Ypa="Cancel",Qpa="Issue refund",Xpa="Submitting...",Zpa="Refund submitted",Jpa="Stripe will return the funds within 1-3 business days. Audit log written.",efa="Refund failed",tfa={title:qma,description:Hma,tabs:Vma,emailFilter:Kma,emailPlaceholder:Gma,created:Wma,createdRange:Yma,amountRange:Qma,amountMin:Xma,amountMax:Zma,refunds:Jma,noRefunds:epa,refundId:tpa,refundType:npa,typeRefund:apa,typePartialRefund:opa,originalPayment:spa,wallets:rpa,wallet:ipa,user:lpa,total:cpa,purchased:dpa,bonus:upa,noWallets:mpa,payments:ppa,paymentStatus:fpa,noPayments:gpa,payment:hpa,status:ypa,amount:vpa,paid:bpa,refund:xpa,notRefundable:$pa,viewInStripe:wpa,webhookHealthHint:kpa,unhealthyWebhooks:Cpa,refundConfirmTitle:Spa,refundConfirmBody:Apa,refundAmountLabel:Tpa,refundMaxHint:Rpa,refundReasonLabel:Ppa,refundPreviewLoading:_pa,refundPreviewFailed:jpa,refundNoRefundableTx:Npa,refundPaidRow:Dpa,refundAlreadyRefundedRow:Mpa,refundThisRefundRow:Epa,refundCreditReclaimRow:Ipa,refundCreditCouponNote:Opa,refundCreditExtraNote:Lpa,refundBonusReverseRow:Upa,refundBonusForfeitWarning:Bpa,refundStripeReturnRow:Fpa,refundFeeToggle:zpa,refundPlatformFeeRow:qpa,refundExceedsMax:Hpa,refundAmountInvalid:Vpa,refundInsufficientCredit:Kpa,refundAlreadyFull:Gpa,refundBelowMin:Wpa,cancel:Ypa,confirmRefund:Qpa,submitting:Xpa,refundSubmittedTitle:Zpa,refundSubmittedBody:Jpa,refundFailedTitle:efa},nfa="Campaigns",afa="Audience segments, restricted-model access, model discounts, and targeted credit grants.",ofa={mobileLabel:"Seção de campanhas",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},sfa="Status",rfa="Actions",ifa="All users",lfa="Always",cfa="No expiry",dfa="Active window",ufa="Leave blank for always-on. Times are end-of-day on the chosen dates.",mfa="Valid from",pfa="Valid to",ffa="Pause",gfa="Resume",hfa="Add",yfa="Remove",vfa="Delete",bfa="Clear",xfa="Close",$fa={allKinds:"Todos os tipos",segmentKindStatic:"Estático",segmentKindDynamic:"Dinâmico",grantKindGrant:"Conceder",grantKindRevoke:"Revogar",allStatuses:"Todos os status",statusActive:"Ativo",statusPaused:"Pausado",statusArchived:"Arquivado",statusEnded:"Encerrado",statusPending:"Pendente",statusProcessing:"Processando",statusCompleted:"ConcluÃdo",statusFailed:"Falhou"},wfa={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 c
819odes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},kfa={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},Cfa={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},Sfa={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restr
819icted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},Afa={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
8190.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},Tfa={title:nfa,description:afa,tabs:ofa,status:sfa,actions:rfa,allUsers:ifa,always:lfa,noExpiry:cfa,window:dfa,windowHint:ufa,validFrom:mfa,validTo:pfa,pause:ffa,resume:gfa,actionAdd:hfa,actionRemove:yfa,actionDelete:vfa,actionClear:bfa,actionClose:xfa,filters:$fa,segments:wfa,access:kfa,discounts:Cfa,grants:Sfa,recurring:Afa},Rfa="Announcements",Pfa="Banners shown at the top of the marketing site and the console.",_fa="Banners",jfa="Top-of-page banners shown on www and console.",Nfa="New Banner",Dfa="No banners yet. Create one to show a top-of-page announcement.",Mfa="Message",Efa="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",Ifa="CTA Label",Ofa="CTA Link",Lfa="Severity",Ufa="Audience",Bfa="Starts At",Ffa="Ends At",zfa="Dismissible",qfa="Status",Hfa="Archive",Vfa="Archive this banner? It will no longer be shown to users.",Kfa="New Banner",Gfa="Edit Banner",Wfa="Title",Yfa="Type",Qfa="Content",Xfa="Display type",Zfa="Banner",Jfa="Modal",ega="Draft",tga="Active",nga="Info",aga="Warning",oga="Critical",sga="Console only",rga="Public site only",iga="Both",lga="Hero image",cga="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",dga="Upload",uga="Uploadingâ¦",mga="Remove",pga="Only PNG, JPEG, WebP and GIF images are supported.",fga="Image must be 5MB or smaller.",gga="Upload failed, please try again.",hga="Title",yga="Body",vga="Action buttons",bga="Button label",xga="Button link",$ga="Style",wga="Add button",kga="Remove",Cga="Primary",Sga="Secondary",Aga="Link",Tga="Simplified Chinese (source)",Rga="Fill in Simplified Chinese only, then translate to other languages in one click.",Pga="Translate to all languages",_ga="Translatingâ¦",jga="Other languages (translated, editable)",Nga="Translated {{ok}} languages",Dga="{{failed}} languages failed â fill in manually or retry",Mga="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",Ega="Re-show to users who already dismissed it",Iga="Fill in the Simplified Chinese body first.",Oga={title:Rfa,description:Pfa,annTitle:_fa,annDescription:jfa,annNewButton:Nfa,annEmpty:Dfa,annMessage:Mfa,annInlineLinkHint:Efa,annCtaText:Ifa,annCtaUrl:Ofa,annSeverity:Lfa,annAudience:Ufa,annStartsAt:Bfa,annEndsAt:Ffa,annDismissible:zfa,annStatus:qfa,annArchive:Hfa,annArchiveConfirm:Vfa,annCreateTitle:Kfa,annEditTitle:Gfa,annColTitle:Wfa,annColType:Yfa,annColContent:Qfa,annDisplayType:Xfa,annTypeBanner:Zfa,annTypeModal:Jfa,annStatusDraft:ega,annStatusActive:tga,annSevInfo:nga,annSevWarning:aga,annSevCritical:oga,annAudConsole:sga,annAudPublic:rga,annAudAll:iga,annHeroImage:lga,annHeroImageHint:cga,annHeroImageUpload:dga,annHeroImageUploading:uga,annHeroImageRemove:mga,annHeroImageBadType:pga,annHeroImageTooLarge:fga,annHeroImageUploadFailed:gga,annModalTitle:hga,annBody:yga,annActions:vga,annActionLabel:bga,annActionUrl:xga,annActionVariant:$ga,annActionAdd:wga,annActionRemove:kga,annVariantPrimary:Cga,annVariantSecondary:Sga,annVariantLink:Aga,annSourceLocale:Tga,annSourceHint:Rga,annTranslate:Pga,annTranslating:_ga,annOtherLocales:jga,annTranslateDone:Nga,annTranslateParti
819al:Dga,annTranslateStale:Mga,annBumpRevision:Ega,annTranslateNeedSource:Iga},Lga="Operations dashboard",Uga="Real-time overview of platform health, usage, and alerts.",Bga="Refresh",Fga="Refreshing",zga="Updated {{time}}",qga="Loading dashboard",Hga="Failed to load dashboard",Vga="No data",Kga="No traffic yet",Gga="Video fail rate",Wga="Avg latency",Yga="Error types",Qga="No errors",Xga="Model anomalies",Zga="All models healthy",Jga="Components",eha="req",tha="Checkout abandon",nha="Refunds",aha="Chargebacks",oha="First-charge conversion",sha={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},rha={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},iha={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Apenas usuários normais (exclui sinalizados)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},lha={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},cha={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},dha={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},uha={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},mha={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},pha={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},fha={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},gha={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},hha={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},yha="{{failed}}/{{total}} jobs",vha="{{delta}}pt vs yesterday",bha="Low sample ({{n}})",xha="Had gateway calls",$ha="Last 7d cohort · normal users only",wha="Refund rate {{rate}}%",kha={funnel:"opened {{opened}} · paid {{paid}}"},Cha={title:Lga,description:Uga,refresh:Bga,refreshing:Fga,lastUpdated:zga,loading:qga,failedLoad:Hga,empty:Vga,noTraffic:Kga,videoFailRate:Gga,avgLatency:Wga,errorTypes:Yga,noErrors:Qga,modelAnomalies:Xga,noAnomalies:Zga,components:Jga,req:eha,abandonRate:tha,refunds:nha,chargebacks:aha,firstChargeConversion:oha,sections:sha,leaderboard:rha,kpi:iha,revenue:lha,orders:cha,conversion:dha,c
819omponentStatus:uha,severity:mha,health:pha,alerts:fha,alertSettings:gha,range:hha,videoJobsDetail:yha,vsYesterdayPt:vha,lowSample:bha,activeUsersHint:xha,conversionCohortHint:$ha,refundRate:wha,checkout:kha},Sha="Loading...",Aha="Admin permission required",Tha="Your account does not have permission to access this administrator page.",Rha={loading:Sha,permissionRequired:Aha,permissionDescription:Tha},Pha="User growth",_ha="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",jha={mobileLabel:"Seção de crescimento",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Código de resgate",tasks:"Task wall"},Nha="Coupon batch",Dha="Promotion rule",Mha="Count",Eha="Batch code",Iha="Creating...",Oha="Create batch",Lha="{{count}} coupon code created",Uha="{{count}} coupon codes created",Bha="Batch {{code}}",Fha="Copied",zha="Copy all",qha="Credit grants",Hha="Source",Vha="Status",Kha="No grants yet",Gha="Coupon redemptions, signup bonuses, and manual grants appear here.",Wha="Time",Yha="User",Qha="Amount",Xha="Signup bonus",Zha="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",Jha="Enable signup credit",eya="Amount (USD)",tya="Save signup bonus",nya="Saving...",aya="Current amount {{amount}}",oya="Referral cashback",sya="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",rya="Enable referral cashback",iya="Reward tiers",lya="Add tier",cya="Recipient",dya="From day",uya="Until day",mya="Percent",pya="Label",fya="Action",gya="Inviter",hya="Invitee",yya="No end",vya="Remove tier",bya="Release delay (days)",xya="Per-topup cap (USD)",$ya="Min topup (USD, blank = none)",wya="Cashback expiry (days, blank = never)",kya="Billing-page countdown banner",Cya="Banner title",Sya="Subtitle",Aya="Countdown mode",Tya="Global deadline",Rya="Each invitee's 30-day window",Pya="Ends at",_ya="Save referral settings",jya="v{{version}}",Nya="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",Dya="Version history",Mya="Version",Eya="Status",Iya="Reward tiers",Oya="Published",Lya="Superseded",Uya="current",Bya="Top-up discount codes",Fya="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",zya="Enable discount codes",qya="Discount type",Hya="Fixed amount off (USD)",Vya="Percentage off (%)",Kya="Amount off (USD)",Gya="Percentage off (0-100)",Wya="Save discount",Yya="Default low-balance alert",Qya="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",Xya="Threshold (USD)",Zya="Save threshold",Jya="Current: {{amount}}",eva="Generate codes against the discount rule above.",tva="In effect: {{state}} · {{value}} off",nva="enabled",ava="disabled",ova="Issued codes",sva="Pick a batch to see who redeemed each code.",rva="No batches yet",iva="Generate a batch above to start tracking redemptions.",lva="Total",cva="Redeemed",dva="Reserved",uva="Available",mva="Codes in {{code}}",pva="No codes in this batch",fva="Code",gva="Redeemed by",hva="Redeemed at",yva="Paid",vva="Discount",bva="Criar códigos",xva="Um código compartilhado é um único código que muitos usuários podem resgatar até N vezes; um lote de códigos únicos são N códigos de uso único.",$va="Tipo de código",wva="Código compartilhado único",kva="Lote de códigos únicos",Cva="Texto do código (deixe em branco para aleatório)",Sva="ex.: WELCOME100",Ava="Total de resgates (N)",Tva="Por usuário",Rva="Expira em (opcional)",Pva="grupo opcional",_va="Criar código compartilhado",jva="Código compartilhado criado",Nva="Usar um desconto para este lote (senão, a regra acima)",Dva="Códigos compartilhados",Mva="Um código, muitos usuários. A contagem de usos registra os resgates pagos.",Eva="Ainda sem códigos compartilhados",Iva="Usados / limite",Ova="Por usuário",Lva="Expira",Uva="Desativar",Bva="Desativar este código?",Fva="Novos checkouts são bloqueados imediatamente. Pedidos jÃ
819¡ em checkout ainda podem ser concluÃdos.",zva="Código desativado",qva="CSV",Hva="Status",Vva="E-mail",Kva={code:"Código",discount:"Desconto",redeemed:"Resgatado",cap:"Limite",perUser:"Por usuário",status:"Status",expiresAt:"Expira em",batch:"Lote",createdAt:"Criado em",redeemedBy:"Resgatado por",redeemedAt:"Resgatado em",paid:"Pago",discountAmount:"Desconto",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},Gva="Amount",Wva="Bound at",Yva="Counterparty",Qva="Invitee",Xva="Inviter",Zva="Rate",Jva="Released",eba="Role",tba="Tier",nba="Top-up",aba="Load more",oba="No referrals under this version",sba="No cashback under this version",rba="Referrals",iba="Referral records",lba="Cashback records",cba="Version detail",dba={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},uba="Gerar código de resgate",mba="Código de resgate no estilo cartão pré-pago. O usuário insere o código na página de cobrança, e o valor é creditado diretamente no saldo (saldo promocional, sem pagamento).",pba="Nome do lote (opcional)",fba="Ex.: brinde Conf-2026",gba="Quantidade a gerar",hba="Valor por código (USD)",yba="Qtd. resgatável por conta neste lote (vazio = sem limite)",vba="Sem limite",bba="Prazo final para resgate (opcional)",xba="Restrict to models (optional)",$ba="General balance (no restriction)",wba="{{count}} models selected",kba="Blank = general balance. Selected models share one earmarked pool.",Cba="Credit validity after redemption (days, blank = never expires)",Sba="never expires",Aba="{{n}} d",Tba="Models",Rba="Validity",Pba="General balance",_ba="Gerar código de resgate",jba="Salve agora mesmo. Depois, você também pode recuperar pela lista de lotes usando âExportar em textoâ.",Nba="Lotes de códigos de resgate",Dba="Clique em um lote para ver os detalhes de cada código; âExportar em textoâ permite exportar novamente os códigos em texto puro.",Mba="Ainda não há lotes de códigos de resgate",Eba="Lote",Iba="Valor",Oba="Exportar em texto",Lba="Revogar este código já resgatado?",Uba="Recupera do saldo do usuário a parte ainda não consumida; a parte já consumida não pode ser recuperada.",Bba="Revogar",Fba="{{amount}} revogado",zba="Códigos de resgate exportados",qba="Desativar os códigos não resgatados deste lote?",Hba="Todos os códigos ainda não resgatados ficarão inválidos; os já resgatados não serão afetados.",Vba="{{n}} códigos desativados",Kba="Bonus % on top-up",Gba="Bonus (%)",Wba="Bonus validity (days, optional)",Yba="blank = never expires",Qba={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},Xba={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending c
819ap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},Zba={title:Pha,description:_ha,tabs:jha,couponBatch:Nha,promotionRule:Dha,count:Mha,batchCode:Eha,creating:Iha,createBatch:Oha,codesCreated:Lha,codesCreated_plural:Uha,batch:Bha,copied:Fha,copyAll:zha,creditGrants:qha,source:Hha,status:Vha,noGrants:Kha,noGrantsDescription:Gha,time:Wha,user:Yha,amount:Qha,signupBonus:Xha,signupBonusDescription:Zha,signupBonusEnabled:Jha,signupBonusAmount:eya,saveSignupBonus:tya,saving:nya,currentSignupBonus:aya,referral:oya,referralDescription:sya,referralEnabled:rya,referralRewardTiers:iya,addTier:lya,tierRole:cya,tierFromDay:dya,tierUntilDay:uya,tierPercent:mya,tierLabel:pya,tierAction:fya,roleReferrer:gya,roleReferee:hya,noEndDay:yya,removeTier:vya,releaseDelayDays:bya,referralCap:xya,referralMinTopup:$ya,referralExpiryDays:wya,bannerEnabled:kya,bannerTitle:Cya,bannerSubtitle:Sya,bannerMode:Aya,bannerModeGlobal:Tya,bannerModeWindow:Rya,bannerEndsAt:Pya,saveReferral:_ya,referralVersion:jya,referralPublishHint:Nya,referralVersionHistory:Dya,versionCol:Mya,versionStatus:Eya,versionTiers:Iya,versionPublished:Oya,versionSuperseded:Lya,versionCurrent:Uya,discountRule:Bya,discountRuleDescription:Fya,discountEnabled:zya,discountType:qya,discountFixed:Hya,discountPercent:Vya,discountValueFixed:Kya,discountValuePercent:Gya,saveDiscount:Wya,defaultLowBalanceThreshold:Yya,defaultLowBalanceThresholdDescription:Qya,defaultLowBalanceThresholdAmount:Xya,saveDefaultLowBalanceThreshold:Zya,currentDefaultLowBalanceThreshold:Jya,couponBatchDescription:eva,discountEffective:tva,stateEnabled:nva,stateDisabled:ava,couponTrace:ova,couponTraceDescription:sva,noBatches:rva,noBatchesDescription:iva,batchTotal:lva,batchRedeemed:cva,batchReserved:dva,batchActive:uva,codesInBatch:mva,noCodes:pva,code:fva,redeemedBy:gva,redeemedAt:hva,paid:yva,discount:vva,createIssuance:bva,createIssuanceDescription:xva,formLabel:$va,formShared:wva,formUniqueBatch:kva,sharedCodeText:Cva,sharedCodeRandomHint:Sva,sharedMaxRedemptions:Ava,sharedPerUser:Tva,expiresAt:Rva,batchCodeOptional:Pva,createSharedCode:_va,sharedCodeCreated:jva,batchOwnDiscount:Nva,sharedCodesList:Dva,sharedCodesListDescription:Mva,noSharedCodes:Eva,colRedeemedTotal:Iva,colPerUser:Ova,colExpiry:Lva,disableCode:Uva,disableCodeConfirmTitle:Bva,disableCodeConfirmMessage:Fva,codeDisabled:zva,exportCsv:qva,statusFilter:Hva,filterByEmail:Vva,csv:Kva,colAmount:Gva,colBoundAt:Wva,colCounterparty:Yva,colInvitee:Qva,colInviter:Xva,colRate:Zva,colReleasedAt:Jva,colRole:eba,colTier:tba,colTopup:nba,loadMore:aba,noBindings:oba,noCashback:sba,versionBindings:rba,versionBindingsSection:iba,versionCashbackSection:lba,versionDetail:cba,topup:dba,redeemCreate:uba,redeemCreateDescription:mba,redeemBatchName:pba,redeemBatchNameHint:fba,redeemCount:gba,redeemFaceValue:hba,redeemPerUserLimit:yba,redeemUnlimited:vba,redeemExpiresAt:bba,redeemModels:xba,redeemModelsAll:$ba,redeemModelsCount:wba,redeemModelsHint:kba,redeemValidityDays:Cba,redeemValidityForever:Sba,redeemValidityDaysValue:Aba,redeemColModels:Tba,redeemColValidity:Rba,redeemGeneralBalance:Pba,redeemCreateBtn:_ba,redeemRevealHint:jba,redeemBatches:Nba,redeemBatchesDescription:Dba,redeemNoBatches:Mba,redeemBatchCol:Eba,redeemFace:Iba,redeemReveal:Oba,redeemReverseTitle:Lba,redeemReverseMessage:Uba,redeemReverseBtn:Bba,redeemReversed:Fba,redeemRevealed:zba,redeemDisableBatchTitle:qba,redeemDisableBatchMessage:Hba,redeemBatchDisabled:Vba,discountTypeBonusPercent:Kba,discountValueBonusPercent:Gba,bonusExpiryDays:Wba,bonusExpiryDaysHint:Yba,sharedPayments:Qba,tasks:Xba},Jba="Models",exa="Model catalog: create, edit, publish.",txa={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},nxa="Add model",axa="Edit {{model}}",oxa="New model",sxa="Close",rxa="Basics & content save together; pricing and status changes apply immediately.",ixa="Create the model draft. Set pricing and publish after it exists.",lxa={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},cxa="Provider slug",dxa="Pick a known provider or type a custom slug.",uxa="Model slug",mxa="Aliases",pxa="Comma-separated lookup aliases for import and review.",fxa="Source (customer-visible)",gxa="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
819ame-model variants at different prices.",hxa="Platform",yxa="â select platform â",vxa="Upstream model id (optional; choose from upstream or enter manually)",bxa="Choose from upstream...",xxa="Upstream unavailable",$xa="Protocols",wxa="Input price / 1M (USD)",kxa="Output price / 1M (USD)",Cxa="EN summary",Sxa="Preview",Axa="(No summary)",Txa="No protocol",Rxa="Cancel",Pxa="Save",_xa="Create draft",jxa={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},Nxa={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},Dxa="Context window (tokens)",Mxa="Max input the model accepts. Leave blank if unknown.",Exa="Max output tokens",Ixa="Max tokens the model can generate per response.",Oxa={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},Lxa="Input modalities",Uxa="Declares what this model can receive, including vision, audio, video, and file inputs.",Bxa="Output modalities",Fxa="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",zxa="Image billing style",qxa="Video billing style",Hxa="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",Vxa="â select billing style â",Kxa="Per token (image_output_token)",Gxa="Per image (per_call_image)",Wxa="Per second (video_per_second)",Yxa="Per call (video_per_call)",Qxa="Display order",Xxa="Must be a non-negative integer.",Zxa="Editing locale",Jxa="Upstream release date",e$a="Summary (this locale)",t$a="Description (Markdown, this locale)",n$a={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filtros"},a$a={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},o$a={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},s$a={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
819:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},r$a="Discard unsaved changes?",i$a="Editar modelo",l$a={title:Jba,description:exa,badges:txa,addModel:nxa,editModel:axa,newModel:oxa,close:sxa,sheetDescription:rxa,sheetDescriptionNew:ixa,sections:lxa,providerSlug:cxa,providerSlugHint:dxa,modelSlug:uxa,aliases:mxa,aliasesHint:pxa,source:fxa,sourceHint:gxa,platform:hxa,platformUnset:yxa,sub2apiModelId:vxa,chooseSub2api:bxa,upstreamUnavailable:xxa,protocols:$xa,inputPrice:wxa,outputPrice:kxa,enSummary:Cxa,preview:Sxa,noSummary:Axa,noProtocol:Txa,cancel:Rxa,save:Pxa,createDraft:_xa,tabs:jxa,steps:Nxa,contextWindow:Dxa,contextWindowHint:Mxa,maxOutputTokens:Exa,maxOutputTokensHint:Ixa,lifecycle:Oxa,inputModalities:Lxa,inputModalitiesHint:Uxa,outputModalities:Bxa,outputModalitiesHint:Fxa,billingStyleImage:zxa,billingStyleVideo:qxa,billingStyleHint:Hxa,billingStyleUnset:Vxa,billingStyleToken:Kxa,billingStylePerImage:Gxa,billingStylePerSecond:Wxa,billingStylePerCall:Yxa,displayOrder:Qxa,displayOrderInvalid:Xxa,contentLocale:Zxa,upstreamReleaseAt:Jxa,summary:e$a,descriptionField:t$a,filters:n$a,table:a$a,errors:o$a,pricing:s$a,discardChanges:r$a,editModelShort:i$a},c$a="Rate Limits",d$a="Rate limit policies by scope.",u$a="Rate limit policies",m$a="No policies",p$a="Code",f$a="Name",g$a="Scope",h$a="Status",y$a="Limits",v$a="No limits",b$a={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},x$a={active:"Active",disabled:"Disabled",archived:"Archived"},$$a={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},w$a="New policy",k$a="Edit",C$a="Action",S$a="New rate limit policy",A$a="Edit {{name}}",T$a="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",R$a='Delete policy "{{name}}"? Keys and users on it fall back to their default.',P$a="Policy deleted.",_$a={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},j$a={title:c$a,description:d$a,label:u$a,empty:m$a,code:p$a,name:f$a,scope:g$a,status:h$a,limits:y$a,noLimits:v$a,scopes:b$a,statuses:x$a,limitNames:$$a,add:w$a,edit:k$a,delete:"Delete",action:C$a,newTitle:S$a,editTitle:A$a,formDescription:T$a,confirmDelete:R$a,deleted:P$a,form:_$a},N$a="Admins",D$a="Who can sign in to the admin console. Owner-only.",M$a="Admins",E$a="No admins yet",I$a="Email",O$a="Name",L$a="Role",U$a="Status",B$a="Last login",F$a="Action",z$a="Add admin",q$a="Add admin",H$a="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",V$a="Email",
819K$a="[email protected]",G$a="Name",W$a="Display name",Y$a="Role",Q$a="Admin added.",X$a="Change role",Z$a="Role updated.",J$a="Suspend",ewa="Activate",twa="Status updated.",nwa="Remove",awa="Admin removed.",owa="Remove {{email}} as an admin? They lose console access immediately.",swa="You",rwa="Never",iwa={owner:"Owner",admin:"Admin",support:"Support"},lwa={active:"Active",suspended:"Suspended"},cwa={title:N$a,description:D$a,label:M$a,empty:E$a,email:I$a,name:O$a,role:L$a,status:U$a,lastLogin:B$a,action:F$a,add:z$a,newTitle:q$a,formDescription:H$a,emailLabel:V$a,emailPlaceholder:K$a,nameLabel:G$a,namePlaceholder:W$a,roleLabel:Y$a,added:Q$a,changeRole:X$a,roleChanged:Z$a,suspend:J$a,activate:ewa,statusChanged:twa,remove:nwa,removed:awa,confirmRemove:owa,self:swa,never:rwa,roles:iwa,statuses:lwa},dwa="Upstream",uwa="Read-only upstream configuration mirror plus controlled OneHop routing pools.",mwa="Open upstream admin",pwa="Upstream tabs",fwa={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},gwa={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},hwa={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},ywa={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Cobertura de upstream",coverageUnchecked:"contas ilegÃveis",coverageOnlyAccount:"apenas {{accounts}}",coverageNoAccount:"Nenhuma conta agendável mapeia este ID de upstream"},vwa={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},bwa={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},xwa={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},$wa={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},wwa={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},kwa={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},Cwa={title:dwa,description:uwa,openUpstreamAdmin:mwa,tabsLabel:pwa,tabs:fwa,metrics:gwa,errors:hwa,audit:ywa,topology:vwa,pools:bwa,readonly:xwa,table:$wa,common:wwa,ops:kwa},Swa="Platform usage",Awa="Cross-user request metering with cost, token, latency, and routing signals.",Twa="Refresh",Rwa={label:"Auto refresh",off:"Off"},Pwa="Exporting",_wa="Export CSV",jwa="Failed to export usage records",Nwa="Requests",Dwa="{{count}} successful",Mwa="Users",Ewa="Matched by current filters",Iwa="Billed credit",Owa="{{cost}} upstream cost",Lwa="Tokens",Uwa="Avg {{duration}}",Bwa="User email",Fwa="Search by email",zwa="Model",qwa="Search by model",Hwa="Status",Vwa="Protocol",Kwa="Rows",Gwa="Reset",Wwa="Ops usage records",Ywa="No usage records",Qwa="User",Xwa="Endpoint",Zwa="{{count}} total",Jwa="In {{input}} / out {{output}}",e0a="Upstream",t0a="Billed",n0a="Latency",a0a="Started",o0a="Page {{page}} · showing {{shown}} of {{total}} matching records",s0a="Previous",r0a="Next",i0a="{{count}} rows on this page",l0a="Times shown in",c0a="{{count}} API keys",d0a="Spend snapshot",u0a="from OneHop billing snapshot",m0a="User spend",p0a="total billed to users",f0a="Avg latency",g0a="settled requests",h0a="Range",y0a={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},v0a="Metric",b0a={cost:"Spend",tokens:"Tokens",requests:"Requests"},x0a="Distribution",$0a={model:"Modelo",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
819:"Transport (stream/sync)"},w0a="Usage trend",k0a="Usage by model",C0a="Hourly",S0a="Daily",A0a="Top endpoints",T0a="Top dimension rows",R0a="Request logs",P0a="API key",_0a="Type",j0a="Billing",N0a="Channel",D0a="Group",M0a="Request ID",E0a="req_ / usg_ / upstream",I0a="All types",O0a="All billing",L0a={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},U0a="Failed to load usage",B0a="Loading usage records",F0a="Try a different filter set.",z0a="No trend data",q0a="No distribution data",H0a="No rows",V0a="Spend breakdown",K0a={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},G0a="Request detail",W0a="Unknown user",Y0a="Loading...",Q0a="Sub2API actual",X0a="Group multiplier",Z0a="Account multiplier",J0a="Identity",eka="User ID",tka="Key suffix",nka={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},aka="Input",oka="Output",ska="Cache read",rka="Cache write",ika="Raw metadata",lka="Request",cka="Usage ID",dka="OneHop ID",uka="Sub2API ID",mka="Sub2API log",pka="Routing",fka="Mapping",gka="Performance",hka="First token",yka="Total",vka="Error",bka="Code",xka="Message",$ka={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},wka={analytics:"Usage analytics",logs:"Request logs"},kka={label:"Chart view",stacked:"Over time",ranking:"Ranking"},Cka={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},Ska="More filters",Aka="Slow threshold (ms)",Tka="No model usage",Rka="No requests yet â usage will appear here as traffic comes in.",Pka="Viewing",_ka="streaming requests",jka="Avg duration",Nka="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",Dka="Open request detail",Mka={title:Swa,description:Awa,refresh:Twa,autoRefresh:Rwa,exporting:Pwa,exportCsv:_wa,exportError:jwa,requests:Nwa,successful:Dwa,users:Mwa,matchedFilters:Ewa,billedCredit:Iwa,upstreamCost:Owa,tokens:Lwa,avgDuration:Uwa,userEmail:Bwa,searchEmail:Fwa,model:zwa,searchModel:qwa,status:Hwa,protocol:Vwa,rows:Kwa,reset:Gwa,label:Wwa,empty:Ywa,user:Qwa,endpoint:Xwa,totalTokens:Zwa,inOut:Jw
819a,upstream:e0a,billed:t0a,latency:n0a,started:a0a,pageSummary:o0a,previous:s0a,next:r0a,rowsOnPage:i0a,timesShownIn:l0a,apiKeys:c0a,sub2apiCharge:d0a,sub2apiChargeSource:u0a,userSpend:m0a,userSpendSource:p0a,avgLatency:f0a,settledRequests:g0a,range:h0a,ranges:y0a,metric:v0a,metrics:b0a,distribution:x0a,breakdown:$0a,usageTrend:w0a,stackedByModel:k0a,hourly:C0a,daily:S0a,topEndpoints:A0a,topDimensionRows:T0a,requestLogs:R0a,apiKey:P0a,type:_0a,billing:j0a,channel:N0a,group:D0a,requestId:M0a,requestIdPlaceholder:E0a,allTypes:I0a,allBilling:O0a,table:L0a,failedLoad:U0a,loadingRecords:B0a,tryDifferentFilters:F0a,noTrendData:z0a,noDistributionData:q0a,noRows:H0a,costBreakdown:V0a,adminCost:K0a,requestDetail:G0a,unknownUser:W0a,loading:Y0a,sub2apiActual:Q0a,groupMultiplier:X0a,accountMultiplier:Z0a,identity:J0a,userId:eka,keySuffix:tka,continuity:nka,input:aka,output:oka,cacheRead:ska,cacheWrite:rka,rawMetadata:ika,request:lka,usageId:cka,onehopId:dka,sub2apiId:uka,sub2apiLog:mka,routing:pka,mapping:fka,performance:gka,firstToken:hka,total:yka,error:vka,code:bka,message:xka,csv:$ka,tabs:wka,modelView:kka,chip:Cka,moreFilters:Ska,slowThreshold:Aka,noModelUsage:Tka,noTrendToday:Rka,viewing:Pka,avgLatencySub:_ka,avgTotalDuration:jka,latencyHint:Nka,openRequestDetail:Dka},Eka="Search",Ika="Search by user ID, email, or name",Oka="User",Lka="Back to users",Uka="You do not have permission to view this section.",Bka="Refund",Fka="Refunding...",zka="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",qka="Refund initiated.",Hka={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"Chaves de API",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},Vka={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},Kka={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},Gka={phase2:"Subscriptions are coming in Phase 2."},Wka={empty:"No payments"},Yka={empty:"No refunds"},Qka={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},Xka={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},Zka={empty:"No audit records"},Jka={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},eCa={ipLocationTitle:"IP e localização",deviceBrowserTitle:"Dispositivo e navegador",stripeTitle:"Stripe",signupIp:"IP de cadastro",signupCountry:"PaÃs de cadastro",lastLoginIp:"IP do último login",ipDifferent:"Diferente do IP de cadastro",sameIpAccounts_one:"{{count}} conta com o mesmo IP de cadastro",sameIpAccounts_other:"{{count}} contas com o mesmo IP de cadastro",sameDeviceAccounts_one:"{{count}} conta no mesmo dispositivo",sameDeviceAccounts_other:"{{count}} contas no mesmo dispositivo",deviceFingerprint:"Impressão digital do dispositivo",freeTierEligible:"Elegibilidade ao plano gratuito",firstDevice:"Primeira no dispositivo",notFirstDevice:"Não é a primeira no dispositivo â sem benefÃcios gratuitos",browser:"Navegador",os:"OS",deviceType:"Tipo de dispositivo",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"Ver no ipinfo.io"},tCa={empty:"Ainda sem chamadas",viewAll:"Ver todos os logs â",colStatus:"Status",colTime:"Hora",colModel:"Modelo",colProtocol:"Protocolo",colDuration:"Duração",colCost:"Custo",colFreeDiscount:"Crédito gratuito"},nCa={empty:"Ainda não há API keys",colName:"Nome",colKey:"Key",colStatus:"Status",colPolicy:"PolÃtica de limite de uso",colLastUsed:"Ãltimo uso",colCreated:"Criada",colExpires:"Expira em",colSpend:"Gasto",spendTitle:"Detalhamento do gasto",spend30d:"Ãltimos 30 dias",spendAllTime:"Total",spendRequests:"Requisições"},aCa="Copiar",oCa="Copiado",sCa={search:Eka,searchPlaceholder:Ika,title:Oka,backToList:Lka,noBlockPerm:Uka,refund:Bka,refunding:Fka,refundConfirm:zka,refundInitiated:qka,nav:Hka,freeTokens:Vka,freeQuota:Kka,subscription:Gka,payments:Wka,refunds:Yka,rewards:Qka,referrals:Xka,audit:Zka,col:Jka,network:eCa,recentCalls:tCa,apiKeys:nCa,copy:aCa,copied:oCa},rCa="Users",iCa="Search users, grant credit, and suspend accounts.",lCa="Email",cCa="Search by email",dCa="Account status",uCa={active:"Conta ativa; pode entrar e chamar o gateway",suspended:"Suspensa; o gateway rejeita todas as solicitações (401)"},mCa="Risk",pCa={normal:"ElegÃvel para todos os benefÃcios gratuitos",watchlisted:"Sem tokens gratuitos nem bônus de cadastro; ainda pode recarregar e chamar o gateway",blocked:"O gateway rejeita todas as solicitações (401); banimento total"},fCa="Users",gCa="No users found",hCa="Country",yCa="Last login",vCa="Action",bCa="View",xCa="Deleted",$Ca="Set status for {{email}}",wCa='Set {{email}} to "{{status}}"?',kCa="Grant credit",CCa="Add bonus credit to {{email}}. Recorded in the ledger.",SCa="Amount (USD)",ACa="e.g. 5",TCa="Reason (optional)",RCa="e.g. compensation for downtime",PCa="Type",_Ca="Bonus credit",jCa="A gift. Does not count as a top-up.",NCa="Offline payment",DCa="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",MCa="Reference no.",ECa="e.g. bank slip 20260907-001",ICa="Record payment",OCa="Recording...",LCa="Cancel",UCa="Granting...",BCa="Grant",FCa="Grant ${{amount}} to {{email}}? This is a large amount.",zCa="No display name",qCa="Loading...",HCa="score {{score}}",VCa="Email verified",KCa="Yes",GCa="No",WCa="Signup",YCa="Signup method",QCa="Last login method",XCa="Signup bonus",ZCa="Onboarding",JCa="Locale / TZ",e1a="Markup ratio",t1a="Rate limit policy",n1a="Rate limit policy updated.",a1a="Joined",o1a="Never",s1a="Balance",r1a="Wallet & spend",i1a="Total spent",l1a="Recharged",c1a="Bonus granted",d1a="Refunded",u1a="Requests",m1a="Tokens",p1a="Actions",f1a="Identity & risk",g1a="Role",h1a="No permitted actions for your role.",y1a="Acquisition source",v1a="Acquisition by source",b1a="Direct / unknown",x1a="Custom sourceâ¦",$1a="Set",w1a="Auto-detected: {{source}}",k1a="UTM",C1a="Referred by",S1a="Nota",A1a="Adicione uma nota para identificar este usuário",T1a="Salvar nota",R1a="Nota salva",P1a="Sem nota",_1a="Filtros",j1a="Location",N1a="Preferred locale",D1a={title:rCa,description:iCa,email:lCa,searchEmail:cCa,status:dCa,statusEffect:uCa,risk:mCa,riskEffect:pCa,label:fCa,empty:gCa,country:hCa,lastLogin:yCa,action:vCa,view:bCa,deleted:xCa,setStatusAria:$Ca,setStatusConfirm:wCa,grantCredit:kCa,grantDescription:CCa,amountUsd:SCa,amountPlaceholder:ACa,reason:TCa,reasonPlaceholder:RCa,grantKind:PCa,grantKindBonus:_Ca,grantKindBonusHint:jCa,grantKindOffline:NCa,grantKindOfflineHint:DCa,referenceNo:MCa,referenceNoPlaceholder:ECa,recordPayment:ICa,recording:OCa,cancel:LCa,granting:UCa,grant:BCa,largeGrantConfirm:FCa,noDisplayName:zCa,loading:qCa,score:HCa,emailVerified:VCa,yes:KCa,no:GCa,signup:WCa,signupMethod:YCa,lastLoginMethod:QCa,signupBonus:XCa,onboarding:ZCa,localeTz:JCa,markupRatio:e1a,rateLimitPolicy:t1a,rateLimitPolicyChanged:n1a,joined:a1a,never:o1a,walletBalance:s1a,walletSection:r1a,consumed:i1a,recharged:l1a,bonusGranted:c1a,refunded:d1a,requests:u1a,tokens:m1a,actionsSection:p1a,identitySection:f1a,role:g1a,noPermittedActions:h1a,acquisitionSource:y1a,acquisitionTitle:v1a,sourceDirect:b1a,sourceCustomPlaceholder:x1a,sourceSet:$1a,sourceCaptured:w1a,utm:k1a,referrer:C1a,note:S1a,notePlaceholder:A1a,noteSave:T1a,noteSaved:R1a,noteEmpty:P1a,filters:_1a,location:j1a,preferredLocale:N1a},M1a="Webhooks",E1a="Stripe webhook events. Status filter, retry, payload inspection.",I1a="Status",O1a="Event type",L1a="Received",U1a="Event type",B1a="Status",F1a="Mode",z1a="Attempts",q1a="Retry",H1a="Retry queued",V1a="Event {{event}} reset to pending; next job tick will process.",K1a="Retry failed",G1a="No webhook events yet.",W1a="Stripe events will appear here once your endpoint is registered.",Y1a="Loading payload...",Q1a="Last error",X1a="Payload (JSON)",Z1a={title:M1a,description:E1a,statusFilter:I1a,eventTypeFilter:O1a,receivedAt:L1a,eventType:U1a,status:B1a,mode:F1a,attempts:z1a,retry:q1a,retrySubmittedTitle:H1a,retrySubmittedBody:V1a,retryFailedTitle:K1a,empty:G1a,emptyHint:W1a,detailLoa
819ding:Y1a,lastError:Q1a,payload:X1a},J1a="API Keys",eSa="Crie seu primeiro key em 10 segundos",tSa="Falha ao copiar",nSa={label:"Modelos permitidos",allModels:"Todos os modelos",allHint:"Todos os modelos do catálogo estão permitidos.",noModels:"Nenhum modelo disponÃvel.",selected:"{{count}} selecionados",someHint:"{{count}} modelo(s) permitido(s)."},aSa={label:"Tags",placeholder:"Adicione uma tag e pressione Enter",remove:"Remover"},oSa="Crie keys com escopo para produção, staging e fluxos de equipe.",sSa="Atualizar",rSa="Key padrão",iSa="Nome da key",lSa="Criando...",cSa="Criar key",dSa="Key completa, exibida uma vez",uSa="Copiar API key",mSa="Copiado",pSa="Copiar",fSa="Copie e guarde agora. Depois de fechar este painel, a key completa não poderá ser vista novamente.",gSa="Já salvei",hSa="Falha ao carregar API keys",ySa="Tentar novamente",vSa="Ainda não há API keys",bSa="Crie sua primeira key para começar a enviar requisições pelo OneHop.",xSa={label:"API keys",tags:"Tags",name:"Nome",key:"Key",status:"Status",created:"Criada",action:"Ação",usage:"Uso",quota:"Cota",expires:"Expira em",lastUsed:"Ãltimo uso"},$Sa="Revogar",wSa="Revogar {{name}}? Esta ação não pode ser desfeita.",kSa="Dê um nome ao key. Limites e expiração ficam nas configurações avançadas, salvo quando você precisar deles.",CSa="Limite mensal de credit",SSa="Expira em",ASa="Ilimitado",TSa="Salvando...",RSa="Salvar",PSa="Cancelar",_Sa={title:"Desabilitadas e revogadas",description:"Keys desativadas ou revogadas. Reative uma desabilitada ou mantenha as revogadas como registro."},jSa={title:"Nenhuma key ativa",description:"Reative uma key desabilitada abaixo ou crie uma nova."},NSa={import:"Importar para CCS",client:"Cliente CC-Switch",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"O CC Switch foi aberto com um marcador. Cole ali sua API key salva.",checking:"Verificando compatibilidadeâ¦",blocked:{title:"{{client}} não pode usar esta chave",body:"â{{keyName}}â permite apenas modelos que {{client}} não pode usar. A importação resultará em erros.",adjust:"Ajustar escopo de modelos",forceImport:"Importar mesmo assim (não funcionará)"},pin:{title:"Importar como {{model}} para {{client}}",body:"â{{keyName}}â não inclui o modelo padrão de {{client}}. Veja como as solicitações de {{client}} serão roteadas por este provedor:",adjust:"Ajustar escopo de modelos",confirm:"Importar com {{model}}"}},DSa={search:"Buscar",searchPlaceholder:"Buscar nome ou sufixo do key",status:"Status",allStatus:"Todos os status",clear:"Limpar filtros",empty:"Nenhum key corresponde a estes filtros",emptyDescription:"Limpe a busca ou o filtro de status para ver todos os keys.",mobileTitle:"Filtros"},MSa={active:"Ativo",inactive:"Desativado",revoked:"Revogado",expired:"Expirado",quota_exhausted:"Cota esgotada"},ESa={today:"Hoje {{requests}} req · {{credit}}",days30:"30 d {{requests}} req · {{credit}}"},ISa={use:"Detalhes de conexão",edit:"Editar",enable:"Ativar",disable:"Desativar",delete:"Excluir"},OSa="Usar API key",LSa="Use o key salvo com o gateway da OneHop. O key completo só aparece no momento da criação.",USa={baseUrl:"Base URL",keyHint:"API key",authorization:"Cabeçalho Authorization",env:"Variável de ambiente",curl:"cURL",revealing:"Descriptografando keyâ¦",fullKeyUnavailable:"O key completo só é mostrado quando é criado. Use o valor que você salvou ou crie um novo key se o perdeu.",protocolEndpoints:"Endpoints de protocolo"},BSa="Configurações avançadas",FSa="Criar API key",zSa="Editar API key",qSa={label:"Acesso a modelos",all:"Todos os modelos",limited:"Restringir a modelos especÃficos",allHint:"Esta key pode chamar todos os modelos, incluindo os adicionados depois.",snapshotHint:"Somente os modelos escolhidos; modelos adicionados depois não entram automaticamente.",snapshotHintEdit:"Somente os modelos escolhidos; novos modelos não entram automaticamente. Mudar para Todos os modelos substitui esta lista permitida.",searchPlaceholder:"Buscar modelosâ¦",selectAllResults:"Selecionar todos os resultados ({{count}})",selectedCount:"{{count}} / {{max}} selecionados",clear:"Limpar",hiddenSelected:"{{hidden}} de {{total}} selecionados estão ocultos pelo filtro atual",selectVendor:"Selecionar todos de {{vendor}}, {{on}} de {{total}} selecionados",emptyTitle:"Nenhum modelo corresponde",emptyDescription:"Tente outro tipo ou busca.",loadFailed:"Não foi possÃvel carregar os modelos",loadFailedHint:"Tente novamente ou volte para Todos os modelos.",type:{all:"Todos",text:"Texto",image:"Imagem",video:"VÃdeo",embedding:"Embedding"},pickAtLeastOne:"Selecione pelo menos um modelo ou volte para Todos os modelos.",limitReached:"Reached the {{max}}-model limit"},HSa={title:"API key criada",subtitle:"{{name}} está pronta; conecte agora.",onceWarning:"Mostrada uma vez. Você pode revelá-la novamente depois, mas copie agora por segurança.",connect:"Conectar",done:"ConcluÃdo"},VSa="IP",KSa="Revogada em {{date}}",GSa={title:J1a,emptyTitle:eSa,copyFailed:tSa,allowedModels:nSa,tags:aSa,description:oSa,refresh:sSa,defaultName:rSa,keyName:iSa,creating:lSa,createKey:cSa,fullKeyTitle:dSa,copyApiKey:uSa,copied:mSa,copy:pSa,fullKeyDescription:fSa,savedIt:gSa,loadFailed:hSa,retry:ySa,empty:vSa,emptyDescription:bSa,table:
819xSa,revoke:$Sa,revokeConfirm:wSa,formDescription:kSa,monthlyCreditLimit:CSa,expiresAt:SSa,unlimited:ASa,saving:TSa,save:RSa,cancel:PSa,parked:_Sa,noActive:jSa,ccswitch:NSa,filters:DSa,status:MSa,usage:ESa,actions:ISa,useTitle:OSa,useDescription:LSa,use:USa,advancedSettings:BSa,createTitle:FSa,editTitle:zSa,scope:qSa,created:HSa,lastUsedIp:VSa,revokedAt:KSa},WSa="Audit Logs",YSa="High-risk admin actions, by action and time.",QSa="Action",XSa="Clear",ZSa={ops_user_update_status:"Status do usuário atualizado",ops_users_allowlist_add:"Acesso de cadastro adicionado",ops_users_allowlist_update:"Acesso de cadastro atualizado",ops_users_allowlist_invite:"Convite de acesso de cadastro enviado",ops_users_allowlist_revoke:"Acesso de cadastro removido",ops_users_allowlist_restore:"Acesso de cadastro restaurado",ops_model_create:"Modelo criado",ops_model_update:"Modelo atualizado",ops_model_update_status:"Status do modelo atualizado",sub2api_pool_create:"Pool de roteamento criado",sub2api_pool_test:"Pool de roteamento testado",sub2api_pool_rotate_secret:"Segredo de roteamento rotacionado"},JSa="Audit logs",eAa="No audit entries",tAa="Time",nAa="Severity",aAa="Target",oAa={ai_model:"Model",sub2api_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},sAa="Tipo de alvo",rAa="ID da requisição",iAa={title:WSa,description:YSa,action:QSa,clear:XSa,actions:ZSa,label:JSa,empty:eAa,time:tAa,severity:nAa,target:aAa,targetTypes:oAa,targetType:sAa,requestId:rAa},lAa="Entre no OneHop",cAa="Digite seu código",dAa="Continue com Google ou email",uAa="Digite seu email para receber um código",mAa="Digite o código de 6 dÃgitos enviado para {{email}}",pAa="Continuar com Google",fAa="Continuar com email",gAa="ou",hAa="Email",yAa="Enviar código de verificação",vAa="Enviando...",bAa="Verificar",xAa="Verificando...",$Aa="Reenviar em {{seconds}}s",wAa="Reenviar código",kAa="Ao continuar, você aceita nossos",CAa="Termos",SAa="Privacidade",AAa={signIn:"Entrar",signOutFailed:"Falha ao sair",sendCodeFailed:"Falha ao enviar o código",notAllowed:"Este e-mail ainda não tem acesso aprovado. Contate seu administrador para solicitar.",invalidCode:"Código inválido",codeIncorrect:"Código incorreto, tente novamente",googleFailed:"Falha ao entrar com Google",verifyHuman:"Conclua a verificação para continuar",verifyUnavailable:"A verificação humana está temporariamente indisponÃvel. Continue com o Google acima ou tente novamente mais tarde."},TAa={signInTitle:lAa,enterCodeTitle:cAa,methodIntro:dAa,emailStepIntro:uAa,codeIntro:mAa,continueGoogle:pAa,continueEmail:fAa,or:gAa,emailLabel:hAa,sendCode:yAa,sending:vAa,verify:bAa,verifying:xAa,resendIn:$Aa,resendCode:wAa,termsPrefix:kAa,terms:CAa,privacy:SAa,errors:AAa},RAa="Faturamento",PAa="Recarregue Credits, resgate cupons e revise a atividade da wallet.",_Aa={bonuses:"Bônus",topups:"Recargas",usage:"Consumo"},jAa={available:"Creditado",availableHint:"Já incluÃdo no saldo disponÃvel",frozen:"Pendente (bloqueado)",frozenHint:"DisponÃvel em ~{{days}} dias",frozenHintGeneric:"DisponÃvel após o perÃodo de retenção",title:"Recompensas por indicação",viewDetails:"Ver detalhes das indicações"},NAa={noUsage:"Sem consumo nos últimos 30 dias",perDay:"{{amount}} média/dia",daysLeft:"â {{days}} dias no ritmo atual"},DAa={amountUsd:"Valor (USD)",minAmountHint:"Recarga mÃnima de {{amount}}.",apply:"Aplicar",get:"Receber",onehopCredits:"OneHop credits",pay:"Pagar",poweredByStripe:"Protegido pela Stripe",poweredBy:"Protegido pela {{provider}}",secureCheckout:"Checkout hospedado seguro",secureCheckoutShort:"Checkout seguro",taxExclusiveNotice:"Os impostos aplicáveis são calculados no checkout e adicionados a este valor.",presets:"Valores predefinidos",promoCode:"Código promocional",promoCodePlaceholder:"Digite o código",serviceFee:"Taxa de serviço",title:"Recarregar",topupAmount:"Valor da recarga",totalDue:"Total a pagar",payCta:"Pagar {{amount}}",previewing:"Verificandoâ¦",discount:"Desconto do cupom",couponBelowMin:"O total com desconto é muito baixo â aumente o valor ou tente outro código.",maintenanceTitle:"Pagamentos temporariamente indisponÃveis",maintenanceDescription:"Os pagamentos estão temporariamente indisponÃveis. Fale conosco no Telegram se precisar pagar.",contactTelegram:"Fale conosco no Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Pagar com cripto (USDC / USDT)",payOnStripe:"O pagamento é concluÃdo na página segura de checkout da Stripe.",payOnProvider:"O pagamento é concluÃdo na página segura de checkout da {{provider}}.",payOnHostedCheckout:"O pagamento é concluÃdo na página segura de checkout hospedada.",amountPrecision:"A {{provider}} aceita valores em USD com no máximo 2 casas decimais. Ajuste o valor ou o código promocional.",couponBonus:"Bônus do cupom",couponBonusExpiry:"Os créditos de bônus expiram {{days}} dias após o pagamento.",couponInvalid:"Este código não pode ser aplicado â tente outro código.",couponErrors:{limitReached:"Você já usou este código o número máximo de vezes.",invalid:"Este código é inválido.",expired:"Este código expirou.",exhausted:"Este código já foi totalmente resgatado.",unavailable:"Este código está em uso â tente novamente em instantes."},tierBonus:"Bônus da promoção",tierBonusExpiry:"Os créditos de bônus expiram {{days}} dias após o pagamento.",tierBonusRestricted:"Os créditos de bônus só podem ser usados em: {{models}}.",nextTierPercent:"Recarregue mais {{amount}} e ganhe {{percent}}% em créditos de bônus.",nextTierBonus:"Recarregue mais {{amount}} e ganhe {{bonus}} em créditos de bônus.",tierCapReached:"Você já recebeu o bônus máximo desta promoção."},MAa="Adicionar Credits",EAa="Criando...",IAa="Credit disponÃvel",OAa="Recarregar",LAa="Pagamentos via Stripe",UAa="Valor (USD)",BAa="Valores de recarga predefinidos",FAa="Resgatar cupom",zAa="Código do cupom",qAa="Resgatando...",HAa="Resgatar",VAa="Cupom resgatado. O saldo está atualizando.",KAa="Redirecionando para checkout seguro...",GAa="Falha ao carregar resumo de faturamento",WAa="Falha na recarga",YAa="Abas de atividade de faturamento",QAa="Transações",XAa="Concessões de Credit",ZAa="Tipo de transação",JAa="Origem",eTa="Ainda sem transações",tTa="Recargas, cobranças e concessões aparecem aqui.",nTa="Entradas do ledger",aTa="Hora",oTa="Tipo",sTa="Valor",rTa="Saldo",iTa="Ainda sem concessões",lTa="Bônus de cadastro, cupons e concessões manuais aparecem aqui.",cTa="Status",dTa={successTitle:"Pagamento recebido",polling:"Creditando sua wallet... cerca de 30 segundos.",delayed:"Está demorando. Atualize daqui a pouco ou verifique seus recibos na Stripe.",cancelledTitle:"Pagamento cancelado",cancelledBody:"Nenhuma cobrança foi feita. Tente novamente quando quiser.",failedTitle:"Falha no pagamento",failedBody:"Não foi possÃvel concluir seu pagamento. Nenhum crédito foi adicionado. Tente novamente ou use outra forma de pagamento."},uTa={text:"Credits são saldo de serviço pré-pago, não depósito bancário. Credits consumidos não são reembolsáveis. Todos os preços em USD. Veja",tosLink:"Termos"},mTa="Recibos",pTa="Abrindo...",fTa="Não foi possÃvel abrir o portal de faturamento",gTa={title:"Recargas recentes",subtitle:"Ãltimos 90 dias, reembolsáveis em até 24 horas.",loading:"Carregando recargas...",date:"Data",amount:"Valor",credits:"Credits",status:"Status",refund:"Reembolsar",alreadyRefunded:"Já reembolsado",windowExpired:"Janela de reembolso expirou (24 horas)",confirmTitle:"Confirmar reembolso",confirmBody:"O reembolso será processado pela Stripe em 1-3 dias úteis. Há uma taxa de plataforma ({{fee}}) para reembolsos iniciados pelo usuário.",amountLabel:"Valor do reembolso (USD)",maxLabel:"Máx. ${{value}}",requestedLabel:"Reembolso solicitado",platformFeeLabel:"Taxa da plataforma ({{fee}})",cardReturnLabel:"Devolvido ao seu cartão",bonusForfeitureHint:"Credits promocionais concedidos junto com esta recarga serão revertidos proporcionalmente.",cancel:"Cancelar",confirm:"Emitir reembolso",submitting:"Env
819iando...",refundSubmittedTitle:"Reembolso enviado",refundSubmittedBody:"A Stripe devolverá o valor ao seu cartão em 1-3 dias úteis.",refundFailedTitle:"Falha no reembolso",balance:"Saldo",confirmAmount:"Reembolsar {{amount}}"},hTa={title:"Alertas de saldo",description:"Avisamos quando seu saldo ficar baixo.",emailLabel:"Avisar por e-mail",webhookLabel:"Webhook",autorechargeLabel:"Recarga automática",autorechargeUnsupported:"A recarga automática não está disponÃvel com o provedor de pagamento ativo.",autorechargeAddCardHint:"adicione um cartão para manter seu saldo",autorechargeTopUp:"Recarregar",autorechargeWhenBelow:"quando o saldo cair abaixo de",autorechargeThreshold:"Limite de recarga automática",autorechargeAmount:"Valor da recarga automática",autorechargeDisabledFailures:"A recarga automática foi desativada após várias falhas seguidas. Atualize seu cartão e reative.",autorechargeIncomplete:"Defina um valor de recarga e um limite acima de $0.",test:"Testar",testing:"Testandoâ¦",testQueued:"Entrega de teste na fila: confira seu endpoint",testFailed:"Falha ao enfileirar a entrega de teste",signingSecret:"Segredo de assinatura",secretOnSave:"Um segredo de assinatura é gerado ao salvar.",rotate:"Girar",secretRotated:"Segredo de assinatura girado",rotateFailed:"Falha ao girar o segredo",secretCopied:"Segredo de assinatura copiado",saved:"Configurações de alerta salvas",saveFailed:"Falha ao salvar as configurações de alerta",loadFailed:"Não foi possÃvel carregar as configurações de alerta",thresholdRequired:"Defina um limite acima de $0 para ativar os alertas.",webhookUrlRequired:"Insira uma URL https:// para o webhook.",thresholdOrderBad:"O limite de alerta deve ser ⥠ao limite de recarga automática.",card:"Cartão",changeCard:"Alterar",removeCard:"Remover",cardRemoved:"Cartão removido",cardRemoveFailed:"Falha ao remover o cartão",cardSetupFailed:"Falha ao iniciar a configuração do cartão",lowBalanceGroup:"Alertas de saldo baixo",thresholdLabel:"Limite de alerta"},yTa={title:"Histórico de transações",idSearch:"ID da transação",amountRange:"Faixa de valor (USD)",min:"MÃn",max:"Máx",clear:"Limpar",retry:"Tentar novamente",empty:"Nenhuma transação neste intervalo",date:"Data",typeMethod:"Tipo / método",description:"Descrição",action:"Ação",prevMonth:"Mês anterior",nextMonth:"Próximo mês",viewInvoices:"Ver faturas",emptyNew:"Ainda não há transações",emptyNewDesc:"Depois de recarregar, suas recargas, bônus e reembolsos aparecerão aqui.",topUpCta:"Recarregar",emptyFiltered:"Nenhuma transação corresponde",emptyFilteredDesc:"Tente limpar filtros ou ampliar o perÃodo.",clearFilters:"Limpar filtros"},vTa="Seu saldo está baixo e pode interromper solicitações. Recarregue ou ative a recarga automática.",bTa="Seu saldo está baixo e pode interromper solicitações. Recarregue para continuar.",xTa={creditPurchase:"Recarga de crédito",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Bônus do cupom",referralCashback:"Cashback de indicação",referralInviteeCashback:"Bônus do indicado",redeemCode:"Código de resgate {{code}}",redeemCodeReversal:"Resgate revertido",stripeRefund:"Reembolso Stripe",bonusReversal:"Estorno de bônus (reembolso)"},$Ta={title:"Crédito vinculado",subtitle:"Crédito de bônus utilizável apenas em modelos especÃficos â separado do seu saldo.",onlyModels:"Apenas {{models}}",onlyModelsGeneric:"Modelos restritos",validUntil:"Válido até {{date}}",noExpiry:"Sem expiração",useInChat:"Use in chat"},wTa={card:"Cartão",alipay:"Alipay",wechatPay:"WeChat Pay"},kTa={title:"Código de resgate",description:"Tem um código de resgate? Insira-o para adicionar o valor ao seu saldo.",placeholder:"Ex.: OHR-XXXXXXXX",redeem:"Resgatar",redeeming:"Resgatandoâ¦",success:"{{amount}} adicionado ao saldo",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"Este código é inválido.",expired:"Este código expirou.",alreadyRedeemed:"Este código já foi resgatado.",perUserLimit:"Você atingiu o limite de resgate deste lote."}},CTa={title:RAa,description:PAa,breakdown:_Aa,referralRewards:jAa,burnRate:NAa,topup:DAa,addCredits:MAa,creating:EAa,availableCredit:IAa,topUp:OAa,poweredByStripe:LAa,amountUsd:UAa,presetAmounts:BAa,redeemCoupon:FAa,couponCode:zAa,redeeming:qAa,redeem:HAa,couponRedeemed:VAa,redirecting:KAa,summaryFailed:GAa,topupFailed:WAa,tabsLabel:YAa,transactions:QAa,creditGrants:XAa,transactionType:ZAa,source:JAa,noTransactions:eTa,noTransactionsDescription:tTa,ledgerEntries:nTa,time:aTa,type:oTa,amount:sTa,balance:rTa,noGrants:iTa,noGrantsDescription:lTa,status:cTa,topupBanner:dTa,compliance:uTa,receipts:mTa,openingPortal:pTa,portalFailed:fTa,recentTopups:gTa,alerts:hTa,history:yTa,lowBalanceWarning:vTa,lowBalanceWarningNoAutoTopup:bTa,ledgerDesc:xTa,earmarked:$Ta,paymentMethod:wTa,redeemCard:kTa},STa="Falha ao carregar o gráfico",ATa="Sem dados",TTa="Ainda não há dados para o gráfico.",RTa={errorTitle:STa,emptyTitle:ATa,empty
819Description:TTa},PTa={copy:"Copiar",regenerate:"Gerar novamente",shareComingSoon:"Compartilhar (em breve)",download:"Baixar",copyLink:"Copiar link",newChat:"Novo chat",deleteChat:"Excluir chat",openConversationList:"Abrir lista de conversas",openSettings:"Configurações do chat",collapseSidebar:"Recolher barra lateral",expandSidebar:"Expandir barra lateral",cancel:"Cancelar",apply:"Aplicar",newChatTooltip:"Criar novo chat",copied:"Copiado"},_Ta={placeholderReady:"Inicie uma nova conversa...",placeholderNoModel:"Escolha um modelo acima primeiro",attachmentTooLarge:"O arquivo excede {{limit}} e não pode ser enviado",attachmentUnsupported:"Tipo de arquivo não suportado. Use PNG, JPEG, WebP, GIF, MP4, WebM ou MOV.",unsupportedVision:"Este modelo não aceita entrada de imagem ou vÃdeo. Troque de modelo antes de soltar arquivos.",send:"Enviar",abort:"Parar",attachImage:"Adicionar imagem",attachMedia:"Adicionar imagem ou vÃdeo",removeAttachment:"Remover",shortcutSend:"enviar",shortcutNewLine:"nova linha",shortcutAbort:"parar",frameFirst:"Primeiro quadro",frameLast:"Ãltimo quadro",frameReference:"Referência",imageMode:"Geração de imagem",videoMode:"Geração de vÃdeo",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"RaciocÃnio",reasoningOff:"Desativado",reasoningAlways:"Sempre ativado",placeholderTopupRequired:"Este modelo é para contas que já recarregaram â recarregue para usá-lo aqui"},jTa={modelUnavailable:"O modelo {{model}} não está disponÃvel no momento. Seu prompt ainda foi salvo.",rateLimited:"Há muitas solicitações simultâneas. Tente novamente em instantes.",accountDisabled:"Esta conta está desativada e não pode continuar usando o chat.",attachmentsUploading:"As imagens ainda estão sendo enviadas. Aguarde um momento antes de enviar.",attachmentsFailed:"Falha ao enviar uma imagem. Remova-a e tente novamente antes de enviar."},NTa={title:"Comece a testar qualquer modelo aqui.",body:"Converse diretamente com qualquer modelo. O uso é cobrado da sua carteira PAYG.",starters:{compareModels:"Compare GPT-5.5 e Claude Opus na mesma tarefa de programação",analyzeImage:"Analise um diagrama de arquitetura e resuma os riscos",draftPrompt:"Crie um system prompt para um agente de suporte",generateImage:"Gere uma imagem hero de produto com um estilo SaaS limpo"}},DTa={untitled:"Chat sem tÃtulo",deleteConfirm:'Excluir "{{title}}"?',emptyTitle:"Ainda não há conversas",emptyBody:"Use + Novo chat acima para começar.",listLabel:"Lista de conversas",groups:{today:"Hoje",yesterday:"Ontem",earlier:"Anteriores"},menu:{rename:"Renomear",delete:"Excluir"},deleteTitle:"Excluir conversa?"},MTa={paygWallet:"Carteira PAYG"},ETa={chooseModel:"Escolher modelo",searchPlaceholder:"Buscar modelos...",emptyTitle:"Nenhum modelo encontrado",emptyBody:"Tente outro termo de busca ou outra aba.",protocols:"{{count}} protocolos",context:"{{value}} ctx",tabs:{all:"Todos",text:"Texto",image:"Imagem",video:"VÃdeo"},maxOut:"saÃda {{value}}",unavailable:"Temporariamente indisponÃvel",requiresTopup:"Recarregue para desbloquear"},ITa={title:"Configurações do chat",protocol:"Protocolo",unlimited:"Ilimitado",fields:{memory_limit:{label:"Memória do chat"},temperature:{label:"Temperatura"},top_p:{label:"Top P"},max_tokens:{label:"Máximo de tokens",placeholder:"128000"},service_tier:{label:"NÃvel de serviço",options:{standard:"Padrão",priority:"Prioritário",flex:"FlexÃvel"}},thinking_budget:{label:"Orçamento de raciocÃnio (tokens)",placeholder:"ex.: 2000"},stop_sequences:{label:"Sequências de parada",placeholder:"Separadas por vÃrgula, ex.: END, STOP",itemLabel:"Parada"},system_prompt:{label:"System Prompt",placeholder:"Insira um system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"ImplÃcito",explicit:"ExplÃcito"}},image_size:{label:"Resolução da imagem"},image_resolution:{label:"Resolução"},image_quality:{label:"Qualidade da imagem",options:{Auto:"Auto",auto:"Auto",low:"Baixa",medium:"Média",high:"Alta"}},video_ratio:{label:"Proporção"},video_resolution:{label:"Resolução do vÃdeo"},video_duration_seconds:{label:"Duração"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"Quantidade de imagens"},image_aspect_ratio:{label:"Proporção"},reasoning_effort:{label:"Intensidade de raciocÃnio",options:{none:"Desativado",minimal:"MÃnima",low:"Baixa",medium:"Média",high:"Alta",xhigh:"Muito alta",max:"Máxima"}},reasoning_pro:{label:"Modo Pro"},reasoning_context:{label:"Contexto de raciocÃnio",options:{auto:"Automático",current_turn:"Interação atual",all_turns:"Todas as interações"}},reasoning_enabled:{label:"RaciocÃnio"},reasoning_always:{label:"RaciocÃnio",value:"Sempre ativado"}}},OTa={estimating:"estimando...",settling:"finalizando...",input:"entrada",output:"saÃda",milliseconds:"ms",realCost:"Custo real",latency:"Latência",logDetail:"Detalhe do log"},LTa={copied:"Link da imagem copiado",expired:"O link da imagem expirou. Copie o link para reabrir ou gere novamente.",attachment:"[imagem anexada]"},UTa={message:"Este chat é cobrado da sua carteira PAYG",balance:"Saldo",billingLink:"Faturamento",dismiss:"Dispensar"},BTa={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},FTa={trigger:"Copiar como código",copied:"Copiado como {{format}}",failed:"Falha ao copiar",failedDescription:"A permissão da área de transferência pode estar bloqueada pelo navegador."},zTa={interrupted:"[Interrompido]",sending:"enviando"},qTa={title:"Processo de raciocÃnio",duration:"Pensou por {{seconds}}s"},HTa={title:"A geração de vÃdeo estará disponÃvel em breve",body:"Este modelo aparece para descoberta, mas o envio de vÃdeo ainda não está habilitado.",switchToText:"Mudar para um modelo de texto"},VTa={imageGenerating:"Gerando imagem",videoGenerating:"Gerando vÃdeo",stage:{queued:"Na fila",routing:"Roteando",generating:"Gerando",storing:"Armazenando",settling:"Liquidando"}},KTa={INSUFFICIENT_CREDITS:"Saldo insuficiente",RATE_LIMITED:"Muitas solicitações",rate_limit_error:"Muitas solicitações",MODEL_NO_VISION:"Este modelo não aceita entrada de imagens",CONTENT_REFUSED:"O modelo recusou esta solicitação",EMPTY_RESPONSE:"O modelo retornou uma resposta vazia",upstream_error:"Erro do serviço upstream",overloaded_error:"O serviço upstream está sobrecarregado",upstream_invalid_json:"Resposta do upstream malformada",stream_read_error:"Fluxo de resposta interrompido",invali
819d_api_key:"Falha de autenticação com o upstream",model_unavailable:"Modelo temporariamente indisponÃvel",no_image:"Nenhuma imagem foi gerada",no_body:"Sem resposta do upstream",http_error:"Falha na solicitação",session_create_failed:"Falha ao criar a sessão"},GTa={title:"Recarregue para desbloquear este modelo",body:"Está disponÃvel para contas que já recarregaram. Qualquer valor libera na hora, e o saldo continua sendo cobrado por uso.",cta:"Recarregar"},WTa={actions:PTa,composer:_Ta,errors:jTa,empty:NTa,sidebar:DTa,header:MTa,modelSelector:ETa,settings:ITa,metrics:OTa,image:LTa,payg:UTa,earmark:BTa,copyAsCode:FTa,status:zTa,thinking:qTa,video:HTa,media:VTa,errorCodes:KTa,topupLock:GTa},YTa="Carregando...",QTa="Conta",XTa="Idioma",ZTa="Entrar",JTa="Sair",eRa="Saindo...",tRa="Salvar alterações",nRa="Salvando...",aRa="Salvo.",oRa="Voltar",sRa="Tentar novamente",rRa="5% de desconto na taxa de serviço ao recarregar.",iRa="Salvar",lRa="Cancelar",cRa="Limpar",dRa="Redefinir",uRa="Copiado",mRa="Falha ao copiar",pRa="Fechar",fRa="Total",gRa={timestamp:"Timestamp",local:"Hora local",relative:"Relativo"},hRa="Copiar",yRa={title:"Abra no seu navegador",description:"Você está vendo isto no <b>navegador interno de um app</b>, onde <b>o login do Google e a verificação humana não funcionam</b>. Abra no navegador do seu sistema para continuar.",hintWechat:"Toque no menu ··· no canto superior direito e escolha âAbrir no navegadorâ.",hintGeneric:"Use o menu no canto superior direito e escolha âAbrir no navegador / Safariâ.",copyLink:"Copiar link",continueAnyway:"Continuar mesmo assim"},vRa="Todos",bRa="Ativo",xRa="Opcional",$Ra="Remover",wRa={loading:YTa,account:QTa,language:XTa,signIn:ZTa,signOut:JTa,signingOut:eRa,saveChanges:tRa,saving:nRa,saved:aRa,back:oRa,retry:sRa,topUpPromo:rRa,save:iRa,cancel:lRa,clearAll:cRa,reset:dRa,copied:uRa,copyFailed:mRa,dismiss:pRa,total:fRa,time:gRa,copy:hRa,inAppBrowser:yRa,all:vRa,active:bRa,optional:xRa,remove:$Ra},kRa="Dashboard",CRa="Monitore créditos, uso e saúde do gateway em um só console.",SRa="Criar API key",ARa={creditBalance:"Saldo de credit",requestsToday:"Requisições hoje",activeApiKeys:"API keys ativas"},TRa={title:"Tendência de uso",description:"Requisições e credit faturado nos últimos 14 dias.",viewUsage:"Ver uso",loading:"Carregando tendência de uso",empty:"Ainda sem uso",emptyDescription:"O uso aparece aqui quando as requisições começarem."},RRa={title:"Atividade de credit",description:"Credit faturado por dia nos últimos 90 dias.",total:"Total de 90 dias",loading:"Carregando atividade",activeDays:"{{count}} dias ativos nos últimos {{days}} dias",less:"Menos",more:"Mais"},PRa={title:"Resumo de uso",description:"Uma visão compacta da intensidade de gasto, volume de tokens e o modelo com mais uso.",activeDays:"Dias ativos",ofDays:"de {{days}} dias",avgDailyCredit:"Credit médio diário",nonZeroDays:"em dias ativos",peakDay:"Dia de pico",noPeak:"Ainda sem uso",tokens:"Tokens",topModel:"Modelo principal",creditShare:"Participação no credit faturado"},_Ra={title:"Saúde rápida",requests7d:"Requisições em 7 dias",creditToday:"Credit gasto hoje",credit7d:"Credit gasto em 7 dias"},jRa={title:"Requisições recentes",description:"Ãltimas chamadas do gateway nas suas keys.",viewRecords:"Ver registros",table:{label:"Requisições recentes",model:"Modelo",status:"Status",tokens:"Tokens",credit:"Credit",time:"Hora",apiKey:"API key"},empty:"Ainda sem requisições",emptyDescription:"Crie uma API key, envie uma requisição e as chamadas recentes aparecerão aqui."},NRa={title:"Faça sua primeira requisição",description:"CompatÃvel com OpenAI. Crie uma key, configure {{env}} e chame o gateway."},DRa={credit:"Credit",requests:"Requisições"},MRa={title:kRa,description:CRa,createApiKey:SRa,cards:ARa,usageTrend:TRa,activity:RRa,usageMix:PRa,quickHealth:_Ra,recent:jRa,firstRequest:NRa,tooltip:DRa},ERa="Selecionar todas as linhas",IRa="Selecionar linha {{row}}",ORa="Falha ao carregar",LRa="Sem dados",URa="Não há registros para mostrar.",BRa="Mais detalhes",FRa="Mais {{count}} detalhes",zRa="Abrir detalhes",qRa={selectAllRows:ERa,selectRow:IRa,errorTitle:ORa,emptyTitle:LRa,emptyDescription:URa,moreDetails:BRa,moreDetailsWithCount:FR
819a,openRow:zRa},HRa="Ãltima hora",VRa="Hoje",KRa="Ontem",GRa="Ãltimos 7 dias",WRa="Ãltimos 30 dias",YRa="Este mês",QRa="Por mês",XRa="Personalizado",ZRa="Todo o perÃodo",JRa="Selecionar data",ePa="Cancelar",tPa="Aplicar",nPa="A data inicial deve ser anterior à data final.",aPa="Predefinições de intervalo",oPa="Mês anterior",sPa="Próximo mês",rPa={last1h:HRa,today:VRa,yesterday:KRa,last7d:GRa,last30d:WRa,thisMonth:YRa,byMonth:QRa,custom:XRa,all:ZRa,selectDate:JRa,cancel:ePa,apply:tPa,reversedError:nPa,presetsAriaLabel:aPa,previousMonth:oPa,nextMonth:sPa},iPa="Conta indisponÃvel",lPa="A conta está inicializando",cPa={title:"Conta suspensa",description:"Esta conta ainda pode entrar, mas o acesso ao console e as requisições gateway estão pausados.",detail:"Se isso parecer inesperado, fale com support usando o email desta conta."},dPa={accountUnavailable:iPa,accountInitializing:lPa,accountRestricted:cPa},uPa="Tokens grátis",mPa="Cota diária de tokens grátis para modelos selecionados â ela se renova automaticamente. Nada é cobrado da sua carteira.",pPa="Não foi possÃvel carregar sua cota de tokens grátis.",fPa="Todos os modelos",gPa="A campanha termina em {{date}}",hPa={daily:"Diária",weekly:"Semanal"},yPa={daily:"Renova diariamente",weekly:"Renova semanalmente",localTime:"seu horário local {{time}}",countdown:"próxima renovação em {{duration}}",refreshingSoon:"renovando em breve"},vPa={title:"Nenhuma campanha de tokens grátis ativa",description:"Quando uma campanha de tokens grátis estiver em andamento, sua cota diária aparecerá aqui."},bPa={title:"A concessão de tokens grátis está pausada na sua conta",body:"Esta conta parece fazer parte de um padrão de cadastro em massa, então as concessões gratuitas estão pausadas por enquanto. Se isso for um engano, fale conosco em"},xPa="tokens",$Pa="Restam {{value}} tokens hoje",wPa={label:"Avisar por e-mail ao esgotar",hint:"Receba um e-mail quando seus tokens grátis do dia acabarem."},kPa={crg_freetoken_daily_cn5:"Modelos chineses · tokens grátis diários"},CPa={title:uPa,description:mPa,loadFailed:pPa,allModels:fPa,campaignEnds:gPa,cadence:hPa,refresh:yPa,empty:vPa,paused:bPa,tokensUnit:xPa,remainingToday:$Pa,emailToggle:wPa,campaigns:kPa},SPa="Logs",APa="Inspecione custo, latência, tokens, status e sinais de routing por requisição.",TPa={copiedCurl:"curl copiado",copiedId:"ID da requisição copiado",copyCurl:"Copiar como curl",copyFailed:"Falha ao copiar",copyId:"Copiar ID da requisição",menu:"Ações da linha",openTab:"Abrir em nova aba"},RPa={prompt:"Prompt",ratio:"Taxa de acerto",read:"Leitura de cache",title:"Taxa de acerto de cache"},PPa={confirm:"Cancelar tarefa",failed:"Falha ao cancelar tarefa",keep:"Manter",message:"Esta tarefa ainda está na fila. Ao cancelar, ela não será processada e nenhuma cobrança será aplicada.",success:"Tarefa cancelada",title:"Cancelar tarefa?",pending:"Cancelando..."},_Pa={cacheHit:"Acerto de cache",cost:"Custo",ip:"IP",latency:"Latência",model:"Modelo",source:"Origem",status:"Status",stream:"Streaming",time:"Hora",tokens:"Tokens",tps:"Throughput"},jPa={trigger:"Configurações de colunas"},NPa={body:"Faça uma requisição pela OneHop e ela aparecerá aqui.",title:"Sem logs neste intervalo"},DPa={all:"Tudo",apiKey:"API key",cost:"Custo (USD)",desktopDateRangeAria:"Selecionar intervalo de datas no desktop",finishReason:"Motivo de término",latency:"Latência (s)",max:"Máx.",min:"MÃn.",mobileDateRangeAria:"Selecionar intervalo de datas no celular",model:"Modelo",modelsSelected:"{{count}} selecionados",more:"Mais filtros",refresh:"Atualizar",request:"Buscar por ID da requisição",requestIdLabel:"ID da requisição",status:"Status",stream:"Streaming",time:"Hora",type:"Tipo",mobileTitle:"Filtros"},MPa={requests:"registros nesta página",times:"horários exibidos em"},EPa={rowsPer:"Linhas"},IPa={all:"Todo o perÃodo",custom:"Personalizado",last1h:"Ãltima 1 hora",last30d:"Ãltimos 30 dias",last7d:"Ãltimos 7 dias",thisMonth:"Este mês",today:"Hoje",yesterday:"Ontem"},OPa={title:"Cliente",unknown:"Nenhum user-agent informado",unknownShort:"Desconhecido"},LPa={output:"Tokens de saÃda",rate:"Taxa",title:"Throughput",window:"Janela de geração"},UPa={title:"Requisição",openDetail:"Abrir detalhes da requisição",copy:"Copiar ID",copied:"Copiado",copyFailed:"Falha ao copiar",close:"Fechar",loading:"Carregandoâ¦",response:"Resposta",sections:{request:"Requisição",routing:"Roteamento",tokens:"Tokens",cost:"Detalhamento de custo",performance:"Desempenho",error:"Erro",outcome:"Resultado",multimodal:"Multimodalidades"},fields:{requestId:"ID da requisição",time:"Hora",apiKey:"API key",userAgent:"User-Agent",billingMode:"Modo de faturamento",onehopModel:"Modelo OneHop",endpoint:"Endpoint",firstToken:"Primeiro token",total:"Duração total",throughput:"Throughput",stream:"Streaming",clientIp:"IP do cliente",finishReason:"Motivo de término",mediaType:"Tipo de mÃdia",imageCount:"Imagens",imageSize:"Tamanho",errorCode:"Código",errorMessage:"Mensagem",requestedModel:"Modelo solicitado"},billingMode:{token:"Por token",per_request:"Por requisição",image:"Por imagem"},timeline:{heading:"Ciclo de vida",received:"Solicitação recebida",routed:"Roteada",failed:"Falhou",generated:"Gerada",metered:"Medida",billed:"Faturada"},downloadMedia:"Baixar"},BPa={success:"sucesso",completed:"concluÃdo",failed:"falhou",pending:"pendente",repairing:"reparando",queued:"na fila",running:"em execução",cancelled:"cancelado",expired:"expirado"},FPa={chat:"Chat",image:"Imagem",video:"VÃdeo"},zPa={stop:"Stop",length:"Limite de tamanho",tool_calls:"Chamadas de ferramenta",content_filter:"Filtro de conteúdo",error:"Erro"},qPa={true:"Streaming",false:"Sem streaming"},HPa={title:"Detalhamento do custo"},VPa={title:"Detalhamento de tokens",prompt:"Entrada",completion:"SaÃda",imageOutput:"Tokens de saÃda de imagem",cacheRead:"Leitura de cache",cacheWrite:"Escrita de cache",cacheWrite5m:"Escrita de cache 5m",cacheWrite1h:"Escrita de cache 1h",total:"Total"},KPa={timestamp:"Timestamp",local:"Hora local",relative:"Relativo"},GPa={inputCost:"Custo de entrada",outputCost:"Custo de saÃda",cacheReadCost:"Custo de leitura de cache",cacheWriteCost:"Custo de escrita de cache",inputPrice:"Preço de entrada",outputPrice:"Preço de saÃda",total:"Total",officialPrice
819:"Preço oficial",saved:"Economia",factor:{textInput:"Entrada de texto",textOutput:"SaÃda de texto",imageInput:"Entrada de imagem",imageOutput:"SaÃda de imagem",perCallImage:"Por imagem",videoPerSecond:"VÃdeo",videoPerCall:"VÃdeo",cacheRead:"Leitura de cache",cacheWrite:"Escrita de cache",cacheWrite5m:"Escrita de cache (5m)",cacheWrite1h:"Escrita de cache (1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ imagem",perSecond:"/ s",perCall:"/ chamada"},promoBasis:"Antes da promoção",promoSaved:"Economia da promoção",freeCovered:"Cota gratuita ({{tokens}} tokens)",freeCoveredNoCount:"Cota gratuita"},WPa={noPreview:"Prévia indisponÃvel",video:"VÃdeo"},YPa={free:"Grátis"},QPa={title:SPa,description:APa,actions:TPa,cacheHit:RPa,cancelJob:PPa,col:_Pa,columns:jPa,empty:NPa,filter:DPa,meta:MPa,pager:EPa,range:IPa,source:OPa,tps:LPa,drawer:UPa,status:BPa,type:FPa,finishReason:zPa,stream:qPa,costBreakdown:HPa,tokensBreakdown:VPa,time:KPa,userCost:GPa,export:{label:"Exportar CSV",exporting:"Exportandoâ¦",done:"{{n}} linhas exportadas.",truncated:"Foram exportadas as primeiras {{n}} linhas. Reduza o intervalo de datas para exportar o restante.",failed:"Falha na exportação. Tente novamente."},media:WPa,cost:YPa},XPa="Modelos",ZPa="Veja todos os modelos disponÃveis, janela de contexto, preço de entrada/saÃda e recursos, e favorite os que você mais usa.",JPa={all:"Todos",favorites:"Meus favoritos",benefit:"BenefÃcio",hot:"Popular",free:"Free"},e_a={capability:"Tipo",allCapabilities:"Todos os tipos",capability_text:"Texto",capability_image:"Imagem",capability_audio:"Ãudio",capability_video:"VÃdeo",provider:"Provedor",allProviders:"Todos os provedores",protocol:"Protocolo",allProtocols:"Todos os protocolos",sort:"Ordenar",search:"Buscar",searchPlaceholder:"Modelo / provedor",allContexts:"Qualquer tamanho",context:"Contexto",mobileTitle:"Filtros"},t_a="Em destaque",n_a="Mais recentes",a_a="Mais usados na semana",o_a="Nome (A-Z)",s_a="Preço (menor para maior)",r_a="Preço (maior para menor)",i_a="Tamanho do contexto",l_a="Latência",c_a="Throughput",d_a="OpenAI Chat",u_a="OpenAI Responses",m_a="Anthropic",p_a="Vertex AI",f_a="OpenAI Images",g_a="OpenAI Video",h_a={label:"Modelos",model:"Modelo",provider:"Provedor",capabilities:"Recursos",context:"Contexto",price:"Preço",discount:"Desconto",action:"Ação",tryIt:"Testar",type:"Tipo",maxOutput:"SaÃda máxima",copyId:"Copiar ID do modelo",copied:"Copiado",usage:"Uso",stability:"Estabilidade",protocols:"Protocolos",openDetail:"Open model detail"},y_a="Popular",v_a="BenefÃcio",b_a={add:"Adicionar favorito",remove:"Remover favorito"},x_a={favorites:"Ainda não há favoritos",noMatch:"Nenhum modelo encontrado"},$_a="Texto",w_a="Imagem",k_a="Arquivo",C_a="VÃdeo",S_a="Ãudio",A_a="Embeddings",T_a="Vision",R_a="Chamada de ferramentas",P_a="Modo JSON",__a="Geração de imagem",j_a="Edição de imagem",N_a="Texto",D_a="Imagem",M_a="VÃdeo",E_a="Ãudio",I_a="Embedding",O_a="Oficial",L_a="Kiro",U_a="a partir de",B_a="/ chamada",F_a="/ s",z_a="/ 1M",q_a="Rápido",H_a="Free",V_a="Coming Soon",K_a="Free",G_a={ariaLabel:"Moeda dos preços",usd:"USD",rmb:"yuan (Â¥)",settlement:"Preços exibidos em yuans a uma taxa fixa de {{rate}}, apenas para referência; sua carteira é sempre cobrada em USD conforme o uso real."},W_a="Requer recarga",Y_a={title:XPa,description:ZPa,tabs:JPa,filters:e_a,sort_featured:t_a,sort_newest:n_a,sort_top_weekly:a_a,sort_name:o_a,sort_price_asc:s_a,sort_price_desc:r_a,sort_context:i_a,sort_latency:l_a,sort_throughput:c_a,protocol_openai_chat:d_a,protocol_openai_responses:u_a,protocol_anthropic_messages:m_a,protocol_google_vertex_ai:p_a,protocol_openai_images:f_a,protocol_openai_sora:g_a,table:h_a,badge_hot:y_a,badge_benefit:v_a,favorite:b_a,empty:x_a,modality_text:$_a,modality_image:w_a,modality_file:k_a,modality_video:C_a,modality_audio:S_a,modality_embeddings:A_a,capability_vision:T_a,capability_tool_calling:R_a,capability_json_mode:P_a,capability_image_generation:__a,capability_image_edit:j_a,type_text:N_a,type_image:D_a,type_video:M_a,type_audio:E_a,type_embedding:I_a,provider_official:O_a,provider_kiro:L_a,price_from:U_a,price_perCall:B_a,price_perSec:F_a,price_per1m:z_a,price_fast:q_a,badge_free:H_a,badge_unavailable:V_a,price_free:K_a,currency:G_a,badge_requiresTopup:W_a},Q_a={main:"Navegação principal",utility:"Navegação utilitária",console:"Navegação do console",openNavigation:"Abrir navegação",collapse:"Recolher barra lateral",expand:"Expandir barra lateral"},X_a={platform:"Console",chat:"Chat",models:"Modelos",logs:"Logs",jobs:"Tarefas",apiKeys:"API keys",usage:"Uso",billing:"Cobrança",freeTokens:"Tokens grátis",referrals:"Indicações",settings:"Configurações",admin:"Admin",balance:"Saldo",helpSupport:"Ajuda e suporte",announcements:"Anúncios",announcementsTitle:"Anúncios",announcementsEmpty:"Ainda não há anúncios. Volte em breve.",announcementsTicketUnread:"{{count}}
819 ticket(s) com novas respostas",support:"Suporte",tasks:"Tarefas",tagNew:"NOVO"},Z_a={staff:"Equipe"},J_a={dashboard:"Painel",users:"Usuários",billing:"Cobrança da plataforma",usage:"Uso da plataforma",rateLimits:"Limites de taxa",access:"Acesso",staff:"Admins",growth:"Crescimento",models:"Modelos",announcements:"Anúncios",upstream:"Upstream",auditLogs:"Logs de auditoria",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},eja={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},tja={aria:Q_a,public:{models:"Modelos",pricing:"Preços",docs:"Documentação",blog:"Blog",changelog:"Histórico de versões"},console:X_a,adminGroups:Z_a,admin:J_a,notifications:eja},nja={back:"Voltar",done:"Concluir",next:"Avançar",stepOf:"{{current}} / {{total}}"},aja={balance:{body:"Recarregue conforme usar. O saldo não consumido pode ser reembolsado a qualquer momento.",title:"Seu saldo"},keys:{body:"Clique aqui para criar uma key e apontar qualquer ferramenta para a OneHop.",title:"Crie sua primeira API key"},models:{body:"Veja em uma página todos os modelos que você pode chamar e quanto cada um custa.",cta:"Abrir modelos",title:"Explore os modelos"}},oja={body:"Um URL para todos os modelos. Em 30 segundos, mostramos três pontos principais.",skip:"Pular",start:"Começar",title:"Boas-vindas à OneHop"},sja={nav:nja,steps:aja,welcome:oja},rja="Failed to load",ija="Nothing here yet.",lja="Mais detalhes",cja={failedLoad:rja,emptyDescription:ija,moreDetails:lja},dja="Todos",uja="Sucesso",mja="Pendente",pja="Reparando",fja="Falhou",gja="Reembolsado",hja="Ativo",yja="Desativado",vja="Esgotado",bja="Reservado",xja="Resgatado",$ja="Suspenso",wja="ExcluÃdo",kja="Normal",Cja="Em observação",Sja="Bloqueado",Aja="Concedido",Tja="Revertido",Rja="Expirado",Pja="Negado",_ja="Rascunho",jja="Publicado",Nja="Obsoleto",Dja="Arquivado",Mja="Oculto",Eja="Criado",Ija="Checkout aberto",Oja="Pago",Lja="Cancelado",Uja="OpenAI Chat",Bja="OpenAI Responses",Fja="Anthropic Messages",zja="Google Vertex AI",qja="OpenAI Images",Hja="Cobrança por uso",Vja="Bônus de cadastro",Kja="Bônus promocional",Gja="Bônus de indicação",Wja="Bônus de compensação",Yja="Bônus de recarga",Qja="Ajuste manual",Xja="Compra de credit",Zja="Pagamento",Jja="Bônus de cadastro",e2a="Cupom",t2a="Crédito de admin",n2a="Uso de API",a2a="Bônus de cadastro",o2a="Crédito manual",s2a="SÃncrono",r2a="Streaming",i2a="Cobrança por token",l2a="Cobrança por requisição",c2a="Cobrança de imagem",d2a="Reasoning baixo",u2a="Reasoning médio",m2a="Reasoning alto",p2a="Não aplicável",f2a="Desconhecido",g2a="Congelado",h2a="Liberado",y2a="Cancelado",v2a="Parcialmente revertido",b2a="Ignorado",x2a={all:dja,success:uja,pending:mja,repairing:pja,failed:fja,refunded:gja,active:hja,disabled:yja,exhausted:vja,reserved:bja,redeemed:xja,suspended:$ja,deleted:wja,normal:kja,watchlisted:Cja,blocked:Sja,granted:Aja,reversed:Tja,expired:Rja,denied:Pja,draft:_ja,published:jja,deprecated:Nja,archived:Dja,public:"Público",hidden:Mja,created:Eja,checkout_opened:Ija,paid:Oja,canceled:Lja,openai_chat:Uja,openai_responses:Bja,anthropic_messages:Fja,google_vertex_ai:zja,openai_images:qja,usage_charge:Hja,bonus_signup_grant:Vja,bonus_promo_grant:Kja,bonus_referral_grant:Gja,bonus_compensation_grant:Wja,bonus_topup_grant:Yja,manual_adjustment:Qja,credit_purchase:Xja,payment:Zja,signup:Jja,coupon:e2a,admin:t2a,api:n2a,signup_bonus:a2a,manual:o2a,sync:s2a,stream:r2a,token:i2a,request:l2a,image:c2a,low:d2a,medium:u2a,high:m2a,not_applicable:p2a,unknown:f2a,frozen:g2a,released:h2a,cancelled:y2a,partially_reversed:v2a,skipped:b2a},$2a="{{count}} por página",w2a="Total: {{count}}",k2a={perPage:$2a,total:w2a},C2a="Indique e ganhe",S2a="Compartilhe seu link exclusivo. Quando o usuário indicado adicionar saldo, as recompensas de ambos ficam registradas com clareza.",A2a="Não foi possÃvel carregar os dados de indicação",T2a="Seu link de indicação",R2a="Compartilhar",P2a="Convite copiado. Cole no WeChat para compartilhar.",_2a="Copiar",j2a="Copiado",N2a="WeChat",D2a="X",M2a="Telegram",E2a="Reddit",I2a="LinkedIn",O2a="WhatsApp",L2a="E-mail",U2a="Facebook",B2a={default:{title:"Todos os modelos de AI em uma única API da OneHop",body:"Cadastre-se pelo meu link de convite â faça a primeira recarga em até {{firstWindowDays}} dias e nós dois ganhamos {{percent}}% de volta."},x:{title:"Uma API para todos os modelos de AI ð¤",body:"Recarregue em até {{firstWindowDays}} dias com meu link e cada um ganha {{percent}}% de volta. ð"},telegram:{title:"Crie com todos os modelos de AI pela OneHop",body:"Use meu link de convite â a primeira recarga em até {{firstWindowDays}} dias rende {{percent}}% em crédito de indicação para nós dois."},whatsapp:{title:"Crie com todos os modelos de AI â OneHop",body:"Entre pelo meu link de convite. Recarregue em até {{firstWindowDays}} dias e nós dois ganhamos {{percent}}% de volta."},reddit:{title:"OneHop â uma API para todos os modelos de AI. Meu convite dá {{percent}}% de volta para nós dois na sua primeira recarga",body:"Recarregue em até {{firstWindowDays}} dias e nós dois ganhamos {{percent}}% em crédito de indicação."},email:{title:"Um convite para a OneHop â todos os modelos de AI em uma única API",body:`Olá, 820 821Estou usando a OneHop para chamar todos os principais modelos de AI por uma única API. Cadastre-se pelo meu link de convite e, depois da sua primeira recarga, nós dois ganhamos crédito de indicação. 822 823Faixas de recompensa: {{tiers}}. 824 825Obrigado!`},wechat:{title:"OneHop â todos os modelos de AI em uma única API",body:"Cadastre-se pelo meu link de convite. Recarregue em até {{firstWindowDays}} dias e nós dois ganhamos {{percent}}% em crédito de indicação."}},F2a="A recompensa fica visÃvel assim que o pagamento é feito, mas primeiro é congelada para cobrir a janela de reembolso e, ao expirar, é liberada como credit de bônus de indicação OneHop.",z2a="Liberada em {{days}} dias.",q2a={referrer:"Indicante",referee:"Indicado"},H2a={referrer:": ganhe credit de indicação quando alguém que você convida faz uma recarga â {{tiers}}.",referee:": cadastre-se pelo link e faça uma recarga para ganhar também â {{tiers}}."},V2a={dayRange:"dias {{fromDay}}-{{untilDay}
825}",dayOpenEnded:"a partir do dia {{fromDay}}"},K2a="Total ganho",G2a="Recompensa de indicação liberada",W2a="Recompensa de indicação congelada",Y2a="Pessoas indicadas",Q2a="Indicações válidas",X2a="Bônus de indicado liberado",Z2a="Bônus de indicado congelado",J2a="Cancelado / estornado",eNa="Pessoas que você indicou",tNa="Detalhamento das recompensas",nNa={user:"Usuário",joined:"Data de cadastro",topups:"Recargas",earned:"Você ganhou",frozen:"Congelado",date:"Data",event:"Evento",topupAmount:"Recarga do indicado",rate:"Percentual",releaseAt:"Data de liberação",cashback:"Recompensa",status:"Status"},aNa={title:"Nenhuma indicação ainda",description:"Compartilhe seu link para começar a ganhar recompensas."},oNa={inviteeSignedUp:"Indicado cadastrado com sucesso",youSignedUp:"Você se cadastrou por indicação",inviteePaid:"Indicado realizou consumo",youPaid:"Você, como indicado, realizou consumo"},sNa={frozen:"Congelada",released:"Liberada",cancelled:"Cancelada",partially_reversed:"Parcialmente estornada",reversed:"Estornada",failed:"Falhou",skipped:"Ignorada"},rNa={title:C2a,description:S2a,error:A2a,yourLink:T2a,shareVia:R2a,wechatCopied:P2a,copy:_2a,copied:j2a,wechat:N2a,x:D2a,telegram:M2a,reddit:E2a,linkedin:I2a,whatsapp:O2a,email:L2a,facebook:U2a,share:B2a,offer:F2a,releaseDelay:z2a,role:q2a,roleOffer:H2a,policy:V2a,totalEarned:K2a,availableEarned:G2a,frozenEarned:W2a,invited:Y2a,active:Q2a,availableReceived:X2a,frozenReceived:Z2a,cancelledReversed:J2a,peopleYouInvited:eNa,history:tNa,col:nNa,empty:aNa,event:oNa,status:sNa},iNa="Configurações",lNa="Gerencie preferências da conta e padrões do console.",cNa="Conectado como {{email}}",dNa="Nome de exibição",uNa="Idioma",mNa="Fuso horário",pNa="Falha ao carregar o perfil",fNa="Falha ao salvar",gNa="Descartar alterações?",hNa="Você tem alterações não salvas. Sair agora vai descartá-las.",yNa="Descartar",vNa="Continuar editando",bNa={title:iNa,description:lNa,signedInAs:cNa,displayName:dNa,locale:uNa,timezone:mNa,failedLoad:pNa,failedSave:fNa,discardTitle:gNa,discardMessage:hNa,discardConfirm:yNa,keepEditing:vNa},xNa="Mural de tarefas",$Na="Compartilhe o OneHop com seu público e ganhe crédito de teste. Revisamos cada envio manualmente.",wNa="Link da sua publicação",kNa="https://â¦",CNa="Enviar",SNa="Enviado â vamos revisar em breve.",ANa="Links aceitos: {{hosts}}",TNa="Recusado antes: {{reason}}. Corrija e envie de novo.",RNa={pending:"Em análise",approved:"Creditado",rejected:"Recusado",active:"Ativo"},PNa={title:"Nenhuma tarefa no momento",description:"Volte em breve â fazemos essas campanhas periodicamente."},_Na={x_quote:{title:"Cite a gente no X",description:"Cite o post fixado do @OneHopAI e acrescente sua própria opinião.",rules:["Sua conta no X precisa ter pelo menos 6 meses e 10 seguidores ou mais.","Envie o link do seu próprio post de citação, não o do original.","O crédito cai em até 2 horas após a aprovação."]},youtube_tutorial:{title:"Publique um tutorial no YouTube",description:"Um vÃdeo de 6 minutos ou mais mostrando como você conectou o OneHop ao seu próprio agente.",rules:["Envie o link do vÃdeo depois de publicá-lo.","Seu canal do YouTube precisa de 50 inscritos ou mais.","Uma vez por conta.","O crédito cai em até 2 horas após a aprovação."]},short_video:{title:"Poste um vÃdeo curto",description:"Um short de 40 segundos ou mais no TikTok ou YouTube mencionando sua configuração do OneHop.",rules:["Envie o link do vÃdeo depois de publicá-lo.","O crédito cai em até 2 horas após a aprovação."]},github_readme:{title:"Coloque o OneHop no seu README do GitHub",description:"Adicione um crédito ao OneHop no README de um repositório seu. Cada recarga posterior rende 15% a mais.",rules:["Envie o link do repositório assim que o README estiver publicado.","à permanente, não pontual: cada recarga posterior aplica o maior valor entre o bônus padrão e os seus 15%.","O texto para copiar está abaixo."]}},jNa={load:"Não foi possÃvel carregar o mural de tarefas",generic:"Não foi possÃvel enviar",urlRequired:"Cole primeiro o link da sua publicação.",urlTooLong:"Esse link é muito longo.",urlMalformed:"Isso não parece um link válido.",hostNotAllowed:"Esta tarefa aceita apenas links das plataformas listadas acima.",notAPost:"Aponte para a publicação ou o vÃdeo especÃfico, não para um perfil ou página inicial.",alreadySubmitted:"Você já enviou esta tarefa.",notAvailable:"Esta tarefa não está disponÃvel no momento.",busy:"Atingimos a capacidade de revisão de hoje. Tente novamente amanhã.",emailUnverified:"Verifique seu e-mail primeiro.",accountTooNew:"Sua conta ainda não tem tempo suficiente para isso.",riskFlagged:"Esta conta não pode participar agora. Fale com o suporte se achar que é um engano.",accountInactive:"Esta conta não está ativa.",deviceAlreadyClaimed:"Outra conta neste dispositivo já participou."},NNa="Obrigado ao [OneHop]({{url}}) por patrocinar este projeto! O OneHop te dá uma única chave de API compatÃvel com OpenAI para centenas de modelos de ponta â GPT, Claude, Gemini, DeepSeek, Kimi e Qwen. Sem malabarismo com contas de vários provedores, sem mudar código para trocar de modelo, e você paga só pelo que usar. â {{domain}}",DNa="Copiar este texto",MNa={title:xNa,description:$Na,urlLabel:wNa,urlPlaceholder:kNa,submit:CNa,submitted:SNa,allowedHosts:ANa,rejectedHint:TNa,status:RNa,empty:PNa,item:_Na,error:jNa,sponsorBlurb:NNa,copyBlurb:DNa},ENa="Fale conosco no chat",INa="Chamados de suporte",ONa="Abra um chamado e nossa equipe responderá o quanto antes.",LNa="Novo chamado",UNa={subject:"Assunto",category:"Tipo",status:"Situação",updated:"Atualizado",user:"User"},BNa={billing:"Faturamento",technical:"Técnico",account:"Conta",other:"Outro"},FNa={open:"Aberto",pending:"Pendente",resolved:"Resolvido",closed:"Fechado"},zNa={allStatuses:"Todos os status",allCategories:"All categories",search:"Search email or subject"}
825,qNa={subject:"Assunto",subjectPlaceholder:"Descreva o problema em poucas palavras",category:"Tipo",message:"Mensagem",messagePlaceholder:"Conte o que está acontecendoâ¦",attachments:"Anexos",addAttachment:"Adicionar arquivo",submit:"Enviar chamado",cancel:"Cancelar"},HNa={you:"Você",support:"Suporte",system:"Sistema",replyPlaceholder:"Escreva uma respostaâ¦",send:"Enviar",closedNotice:"Este chamado está fechado. Abra um novo chamado se ainda precisar de ajuda.",sendHint:"Pressione â/Ctrl + Enter para enviar",back:"Voltar aos chamados",systemStatus:{open:"Chamado reaberto",pending:"Chamado marcado como aguardando sua resposta",resolved:"Chamado marcado como resolvido",closed:"Chamado fechado"}},VNa={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},KNa="Carregar mais",GNa={created:"Chamado enviado",replied:"Resposta enviada",statusUpdated:"Status updated",error:"Algo deu errado. Tente novamente"},WNa="O chamado não foi encontrado ou foi removido.",YNa={title:"Ainda não há chamados",body:"Encontrou um problema? Abra um chamado e vamos ajudar.",cta:"Abrir seu primeiro chamado"},QNa={liveChat:ENa,title:INa,subtitle:ONa,newTicket:LNa,columns:UNa,category:BNa,status:FNa,filters:zNa,form:qNa,thread:HNa,admin:VNa,loadMore:KNa,toast:GNa,notFound:WNa,empty:YNa},XNa="Uso",ZNa="Saldo, ritmo de consumo e para onde vai seu gasto.",JNa="Atividade",eDa="Sem atividade neste intervalo",tDa="Detalhamento de uso",nDa="Por API key",aDa="Por modelo",oDa="Por tipo de token",sDa="Sem dados",rDa="Ainda não há uso neste intervalo.",iDa="No ritmo atual, o saldo deve durar {{days}} dias (cerca de {{rate}}/dia).",lDa="saÃda",cDa="cache",dDa={tokens:"Tokens",requests:"Requisições",cost:"Custo"},uDa="Outros",mDa="req.",pDa="tok",fDa="Atualizandoâ¦",gDa="Sem dados",hDa="Faça uma requisição para começar a acumular dados.",yDa="Principais API keys",vDa="Recarregar",bDa={title:"Não foi possÃvel carregar o uso"},xDa={firstToken:"primeiro token",latency:"Latência média",requests:"Requisições",spend:"Consumo",spendSub:"faturado neste perÃodo",successRate:"{{rate}}% sucesso",tokens:"Tokens",textDuration:"texto",mediaDuration:"imagem/vÃdeo",cacheHit:"{{rate}}% em cache",projected:"â {{amount}}/mês",vsPrevious:"vs perÃodo anterior"},$Da={activeDays:"Dias ativos",longestStreak:"Maior sequência",daysValue:"{{n}} dias",totalSpend:"Total no perÃodo",peakDay:"Dia mais ativo"},wDa={all:"Todo o perÃodo",custom:"Personalizado",last1h:"Ãltima 1 hora",last30d:"Ãltimos 30 dias",last7d:"Ãltimos 7 dias",thisMonth:"Este mês",today:"Hoje",yesterday:"Ontem",byMonth:"Por mês"},kDa={failed:"Falhas",success:"Sucesso"},CDa={cacheRead:"Leitura de cache",cacheWrite:"Escrita de cache",cacheWrite1h:"Escrita de cache 1h",cacheWrite5m:"Escrita de cache 5m",completion:"SaÃda",prompt:"Entrada"},SDa={body:"Faça uma requisição pelo terminal ou abra o playground; o uso aparece aqui em segundos.",openPlayground:"Abrir playground",title:"Seu key está pronto"},ADa={body:"Crie seu primeiro API key, roteie todas as requisições por uma única URL e o uso aparecerá aqui.",createKey:"Criar API key",title:"Boas-vindas ao OneHop",tryPlayground:"Testar playground"},TDa="Atualizar",RDa="{{count}} requisições bem-sucedidas no filtro atual",PDa="Tokens totais",_Da="Entrada {{input}} / saÃda {{output}}",jDa="credit faturado",NDa="{{cost}} custo upstream real",DDa="Latência média",MDa="Primeiro token {{duration}}",EDa="Atividade de 30 dias",IDa="Requisições bem-sucedidas, volume de tokens e credit faturado.",ODa="Carregando tendência de uso",LDa="Sem tendência de uso",UDa="A tendência de uso aparece depois de requisições bem-sucedidas.",BDa="Principais modelos",FDa="credit faturado por modelo nos últimos 30 dias.",zDa="Ainda sem uso por modelo",qDa="O detalhamento por modelo aparece depois de requisições bem-sucedidas.",HDa="Modelo",VDa="Todos os modelos",KDa="Status",GDa="Protocolo",WDa="Linhas",YDa="Redefinir",QDa="Registros de uso",XDa="API key",ZDa="Endpoint",JDa="Tipo",eMa="Tokens",tMa="Custo",nMa="Duração",aMa="Hora",oMa="User-Agent",sMa="Detalhes",rMa="Detalhes da requisição",iMa="Detalhes do registro de uso e metadata de faturamento.",lMa="ID da requisição",cMa="Operação",dMa="Tokens de entrada",uMa="Tokens de saÃda",mMa="Tokens de leitura de cache",pMa="Tokens de escrita de cache",fMa="Custo de entrada",gMa="Custo de saÃda",hMa="Custo de leitura de cache",yMa="Custo de escrita de cache",vMa="Código de erro",bMa="Mensagem de erro",xMa="Não encontrado.",$Ma="credit",wMa="Total {{count}}",kMa="Carregando registros de uso",CMa="Sem registros de uso",SMa="Tente outro conjunto de filtros.",AMa="Os registros aparecem quando as requisições passarem pelas suas API keys.",TMa="Página {{page}} · mostrando {{shown}} de {{total}} registros correspondentes",RMa="Anterior",PMa="Próxima",_Ma="Credit",jMa="Tokens",NMa="Requisições",DMa={time:"Hora",apiKey:"API Key",model:"Modelo",reasoningEffort:"Esforço de raciocÃnio",endpoint:"Endpoint",type:"Tipo",billingMode:"Modo de faturamento",inputTokens:"Tokens de entrada",outputTokens:"Tokens de saÃda",cacheReadTokens:"Tokens de leitura de cache",cacheWriteTokens:"Tokens de escrita de cache",totalTokens:"Tokens totais",billedCredit:"Credit faturado",firstTokenMs:"Primeiro token ms",durationMs:"Duração ms",status:"Status",userAgent:"User-Agent"},MMa={mon:"Seg",wed:"Qua",fri:"Sex"},EMa="Menos",IMa="Mais",OMa={title:XNa,description:ZNa,activity:JNa,activityEmpty:eDa,breakdown:tDa,byApiKey:nDa,byModel:aDa,byTokenType:oDa,chartEmpty:sDa,chartEmptyHint:rDa,burnRate:iDa,in:"entrada",out:lDa,cache:cDa,metric:dDa,other:uDa,req:mDa,tok:pDa,refreshing:fDa,topEmpty:gDa,topEmptyHint:hDa,topKeys:yDa,topUp:vDa,error:bDa,kpi:xDa,stat:$Da,range:wDa,requests:kDa,tokenType:CDa,noRequests:SDa,welcome:ADa,refresh:TDa,successfulFilter:RDa,totalTokens:PDa,inOut:_Da,billedCredit:jDa,upstreamA
825ctualCost:NDa,avgLatency:DDa,firstToken:MDa,activityTitle:EDa,activityDescription:IDa,loadingTrend:ODa,noUsageTrend:LDa,trendDescription:UDa,topModels:BDa,topModelsDescription:FDa,noModelUsage:zDa,noModelUsageDescription:qDa,model:HDa,allModels:VDa,status:KDa,protocol:GDa,rows:WDa,reset:YDa,tableLabel:QDa,apiKey:XDa,endpoint:ZDa,type:JDa,tokens:eMa,cost:tMa,duration:nMa,time:aMa,userAgent:oMa,details:sMa,requestDetail:rMa,detailDescription:iMa,requestId:lMa,operation:cMa,inputTokens:dMa,outputTokens:uMa,cacheReadTokens:mMa,cacheWriteTokens:pMa,inputCost:fMa,outputCost:gMa,cacheReadCost:hMa,cacheWriteCost:yMa,errorCode:vMa,errorMessage:bMa,notFound:xMa,creditSuffix:$Ma,total:wMa,loadingRecords:kMa,noRecords:CMa,differentFilters:SMa,recordsEmpty:AMa,pageSummary:TMa,previous:RMa,next:PMa,chartCredit:_Ma,chartTokens:jMa,chartRequests:NMa,csv:DMa,weekday:MMa,activityLess:EMa,activityMore:IMa},LMa="Signup access",UMa="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",BMa="Signup access allowlist",FMa="No allowlist entries",zMa="Email / domain",qMa="Note",HMa="Status",VMa="Registration",KMa="Expires",GMa="Invites",WMa="Updated",YMa="Action",QMa="Add",XMa="Bulk add",ZMa="Edit",JMa="Save",eEa="Invite",tEa="Restore",nEa="Remove",aEa="Add signup access",oEa="Edit {{email}}",sEa="Bulk add signup access",rEa="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",iEa="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",lEa="Email or domain",cEa="[email protected] or @company.com",dEa="Use @company.com to approve an entire domain.",uEa="Note (optional)",mEa="e.g. founding team",pEa="Expiry (optional)",fEa="Leave empty for no expiry. Expired entries no longer allow new signups.",gEa="Emails / domains",hEa=`[email protected] 826[email protected] 827@partner.com`,yEa="Search",vEa="Search email or domain",bEa="Status",xEa="Access check",$Ea="[email protected]",wEa="Check",kEa="Allowed",CEa="Denied",SEa={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},AEa="Registered",TEa="Not registered",REa="Admin",PEa="Domain rule",_Ea="Never",jEa="Added to signup access.",NEa="Signup access updated.",DEa="Added {{count}} entries.",MEa="Invite sent.",EEa="Entry restored.",IEa="Removed from signup access.",OEa="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",LEa={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},UEa={title:LMa,description:UMa,label:BMa,empty:FMa,email:zMa,note:qMa,status:HMa,registration:VMa,expiresAt:KMa,invites:GMa,updatedAt:WMa,action:YMa,add:QMa,bulkAdd:XMa,edit:ZMa,save:JMa,invite:eEa,restore:tEa,revoke:nEa,newTitle:aEa,editTitle:oEa,bulkTitle:sEa,formDescription:rEa,bulkDescription:iEa,emailLabel:lEa,emailPlaceholder:cEa,emailHint:dEa,noteLabel:uEa,notePlaceholder:mEa,expiresAtLabel:pEa,expiresAtHint:fEa,bulkEntriesLabel:gEa,bulkEntriesPlaceholder:hEa,search:yEa,searchPlaceholder:vEa,statusFilter:bEa,checkLabel:xEa,checkPlaceholder:$Ea,check:wEa,checkAllowed:kEa,checkDenied:CEa,checkReasons:SEa,registered:AEa,notRegistered:TEa,adminAllowed:REa,domainRule:PEa,never:_Ea,added:jEa,updated:NEa,bulkAdded:DEa,invited:MEa,restored:EEa,revoked:IEa,confirmRevoke:OEa,domainRules:LEa},BEa="Ops Billing",FEa="Payments, wallets and refunds across all users.",zEa={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},qEa="User email",HEa="Search by email...",VEa="Created",KEa="Created",GEa="Amount (USD)",WEa="Min",YEa="Max",QEa="Refunds",XEa="No refunds",ZEa="Refund",JEa="Type",eIa="Full refund",tIa="Partial refund",nIa="Original payment",aIa="Wallets",oIa="Wallet",sIa="User",rIa="Total",iIa="Purchased",lIa="Bonus",cIa="No wallets",dIa="Payments",uIa="Payment status",mIa="No payments",pIa="Payment",fIa="Status",gIa="Amount",hIa="Paid",yIa="Refund",vIa="Not refundable (status must be paid)",bIa="View in Stripe Dashboard",xIa="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",$Ia="unhealthy",wIa="Refund {{id}}",kIa="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",CIa="Refund amount (USD)",SIa="Max ${{value}}",AIa="Reason",TIa="ÐагÑÑзка пÑедпÑоÑмоÑÑа возвÑаÑаâ¦",RIa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¿ÑедпÑоÑмоÑÑ Ð²Ð¾Ð·Ð²ÑаÑа. ÐозвÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен, пока пÑедпÑоÑмоÑÑ Ð½Ðµ загÑÑзиÑÑÑ.",PIa="ТÑанзакÑÐ¸Ñ Ð´Ð»Ñ Ð²Ð¾Ð·Ð²ÑаÑа не найдена â возможно, ÑÑÐ¾Ñ Ð¿Ð»Ð°ÑÑж Ñже полноÑÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑн.",_Ia="ÐплаÑено",jIa="Уже возвÑаÑено",NIa="ÐÑÐ¾Ñ Ð²Ð¾Ð·Ð²ÑаÑ",DIa="ÐзÑмаемÑе кÑедиÑÑ",MIa="ÐклÑÑÐ°ÐµÑ {{amount}} кÑедиÑов кÑпонной Ñкидки, изÑмаемÑÑ Ð¿ÑопоÑÑионалÑно",EIa="ÐклÑÑÐ°ÐµÑ {{amount}} дополниÑелÑно наÑиÑленнÑÑ ÐºÑедиÑов, изÑмаемÑÑ Ð¿ÑопоÑÑионалÑно",IIa="ÐонÑÑ Ð¾Ñозван",OIa="ÐмеÑÑе Ñ ÑÑим возвÑаÑом бÑÐ´ÐµÑ Ð¾Ñозван пÑомобонÑÑ {{amount}}.",LIa="ÐозвÑÐ°Ñ ÑеÑез Stripe",UIa="УдеÑжаÑÑ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ ({{fee}}) â покÑÑÐ²Ð°ÐµÑ Ð¸Ð·Ð´ÐµÑжки Stripe",BIa="ÐомиÑÑÐ¸Ñ ({{fee}})",FIa="СÑмма пÑевÑÑÐ°ÐµÑ Ð¼Ð°ÐºÑималÑно возможнÑй возвÑÐ°Ñ {{value}}",zIa="ÐведиÑе коÑÑекÑнÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑÑ ÑÑммÑ",qIa="ÐолÑзоваÑÐµÐ»Ñ Ñже изÑаÑÑ Ð¾Ð´Ð¾Ð²Ð°Ð» ÑаÑÑÑ ÐºÑпленнÑÑ ÐºÑедиÑов. ÐакÑимÑм к возвÑаÑÑ: {{value}}",HIa="ÐÑÐ¾Ñ Ð¿Ð»Ð°ÑÑж Ñже полноÑÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑн",VIa="СÑмма к возвÑаÑÑ Ð¿Ð¾Ñле комиÑÑии ÑлиÑком мала. ÐеÑниÑе не менее {{value}}.",KIa="Cancel",GIa="Issue refund",WIa="Submitting...",YIa="Refund submitted",QIa="Stripe will return the funds within 1-3 business days. Audit log written.",XIa="Refund failed",ZIa={title:BEa,description:FEa,tabs:zEa,emailFilter:qEa,emailPlaceholder:HEa,created:VEa,createdRange:KEa,amountRange:GEa,amountMin:WEa,amountMax:YEa,refunds:QEa,noRefunds:XEa,refundId:ZEa,refundType:JEa,typeRefund:eIa,typePartialRefund:tIa,originalPayment:nIa,wallets:aIa,wallet:oIa,user:sIa,total:rIa,purchased:iIa,bonus:lIa,noWallets:cIa,payments:dIa,paymentStatus:uIa,noPayments:mIa,payment:pIa,status:fIa,amount:gIa,paid:hIa,refund:yIa,notRefundable:vIa,viewInStripe:bIa,webhookHealthHint:xIa,unhealthyWebhooks:$Ia,refundConfirmTitle:wIa,refundConfirmBody:kIa,refundAmountLabel:CIa,refundMaxHint:SIa,refundReasonLabel:AIa,refundPreviewLoading:TIa,refundPreviewFailed:R
827Ia,refundNoRefundableTx:PIa,refundPaidRow:_Ia,refundAlreadyRefundedRow:jIa,refundThisRefundRow:NIa,refundCreditReclaimRow:DIa,refundCreditCouponNote:MIa,refundCreditExtraNote:EIa,refundBonusReverseRow:IIa,refundBonusForfeitWarning:OIa,refundStripeReturnRow:LIa,refundFeeToggle:UIa,refundPlatformFeeRow:BIa,refundExceedsMax:FIa,refundAmountInvalid:zIa,refundInsufficientCredit:qIa,refundAlreadyFull:HIa,refundBelowMin:VIa,cancel:KIa,confirmRefund:GIa,submitting:WIa,refundSubmittedTitle:YIa,refundSubmittedBody:QIa,refundFailedTitle:XIa},JIa="Campaigns",eOa="Audience segments, restricted-model access, model discounts, and targeted credit grants.",tOa={mobileLabel:"Раздел кампаний",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},nOa="Status",aOa="Actions",oOa="All users",sOa="Always",rOa="No expiry",iOa="Active window",lOa="Leave blank for always-on. Times are end-of-day on the chosen dates.",cOa="Valid from",dOa="Valid to",uOa="Pause",mOa="Resume",pOa="Add",fOa="Remove",gOa="Delete",hOa="Clear",yOa="Close",vOa={allKinds:"ÐÑе ÑипÑ",segmentKindStatic:"СÑаÑиÑеÑкий",segmentKindDynamic:"ÐинамиÑеÑкий",grantKindGrant:"ÐаÑиÑлиÑÑ",grantKindRevoke:"ÐÑозваÑÑ",allStatuses:"ÐÑе ÑÑаÑÑÑÑ",statusActive:"ÐкÑивен",statusPaused:"ÐÑиоÑÑановлен",statusArchived:"РаÑÑ
иве",statusEnded:"ÐавеÑÑен",statusPending:"ÐжидаеÑ",statusProcessing:"ÐбÑабаÑÑваеÑÑÑ",statusCompleted:"ÐÑполнен",statusFailed:"ÐÑибка"},bOa={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 codes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},xOa={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audie
827nce.",createAnyway:"Create anyway"},$Oa={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},wOa={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restricted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},kOa={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
8270.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},COa={title:JIa,description:eOa,tabs:tOa,status:nOa,actions:aOa,allUsers:oOa,always:sOa,noExpiry:rOa,window:iOa,windowHint:lOa,validFrom:cOa,validTo:dOa,pause:uOa,resume:mOa,actionAdd:pOa,actionRemove:fOa,actionDelete:gOa,actionClear:hOa,actionClose:yOa,filters:vOa,segments:bOa,access:xOa,discounts:$Oa,grants:wOa,recurring:kOa},SOa="Announcements",AOa="Banners shown at the top of the marketing site and the console.",TOa="Banners",ROa="Top-of-page banners shown on www and console.",POa="New Banner",_Oa="No banners yet. Create one to show a top-of-page announcement.",jOa="Message",NOa="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",DOa="CTA Label",MOa="CTA Link",EOa="Severity",IOa="Audience",OOa="Starts At",LOa="Ends At",UOa="Dismissible",BOa="Status",FOa="Archive",zOa="Archive this banner? It will no longer be shown to users.",qOa="New Banner",HOa="Edit Banner",VOa="Title",KOa="Type",GOa="Content",WOa="Display type",YOa="Banner",QOa="Modal",XOa="Draft",ZOa="Active",JOa="Info",e3a="Warning",t3a="Critical",n3a="Console only",a3a="Public site only",o3a="Both",s3a="Hero image",r3a="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",i3a="Upload",l3a="Uploadingâ¦",c3a="Remove",d3a="Only PNG, JPEG, WebP and GIF images are supported.",u3a="Image must be 5MB or smaller.",m3a="Upload failed, please try again.",p3a="Title",f3a="Body",g3a="Action buttons",h3a="Button label",y3a="Button link",v3a="Style",b3a="Add button",x3a="Remove",$3a="Primary",w3a="Secondary",k3a="Link",C3a="Simplified Chinese (source)",S3a="Fill in Simplified Chinese only, then translate to other languages in one click.",A3a="Translate to all languages",T3a="Translatingâ¦",R3a="Other languages (translated, editable)",P3a="Translated {{ok}} languages",_3a="{{failed}} languages failed â fill in manually or retry",j3a="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",N3a="Re-show to users who already dismissed it",D3a="Fill in the Simplified Chinese body first.",M3a={title:SOa,description:AOa,annTitle:TOa,annDescription:ROa,annNewButton:POa,annEmpty:_Oa,annMessage:jOa,annInlineLinkHint:NOa,annCtaText:DOa,annCtaUrl:MOa,annSeverity:EOa,annAudience:IOa,annStartsAt:OOa,annEndsAt:LOa,annDismissible:UOa,annStatus:BOa,annArchive:FOa,annArchiveConfirm:zOa,annCreateTitle:qOa,annEditTitle:HOa,annColTitle:VOa,annColType:KOa,annColContent:GOa,annDisplayType:WOa,annTypeBanner:YOa,annTypeModal:QOa,annStatusDraft:XOa,annStatusActive:ZOa,annSevInfo:JOa,annSevWarning:e3a,annSevCritical:t3a,annAudConsole:n3a,annAudPublic:a3a,annAudAll:o3a,annHeroImage:s3a,annHeroImageHint:r3a,annHeroImageUpload:i3a,annHeroImageUploading:l3a,annHeroImageRemove:c3a,annHeroImageBadType:d3a,annHeroImageTooLarge:u3a,annHeroImageUploadFailed:m3a,annModalTitle:p3a,annBody:f3a,annActions:g3a,annActionLabel:h3a,annActionUrl:y3a,annActionVariant:v3a,annActionAdd:b3a,annActionRemove:x3a,annVariantPrimary:$3a,annVariantSecondary:w3a,annVariantLink:k3a,annSourceLocale:C3a,annSourceHint:S3a,annTranslate:A3a,annTranslating:T3a,annOtherLocales:R3a,annTranslateDone:P3a,annTranslateParti
827al:_3a,annTranslateStale:j3a,annBumpRevision:N3a,annTranslateNeedSource:D3a},E3a="Operations dashboard",I3a="Real-time overview of platform health, usage, and alerts.",O3a="Refresh",L3a="Refreshing",U3a="Updated {{time}}",B3a="Loading dashboard",F3a="Failed to load dashboard",z3a="No data",q3a="No traffic yet",H3a="Video fail rate",V3a="Avg latency",K3a="Error types",G3a="No errors",W3a="Model anomalies",Y3a="All models healthy",Q3a="Components",X3a="req",Z3a="Checkout abandon",J3a="Refunds",eLa="Chargebacks",tLa="First-charge conversion",nLa={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},aLa={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},oLa={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"ТолÑко обÑÑнÑе полÑзоваÑели (без помеÑеннÑÑ
)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},sLa={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},rLa={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},iLa={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},lLa={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},cLa={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},dLa={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},uLa={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},mLa={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},pLa={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},fLa="{{failed}}/{{total}} jobs",gLa="{{delta}}pt vs yesterday",hLa="Low sample ({{n}})",yLa="Had gateway calls",vLa="Last 7d cohort · normal users only",bLa="Refund rate {{rate}}%",xLa={funnel:"opened {{opened}} · paid {{paid}}"},$La={title:E3a,description:I3a,refresh:O3a,refreshing:L3a,lastUpdated:U3a,loading:B3a,failedLoad:F3a,empty:z3a,noTraffic:q3a,videoFailRate:H3a,avgLatency:V3a,errorTypes:K3a,noErrors:G3a,modelAnomalies:W3a,noAnomalies:Y3a,components:Q3a,req:X3a,abandonRate:Z3a,refunds:J3a,chargebacks:eLa,firstChargeConversion:tLa,sections:nLa,leaderboard:aLa,kpi:oLa,revenue:sLa,orders:rLa,conversion:iLa,componentStatus:lLa,severity:cLa,health:dLa,alerts:uLa,alertSettings:mLa,range:pLa,videoJobsDetail:fLa,vsYesterdayPt:gLa,lowSample:hLa,activeUsersHint:yLa,conversionCohortHint:vLa,refundRate:bLa,checkout:xLa},wLa="Loading...",kLa="Admin permission required",CLa="Your account does not have permission to access this administrator page.",SLa={loading:wLa,permissionRequired:kLa,permissionDescription:CLa},ALa="User growth",TLa="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",RLa={mobileLabel:"Раздел ÑоÑÑа",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"ÐÐ¾Ð´Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ",tasks:"Task wall"},PLa="Coupon batch",_La="Promotion rule",jLa="Count",NLa="Batch code",DLa="Creating...",MLa="Create batch",ELa="{{count}} coupon code created",ILa="{{count}} coupon codes created",OLa="Batch {{code}}",LLa="Copied",ULa="Copy all",BLa="Credit grants",FLa="Source",zLa="Status",qLa="No grants yet",HLa="Coupon redemptions, signup bonuses, and manual grants appear here.",VLa="Time",KLa="User",GLa="Amount",WLa="Signup bonus",YLa="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",QLa="Enable signup credit",XLa="Amount (USD)",ZLa="Save signup bonus",JLa="Saving...",e4a="Current amount {{amount}}",t4a="Referral cashback",n4a="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",a4a="Enable referral cashback",o4a="Reward tiers",s4a="Add tier",r4a="Recipient",i4a="From day",l4a="Until day",c4a="Percent",d4a="Label",u4a="Action",m4a="Inviter",p4a="Invitee",f4a="No end",g4a="Remove tier",h4a="Release delay (days)",y4a="Per-topup cap (USD)",v4a="Min topup (USD, blank = none)",b4a="Cashback expiry (days, blank = never)",x4a="Billing-page countdown banner",$4a="Banner title",w4a="Subtitle",k4a="Countdown mode",C4a="Global deadline",S4a="Each invitee's 30-day window",A4a="Ends at",T4a="Save referral settings",R4a="v{{version}}",P4a="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",_4a="Version history",j4a="Version",N4a="Status",D4a="Reward tiers",M4a="Published",E4a="Superseded",I4a="current",O4a="Top-up discount codes",L4a="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",U4a="Enable discount codes",B4a="Discount type",F4a="Fixed amount off (USD)",z4a="Percentage off (%)",q4a="Amou
827nt off (USD)",H4a="Percentage off (0-100)",V4a="Save discount",K4a="Default low-balance alert",G4a="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",W4a="Threshold (USD)",Y4a="Save threshold",Q4a="Current: {{amount}}",X4a="Generate codes against the discount rule above.",Z4a="In effect: {{state}} · {{value}} off",J4a="enabled",e5a="disabled",t5a="Issued codes",n5a="Pick a batch to see who redeemed each code.",a5a="No batches yet",o5a="Generate a batch above to start tracking redemptions.",s5a="Total",r5a="Redeemed",i5a="Reserved",l5a="Available",c5a="Codes in {{code}}",d5a="No codes in this batch",u5a="Code",m5a="Redeemed by",p5a="Redeemed at",f5a="Paid",g5a="Discount",h5a="СоздаÑÑ ÐºÐ¾Ð´Ñ",y5a="ÐбÑий код â ÑÑо один код, коÑоÑÑй многие полÑзоваÑели могÑÑ Ð°ÐºÑивиÑоваÑÑ Ð´Ð¾ N Ñаз; Ð¿Ð°ÐºÐµÑ ÑникалÑнÑÑ
кодов â ÑÑо N одноÑазовÑÑ
кодов.",v5a="Тип кода",b5a="Ðдин обÑий код",x5a="ÐÐ°ÐºÐµÑ ÑникалÑнÑÑ
кодов",$5a="ТекÑÑ ÐºÐ¾Ð´Ð° (оÑÑавÑÑе пÑÑÑÑм Ð´Ð»Ñ ÑлÑÑайного)",w5a="напÑ. WELCOME100",k5a="ÐÑего акÑиваÑий (N)",C5a="Ðа полÑзоваÑелÑ",S5a="ÐÑÑÐµÐºÐ°ÐµÑ (необÑзаÑелÑно)",A5a="гÑÑппа (необÑзаÑелÑно)",T5a="СоздаÑÑ Ð¾Ð±Ñий код",R5a="ÐбÑий код Ñоздан",P5a="ÐÑполÑзоваÑÑ ÑÐºÐ¸Ð´ÐºÑ Ð´Ð»Ñ ÑÑого пакеÑа (инаÑе пÑавило вÑÑе)",_5a="ÐбÑие кодÑ",j5a="Ðдин код, много полÑзоваÑелей. СÑÑÑÑик иÑполÑзований оÑÑÐ°Ð¶Ð°ÐµÑ Ð¾Ð¿Ð»Ð°ÑеннÑе акÑиваÑии.",N5a="ÐбÑиÑ
кодов пока неÑ",D5a="ÐÑполÑзовано / лимиÑ",M5a="Ðа полÑзоваÑелÑ",E5a="ÐÑÑекаеÑ",I5a="ÐÑклÑÑиÑÑ",O5a="ÐÑклÑÑиÑÑ ÑÑÐ¾Ñ ÐºÐ¾Ð´?",L5a="ÐовÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° блокиÑÑÑÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. ÐаказÑ, Ñже наÑ
одÑÑиеÑÑ Ð² оÑоÑмлении, могÑÑ Ð±ÑÑÑ Ð·Ð°Ð²ÐµÑÑенÑ.",U5a="Ðод оÑклÑÑÑн",B5a="CSV",F5a="СÑаÑÑÑ",z5a="E-mail",q5a={code:"Ðод",discount:"Скидка",redeemed:"ÐкÑивиÑовано",cap:"ÐимиÑ",perUser:"Ðа полÑзоваÑелÑ",status:"СÑаÑÑÑ",expiresAt:"ÐÑÑекаеÑ",batch:"ÐакеÑ",createdAt:"Создано",redeemedBy:"Ðем акÑивиÑовано",redeemedAt:"Ðогда акÑивиÑовано",paid:"ÐплаÑено",discountAmount:"Скидка",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},H5a="Amount",V5a="Bound at",K5a="Counterparty",G5a="Invitee",W5a="Inviter",Y5a="Rate",Q5a="Released",X5a="Role",Z5a="Tier",J5a="Top-up",eUa="Load more",tUa="No referrals under this version",nUa="No cashback under this version",aUa="Referrals",oUa="Referral records",sUa="Cashback records",rUa="Version detail",iUa={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},lUa="СоздаÑÑ ÐºÐ¾Ð´Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ",cUa="ÐÐ¾Ð´Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð² ÑоÑмаÑе пÑедоплаÑеннÑÑ
каÑÑ. ÐолÑзоваÑÐµÐ»Ñ Ð²Ð²Ð¾Ð´Ð¸Ñ ÐºÐ¾Ð´ на ÑÑÑаниÑе биллинга, и номинал ÑÑÐ°Ð·Ñ Ð·Ð°ÑиÑлÑеÑÑÑ Ð½Ð° баÐ
827»Ð°Ð½Ñ (бонÑÑнÑй баланÑ, без оплаÑÑ).",dUa="Ðазвание паÑÑии (необÑзаÑелÑно)",uUa="ÐапÑимеÑ: подаÑок Conf-2026",mUa="ÐолиÑеÑÑво кодов",pUa="Ðоминал одного кода (USD)",fUa="ÐÐ¸Ð¼Ð¸Ñ Ð°ÐºÑиваÑий из ÑÑой паÑÑии на аккаÑÐ½Ñ (пÑÑÑо = без лимиÑа)",gUa="Ðез лимиÑа",hUa="СÑок дейÑÑÐ²Ð¸Ñ ÐºÐ¾Ð´Ð° (необÑзаÑелÑно)",yUa="Restrict to models (optional)",vUa="General balance (no restriction)",bUa="{{count}} models selected",xUa="Blank = general balance. Selected models share one earmarked pool.",$Ua="Credit validity after redemption (days, blank = never expires)",wUa="never expires",kUa="{{n}} d",CUa="Models",SUa="Validity",AUa="General balance",TUa="СоздаÑÑ ÐºÐ¾Ð´Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ",RUa="СоÑ
ÑаниÑе ÐºÐ¾Ð´Ñ ÑÑазÑ. Ðозже иÑ
можно Ñнова полÑÑиÑÑ ÑеÑез «ÐкÑпоÑÑ Ð² оÑкÑÑÑом виде» в ÑпиÑке паÑÑий.",PUa="ÐаÑÑии кодов пополнениÑ",_Ua="ÐажмиÑе на паÑÑиÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑкÑÑÑÑ Ð´ÐµÑали по ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÐºÐ¾Ð´Ñ; «ÐкÑпоÑÑ Ð² оÑкÑÑÑом виде» позволÑÐµÑ Ð¿Ð¾Ð²ÑоÑно вÑгÑÑзиÑÑ ÐºÐ¾Ð´Ñ Ð² оÑкÑÑÑом виде.",jUa="ÐаÑÑий кодов Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ° неÑ",NUa="ÐаÑÑиÑ",DUa="Ðоминал",MUa="ÐкÑпоÑÑ Ð² оÑкÑÑÑом виде",EUa="ÐÑозваÑÑ ÑÑÐ¾Ñ Ñже акÑивиÑованнÑй код?",IUa="ÐеÑнÑÑÑ Ñ Ð±Ð°Ð»Ð°Ð½Ñа полÑзоваÑÐµÐ»Ñ ÑолÑко неизÑаÑÑ
одованнÑÑ ÑаÑÑÑ; Ñже поÑÑаÑÐµÐ½Ð½Ð°Ñ ÑаÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑ Ð½Ðµ подлежиÑ.",OUa="ÐÑозваÑÑ",LUa="ÐÑозвано {{amount}}",UUa="ÐÐ¾Ð´Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑпоÑÑиÑованÑ",BUa="ÐÑклÑÑиÑÑ Ð½ÐµÐ°ÐºÑивиÑованнÑе ÐºÐ¾Ð´Ñ Ð² ÑÑой паÑÑии?",FUa="ÐÑе кодÑ, коÑоÑÑе еÑе не бÑли акÑивиÑованÑ, ÑÑанÑÑ Ð½ÐµÐ´ÐµÐ¹ÑÑвиÑелÑнÑми; Ñже акÑивиÑованнÑе ÐºÐ¾Ð´Ñ Ð½Ðµ заÑÑагиваÑÑÑÑ.",zUa="ÐÑклÑÑено кодов: {{n}}",qUa="Bonus % on top-up",HUa="Bonus (%)",VUa="Bonus validity (days, optional)",KUa="blank = never expires",GUa={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},WUa={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending cap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},YUa={title:ALa,description:TLa,tabs:RLa,couponBatch:PLa,promotionRule:_La,count:jLa,batchCode:NLa,creating:DLa,createBatch:MLa,codesCreated:ELa,codesCreated_plural:ILa,batch:OLa,copied:LLa,copyAll:ULa,creditGrants:BLa,source:FLa,status:zLa,noGrants:qLa,noGrantsDescription:HLa,time:VLa,user:KLa,amount:GLa,signupBonus:WLa,signupBonusDescription:YLa,signupBonusEnabled:QLa,signupBonusAmount:XLa,saveSignupBonus:ZLa,saving:JLa,currentSignupBonus:e4a,referral:t4a,referralDescription:n4a,referralEnabled:a4a,referralRewardTiers:o4a,addTier:s4a,tierRole:r4a,tierFromDay:i4a,tierUntilDay:l4a,tierPercent:c4a,tierLabel:d4a,tierAction:u4a,roleReferrer:m4a,roleReferee:p4a,noEndDay:f4a,removeTier:g4a,releaseDelayDays:h4a,referralCap:y4a,referralMinTopup:v4a,referralExpiryDays:b4a,bannerEnabled:x4a,bannerTitle:$4a,bannerSubtitle:w4a,bannerMode:k4a,bannerModeGlobal:C4a,bannerModeWindow:S4a,bannerEndsAt:A4a,saveReferral:T4a,referralVersion:R4a,referralPublishHint:P4a,referralVersionHistory:_4a,versionCol:j4a,versionStatus:N4a,versionTiers:D4a,versionPublished:M4a,versionSuperseded:E4a,versionCurrent:I4a,discountRule:O4a,discountRuleDescription:L4a,discountEnabled:U4a,discountType:B4a,discountFixed:F4a,discountPercent:z4a,discountValueFixed:q4a,discountValuePercent:H4a,saveDiscount:V4a,defaultLowBalanceThreshold:K4a,defaultLowBalanceThresholdDescription:G4a,defaultLowBalanceThresholdAmount:W4a,saveDefaultLowBalanceThreshold:Y4a,currentDefaultLowBalanceThreshold:Q4a,couponBatchDescription:X4a,discountEffective:Z4a,stateEnabled:J4a,stateDisabled:e5a,couponTrace:t5a,couponTraceDescription:n5
827a,noBatches:a5a,noBatchesDescription:o5a,batchTotal:s5a,batchRedeemed:r5a,batchReserved:i5a,batchActive:l5a,codesInBatch:c5a,noCodes:d5a,code:u5a,redeemedBy:m5a,redeemedAt:p5a,paid:f5a,discount:g5a,createIssuance:h5a,createIssuanceDescription:y5a,formLabel:v5a,formShared:b5a,formUniqueBatch:x5a,sharedCodeText:$5a,sharedCodeRandomHint:w5a,sharedMaxRedemptions:k5a,sharedPerUser:C5a,expiresAt:S5a,batchCodeOptional:A5a,createSharedCode:T5a,sharedCodeCreated:R5a,batchOwnDiscount:P5a,sharedCodesList:_5a,sharedCodesListDescription:j5a,noSharedCodes:N5a,colRedeemedTotal:D5a,colPerUser:M5a,colExpiry:E5a,disableCode:I5a,disableCodeConfirmTitle:O5a,disableCodeConfirmMessage:L5a,codeDisabled:U5a,exportCsv:B5a,statusFilter:F5a,filterByEmail:z5a,csv:q5a,colAmount:H5a,colBoundAt:V5a,colCounterparty:K5a,colInvitee:G5a,colInviter:W5a,colRate:Y5a,colReleasedAt:Q5a,colRole:X5a,colTier:Z5a,colTopup:J5a,loadMore:eUa,noBindings:tUa,noCashback:nUa,versionBindings:aUa,versionBindingsSection:oUa,versionCashbackSection:sUa,versionDetail:rUa,topup:iUa,redeemCreate:lUa,redeemCreateDescription:cUa,redeemBatchName:dUa,redeemBatchNameHint:uUa,redeemCount:mUa,redeemFaceValue:pUa,redeemPerUserLimit:fUa,redeemUnlimited:gUa,redeemExpiresAt:hUa,redeemModels:yUa,redeemModelsAll:vUa,redeemModelsCount:bUa,redeemModelsHint:xUa,redeemValidityDays:$Ua,redeemValidityForever:wUa,redeemValidityDaysValue:kUa,redeemColModels:CUa,redeemColValidity:SUa,redeemGeneralBalance:AUa,redeemCreateBtn:TUa,redeemRevealHint:RUa,redeemBatches:PUa,redeemBatchesDescription:_Ua,redeemNoBatches:jUa,redeemBatchCol:NUa,redeemFace:DUa,redeemReveal:MUa,redeemReverseTitle:EUa,redeemReverseMessage:IUa,redeemReverseBtn:OUa,redeemReversed:LUa,redeemRevealed:UUa,redeemDisableBatchTitle:BUa,redeemDisableBatchMessage:FUa,redeemBatchDisabled:zUa,discountTypeBonusPercent:qUa,discountValueBonusPercent:HUa,bonusExpiryDays:VUa,bonusExpiryDaysHint:KUa,sharedPayments:GUa,tasks:WUa},QUa="Models",XUa="Model catalog: create, edit, publish.",ZUa={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},JUa="Add model",eBa="Edit {{model}}",tBa="New model",nBa="Close",aBa="Basics & content save together; pricing and status changes apply immediately.",oBa="Create the model draft. Set pricing and publish after it exists.",sBa={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},rBa="Provider slug",iBa="Pick a known provider or type a custom slug.",lBa="Model slug",cBa="Aliases",dBa="Comma-separated lookup aliases for import and review.",uBa="Source (customer-visible)",mBa="Label customers see on the model/logs. Blank = vendor. Use it to distinguish same-model variants at different prices.",pBa="Platform",fBa="â select platform â",gBa="Upstream model id (optional; choose from upstream or enter manually)",hBa="Choose from upstream...",yBa="Upstream unavailable",vBa="Protocols",bBa="Input price / 1M (USD)",xBa="Output price / 1M (USD)",$Ba="EN summary",wBa="Preview",kBa="(No summary)",CBa="No protocol",SBa="Cancel",ABa="Save",TBa="Create draft",RBa={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},PBa={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},_Ba="Context window (tokens)",jBa="Max input the model accepts. Leave blank if unknown.",NBa="Max output tokens",DBa="Max tokens the model can generate per response.",MBa={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},EBa="Input modalities",IBa="Declares what this model can receive, including vision, audio, video, and file inputs.",OBa="Output modalities",LBa="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",UBa="Image billing style",BBa="Video billing style",FBa="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",zBa="â select billing style â",qBa="Per token (image_output_token)",HBa="Per image (per_call_image)",VBa="Per second (video_per_second)",KBa="Per call (video_per_call)",GBa="Display order",WBa="Must be a non-negative integer.",YBa="Editing locale",QBa="Upstream release date",XBa="Summary (this locale)",ZBa="Description (Markdown, this locale)",JBa={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"ФилÑÑÑÑ"},e6a={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}
827"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},t6a={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},n6a={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},a6a="Discard unsaved changes?",o6a="РедакÑиÑоваÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ",s6a={title:QUa,description:XUa,badges:ZUa,addModel:JUa,editModel:eBa,newModel:tBa,close:nBa,sheetDescription:aBa,sheetDescriptionNew:oBa,sections:sBa,providerSlug:rBa,providerSlugHint:iBa,modelSlug:lBa,aliases:cBa,aliasesHint:dBa,source:uBa,sourceHint:mBa,platform:pBa,platformUnset:fBa,sub2apiModelId:gBa,chooseSub2api:hBa,upstreamUnavailable:yBa,protocols:vBa,inputPrice:bBa,outputPrice:xBa,enSummary:$Ba,preview:wBa,noSummary:kBa,noProtocol:CBa,cancel:SBa,save:ABa,createDraft:TBa,tabs:RBa,steps:PBa,contextWindow:_Ba,contextWindowHint:jBa,maxOutputTokens:NBa,maxOutputTokensHint:DBa,lifecycle:MBa,inputModalities:EBa,inputModalitiesHint:IBa,outputModalities:OBa,outputModalitiesHint:LBa,billingStyleImage:UBa,billingStyleVideo:BBa,billingStyleHint:FBa,billingStyleUnset:zBa,billingStyleToken:qBa,billingStylePerImage:HBa,billingStylePerSecond:VBa,billingStylePerCall:KBa,displayOrder:GBa,displayOrderInvalid:WBa,contentLocale:YBa,upstreamReleaseAt:QBa,summary:XBa,descriptionField:ZBa,filters:JBa,table:e6a,errors:t6a,pricing:n6a,discardChanges:a6a,editModelShort:o6a},r6a="Rate Limits",i6a="Rate limit policies by scope.",l6a="Rate limit policies",c6a="No policies",d6a="Code",u6a="Name",m6a="Scope",p6a="Status",f6a="Limits",g6a="No limits",h6a={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},y6a={active:"Active",disabled:"Disabled",archived:"Archived"},v6a={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},b6a="New policy",x6a="Edit",$6a="Action",w6a="New rate limit policy",k6a="Edit {{name}}",C6a="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",S6a='Delete policy "{{name}}"? Keys and users on it fall back to their default.',A6a="Policy deleted.",T6a={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},R6a={title:r6a,description:i6a,label:l6a,empty:c6a,code:d6a,name:u6a,scope:m6a,status:p6a,limits:f6a,noLimits:g6a,scopes:h6a,statuses:y6a,limitNames:v6a,add:b6a,edit:x6a,delete:"Delete",action:$6a,newTitle:w6a,editTitle:k6a,formDescription:C6a,confirmDelete:S6a,deleted:A6a,form:T6a},P6a="Admins",_6a="Who can sign in to the admin console. Owner-only.",j6a="Admins",N6a="No admins yet",D6a="Email",M6a="Name",E6a="Role",I6a="Status",O6a="Last login",L6a="Action",U6a="Add admin",B6a="Add admin",F6a="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",z6a="Email",q6
827a="[email protected]",H6a="Name",V6a="Display name",K6a="Role",G6a="Admin added.",W6a="Change role",Y6a="Role updated.",Q6a="Suspend",X6a="Activate",Z6a="Status updated.",J6a="Remove",e8a="Admin removed.",t8a="Remove {{email}} as an admin? They lose console access immediately.",n8a="You",a8a="Never",o8a={owner:"Owner",admin:"Admin",support:"Support"},s8a={active:"Active",suspended:"Suspended"},r8a={title:P6a,description:_6a,label:j6a,empty:N6a,email:D6a,name:M6a,role:E6a,status:I6a,lastLogin:O6a,action:L6a,add:U6a,newTitle:B6a,formDescription:F6a,emailLabel:z6a,emailPlaceholder:q6a,nameLabel:H6a,namePlaceholder:V6a,roleLabel:K6a,added:G6a,changeRole:W6a,roleChanged:Y6a,suspend:Q6a,activate:X6a,statusChanged:Z6a,remove:J6a,removed:e8a,confirmRemove:t8a,self:n8a,never:a8a,roles:o8a,statuses:s8a},i8a="Upstream",l8a="Read-only upstream configuration mirror plus controlled OneHop routing pools.",c8a="Open upstream admin",d8a="Upstream tabs",u8a={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},m8a={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},p8a={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},f8a={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"ÐокÑÑÑие апÑÑÑима",coverageUnchecked:"аккаÑнÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑ",coverageOnlyAccount:"ÑолÑко {{accounts}}",coverageNoAccount:"Ðи один планиÑÑемÑй аккаÑÐ½Ñ Ð½Ðµ ÑопоÑÑавлен Ñ ÑÑим ID апÑÑÑима"},g8a={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},h8a={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},y8a={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},v8a={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},b8a={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},x8a={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},$8a={title:i8a,description:l8a,openUpstreamAdmin:c8a,tabsLabel:d8a,tabs:u8a,metrics:m8a,errors:p8a,audit:f8a,topology:g8a,pools:h8a,readonly:y8a,table:v8a,common:b8a,ops:x8a},w8a="Platform usage",k8a="Cross-user request metering with cost, token, latency, and routing signals.",C8a="Refresh",S8a={label:"Auto refresh",off:"Off"},A8a="Exporting",T8a="Export CSV",R8a="Failed to export usage records",P8a="Requests",_8a="{{count}} successful",j8a="Users",N8a="Matched by current filters",D8a="Billed credit",M8a="{{cost}} upstream cost",E8a="Tokens",I8a="Avg {{duration}}",O8a="User email",L8a="Search by email",U8a="Model",B8a="Search by model",F8a="Status",z8a="Protocol",q8a="Rows",H8a="Reset",V8a="Ops usage records",K8a="No usage records",G8a="User",W8a="Endpoint",Y8a="{{count}} total",Q8a="In {{input}} / out {{output}}",X8a="Upstream",Z8a="Billed",J8a="Latency",eFa="Started",tFa="Page {{page}} · showing {{shown}} of {{total}} matching records",nFa="Previous",aFa="Next",oFa="{{count}} rows on this page",sFa="Times shown in",rFa="{{count}} API keys",iFa="Spend snapshot",lFa="from OneHop billing snapshot",cFa="User spend",dFa="total billed to users",uFa="Avg latency",mFa="settled requests",pFa="Range",fFa={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},gFa="Metric",hFa={cost:"Spend",tokens:"Tokens",requests:"Requests"},yFa="Distribution",vFa={model:"ÐоделÑ",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream
827:"Transport (stream/sync)"},bFa="Usage trend",xFa="Usage by model",$Fa="Hourly",wFa="Daily",kFa="Top endpoints",CFa="Top dimension rows",SFa="Request logs",AFa="API key",TFa="Type",RFa="Billing",PFa="Channel",_Fa="Group",jFa="Request ID",NFa="req_ / usg_ / upstream",DFa="All types",MFa="All billing",EFa={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},IFa="Failed to load usage",OFa="Loading usage records",LFa="Try a different filter set.",UFa="No trend data",BFa="No distribution data",FFa="No rows",zFa="Spend breakdown",qFa={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},HFa="Request detail",VFa="Unknown user",KFa="Loading...",GFa="Sub2API actual",WFa="Group multiplier",YFa="Account multiplier",QFa="Identity",XFa="User ID",ZFa="Key suffix",JFa={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},eza="Input",tza="Output",nza="Cache read",aza="Cache write",oza="Raw metadata",sza="Request",rza="Usage ID",iza="OneHop ID",lza="Sub2API ID",cza="Sub2API log",dza="Routing",uza="Mapping",mza="Performance",pza="First token",fza="Total",gza="Error",hza="Code",yza="Message",vza={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},bza={analytics:"Usage analytics",logs:"Request logs"},xza={label:"Chart view",stacked:"Over time",ranking:"Ranking"},$za={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},wza="More filters",kza="Slow threshold (ms)",Cza="No model usage",Sza="No requests yet â usage will appear here as traffic comes in.",Aza="Viewing",Tza="streaming requests",Rza="Avg duration",Pza="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",_za="Open request detail",jza={title:w8a,description:k8a,refresh:C8a,autoRefresh:S8a,exporting:A8a,exportCsv:T8a,exportError:R8a,requests:P8a,successful:_8a,users:j8a,matchedFilters:N8a,billedCredit:D8a,upstreamCost:M8a,tokens:E8a,avgDuration:I8a,userEmail:O8a,searchEmail:L8a,model:U8a,searchModel:B8a,status:F8a,protocol:z8a,rows:q8a,reset:H8a,label:V8a,empty:K8a,user:G8a,endpoint:W8a,totalTokens:Y8a,inOut:Q8a,upstream:X8a,billed:Z8a,latency:J8a,started:eFa,pageSummary:tFa,previous:nFa,next:aFa,rowsOnPage:oFa,timesShownIn:sFa,apiKeys:rFa,sub2apiCharge:iFa,sub2apiChargeSource:lFa,userSpend:cFa,userSpendSource:dFa,avgLatency:uFa,settledRequests:mFa,range:pFa,ranges:fFa,metric:gFa,metrics:hFa,distribution:yFa,breakdown:vFa,usageTrend:bFa,stackedByModel:xFa,hourly:$Fa,daily:wF
827a,topEndpoints:kFa,topDimensionRows:CFa,requestLogs:SFa,apiKey:AFa,type:TFa,billing:RFa,channel:PFa,group:_Fa,requestId:jFa,requestIdPlaceholder:NFa,allTypes:DFa,allBilling:MFa,table:EFa,failedLoad:IFa,loadingRecords:OFa,tryDifferentFilters:LFa,noTrendData:UFa,noDistributionData:BFa,noRows:FFa,costBreakdown:zFa,adminCost:qFa,requestDetail:HFa,unknownUser:VFa,loading:KFa,sub2apiActual:GFa,groupMultiplier:WFa,accountMultiplier:YFa,identity:QFa,userId:XFa,keySuffix:ZFa,continuity:JFa,input:eza,output:tza,cacheRead:nza,cacheWrite:aza,rawMetadata:oza,request:sza,usageId:rza,onehopId:iza,sub2apiId:lza,sub2apiLog:cza,routing:dza,mapping:uza,performance:mza,firstToken:pza,total:fza,error:gza,code:hza,message:yza,csv:vza,tabs:bza,modelView:xza,chip:$za,moreFilters:wza,slowThreshold:kza,noModelUsage:Cza,noTrendToday:Sza,viewing:Aza,avgLatencySub:Tza,avgTotalDuration:Rza,latencyHint:Pza,openRequestDetail:_za},Nza="Search",Dza="Search by user ID, email, or name",Mza="User",Eza="Back to users",Iza="You do not have permission to view this section.",Oza="Refund",Lza="Refunding...",Uza="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",Bza="Refund initiated.",Fza={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"API-клÑÑи",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},zza={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},qza={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},Hza={phase2:"Subscriptions are coming in Phase 2."},Vza={empty:"No payments"},Kza={empty:"No refunds"},Gza={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},Wza={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},Yza={empty:"No audit records"},Qza={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},Xza={ipLocationTitle:"IP и меÑÑоположение",deviceBrowserTitle:"УÑÑÑойÑÑво и бÑаÑзеÑ",stripeTitle:"Stripe",signupIp:"IP пÑи ÑегиÑÑÑаÑии",signupCountry:"СÑÑана ÑегиÑÑÑаÑии",lastLoginIp:"IP поÑледнего вÑ
ода",ipDifferent:"ÐÑлиÑаеÑÑÑ Ð¾Ñ IP пÑи ÑегиÑÑÑаÑии",sameIpAccounts_one:"{{count}} аккаÑÐ½Ñ Ñ Ñем же IP пÑи ÑегиÑÑÑаÑии",sameIpAccounts_other:"{{count}} аккаÑнÑов Ñ Ñем же IP пÑи ÑегиÑÑÑаÑии",sameDeviceAccounts_one:"{{count}} аккаÑÐ½Ñ Ð½Ð° Ñом же ÑÑÑÑойÑÑве",sameDeviceAccounts_other:"{{count}} аккаÑнÑов на Ñом же ÑÑÑÑойÑÑве",deviceFingerprint:"ÐÑпеÑаÑок ÑÑÑÑойÑÑва",freeTierEligible:"ÐÑаво на беÑплаÑнÑй ÑаÑиÑ",firstDevice:"ÐеÑвÑй на ÑÑÑÑойÑÑве",notFirstDevice:"Ðе пеÑвÑй на ÑÑÑÑойÑÑве â без беÑплаÑнÑÑ
пÑивилегий",browser:"ÐÑаÑзеÑ",os:"OS",deviceType:"Тип ÑÑÑÑойÑÑва",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"ÐÑкÑÑÑÑ Ð² ipinfo.io"},Zza={empty:"ÐÑзовов пока неÑ",viewAll:"ÐоказаÑÑ Ð²Ñе логи â",colStatus:"СÑаÑÑÑ",colTime:"ÐÑемÑ",colModel:"ÐоделÑ",colProtocol:"ÐÑоÑокол",colDuration:"ÐлиÑелÑноÑÑÑ",colCost:"СÑоимоÑÑÑ",colFreeDiscount:"ÐеÑплаÑнÑй кÑедиÑ"},Jza={empty:"API keys пока неÑ",colName:"Ðазвание",colKey:"Key",colStatus:"СÑаÑÑÑ",colPolicy:"ÐолиÑика лимиÑов",colL
827astUsed:"ÐоÑледнее иÑполÑзование",colCreated:"Создан",colExpires:"ÐÑÑекаеÑ",colSpend:"РаÑÑ
одÑ",spendTitle:"Разбивка ÑаÑÑ
одов",spend30d:"ÐоÑледние 30 дней",spendAllTime:"Ðа вÑÑ Ð²ÑемÑ",spendRequests:"ÐапÑоÑÑ"},e7a="ÐопиÑоваÑÑ",t7a="СкопиÑовано",n7a={search:Nza,searchPlaceholder:Dza,title:Mza,backToList:Eza,noBlockPerm:Iza,refund:Oza,refunding:Lza,refundConfirm:Uza,refundInitiated:Bza,nav:Fza,freeTokens:zza,freeQuota:qza,subscription:Hza,payments:Vza,refunds:Kza,rewards:Gza,referrals:Wza,audit:Yza,col:Qza,network:Xza,recentCalls:Zza,apiKeys:Jza,copy:e7a,copied:t7a},a7a="Users",o7a="Search users, grant credit, and suspend accounts.",s7a="Email",r7a="Search by email",i7a="Account status",l7a={active:"ÐккаÑÐ½Ñ Ð°ÐºÑивен; вÑ
од и вÑÐ·Ð¾Ð²Ñ gateway доÑÑÑпнÑ",suspended:"ÐÑиоÑÑановлен; gateway оÑклонÑÐµÑ Ð²Ñе запÑоÑÑ (401)"},c7a="Risk",d7a={normal:"ÐоÑÑÑÐ¿Ð½Ñ Ð²Ñе беÑплаÑнÑе бонÑÑÑ",watchlisted:"ÐÐµÑ Ð±ÐµÑплаÑнÑÑ
token и ÑегиÑÑÑаÑионного бонÑÑа; пополнение и вÑÐ·Ð¾Ð²Ñ gateway доÑÑÑпнÑ",blocked:"Gateway оÑклонÑÐµÑ Ð²Ñе запÑоÑÑ (401); полнÑй бан"},u7a="Users",m7a="No users found",p7a="Country",f7a="Last login",g7a="Action",h7a="View",y7a="Deleted",v7a="Set status for {{email}}",b7a='Set {{email}} to "{{status}}"?',x7a="Grant credit",$7a="Add bonus credit to {{email}}. Recorded in the ledger.",w7a="Amount (USD)",k7a="e.g. 5",C7a="Reason (optional)",S7a="e.g. compensation for downtime",A7a="Type",T7a="Bonus credit",R7a="A gift. Does not count as a top-up.",P7a="Offline payment",_7a="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",j7a="Reference no.",N7a="e.g. bank slip 20260907-001",D7a="Record payment",M7a="Recording...",E7a="Cancel",I7a="Granting...",O7a="Grant",L7a="Grant ${{amount}} to {{email}}? This is a large amount.",U7a="No display name",B7a="Loading...",F7a="score {{score}}",z7a="Email verified",q7a="Yes",H7a="No",V7a="Signup",K7a="Signup method",G7a="Last login method",W7a="Signup bonus",Y7a="Onboarding",Q7a="Locale / TZ",X7a="Markup ratio",Z7a="Rate limit policy",J7a="Rate limit policy updated.",eqa="Joined",tqa="Never",nqa="Balance",aqa="Wallet & spend",oqa="Total spent",sqa="Recharged",rqa="Bonus granted",iqa="Refunded",lqa="Requests",cqa="Tokens",dqa="Actions",uqa="Identity & risk",mqa="Role",pqa="No permitted actions for your role.",fqa="Acquisition source",gqa="Acquisition by source",hqa="Direct / unknown",yqa="Custom sourceâ¦",vqa="Set",bqa="Auto-detected: {{source}}",xqa="UTM",$qa="Referred by",wqa="ÐÑимеÑание",kqa="ÐобавÑÑе пÑимеÑание, ÑÑÐ¾Ð±Ñ Ð¸Ð´ÐµÐ½ÑиÑиÑиÑоваÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ",Cqa="СоÑ
ÑаниÑÑ Ð¿ÑимеÑание",Sqa="ÐÑимеÑание ÑоÑ
Ñанено",Aqa="ÐÐµÑ Ð¿ÑимеÑаниÑ",Tqa="ФилÑÑÑÑ",Rqa="Location",Pqa="Preferred locale",_qa={title:a7a,description:o7a,email:s7a,searchEmail:r7a,status:i7a,statusEffect:l7a,risk:c7a,riskEffect:d7a,label:u7a,empty:m7a,country:p7a,lastLogin:f7a,action:g7a,view:h7a,deleted:y7a,setStatusAria:v7a,setStatusConfirm:b7a,grantCredit:x7a,grantDescription:$7a,amountUsd:w7a,amountPlaceholder:k7a,reason:C7a,reasonPlaceholder:S7a,grantKind:A7a,grantKindBonus:T7a,grantKindBonusHint:R7a,grantKindOffline:P7a,grantKindOfflineHint:_7a,referenceNo:j7a,referenceNoPlaceholder:N7a,recordPayment:D7a,recording:M7a,cancel:E7a,granting:I7a,grant:O7a,largeGrantConfirm:L7a,noDisplayName:U7a,loading:B7a,score:F7a,emailVerified:z7a,yes:q7a,no:H7a,signup:V7a,signupMethod:K7a,lastLoginMethod:G7a,signupBonus:W7a,onboarding:Y7a,localeTz:Q7a,markupRatio:X7a,rateLimitPolicy:Z7a,rateLimitPolicyChanged:J7a,joined:eqa,never:tqa,walletBalance:nqa,walletSection:aqa,consumed:oqa,recharged:sqa,bonusGranted:rqa,refunded:iqa,requests:lqa,tokens:cqa,actionsSection:dqa,identitySection:uqa,role:mqa,noPermittedActions:pqa,acquisitionSource:fqa,acquisitionTitle:gqa,sourceDirect:hqa,sourceCustomPlaceholder:yqa,sourceSet:vqa,sourceCaptured:bqa,utm:xqa,referrer:$qa,note:wqa,notePlaceholder:kqa,noteSave:Cqa,noteSaved:Sqa,noteEmpty:Aqa,filters:Tqa,location:Rqa,preferredLocale:Pqa},jqa="Webhooks",Nqa="Stripe webhook events. Status filter, retry, payload inspection.",Dqa="Status",Mqa="Event type",Eqa="Received",Iqa="Event type",Oqa="Status",Lqa="Mode",Uqa="Attempts",Bqa="Retry",Fqa="Retry queued",zqa="Event {{event}} reset to pending; next job tick will process.",qqa="Retry failed",Hqa="No webhook events yet.",Vqa="Stripe events will appear here once your endpoint is registered.",Kqa="Loading payload...",Gqa="Last error",Wqa="Payload (JSON)",Yqa={title:jqa,description:Nqa,statusFilter:Dqa,eventTypeFilter:Mqa,receivedAt:Eqa,eventType:Iqa,status:Oqa,mode:Lqa,attempts:Uqa,retry:Bqa,retrySubmittedTitle:Fqa,retrySubmittedBody:zqa,retryFailedTitle:qqa,empty:Hqa,emptyHint:Vqa,detailLoa
827ding:Kqa,lastError:Gqa,payload:Wqa},Qqa="API Keys",Xqa="ÐолÑÑиÑе пеÑвÑй key за 10 ÑекÑнд",Zqa="Ðе ÑдалоÑÑ ÑкопиÑоваÑÑ",Jqa={label:"РазÑеÑеннÑе модели",allModels:"ÐÑе модели",allHint:"РазÑеÑÐµÐ½Ñ Ð²Ñе модели в каÑалоге.",noModels:"ÐÐµÑ Ð´Ð¾ÑÑÑпнÑÑ
моделей.",selected:"ÐÑбÑано: {{count}}",someHint:"РазÑеÑено моделей: {{count}}."},eHa={label:"Теги",placeholder:"ÐобавÑÑе Ñег и нажмиÑе Enter",remove:"УдалиÑÑ"},tHa="СоздавайÑе scoped keys Ð´Ð»Ñ production, staging и команднÑÑ
пÑоÑеÑÑов.",nHa="ÐбновиÑÑ",aHa="Key по ÑмолÑаниÑ",oHa="Ðазвание key",sHa="Создание...",rHa="СоздаÑÑ key",iHa="ÐолнÑй key, показÑваеÑÑÑ Ð¾Ð´Ð¸Ð½ Ñаз",lHa="СкопиÑоваÑÑ API key",cHa="СкопиÑовано",dHa="ÐопиÑоваÑÑ",uHa="СкопиÑÑйÑе и ÑоÑ
ÑаниÑе его ÑейÑаÑ. ÐоÑле закÑÑÑÐ¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ полнÑй key болÑÑе нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ ÑвидеÑÑ.",mHa="Я ÑоÑ
Ñанил",pHa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ API keys",fHa="ÐовÑоÑиÑÑ",gHa="API keys пока неÑ",hHa="СоздайÑе пеÑвÑй key, ÑÑÐ¾Ð±Ñ Ð¾ÑпÑавлÑÑÑ Ð·Ð°Ð¿ÑоÑÑ ÑеÑез OneHop.",yHa={label:"API keys",tags:"Теги",name:"Ðазвание",key:"Key",status:"СÑаÑÑÑ",created:"Создан",action:"ÐейÑÑвие",usage:"ÐÑполÑзование",quota:"ÐимиÑ",expires:"ÐÑÑекаеÑ",lastUsed:"ÐоÑледнее иÑполÑзование"},vHa="ÐÑозваÑÑ",bHa="ÐÑозваÑÑ {{name}}? ÐÑо дейÑÑвие нелÑÐ·Ñ Ð¾ÑмениÑÑ.",xHa="ÐазовиÑе key. ÐимиÑÑ Ð¸ ÑÑок дейÑÑÐ²Ð¸Ñ Ð¾ÑÑаÑÑÑÑ Ð² ÑаÑÑиÑеннÑÑ
наÑÑÑойкаÑ
, еÑли они вам не нÑжнÑ.",$Ha="ÐеÑÑÑнÑй Ð»Ð¸Ð¼Ð¸Ñ credit",wHa="ÐÑÑекаеÑ",kHa="Ðез огÑаниÑений",CHa="СоÑ
Ñанение...",SHa="СоÑ
ÑаниÑÑ",AHa="ÐÑмена",THa={title:"ÐÑклÑÑеннÑе и оÑозваннÑе",description:"ÐÑклÑÑеннÑе или оÑозваннÑе key. ÐÑклÑÑеннÑй key можно вклÑÑиÑÑ Ñнова, оÑозваннÑе оÑÑаÑÑÑÑ Ð´Ð»Ñ Ð¸ÑÑоÑии."},RHa={title:"ÐÐµÑ Ð°ÐºÑивнÑÑ
key",description:"ÐовÑоÑно вклÑÑиÑе оÑклÑÑеннÑй key ниже или ÑоздайÑе новÑй."},PHa={import:"ÐмпоÑÑиÑоваÑÑ Ð² CCS",client:"ÐÐ»Ð¸ÐµÐ½Ñ CC-Switch",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"CC Switch оÑкÑÑÑ Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½Ð¸Ñелем. ÐÑÑавÑÑе ÑÑда ÑоÑ
ÑанÑннÑй API key.",checking:"ÐÑовеÑка ÑовмеÑÑимоÑÑиâ¦",blocked:{title:"{{client}} не Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ ÑÑÐ¾Ñ ÐºÐ»ÑÑ",body:"«{{keyName}}» ÑазÑеÑÐ°ÐµÑ ÑолÑко модели, коÑоÑÑе {{client}} не Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ. ÐмпоÑÑ Ð¿ÑÐ¸Ð²ÐµÐ´ÐµÑ Ðº оÑибкам.",adjust:"ÐзмениÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹",forceImport:"ÐÑе Ñавно импоÑÑиÑоваÑÑ (не бÑÐ´ÐµÑ ÑабоÑаÑÑ)"},pin:{title:"ÐмпоÑÑиÑоваÑÑ Ð´Ð»Ñ {{client}} как {{model}}",body:"«{{keyName}}» не вклÑÑÐ°ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ {{client}}. ÐÐ¾Ñ ÐºÐ°Ðº запÑоÑÑ {{client}} бÑдÑÑ Ð¼Ð°ÑÑÑÑÑизиÑоваÑÑÑÑ ÑеÑез ÑÑого пÑовайдеÑа:",adjust:"ÐзмениÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹",confirm:"ÐмпоÑÑиÑоваÑÑ Ñ {{model}}"}},_Ha={search:"ÐоиÑк",searchPlaceholder:"ÐÑкаÑÑ Ð¿Ð¾ имени или ÑÑÑÑикÑÑ key",status:"СÑаÑÑÑ",allStatus:"ÐÑе ÑÑаÑÑÑÑ",clear:"ÐÑиÑÑиÑÑ ÑилÑÑÑÑ",empty:"ÐÐµÑ key, подÑ
одÑÑиÑ
под ÑÑи ÑилÑÑÑÑ",emptyDescription:"ÐÑиÑÑиÑе поиÑк или ÑилÑÑÑ ÑÑаÑÑÑа, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð²Ñе keys.",mobileTitle:"ФилÑÑÑÑ"},jHa={active:"ÐкÑивен",inactive:"ÐÑклÑÑен",revoked:"ÐÑозван",expired:"ÐÑÑек",quota_exhausted:"ÐÐ¸Ð¼Ð¸Ñ Ð¸ÑÑеÑпан"},NHa={today:"Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ {{requests}} req · {{credit}}",days30:"30 д {{requests}} req · {{credit}}"},DHa={use:"ÐаннÑе подклÑÑениÑ",edit:"РедакÑиÑоваÑÑ",enable:"ÐклÑÑиÑÑ",disable:"ÐÑклÑÑиÑÑ",delete:"УдалиÑÑ"},MHa="ÐÑполÑзоваÑÑ API key",EHa="ÐÑполÑзÑйÑе ÑоÑ
ÑаненнÑй key Ñ gateway OneHop. ÐолнÑй key показÑваеÑÑÑ ÑолÑко пÑи Ñоздании.",IHa={baseUrl:"Base URL",keyHint:"API key",authorization:"Ðаголовок Authorization",env:"ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑжениÑ",curl:"cURL",revealing:"РаÑÑиÑÑовÑваем keyâ¦",fullKeyUnavailable:"ÐолнÑй key показÑваеÑÑÑ ÑолÑко пÑи Ñоздании. ÐÑполÑзÑйÑе ÑоÑ
Ñаненное знаÑение или ÑоздайÑе новÑй key, еÑли поÑеÑÑли его.",protocolEndpoints:"Endpoints пÑоÑокола"},OHa="РаÑÑиÑеннÑе наÑÑÑойки",LHa="СоздаÑÑ API key",UHa="РедакÑиÑоваÑÑ API key",BHa={label:"ÐоÑÑÑп к моделÑм",all:"ÐÑе модели",limited:"ÐгÑаниÑиÑÑ ÐºÐ¾Ð½ÐºÑеÑнÑми моделÑми",allHint:"ÐÑÐ¾Ñ key Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзÑваÑÑ Ð²Ñе модели, вклÑÑÐ°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ñе позже.",snapshotHint:"ТолÑко вÑбÑаннÑе модели; новÑе модели не добавлÑÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки.",snapshotHintEdit:"ТолÑко вÑбÑаннÑе модели; новÑе модели не добавлÑÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. ÐеÑеклÑÑение на ÐÑе модели Ð·Ð°Ð¼ÐµÐ½Ð¸Ñ ÑÑÐ¾Ñ Ð±ÐµÐ»Ñй ÑпиÑок.",searchPlaceholder:"ÐоиÑк моделейâ¦",selectAllResults:"ÐÑбÑаÑÑ Ð²Ñе ÑезÑлÑÑаÑÑ ({{count}})",selectedCount:"ÐÑбÑано {{count}} / {{max}}",clear:"ÐÑиÑÑиÑÑ",hiddenSelected:"{{hidden}} из {{total}} вÑбÑаннÑÑ
ÑкÑÑÑÑ ÑекÑÑим ÑилÑÑÑом",selectVendor:"ÐÑбÑаÑÑ Ð²Ñе {{vendor}}, вÑбÑано {{on}} из {{total}}",emptyTitle:"ÐодÑ
одÑÑиÑ
моделей неÑ",emptyDescription:"ÐопÑобÑйÑе дÑÑгой Ñип или поиÑковÑй запÑоÑ.",loadFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸",loadFailedHint:"ÐовÑоÑиÑе попÑÑÐºÑ Ð¸Ð»Ð¸ веÑниÑеÑÑ Ðº ÐÑе модели.",type:{all:"ÐÑе",text:"ТекÑÑ",image:"ÐзобÑажение",video:"Ðидео",embedding:"Embedding"},pickAtLeastOne:"ÐÑбеÑиÑе Ñ
оÑÑ Ð±Ñ Ð¾Ð´Ð½Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¸Ð»Ð¸ веÑниÑеÑÑ Ðº ÐÑе модели.",limitReached:"Reached the {{max}}-model limit"},FHa={title:"API key Ñоздан",subtitle:"{{name}} гоÑов â подклÑÑиÑе его ÑейÑаÑ.",onceWarning:"ÐоказÑваеÑÑÑ Ð¾Ð´Ð¸Ð½ Ñаз. ÐÑ ÑможеÑе оÑкÑÑÑÑ ÐµÐ³Ð¾ Ñнова позже, но лÑÑÑе ÑкопиÑоваÑÑ ÑейÑаÑ.",connect:"ÐодклÑÑиÑÑ",done:"ÐоÑово"},zHa="IP",qHa="ÐÑозван {{date}}",HHa={title:Qqa,emptyTitle:Xqa,copyFailed:Zqa,allowedModels:Jqa,tags:eHa,description:tHa,refresh:nHa,defaultName:aHa,keyName:oHa,creating:sHa,createKey:rHa,fullKeyTitle:iHa,copyApiKey:lHa,copied:cHa,copy:dHa,fullKeyDescription:uHa,savedIt:mHa,loadFailed:pHa,retry:fHa,empty:gHa,emptyDescription:hHa,table:yHa,revoke:vHa,revokeConfirm:bHa,formDescription:xHa,monthlyCreditLimit:$Ha,expiresAt:wHa,unlimited:kHa,saving:CHa,save:SHa,cancel:AHa,parked:THa,noActive:RHa,ccswitch:PHa,filters:_Ha,status:jHa,usage:NHa,actions:DHa,useTitle:MHa,useDescription:EHa,use:IHa,advancedSettings:OHa,createTitle:LHa,editTitle:UHa,scope:BHa,created:FHa,lastUsedIp:zHa,revokedAt:qHa},VHa="Audit Logs",KHa="High-risk admin actions, by action and time.",GHa="Action",WHa="Clear",YHa={ops_user_update_status:"СÑаÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½",ops_users_allowlist_add:"ÐоÑÑÑп к ÑегиÑÑÑаÑии добавлен",ops_users_allowlist_update:"ÐоÑÑÑп к ÑегиÑÑÑаÑии обновлен",ops_users_allowlist_invite:"ÐÑиглаÑение Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к ÑегиÑÑÑаÑии оÑпÑавлено",ops_users_allowlist_revoke:"ÐоÑÑÑп к ÑегиÑÑÑаÑии Ñдален",ops_users_allowlist_restore:"ÐоÑÑÑп к ÑегиÑÑÑаÑии воÑÑÑановлен",ops_model_create:"ÐÐ¾Ð´ÐµÐ»Ñ Ñоздана",ops_model_update:"ÐÐ¾Ð´ÐµÐ»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð°",ops_model_update_status:"СÑаÑÑÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ обновлен",sub2api_pool_create:"ÐÑл маÑÑÑÑÑизаÑии Ñоздан",sub2api_pool_test:"ÐÑл маÑÑÑÑÑизаÑии пÑоÑеÑÑиÑован",sub2api_pool_rotate_secret:"СекÑÐµÑ Ð¼Ð°ÑÑÑÑÑизаÑии ÑоÑиÑован"},QHa="Audit logs",XHa="No audit entries",ZHa="Time",JHa="Severity",eVa="Target",tVa={ai_model:"Model",sub2a
827pi_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},nVa="Тип Ñели",aVa="ID запÑоÑа",oVa={title:VHa,description:KHa,action:GHa,clear:WHa,actions:YHa,label:QHa,empty:XHa,time:ZHa,severity:JHa,target:eVa,targetTypes:tVa,targetType:nVa,requestId:aVa},sVa="ÐойÑи в OneHop",rVa="ÐведиÑе код",iVa="ÐÑодолжиÑе ÑеÑез Google или email",lVa="ÐведиÑе email, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÐºÐ¾Ð´",cVa="ÐведиÑе 6-знаÑнÑй код, оÑпÑавленнÑй на {{email}}",dVa="ÐÑодолжиÑÑ Ñ Google",uVa="ÐÑодолжиÑÑ Ñ email",mVa="или",pVa="Email",fVa="ÐÑпÑавиÑÑ ÐºÐ¾Ð´ подÑвеÑждениÑ",gVa="ÐÑпÑавка...",hVa="ÐодÑвеÑдиÑÑ",yVa="ÐÑовеÑка...",vVa="ÐовÑоÑиÑÑ ÑеÑез {{seconds}} Ñ",bVa="ÐÑпÑавиÑÑ ÐºÐ¾Ð´ еÑе Ñаз",xVa="ÐÑодолжаÑ, Ð²Ñ ÑоглаÑаеÑеÑÑ Ñ",$Va="УÑловиÑми",wVa="ÐолиÑикой конÑиденÑиалÑноÑÑи",kVa={signIn:"ÐойÑи",signOutFailed:"Ðе ÑдалоÑÑ Ð²ÑйÑи",sendCodeFailed:"Ðе ÑдалоÑÑ Ð¾ÑпÑавиÑÑ ÐºÐ¾Ð´",notAllowed:"ÐÑÐ¾Ñ Ð°Ð´ÑÐµÑ ÐµÑÑ Ð½Ðµ одобÑен Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа. ÐбÑаÑиÑеÑÑ Ðº админиÑÑÑаÑоÑÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿ÑоÑиÑÑ Ð´Ð¾ÑÑÑп.",invalidCode:"ÐедейÑÑвиÑелÑнÑй код",codeIncorrect:"Ðод невеÑнÑй, попÑобÑйÑе еÑе Ñаз",googleFailed:"Ðе ÑдалоÑÑ Ð²Ð¾Ð¹Ñи ÑеÑез Google",verifyHuman:"ÐавеÑÑиÑе пÑовеÑкÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ",verifyUnavailable:"ÐÑовеÑка на Ñеловека вÑеменно недоÑÑÑпна. ÐойдиÑе ÑеÑез Google вÑÑе или повÑоÑиÑе попÑÑÐºÑ Ð¿Ð¾Ð·Ð¶Ðµ."},CVa={signInTitle:sVa,enterCodeTitle:rVa,methodIntro:iVa,emailStepIntro:lVa,codeIntro:cVa,continueGoogle:dVa,continueEmail:uVa,or:mVa,emailLabel:pVa,sendCode:fVa,sending:gVa,verify:hVa,verifying:yVa,resendIn:vVa,resendCode:bVa,termsPrefix:xVa,terms:$Va,privacy:wVa,errors:kVa},SVa="Ðиллинг",AVa="ÐополнÑйÑе Credits, акÑивиÑÑйÑе кÑÐ¿Ð¾Ð½Ñ Ð¸ пÑоÑмаÑÑивайÑе акÑивноÑÑÑ wallet.",TVa={bonuses:"ÐонÑÑÑ",topups:"ÐополнениÑ",usage:"РаÑÑ
од"},RVa={available:"ÐаÑиÑлено",availableHint:"Уже вклÑÑено в доÑÑÑпнÑй баланÑ",frozen:"ÐÐ¶Ð¸Ð´Ð°ÐµÑ (замоÑожено)",frozenHint:"ÐÑÐ´ÐµÑ Ð´Ð¾ÑÑÑпно ÑеÑез ~{{days}} дн.",frozenHintGeneric:"ÐÑÐ´ÐµÑ Ð´Ð¾ÑÑÑпно поÑле пеÑиода ÑдеÑжаниÑ",title:"ÐонÑÑÑ Ð·Ð° пÑиглаÑениÑ",viewDetails:"ÐоÑмоÑÑеÑÑ Ð´ÐµÑали пÑиглаÑений"},PVa={noUsage:"Ðа поÑледние 30 дней ÑаÑÑ
ода неÑ",perDay:"{{amount}} в ÑÑеднем/денÑ",daysLeft:"â {{days}} дн. пÑи ÑекÑÑем Ñемпе"},_Va={amountUsd:"СÑмма (USD)",minAmountHint:"ÐинималÑное пополнение â {{amount}}.",apply:"ÐÑимениÑÑ",get:"ÐолÑÑиÑÑ",onehopCredits:"OneHop credits",pay:"ÐплаÑиÑÑ",poweredByStripe:"ÐаÑиÑено Stripe",poweredBy:"ÐаÑиÑено {{provider}}",secureCheckout:"ÐаÑиÑÑнное ÑазмеÑÑнное оÑоÑмление заказа",secureCheckoutShort:"ÐаÑиÑÑÐ½Ð½Ð°Ñ Ð¾Ð¿Ð»Ð°Ñа",taxExclusiveNotice:"ÐÑименимÑе налоги ÑаÑÑÑиÑÑваÑÑÑÑ Ð¿Ñи оплаÑе и добавлÑÑÑÑÑ Ðº ÑÑой ÑÑмме.",presets:"ÐÑедÑÑÑановленнÑе ÑÑммÑ",promoCode:"ÐÑомокод",promoCodePlaceholder:"ÐведиÑе код",serviceFee:"СеÑвиÑнÑй ÑбоÑ",title:"ÐополниÑÑ",topupAmount:"СÑмма пополнениÑ",totalDue:"ÐÑого к оплаÑе",payCta:"ÐплаÑиÑÑ {{amount}}",previewing:"ÐÑовеÑкаâ¦",discount:"Скидка по кÑпонÑ",couponBelowMin:"СÑмма Ñо Ñкидкой ÑлиÑком мала â ÑвелиÑÑÑе ÑÑÐ¼Ð¼Ñ Ð¸Ð»Ð¸ попÑобÑйÑе дÑÑгой код.",maintenanceTitle:"ÐлаÑежи вÑеменно недоÑÑÑпнÑ",maintenanceDescription:"ÐлаÑежи вÑеменно недоÑÑÑпнÑ. СвÑжиÑеÑÑ Ñ Ð½Ð°Ð¼Ð¸ в Telegram, еÑли вам нÑжно оплаÑиÑÑ.",contactTelegram:"СвÑзаÑÑÑÑ Ñ Ð½Ð°Ð¼Ð¸ в Telegram",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"ÐплаÑа кÑипÑовалÑÑой (USDC / USDT)",payOnStripe:"ÐплаÑа вÑполнÑеÑÑÑ Ð½Ð° заÑиÑÑнной ÑÑÑаниÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° Str
827ipe.",payOnProvider:"ÐплаÑа вÑполнÑеÑÑÑ Ð½Ð° заÑиÑÑнной ÑÑÑаниÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° {{provider}}.",payOnHostedCheckout:"ÐплаÑа вÑполнÑеÑÑÑ Ð½Ð° заÑиÑÑнной ÑазмеÑÑнной ÑÑÑаниÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð°.",amountPrecision:"{{provider}} пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑÐ¼Ð¼Ñ Ð² USD не более Ñем Ñ 2 знаками поÑле запÑÑой. ÐзмениÑе ÑÑÐ¼Ð¼Ñ Ð¸Ð»Ð¸ пÑомокод.",couponBonus:"ÐонÑÑ Ð¿Ð¾ кÑпонÑ",couponBonusExpiry:"ÐонÑÑнÑе кÑедиÑÑ Ð¸ÑÑекаÑÑ ÑеÑез {{days}} дней поÑле оплаÑÑ.",couponInvalid:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ нелÑÐ·Ñ Ð¿ÑимениÑÑ â попÑобÑйÑе дÑÑгой.",couponErrors:{limitReached:"ÐÑ Ñже иÑполÑзовали ÑÑÐ¾Ñ ÐºÐ¾Ð´ макÑималÑное ÑиÑло Ñаз.",invalid:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ недейÑÑвиÑелен.",expired:"СÑок дейÑÑÐ²Ð¸Ñ ÑÑого кода иÑÑÑк.",exhausted:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ полноÑÑÑÑ Ð¸ÑполÑзован.",unavailable:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ ÑейÑÐ°Ñ Ð¸ÑполÑзÑеÑÑÑ â попÑобÑйÑе ÑÑÑÑ Ð¿Ð¾Ð·Ð¶Ðµ."},tierBonus:"ÐонÑÑ Ð°ÐºÑии",tierBonusExpiry:"ÐонÑÑнÑе кÑедиÑÑ Ð¸ÑÑекаÑÑ ÑеÑез {{days}} дней поÑле оплаÑÑ.",tierBonusRestricted:"ÐонÑÑнÑе кÑедиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ поÑÑаÑиÑÑ ÑолÑко на: {{models}}.",nextTierPercent:"ÐополниÑе еÑÑ Ð½Ð° {{amount}}, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ {{percent}}% бонÑÑнÑÑ
кÑедиÑов.",nextTierBonus:"ÐополниÑе еÑÑ Ð½Ð° {{amount}}, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ {{bonus}} бонÑÑнÑÑ
кÑедиÑов.",tierCapReached:"ÐÑ Ñже полÑÑили макÑималÑнÑй бонÑÑ Ð¿Ð¾ ÑÑой акÑии."},jVa="ÐобавиÑÑ Credits",NVa="Создание...",DVa="ÐоÑÑÑпнÑй Credit",MVa="ÐополниÑÑ",EVa="ÐлаÑежи ÑеÑез Stripe",IVa="СÑмма (USD)",OVa="ÐÑедÑÑÑановленнÑе ÑÑÐ¼Ð¼Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ",LVa="ÐкÑивиÑоваÑÑ ÐºÑпон",UVa="Ðод кÑпона",BVa="ÐкÑиваÑиÑ...",FVa="ÐкÑивиÑоваÑÑ",zVa="ÐÑпон акÑивиÑован. ÐÐ°Ð»Ð°Ð½Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑеÑÑÑ.",qVa="ÐеÑеÑ
од к безопаÑÐ½Ð¾Ð¼Ñ checkout...",HVa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ ÑÐ²Ð¾Ð´ÐºÑ Ð±Ð¸Ð»Ð»Ð¸Ð½Ð³Ð°",VVa="Ðополнение не ÑдалоÑÑ",KVa="Ðкладки акÑивноÑÑи биллинга",GVa="ТÑанзакÑии",WVa="ÐаÑиÑÐ»ÐµÐ½Ð¸Ñ Credit",YVa="Тип ÑÑанзакÑии",QVa="ÐÑÑоÑник",XVa="ТÑанзакÑий пока неÑ",ZVa="ÐополнениÑ, ÑпиÑÐ°Ð½Ð¸Ñ Ð¸ наÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑвÑÑÑÑ Ð·Ð´ÐµÑÑ.",JVa="ÐапиÑи ledger",e9a="ÐÑемÑ",t9a="Тип",n9a="СÑмма",a9a="ÐаланÑ",o9a="ÐаÑиÑлений пока неÑ",s9a="ÐонÑÑÑ ÑегиÑÑÑаÑии, кÑÐ¿Ð¾Ð½Ñ Ð¸ ÑÑÑнÑе наÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑвÑÑÑÑ Ð·Ð´ÐµÑÑ.",r9a="СÑаÑÑÑ",i9a={successTitle:"ÐлаÑÑж полÑÑен",polling:"ÐаÑиÑлÑем Credit в ваÑÑ wallet... около 30 ÑекÑнд.",delayed:"ÐаÑиÑление задеÑживаеÑÑÑ. ÐбновиÑе ÑÑÑаниÑÑ ÑеÑез минÑÑÑ Ð¸Ð»Ð¸ пÑовеÑÑÑе Ñеки в Stripe.",cancelledTitle:"ÐлаÑÑж оÑменÑн",cancelledBody:"СпиÑание не пÑоизоÑло. ÐопÑобÑйÑе Ñнова, когда бÑдеÑе гоÑовÑ.",failedTitle:"ÐлаÑÑж не пÑоÑÑл",failedBody:"Ðе ÑдалоÑÑ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð¿Ð»Ð°ÑÑж. ÐÑедиÑÑ Ð½Ðµ наÑиÑленÑ. ÐопÑобÑйÑе Ñнова или вÑбеÑиÑе дÑÑгой ÑпоÑоб оплаÑÑ."},l9a={text:"Credits â ÑÑо пÑедоплаÑеннÑй Ð±Ð°Ð»Ð°Ð½Ñ ÑеÑвиÑа, а не банковÑкий вклад. ÐзÑаÑÑ
одованнÑе Credits не возвÑаÑаÑÑÑÑ. ÐÑе ÑÐµÐ½Ñ ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² USD. См.",tosLink:"УÑловиÑ"},c9a="Чеки",d9a="ÐÑкÑÑваем...",u9a="Ðе ÑдалоÑÑ Ð¾ÑкÑÑÑÑ Ð¿Ð¾ÑÑал биллинга",m9a={title:"Ðедавние пополнениÑ",subtitle:"Ðа поÑледние 90 дней. ÐозвÑÐ°Ñ Ð´Ð¾ÑÑÑпен в ÑеÑение 24 ÑаÑов.",loading:"ÐагÑÑжаем пополнениÑ...",date:"ÐаÑа",amount:"СÑмма",credits:"Credit",status:"СÑаÑÑÑ",refund:"ÐеÑнÑÑÑ",alreadyRefunded:"Уже возвÑаÑено",windowExpired:"Ðкно возвÑаÑа иÑÑекло (24 ÑаÑа)",confirmTitle:"ÐодÑвеÑдиÑе возвÑаÑ",confirmBody:"ÐозвÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð±ÑабоÑан Stripe в ÑеÑение 1-3 ÑабоÑиÑ
дней. ÐÐ»Ñ Ð²Ð¾Ð·Ð²ÑаÑов по иниÑиаÑиве полÑзоваÑÐµÐ»Ñ Ð¿ÑименÑеÑÑÑ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ Ð¿Ð»Ð°ÑÑоÑÐ¼Ñ ({{fee}}).",amountLabel:"СÑмма возвÑаÑа (USD)",maxLabel:"ÐакÑимÑм ${{value}}",requestedLabel:"ÐапÑоÑено к возвÑаÑÑ",platformFeeLabel:"ÐомиÑÑÐ¸Ñ Ð¿Ð»Ð°ÑÑоÑÐ¼Ñ ({{fee}})",cardReturnLabel:"ÐеÑнÑÑÑÑ Ð½Ð° ваÑÑ ÐºÐ°ÑÑÑ",bonusForfeitureHint:"ÐÑомо-Credit, наÑиÑленнÑе вмеÑÑе Ñ ÑÑим пополнением, бÑдÑÑ Ð¿ÑопоÑÑионалÑно аннÑлиÑованÑ.",cancel:"ÐÑмена",confirm:"ÐÑоÑмиÑÑ Ð²Ð¾Ð·Ð²ÑаÑ",submitting:"ÐÑпÑавлÑем...",refundSubmittedTitle:"ÐозвÑÐ°Ñ Ð¾ÑпÑавлен",refundSubmittedBody:"Stripe веÑнÑÑ ÑÑедÑÑва на ваÑÑ ÐºÐ°ÑÑÑ Ð² ÑеÑение 1-3 ÑабоÑиÑ
дней.",refundFailedTitle:"ÐозвÑÐ°Ñ Ð½Ðµ ÑдалÑÑ",balance:"ÐаланÑ",confirmAmount:"ÐеÑнÑÑÑ {{amount}}"},p9a={title:"Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ баланÑе",description:"СообÑим, когда Ð±Ð°Ð»Ð°Ð½Ñ ÑÑÐ°Ð½ÐµÑ Ð½Ð¸Ð·ÐºÐ¸Ð¼.",emailLabel:"УведомлÑÑÑ Ð¿Ð¾ e-mail",webhookLabel:"Webhook",autorechargeLabel:"ÐвÑопополнение",autorechargeUnsupported:"ÐвÑопополнение недоÑÑÑпно Ñ ÑекÑÑего плаÑÑжного пÑовайдеÑа.",autorechargeAddCardHint:"добавÑÑе каÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð±Ð°Ð»Ð°Ð½Ñ",autorechargeTopUp:"ÐополнÑÑÑ Ð½Ð°",autorechargeWhenBelow:"когда Ð±Ð°Ð»Ð°Ð½Ñ Ð¾Ð¿ÑÑÑиÑÑÑ Ð½Ð¸Ð¶Ðµ",autorechargeThreshold:"ÐоÑог авÑопополнениÑ",autorechargeAmount:"СÑмма авÑопополнениÑ",autorechargeDisabledFailures:"ÐвÑопополнение оÑклÑÑено поÑле неÑколÑкиÑ
неÑдаÑнÑÑ
ÑпиÑаний подÑÑд. ÐбновиÑе каÑÑÑ Ð¸ вклÑÑиÑе Ñнова.",autorechargeIncomplete:"УкажиÑе ÑÑÐ¼Ð¼Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸ поÑог болÑÑе $0.",test:"ТеÑÑ",testing:"ТеÑÑиÑованиеâ¦",testQueued:"ТеÑÑÐ¾Ð²Ð°Ñ Ð´Ð¾ÑÑавка поÑÑавлена в оÑеÑÐµÐ´Ñ â пÑовеÑÑÑе Ð²Ð°Ñ ÑндпоинÑ",testFailed:"Ðе ÑдалоÑÑ Ð¿Ð¾ÑÑавиÑÑ ÑеÑÑовÑÑ Ð´Ð¾ÑÑÐ°Ð²ÐºÑ Ð² оÑеÑедÑ",signingSecret:"СекÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи",secretOnSave:"СекÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи ÑоздаÑÑÑÑ Ð¿Ñи ÑоÑ
Ñанении.",rotate:"СмениÑÑ",secretRotated:"СекÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи обновлÑн",rotateFailed:"Ðе ÑдалоÑÑ ÑмениÑÑ ÑекÑеÑ",secretCopied:"СекÑÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸Ñи ÑкопиÑован",saved:"ÐаÑÑÑойки Ñведомлений ÑоÑ
ÑаненÑ",saveFailed:"Ðе ÑдалоÑÑ ÑоÑ
ÑаниÑÑ Ð½Ð°ÑÑÑойки Ñведомлений",loadFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð½Ð°ÑÑÑойки Ñведомлений",thresholdRequired:"УкажиÑе поÑог болÑÑе $0, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ ÑведомлениÑ.",webhookUrlRequired:"ÐведиÑе https:// URL Ð´Ð»Ñ webhook.",thresholdOrderBad:"ÐоÑог ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ â¥ Ð¿Ð¾Ñога авÑопополнениÑ.",card:"ÐаÑÑа",changeCard:"ÐзмениÑÑ",removeCard:"УдалиÑÑ",cardRemoved:"ÐаÑÑа Ñдалена",cardRemoveFailed:"Ðе ÑдалоÑÑ ÑдалиÑÑ ÐºÐ°ÑÑÑ",cardSetupFailed:"Ðе ÑдалоÑÑ Ð½Ð°ÑаÑÑ Ð¿ÑивÑÐ·ÐºÑ ÐºÐ°ÑÑÑ",lowBalanceGroup:"ÐповеÑÐµÐ½Ð¸Ñ Ð¾ низком баланÑе",thresholdLabel:"ÐоÑог оповеÑениÑ"},f9a={title:"ÐÑÑоÑÐ¸Ñ ÑÑанзакÑий",idSearch:"ID ÑÑанзакÑии",amountRange:"Ðиапазон ÑÑÐ¼Ð¼Ñ (USD)",min:"Ðин.",max:"ÐакÑ.",clear:"ÐÑиÑÑиÑÑ",retry:"ÐовÑоÑиÑÑ",empty:"Ð ÑÑом диапазоне ÑÑанзакÑий неÑ",date:"ÐаÑа",typeMethod:"Тип / меÑод",description:"ÐпиÑание",action:"ÐейÑÑвие",prevMonth:"ÐÑедÑдÑÑий меÑÑÑ",nextMonth:"СледÑÑÑий меÑÑÑ",viewInvoices:"ÐоÑмоÑÑеÑÑ ÑÑеÑа",emptyNew:"ТÑанзакÑий пока неÑ",emptyNewDesc:"ÐоÑле Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð´ÐµÑÑ Ð¿Ð¾ÑвÑÑÑÑ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ, бонÑÑÑ Ð¸ возвÑаÑÑ.",topUpCta:"ÐополниÑÑ",emptyFiltered:"ÐодÑ
одÑÑиÑ
ÑÑанзакÑий неÑ",emptyFilteredDesc:"ÐÑиÑÑиÑе ÑилÑÑÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑÑÑе диапазон даÑ.",clearFilters:"ÐÑиÑÑиÑÑ ÑилÑÑÑÑ"},g9a="ÐÐ°Ð»Ð°Ð½Ñ Ð½Ð¸Ð·ÐºÐ¸Ð¹ и Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑеÑваÑÑ Ð·Ð°Ð¿ÑоÑÑ. ÐополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð¸Ð»Ð¸ вклÑÑиÑе авÑопополнение.",h9a="ÐÐ°Ð»Ð°Ð½Ñ Ð½Ð¸Ð·ÐºÐ¸Ð¹ и Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑеÑваÑÑ Ð·Ð°Ð¿ÑоÑÑ. ÐополниÑе баланÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ.",y9a={creditPurchase:"Ðополнение баланÑа",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"ÐонÑÑ Ð¿Ð¾ кÑпонÑ",referralCashback:"РеÑеÑалÑнÑй кÑÑбÑк",referralInviteeCashback:"ÐонÑÑ Ð¿ÑиглаÑÑнного",redeemCode:"Ðод погаÑÐµÐ½Ð¸Ñ {{code}}",redeemCodeReversal:"ÐÑмена кода погаÑениÑ",stripeRefund:"ÐозвÑÐ°Ñ Stripe",bonusReversal:"ÐозвÑÐ°Ñ Ð±Ð¾Ð½ÑÑа (по возвÑаÑÑ ÑÑедÑÑв)"}
827,v9a={title:"ЦелевÑе кÑедиÑÑ",subtitle:"ÐонÑÑнÑе кÑедиÑÑ, доÑÑÑпнÑе ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑеделÑннÑÑ
моделей â оÑделÑно Ð¾Ñ Ð²Ð°Ñего баланÑа.",onlyModels:"ТолÑко {{models}}",onlyModelsGeneric:"ÐгÑаниÑеннÑе модели",validUntil:"ÐейÑÑвÑÐµÑ Ð´Ð¾ {{date}}",noExpiry:"Ðез ÑÑока дейÑÑвиÑ",useInChat:"Use in chat"},b9a={card:"ÐаÑÑа",alipay:"Alipay",wechatPay:"WeChat Pay"},x9a={title:"Ðод пополнениÑ",description:"ÐÑÑÑ ÐºÐ¾Ð´ пополнениÑ? ÐведиÑе его, ÑÑÐ¾Ð±Ñ Ð·Ð°ÑиÑлиÑÑ Ð½Ð¾Ð¼Ð¸Ð½Ð°Ð» на баланÑ.",placeholder:"ÐапÑимеÑ: OHR-XXXXXXXX",redeem:"ÐкÑивиÑоваÑÑ",redeeming:"ÐкÑиваÑиÑâ¦",success:"Ðа Ð±Ð°Ð»Ð°Ð½Ñ Ð·Ð°ÑиÑлено {{amount}}",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ недейÑÑвиÑелен.",expired:"СÑок дейÑÑÐ²Ð¸Ñ ÑÑого кода иÑÑÑк.",alreadyRedeemed:"ÐÑÐ¾Ñ ÐºÐ¾Ð´ Ñже иÑполÑзован.",perUserLimit:"ÐÑ Ð´Ð¾ÑÑигли лимиÑа погаÑений Ð´Ð»Ñ ÑÑой паÑÑии."}},$9a={title:SVa,description:AVa,breakdown:TVa,referralRewards:RVa,burnRate:PVa,topup:_Va,addCredits:jVa,creating:NVa,availableCredit:DVa,topUp:MVa,poweredByStripe:EVa,amountUsd:IVa,presetAmounts:OVa,redeemCoupon:LVa,couponCode:UVa,redeeming:BVa,redeem:FVa,couponRedeemed:zVa,redirecting:qVa,summaryFailed:HVa,topupFailed:VVa,tabsLabel:KVa,transactions:GVa,creditGrants:WVa,transactionType:YVa,source:QVa,noTransactions:XVa,noTransactionsDescription:ZVa,ledgerEntries:JVa,time:e9a,type:t9a,amount:n9a,balance:a9a,noGrants:o9a,noGrantsDescription:s9a,status:r9a,topupBanner:i9a,compliance:l9a,receipts:c9a,openingPortal:d9a,portalFailed:u9a,recentTopups:m9a,alerts:p9a,history:f9a,lowBalanceWarning:g9a,lowBalanceWarningNoAutoTopup:h9a,ledgerDesc:y9a,earmarked:v9a,paymentMethod:b9a,redeemCard:x9a},w9a="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð³ÑаÑик",k9a="ÐÐµÑ Ð´Ð°Ð½Ð½ÑÑ
",C9a="Ðока Ð½ÐµÑ Ð´Ð°Ð½Ð½ÑÑ
Ð´Ð»Ñ Ð³ÑаÑика.",S9a={errorTitle:w9a,emptyTitle:k9a,emptyDescription:C9a},A9a={copy:"ÐопиÑоваÑÑ",regenerate:"СгенеÑиÑоваÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾",shareComingSoon:"ÐоделиÑÑÑÑ (ÑкоÑо)",download:"СкаÑаÑÑ",copyLink:"ÐопиÑоваÑÑ ÑÑÑлкÑ",newChat:"ÐовÑй ÑаÑ",deleteChat:"УдалиÑÑ ÑаÑ",openConversationList:"ÐÑкÑÑÑÑ ÑпиÑок диалогов",openSettings:"ÐаÑÑÑойки ÑаÑа",collapseSidebar:"СвеÑнÑÑÑ Ð±Ð¾ÐºÐ¾Ð²ÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ",expandSidebar:"РазвеÑнÑÑÑ Ð±Ð¾ÐºÐ¾Ð²ÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ",cancel:"ÐÑмена",apply:"ÐÑимениÑÑ",newChatTooltip:"СоздаÑÑ Ð½Ð¾Ð²Ñй ÑаÑ",copied:"СкопиÑовано"},T9a={placeholderReady:"ÐаÑниÑе новÑй диалог...",placeholderNoModel:"СнаÑала вÑбеÑиÑе Ð¼Ð¾Ð´ÐµÐ»Ñ Ð²ÑÑе",attachmentTooLarge:"Файл болÑÑе {{limit}}, его нелÑÐ·Ñ Ð·Ð°Ð³ÑÑзиÑÑ",attachmentUnsupported:"ÐеподдеÑживаемÑй Ñип Ñайла. ÐÑполÑзÑйÑе PNG, JPEG, WebP, GIF, MP4, WebM или MOV.",unsupportedVision:"ÐÑа Ð¼Ð¾Ð´ÐµÐ»Ñ Ð½Ðµ пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ видео. СмениÑе моделÑ, пÑежде Ñем пеÑеÑаÑкиваÑÑ ÑайлÑ.",send:"ÐÑпÑавиÑÑ",abort:"ÐÑÑановиÑÑ",attachImage:"ÐобавиÑÑ Ð¸Ð·Ð¾Ð±Ñажение",attachMedia:"ÐобавиÑÑ Ð¸Ð·Ð¾Ð±Ñажение или видео",removeAttachment:"УдалиÑÑ",shortcutSend:"оÑпÑавиÑÑ",shortcutNewLine:"Ð½Ð¾Ð²Ð°Ñ ÑÑÑока",shortcutAbort:"оÑÑановиÑÑ",frameFirst:"ÐеÑвÑй кадÑ",frameLast:"ÐоÑледний кадÑ",frameReference:"РеÑеÑенÑ",imageMode:"ÐенеÑаÑÐ¸Ñ Ð¸Ð·Ð¾Ð±Ñажений",videoMode:"ÐенеÑаÑÐ¸Ñ Ð²Ð¸Ð´ÐµÐ¾",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"ÐбдÑмÑвание",reasoningOff:"ÐÑкл.",reasoningAlways:"ÐÑегда вклÑÑено",placeholderTopupRequired:"ÐÑа Ð¼Ð¾Ð´ÐµÐ»Ñ Ð´Ð¾ÑÑÑпна аккаÑнÑам Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼ â пополниÑе баланÑ, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ÐµÑ Ð·Ð´ÐµÑÑ"},R9a={modelUnavailable:"ÐÐ¾Ð´ÐµÐ»Ñ {{model}} ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпна. ÐÐ°Ñ prompt ÑоÑ
Ñанен.",rateLimited:"СлиÑком много паÑаллелÑнÑÑ
запÑоÑов. ÐовÑоÑиÑе попÑÑÐºÑ ÑÑÑÑ Ð¿Ð¾Ð·Ð¶Ðµ.",accountDisabled:"ÐÑа ÑÑеÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¾ÑклÑÑена и не Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжаÑÑ ÑаÑ.",attachmentsUploading:"ÐзобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÐµÑÑ Ð·Ð°Ð³ÑÑжаÑÑÑÑ. ÐодождиÑе пеÑед оÑпÑавкой.",attachmentsFailed:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¸Ð·Ð¾Ð±Ñажение. УдалиÑе его и повÑоÑиÑе попÑÑÐºÑ Ð¿ÐµÑед оÑпÑавкой."},P9a={title:"ÐаÑниÑе ÑеÑÑиÑоваÑÑ Ð»ÑбÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð·Ð´ÐµÑÑ.",body:"ÐбÑайÑеÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ñ Ð»Ñбой моделÑÑ. ÐÑполÑзование ÑпиÑÑваеÑÑÑ Ñ Ð²Ð°Ñего PAYG-коÑелÑка.",starters:{compareModels:"СÑавниÑÑ GPT-5.5 и Claude Opus на одной задаÑе по кодÑ",anal
827yzeImage:"ÐÑоанализиÑоваÑÑ Ð°ÑÑ
иÑекÑÑÑнÑÑ Ð´Ð¸Ð°Ð³ÑÐ°Ð¼Ð¼Ñ Ð¸ кÑаÑко опиÑаÑÑ ÑиÑки",draftPrompt:"ÐодгоÑовиÑÑ system prompt Ð´Ð»Ñ Ð°Ð³ÐµÐ½Ñа поддеÑжки",generateImage:"СгенеÑиÑоваÑÑ hero-изобÑажение пÑодÑкÑа в ÑиÑÑом SaaS-ÑÑиле"}},_9a={untitled:"Ðез названиÑ",deleteConfirm:'УдалиÑÑ "{{title}}"?',emptyTitle:"Ðиалогов пока неÑ",emptyBody:"ЧÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ, иÑполÑзÑйÑе + ÐовÑй ÑÐ°Ñ Ð²ÑÑе.",listLabel:"СпиÑок диалогов",groups:{today:"СегоднÑ",yesterday:"ÐÑеÑа",earlier:"Ранее"},menu:{rename:"ÐеÑеименоваÑÑ",delete:"УдалиÑÑ"},deleteTitle:"УдалиÑÑ ÑазговоÑ?"},j9a={paygWallet:"PAYG-коÑелек"},N9a={chooseModel:"ÐÑбÑаÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ",searchPlaceholder:"ÐоиÑк моделей...",emptyTitle:"Ðодели не найденÑ",emptyBody:"ÐопÑобÑйÑе дÑÑгой поиÑковÑй запÑÐ¾Ñ Ð¸Ð»Ð¸ вкладкÑ.",protocols:"{{count}} пÑоÑоколов",context:"{{value}} ctx",tabs:{all:"ÐÑе",text:"ТекÑÑ",image:"ÐзобÑажение",video:"Ðидео"},maxOut:"вÑвод {{value}}",unavailable:"ÐÑеменно недоÑÑÑпно",requiresTopup:"ÐополниÑе, ÑÑÐ¾Ð±Ñ Ð¾ÑкÑÑÑÑ"},D9a={title:"ÐаÑÑÑойки ÑаÑа",protocol:"ÐÑоÑокол",unlimited:"Ðез огÑаниÑений",fields:{memory_limit:{label:"ÐамÑÑÑ ÑаÑа"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"ÐакÑ. tokens",placeholder:"128000"},service_tier:{label:"УÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑлÑживаниÑ",options:{standard:"СÑандаÑÑнÑй",priority:"ÐÑиоÑиÑеÑнÑй",flex:"Ðибкий"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"напÑимеÑ, 2000"},stop_sequences:{label:"Stop Sequences",placeholder:"ЧеÑез запÑÑÑÑ, напÑÐ¸Ð¼ÐµÑ END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"ÐведиÑе system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"ÐеÑвнÑй",explicit:"ЯвнÑй"}},image_size:{label:"РазÑеÑение изобÑажениÑ"},image_resolution:{label:"РазÑеÑение"},image_quality:{label:"ÐаÑеÑÑво изобÑажениÑ",options:{Auto:"Auto",auto:"Auto",low:"Ðизкое",medium:"СÑеднее",high:"ÐÑÑокое"}},video_ratio:{label:"СооÑноÑение ÑÑоÑон"},video_resolution:{label:"РазÑеÑение видео"},video_duration_seconds:{label:"ÐлиÑелÑноÑÑÑ"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"ÐолиÑеÑÑво изобÑажений"},image_aspect_ratio:{label:"СооÑноÑение ÑÑоÑон"},reasoning_effort:{label:"ÐнÑенÑивноÑÑÑ ÑаÑÑÑждениÑ",options:{none:"ÐÑкл.",minimal:"ÐинималÑнаÑ",low:"ÐизкаÑ",medium:"СÑеднÑÑ",high:"ÐÑÑокаÑ",xhigh:"ÐÑÐµÐ½Ñ Ð²ÑÑокаÑ",max:"ÐакÑималÑнаÑ"}},reasoning_pro:{label:"Режим Pro"},reasoning_context:{label:"ÐонÑекÑÑ ÑаÑÑÑждениÑ",options:{auto:"ÐвÑо",current_turn:"ТекÑÑий Ñ
од",all_turns:"ÐÑе Ñ
одÑ"}},reasoning_enabled:{label:"ÐбдÑмÑвание"},reasoning_always:{label:"ÐбдÑмÑвание",value:"ÐÑегда вклÑÑено"}}},M9a={estimating:"оÑенка...",settling:"ÑаÑÑеÑ...",input:"вÑ
од",output:"вÑÑ
од",milliseconds:"ms",realCost:"ФакÑиÑеÑÐºÐ°Ñ ÑÑоимоÑÑÑ",latency:"ÐадеÑжка",logDetail:"ÐеÑали лога"},E9a={copied:"СÑÑлка на изобÑажение ÑкопиÑована",expired:"СÑÑлка на изобÑажение иÑÑекла. СкопиÑÑйÑе ÑÑÑлкÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑкÑÑÑÑ Ñнова, или ÑгенеÑиÑÑйÑе заново.",attachment:"[изобÑажение]"},I9a={message:"ÐÑÐ¾Ñ ÑÐ°Ñ Ð¾Ð¿Ð»Ð°ÑиваеÑÑÑ Ð¸Ð· ваÑего PAYG-коÑелÑка",balance:"ÐаланÑ",billingLink:"Ðиллинг",dismiss:"ÐакÑÑÑÑ"},O9a={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},L9a={trigger:"ÐопиÑоваÑÑ ÐºÐ°Ðº код",copied:"СкопиÑовано как {{format}}",failed:"Ðе ÑдалоÑÑ ÑкопиÑоваÑÑ",failedDescription:"РазÑеÑение на доÑÑÑп к бÑÑеÑÑ Ð¾Ð±Ð¼ÐµÐ½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñовано бÑаÑзеÑом."},U9a={interrupted:"[ÐÑеÑвано]",sending:"оÑпÑавка"},B9a={title:"Ход ÑаÑÑÑждениÑ",duration:"ÐÑмал {{seconds}}s"},F9a={title:"ÐенеÑаÑÐ¸Ñ Ð²Ð¸Ð´ÐµÐ¾ ÑкоÑо поÑвиÑÑÑ",body:"ÐÑа Ð¼Ð¾Ð´ÐµÐ»Ñ Ð´Ð¾ÑÑÑпна Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка, но оÑпÑавка видео пока не вклÑÑена.",switchToText:"ÐеÑеклÑÑиÑÑÑÑ Ð½Ð° ÑекÑÑовÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ"},z9a={imageGenerating:"ÐенеÑиÑÑем изобÑажение",videoGenerating:"ÐенеÑиÑÑем видео",stage:{queued:"РоÑеÑеди",routing:"ÐаÑÑÑÑÑизаÑиÑ",generating:"ÐенеÑаÑиÑ",storing:"СоÑ
Ñанение",settling:"РаÑÑÑÑ"}},q9a={INSUFFICIENT_CREDITS:"ÐедоÑÑаÑоÑно ÑÑедÑÑв",RATE_LIMITED:"СлиÑком много запÑоÑов",rate_limit_error:"СлиÑком много запÑоÑов",MODEL_NO_VISION:"ÐÑа Ð¼Ð¾Ð´ÐµÐ»Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²Ð²Ð¾Ð´ изобÑажений",CONTENT_REFUSED:"ÐÐ¾Ð´ÐµÐ»Ñ Ð¾Ñклонила ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑоÑ",EMPTY_RESPONSE:"ÐÐ¾Ð´ÐµÐ»Ñ Ð²ÐµÑнÑла пÑÑÑой оÑвеÑ",upstream_error:"ÐÑибка вÑÑеÑÑоÑÑего ÑеÑвиÑа",overloaded_error:"ÐÑÑеÑÑоÑÑий ÑеÑÐ²Ð¸Ñ Ð¿ÐµÑегÑÑжен",upstream_invalid_json:"ÐекоÑÑекÑнÑй оÑÐ²ÐµÑ Ð²ÑÑеÑÑоÑÑего ÑеÑвиÑа",stream_read_error:"ÐоÑок оÑвеÑа пÑеÑван",invali
827d_api_key:"ÐÑибка аÑÑенÑиÑикаÑии вÑÑеÑÑоÑÑего ÑеÑвиÑа",model_unavailable:"ÐÐ¾Ð´ÐµÐ»Ñ Ð²Ñеменно недоÑÑÑпна",no_image:"ÐзобÑажение не ÑгенеÑиÑовано",no_body:"ÐÐµÑ Ð¾ÑвеÑа Ð¾Ñ Ð²ÑÑеÑÑоÑÑего ÑеÑвиÑа",http_error:"ÐапÑÐ¾Ñ Ð½Ðµ вÑполнен",session_create_failed:"Ðе ÑдалоÑÑ ÑоздаÑÑ ÑеÑÑиÑ"},H9a={title:"ÐополниÑе баланÑ, ÑÑÐ¾Ð±Ñ Ð¾ÑкÑÑÑÑ ÑÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ",body:"Ðна доÑÑÑпна аккаÑнÑам Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼. ÐÑÐ±Ð°Ñ ÑÑмма оÑкÑÑÐ²Ð°ÐµÑ ÐµÑ ÑÑазÑ, а Ð±Ð°Ð»Ð°Ð½Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ ÑпиÑÑваеÑÑÑ Ð¿Ð¾ ÑакÑÑ Ð¸ÑполÑзованиÑ.",cta:"ÐополниÑÑ"},V9a={actions:A9a,composer:T9a,errors:R9a,empty:P9a,sidebar:_9a,header:j9a,modelSelector:N9a,settings:D9a,metrics:M9a,image:E9a,payg:I9a,earmark:O9a,copyAsCode:L9a,status:U9a,thinking:B9a,video:F9a,media:z9a,errorCodes:q9a,topupLock:H9a},K9a="ÐагÑÑзка...",G9a="ÐккаÑнÑ",W9a="ЯзÑк",Y9a="ÐойÑи",Q9a="ÐÑйÑи",X9a="ÐÑÑ
од...",Z9a="СоÑ
ÑаниÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ",J9a="СоÑ
Ñанение...",eKa="СоÑ
Ñанено.",tKa="Ðазад",nKa="ÐовÑоÑиÑÑ",aKa="Скидка 5% на ÑеÑвиÑнÑй ÑÐ±Ð¾Ñ Ð¿Ñи пополнении.",oKa="СоÑ
ÑаниÑÑ",sKa="ÐÑмена",rKa="ÐÑиÑÑиÑÑ",iKa="СбÑоÑиÑÑ",lKa="СкопиÑовано",cKa="Ðе ÑдалоÑÑ ÑкопиÑоваÑÑ",dKa="ÐакÑÑÑÑ",uKa="ÐÑого",mKa={timestamp:"ÐеÑка вÑемени",local:"ÐокалÑное вÑемÑ",relative:"ÐÑноÑиÑелÑно"},pKa="ÐопиÑоваÑÑ",fKa={title:"ÐÑкÑойÑе в бÑаÑзеÑе",description:"ÐÑ Ð¿ÑоÑмаÑÑиваеÑе ÑÑÑаниÑÑ Ð²Ð¾ <b>вÑÑÑоенном бÑаÑзеÑе пÑиложениÑ</b>, где <b>вÑ
од ÑеÑез Google и пÑовеÑка на Ñеловека не ÑабоÑаÑÑ</b>. ÐÑкÑойÑе ÐµÑ Ð² ÑиÑÑемном бÑаÑзеÑе, ÑÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ.",hintWechat:"ÐажмиÑе Ð¼ÐµÐ½Ñ Â·Â·Â· в пÑавом веÑÑ
нем ÑÐ³Ð»Ñ Ð¸ вÑбеÑиÑе «ÐÑкÑÑÑÑ Ð² бÑаÑзеÑе».",hintGeneric:"Ð Ð¼ÐµÐ½Ñ Ð² пÑавом веÑÑ
нем ÑÐ³Ð»Ñ Ð²ÑбеÑиÑе «ÐÑкÑÑÑÑ Ð² бÑаÑзеÑе / Safari».",copyLink:"СкопиÑоваÑÑ ÑÑÑлкÑ",continueAnyway:"ÐÑÑ Ñавно пÑодолжиÑÑ"},gKa="ÐÑе",hKa="ÐкÑивно",yKa="ÐеобÑзаÑелÑно",vKa="УдалиÑÑ",bKa={loading:K9a,account:G9a,language:W9a,signIn:Y9a,signOut:Q9a,signingOut:X9a,saveChanges:Z9a,saving:J9a,saved:eKa,back:tKa,retry:nKa,topUpPromo:aKa,save:oKa,cancel:sKa,clearAll:rKa,reset:iKa,copied:lKa,copyFailed:cKa,dismiss:dKa,total:uKa,time:mKa,copy:pKa,inAppBrowser:fKa,all:gKa,active:hKa,optional:yKa,remove:vKa},xKa="ÐанелÑ",$Ka="СледиÑе за credit, иÑполÑзованием и ÑоÑÑоÑнием gateway в одной конÑоли.",wKa="СоздаÑÑ API key",kKa={creditBalance:"ÐÐ°Ð»Ð°Ð½Ñ credit",requestsToday:"ÐапÑоÑÑ ÑегоднÑ",activeApiKeys:"ÐкÑивнÑе API keys"},CKa={title:"Ðинамика иÑполÑзованиÑ",description:"ÐапÑоÑÑ Ð¸ ÑпиÑаннÑй credit за поÑледние 14 дней.",viewUsage:"ÐÑкÑÑÑÑ usage",loading:"ÐагÑÑзка динамики usage",empty:"ÐÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ° неÑ",emptyDescription:"ÐаннÑе поÑвÑÑÑÑ Ð·Ð´ÐµÑÑ Ð¿Ð¾Ñле пеÑвÑÑ
запÑоÑов."},SKa={title:"ÐкÑивноÑÑÑ credit",description:"СпиÑаннÑй credit по днÑм за поÑледние 90 дней.",total:"ÐÑог за 90 дней",loading:"ÐагÑÑзка акÑивноÑÑи",activeDays:"{{count}} акÑивнÑÑ
дней за поÑледние {{days}} дней",less:"ÐенÑÑе",more:"ÐолÑÑе"},AKa={title:"СÑÑÑкÑÑÑа иÑполÑзованиÑ",description:"ÐомпакÑнÑй Ð¾Ð±Ð·Ð¾Ñ Ð¸Ð½ÑенÑивноÑÑи ÑаÑÑ
одов, обÑÑма tokens и модели Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑим иÑполÑзованием.",activeDays:"ÐкÑивнÑе дни",ofDays:"из {{days}} дней",avgDailyCredit:"СÑедний credit в денÑ",nonZeroDays:"по акÑивнÑм днÑм",peakDay:"ÐиковÑй денÑ",noPeak:"ÐÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ° неÑ",tokens:"Tokens",topModel:"ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ",creditShare:"ÐÐ¾Ð»Ñ ÑпиÑанного credit"},TKa={title:"ÐÑÑÑÑÑй ÑÑаÑÑÑ",requests7d:"ÐапÑоÑÑ Ð·Ð° 7 дней",creditToday:"Credit поÑÑаÑен ÑегоднÑ",credit7d:"Credit поÑÑаÑен за 7 дней"},RKa={title:"ÐоÑледние запÑоÑÑ",description:"ÐоÑледние вÑÐ·Ð¾Ð²Ñ gateway по ваÑим keys.",viewRecords:"ÐÑкÑÑÑÑ Ð·Ð°Ð¿Ð¸Ñи",table:{label:"ÐоÑледние запÑоÑÑ",model:"ÐоделÑ",status:"СÑаÑÑÑ",tokens:"Tokens",credit:"Credit",time:"ÐÑемÑ",apiKey:"API key"},empty:"ÐапÑоÑов пока неÑ",emptyDescription:"СоздайÑе API key, оÑпÑавÑÑе запÑоÑ, и поÑледние вÑÐ·Ð¾Ð²Ñ Ð¿Ð¾ÑвÑÑÑÑ Ð·Ð´ÐµÑÑ."},PKa={title:"ÐÑпÑавÑÑе пеÑвÑй запÑоÑ",description:"СовмеÑÑимо Ñ OpenAI. СоздайÑе key, задайÑе {{env}}, заÑем вÑзовиÑе gateway."},_Ka={credit:"Credit",requests:"ÐапÑоÑÑ"},jKa={title:xKa,description:$Ka,createApiKey:wKa,cards:kKa,usageTrend:CKa,activity:SKa,usageMix:AKa,quickHealth:TKa,recent:RKa,firstRequest:PKa,tooltip:_Ka},NKa="ÐÑбÑаÑÑ Ð²Ñе ÑÑÑоки",DKa="ÐÑбÑаÑÑ ÑÑÑÐ¾ÐºÑ {{row}}",MKa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ",EKa="ÐÐµÑ Ð´Ð°Ð½Ð½ÑÑ
",IKa="ÐÐµÑ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð¾ÑобÑажениÑ.",OKa="ÐодÑобнее",LKa="ÐÑе {{count}} деÑалей",UKa="ÐÑкÑÑÑÑ Ð´ÐµÑали",BKa={selectAllRows:NKa,selectRow:DKa,errorTitle:MKa,emptyTitle:EKa,emptyDescription:IKa,moreDetails:OKa,moreDetailsWithCount:LKa,openRow:UKa},FKa="ÐоÑледний ÑаÑ",zKa="СегоднÑ",qKa="ÐÑеÑа",HKa="ÐоÑледние 7 дней",VKa="ÐоÑледние 30 дней",KKa="ÐÑÐ¾Ñ Ð¼ÐµÑÑÑ",GKa="Ðо меÑÑÑам",WKa="ÐÑоизволÑно",YKa="ÐÑе вÑемÑ",QKa="ÐÑбÑаÑÑ Ð´Ð°ÑÑ",XKa="ÐÑмена",ZKa="ÐÑимениÑÑ",JKa="ÐаÑа наÑала должна бÑÑÑ ÑанÑÑе даÑÑ Ð¾ÐºÐ¾Ð½ÑаниÑ.",eGa="Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð°",tGa="ÐÑедÑдÑÑий меÑÑÑ",nGa="СледÑÑÑий меÑÑÑ",aGa={last1h:FKa,today:zKa,yesterday:qKa,last7d:HKa,last30d:VKa,thisMonth:KKa,byMonth:GKa,custom:WKa,all:YKa,selectDate:QKa,cancel:XKa,apply:ZKa,reversedError:JKa,presetsAriaLabel:eGa,previousMonth:tGa,nextMonth:nGa},oGa="ÐккаÑÐ½Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен",sGa="ÐккаÑÐ½Ñ Ð¸Ð½Ð¸ÑиализиÑÑеÑÑÑ",rGa={title:"ÐккаÑÐ½Ñ Ð¿ÑиоÑÑановлен",description:"ÐÑÐ¾Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð¹Ñи, но доÑÑÑп к конÑоли и gateway-запÑоÑÑ Ð¿ÑиоÑÑановленÑ.",detail:"ÐÑли ÑÑо вÑглÑÐ´Ð¸Ñ Ð½ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð¾, ÑвÑжиÑеÑÑ Ñ supp
827ort Ñ email ÑÑого аккаÑнÑа."},iGa={accountUnavailable:oGa,accountInitializing:sGa,accountRestricted:rGa},lGa="ÐеÑплаÑнÑе ÑокенÑ",cGa="ÐжедневнÑй Ð»Ð¸Ð¼Ð¸Ñ Ð±ÐµÑплаÑнÑÑ
Ñокенов Ð´Ð»Ñ Ð²ÑбÑаннÑÑ
моделей â он обновлÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. С ваÑего коÑелÑка ниÑего не ÑпиÑÑваеÑÑÑ.",dGa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð²Ð°Ñ Ð»Ð¸Ð¼Ð¸Ñ Ð±ÐµÑплаÑнÑÑ
Ñокенов.",uGa="ÐÑе модели",mGa="ÐкÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ {{date}}",pGa={daily:"Ðжедневно",weekly:"ÐженеделÑно"},fGa={daily:"ÐбновлÑеÑÑÑ ÐµÐ¶ÐµÐ´Ð½ÐµÐ²Ð½Ð¾",weekly:"ÐбновлÑеÑÑÑ ÐµÐ¶ÐµÐ½ÐµÐ´ÐµÐ»Ñно",localTime:"ваÑе меÑÑное вÑÐµÐ¼Ñ {{time}}",countdown:"ÑледÑÑÑее обновление ÑеÑез {{duration}}",refreshingSoon:"ÑкоÑо обновиÑÑÑ"},gGa={title:"ÐÐµÑ Ð°ÐºÑивнÑÑ
акÑий Ñ Ð±ÐµÑплаÑнÑми Ñокенами",description:"Ðогда бÑÐ´ÐµÑ Ð¿ÑоÑ
одиÑÑ Ð°ÐºÑÐ¸Ñ Ñ Ð±ÐµÑплаÑнÑми Ñокенами, Ð²Ð°Ñ ÐµÐ¶ÐµÐ´Ð½ÐµÐ²Ð½Ñй Ð»Ð¸Ð¼Ð¸Ñ Ð¿Ð¾ÑвиÑÑÑ Ð·Ð´ÐµÑÑ."},hGa={title:"ÐÑдаÑа беÑплаÑнÑÑ
Ñокенов на ваÑем аккаÑнÑе пÑиоÑÑановлена",body:"ÐÑÐ¾Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ Ð¿Ð¾Ñ
ож на ÑаÑÑÑ Ð¼Ð°ÑÑовой ÑегиÑÑÑаÑии, поÑÑÐ¾Ð¼Ñ Ð±ÐµÑплаÑÐ½Ð°Ñ Ð²ÑдаÑа пока пÑиоÑÑановлена. ÐÑли ÑÑо оÑибка, напиÑиÑе нам по адÑеÑÑ"},yGa="Ñокенов",vGa="Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð¾ÑÑалоÑÑ {{value}} Ñокенов",bGa={label:"ÐиÑÑмо пÑи иÑÑеÑпании",hint:"ÐолÑÑайÑе пиÑÑмо, когда дневнÑе беÑплаÑнÑе ÑÐ¾ÐºÐµÐ½Ñ Ð·Ð°ÐºÐ°Ð½ÑиваÑÑÑÑ."},xGa={crg_freetoken_daily_cn5:"ÐиÑайÑкие модели · беÑплаÑнÑе ÑÐ¾ÐºÐµÐ½Ñ ÐµÐ¶ÐµÐ´Ð½ÐµÐ²Ð½Ð¾"},$Ga={title:lGa,description:cGa,loadFailed:dGa,allModels:uGa,campaignEnds:mGa,cadence:pGa,refresh:fGa,empty:gGa,paused:hGa,tokensUnit:yGa,remainingToday:vGa,emailToggle:bGa,campaigns:xGa},wGa="Ðоги",kGa="ÐÑовеÑÑйÑе ÑÑоимоÑÑÑ, задеÑжкÑ, tokens, ÑÑаÑÑÑ Ð¸ ÑÐ¸Ð³Ð½Ð°Ð»Ñ routing по ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð·Ð°Ð¿ÑоÑÑ.",CGa={copiedCurl:"curl ÑкопиÑован",copiedId:"ID запÑоÑа ÑкопиÑован",copyCurl:"ÐопиÑоваÑÑ ÐºÐ°Ðº curl",copyFailed:"Ðе ÑдалоÑÑ ÑкопиÑоваÑÑ",copyId:"ÐопиÑоваÑÑ ID запÑоÑа",menu:"ÐейÑÑÐ²Ð¸Ñ ÑÑÑоки",openTab:"ÐÑкÑÑÑÑ Ð² новой вкладке"},SGa={prompt:"Prompt",ratio:"ÐÐ¾Ð»Ñ Ð¿Ð¾Ð¿Ð°Ð´Ð°Ð½Ð¸Ð¹",read:"ЧÑение кÑÑа",title:"ÐÐ¾Ð»Ñ Ð¿Ð¾Ð¿Ð°Ð´Ð°Ð½Ð¸Ð¹ в кÑÑ"},AGa={confirm:"ÐÑмениÑÑ Ð·Ð°Ð´Ð°ÑÑ",failed:"Ðе ÑдалоÑÑ Ð¾ÑмениÑÑ Ð·Ð°Ð´Ð°ÑÑ",keep:"ÐÑÑавиÑÑ",message:"ÐÑа задаÑа вÑÑ ÐµÑÑ Ð² оÑеÑеди. ÐÑи оÑмене она не бÑÐ´ÐµÑ Ð¾Ð±ÑабоÑана, и ÑпиÑание не пÑоизойдеÑ.",success:"ÐадаÑа оÑменена",title:"ÐÑмениÑÑ Ð·Ð°Ð´Ð°ÑÑ?",pending:"ÐÑмена..."},TGa={cacheHit:"Ðопадание в кÑÑ",cost:"СÑоимоÑÑÑ",ip:"IP",latency:"ÐадеÑжка",model:"ÐоделÑ",source:"ÐÑÑоÑник",status:"СÑаÑÑÑ",stream:"ÐоÑоковаÑ",time:"ÐÑемÑ",tokens:"Tokens",tps:"Throughput"},RGa={trigger:"ÐаÑÑÑойка ÑÑолбÑов"},PGa={body:"ÐÑпÑавÑÑе запÑÐ¾Ñ ÑеÑез OneHop, и он поÑвиÑÑÑ Ð·Ð´ÐµÑÑ.",title:"Ð ÑÑом диапазоне логов неÑ"},_Ga={all:"ÐÑе",apiKey:"API key",cost:"СÑоимоÑÑÑ (USD)",desktopDateRangeAria:"ÐÑбÑаÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð´Ð°Ñ Ð½Ð° компÑÑÑеÑе",finishReason:"ÐÑиÑина завеÑÑениÑ",latency:"ÐадеÑжка (s)",max:"ÐакÑ.",min:"Ðин.",mobileDateRangeAria:"ÐÑбÑаÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ð´Ð°Ñ Ð½Ð° мобилÑном",model:"ÐоделÑ",modelsSelected:"ÐÑбÑано: {{count}}",more:"ÐолÑÑе ÑилÑÑÑов",refresh:"ÐбновиÑÑ",request:"ÐоиÑк по ID запÑоÑа",requestIdLabel:"ID запÑоÑа",status:"СÑаÑÑÑ",stream
827:"ÐоÑоковаÑ",time:"ÐÑемÑ",type:"Тип",mobileTitle:"ФилÑÑÑÑ"},jGa={requests:"запиÑей на ÑÑой ÑÑÑаниÑе",times:"вÑÐµÐ¼Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ в"},NGa={rowsPer:"СÑÑок"},DGa={all:"Ðа вÑÑ Ð²ÑемÑ",custom:"ÐÑоизволÑно",last1h:"ÐоÑледний 1 ÑаÑ",last30d:"ÐоÑледние 30 дней",last7d:"ÐоÑледние 7 дней",thisMonth:"ÐÑÐ¾Ñ Ð¼ÐµÑÑÑ",today:"СегоднÑ",yesterday:"ÐÑеÑа"},MGa={title:"ÐлиенÑ",unknown:"user-agent не пеÑедан",unknownShort:"ÐеизвеÑÑно"},EGa={output:"ÐÑÑ
однÑе tokens",rate:"СкоÑоÑÑÑ",title:"Throughput",window:"Ðкно генеÑаÑии"},IGa={title:"ÐапÑоÑ",openDetail:"ÐÑкÑÑÑÑ Ð´ÐµÑали запÑоÑа",copy:"ÐопиÑоваÑÑ ID",copied:"СкопиÑовано",copyFailed:"Ðе ÑдалоÑÑ ÑкопиÑоваÑÑ",close:"ÐакÑÑÑÑ",loading:"ÐагÑÑзкаâ¦",response:"ÐÑвеÑ",sections:{request:"ÐапÑоÑ",routing:"ÐаÑÑÑÑÑизаÑиÑ",tokens:"Tokens",cost:"Разбивка ÑÑоимоÑÑи",performance:"ÐÑоизводиÑелÑноÑÑÑ",error:"ÐÑибка",outcome:"РезÑлÑÑаÑ",multimodal:"ÐÑлÑÑимодалÑноÑÑÑ"},fields:{requestId:"ID запÑоÑа",time:"ÐÑемÑ",apiKey:"API key",userAgent:"User-Agent",billingMode:"Режим ÑаÑиÑикаÑии",onehopModel:"ÐÐ¾Ð´ÐµÐ»Ñ OneHop",endpoint:"Endpoint",firstToken:"ÐеÑвÑй token",total:"ÐбÑÐ°Ñ Ð´Ð»Ð¸ÑелÑноÑÑÑ",throughput:"Throughput",stream:"ÐоÑок",clientIp:"IP клиенÑа",finishReason:"ÐÑиÑина завеÑÑениÑ",mediaType:"Тип медиа",imageCount:"ÐзобÑажениÑ",imageSize:"РазмеÑ",errorCode:"Ðод",errorMessage:"СообÑение",requestedModel:"ÐапÑоÑÐµÐ½Ð½Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ"},billingMode:{token:"Ðа token",per_request:"Ðа запÑоÑ",image:"Ðа изобÑажение"},timeline:{heading:"ÐизненнÑй Ñикл",received:"ÐапÑÐ¾Ñ Ð¿Ð¾Ð»ÑÑен",routed:"ÐаÑÑÑÑÑизиÑован",failed:"ÐÑибка",generated:"СгенеÑиÑовано",metered:"УÑÑено",billed:"СпиÑано"},downloadMedia:"СкаÑаÑÑ"},OGa={success:"ÑÑпеÑно",completed:"завеÑÑено",failed:"оÑибка",pending:"ожидание",repairing:"иÑпÑавление",queued:"в оÑеÑеди",running:"вÑполнÑеÑÑÑ",cancelled:"оÑменено",expired:"иÑÑекло"},LGa={chat:"ЧаÑ",image:"ÐзобÑажение",video:"Ðидео"},UGa={stop:"Stop",length:"ÐÐ¸Ð¼Ð¸Ñ Ð´Ð»Ð¸Ð½Ñ",tool_calls:"ÐÑÐ·Ð¾Ð²Ñ Ð¸Ð½ÑÑÑÑменÑов",content_filter:"ФилÑÑÑ ÐºÐ¾Ð½ÑенÑа",error:"ÐÑибка"},BGa={true:"ÐоÑоковÑй",false:"ÐепоÑоковÑй"},FGa={title:"Разбивка ÑÑоимоÑÑи"},zGa={title:"Разбивка tokens",prompt:"Ðвод",completion:"ÐÑвод",imageOutput:"Tokens вÑвода изобÑажениÑ",cacheRead:"ЧÑение кÑÑа",cacheWrite:"ÐапиÑÑ ÐºÑÑа",cacheWrite5m:"ÐапиÑÑ ÐºÑÑа 5m",cacheWrite1h:"ÐапиÑÑ ÐºÑÑа 1h",total:"ÐÑого"},qGa={timestamp:"ÐеÑка вÑемени",local:"ÐокалÑное вÑемÑ",relative:"ÐÑноÑиÑелÑно"},HGa={inputCost:"СÑоимоÑÑÑ Ð²Ñ
ода",outputCost:"СÑоимоÑÑÑ Ð²ÑÑ
ода",cacheReadCost:"СÑоимоÑÑÑ ÑÑÐµÐ½Ð¸Ñ ÐºÑÑа",cacheWriteCost:"СÑоимоÑÑÑ Ð·Ð°Ð¿Ð¸Ñи кÑÑа",inputPrice:"Цена вÑ
ода",outputPrice:"Цена вÑÑ
ода",total:"ÐÑого",officialPrice:"ÐÑиÑиалÑÐ½Ð°Ñ Ñена",saved:"ÐкономиÑ",factor:{textInput:"Ðвод ÑекÑÑа",textOutput:"ÐÑвод ÑекÑÑа",imageInput:"Ðвод изобÑажениÑ",imageOutput:"ÐÑвод изобÑажениÑ",perCallImage:"Ðа изобÑажение",videoPerSecond:"Ðидео",videoPerCall:"Ðидео",cacheRead:"ЧÑение кÑÑа",cacheWrite:"ÐапиÑÑ ÐºÑÑа",cacheWrite5m:"ÐапиÑÑ ÐºÑÑа (5m)",cacheWrite1h:"ÐапиÑÑ ÐºÑÑа (1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ изобÑ.",perSecond:"/ Ñ",perCall:"/ вÑзов"},promoBasis:"Ðо акÑии",promoSaved:"Скидка по акÑии",free
827Covered:"ÐеÑплаÑнÑй Ð»Ð¸Ð¼Ð¸Ñ ({{tokens}} Ñокенов)",freeCoveredNoCount:"ÐеÑплаÑнÑй лимиÑ"},VGa={noPreview:"ÐÑедпÑоÑмоÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпен",video:"Ðидео"},KGa={free:"ÐеÑплаÑно"},GGa={title:wGa,description:kGa,actions:CGa,cacheHit:SGa,cancelJob:AGa,col:TGa,columns:RGa,empty:PGa,filter:_Ga,meta:jGa,pager:NGa,range:DGa,source:MGa,tps:EGa,drawer:IGa,status:OGa,type:LGa,finishReason:UGa,stream:BGa,costBreakdown:FGa,tokensBreakdown:zGa,time:qGa,userCost:HGa,export:{label:"ÐкÑпоÑÑ CSV",exporting:"ÐкÑпоÑÑâ¦",done:"ÐкÑпоÑÑиÑовано ÑÑÑок: {{n}}.",truncated:"ÐкÑпоÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð¿ÐµÑвÑе {{n}} ÑÑÑок. СÑзÑÑе пеÑиод, ÑÑÐ¾Ð±Ñ ÑкÑпоÑÑиÑоваÑÑ Ð¾ÑÑалÑное.",failed:"Ðе ÑдалоÑÑ ÑкÑпоÑÑиÑоваÑÑ. ÐопÑобÑйÑе еÑÑ Ñаз."},media:VGa,cost:KGa},WGa="Ðодели",YGa="ÐÑоÑмаÑÑивайÑе вÑе доÑÑÑпнÑе модели, Ð´Ð»Ð¸Ð½Ñ ÐºÐ¾Ð½ÑекÑÑа, ÑÐµÐ½Ñ Ð½Ð° ввод/вÑвод и возможноÑÑи, а Ñакже добавлÑйÑе ÑаÑÑÑе модели в избÑанное.",QGa={all:"ÐÑе",favorites:"ÐзбÑанное",benefit:"ÐÑгода",hot:"ÐопÑлÑÑное",free:"Free"},XGa={capability:"Тип",allCapabilities:"ÐÑе ÑипÑ",capability_text:"ТекÑÑ",capability_image:"ÐзобÑажение",capability_audio:"ÐÑдио",capability_video:"Ðидео",provider:"ÐÑовайдеÑ",allProviders:"ÐÑе пÑовайдеÑÑ",protocol:"ÐÑоÑокол",allProtocols:"ÐÑе пÑоÑоколÑ",sort:"СоÑÑиÑовка",search:"ÐоиÑк",searchPlaceholder:"ÐÐ¾Ð´ÐµÐ»Ñ / пÑовайдеÑ",allContexts:"ÐÑÐ±Ð°Ñ Ð´Ð»Ð¸Ð½Ð°",context:"ÐонÑекÑÑ",mobileTitle:"ФилÑÑÑÑ"},ZGa="РекомендÑемÑе",JGa="СнаÑала новÑе",eWa="ÐопÑлÑÑное за неделÑ",tWa="Ðазвание (A-Z)",nWa="Цена (по возÑаÑÑаниÑ)",aWa="Цена (по ÑбÑваниÑ)",oWa="Ðлина конÑекÑÑа",sWa="ÐадеÑжка",rWa="ÐÑопÑÑÐºÐ½Ð°Ñ ÑпоÑобноÑÑÑ",iWa="OpenAI Chat",lWa="OpenAI Responses",cWa="Anthropic",dWa="Vertex AI",uWa="OpenAI Images",mWa="OpenAI Video",pWa={label:"Ðодели",model:"ÐоделÑ",provider:"ÐÑовайдеÑ",capabilities:"ÐозможноÑÑи",context:"ÐонÑекÑÑ",price:"Цена",discount:"Скидка",action:"ÐейÑÑвие",tryIt:"ÐопÑобоваÑÑ",type:"Тип",maxOutput:"ÐакÑ. вÑвод",copyId:"СкопиÑоваÑÑ ID модели",copied:"СкопиÑовано",usage:"ÐÑполÑзование",stability:"СÑабилÑноÑÑÑ",protocols:"ÐÑоÑоколÑ",openDetail:"Open model detail"},fWa="ÐопÑлÑÑное",gWa="ÐÑгода",hWa={add:"ÐобавиÑÑ Ð² избÑанное",remove:"УбÑаÑÑ Ð¸Ð· избÑанного"},yWa={favorites:"ÐзбÑаннÑÑ
моделей пока неÑ",noMatch:"ÐодÑ
одÑÑиÑ
моделей неÑ"},vWa="ТекÑÑ",bWa="ÐзобÑажение",xWa="Файл",$Wa="Ðидео",wWa="ÐÑдио",kWa="Embeddings",CWa="Vision",SWa="ÐÑзов инÑÑÑÑменÑов",AWa="Режим JSON",TWa="ÐенеÑаÑÐ¸Ñ Ð¸Ð·Ð¾Ð±Ñажений",RWa="РедакÑиÑование изобÑажений",PWa="ТекÑÑ",_Wa="ÐзобÑажение",jWa="Ðидео",NWa="ÐÑдио",DWa="Embedding",MWa="ÐÑиÑиалÑнÑй",EWa="Kiro",IWa="оÑ",OWa="/ вÑзов",LWa="/ Ñ",UWa="/ 1M",BWa="ÐÑÑÑÑÑй",FWa="Free",zWa="Coming Soon",qWa="Free",HWa={ariaLabel:"ÐалÑÑа Ñен",usd:"USD",rmb:"ÑÐ°Ð½Ñ (Â¥)",settlement:"Ð¦ÐµÐ½Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² ÑанÑÑ
по ÑикÑиÑÐ¾Ð²Ð°Ð½Ð½Ð¾Ð¼Ñ ÐºÑÑÑÑ {{rate}}, ÑолÑко Ð´Ð»Ñ ÑпÑавки; Ñ ÐºÐ¾ÑелÑка вÑегда ÑпиÑÑваеÑÑÑ Ð² USD по ÑакÑиÑеÑÐºÐ¾Ð¼Ñ Ð¸ÑполÑзованиÑ."},VWa="ÐÑжно пополнение",KWa={title:WGa,description:YGa,tabs:QGa,filters:XGa,sort_featured:ZGa,sort_newest:JGa,sort_top_weekly:eWa,sort_name:tWa,sort_price_asc:nWa,sort_price_desc:aWa,sort_context:oWa,sort_latency:sWa,sort_throughput:rWa,protocol_openai_chat:iWa,protocol_openai_responses:lWa,protocol_anthropic_messages:cWa,protocol_google_vertex_ai:dWa,protocol_openai_images:uWa,protocol_openai_sora:mWa,table:pWa,badge_hot:fWa,badge_benefit:gWa,favorite:hWa,empty:yWa,modality_text:vWa,modality_image:bWa,modality_file:xWa,modality_video:$Wa,modality_audio:wWa,modality_embeddings:kWa,capability_vision:CWa,capability_tool_calling:SWa,capability_json_mode:AWa,capability_image_generation:TWa,capability_image_edit:RWa,type_text:PWa,type_image:_Wa,type_video:jWa,type_audio:NWa,type_embedding:DWa,provider_official:MWa,provider_kiro:EWa,price_from:IWa,price_perCall:OWa,price_perSec:LWa,price_per1m:UWa,price_fast:BWa,badge_free:FWa,badge_unavailable:zWa,price_free:qWa,currency:HWa,badge_requiresTopup:VWa},GWa={main:"ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð½Ð°Ð²Ð¸Ð³Ð°ÑиÑ",utility:"СлÑÐ¶ÐµÐ±Ð½Ð°Ñ Ð½Ð°Ð²Ð¸Ð³Ð°ÑиÑ",console:"ÐавигаÑÐ¸Ñ ÐºÐ¾Ð½Ñоли",openNavigation:"ÐÑкÑÑÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°ÑиÑ",collapse:"СвеÑнÑÑÑ Ð±Ð¾ÐºÐ¾Ð²ÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ",expand:"РазвеÑнÑÑÑ Ð±Ð¾ÐºÐ¾Ð²ÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ"},WWa={platform:"ÐонÑолÑ",chat:"ЧаÑ",models:"Ðодели",logs:"Ðоги",jobs:"ÐадаÑи",apiKeys:"API keys",usage:"ÐÑполÑзование",billing:"Ðиллинг",freeTokens:"ÐеÑплаÑнÑе ÑокенÑ",referrals:"РеÑеÑалÑ",settings:"ÐаÑÑÑойки",admin:"Ðдмин",balance:"ÐаланÑ",helpSupport:"ÐомоÑÑ Ð¸ поддеÑжка",announcements:"ÐбÑÑвлениÑ",announcementsTitle:"ÐбÑÑвлениÑ",announcementsEmpty:"ÐбÑÑвлений пока неÑ. ÐаглÑниÑе позже.",announcementsTicketUnread:"{{count}} ÑикеÑ(ов) Ñ Ð½Ð¾Ð²Ñми оÑвеÑами",support:"ÐоддеÑжка",tasks:"ÐаданиÑ",tagNew:"ÐÐÐÐÐ"},YWa={staff:"СоÑÑÑдники"},QWa={dashboard:"ÐбзоÑ",users:"ÐолÑзоваÑели",billing:"Ðиллинг плаÑÑоÑмÑ",usage:"ÐÑполÑзование плаÑÑоÑмÑ",rateLimits:"Rate limits",access:"ÐоÑÑÑп",staff:"ÐдминÑ",growth:"РоÑÑ",models:"Ðодели",announcements:"ÐбÑÑвлениÑ",upstream:"Upstream",auditLogs:"ÐÑÑнал аÑдиÑа",webhooks:"Webhooks",supp
827ort:"Support",campaigns:"Campaigns",domainRules:"Email domains"},XWa={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},ZWa={aria:GWa,public:{models:"Ðодели",pricing:"ЦенÑ",docs:"ÐокÑменÑаÑиÑ",blog:"Ðлог",changelog:"ÐÑÑоÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹"},console:WWa,adminGroups:YWa,admin:QWa,notifications:XWa},JWa={back:"Ðазад",done:"ÐоÑово",next:"Ðалее",stepOf:"{{current}} / {{total}}"},eYa={balance:{body:"ÐополнÑйÑе по меÑе иÑполÑзованиÑ. ÐеиÑполÑзованнÑй Ð±Ð°Ð»Ð°Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð¾ веÑнÑÑÑ Ð² лÑбой моменÑ.",title:"ÐÐ°Ñ Ð±Ð°Ð»Ð°Ð½Ñ"},keys:{body:"СоздайÑе здеÑÑ key и ÑкажиÑе OneHop в лÑбом инÑÑÑÑменÑе.",title:"СоздайÑе пеÑвÑй API key"},models:{body:"Ðа одной ÑÑÑаниÑе Ð²Ð¸Ð´Ð½Ñ Ð²Ñе доÑÑÑпнÑе модели и ÑÑоимоÑÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð¹.",cta:"ÐÑкÑÑÑÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸",title:"ÐоÑмоÑÑиÑе модели"}},tYa={body:"Ðдин URL Ð´Ð»Ñ Ð²ÑеÑ
моделей. Ðа 30 ÑекÑнд покажем ÑÑи главнÑе веÑи.",skip:"ÐÑопÑÑÑиÑÑ",start:"ÐаÑаÑÑ",title:"ÐобÑо пожаловаÑÑ Ð² OneHop"},nYa={nav:JWa,steps:eYa,welcome:tYa},aYa="Failed to load",oYa="Nothing here yet.",sYa="ÐодÑобнее",rYa={failedLoad:aYa,emptyDescription:oYa,moreDetails:sYa},iYa="ÐÑе",lYa="УÑпеÑно",cYa="ÐжидаеÑ",dYa="ÐоÑÑÑановление",uYa="ÐÑибка",mYa="ÐозвÑаÑено",pYa="ÐкÑивен",fYa="ÐÑклÑÑÑн",gYa="ÐÑÑеÑпан",hYa="ÐаÑезеÑвиÑован",yYa="ÐкÑивиÑован",vYa="ÐÑиоÑÑановлен",bYa="Удален",xYa="ÐоÑма",$Ya="Ðод наблÑдением",wYa="ÐаблокиÑован",kYa="ÐаÑиÑлено",CYa="ÐÑменено",SYa="ÐÑÑекло",AYa="ÐÑклонено",TYa="ЧеÑновик",RYa="ÐпÑбликовано",PYa="УÑÑаÑело",_Ya="РаÑÑ
иве",jYa="СкÑÑÑо",NYa="Создано",DYa="Checkout оÑкÑÑÑ",MYa="ÐплаÑено",EYa="ÐÑменено",IYa="OpenAI Chat",OYa="OpenAI Responses",LYa="Anthropic Messages",UYa="Google Vertex AI",BYa="OpenAI Images",FYa="СпиÑание за usage",zYa="ÐонÑÑ Ð·Ð° ÑегиÑÑÑаÑиÑ",qYa="ÐÑомо-бонÑÑ",HYa="РеÑеÑалÑнÑй бонÑÑ",VYa="ÐомпенÑаÑионнÑй бонÑÑ",KYa="ÐонÑÑ Ð·Ð° пополнение",GYa="Ð ÑÑÐ½Ð°Ñ ÐºÐ¾ÑÑекÑиÑовка",WYa="ÐокÑпка credit",YYa="ÐлаÑеж",QYa="ÐонÑÑ Ð·Ð° ÑегиÑÑÑаÑиÑ",XYa="ÐÑпон",ZYa="ÐаÑиÑление админом",JYa="API usage",eQa="ÐонÑÑ Ð·Ð° ÑегиÑÑÑаÑиÑ",tQa="Ð ÑÑное наÑиÑление",nQa="Sync",aQa="Streaming",oQa="Token billing",sQa="Request billing",rQa="Image billing",iQa="Low reasoning",lQa="Medium reasoning",cQa="High reasoning",dQa="Ðе пÑименимо",uQa="ÐеизвеÑÑно",mQa="ÐамоÑожено",pQa="ÐаÑиÑлено",fQa="ÐÑменено",gQa="ЧаÑÑиÑно оÑменено",hQa="ÐÑопÑÑено",yQa={all:iYa,success:lYa,pending:cYa,repairing:dYa,failed:uYa,refunded:mYa,active:pYa,disabled:fYa,exhausted:gYa,reserved:hYa,redeemed:yYa,suspended:vYa,deleted:bYa,normal:xYa,watchlisted:$Ya,blocked:wYa,granted:kYa,reversed:CYa,expired:SYa,denied:AYa,draft:TYa,published:RYa,deprecated:PYa,archived:_Ya,public:"ÐÑблиÑно",hidden:jYa,created:NYa,checkout_opened:DYa,paid:MYa,canceled:EYa,openai_chat:IYa,openai_responses:OYa,anthropic_messages:LYa,google_vertex_ai:UYa,openai_images:BYa,usage_charge:FYa,bonus_signup_grant:zYa,bonus_promo_grant:qYa,bonus_referral_grant:HYa,bonus_compensation_grant:VYa,bonus_topup_grant:KYa,manual_adjustment:GYa,credit_purchase:WYa,payment:YYa,signup:QYa,coupon:XYa,admin:ZYa,api:JYa,signup_bonus:eQa,manual:tQa,sync:nQa,stream:aQa,token:oQa,request:sQa,image:rQa,low:iQa,medium:lQa,high:cQa,not_applicable:dQa,unknown:uQa,frozen:mQa,released:pQa,cancelled:fQa,partially_reversed:gQa,skipped:hQa},vQa="{{count}} на ÑÑÑаниÑе",bQa="ÐÑего {{count}}",xQa={perPage:vQa,total:bQa},$Qa="ÐÑиглаÑайÑе и заÑабаÑÑвайÑе",wQa="ÐоделиÑеÑÑ Ñвоей пеÑÑоналÑной ÑÑÑлкой. Ðогда пÑиглаÑÑннÑй полÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÑÐµÑ Ð±Ð°Ð»Ð°Ð½Ñ, вознагÑÐ°Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐ¸Ñ
ÑÑоÑон ÑÑÑко ÑикÑиÑÑÑÑÑÑ.",kQa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе о пÑиглаÑениÑÑ
",CQa="ÐаÑа ÑеÑеÑалÑÐ½Ð°Ñ ÑÑÑлка",SQa="ÐоделиÑÑÑÑ",AQa="ÐÑиглаÑение ÑкопиÑовано. ÐÑÑавÑÑе его в WeChat, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÐµÐ»Ð¸ÑÑÑÑ.",TQa="ÐопиÑоваÑÑ",RQa="СкопиÑовано",PQa="WeChat",_Qa="X",jQa="Telegram",
827NQa="Reddit",DQa="LinkedIn",MQa="WhatsApp",EQa="Email",IQa="Facebook",OQa={default:{title:"ÐÑе AI-модели ÑеÑез один OneHop API",body:"ÐаÑегиÑÑÑиÑÑйÑеÑÑ Ð¿Ð¾ моей пÑиглаÑиÑелÑной ÑÑÑлке â пополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð² ÑеÑение {{firstWindowDays}} дней, и Ð¼Ñ Ð¾Ð±Ð° полÑÑим {{percent}}% возвÑаÑа."},x:{title:"Ðдин API Ð´Ð»Ñ Ð²ÑÐµÑ AI-моделей ð¤",body:"ÐополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð² ÑеÑение {{firstWindowDays}} дней по моей ÑÑÑлке â каждÑй из Ð½Ð°Ñ Ð¿Ð¾Ð»ÑÑÐ¸Ñ {{percent}}% возвÑаÑа. ð"},telegram:{title:"РазÑабаÑÑвайÑе Ñо вÑеми AI-моделÑми ÑеÑез OneHop",body:"ÐÑполÑзÑйÑе Ð¼Ð¾Ñ Ð¿ÑиглаÑиÑелÑнÑÑ ÑÑÑÐ»ÐºÑ â пеÑвое пополнение в ÑеÑение {{firstWindowDays}} дней пÑинеÑÐµÑ Ð½Ð°Ð¼ обоим {{percent}}% ÑеÑеÑалÑного кÑедиÑа."},whatsapp:{title:"ÐÑе AI-модели Ð´Ð»Ñ ÑазÑабоÑки â OneHop",body:"ÐÑиÑоединÑйÑеÑÑ Ð¿Ð¾ моей пÑиглаÑиÑелÑной ÑÑÑлке. ÐополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð² ÑеÑение {{firstWindowDays}} дней, и Ð¼Ñ Ð¾Ð±Ð° полÑÑим {{percent}}% возвÑаÑа."},reddit:{title:"OneHop â один API Ð´Ð»Ñ Ð²ÑÐµÑ AI-моделей. Ðо Ð¼Ð¾ÐµÐ¼Ñ Ð¿ÑиглаÑÐµÐ½Ð¸Ñ Ð¼Ñ Ð¾Ð±Ð° полÑÑим {{percent}}% возвÑаÑа Ñ Ð²Ð°Ñего пеÑвого пополнениÑ",body:"ÐополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð² ÑеÑение {{firstWindowDays}} дней, и Ð¼Ñ Ð¾Ð±Ð° полÑÑим {{percent}}% ÑеÑеÑалÑного кÑедиÑа."},email:{title:"ÐÑиглаÑение в OneHop â вÑе AI-модели ÑеÑез один API",body:`ÐдÑавÑÑвÑйÑе, 828 829Я полÑзÑÑÑÑ OneHop, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑаÑаÑÑÑÑ ÐºÐ¾ вÑем оÑновнÑм AI-моделÑм ÑеÑез один API. ÐаÑегиÑÑÑиÑÑйÑеÑÑ Ð¿Ð¾ моей пÑиглаÑиÑелÑной ÑÑÑлке, и поÑле ваÑего пеÑвого Ð¿Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼Ñ Ð¾Ð±Ð° полÑÑим ÑеÑеÑалÑнÑй кÑедиÑ. 830 831УÑовни вознагÑаждениÑ: {{tiers}}. 832 833СпаÑибо!`},wechat:{title:"OneHop â вÑе AI-модели ÑеÑез один API",body:"ÐаÑегиÑÑÑиÑÑйÑеÑÑ Ð¿Ð¾ моей пÑиглаÑиÑелÑной ÑÑÑлке. ÐополниÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð² ÑеÑение {{firstWindowDays}} дней, и Ð¼Ñ Ð¾Ð±Ð° полÑÑим {{percent}}% ÑеÑеÑалÑного кÑедиÑа."}},LQa="ÐознагÑаждение оÑобÑажаеÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле оплаÑÑ, но ÑнаÑала замоÑаживаеÑÑÑ Ð½Ð° вÑÐµÐ¼Ñ Ð¾ÐºÐ½Ð° возвÑаÑов, а по его иÑÑеÑении вÑÑвобождаеÑÑÑ Ð² виде ÑеÑеÑалÑного credit OneHop.",UQa="ÐÑÑвобождаеÑÑÑ ÑеÑез {{days}} дн.",BQa={referrer:"ÐÑиглаÑивÑий",referee:"ÐÑиглаÑÑннÑй"},FQa={referrer:": полÑÑайÑе ÑеÑеÑалÑнÑй credit, когда пÑиглаÑÑннÑй вами Ñеловек пополнÑÐµÑ Ð±Ð°Ð»Ð°Ð½Ñ â {{tiers}}.",referee:": заÑегиÑÑÑиÑÑйÑеÑÑ Ð¿Ð¾ ÑÑÑлке и пополниÑе баланÑ, ÑÑÐ¾Ð±Ñ Ñоже полÑÑиÑÑ Ð²Ð¾Ð·Ð½Ð°Ð³Ñаждение â {{tiers}}."},zQa={dayRange:"дни {{fromDay}}-{{untilDay}}",dayOpenEnded:"Ñ Ð´Ð½Ñ {{fromDay}}"},qQa="ÐÑего заÑабоÑано",HQa="ÐÑÑвобожденное вознагÑаждение за пÑиглаÑениÑ",VQa="ÐамоÑоженное вознагÑаждение за пÑиглаÑениÑ",KQa="ÐÑиглаÑено полÑзоваÑелей",GQa="ÐкÑивнÑе пÑиглаÑениÑ",WQa="ÐÑÑвобожденнÑй бонÑÑ Ð¿ÑиглаÑÑнного",YQa="ÐамоÑоженнÑй бонÑÑ Ð¿ÑиглаÑÑнного",QQa="ÐÑменено / возвÑаÑено",XQa="ÐÑиглаÑÑннÑе вами",ZQa="ÐÑÑоÑÐ¸Ñ Ð²Ð¾Ð·Ð½Ð°Ð³Ñаждений",JQa={user:"ÐолÑзоваÑелÑ",joined:"ÐаÑа ÑегиÑÑÑаÑии",topups:"Ðополнений",earned:"ÐÑ Ð·Ð°ÑабоÑали",frozen:"ÐамоÑожено",date:"ÐÑемÑ",event:"СобÑÑие",topupAmount:"Ðополнение полÑзоваÑелÑ",rate:"СÑавка",releaseAt:"ÐÑÐµÐ¼Ñ Ð²ÑÑвобождениÑ",cashback:"ÐознагÑаждение",status:"СÑаÑÑÑ"},eXa={title:"Ðока Ð½ÐµÑ Ð¿ÑиглаÑений",description:"ÐоделиÑеÑÑ Ñвоей ÑÑÑлкой, ÑÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð²Ð¾Ð·Ð½Ð°Ð³ÑаждениÑ."},tXa={inviteeSignedUp:"ÐÑиглаÑÑннÑй ÑÑпеÑно заÑегиÑÑÑиÑовалÑÑ",youSignedUp:"ÐÑ ÑÑпеÑно заÑегиÑÑÑиÑовалиÑÑ Ð¿Ð¾ пÑиглаÑениÑ",inviteePaid:"ÐÑиглаÑÑннÑй ÑовеÑÑил оплаÑÑ",youPaid:"ÐÑ ÐºÐ°Ðº пÑиглаÑÑннÑй ÑовеÑÑили оплаÑÑ"},nXa={frozen:"ÐамоÑожено",released:"ÐÑÑвобождено",cancelled:"ÐÑменено",partially_reversed:"ЧаÑÑиÑно возвÑаÑено",reversed:"ÐозвÑаÑено",failed:"ÐÑибка",skipped:"ÐÑопÑÑено"},aXa={title:$Qa,description:wQa,error:kQa,yourLink:CQa,shareVia:SQa,wechatCopied:AQa,copy:TQa,copied:RQa,wechat:PQa,x:_Qa,telegram:jQa,reddit:NQa,linkedin:DQa,whatsapp:MQa,email:EQa,facebook:IQa,share:OQa,offer:LQa,releaseDelay:UQa,role:BQa,roleOffer:FQa,policy:zQa,totalEarned:qQa,availableEarned:HQa,frozenEarned:VQa,invited:KQa,active:GQa,availableReceived:WQa,frozenReceived:YQa,cancelledReversed:QQa,peopleYouInvited:XQa,history:ZQa,col:JQa,empty:eXa,event:tXa,status:nXa},oXa="ÐаÑÑÑойки",sXa="УпÑавлÑйÑе наÑÑÑойками аккаÑнÑа и знаÑениÑми конÑоли по ÑмолÑаниÑ.",rXa="ÐÑ Ð²Ð¾Ñли как {{email}}",iXa="ÐÑобÑажаемое имÑ",lXa="ЯзÑк",cXa="ЧаÑовой поÑÑ",dXa="Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¿ÑоÑилÑ",uXa="Ðе ÑдалоÑÑ ÑÐ¾Ñ ÑаниÑÑ",mXa="ÐÑмениÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ?",pXa="У Ð²Ð°Ñ ÐµÑÑÑ Ð½ÐµÑÐ¾Ñ ÑаненнÑе изменениÑ. ÐÑли ÑйÑи ÑейÑаÑ, они бÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ.",fXa="ÐÑмениÑÑ",gXa="ÐÑодолжиÑÑ ÑедакÑиÑование",hXa={title:oXa,description:sXa,signedInAs:rXa,displayName:iXa,locale:lXa,timezone:cXa,failedLoad:dXa,failedSave:uXa,discardTitle:mXa,discardMessage:pXa,discardConfirm:fXa,keepEditing:gXa},yXa="СÑена заданий",vXa="РаÑÑкажиÑе о OneHop Ñвоей аÑдиÑоÑии и полÑÑиÑе пÑобнÑе кÑедиÑÑ. ÐаждÑÑ Ð·Ð°ÑÐ²ÐºÑ Ð¼Ñ Ð¿ÑовеÑÑем вÑÑÑнÑÑ.",bXa="СÑÑлка на ваÑÑ Ð¿ÑбликаÑиÑ",xXa="https://â¦",$Xa="ÐÑпÑавиÑÑ",wXa="ÐÑпÑавлено â ÑкоÑо пÑовеÑим.",kXa="ÐÑинимаемÑе ÑÑÑлки: {{hosts}}",CXa="Ранее оÑклонено: {{reason}}. ÐÑпÑавÑÑе и оÑпÑавÑÑе Ñнова.",SXa={pending:"Ðа пÑовеÑке",approved:"ÐаÑиÑлено",rejected:"ÐÑклонено",active:"ÐейÑÑвÑеÑ"}
833,AXa={title:"СейÑÐ°Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹ неÑ",description:"ÐаглÑниÑе позже â Ñакие кампании Ð¼Ñ Ð¿Ñоводим пеÑиодиÑеÑки."},TXa={x_quote:{title:"ÐÑоÑиÑиÑÑйÑе Ð½Ð°Ñ Ð² X",description:"ÐÑоÑиÑиÑÑйÑе закÑеплÑннÑй поÑÑ @OneHopAI и добавÑÑе ÑÐ²Ð¾Ñ Ð¼Ð½ÐµÐ½Ð¸Ðµ.",rules:["ÐккаÑнÑÑ Ð² X должно бÑÑÑ Ð½Ðµ менее 6 меÑÑÑев, и Ñ Ð½ÐµÐ³Ð¾ должно бÑÑÑ 10 подпиÑÑиков или болÑÑе.","ÐÑпÑавÑÑе ÑÑÑÐ»ÐºÑ Ð½Ð° Ñвой поÑÑ-ÑиÑаÑÑ, а не на оÑигинал.","ÐÑедиÑÑ Ð·Ð°ÑиÑлÑÑÑÑÑ Ð² ÑеÑение 2 ÑаÑов поÑле одобÑениÑ."]},youtube_tutorial:{title:"ÐпÑбликÑйÑе ÑÑÑоÑиал на YouTube",description:"Ðидео Ð¾Ñ 6 минÑÑ Ð¾ Ñом, как Ð²Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑили OneHop к ÑÐ²Ð¾ÐµÐ¼Ñ Ð°Ð³ÐµÐ½ÑÑ.",rules:["ÐÑпÑавÑÑе ÑÑÑÐ»ÐºÑ Ð½Ð° видео поÑле пÑбликаÑии.","Ðа ваÑем канале YouTube должно бÑÑÑ 50 подпиÑÑиков или болÑÑе.","Ðдин Ñаз на аккаÑнÑ.","ÐÑедиÑÑ Ð·Ð°ÑиÑлÑÑÑÑÑ Ð² ÑеÑение 2 ÑаÑов поÑле одобÑениÑ."]},short_video:{title:"ÐпÑбликÑйÑе коÑоÑкое видео",description:"Ролик Ð¾Ñ 40 ÑекÑнд в TikTok или YouTube Ñ Ñпоминанием ваÑей наÑÑÑойки OneHop.",rules:["ÐÑпÑавÑÑе ÑÑÑÐ»ÐºÑ Ð½Ð° видео поÑле пÑбликаÑии.","ÐÑедиÑÑ Ð·Ð°ÑиÑлÑÑÑÑÑ Ð² ÑеÑение 2 ÑаÑов поÑле одобÑениÑ."]},github_readme:{title:"ÐобавÑÑе OneHop в Ñвой GitHub README",description:"ÐобавÑÑе Ñпоминание OneHop в README Ñвоего ÑепозиÑоÑиÑ. Ðаждое поÑледÑÑÑее пополнение пÑинеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе 15%.",rules:["ÐÑпÑавÑÑе ÑÑÑÐ»ÐºÑ Ð½Ð° ÑепозиÑоÑий поÑле пÑбликаÑии README.","ÐÑо навÑегда, а не Ñазово: пÑи каждом пополнении пÑименÑеÑÑÑ Ð±Ð¾Ð»ÑÑее из двÑÑ
â ÑÑандаÑÑнÑй бонÑÑ Ð¸Ð»Ð¸ ваÑи 15%.","ТекÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ â ниже."]}},RXa={load:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ ÑÑÐµÐ½Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹",generic:"Ðе ÑдалоÑÑ Ð¾ÑпÑавиÑÑ",urlRequired:"СнаÑала вÑÑавÑÑе ÑÑÑÐ»ÐºÑ Ð½Ð° ваÑÑ Ð¿ÑбликаÑиÑ.",urlTooLong:"ÐÑа ÑÑÑлка ÑлиÑком длиннаÑ.",urlMalformed:"ÐÑо не поÑ
оже на коÑÑекÑнÑÑ ÑÑÑлкÑ.",hostNotAllowed:"ÐÑо задание пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑÑлки ÑолÑко Ñ Ð¿ÐµÑеÑиÑленнÑÑ
вÑÑе плаÑÑоÑм.",notAPost:"УкажиÑе ÑÑÑÐ»ÐºÑ Ð½Ð° конкÑеÑнÑÑ Ð¿ÑбликаÑÐ¸Ñ Ð¸Ð»Ð¸ видео, а не на пÑоÑÐ¸Ð»Ñ Ð¸Ð»Ð¸ главнÑÑ ÑÑÑаниÑÑ.",alreadySubmitted:"ÐÑ Ñже оÑпÑавлÑли ÑÑо задание.",notAvailable:"ÐÑо задание ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпно.",busy:"Ðа ÑÐµÐ³Ð¾Ð´Ð½Ñ Ð»Ð¸Ð¼Ð¸Ñ Ð¿ÑовеÑок иÑÑеÑпан. ÐопÑобÑйÑе завÑÑа.",emailUnverified:"СнаÑала подÑвеÑдиÑе адÑÐµÑ ÑлекÑÑонной поÑÑÑ.",accountTooNew:"ÐÐ°Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ ÐµÑÑ ÑлиÑком новÑй Ð´Ð»Ñ ÑÑого.",riskFlagged:"ÐÑÐ¾Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ ÑейÑÐ°Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ ÑÑаÑÑвоваÑÑ. ÐÑли ÑÑо оÑибка, напиÑиÑе в поддеÑжкÑ.",accountInactive:"ÐÑÐ¾Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ Ð½ÐµÐ°ÐºÑивен.",deviceAlreadyClaimed:"ÐÑÑгой аккаÑÐ½Ñ Ð½Ð° ÑÑом ÑÑÑÑойÑÑве Ñже ÑÑаÑÑвовал."},PXa="СпаÑибо [OneHop]({{url}}) за поддеÑÐ¶ÐºÑ ÑÑого пÑоекÑа! OneHop даÑÑ Ð¾Ð´Ð¸Ð½ API-клÑÑ, ÑовмеÑÑимÑй Ñ OpenAI, к ÑоÑнÑм ведÑÑиÑ
моделей â GPT, Claude, Gemini, DeepSeek, Kimi и Qwen. Ðе нÑжно веÑÑи неÑколÑко аккаÑнÑов Ñ Ð¿ÑовайдеÑов и пÑавиÑÑ ÐºÐ¾Ð´ Ñади ÑÐ¼ÐµÐ½Ñ Ð¼Ð¾Ð´ÐµÐ»Ð¸, а плаÑиÑе Ð²Ñ ÑолÑко за иÑполÑзование. â {{domain}}",_Xa="СкопиÑоваÑÑ ÑекÑÑ",jXa={title:yXa,description:vXa,urlLabel:bXa,urlPlaceholder:xXa,submit:$Xa,submitted:wXa,allowedHosts:kXa,rejectedHint:CXa,status:SXa,empty:AXa,item:TXa,error:RXa,sponsorBlurb:PXa,copyBlurb:_Xa},NXa="Ðнлайн-ÑаÑ",DXa="ÐаÑвки в поддеÑжкÑ",MXa="ÐÑкÑойÑе заÑвкÑ, и наÑа команда оÑвеÑÐ¸Ñ ÐºÐ°Ðº можно ÑкоÑее.",EXa="ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ñвка",IXa={subject:"Тема",category:"Тип",status:"СÑаÑÑÑ",updated:"Ðбновлено",user:"User"},OXa={billing:"ÐплаÑа",technical:"ТеÑ
ниÑеÑкий",account:"ÐккаÑнÑ",other:"ÐÑÑгое"}
833,LXa={open:"ÐÑкÑÑÑ",pending:"ÐÐ¶Ð¸Ð´Ð°ÐµÑ Ð¾ÑвеÑа",resolved:"РеÑÑн",closed:"ÐакÑÑÑ"},UXa={allStatuses:"ÐÑе ÑÑаÑÑÑÑ",allCategories:"All categories",search:"Search email or subject"},BXa={subject:"Тема",subjectPlaceholder:"ÐÑаÑко опиÑиÑе пÑоблемÑ",category:"Тип",message:"СообÑение",messagePlaceholder:"РаÑÑкажиÑе, ÑÑо пÑоизоÑлоâ¦",attachments:"ÐложениÑ",addAttachment:"ÐобавиÑÑ Ñайл",submit:"ÐÑпÑавиÑÑ Ð·Ð°ÑвкÑ",cancel:"ÐÑмена"},FXa={you:"ÐÑ",support:"ÐоддеÑжка",system:"СиÑÑема",replyPlaceholder:"ÐапиÑиÑе оÑвеÑâ¦",send:"ÐÑпÑавиÑÑ",closedNotice:"ÐÑа заÑвка закÑÑÑа. ÐÑли помоÑÑ Ð²ÑÑ ÐµÑÑ Ð½Ñжна, оÑкÑойÑе новÑÑ Ð·Ð°ÑвкÑ.",sendHint:"ÐажмиÑе â/Ctrl + Enter Ð´Ð»Ñ Ð¾ÑпÑавки",back:"Ðазад к заÑвкам",systemStatus:{open:"ÐаÑвка Ñнова оÑкÑÑÑа",pending:"ÐаÑвка Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð²Ð°Ñего оÑвеÑа",resolved:"ÐаÑвка помеÑена как ÑеÑÑннаÑ",closed:"ÐаÑвка закÑÑÑа"}},zXa={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},qXa="ÐагÑÑзиÑÑ ÐµÑÑ",HXa={created:"ÐаÑвка оÑпÑавлена",replied:"ÐÑÐ²ÐµÑ Ð¾ÑпÑавлен",statusUpdated:"Status updated",error:"ЧÑо-Ñо поÑло не Ñак. ÐопÑобÑйÑе еÑÑ Ñаз"},VXa="ÐаÑвка не найдена или бÑла Ñдалена.",KXa={title:"ÐаÑвок пока неÑ",body:"Ðозникла пÑоблема? ÐÑкÑойÑе заÑвкÑ, и Ð¼Ñ Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÐ¼.",cta:"ÐÑкÑÑÑÑ Ð¿ÐµÑвÑÑ Ð·Ð°ÑвкÑ"},GXa={liveChat:NXa,title:DXa,subtitle:MXa,newTicket:EXa,columns:IXa,category:OXa,status:LXa,filters:UXa,form:BXa,thread:FXa,admin:zXa,loadMore:qXa,toast:HXa,notFound:VXa,empty:KXa},WXa="ÐÑполÑзование",YXa="ÐаланÑ, ÑкоÑоÑÑÑ ÑаÑÑ
ода и кÑда ÑÑ
одÑÑ Ð²Ð°Ñи ÑаÑÑ
одÑ.",QXa="ÐкÑивноÑÑÑ",XXa="Ð ÑÑом диапазоне акÑивноÑÑи неÑ",ZXa="ÐеÑализаÑÐ¸Ñ Ð¸ÑполÑзованиÑ",JXa="Ðо API key",eZa="Ðо модели",tZa="Ðо ÑÐ¸Ð¿Ñ token",nZa="ÐÐµÑ Ð´Ð°Ð½Ð½ÑÑ
",aZa="Ð ÑÑом диапазоне пока Ð½ÐµÑ Ð¸ÑполÑзованиÑ.",oZa="ÐÑи ÑекÑÑем Ñемпе баланÑа Ñ
ваÑÐ¸Ñ Ð¿ÑимеÑно на {{days}} дней (около {{rate}}/денÑ).",sZa="вÑÑ
од",rZa="кÑÑ",iZa={tokens:"Tokens",requests:"ÐапÑоÑÑ",cost:"СÑоимоÑÑÑ"},lZa="ÐÑÑгое",cZa="запÑ.",dZa="tok",uZa="Ðбновлениеâ¦",mZa="ÐÐµÑ Ð´Ð°Ð½Ð½ÑÑ
",pZa="ÐÑпÑавÑÑе запÑоÑ, ÑÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÑÑ Ð´Ð°Ð½Ð½Ñе.",fZa="ÐопÑлÑÑнÑе API keys",gZa="ÐополниÑÑ",hZa={title:"Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð¸ÑполÑзование"},yZa={firstToken:"пеÑвÑй token",latency:"СÑеднÑÑ Ð·Ð°Ð´ÐµÑжка",requests:"ÐапÑоÑÑ",spend:"РаÑÑ
од",spendSub:"ÑпиÑано за пеÑиод",successRate:"{{rate}}% ÑÑпеÑно",tokens:"Tokens",textDuration:"ÑекÑÑ",mediaDuration:"ÑоÑо/видео",cacheHit:"{{rate}}% из кÑÑа",projected:"â {{amount}}/меÑ",vsPrevious:"к пÑедÑдÑÑÐµÐ¼Ñ Ð¿ÐµÑиодÑ"},vZa={activeDays:"ÐкÑивнÑе дни",longestStreak:"Ð¡Ð°Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð°Ñ ÑеÑиÑ",daysValue:"{{n}} дней",totalSpend:"ÐÑего за пеÑиод",peakDay:"СамÑй акÑивнÑй денÑ"},bZa={all:"Ðа вÑÑ Ð²ÑемÑ",custom:"ÐÑоизволÑно",last1h:"ÐоÑледний 1 ÑаÑ",last30d:"ÐоÑледние 30 дней",last7d:"ÐоÑледние 7 дней",thisMonth:"ÐÑÐ¾Ñ Ð¼ÐµÑÑÑ",today:"СегоднÑ",yesterday:"ÐÑеÑа",byMonth:"Ðо меÑÑÑам"},xZa={failed:"ÐÑибки",success:"УÑпеÑнÑе"},$Za={cacheRead:"ЧÑение кÑÑа",cacheWrite:"ÐапиÑÑ ÐºÑÑа",cacheWrite1h:"ÐапиÑÑ ÐºÑÑа 1h",cacheWrite5m:"ÐапиÑÑ ÐºÑÑа 5m",completion:"ÐÑÑ
од",prompt:"ÐÑ
од"},wZa={body:"ÐÑпÑавÑÑе запÑÐ¾Ñ Ð¸Ð· ÑеÑминала или оÑкÑойÑе playground, и иÑполÑзование поÑвиÑÑÑ Ð·Ð´ÐµÑÑ ÑеÑез неÑколÑко ÑекÑнд.",openPlayground:"ÐÑкÑÑÑÑ playground",title:"ÐÐ°Ñ key гоÑов"},kZa={body:"СоздайÑе пеÑвÑй API key, маÑÑÑÑÑизиÑÑйÑе вÑе запÑоÑÑ ÑеÑез один URL, и иÑполÑзование поÑвиÑÑÑ Ð·Ð´ÐµÑÑ.",createKey:"СоздаÑÑ API key",title:"ÐобÑо пожаловаÑÑ Ð² OneHop",tryPlayground:"ÐопÑобоваÑÑ playground"},CZa="ÐбновиÑÑ",SZa="{{count}} ÑÑпеÑнÑÑ
запÑоÑов в ÑекÑÑем ÑилÑÑÑе",AZa="ÐÑего tokens",TZa="ÐÑ
од {{input}} / вÑÑ
од {{output}}",RZa="СпиÑаннÑй credit",PZa="{{cost}} ÑакÑиÑеÑÐºÐ°Ñ ÑÑоимоÑÑÑ upstream",_Za="СÑеднÑÑ Ð·Ð°Ð´ÐµÑжка",jZa="ÐеÑвÑй token {{duration}}",NZa="ÐкÑивноÑÑÑ Ð·Ð° 30 дней",DZa="УÑпеÑнÑе запÑоÑÑ, обÑем tokens и ÑпиÑаннÑй credit.",MZa="ÐагÑÑзка ÑÑенда иÑполÑзованиÑ",EZa="ТÑенда иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑ",IZa="ТÑенд иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑвиÑÑÑ Ð¿Ð¾Ñле ÑÑпеÑнÑÑ
запÑоÑов.",OZa="ÐопÑлÑÑнÑе модели",LZa="СпиÑаннÑй credit по моделÑм за поÑледние 30 дней.",UZa="ÐÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ пока неÑ",BZa="Разбивка по моделÑм поÑвиÑÑÑ Ð¿Ð¾Ñле ÑÑпеÑнÑÑ
запÑоÑов.",FZa="ÐоделÑ",zZa="ÐÑе модели",qZa="СÑаÑÑÑ",HZa="ÐÑоÑокол",VZa="СÑÑоки",KZa="СбÑоÑиÑÑ",GZa="ÐапиÑи иÑполÑзованиÑ",WZa="API key",YZa="Endpoint",QZa="Тип",XZa="Tokens",ZZa="СÑоимоÑÑÑ",JZa="ÐлиÑелÑноÑÑÑ",eJa="ÐÑемÑ",tJa="User-Agent",nJa="ÐеÑали",aJa="ÐеÑали запÑоÑа",oJa="ÐеÑали запиÑи иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ metadata биллинга.",sJa="ID запÑоÑа",rJa="ÐпеÑаÑиÑ",iJa="ÐÑ
однÑе tokens",lJa="ÐÑÑ
однÑе tokens",cJa="Tokens ÑÑÐµÐ½Ð¸Ñ ÐºÑÑа",dJa="Tokens запиÑи к
833ÑÑа",uJa="СÑоимоÑÑÑ Ð²Ñ
ода",mJa="СÑоимоÑÑÑ Ð²ÑÑ
ода",pJa="СÑоимоÑÑÑ ÑÑÐµÐ½Ð¸Ñ ÐºÑÑа",fJa="СÑоимоÑÑÑ Ð·Ð°Ð¿Ð¸Ñи кÑÑа",gJa="Ðод оÑибки",hJa="СообÑение об оÑибке",yJa="Ðе найдено.",vJa="credit",bJa="ÐÑего {{count}}",xJa="ÐагÑÑзка запиÑей иÑполÑзованиÑ",$Ja="ÐапиÑей иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑ",wJa="ÐопÑобÑйÑе дÑÑгой Ð½Ð°Ð±Ð¾Ñ ÑилÑÑÑов.",kJa="ÐапиÑи поÑвÑÑÑÑ, когда запÑоÑÑ Ð¿Ð¾Ð¹Ð´ÑÑ ÑеÑез ваÑи API keys.",CJa="СÑÑаниÑа {{page}} · показано {{shown}} из {{total}} ÑовпадаÑÑиÑ
запиÑей",SJa="Ðазад",AJa="Ðалее",TJa="Credit",RJa="Tokens",PJa="ÐапÑоÑÑ",_Ja={time:"ÐÑемÑ",apiKey:"API Key",model:"ÐоделÑ",reasoningEffort:"УÑилие ÑаÑÑÑждениÑ",endpoint:"Endpoint",type:"Тип",billingMode:"Режим ÑаÑиÑикаÑии",inputTokens:"ÐÑ
однÑе Tokens",outputTokens:"ÐÑÑ
однÑе Tokens",cacheReadTokens:"Tokens ÑÑÐµÐ½Ð¸Ñ ÐºÑÑа",cacheWriteTokens:"Tokens запиÑи кÑÑа",totalTokens:"ÐÑего Tokens",billedCredit:"СпиÑаннÑй Credit",firstTokenMs:"ÐеÑвÑй token, мÑ",durationMs:"ÐлиÑелÑноÑÑÑ, мÑ",status:"СÑаÑÑÑ",userAgent:"User-Agent"},jJa={mon:"Ðн",wed:"СÑ",fri:"ÐÑ"},NJa="ÐенÑÑе",DJa="ÐолÑÑе",MJa={title:WXa,description:YXa,activity:QXa,activityEmpty:XXa,breakdown:ZXa,byApiKey:JXa,byModel:eZa,byTokenType:tZa,chartEmpty:nZa,chartEmptyHint:aZa,burnRate:oZa,in:"вÑ
од",out:sZa,cache:rZa,metric:iZa,other:lZa,req:cZa,tok:dZa,refreshing:uZa,topEmpty:mZa,topEmptyHint:pZa,topKeys:fZa,topUp:gZa,error:hZa,kpi:yZa,stat:vZa,range:bZa,requests:xZa,tokenType:$Za,noRequests:wZa,welcome:kZa,refresh:CZa,successfulFilter:SZa,totalTokens:AZa,inOut:TZa,billedCredit:RZa,upstreamActualCost:PZa,avgLatency:_Za,firstToken:jZa,activityTitle:NZa,activityDescription:DZa,loadingTrend:MZa,noUsageTrend:EZa,trendDescription:IZa,topModels:OZa,topModelsDescription:LZa,noModelUsage:UZa,noModelUsageDescription:BZa,model:FZa,allModels:zZa,status:qZa,protocol:HZa,rows:VZa,reset:KZa,tableLabel:GZa,apiKey:WZa,endpoint:YZa,type:QZa,tokens:XZa,cost:ZZa,duration:JZa,time:eJa,userAgent:tJa,details:nJa,requestDetail:aJa,detailDescription:oJa,requestId:sJa,operation:rJa,inputTokens:iJa,outputTokens:lJa,cacheReadTokens:cJa,cacheWriteTokens:dJa,inputCost:uJa,outputCost:mJa,cacheReadCost:pJa,cacheWriteCost:fJa,errorCode:gJa,errorMessage:hJa,notFound:yJa,creditSuffix:vJa,total:bJa,loadingRecords:xJa,noRecords:$Ja,differentFilters:wJa,recordsEmpty:kJa,pageSummary:CJa,previous:SJa,next:AJa,chartCredit:TJa,chartTokens:RJa,chartRequests:PJa,
833csv:_Ja,weekday:jJa,activityLess:NJa,activityMore:DJa},EJa="Signup access",IJa="Controlled-launch registration gate. Approved emails, domains, existing users, and active admins can create accounts.",OJa="Signup access allowlist",LJa="No allowlist entries",UJa="Email / domain",BJa="Note",FJa="Status",zJa="Registration",qJa="Expires",HJa="Invites",VJa="Updated",KJa="Action",GJa="Add",WJa="Bulk add",YJa="Edit",QJa="Save",XJa="Invite",ZJa="Restore",JJa="Remove",eeo="Add signup access",teo="Edit {{email}}",neo="Bulk add signup access",aeo="Add a specific email or a whole domain with @company.com. Existing users and active admins are always allowed.",oeo="Paste one email or @domain per line. Invalid and duplicate rows will be skipped.",seo="Email or domain",reo="[email protected] or @company.com",ieo="Use @company.com to approve an entire domain.",leo="Note (optional)",ceo="e.g. founding team",deo="Expiry (optional)",ueo="Leave empty for no expiry. Expired entries no longer allow new signups.",meo="Emails / domains",peo=`[email protected] 834[email protected] 835@partner.com`,feo="Search",geo="Search email or domain",heo="Status",yeo="Access check",veo="[email protected]",beo="Check",xeo="Allowed",$eo="Denied",weo={existing_user:"Existing user always allowed",active_admin:"Active admin always allowed",email_allowlist:"Matched exact email",domain_allowlist:"Matched domain rule",not_allowed:"No active rule matched"},keo="Registered",Ceo="Not registered",Seo="Admin",Aeo="Domain rule",Teo="Never",Reo="Added to signup access.",Peo="Signup access updated.",_eo="Added {{count}} entries.",jeo="Invite sent.",Neo="Entry restored.",Deo="Removed from signup access.",Meo="Remove {{email}} from signup access? They can no longer create a new account unless another rule allows them.",Eeo={title:"Email domain rules",description:"Hot-configurable email-domain lists layered on the built-in baseline. Blacklisted domains are blocked at signup; mainstream domains skip the watchlist.",add:"Add domain",addTitle:"Add domain rule",addDescription:"Blacklist blocks signup (403). Mainstream marks the domain as trusted so new users are not watchlisted.",kindLabel:"List",kindBlacklist:"Blacklist â block signup",kindMainstream:"Mainstream â skip watchlist",domainLabel:"Domain",domainPlaceholder:"example.com",noteLabel:"Note",notePlaceholder:"Optional â why this domain",search:"Search",searchPlaceholder:"Filter by domain",kindFilter:"List",allKinds:"All lists",statusFilter:"Status",statusActive:"Active",statusRevoked:"Removed",statusAll:"All",label:"Email domain rules",empty:"No domain rules",colDomain:"Domain",colKind:"List",colNote:"Note",colAddedBy:"Added by",colCreated:"Created",status:"Status",action:"Action",remove:"Remove",restore:"Restore",confirmRemove:"Remove rule for {{domain}}?",added:"Domain rule added",removed:"Domain rule removed",restored:"Domain rule restored",badgeBlacklist:"Blacklist",badgeMainstream:"Mainstream"},Ieo={title:EJa,description:IJa,label:OJa,empty:LJa,email:UJa,note:BJa,status:FJa,registration:zJa,expiresAt:qJa,invites:HJa,updatedAt:VJa,action:KJa,add:GJa,bulkAdd:WJa,edit:YJa,save:QJa,invite:XJa,restore:ZJa,revoke:JJa,newTitle:eeo,editTitle:teo,bulkTitle:neo,formDescription:aeo,bulkDescription:oeo,emailLabel:seo,emailPlaceholder:reo,emailHint:ieo,noteLabel:leo,notePlaceholder:ceo,expiresAtLabel:deo,expiresAtHint:ueo,bulkEntriesLabel:meo,bulkEntriesPlaceholder:peo,search:feo,searchPlaceholder:geo,statusFilter:heo,checkLabel:yeo,checkPlaceholder:veo,check:beo,checkAllowed:xeo,checkDenied:$eo,checkReasons:weo,registered:keo,notRegistered:Ceo,adminAllowed:Seo,domainRule:Aeo,never:Teo,added:Reo,updated:Peo,bulkAdded:_eo,invited:jeo,restored:Neo,revoked:Deo,confirmRevoke:Meo,domainRules:Eeo},Oeo="Ops Billing",Leo="Payments, wallets and refunds across all users.",Ueo={payments:"Payments",wallets:"Wallets",refunds:"Refunds"},Beo="User email",Feo="Search by email...",zeo="Created",qeo="Created",Heo="Amount (USD)",Veo="Min",Keo="Max",Geo="Refunds",Weo="No refunds",Yeo="Refund",Qeo="Type",Xeo="Full refund",Zeo="Partial refund",Jeo="Original payment",eto="Wallets",tto="Wallet",nto="User",ato="Total",oto="Purchased",sto="Bonus",rto="No wallets",ito="Payments",lto="Payment status",cto="No payments",dto="Payment",uto="Status",mto="Amou
835nt",pto="Paid",fto="Refund",gto="Not refundable (status must be paid)",hto="View in Stripe Dashboard",yto="Failed + dead-letter webhooks in last 7 days. 0=green, 1-9=yellow, 10+=red.",vto="unhealthy",bto="Refund {{id}}",xto="This will refund {{user}} via Stripe. The platform fee shown below is deducted from the amount returned; uncheck it to waive. Promotional credits granted with the original payment will be forfeited proportionally.",$to="Refund amount (USD)",wto="Max ${{value}}",kto="Reason",Cto="İade önizlemesi yükleniyorâ¦",Sto="İade önizlemesi yüklenemedi. Ãnizleme yüklenene kadar iade yapılamaz.",Ato="İade edilebilir iÅlem bulunamadı â bu ödeme zaten tamamen iade edilmiÅ olabilir.",Tto="Ãdenen",Rto="İade edilmiÅ",Pto="Bu iade",_to="Geri alınan kredi",jto="Orantılı olarak geri alınan {{amount}} kupon indirimi kredisini içerir",Nto="Orantılı olarak geri alınan {{amount}} ek verilen krediyi içerir",Dto="Bonus iptal edildi",Mto="Bu iadeyle {{amount}} tutarındaki promosyon bonusu geri alınacak.",Eto="Stripe ile iade",Ito="Platform ücreti al ({{fee}}) â Stripe iÅlem maliyetini karÅılar",Oto="Platform ücreti ({{fee}})",Lto="Tutar, iade edilebilir üst sınır {{value}} deÄerini aÅıyor",Uto="Geçerli bir pozitif tutar girin",Bto="Kullanıcı satın alınan kredinin bir kısmını zaten harcadı. En fazla iade: {{value}}",Fto="Bu ödeme zaten tamamen iade edildi",zto="Ãcret sonrası net iade tutarı çok düÅük. En az {{value}} iade edin.",qto="Cancel",Hto="Issue refund",Vto="Submitting...",Kto="Refund submitted",Gto="Stripe will return the funds within 1-3 business days. Audit log written.",Wto="Refund failed",Yto={title:Oeo,description:Leo,tabs:Ueo,emailFilter:Beo,emailPlaceholder:Feo,created:zeo,createdRange:qeo,amountRange:Heo,amountMin:Veo,amountMax:Keo,refunds:Geo,noRefunds:Weo,refundId:Yeo,refundType:Qeo,typeRefund:Xeo,typePartialRefund:Zeo,originalPayment:Jeo,wallets:eto,wallet:tto,user:nto,total:ato,purchased:oto,bonus:sto,noWallets:rto,payments:ito,paymentStatus:lto,noPayments:cto,payment:dto,status:uto,amount:mto,paid:pto,refund:fto,notRefundable:gto,viewInStripe:hto,webhookHealthHint:yto,unhealthyWebhooks:vto,refundConfirmTitle:bto,refundConfirmBody:xto,refundAmountLabel:$to,refundMaxHint:wto,refundReasonLabel:kto,refundPreviewLoading:Cto,refundPreviewFailed:Sto,refundNoRefundableTx:Ato,refundPaidRow:Tto,refundAlreadyRefundedRow:Rto,refundThisRefundRow:Pto,refundCreditReclaimRow:_to,refundCreditCouponNote:jto,refundCreditExtraNote:Nto,refundBonusReverseRow:Dto,refundBonusForfeitWarning:Mto,refundStripeReturnRow:Eto,refundFeeToggle:Ito,refundPlatformFeeRow:Oto,refundExceedsMax:Lto,refundAmountInvalid:Uto,refundInsufficientCredit:Bto,refundAlreadyFull:Fto,refundBelowMin:zto,cancel:qto,confirmRefund:Hto,submitting:Vto,refundSubmittedTitle:Kto,refundSubmittedBody:Gto,refundFailedTitle:Wto},Qto="Campaigns",Xto="Audience segments, restricted-model access, model discounts, and targeted credit grants.",Zto={mobileLabel:"Kampanya bölümü",segments:"Audiences",access:"Model access",discounts:"Model discounts",grants:"Targeted grants",recurring:"Periodic grants"},Jto="Status",eno="Actions",tno="All users",nno="Always",ano="No expiry",ono="Active window",sno="Leave blank for always-on. Times are end-of-day on the chosen dates.",rno="Valid from",ino="Valid to",lno="Pause",cno="Resume",dno="Add",uno="Remove",mno="Delete",pno="Clear",fno="Close",gno={allKinds:"Tüm türler",segmentKindStatic:"Statik",segmentKindDynamic:"Dinamik",grantKindGrant:"Tanımla",grantKindRevoke:"Geri al",allStatuses:"Tüm durumlar",statusActive:"Aktif",statusPaused:"Duraklatıldı",statusArchived:"ArÅivlendi",statusEnded:"Sona erdi",statusPending:"Beklemede",statusProcessing:"İÅleniyor",statusCompleted:"Tamamlandı",statusFailed:"BaÅarısız"},hno={title:"Audiences",create:"New audience",empty:"No audiences yet. Create one to target access, discounts, and grants.",name:"Name",namePlaceholder:"e.g. China power users",description:"Description",kind:"Kind",kind_static:"Static",kind_dynamic:"Dynamic",kindHint:"Static = a hand-picked list of users. Dynamic = users matching a rule, refreshed on materialize.",members:"Members",materialized:"Last refreshed",materializeDone:"Materialized {{count}} members",basics:"Basics",sheetDescription:"Audiences group users so you can target model access, discounts, and grants.",saved:"Audience saved",created:"Audience created",rule:"Matching rule",ruleHint:"All conditions must match (AND). An empty rule matches no one.",countryIn:"Country in",countryInHint:"Comma-separated ISO-2 c
835odes, e.g. CN, US, JP.",signupAfter:"Signed up after",signupBefore:"Signed up before",minSpend:"Min cumulative spend (USD)",minSpendHint:"Only users whose lifetime spend is at least this.",previewing:"Estimatingâ¦",matchCount:"Estimated match: {{value}} users",membersTitle:"Members",membersHint:"Search and add users. Rule-matched members are read-only.",addMembers:"Add users",searchUsers:"Search by email or ID",noUsers:"No matching users.",noMembers:"No members yet.",membersAdded:"{{count}} member added",membersAdded_plural:"{{count}} members added",source_manual:"Manual",source_rule:"Rule",materializeTitle:"Materialize",materializeHint:"Snapshot the rule into the member list. Re-run anytime to refresh.",materialize:"Materialize now",materializing:"Materializingâ¦",materializeConfirm:"Refresh members from the current rule? This replaces the rule-matched snapshot.",lastMaterialized:"Last materialized {{value}}",neverMaterialized:"Never materialized",deleteSegment:"Delete audience",deleteConfirm:"Delete this audience? Access, discounts, and grants referencing it will lose this targeting."},yno={title:"Model access",create:"Grant access",empty:"No access grants yet.",model:"Model",segment:"Audience",target:"Target",validFrom:"Valid from",validTo:"Valid to",sheetDescription:"Give a restricted model to an audience for an optional time window.",created:"Access granted",statusUpdated:"Status updated",deleteConfirm:"Remove this access grant?",noSegmentsTitle:"Create an audience first",noSegmentsDescription:"Access is granted to an audience. Create an audience on the Audiences tab, then come back to grant model access.",publicHint:"This model is public â everyone can already use it.",publicModelTitle:"Model is public",publicModelWarning:"{{model}} is public, so this grant has no effect until it is set to restricted on the Models page. Flip it to restricted there to gate it to this audience.",createAnyway:"Create anyway"},vno={title:"Model discounts",create:"New discount",empty:"No discounts yet.",model:"Model",audience:"Audience",audienceHint:"Leave as all users to discount for everyone.",discount:"Discount",window:"Window",live:"Live",end:"End",amount:"Discount",target:"Target",name:"Internal name",nameHint:"Optional label for your own reference.",percentLabel:"Extra off the platform price",percentHint:"1â99%. Applied on top of our platform price (our_price), not the official price.",percentError:"Enter a value between 1 and 99.",previewPlatform:"Discounted platform price",previewVsOfficial:"Saved vs official",pickStart:"Pick a start date",sheetDescription:"Discounts apply on top of the platform price. The official price is shown for comparison only.",created:"Discount created",saved:"Discount saved",statusUpdated:"Status updated",deleteConfirm:"Delete this discount?",liveReadonly:"This discount is live â value, window, and name are locked. Pause or end it to make changes.",terminalReadonly:"This discount has ended and is read-only."},bno={title:"Targeted grants",create:"New grant",empty:"No targeted grants yet.",time:"Time",kind:"Kind",kind_grant:"Grant",kind_revoke:"Revoke",model:"Models",modelHint:"Credit is shared across the selected models â spending on any of them draws from the same balance.",pickModels:"Pick models",nModels:"{{count}} models selected",pasteEmails:"Bulk add by email",pasteEmailsPlaceholder:"[email protected], [email protected] â separated by newline, comma or semicolon",importEmails:"Parse & add",importMatched:"Matched {{count}} users.",importUnmatched:"{{count}} emails not found:",importInvalid:"{{count}} invalid entries skipped:",importInactive:"{{count}} matched but inactive â will be skipped:",preset7d:"7 days",preset30d:"30 days",preset90d:"90 days",total:"Total",notifyYes:"Yes",notifyNo:"No",recipients:"Recipients",amount:"Amount",expiry:"Expires",expiryHint:"Optional. Unused balance expires on this date.",audience:"Audience",bySegment:"By audience",byUsers:"Specific users",segment:"Audience",users:"Users",searchUsers:"Search by email or ID",noUsers:"No matching users.",grantDetails:"Grant details",amountEach:"Amount per recipient (USD)",amountHint:"0.01â2000 per recipient.",notifyEmail:"Email recipients",note:"Note",summary:"{{count}} recipients à {{amount}} = {{total}} total",send:"Send grant",sending:"Queuingâ¦",queued:"Grant queued â fanning out to recipients",confirmTitle:"Send targeted grant?",confirmMessage:"Grant {{amount}} each to {{count}} recipients ({{total}} total)?",confirmSend:"Send grant",sheetDescription:"Grant model-restr
835icted credit to an audience or a hand-picked list of users.",batchTitle:"Grant batch",succeeded:"Succeeded",failed:"Failed",revokedAmount:"Reclaimed",completedAt:"Completed",revoke:"Revoke",revokeConfirm:"Reclaim unused balance from {{count}} recipients of {{model}}?",revokeQueued:"Revoke queued"},xno={title:"Periodic grants",create:"New periodic grant",editTitle:"Edit periodic grant",empty:"No periodic grants yet. Create one to give recurring free tokens or credit on a daily or weekly cadence.",sheetDescription:"Free tokens or restricted credit, refreshed for an audience every period (lazily, on first use).",basics:"Basics",name:"Name",namePlaceholder:"e.g. Daily free Kimi tokens",unit:"Unit",unitHint:"Tokens = free token allowance per period. USD = restricted credit (single model only).",unitLocked:"Unit is fixed after creation â create a new campaign to switch.",unit_tokens:"Tokens",unit_usd:"USD",allUnits:"All units",targeting:"Targeting",models:"Models",modelsHint:"Free tokens are usable across all selected models.",model:"Model",usdSingleModelHint:"USD grants are restricted to one model â multi-model would make spend unattributable.",pickModels:"Pick models",nModels:"{{count}} model selected",nModels_plural:"{{count}} models selected",audience:"Audience",audienceHint:"Leave as all users to grant to everyone.",schedule:"Amount & schedule",perPeriod:"Per period",tokensHint:"Positive integer, e.g. 100000 tokens per period.",usdHint:"
8350.01â2000 USD per period.",cadence:"Cadence",cadence_daily:"Daily",cadence_weekly:"Weekly",anchorTz:"Anchor timezone",anchorTzHint:"Period boundaries follow local midnight in this timezone.",startsAt:"Starts",startsAtHint:"Optional. Blank = effective immediately.",endsAt:"Ends",endsAtHint:"Optional. Blank = no end date.",immediately:"Immediately",excludeRisky:"Exclude risky accounts",thisPeriod:"This period (users · used/granted)",allStatuses:"All statuses",status_draft:"Draft",status_active:"Active",status_paused:"Paused",status_archived:"Archived",created:"Periodic grant created",saved:"Periodic grant saved"},$no={title:Qto,description:Xto,tabs:Zto,status:Jto,actions:eno,allUsers:tno,always:nno,noExpiry:ano,window:ono,windowHint:sno,validFrom:rno,validTo:ino,pause:lno,resume:cno,actionAdd:dno,actionRemove:uno,actionDelete:mno,actionClear:pno,actionClose:fno,filters:gno,segments:hno,access:yno,discounts:vno,grants:bno,recurring:xno},wno="Announcements",kno="Banners shown at the top of the marketing site and the console.",Cno="Banners",Sno="Top-of-page banners shown on www and console.",Ano="New Banner",Tno="No banners yet. Create one to show a top-of-page announcement.",Rno="Message",Pno="Supports inline links: [text](https://⦠or /path). Multiple links allowed.",_no="CTA Label",jno="CTA Link",Nno="Severity",Dno="Audience",Mno="Starts At",Eno="Ends At",Ino="Dismissible",Ono="Status",Lno="Archive",Uno="Archive this banner? It will no longer be shown to users.",Bno="New Banner",Fno="Edit Banner",zno="Title",qno="Type",Hno="Content",Vno="Display type",Kno="Banner",Gno="Modal",Wno="Draft",Yno="Active",Qno="Info",Xno="Warning",Zno="Critical",Jno="Console only",eao="Public site only",tao="Both",nao="Hero image",aao="Upload an image, or paste an https URL. Optional. PNG / JPEG / WebP / GIF, up to 5MB.",oao="Upload",sao="Uploadingâ¦",rao="Remove",iao="Only PNG, JPEG, WebP and GIF images are supported.",lao="Image must be 5MB or smaller.",cao="Upload failed, please try again.",dao="Title",uao="Body",mao="Action buttons",pao="Button label",fao="Button link",gao="Style",hao="Add button",yao="Remove",vao="Primary",bao="Secondary",xao="Link",$ao="Simplified Chinese (source)",wao="Fill in Simplified Chinese only, then translate to other languages in one click.",kao="Translate to all languages",Cao="Translatingâ¦",Sao="Other languages (translated, editable)",Aao="Translated {{ok}} languages",Tao="{{failed}} languages failed â fill in manually or retry",Rao="Chinese source changed but translations weren't refreshed â click Translate again or non-Chinese users will see outdated copy.",Pao="Re-show to users who already dismissed it",_ao="Fill in the Simplified Chinese body first.",jao={title:wno,description:kno,annTitle:Cno,annDescription:Sno,annNewButton:Ano,annEmpty:Tno,annMessage:Rno,annInlineLinkHint:Pno,annCtaText:_no,annCtaUrl:jno,annSeverity:Nno,annAudience:Dno,annStartsAt:Mno,annEndsAt:Eno,annDismissible:Ino,annStatus:Ono,annArchive:Lno,annArchiveConfirm:Uno,annCreateTitle:Bno,annEditTitle:Fno,annColTitle:zno,annColType:qno,annColContent:Hno,annDisplayType:Vno,annTypeBanner:Kno,annTypeModal:Gno,annStatusDraft:Wno,annStatusActive:Yno,annSevInfo:Qno,annSevWarning:Xno,annSevCritical:Zno,annAudConsole:Jno,annAudPublic:eao,annAudAll:tao,annHeroImage:nao,annHeroImageHint:aao,annHeroImageUpload:oao,annHeroImageUploading:sao,annHeroImageRemove:rao,annHeroImageBadType:iao,annHeroImageTooLarge:lao,annHeroImageUploadFailed:cao,annModalTitle:dao,annBody:uao,annActions:mao,annActionLabel:pao,annActionUrl:fao,annActionVariant:gao,annActionAdd:hao,annActionRemove:yao,annVariantPrimary:vao,annVariantSecondary:bao,annVariantLink:xao,annSourceLocale:$ao,annSourceHint:wao,annTranslate:kao,annTranslating:Cao,annOtherLocales:Sao,annTranslateDone:Aao,annTranslateParti
835al:Tao,annTranslateStale:Rao,annBumpRevision:Pao,annTranslateNeedSource:_ao},Nao="Operations dashboard",Dao="Real-time overview of platform health, usage, and alerts.",Mao="Refresh",Eao="Refreshing",Iao="Updated {{time}}",Oao="Loading dashboard",Lao="Failed to load dashboard",Uao="No data",Bao="No traffic yet",Fao="Video fail rate",zao="Avg latency",qao="Error types",Hao="No errors",Vao="Model anomalies",Kao="All models healthy",Gao="Components",Wao="req",Yao="Checkout abandon",Qao="Refunds",Xao="Chargebacks",Zao="First-charge conversion",Jao={kpis:"Key metrics",alerts:"Alerts",health:"System health",payment:"Payment health",revenue:"Revenue & growth",trend:"Trend",alertSettings:"Alert settings",leaderboard:"Growth leaderboards"},eoo={title:"Referral leaderboard",boardAria:"Select leaderboard",rangeAria:"Select time range",boards:{invites:"Invites",revenue:"Referred revenue"},ranges:{today:"Today","3d":"3d","7d":"7d","30d":"30d"},ofTotal:"of {{total}}",countPair:"{{valid}} / {{total}} valid",empty:"No referrals in this window",failedLoad:"Failed to load leaderboard",validHint:"Valid = normal risk status + active binding"},too={requests:"Requests",successRate:"Payment success",activeUsers:"Active users",newSignups:"New signups",newSignupsHint:"Yalnızca normal kullanıcılar (iÅaretliler hariç)",billedCredit:"Billed credit",errorRate:"Error rate",avgLatency:"Avg latency",balance:"Platform balance",vsPrevious:"{{delta}} vs previous",vsYesterday:"vs yesterday",noChange:"No change",successFailed:"{{success}} ok · {{failed}} fail"},noo={today:"Revenue today",trendTitle:"Revenue today vs yesterday",monthDetail:"{{count}} charges · MTD {{mtd}}"},aoo={summary:"{{paid}} paid · {{failed}} failed · {{pending}} pending"},ooo={paidOfSignups:"{{paid}} first-charged / {{signups}} signups"},soo={healthy:"Healthy",degraded:"Degraded",down:"Down",unknown:"Unknown"},roo={critical:"Critical",warning:"Warning",info:"Info",ok:"Healthy"},ioo={operational:"Operational",degraded:"Degraded",down:"Down",upstream:"Upstream channels",gateway:"Gateway",billing:"Billing",jobs:"Job queue",tierReason:{ok:"Healthy",watch:"Watch: nearing threshold",warning:"Warning: over warn line",critical:"Critical: over crit line"}},loo={title:"Active alerts",empty:"All systems operational",activeCount:"{{count}} active alerts",triggeredAt:"Triggered {{time}}",viewDetail:"View detail",acknowledge:"Acknowledge",resolved:"Resolved"},coo={title:"Alert settings",description:"Set warning / critical thresholds for the 6 alert types; ops is notified when a metric crosses the line. Severity is derived from the tier automatically.",enabled:"Enabled",warnThreshold:"Warning threshold",critThreshold:"Critical threshold",cooldown:"Cooldown (min)",cooldownHint:"Minimum gap between two notifications for the same alert, to prevent spam.",rateHint:"Rate, 0â1 (e.g. 0.05 = 5%).",countHint:"Absolute value, ⥠0.",directionHigher:"Higher is worse: warning ⤠critical.",directionLower:"Lower is worse: warning ⥠critical.",lastFired:"Last fired {{time}}",neverFired:"Never fired",save:"Save all",saving:"Saving",saved:"Alert settings saved",saveError:"Failed to save",readonlyHint:"You have read-only access.",noData:"No alert settings",errors:{directionHigher:"Warning threshold must be ⤠critical threshold",directionLower:"Warning threshold must be ⥠critical threshold",rateRange:"Rate thresholds must be within 0â1",nonNegative:"Thresholds must be ⥠0",cooldownNonNegative:"Cooldown must be ⥠0",required:"Threshold is required"},types:{payment_success_rate_low:"Payment success rate low",gateway_error_rate_high:"Gateway error rate high",model_error_spike:"Model error spike",webhook_dead_letter:"Webhook dead letter backlog",system_component_down:"System component down",negative_balance_exposure:"Negative balance exposure"}},doo={label:"Time range",today:"Today",days7:"7 days",days30:"30 days"},uoo="{{failed}}/{{total}} jobs",moo="{{delta}}pt vs yesterday",poo="Low sample ({{n}})",foo="Had gateway calls",goo="Last 7d cohort · normal users only",hoo="Refund rate {{rate}}%",yoo={funnel:"opened {{opened}} · paid {{paid}}"},voo={title:Nao,description:Dao,refresh:Mao,refreshing:Eao,lastUpdated:Iao,loading:Oao,failedLoad:Lao,empty:Uao,noTraffic:Bao,videoFailRate:Fao,avgLatency:zao,errorTypes:qao,noErrors:Hao,modelAnomalies:Vao,noAnomalies:Kao,c
835omponents:Gao,req:Wao,abandonRate:Yao,refunds:Qao,chargebacks:Xao,firstChargeConversion:Zao,sections:Jao,leaderboard:eoo,kpi:too,revenue:noo,orders:aoo,conversion:ooo,componentStatus:soo,severity:roo,health:ioo,alerts:loo,alertSettings:coo,range:doo,videoJobsDetail:uoo,vsYesterdayPt:moo,lowSample:poo,activeUsersHint:foo,conversionCohortHint:goo,refundRate:hoo,checkout:yoo},boo="Loading...",xoo="Admin permission required",$oo="Your account does not have permission to access this administrator page.",woo={loading:boo,permissionRequired:xoo,permissionDescription:$oo},koo="User growth",Coo="Signup rewards, discount codes, referrals, and credit grants. Manual grants live on the Users page.",Soo={mobileLabel:"Büyüme bölümü",onboarding:"Signup & new users",discount:"Discount codes",referral:"Referral cashback",grants:"Credit grants",topup:"Top-up bonus",redeem:"Kullanım kodu",tasks:"Task wall"},Aoo="Coupon batch",Too="Promotion rule",Roo="Count",Poo="Batch code",_oo="Creating...",joo="Create batch",Noo="{{count}} coupon code created",Doo="{{count}} coupon codes created",Moo="Batch {{code}}",Eoo="Copied",Ioo="Copy all",Ooo="Credit grants",Loo="Source",Uoo="Status",Boo="No grants yet",Foo="Coupon redemptions, signup bonuses, and manual grants appear here.",zoo="Time",qoo="User",Hoo="Amount",Voo="Signup bonus",Koo="Controls the credit automatically granted to new users. Disable it to stop future signup grants.",Goo="Enable signup credit",Woo="Amount (USD)",Yoo="Save signup bonus",Qoo="Saving...",Xoo="Current amount {{amount}}",Zoo="Referral cashback",Joo="Configure double-sided referral rewards, release delay, caps, and billing-page messaging.",eso="Enable referral cashback",tso="Reward tiers",nso="Add tier",aso="Recipient",oso="From day",sso="Until day",rso="Percent",iso="Label",lso="Action",cso="Inviter",dso="Invitee",uso="No end",mso="Remove tier",pso="Release delay (days)",fso="Per-topup cap (USD)",gso="Min topup (USD, blank = none)",hso="Cashback expiry (days, blank = never)",yso="Billing-page countdown banner",vso="Banner title",bso="Subtitle",xso="Countdown mode",$so="Global deadline",wso="Each invitee's 30-day window",kso="Ends at",Cso="Save referral settings",Sso="v{{version}}",Aso="Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups.",Tso="Version history",Rso="Version",Pso="Status",_so="Reward tiers",jso="Published",Nso="Superseded",Dso="current",Mso="Top-up discount codes",Eso="Discount codes lower what users pay at checkout; the full top-up amount is credited only after payment succeeds. Configure here, then generate codes below.",Iso="Enable discount codes",Oso="Discount type",Lso="Fixed amount off (USD)",Uso="Percentage off (%)",Bso="Amount off (USD)",Fso="Percentage off (0-100)",zso="Save discount",qso="Default low-balance alert",Hso="New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets.",Vso="Threshold (USD)",Kso="Save threshold",Gso="Current: {{amount}}",Wso="Generate codes against the discount rule above.",Yso="In effect: {{state}} · {{value}} off",Qso="enabled",Xso="disabled",Zso="Issued codes",Jso="Pick a batch to see who redeemed each code.",ero="No batches yet",tro="Generate a batch above to start tracking redemptions.",nro="Total",aro="Redeemed",oro="Reserved",sro="Available",rro="Codes in {{code}}",iro="No codes in this batch",lro="Code",cro="Redeemed by",dro="Redeemed at",uro="Paid",mro="Discount",pro="Kod oluÅtur",fro="PaylaÅılan kod, birçok kullanıcının N kez kullanabileceÄi tek bir koddur; benzersiz kod grubu ise N adet tek kullanımlık koddur.",gro="Kod türü",hro="Tek paylaÅılan kod",yro="Benzersiz kod grubu",vro="Kod metni (rastgele için boÅ bırakın)",bro="ör. WELCOME100",xro="Toplam kullanım (N)",$ro="Kullanıcı baÅına",wro="Sona erme tarihi (isteÄe baÄlı)",kro="isteÄe baÄlı grup",Cro="PaylaÅılan kod oluÅtur",Sro="PaylaÅılan kod oluÅturuldu",Aro="Bu grup için ayrı bir indirim kullan (yoksa yukarıdaki kural geçerli)",Tro="PaylaÅılan kodlar",Rro="Tek kod, birçok kullanıcı. Kullanım sayısı, ödenen kullanımları izler.",Pro="Henüz paylaÅılan kod yok",_ro="Kullanım / üst sınır",jro="Kullanıcı baÅına",Nro="Sona erer",Dro="Devre dıÅı bırak",Mro="Bu kod devre dıÅı bırakılsın mı?",Ero="Yeni ödemeler hemen engellenir. Hâlihazırda ödeme aÅamasındaki sipariÅler yine de tamamlanabilir.",Iro="Kod devre dıÅı bırakıldı",Oro="CSV",Lro="Durum",Uro="E-posta",Bro={code:"Kod",discount:"İndirim",redeemed:"Kullanıldı",cap:"Ãst sınır",perUser:"Kullanıcı baÅına",status:"Durum",expiresAt:"Sona erme tarihi",batch:"Grup",createdAt:"OluÅturulma tarihi",redeemedBy:"Kullanan",redeemedAt:"Kullanım tarihi",paid:"Ãdendi",discountAmount:"İndirim",email:"Email",credited:"Credited",bonus:"Bonus",paidAt:"Paid at"},Fro="Amount",zro="Bound at",qro="Counterparty",Hro="Invitee",Vro="Inviter",Kro="Rate",Gro="Released",Wro="Role",Yro="Tier",Qro="Top-up",Xro="Load more",Zro="No referrals under this version",Jro="No cashback under this version",eio="Referrals",tio="Referral records",nio="Cashback records",aio="Version detail",oio={title:"Top-up bonus",description:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group.",enabled:"Enable top-up bonus",saved:"Top-up bonus saved",tiers:"Bonus tiers",tiersHint:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs.",noTiers:"No tiers yet. Add one to start rewarding top-ups.",min:"Min top-up (USD)",rewardType:"Reward",bonus:"Fixed (USD)",percent:"Percent (%)",rewardBonus:"Bonus amount (USD)",rewardPercent:"Percent of top-up (%)",expiryDays:"Expiry (days, blank = never)",noExpiry:"Never",scope:"Credit scope",scopeHint:"General credit works on any model; a model group restricts the bonus to those models.",scopeGeneral:"General (any model)",removeTier:"Remove tier",addTier:"Add tier",antifraud:"Abuse guards",minTopup:"Min top-up to qualify (USD, blank = none)",maxBonusPerUser:"Max bonus per user (USD, blank = none)",none:"None",excludeRisky:"Exclude watchlisted / blocked users",save:"Save top-up bonus",createScope:"New restricted model group",createScopeDescription:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above.",scopeName:"Group name",scopeNamePlaceholder:"High-margin models",scopeModels:"Models",pickModels:"Pick models",nModels:"{{count}} models",createScopeButton:"Create group",scopeCreated:"Model group created"},sio="Kullanım kodu oluÅtur",rio="Ãn ödemeli kart tarzı kullanım kodu. Kullanıcı fatura sayfasında kodu girdiÄinde tutar doÄrudan bakiyeye eklenir (hediye bakiye, ödeme gerekmez).",iio="Parti adı (isteÄe baÄlı)",lio="Ãrn: Conf-2026 hediyesi",cio="OluÅturulacak adet",dio="Kod baÅına tutar (USD)",uio="Bu partide hesap baÅına kullanım limiti (boÅ bırak = sınırsız)",mio="Sınırsız",pio="Son kullanım tarihi (isteÄe baÄlı)",fio="Restrict to models (optional)",gio="General balance (no restriction)",hio="{{count}} models selected",yio="Blank = general balance. Selected models share one earmarked pool.",vio="Credit validity after redemption (days, blank = never expires)",bio="never expires",xio="{{n}} d",$io="Models",wio="Validity",kio="General balance",Cio="Kullanım kodu oluÅtur",Sio='Hemen kaydedin. Daha sonra parti listesinden "Düz metin olarak dıÅa aktar" ile yeniden alabilirsiniz.',Aio="Kullanım kodu partileri",Tio='Tekil ayrıntıları görmek için partiye tıklayın; "Düz metin olarak dıÅa aktar" ile kodlar yeniden dıÅa aktarılabilir.',Rio="Henüz kullanım kodu partisi yok",Pio="Parti",_io="Tutar",jio="Düz metin olarak dıÅa aktar",Nio="KullanılmıŠbu kod geri alınsın mı?",Dio="Kullanıcının bakiyesinden henüz harcanmamıŠkısmı ger
835i alınır; harcanmıŠkısım geri alınamaz.",Mio="Geri al",Eio="{{amount}} geri alındı",Iio="Kullanım kodları dıÅa aktarıldı",Oio="Bu partide kullanılmamıŠkodlar devre dıÅı bırakılsın mı?",Lio="Henüz kullanılmamıŠtüm kodlar geçersiz olur; kullanılmıŠkodlar etkilenmez.",Uio="{{n}} kod devre dıÅı bırakıldı",Bio="Bonus % on top-up",Fio="Bonus (%)",zio="Bonus validity (days, optional)",qio="blank = never expires",Hio={view:"Payments",title:"Payments via ····{{code}}",email:"User",credited:"Credited",bonus:"Bonus",summary:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",empty:"No payments through this code yet"},Vio={configTitle:"Task wall config",configDescription:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy.",enabled:"Enable the task wall",tasksTitle:"Tasks",taskKey:"Task key",amount:"Amount (USD)",hosts:"Accepted hosts",hostsHint:"Links outside this list are rejected at submission time.",taskEnabled:"Visible to users",addTask:"Add task",guardsTitle:"Abuse guards",dailyCap:"Daily pending cap",dailyCapHint:"0 = no cap. Fail-open if Redis is down.",minAge:"Minimum account age (days)",minAgeHint:"0 = no age gate.",saved:"Task wall saved",queueTitle:"Submissions",queueCount:"{{count}} shown",empty:"Nothing here.",approve:"Approve & pay",approved:"Approved â credit granted",reject:"Reject",rejected:"Rejected",confirmReject:"Confirm reject",reasonPlaceholder:"Why is this rejected?",duplicate:"Same link from {{count}} other account(s)",status:{pending:"Pending",approved:"Approved",rejected:"Rejected"}},Kio={title:koo,description:Coo,tabs:Soo,couponBatch:Aoo,promotionRule:Too,count:Roo,batchCode:Poo,creating:_oo,createBatch:joo,codesCreated:Noo,codesCreated_plural:Doo,batch:Moo,copied:Eoo,copyAll:Ioo,creditGrants:Ooo,source:Loo,status:Uoo,noGrants:Boo,noGrantsDescription:Foo,time:zoo,user:qoo,amount:Hoo,signupBonus:Voo,signupBonusDescription:Koo,signupBonusEnabled:Goo,signupBonusAmount:Woo,saveSignupBonus:Yoo,saving:Qoo,currentSignupBonus:Xoo,referral:Zoo,referralDescription:Joo,referralEnabled:eso,referralRewardTiers:tso,addTier:nso,tierRole:aso,tierFromDay:oso,tierUntilDay:sso,tierPercent:rso,tierLabel:iso,tierAction:lso,roleReferrer:cso,roleReferee:dso,noEndDay:uso,removeTier:mso,releaseDelayDays:pso,referralCap:fso,referralMinTopup:gso,referralExpiryDays:hso,bannerEnabled:yso,bannerTitle:vso,bannerSubtitle:bso,bannerMode:xso,bannerModeGlobal:$so,bannerModeWindow:wso,bannerEndsAt:kso,saveReferral:Cso,referralVersion:Sso,referralPublishHint:Aso,referralVersionHistory:Tso,versionCol:Rso,versionStatus:Pso,versionTiers:_so,versionPublished:jso,versionSuperseded:Nso,versionCurrent:Dso,discountRule:Mso,discountRuleDescription:Eso,discountEnabled:Iso,discountType:Oso,discountFixed:Lso,discountPercent:Uso,discountValueFixed:Bso,discountValuePercent:Fso,saveDiscount:zso,defaultLowBalanceThreshold:qso,defaultLowBalanceThresholdDescription:Hso,defaultLowBalanceThresholdAmount:Vso,saveDefaultLowBalanceThreshold:Kso,currentDefaultLowBalanceThreshold:Gso,couponBatchDescription:Wso,discountEffective:Yso,stateEnabled:Qso,stateDisabled:Xso,couponTrace:Zso,couponTraceDescription:Jso,noBatches:ero,noBatchesDescription:tro,batchTotal:nro,batchRedeemed:aro,batchReserved:oro,batchActive:sro,codesInBatch:rro,noCodes:iro,code:lro,redeemedBy:cro,redeemedAt:dro,paid:uro,discount:mro,createIssuance:pro,createIssuanceDescription:fro,formLabel:gro,formShared:hro,formUniqueBatch:yro,sharedCodeText:vro,sharedCodeRandomHint:bro,sharedMaxRedemptions:xro,sharedPerUser:$ro,expiresAt:wro,batchCodeOptional:kro,createSharedCode:Cro,sharedCodeCreated:Sro,batchOwnDiscount:Aro,sharedCodesList:Tro,sharedCodesListDescription:Rro,noSharedCodes:Pro,colRedeemedTotal:_ro,colPerUser:jro,colExpiry:Nro,disableCode:Dro,disableCodeConfirmTitle:Mro,disableCodeConfirmMessage:Ero,codeDisabled:Iro,exportCsv:Oro,statusFilter:Lro,filterByEmail:Uro,csv:Bro,colAmount:Fro,colBoundAt:zro,colCounterparty:qro,colInvitee:Hro,colInviter:Vro,colRate:Kro,colReleasedAt:Gro,colRole:Wro,colTier:Yro,colTopup:Qro,loadMore:Xro,noBindings:Zro,noCashback:Jro,versionBindings:eio,versionBindingsSection:tio,versionCashbackSection:nio,versionDetail:aio,topup:oio,redeemCreate:sio,redeemCreateDescription:rio,redeemBatchName:iio,redeemBatchNameHint:lio,redeemCount:cio,redeemFaceValue:dio,redeemPerUserLimit:uio,redeemUnlimited:mio,redeemExpiresAt:pio,redeemModels:fio,redeemModelsAll:gio,redeemModelsCount:hio,redeemModelsHint:yio,redeemValidityDays:vio,redeemValidityForever:bio,redeemValidityDaysValue:xio,redeemColModels:$io,redeemColValidity:wio,redeemGeneralBalance:kio,redeemCreateBtn:Cio,redeemRevealHint:Sio,redeemBatches:Aio,redeemBatchesDescription:Tio,redeemNoBatches:Rio,redeemBatchCol:Pio,redeemFace:_io,redeemReveal:jio,redeemReverseTitle:Nio,redeemReverseMessage:Dio,redeemReverseBtn:Mio,redeemReversed:Eio,redeemRevealed:Iio,redeemDisableBatchTitle:Oio,redeemDisableBatchMessage:Lio,redeemBatchDisabled:Uio,discountTypeBonusPercent:Bio,discountValueBonusPercent:Fio,bonusExpiryDays:zio,bonusExpiryDaysHint:qio,sharedPayments:Hio,tasks:Vio},Gio="Models",Wio="Model catalog: create, edit, publish.",Yio={label:"Display badges",hint:"Hot / Benefit tags shown on the user-facing models & pricing page.",hot:"Hot",benefit:"Benefit"},Qio="Add model",Xio="Edit {{model}}",Zio="New model",Jio="Close",elo="Basics & content save together; pricing and status changes apply immediately.",tlo="Create the model draft. Set pricing and publish after it exists.",nlo={basics:"Basics",basicsHint:"Identity, upstream mapping, protocols.",config:"Configuration",configHint:"Identity, upstream routing, type and capabilities.",protocols:"Protocols",protocolsHint:"Which API protocols this model serves.",content:"Content & display",contentHint:"i18n summary / description and sort order."},alo="Provider slug",olo="Pick a known provider or type a custom slug.",slo="Model slug",rlo="Aliases",ilo="Comma-separated lookup aliases for import and review.",llo="Source (customer-visible)",clo="Label customers see on the model/logs. Blank = vendor. Use it to distinguish s
835ame-model variants at different prices.",dlo="Platform",ulo="â select platform â",mlo="Upstream model id (optional; choose from upstream or enter manually)",plo="Choose from upstream...",flo="Upstream unavailable",glo="Protocols",hlo="Input price / 1M (USD)",ylo="Output price / 1M (USD)",vlo="EN summary",blo="Preview",xlo="(No summary)",$lo="No protocol",wlo="Cancel",klo="Save",Clo="Create draft",Slo={basic:"Identity & routing",pricing:"Pricing",content:"Content & display"},Alo={config:"1 · Configuration",protocols:"2 · Protocols",pricing:"3 · Pricing",display:"Content & display",back:"Back",next:"Next",create:"Create model"},Tlo="Context window (tokens)",Rlo="Max input the model accepts. Leave blank if unknown.",Plo="Max output tokens",_lo="Max tokens the model can generate per response.",jlo={status:"Status",visibility:"Visibility",hint:"Lifecycle changes apply immediately (with confirmation), separate from Save.",confirmStatus:'Set status to "{{status}}"? Takes effect immediately.',confirmVisibility:'Set visibility to "{{visibility}}"? Takes effect immediately.',statusChanged:"Status set to {{status}}.",visibilityChanged:"Visibility set to {{visibility}}.",publishBlocked:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first.",statusOption:{draft:"Draft",published:"Published",deprecated:"Deprecated",archived:"Archived"},visibilityOption:{public:"Public",hidden:"Hidden"},availability:"Availability",confirmAvailable:"Mark this model available again? Takes effect immediately.",confirmUnavailable:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected.",availableChanged:"Model marked available.",unavailableChanged:"Model marked temporarily unavailable.",availabilityOption:{available:"Available",unavailable:"Unavailable"},audience:"Audience",audienceOption:{everyone:"Everyone",paid_only:"Topped-up accounts only"},confirmPaidOnly:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up.",confirmEveryone:"Open this model to every account? Takes effect immediately.",paidOnlyChanged:"Model restricted to accounts that have topped up.",everyoneChanged:"Model opened to every account."},Nlo="Input modalities",Dlo="Declares what this model can receive, including vision, audio, video, and file inputs.",Mlo="Output modalities",Elo="Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors.",Ilo="Image billing style",Olo="Video billing style",Llo="How the upstream charges for this output. Required before publishing â the gate demands the matching price factor.",Ulo="â select billing style â",Blo="Per token (image_output_token)",Flo="Per image (per_call_image)",zlo="Per second (video_per_second)",qlo="Per call (video_per_call)",Hlo="Display order",Vlo="Must be a non-negative integer.",Klo="Editing locale",Glo="Upstream release date",Wlo="Summary (this locale)",Ylo="Description (Markdown, this locale)",Qlo={provider:"Provider",status:"Status",visibility:"Visibility",allStatuses:"All model statuses",allVisibility:"All visibility",allProviders:"All providers",search:"Search model slug",mobileTitle:"Filtreler"},Xlo={label:"Models",empty:"No models",model:"Model",provider:"Provider",source:"Source",status:"Status",visibility:"Visibility",action:"Action",edit:"Edit",setStatus:"Set status for {{model}}",setVisibility:"Set visibility for {{model}}",confirmSet:'Set {{model}} {{field}} to "{{value}}"?',sub2api:"Sub2API mapping",textPrice:"Price (in / out $/M)",priceByTokens:"{{kind}} · per-token",imageOutput:"image out",officialPrice:"List",saved:"-{{pct}}%"},Zlo={invalidPrice:"Price must be a number greater than or equal to 0, or left blank.",highRisk:"This change affects live gateway routing and may cause 404s. Continue?",stale:"This model was changed by someone else. Close and reopen it before editing again."},Jlo={savesImmediately:"Pricing changes apply immediately and are not controlled by Save.",createPriceFailed:"Model created, but some prices were not saved. Add them in the Pricing tab.",factors:{title:"Pricing factors",hint:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices.",liveBanner:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button.",draftHint:"Save the model draft first; pricing factors are edited inline after the model exists.",addFactor:"Add factor",changePrice:"Change price",expire:"Expire",confirmExpire:"Expire this factor row? It will stop applying immediately and move to history.",changeSaved:"Factor price updated.",expired:"Factor expired.",factor:"Factor",tier:"Tier",tierNone:"(no tier)",unit:"Unit",ourPrice:"Our price (USD)",officialPrice
835:"Official (USD)",officialAbbr:"official",source:"Source (optional URL or note, â¤128 chars)",historyLabel:"History ({{count}})",emptyTitle:"No active factor prices",empty:'Click "Add factor" to set one.',loadError:"Could not load pricing factors",draftEditorHint:"Set prices now, or leave empty and add them after the model is created.",draftEmpty:"No prices added yet.",remove:"Remove",factorOption:{text_input:"Text input (LLM)",text_output:"Text output (LLM)",cache_read:"Cache read",cache_write_5m:"Cache write (5m TTL)",cache_write_1h:"Cache write (1h TTL)",image_input_token:"Image input token",image_output_token:"Image output token",per_call_image:"Image (per call)",video_per_call:"Video (per call)",video_per_second:"Video (per second)",web_search_call:"Web search call"},unitOption:{per_1m_tokens:"per 1M tokens",per_image:"per image",per_call:"per call",per_second:"per second"},conditions:"Conditions JSON (optional)"},discount:{toggle:"Apply discount",hint:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped.",rate:"Discount rate",preview:"Preview",apply:"Apply",allowMarkup:"Allow markup (rate above 1 prices above official)",noFactors:"No active factors to reprice.",confirmTitle:"Apply discount to all factors?",confirmBody:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",applied:"Repriced {{count}} factor(s) at {{rate}}à official.",stale:"Prices changed since the preview â please preview again.",skipReason:{free_factor_our_zero:"Free factor (our price is 0) â left unchanged",no_official:"No official price â cannot compute",official_zero:"Official price is 0 â skipped"}}},eco="Discard unsaved changes?",tco="Modeli düzenle",nco={title:Gio,description:Wio,badges:Yio,addModel:Qio,editModel:Xio,newModel:Zio,close:Jio,sheetDescription:elo,sheetDescriptionNew:tlo,sections:nlo,providerSlug:alo,providerSlugHint:olo,modelSlug:slo,aliases:rlo,aliasesHint:ilo,source:llo,sourceHint:clo,platform:dlo,platformUnset:ulo,sub2apiModelId:mlo,chooseSub2api:plo,upstreamUnavailable:flo,protocols:glo,inputPrice:hlo,outputPrice:ylo,enSummary:vlo,preview:blo,noSummary:xlo,noProtocol:$lo,cancel:wlo,save:klo,createDraft:Clo,tabs:Slo,steps:Alo,contextWindow:Tlo,contextWindowHint:Rlo,maxOutputTokens:Plo,maxOutputTokensHint:_lo,lifecycle:jlo,inputModalities:Nlo,inputModalitiesHint:Dlo,outputModalities:Mlo,outputModalitiesHint:Elo,billingStyleImage:Ilo,billingStyleVideo:Olo,billingStyleHint:Llo,billingStyleUnset:Ulo,billingStyleToken:Blo,billingStylePerImage:Flo,billingStylePerSecond:zlo,billingStylePerCall:qlo,displayOrder:Hlo,displayOrderInvalid:Vlo,contentLocale:Klo,upstreamReleaseAt:Glo,summary:Wlo,descriptionField:Ylo,filters:Qlo,table:Xlo,errors:Zlo,pricing:Jlo,discardChanges:eco,editModelShort:tco},aco="Rate Limits",oco="Rate limit policies by scope.",sco="Rate limit policies",rco="No policies",ico="Code",lco="Name",cco="Scope",dco="Status",uco="Limits",mco="No limits",pco={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},fco={active:"Active",disabled:"Disabled",archived:"Archived"},gco={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"},hco="New policy",yco="Edit",vco="Action",bco="New rate limit policy",xco="Edit {{name}}",$co="Concurrency and RPM limits applied per API key and per user. Assign a policy to users on the Users page.",wco='Delete policy "{{name}}"? Keys and users on it fall back to their default.',kco="Policy deleted.",Cco={identity:"Identity",classification:"Classification",description:"Description",codeImmutable:"Code cannot be changed after creation.",limitsHint:"Leave blank to use the platform default for that limit.",default:"default",invalidLimit:"{{field}} must be a positive integer.",saved:"Policy saved.",cancel:"Cancel",save:"Save",create:"Create policy"},Sco={title:aco,description:oco,label:sco,empty:rco,code:ico,name:lco,scope:cco,status:dco,limits:uco,noLimits:mco,scopes:pco,statuses:fco,limitNames:gco,add:hco,edit:yco,delete:"Delete",action:vco,newTitle:bco,editTitle:xco,formDescription:$co,confirmDelete:wco,deleted:kco,form:Cco},Aco="Admins",Tco="Who can sign in to the admin console. Owner-only.",Rco="Admins",Pco="No admins yet",_co="Email",jco="Name",Nco="Role",Dco="Status",Mco="Last login",Eco="Action",Ico="Add admin",Oco="Add admin",Lco="The email becomes an admin immediately and signs in with it â admin access is matched by email. It does not need an account yet.",Uco="Email",Bco="[email protected]",Fco="Name",zco="Display name",qco="Role",Hco="Admin added.",Vco="Change role",Kco="Role updated.",Gco="Suspend",Wco="Activate",Yco="Status updated.",Qco="Remove",Xco="Admin removed.",Zco="Remove {{email}} as an admin? They lose console access immediately.",Jco="You",edo="Never",tdo={owner:"Owner",admin:"Admin",
835support:"Support"},ndo={active:"Active",suspended:"Suspended"},ado={title:Aco,description:Tco,label:Rco,empty:Pco,email:_co,name:jco,role:Nco,status:Dco,lastLogin:Mco,action:Eco,add:Ico,newTitle:Oco,formDescription:Lco,emailLabel:Uco,emailPlaceholder:Bco,nameLabel:Fco,namePlaceholder:zco,roleLabel:qco,added:Hco,changeRole:Vco,roleChanged:Kco,suspend:Gco,activate:Wco,statusChanged:Yco,remove:Qco,removed:Xco,confirmRemove:Zco,self:Jco,never:edo,roles:tdo,statuses:ndo},odo="Upstream",sdo="Read-only upstream configuration mirror plus controlled OneHop routing pools.",rdo="Open upstream admin",ido="Upstream tabs",ldo={overview:"Overview",keyPools:"Key pools",groups:"Groups",channels:"Channels",accounts:"Accounts"},cdo={todayRequests:"Today requests",total:"{{value}} total",upstreamCostToday:"Upstream cost today",providerAccounts:"Provider accounts",health:"Health",stale:"stale",checkPools:"check pools",online:"online"},ddo={upstreamStatsFailed:"Upstream stats failed to load",retry:"Retry",configAuditFailed:"Config audit failed",keyPoolsLoadFailed:"Key pools failed to load",createKeyPoolFailed:"Create key pool failed",keyPoolTestFailed:"Key pool test failed",keyPoolRotateFailed:"Key pool rotate failed",failedLoad:"{{title}} failed to load"},udo={title:"Config audit",description:"Compares OneHop key pools and published model routing against upstream routing. Provider groups, channels, pricing, and accounts remain read-only here.",running:"Running...",run:"Run audit",poolsChecked:"Pools checked",modelAudit:"Model audit",checkedAt:"Checked at",needsReview:"needs review",done:"done",ok:"ok",upstreamCoverage:"Upstream kapsamı",coverageUnchecked:"hesaplar okunamıyor",coverageOnlyAccount:"yalnızca {{accounts}}",coverageNoAccount:"Bu upstream kimliÄini eÅleyen zamanlanabilir hesap yok"},mdo={title:"Topology",keyPools:"Key pools",activeGroups:"Active groups",activeChannels:"Active channels",accounts:"Accounts",editingBoundaryTitle:"Editing boundary",editingBoundaryDescription:"The upstream admin exposes deep edit workflows for groups, channels, pricing rules, provider accounts, monitoring, and system settings. OneHop intentionally mirrors only the operational read path and owns internal key pools, so edits that change provider routing still happen in the original admin."},pdo={title:"OneHop internal key pools",description:"Pools select which upstream internal key OneHop uses per protocol and model pattern. Full secrets are never displayed.",poolCode:"Pool code",poolName:"Pool name",defaultPool:"Default pool",notDefault:"Not default",plaintextKey:"Plaintext key",create:"Create",label:"Provider routing key pools",pool:"Pool",protocols:"Protocols",models:"Models",routingGroup:"Routing group",status:"Status",health:"Health",key:"Key",lastCheck:"Last check",action:"Action",priority:"priority {{value}}",default:"default",secret:"secret",hidden:"hidden",test:"Test",rotate:"Rotate",empty:"No key pools",emptyDescription:"Create an internal pool before routing production traffic through provider routing.",newPlaintextKey:"New plaintext key",confirmRotate:"Confirm rotate",editProtocols:"Edit protocols",editProtocolsTitle:"Edit protocols (replace)",confirmEditProtocols:"Save protocols",cancelEditProtocols:"Cancel",forceEditProtocols:"Force save (override routing check)"},fdo={editUpstreamConfig:"Edit upstream config",groupsTitle:"Groups",groupsDescription:"Routing buckets from upstream config. OneHop uses these as source-of-truth context for key-pool binding and audit decisions.",groupsLabel:"Routing groups",groupsEmpty:"No groups",groupsEmptyDescription:"Upstream config did not return any groups.",channelsTitle:"Channels",channelsDescription:"Provider channel configuration from upstream config, including model mappings and pricing rule coverage.",channelsLabel:"Provider routing channels",channelsEmpty:"No channels",channelsEmptyDescription:"Upstream config did not return any channels.",accountsTitle:"Accounts",accountsDescription:"Provider accounts are redacted in OneHop. Use the upstream admin for credential edits and OAuth refresh flows.",accountsLabel:"Provider routing accounts",accountsEmpty:"No accounts",accountsEmptyDescription:"Upstream config did not return any provider accounts."},gdo={group:"Group",platform:"Platform",rate:"Rate",rpm:"RPM",accounts:"Accounts",limits:"Limits",status:"Status",updated:"Updated",channel:"Channel",billingSource:"Billing source",mappings:"Mappings",pricing:"Pricing",account:"Account",groups:"Groups",baseUrl:"Base URL",capacity:"Capacity",lastUsed:"Last used"},hdo={noDescription:"No description",unlimited:"unlimited",schedulable:"schedulable",notSchedulable:"not schedulable",loading:"Loading...",noPricingRules:"No pricing rules",modelsCount:"{{count}} models",none:"none",channelMapped:"Channel mapped",requestedModel:"Requested model",upstreamModel:"Upstream model",priority:"priority",unknown:"unknown"},ydo={serving:{label:"Serving state",serving:"Serving",rate_limited:"Rate-limited",overloaded:"Overloaded",expired:"Expired",paused:"Paused",error:"Error",disabled:"Disabled"},quota:{label:"Quota (today)",noLimit:"no limit",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"{{normal}} normal · {{error}} error · {{ratelimit}} limited · {{overload}} overload"},freshness:{updated:"updated {{ago}}",never:"never"},pools:{lastError:"Last error",resync:"Resync"},audit:{poolFindings:"Pool findings",clean:"clean",findingsCount:"{{count}} issue(s)"},tokensToday:"{{count}} tok today"},vdo={title:odo,description:sdo,openUpstreamAdmin:rdo,tabsLabel:ido,tabs:ldo,metrics:cdo,errors:ddo,audit:udo,topology:mdo,pools:pdo,readonly:fdo,table:gdo,common:hdo,ops:ydo},bdo="Platform usage",xdo="Cross-user request metering with cost, token, latency, and routing signals.",$do="Refresh",wdo={label:"Auto refresh",off:"Off"},kdo="Exporting",Cdo="Export CSV",Sdo="Failed to export usage records",Ado="Requests",Tdo="{{count}} successful",Rdo="Users",Pdo="Matched by current filters",_do="Billed credit",jdo="{{cost}} upstream cost",Ndo="Tokens",Ddo="Avg {{duration}}",Mdo="User email",Edo="Search by email",Ido="Model",Odo="Search by model",Ldo="Status",Udo="Protocol",Bdo="Rows",Fdo="Reset",zdo="Ops usage records",qdo="No usage records",Hdo="User",Vdo="Endpoint",Kdo="{{count}} total",Gdo="In {{input}} / out {{output}}
835",Wdo="Upstream",Ydo="Billed",Qdo="Latency",Xdo="Started",Zdo="Page {{page}} · showing {{shown}} of {{total}} matching records",Jdo="Previous",euo="Next",tuo="{{count}} rows on this page",nuo="Times shown in",auo="{{count}} API keys",ouo="Spend snapshot",suo="from OneHop billing snapshot",ruo="User spend",iuo="total billed to users",luo="Avg latency",cuo="settled requests",duo="Range",uuo={today:"Today",days7:"7 days",days30:"30 days",all:"All time"},muo="Metric",puo={cost:"Spend",tokens:"Tokens",requests:"Requests"},fuo="Distribution",guo={model:"Model",requestedModel:"Requested model",upstreamModel:"Upstream model",apiKey:"API key",user:"User",endpoint:"Endpoint",channel:"Channel",group:"Group",stream:"Transport (stream/sync)"},huo="Usage trend",yuo="Usage by model",vuo="Hourly",buo="Daily",xuo="Top endpoints",$uo="Top dimension rows",wuo="Request logs",kuo="API key",Cuo="Type",Suo="Billing",Auo="Channel",Tuo="Group",Ruo="Request ID",Puo="req_ / usg_ / upstream",_uo="All types",juo="All billing",Nuo={user:"User",time:"Time",model:"Model",tokens:"Tokens",cost:"Spend",routing:"Routing",latency:"Latency",status:"Status",duration:"Duration"},Duo="Failed to load usage",Muo="Loading usage records",Euo="Try a different filter set.",Iuo="No trend data",Ouo="No distribution data",Luo="No rows",Uuo="Spend breakdown",Buo={upstreamList:"Upstream list",discount:"Discount",sub2apiActual:"Sub2API actual",groupChannelMultiplier:"Group/channel multiplier",accountMultiplier:"Account multiplier",sub2apiFinalCharge:"Final spend",billedFactors:"Billed to user"},Fuo="Request detail",zuo="Unknown user",quo="Loading...",Huo="Sub2API actual",Vuo="Group multiplier",Kuo="Account multiplier",Guo="Identity",Wuo="User ID",Yuo="Key suffix",Quo={hopIdentity:"Hop identity",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisibility:"User visibility",visible:"Visible",hidden:"Hidden",supersedesUsageRecord:"Supersedes record",pricingAudit:"Continuity pricing audit",mode:"Mode",policyVersion:"Policy version",sourceModel:"Source model",targetModel:"Target model",requestedRawQuote:"Requested raw quote",requestedQuote:"Requested quote",actualPricingStatus:"Actual pricing status",actualPricingAvailable:"Available",actualPricingUnavailable:"Unavailable",actualQuote:"Actual quote",chargedQuote:"Charged quote",variance:"Quote variance",actualPricingError:"Actual pricing error"},Xuo="Input",Zuo="Output",Juo="Cache read",emo="Cache write",tmo="Raw metadata",nmo="Request",amo="Usage ID",omo="OneHop ID",smo="Sub2API ID",rmo="Sub2API log",imo="Routing",lmo="Mapping",cmo="Performance",dmo="First token",umo="Total",mmo="Error",pmo="Code",fmo="Message",gmo={time:"Time",user:"User",apiKey:"API key",model:"Model",logicalUsageId:"Logical usage ID",logicalRequestedModel:"Logical requested model",logicalModel:"Logical model",actualRequestedModel:"Actual requested model",actualModel:"Actual model",fallbackHop:"Fallback hop",userVisible:"User visible",supersedesUsageRecord:"Supersedes usage record",upstreamModel:"Upstream model",protocol:"Protocol",endpoint:"Endpoint",type:"Type",status:"Status",inputTokens:"Input tokens",outputTokens:"Output tokens",cacheRead:"Cache read",cacheWrite:"Cache write",sub2apiActual:"Sub2API actual",sub2apiCharge:"Spend",continuityMode:"Continuity mode",continuityPolicyVersion:"Continuity policy version",continuitySourceModel:"Continuity source model",continuityTargetModel:"Continuity target model",continuityRequestedRawQuote:"Continuity requested raw quote",continuityRequestedQuote:"Continuity requested quote",continuityActualPricingStatus:"Continuity actual pricing status",continuityActualQuote:"Continuity actual quote",continuityChargedQuote:"Continuity charged quote",continuityVariance:"Continuity quote variance",continuityActualPricingError:"Continuity actual pricing error",durationMs:"Duration ms",channel:"Channel",group:"Group",onehopRequestId:"OneHop request ID",sub2apiRequestId:"Sub2API request ID",firstTokenMs:"First token ms"},hmo={analytics:"Usage analytics",logs:"Request logs"},ymo={label:"Chart view",stacked:"Over time",ranking:"Ranking"},vmo={failedOnly:"Failed only",slowOnly:"Slow > {{sec}}s"},bmo="More filters",xmo="Slow threshold (ms)",$mo="No model usage",wmo="No requests yet â usage will appear here as traffic comes in.",kmo="Viewing",Cmo="streaming requests",Smo="Avg duration",Amo="Latency = time to first token (TTFT); Duration = total. The slow filter uses TTFT and only covers successful requests with a recorded first token (earlier or failed requests show â).",Tmo="Open request detail",Rmo={title:bdo,description:xdo,refresh:$do,autoRefresh:wdo,exporting:kdo,exportCsv:Cdo,exportError:Sdo,requests:Ado,successful:Tdo,users:Rdo,matchedFilters:Pdo,billedCredit:_do,upstreamCost:jdo,tokens:Ndo,avgDuration:Ddo,userEmail:Mdo,searchEmail:Edo,model:Ido,searchModel:Odo,status:Ldo,protocol:Udo,rows:Bdo,reset:Fdo,label:zdo,empty:qdo,user:Hdo,endpoint:Vdo,totalTokens:Kdo,inOut:Gdo,upstream:Wdo,billed:Ydo,latency:Qdo,started:Xdo,pageSummary:Zdo,previous:Jdo,next:euo,rowsOnPage:tuo,timesShownIn:nuo,apiKeys:auo,sub2apiCharge:ouo,sub2apiChargeSource:suo,userSpend:ruo,userSpendSource:iuo,avgLatency:luo,settledRequests:cuo,range:duo,ranges:uuo,metric:muo,metrics:puo,distribution:fuo,breakdown:guo,usageTrend:huo,stackedByModel:yuo,hourly:vuo,daily:buo,topEndpoints:xuo,topDimensionRows:$uo,requestLogs:wuo,apiKey:kuo,type:Cuo,billing:Suo,channel:Auo,group:Tuo,requestId:Ruo,requestIdPlaceholder:Puo,allTypes:_uo,allBilling:juo,table:Nuo,failedLoad:Duo,loadingRecords:Muo,tryDifferentFilters:Euo,noTrendData:Iuo,noDistributionData:Ouo,noRows:Luo,costBreakdown:Uuo,adminCost:Buo,requestDetail:Fuo,unknownUser:zuo,loading:quo,sub2apiActual:Huo,groupMultiplier:Vuo,accountMultiplier:Kuo,identity:Guo,userId:Wuo,keySuffix:Yuo,continuity:Quo,input:Xuo,output:Zuo,cacheRead:Juo,cacheWrite:emo,rawMetadata:tmo,request:nmo,usageId:amo,onehopId:omo,sub2apiId:smo,sub2apiLog:rmo,routing:imo,mapping:lmo,performance:cmo,firstToken:dmo,total:umo,error:mmo,code:pmo,message:fmo,csv:gmo,tabs:hmo,modelView:ymo,chip:vmo,moreFilters:bmo,slowThreshold:xmo,noModelUsage:$mo,noTrendToday:wmo,viewing:kmo,avgLatencySub:Cmo,avgTotalDuration:Smo,latencyHint:Amo,openRequestDetail:Tmo},Pmo="Search",_mo="Search by user ID, email, or name",jmo="User",Nmo="Back to users",Dmo="You do not have permission to view this
835section.",Mmo="Refund",Emo="Refunding...",Imo="Initiate a refund of {{amount}} for {{email}}? Refunds are processed asynchronously; the balance updates after the worker runs.",Omo="Refund initiated.",Lmo={overview:"Overview",network:"Network & Device",recentCalls:"Recent Calls",apiKeys:"API Anahtarları",payments:"Payments",refunds:"Refunds",subscription:"Subscription",referrals:"Referrals",rewards:"Rewards",audit:"Audit"},Umo={title:"Free token allowance",paused:"Free token grants are paused on this account (risk review).",daily:"Daily",weekly:"Weekly",tokensUnit:"tokens",remaining:"{{value}} tokens remaining today"},Bmo={title:"Free model quota (today)",tokens:"tokens",remaining:"{{value}} tokens remaining today",unlimited:"Free quota: unlimited (gate disabled)",eligibilityLabel:"Free tier eligibility",eligible:"Free tier",ineligible:"Ineligible (same device used)"},Fmo={phase2:"Subscriptions are coming in Phase 2."},zmo={empty:"No payments"},qmo={empty:"No refunds"},Hmo={empty:"No credit buckets",note:"Credit buckets show current balance inventory. Grant and refund history appear in the Audit timeline; referral rewards in the Referrals section."},Vmo={totalEarned:"Total earned",frozenEarned:"Frozen",refereeCount:"Referees",activeCount:"Active",role:"Role",counterparty:"Counterparty",empty:"No referral activity"},Kmo={empty:"No audit records"},Gmo={amount:"Amount",credit:"Credit",status:"Status",provider:"Provider",createdAt:"Created",type:"Type",originalTx:"Original tx",remaining:"Remaining",initial:"Initial",expiresAt:"Expires",event:"Event",action:"Action",severity:"Severity"},Wmo={ipLocationTitle:"IP ve Konum",deviceBrowserTitle:"Cihaz ve Tarayıcı",stripeTitle:"Stripe",signupIp:"Kayıt IPâsi",signupCountry:"Kayıt Ãlkesi",lastLoginIp:"Son GiriÅ IPâsi",ipDifferent:"Kayıt IPâsinden farklı",sameIpAccounts_one:"Aynı kayıt IPâsinde {{count}} hesap",sameIpAccounts_other:"Aynı kayıt IPâsinde {{count}} hesap",sameDeviceAccounts_one:"Aynı cihazda {{count}} hesap",sameDeviceAccounts_other:"Aynı cihazda {{count}} hesap",deviceFingerprint:"Cihaz Parmak İzi",freeTierEligible:"Ãcretsiz Katman UygunluÄu",firstDevice:"Cihazdaki ilk hesap",notFirstDevice:"Cihazdaki ilk hesap deÄil â ücretsiz avantaj yok",browser:"Tarayıcı",os:"OS",deviceType:"Cihaz Türü",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"ipinfo.ioâda görüntüle"},Ymo={empty:"Henüz çaÄrı yok",viewAll:"Tüm logları görüntüle â",colStatus:"Durum",colTime:"Zaman",colModel:"Model",colProtocol:"Protokol",colDuration:"Süre",colCost:"Maliyet",colFreeDiscount:"Ãcretsiz Kredi"},Qmo={empty:"Henüz API keys yok",colName:"Ad",colKey:"Key",colStatus:"Durum",colPolicy:"Hız limiti politikası",colLastUsed:"Son kullanım",colCreated:"OluÅturuldu",colExpires:"Süre sonu",colSpend:"Harcama",spendTitle:"Harcama dökümü",spend30d:"Son 30 gün",spendAllTime:"Tüm zamanlar",spendRequests:"İstek"},Xmo="Kopyala",Zmo="Kopyalandı",Jmo={search:Pmo,searchPlaceholder:_mo,title:jmo,backToList:Nmo,noBlockPerm:Dmo,refund:Mmo,refunding:Emo,refundConfirm:Imo,refundInitiated:Omo,nav:Lmo,freeTokens:Umo,freeQuota:Bmo,subscription:Fmo,payments:zmo,refunds:qmo,rewards:Hmo,referrals:Vmo,audit:Kmo,col:Gmo,network:Wmo,recentCalls:Ymo,apiKeys:Qmo,copy:Xmo,copied:Zmo},epo="Users",tpo="Search users, grant credit, and suspend accounts.",npo="Email",apo="Search by email",opo="Account status",spo={active:"Hesap aktif; oturum açabilir ve gateway çaÄırabilir",suspended:"Askıya alındı; gateway tüm istekleri reddeder (401)"},rpo="Risk",ipo={normal:"Tüm ücretsiz avantajlardan yararlanabilir",watchlisted:"Ãcretsiz token veya kayıt bonusu yok; yine de bakiye yükleyip gateway çaÄırabilir",blocked:"Gateway tüm istekleri reddeder (401); tamamen yasaklı"},lpo="Users",cpo="No users found",dpo="Country",upo="Last login",mpo="Action",ppo="View",fpo="Deleted",gpo="Set status for {{email}}",hpo='Set {{email}} to "{{status}}"?',ypo="Grant credit",vpo="Add bonus credit to {{email}}. Recorded in the ledger.",bpo="Amount (USD)",xpo="e.g. 5",$po="Reason (optional)",wpo="e.g. compensation for downtime",kpo="Type",Cpo="Bonus credit",Spo="A gift. Does not count as a top-up.",Apo="Offline payment",Tpo="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",Rpo="Reference no.",Ppo="e.g. bank slip 20260907-001",_po="Record payment",jpo="Recording...",Npo="Cancel",Dpo="Granting...",Mpo="Grant",Epo="Grant ${{amount}} to {{email}}? This is a large amount.",Ipo="No display name",Opo="Loading...",Lpo="score {{score}}",Upo="Email verified",Bpo="Yes",Fpo="No",zpo="Signup",qpo="Signup method",Hpo="Last login method",Vpo="Signup bonus",Kpo="Onboarding",Gpo="Locale / TZ",Wpo="Markup ratio",Ypo="Rate limit policy",Qpo="Rate limit policy updated.",Xpo="Joined",Zpo="Never",Jpo="Balance",efo="Wallet & spend",tfo="Total spent",nfo="Recharged",afo="Bonus granted",ofo="Refunded",sfo="Requests",rfo="Tokens",ifo="Actions",lfo="Identity & risk",cfo="Role",dfo="No permitted actions for your role.",ufo="Acquisition source",mfo="Acquisition by source",pfo="Direct / unknown",ffo="Custom sourceâ¦",gfo="Set",hfo="Auto-detected: {{source}}",yfo="UTM",vfo="Referred by",bfo="Not",xfo="Bu kullanıcıyı tanımlamak için not ekleyin",$fo="Notu kaydet",wfo="Not kaydedildi",kfo="Not yok",Cfo="Filtreler",Sfo="Location",Afo="Preferred locale",Tfo={title:epo,description:tpo,email:npo,searchEmail:apo,status:opo,statusEffect:spo,risk:rpo,riskEffect:ipo,label:lpo,empty:cpo,country:dpo,lastLogin:upo,action:mpo,view:ppo,deleted:fpo,setStatusAria:gpo,setStatusConfirm:hpo,grantCredit:ypo,grantDescription:vpo,amountUsd:bpo,amountPlaceholder:xpo,reason:$po,reasonPlaceholder:wpo,grantKind:kpo,grantKindBonus:Cp
835o,grantKindBonusHint:Spo,grantKindOffline:Apo,grantKindOfflineHint:Tpo,referenceNo:Rpo,referenceNoPlaceholder:Ppo,recordPayment:_po,recording:jpo,cancel:Npo,granting:Dpo,grant:Mpo,largeGrantConfirm:Epo,noDisplayName:Ipo,loading:Opo,score:Lpo,emailVerified:Upo,yes:Bpo,no:Fpo,signup:zpo,signupMethod:qpo,lastLoginMethod:Hpo,signupBonus:Vpo,onboarding:Kpo,localeTz:Gpo,markupRatio:Wpo,rateLimitPolicy:Ypo,rateLimitPolicyChanged:Qpo,joined:Xpo,never:Zpo,walletBalance:Jpo,walletSection:efo,consumed:tfo,recharged:nfo,bonusGranted:afo,refunded:ofo,requests:sfo,tokens:rfo,actionsSection:ifo,identitySection:lfo,role:cfo,noPermittedActions:dfo,acquisitionSource:ufo,acquisitionTitle:mfo,sourceDirect:pfo,sourceCustomPlaceholder:ffo,sourceSet:gfo,sourceCaptured:hfo,utm:yfo,referrer:vfo,note:bfo,notePlaceholder:xfo,noteSave:$fo,noteSaved:wfo,noteEmpty:kfo,filters:Cfo,location:Sfo,preferredLocale:Afo},Rfo="Webhooks",Pfo="Stripe webhook events. Status filter, retry, payload inspection.",_fo="Status",jfo="Event type",Nfo="Received",Dfo="Event type",Mfo="Status",Efo="Mode",Ifo="Attempts",Ofo="Retry",Lfo="Retry queued",Ufo="Event {{event}} reset to pending; next job tick will process.",Bfo="Retry failed",Ffo="No webhook events yet.",zfo="Stripe events will appear here once your endpoint is registered.",qfo="Loading payload...",Hfo="Last error",Vfo="Payload (JSON)",Kfo={title:Rfo,description:Pfo,statusFilter:_fo,eventTypeFilter:jfo,receivedAt:Nfo,eventType:Dfo,status:Mfo,mode:Efo,attempts:Ifo,retry:Ofo,retrySubmittedTitle:Lfo,retrySubmittedBody:Ufo,retryFailedTitle:Bfo,empty:Ffo,emptyHint:zfo,detailLoading:qfo,lastError:Hfo,payload:Vfo},Gfo="API Keys",Wfo="İlk keyâinizi 10 saniyede alın",Yfo="Kopyalanamadı",Qfo={label:"İzin verilen modeller",allModels:"Tüm modeller",allHint:"Katalogdaki tüm modeller izinli.",noModels:"Kullanılabilir model yok.",selected:"{{count}} seçildi",someHint:"{{count}}
835 model izinli."},Xfo={label:"Etiketler",placeholder:"Etiket ekleyip Enterâa basın",remove:"Kaldır"},Zfo="Production, staging ve ekip iÅ akıÅları için scoped keyâler oluÅturun.",Jfo="Yenile",ego="Varsayılan key",tgo="Key adı",ngo="OluÅturuluyor...",ago="Key oluÅtur",ogo="Tam key, bir kez gösterilir",sgo="API key kopyala",rgo="Kopyalandı",igo="Kopyala",lgo="Åimdi kopyalayıp saklayın. Bu panel kapanınca tam key tekrar görüntülenemez.",cgo="Kaydettim",dgo="API keys yüklenemedi",ugo="Tekrar dene",mgo="Henüz API keys yok",pgo="OneHop üzerinden istek göndermeye baÅlamak için ilk keyâinizi oluÅturun.",fgo={label:"API keys",tags:"Etiketler",name:"Ad",key:"Key",status:"Durum",created:"OluÅturuldu",action:"İÅlem",usage:"Kullanım",quota:"Kota",expires:"Süre sonu",lastUsed:"Son kullanım"},ggo="İptal et",hgo="{{name}} iptal edilsin mi? Bu iÅlem geri alınamaz.",ygo="keyâe ad verin. Limitler ve süre sonu, gerekmedikçe geliÅmiÅ ayarlarda kalır.",vgo="Aylık credit limiti",bgo="Süre sonu",xgo="Sınırsız",$go="Kaydediliyor...",wgo="Kaydet",kgo="İptal",Cgo={title:"Devre dıÅı ve iptal edilmiÅ",description:"KapatılmıŠveya iptal edilmiÅ keyâler. Devre dıÅı olanı yeniden etkinleÅtirebilir, iptal edilenleri kayıt olarak tutabilirsiniz."},Sgo={title:"Aktif key yok",description:"AÅaÄıda devre dıÅı bırakılmıŠbir
835keyâi yeniden etkinleÅtirin veya yeni bir tane oluÅturun."},Ago={import:"CCSâye aktar",client:"CC-Switch istemcisi",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"CC Switch bir yer tutucuyla açıldı. KaydettiÄiniz API keyâi oraya yapıÅtırın.",checking:"Uyumluluk kontrol ediliyorâ¦",blocked:{title:"{{client}} bu anahtarı kullanamaz",body:"â{{keyName}}â yalnızca {{client}} tarafından kullanılamayan modellere izin verir. İçe aktarma hatalara neden olur.",adjust:"Model kapsamını ayarla",forceImport:"Yine de içe aktar (çalıÅmayacak)"},pin:{title:"{{client}} için {{model}} olarak içe aktar",body:"â{{keyName}}â, {{client}} varsayılan modelini içermiyor. {{client}} istekleri bu saÄlayıcı üzerinden Åu Åekilde yönlendirilecek:",adjust:"Model kapsamını ayarla",confirm:"{{model}} ile içe aktar"}},Tgo={search:"Ara",searchPlaceholder:"Ad veya key son eki ara",status:"Durum",allStatus:"Tüm durumlar",clear:"Filtreleri temizle",empty:"Bu filtrelerle eÅleÅen key yok",emptyDescription:"Tüm keyâleri görmek için aramayı veya durum filtresini temizleyin.",mobileTitle:"Filtreler"},Rgo={active:"Aktif",inactive:"Devre dıÅı",revoked:"İptal edildi",expired:"Süresi doldu",quota_exhausted:"Kota tükendi"},Pgo={today:"Bugün {{requests}} req · {{credit}}",days30:"30 g {{requests}} req · {{credit}}"},_go={use:"BaÄlantı bilgileri",edit:"Düzenle",enable:"EtkinleÅtir",disable:"Devre dıÅı bırak",delete:"Sil"},jgo="API key kullan",Ngo="KaydettiÄiniz key ile OneHop gatewayâi kullanın. Tam key yalnızca oluÅturulurken gösterilir.",Dgo={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization baÅlıÄı",env:"Ortam deÄiÅkeni",curl:"cURL",revealing:"key çözülüyorâ¦",fullKeyUnavailable:"Tam key yalnızca oluÅturulduÄunda gösterilir. KaydettiÄiniz deÄeri kullanın veya kaybettiyseniz yeni bir key oluÅturun.",protocolEndpoints:"Protokol endpointâleri"},Mgo="GeliÅmiÅ ayarlar",Ego="API key oluÅtur",Igo="API key düzenle",Ogo={label:"Model eriÅimi",all:"Tüm modeller",limited:"Belirli modellerle sınırla",allHint:"Bu key, sonradan eklenenler dahil tüm modelleri çaÄırabilir.",snapshotHint:"Yalnızca seçtiÄiniz modeller; sonradan eklenen modeller otomatik eklenmez.",snapshotHintEdit:"Yalnızca seçtiÄiniz modeller; yeni modeller otomatik eklenmez. Tüm modellerâe geçmek bu beyaz listeyi deÄiÅtirir.",searchPlaceholder:"Model araâ¦",selectAllResults:"Tüm sonuçları seç ({{count}})",selectedCount:"{{count}} / {{max}} seçili",clear:"Temizle",hiddenSelected:"Seçili {{total}} öÄeden {{hidden}} tanesi mevcut filtreyle gizli",selectVendor:"Tüm {{vendor}} öÄelerini seç, {{on}} / {{total}} seçili",emptyTitle:"EÅleÅen model yok",emptyDescription:"BaÅka bir tür veya arama deneyin.",loadFailed:"Modeller yüklenemedi",loadFailedHint:"Tekrar deneyin veya Tüm modellerâe dönün.",type:{all:"Tümü",text:"Metin",image:"Görsel",video:"Video",embedding:"Embedding"},pickAtLeastOne:"En az bir model seçin veya Tüm modellerâe dönün.",limitReached:"Reached the {{max}}-model limit"},Lgo={title:"API key oluÅturuldu",subtitle:"{{name}} hazır â Åimdi baÄlayın.",onceWarning:"Bir kez gösterilir. Daha sonra tekrar gösterebilirsiniz, ama güvenli olmak için Åimdi kopyalayın.",connect:"BaÄlan",done:"Tamam"},Ugo="IP",Bgo="{{date}} tarihinde iptal edildi",Fgo={title:Gfo,emptyTitle:Wfo,copyFailed:Yfo,allowedModels:Qfo,tags:Xfo,description:Zfo,refresh:Jfo,defaultName:ego,keyName:tgo,creating:ngo,createKey:ago,fullKeyTitle:ogo,copyApiKey:sgo,copied:rgo,copy:igo,fullKeyDescription:lgo,savedIt:cgo,loadFailed:dgo,retry:ugo,empty:mgo,emptyDescription:pgo,table:fgo,revoke:ggo,revokeConfirm:hgo,formDescription:ygo,monthlyCreditLimit:vgo,expiresAt:bgo,unlimited:xgo,saving:$go,save:wgo,cancel:kgo,parked:Cgo,noActive:Sgo,ccswitch:Ago,filters:Tgo,status:Rgo,usage:Pgo,actions:_go,useTitle:jgo,useDescription:Ngo,use:Dgo,advancedSettings:Mgo,createTitle:Ego,editTitle:Igo,scope:Ogo,created:Lgo,lastUsedIp:Ugo,revokedAt:Bgo},zgo="Audit Logs",qgo="High-risk admin actions, by action and time.",Hgo="Action",Vgo="Clear",Kgo={ops_user_update_status:"Kullanıcı durumu güncellendi",ops_users_allowlist_add:"Kayıt eriÅimi eklendi",ops_users_allowlist_update:"Kayıt eriÅimi güncellendi",ops_users_allowlist_invite:"Kayıt eriÅimi daveti gönderildi",ops_users_allowlist_revoke:"Kayıt eriÅimi kaldırıldı",ops_users_allowlist_restore:"Kayıt eriÅimi geri yüklendi",ops_model_create:"Model oluÅturuldu",ops_model_update:"Model güncellendi",ops_model_update_status:"Model durumu güncellendi",sub2api_pool_create:"Yönlendirme havuzu oluÅturuldu",sub2api_pool_test:"Yönlendirme havuzu test edildi",sub2api_pool_rotate_secret:"Yönlendirme sırrı yenilendi"},Ggo="Audit logs",Wgo="No audit entries",Ygo="Time",Qgo="Severity",Xgo="Target",Zgo={ai_model:"Model",sub2a
835pi_key_pool:"Routing key pool",sys_user:"User",wallet:"Wallet"},Jgo="Hedef türü",eho="İstek ID",tho={title:zgo,description:qgo,action:Hgo,clear:Vgo,actions:Kgo,label:Ggo,empty:Wgo,time:Ygo,severity:Qgo,target:Xgo,targetTypes:Zgo,targetType:Jgo,requestId:eho},nho="OneHopâa giriÅ yap",aho="Kodunu gir",oho="Google veya email ile devam et",sho="Kod almak için email adresini gir",rho="{{email}} adresine gönderilen 6 haneli kodu gir",iho="Google ile devam et",lho="Email ile devam et",cho="veya",dho="Email",uho="DoÄrulama kodu gönder",mho="Gönderiliyor...",pho="DoÄrula",fho="DoÄrulanıyor...",gho="{{seconds}} sn sonra yeniden gönder",hho="Kodu yeniden gönder",yho="Devam ederek Åunları kabul etmiÅ olursun:",vho="Åartlar",bho="Gizlilik",xho={signIn:"GiriÅ yap",signOutFailed:"ÃıkıŠyapılamadı",sendCodeFailed:"Kod gönderilemedi",notAllowed:"Bu e-posta henüz eriÅime onaylanmadı. EriÅim için yöneticinize baÅvurun.",invalidCode:"Geçersiz kod",codeIncorrect:"Kod yanlıÅ, tekrar dene",googleFailed:"Google giriÅi baÅarısız",verifyHuman:"Devam etmek için doÄrulamayı tamamla",verifyUnavailable:"İnsan doÄrulaması geçici olarak kullanılamıyor. Yukarıdan Google ile devam edin veya daha sonra tekrar deneyin."},$ho={signInTitle:nho,enterCodeTitle:aho,methodIntro:oho,emailStepIntro:sho,codeIntro:rho,continueGoogle:iho,continueEmail:lho,or:cho,emailLabel:dho,sendCode:uho,sending:mho,verify:pho,verifying:fho,resendIn:gho,resendCode:hho,termsPrefix:yho,terms:vho,privacy:bho,errors:xho},who="Faturalama",kho="Credits yükleyin, kuponları kullanın ve wallet hareketlerini inceleyin.",Cho={bonuses:"Bonuslar",topups:"Yüklemeler",usage:"Tüketim"},Sho={available:"Hesaba geçti",availableHint:"Kullanılabilir bakiyeye zaten dahil",frozen:"Beklemede (donduruldu)",frozenHint:"~{{days}} gün sonra kullanılabilir",frozenHintGeneric:"Bekletme süresi bitince kullanılabilir",title:"Davet ödülleri",viewDetails:"Davet detaylarını görüntüle"},Aho={noUsage:"Son 30 günde tüketim yok",perDay:"{{amount}} ort./gün",daysLeft:"Mevcut hızla â {{days}} gün kaldı"},Tho={amountUsd:"Tutar (USD)",minAmountHint:"Minimum yükleme tutarı {{amount}}.",apply:"Uygula",get:"Alınacak",onehopCredits:"OneHop credits",pay:"Ãde",poweredByStripe:"Stripe güvencesiyle",poweredBy:"{{provider}} güvencesiyle",secureCheckout:"Güvenli barındırılan ödeme",secureCheckoutShort:"Güvenli ödeme",taxExclusiveNotice:"Geçerli vergiler ödeme sırasında hesaplanır ve bu tutara eklenir.",presets:"Ãn tanımlı tutarlar",promoCode:"Promosyon kodu",promoCodePlaceholder:"Kodu girin",serviceFee:"Hizmet ücreti",title:"Yükle",topupAmount:"Yükleme tutarı",totalDue:"Ãdenecek toplam",payCta:"{{amount}} öde",previewing:"Kontrol ediliyorâ¦",discount:"Kupon indirimi",couponBelowMin:"İndirimli tutar çok düÅük; tutarı artırın veya baÅka bir kod deneyin.",maintenanceTitle:"Ãdemeler geçici olarak kullanılamıyor",maintenanceDescription:"Ãdemeler geçici olarak kullanılamıyor. Ãdeme yapmanız gerekiyorsa Telegram'dan bize ulaÅın.",contactTelegram:"Telegram'dan bize ulaÅın",alipay:"Alipay",wechatPay:"WeChat Pay",crypto:"Kripto ile öde (USDC / USDT)",payOnStripe:"Ãdeme, Stripe'ın güvenli ödeme sayfasında tamamlanır.",payOnProvider:"Ãdeme, {{provider}}'nun güvenli ödeme sayfasında tamamlanır.",payOnHostedCheckout:"Ãdeme, güvenli barındırılan ödeme sayfasında tamamlanır.",amountPrecision:"{{provider}}, en fazla 2 ondalık basamaklı USD tutarlarını kabul eder. Tutarı veya promosyon kodunu ayarlayın.",couponBonus:"Kupon bonusu",couponBonusExpiry:"Bonus krediler ödemeden {{days}} gün sonra sona erer.",couponInvalid:"Bu kod uygulanamıyor â baÅka bir kod deneyin.",couponErrors:{limitReached:"Bu kodu en fazla kullanım sayısına ulaÅtınız.",invalid:"Bu kod geçersiz.",expired:"Bu kodun süresi doldu.",exhausted:"Bu kodun kullanım hakkı tükendi.",unavailable:"Bu kod Åu anda kullanılıyor â az sonra tekrar deneyin."},tierBonus:"Kampanya bonusu",tierBonusExpiry:"Bonus krediler ödemeden {{days}} gün sonra sona erer.",tierBonusRestricted:"Bonus krediler yalnızca Åunlarda kullanılabilir: {{models}}.",nextTierPercent:"{{amount}} daha yükleyin, %{{percent}} bonus kredi kazanın.",nextTierBonus:"{{amount}} daha yükleyin, {{bonus}} bonus kredi kazanın.",tierCapReached:"Bu kampanyadaki en yüksek bonusu zaten kazandınız."},Rho="Credits ekle",Pho="OluÅturuluyor...",_ho="Kullanılabilir Credit",jho="Yükle",Nho="Ãdeme Stripe tarafından saÄlanır",Dho="Tutar (USD)",Mho="Ãn tanımlı yükleme tutarları",Eho="Kupon kullan",Iho="Kupon kodu",Oho="Kullanılıyor...",Lho="Kullan",Uho="Kupon kullanıldı, bakiye yenileniyor.",Bho="Güvenli checkoutâa yönlendiriliyor...",Fho="Faturalama özeti yüklenemedi",zho="Yükleme baÅarısız",qho="Faturalama aktivitesi sekmeleri",Hho="İÅlemler",Vho="Credit hibeleri",Kho="İÅlem türü",Gho="Kaynak",Who="Henüz iÅlem yok",Yho="Yüklemeler, kesintiler ve hibeler burada görünür.",Qho="Ledger kayıtları",Xho="Zaman",Zho="Tür",Jho="Tutar",eyo="Bakiye",tyo="Henüz hibe kaydı yok",nyo="Kayıt bonusları, kuponlar ve manuel hibeler burada görünür.",ayo="Durum",oyo={successTitle:"Ãdeme alındı",polling:"Wallet'ınıza Credit iÅleniyor... yaklaÅık 30 saniye.",delayed:"Yansıması yavaÅ. Birazdan yenileyin veya Stripe makbuzlarınızı kontrol edin.",cancelledTitle:"Ãdeme iptal edildi",cancelledBody:"Herhangi bir ödeme alınmadı. Hazır olduÄunuzda tekrar deneyin.",failedTitle:"Ãdeme baÅarısız",failedBody:"Ãdemeniz tamamlanamadı. Bakiye eklenmedi. Tekrar deneyin veya farklı bir ödeme yöntemi kullanın."},syo={text:"Credits ön ödemeli hizmet bakiyesidir, banka mevduatı deÄildir. Tüketilen credits iade edilmez. Tüm fiyatlar USD cinsindendir. Bkz.",tosLink:"Åartlar"},ryo="Makbuzlar",iyo="Açılıyor...",lyo="Faturalama portalı açılamadı",cyo={title:"Son yüklemeler",subtitle:"Son 90 gün, 24 saat içinde iade edilebilir.",loading:"Yüklemeler yükleniyor...",date:"Tarih",amount:"Tutar",credits:"Credits",status:"Durum",refund:"İade",alreadyRefunded:"Zaten iade edildi",windowExpired:"İade penceresi doldu (24 saat)",confirmTitle:"İadeyi onayla",confirmBody:"İade, Str
835ipe tarafından 1-3 iÅ günü içinde iÅlenir. Kullanıcı tarafından baÅlatılan iadelerde platform ücreti ({{fee}}) uygulanır.",amountLabel:"İade tutarı (USD)",maxLabel:"Maks. ${{value}}",requestedLabel:"Talep edilen iade",platformFeeLabel:"Platform ücreti ({{fee}})",cardReturnLabel:"Kartınıza dönecek",bonusForfeitureHint:"Bu yüklemeyle verilen promosyon Credits orantılı olarak iptal edilir.",cancel:"İptal",confirm:"İadeyi baÅlat",submitting:"Gönderiliyor...",refundSubmittedTitle:"İade gönderildi",refundSubmittedBody:"Stripe, tutarı 1-3 iÅ günü içinde kartınıza iade edecek.",refundFailedTitle:"İade baÅarısız",balance:"Bakiye",confirmAmount:"{{amount}} iade et"},dyo={title:"Bakiye uyarıları",description:"Bakiyeniz azaldıÄında sizi bilgilendiririz.",emailLabel:"E-posta ile bildir",webhookLabel:"Webhook",autorechargeLabel:"Otomatik yükleme",autorechargeUnsupported:"Otomatik yükleme, etkin ödeme saÄlayıcısıyla kullanılamaz.",autorechargeAddCardHint:"bakiyenizi korumak için bir kart ekleyin",autorechargeTopUp:"Åu kadar yükle",autorechargeWhenBelow:"bakiye Åunun altına düÅtüÄünde",autorechargeThreshold:"Otomatik yükleme eÅiÄi",autorechargeAmount:"Otomatik yükleme tutarı",autorechargeDisabledFailures:"Art arda birkaç baÅarısız denemeden sonra otomatik yükleme devre dıÅı bırakıldı. Kartınızı güncelleyip yeniden etkinleÅtirin.",autorechargeIncomplete:"Bir yükleme tutarı ve $0 üzerinde bir eÅik belirleyin.",test:"Test et",testing:"Test ediliyorâ¦",testQueued:"Test teslimi kuyruÄa alındı â uç noktanızı kontrol edin",testFailed:"Test teslimi kuyruÄa alınamadı",
835signingSecret:"İmza gizli anahtarı",secretOnSave:"KaydettiÄinizde bir imza gizli anahtarı oluÅturulur.",rotate:"Yenile",secretRotated:"İmza gizli anahtarı yenilendi",rotateFailed:"Gizli anahtar yenilenemedi",secretCopied:"İmza gizli anahtarı kopyalandı",saved:"Uyarı ayarları kaydedildi",saveFailed:"Uyarı ayarları kaydedilemedi",loadFailed:"Uyarı ayarları yüklenemedi",thresholdRequired:"Uyarıları etkinleÅtirmek için $0 üzerinde bir eÅik belirleyin.",webhookUrlRequired:"Webhook için https:// ile baÅlayan bir URL girin.",thresholdOrderBad:"Uyarı eÅiÄi, otomatik yükleme eÅiÄinden büyük veya ona eÅit olmalıdır.",card:"Kart",changeCard:"DeÄiÅtir",removeCard:"Kaldır",cardRemoved:"Kart kaldırıldı",cardRemoveFailed:"Kart kaldırılamadı",cardSetupFailed:"Kart kurulumu baÅlatılamadı",lowBalanceGroup:"DüÅük bakiye uyarıları",thresholdLabel:"Uyarı eÅiÄi"},uyo={title:"İÅlem geçmiÅi",idSearch:"İÅlem ID",amountRange:"Tutar aralıÄı (USD)",min:"Min.",max:"Maks",clear:"Temizle",retry:"Tekrar dene",empty:"Bu aralıkta iÅlem yok",date:"Tarih",typeMethod:"Tür / yöntem",description:"Açıklama",action:"İÅlem",prevMonth:"Ãnceki ay",nextMonth:"Sonraki ay",viewInvoices:"Faturaları görüntüle",emptyNew:"Henüz iÅlem yok",emptyNewDesc:"Yükleme yaptıktan sonra yüklemeler, bonuslar ve iadeler burada görünür.",topUpCta:"Yükleme yap",emptyFiltered:"EÅleÅen iÅlem yok",emptyFilteredDesc:"Filtreleri temizlemeyi veya tarih aralıÄını geniÅletmeyi deneyin.",clearFilters:"Filtreleri temizle"},myo="Bakiyeniz düÅük ve istekleri kesintiye uÄratabilir. Yükleme yapın veya otomatik yüklemeyi açın.",pyo="Bakiyeniz düÅük ve istekleri kesintiye uÄratabilir. Devam etmek için yükleme yapın.",fyo={creditPurchase:"Bakiye yükleme",topupBonus:"Top-up bonus",signupBonus:"Signup bonus",referralClawback:"Referral cashback clawback (refund)",couponBonus:"Kupon bonusu",referralCashback:"Davet iadesi",referralInviteeCashback:"Davet edilen bonusu",redeemCode:"Kullanım kodu {{code}}",redeemCodeReversal:"Kod kullanımı iptali",stripeRefund:"Stripe iadesi",bonusReversal:"Bonus geri alımı (iade)"},gyo={title:"Tahsis edilmiÅ kredi",subtitle:"Yalnızca belirli modellerde kullanılabilen bonus kredi â bakiyenizden ayrı tutulur.",onlyModels:"Yalnızca {{models}}",onlyModelsGeneric:"Kısıtlı modeller",validUntil:"{{date}} tarihine kadar geçerli",noExpiry:"Süresiz",useInChat:"Use in chat"},hyo={card:"Kart",alipay:"Alipay",wechatPay:"WeChat Pay"},yyo={title:"Kullanım kodu",description:"Kullanım kodunuz mu var? Girin, tutar doÄrudan bakiyenize eklensin.",placeholder:"Ãrn: OHR-XXXXXXXX",redeem:"Kullan",redeeming:"Kullanılıyorâ¦",success:"{{amount}} bakiyenize eklendi",successRestricted:"Redeemed {{amount}} â usable with {{models}} only",successValidity:"Valid until {{date}}.",errors:{invalid:"Bu kod geçersiz.",expired:"Bu kodun süresi doldu.",alreadyRedeemed:"Bu kod zaten kullanılmıÅ.",perUserLimit:"Bu parti için kullanım sınırına ulaÅtınız."}},vyo={title:who,description:kho,breakdown:Cho,referralRewards:Sho,burnRate:Aho,topup:Tho,addCredits:Rho,creating:Pho,availableCredit:_ho,topUp:jho,poweredByStripe:Nho,amountUsd:Dho,presetAmounts:Mho,redeemCoupon:Eho,couponCode:Iho,redeeming:Oho,redeem:Lho,couponRedeemed:Uho,redirecting:Bho,summaryFailed:Fho,topupFailed:zho,tabsLabel:qho,transactions:Hho,creditGrants:Vho,transactionType:Kho,source:Gho,noTransactions:Who,noTransactionsDescription:Yho,ledgerEntries:Qho,time:Xho,type:Zho,amount:Jho,balance:eyo,noGrants:tyo,noGrantsDescription:nyo,status:ayo,topupBanner:oyo,compliance:syo,receipts:ryo,openingPortal:iyo,portalFailed:lyo,recentTopups:cyo,alerts:dyo,history:uyo,lowBalanceWarning:myo,lowBalanceWarningNoAutoTopup:pyo,ledgerDesc:fyo,earmarked:gyo,paymentMethod:hyo,redeemCard:yyo},byo="Grafik yüklenemedi",xyo="Veri yok",$yo="Henüz grafiklenecek veri yok.",wyo={errorTitle:byo,emptyTitle:xyo,emptyDescription:$yo},kyo={copy:"Kopyala",regenerate:"Yeniden oluÅtur",shareComingSoon:"PaylaÅ (yakında)",download:"İndir",copyLink:"BaÄlantıyı kopyala",newChat:"Yeni sohbet",deleteChat:"Sohbeti sil",openConversationList:"Sohbet listesini aç",openSettings:"Sohbet ayarları",collapseSidebar:"Kenar çubuÄunu daralt",expandSidebar:"Kenar çubuÄunu geniÅlet",cancel:"İptal",apply:"Uygula",newChatTooltip:"Yeni sohbet oluÅtur",copied:"Kopyalandı"},Cyo={placeholderReady:"Yeni bir sohbet baÅlat...",placeholderNoModel:"Ãnce yukarıdan bir model seç",attachmentTooLarge:"Dosya {{limit}} sınırını aÅıyor ve yüklenemiyor",attachmentUnsupported:"Desteklenmeyen dosya türü. PNG, JPEG, WebP, GIF, MP4, WebM veya MOV kullanın.",unsupportedVision:"Bu model görsel veya video giriÅini desteklemiyor. Dosya bırakmadan önce model deÄiÅtirin.",send:"Gönder",abort:"Durdur",attachImage:"Görsel ekle",attachMedia:"Görsel veya video ekle",removeAttachment:"Kaldır",shortcutSend:"gönder",shortcutNewLine:"yeni satır",shortcutAbort:"durdur",frameFirst:"İlk kare",frameLast:"Son kare",frameReference:"Referans",imageMode:"Görsel üretimi",videoMode:"Video üretimi",placeholderComingSoon:"This model is coming soon â pick another one above",reasoning:"DüÅünme",reasoningOff:"Kapalı",reasoningAlways:"Her zaman açık",placeholderTopupRequired:"Bu model yükleme yapmıŠhesaplara açık â burada kullanmak için bakiye yükleyin"},Syo={modelUnavailable:"{{model}} modeli Åu anda kullanılamıyor. Promptâunuz yine de kaydedildi.",rateLimited:"Ãok fazla eÅzamanlı istek var. Birazdan tekrar deneyin.",accountDisabled:"Bu hesap devre dıÅı ve sohbete devam edemez.",attachmentsUploading:"Görseller hâlâ yükleniyor. Göndermeden önce biraz bekleyin.",attachmentsFailed:"Bir görsel yüklenemedi. Kaldırıp tekrar deneyin, sonra gönderin."},Ayo={title:"Burada herhangi bir modeli test etmeye baÅlayın.",body:"Herhangi bir modelle doÄrudan sohbet edin. Kullanım PAYG cüzdanınızdan ücretlendirilir.",starters:{compareModels:"Aynı kodlama görevinde GPT-5.5 ve Claude Opusâu karÅılaÅtır",analyzeImage:"Bir mimari diyagramını analiz edip riskleri özetle",draftPrompt:"Bir destek agent için system prompt taslaÄı hazırla",generateImage:"Temiz SaaS stilinde bir ürün hero görseli üret"}},Tyo={untitled:"Adsız sohbet",deleteConfirm:'"{{title}}" silinsin mi?',emptyTitle:"Henüz sohbet yok",emptyBody:"BaÅlamak için yukarıdaki + Yeni sohbeti kullanın.",listLabel:"Sohbet listesi",groups:{today:"Bugün",yesterday:"Dün",earlier:"Daha önce"},menu:{rename:"Yeniden adlandır",delete:"Sil"},deleteTitle:"Sohbet silinsin mi?"},Ryo={paygWallet:"PAYG cüzdanı"},Pyo={chooseModel:"Model seç",searchPlaceholder:"Model ara...",emptyTitle:"Model bulunamadı",emptyBody:"BaÅka bir arama terimi veya sekme deneyin.",protocols:"{{count}} protokol",context:"{{value}} ctx",tabs:{all:"Tümü",text:"Metin",image:"Görsel",video:"Video"},maxOut:"çıktı {{value}}",unavailable:"Geçici olarak kullanılamıyor",requiresTopup:"Açmak için yükleyin"},_yo={title:"Sohbet ayarları",protocol:"Protokol",unlimited:"Sınırsız",fields:{memory_limit:{label:"Sohbet hafızası"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"Hizmet katmanı",options:{standard:"Standart",priority:"Ãncelikli",flex:"Esnek"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"örn. 2000"},stop_sequences:{label:"Stop Sequences",placeholder:"Virgülle ayırın, örn. END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"Bir system prompt girin..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"Ãrtük",explicit:"Açık"}},image_size:{label:"Görsel çözünürlüÄü"},image_resolution:{label:"Ãözünürlük"},image_quality:{label:"Görsel kalitesi",options:{Auto:"Auto",auto:"Auto",low:"DüÅük",medium:"Orta",high:"Yüksek"}},video_ratio:{label:"En-boy oranı"},video_resolution:{label:"Video çözünürlüÄü"},video_duration_seconds:{label:"Süre"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"Görsel sayısı"},image_aspect_ratio:{label:"En-boy oranı"},reasoning_effort:{label:"Akıl yürütme yoÄunluÄu",options:{none:"Kapalı",minimal:"En düÅük",low:"DüÅük",medium:"Orta",high:"Yüksek",xhigh:"Ãok yüksek",max:"En yüksek"}},reasoning_pro:{label:"Pro modu"},reasoning_context:{label:"Akıl yürütme baÄlamı",options:{auto:"Otomatik",current_turn:"Mevcut tur",all_turns:"Tüm turlar"}},reasoning_enabled:{label:"DüÅünme"},reasoning_always:{label:"DüÅünme",value:"Her zaman açık"}}},jyo={estimating:"tahmin ediliyor...",settling:"hesaplanıyor...",input:"girdi",output:"çıktı",milliseconds:"ms",realCost:"Gerçek maliyet",latency:"Gecikme",logDetail:"Log detayı"},Nyo={copied:"Görsel baÄlantısı kopyalandı",expired:"Görsel baÄlantısının süresi doldu. Yeniden açmak için baÄlantıyı kopyalayın veya yeniden oluÅturun.",attachment:"[görsel eki]"},Dyo={message:"Bu sohbet PAYG cüzdanınızdan ücretlendirilir",balance:"Bakiye",billingLink:"Faturalama",dismiss:"Kapat"},Myo={trigger:"Kod olarak kopyala",copied:"{{format}} olarak kopyalandı",failed:"Kopyalanamadı",failedDescription:"Pano izni tarayıcı tarafından engellenmiÅ olabilir."},Eyo={interrupted:"[Kesildi]",sending:"gönderiliyor"}
835,Iyo={title:"DüÅünme süreci",duration:"{{seconds}}s düÅündü"},Oyo={title:"Video üretimi yakında",body:"Bu model keÅif için listeleniyor, ancak video gönderimi henüz etkin deÄil.",switchToText:"Metin modeline geç"},Lyo={imageGenerating:"Görsel oluÅturuluyor",videoGenerating:"Video oluÅturuluyor",stage:{queued:"Sırada",routing:"Yönlendiriliyor",generating:"OluÅturuluyor",storing:"Depolanıyor",settling:"Hesaplanıyor"}},Uyo={badge:"Earmarked {{amount}}",bannerTitle:"Earmarked credit available",bannerBody:"You have {{amount}} of dedicated credit for this model â it's used first."},Byo={INSUFFICIENT_CREDITS:"Yetersiz bakiye",RATE_LIMITED:"Ãok fazla istek",rate_limit_error:"Ãok fazla istek",MODEL_NO_VISION:"Bu model görüntü giriÅini desteklemiyor",CONTENT_REFUSED:"Model bu isteÄi reddetti",EMPTY_RESPONSE:"Model boÅ bir yanıt döndürdü",upstream_error:"Yukarı akıŠhizmeti hatası",overloaded_error:"Yukarı akıŠhizmeti meÅgul",upstream_invalid_json:"Yukarı akıŠyanıtı bozuk",stream_read_error:"Yanıt akıÅı kesildi",invalid_api_key:"Yukarı akıŠkimlik doÄrulaması baÅarısız",model_unavailable:"Model geçici olarak kullanılamıyor",no_image:"Görüntü oluÅturulamadı",no_body:"Yukarı akıÅtan yanıt yok",http_error:"İstek baÅarısız",session_create_failed:"Oturum oluÅturulamadı"},Fyo={title:"Bu modeli açmak için bakiye yükleyin",body:"Bakiye yüklemiÅ hesaplara açıktır. Herhangi bir tutar anında kilidi açar, bakiyeniz yine kullandıkça düÅülür.",cta:"Bakiye yükle"},zyo={actions:kyo,composer:Cyo,errors:Syo,empty:Ayo,sidebar:Tyo,header:Ryo,modelSelector:Pyo,settings:_yo,metrics:jyo,image:Nyo,payg:Dyo,copyAsCode:Myo,status:Eyo,thinking:Iyo,video:Oyo,media:Lyo,earmark:Uyo,errorCodes:Byo,topupLock:Fyo},qyo="Yükleniyor...",Hyo="Hesap",Vyo="Dil",Kyo="GiriÅ yap",Gyo="ÃıkıŠyap",Wyo="ÃıkıŠyapılıyor...",Yyo="DeÄiÅiklikleri kaydet",Qyo="Kaydediliyor...",Xyo="Kaydedildi.",Zyo="Geri",Jyo="Tekrar dene",evo="Yüklemede hizmet ücretinden %5 indirim.",tvo="Kaydet",nvo="İptal",avo="Temizle",ovo="Sıfırla",svo="Kopyalandı",rvo="Kopyalanamadı",ivo="Kapat",lvo="Toplam",cvo={timestamp:"Zaman damgası",local:"Yerel saat",relative:"Göreli"},dvo="Kopyala",uvo={title:"Tarayıcında aç",description:"Bu sayfayı bir <b>uygulama içi tarayıcıda</b> görüntülüyorsun; <b>burada Google ile giriÅ ve insan doÄrulaması çalıÅmaz</b>. Devam etmek için sistem tarayıcında aç.",hintWechat:"SaÄ Ã¼stteki ··· menüsüne dokun ve âTarayıcıda Açâ seçeneÄini seç.",hintGeneric:"SaÄ Ã¼stteki menüden âTarayıcıda / S
835afari'de Açâ seçeneÄini seç.",copyLink:"BaÄlantıyı kopyala",continueAnyway:"Yine de devam et"},mvo="Tümü",pvo="Etkin",fvo="İsteÄe baÄlı",gvo="Kaldır",hvo={loading:qyo,account:Hyo,language:Vyo,signIn:Kyo,signOut:Gyo,signingOut:Wyo,saveChanges:Yyo,saving:Qyo,saved:Xyo,back:Zyo,retry:Jyo,topUpPromo:evo,save:tvo,cancel:nvo,clearAll:avo,reset:ovo,copied:svo,copyFailed:rvo,dismiss:ivo,total:lvo,time:cvo,copy:dvo,inAppBrowser:uvo,all:mvo,active:pvo,optional:fvo,remove:gvo},yvo="Pano",vvo="Credit, kullanım ve gateway saÄlıÄını tek konsoldan izleyin.",bvo="API key oluÅtur",xvo={creditBalance:"Credit bakiyesi",requestsToday:"Bugünkü istekler",activeApiKeys:"Aktif API keys"},$vo={title:"Kullanım trendi",description:"Son 14 gündeki istekler ve faturalanan credit.",viewUsage:"Kullanımı görüntüle",loading:"Kullanım trendi yükleniyor",empty:"Henüz kullanım yok",emptyDescription:"İstekler akmaya baÅladıÄında kullanım burada görünür."},wvo={title:"Credit etkinliÄi",description:"Son 90 gündeki günlük faturalanan credit.",total:"90 günlük toplam",loading:"Etkinlik yükleniyor",activeDays:"Son {{days}} günde {{count}} aktif gün",less:"Az",more:"Ãok"},kvo={title:"Kullanım daÄılımı",description:"Harcama yoÄunluÄu, token hacmi ve en çok kullanılan modelin tek ekranda özeti.",activeDays:"Aktif günler",ofDays:"/ {{days}} gün",avgDailyCredit:"Günlük ort. credit",nonZeroDays:"aktif günlerde",peakDay:"Zirve gün",noPeak:"Henüz kullanım yok",tokens:"Tokens",topModel:"BaÅlıca model",creditShare:"Faturalanan credit payı"},Cvo={title:"Hızlı saÄlık",requests7d:"7 günlük istekler",creditToday:"Bugün harcanan credit",credit7d:"7 günlük credit harcaması"},Svo={title:"Son istekler",description:"Keyâlerinizdeki son gateway çaÄrıları.",viewRecords:"Kayıtları görüntüle",table:{label:"Son istekler",model:"Model",status:"Durum",tokens:"Tokens",credit:"Credit",time:"Zaman",apiKey:"API key"},empty:"Henüz istek yok",emptyDescription:"Bir API key oluÅturup istek gönderdiÄinizde son çaÄrılar burada görünür."},Avo={title:"İlk isteÄinizi gönderin",description:"OpenAI uyumlu. Bir key oluÅturun, {{env}} ayarlayın ve gatewayâi çaÄırın."},Tvo={credit:"Credit",requests:"İstekler"},Rvo={title:yvo,description:vvo,createApiKey:bvo,cards:xvo,usageTrend:$vo,activity:wvo,usageMix:kvo,quickHealth:Cvo,recent:Svo,firstRequest:Avo,tooltip:Tvo},Pvo="Tüm satırları seç",_vo="{{row}}. satırı seç",jvo="Yüklenemedi",Nvo="Veri yok",Dvo="Gösterilecek kayıt yok.",Mvo="Daha fazla ayrıntı",Evo="{{count}} ek ayrıntı",Ivo="Ayrıntıları aç",Ovo={selectAllRows:Pvo,selectRow:_vo,errorTitle:jvo,emptyTitle:Nvo,emptyDescription:Dvo,moreDetails:Mvo,moreDetailsWithCount:Evo,openRow:Ivo},Lvo="Son 1 saat",Uvo="Bugün",Bvo="Dün",Fvo="Son 7 gün",zvo="Son 30 gün",qvo="Bu ay",Hvo="Aya göre",Vvo="Ãzel",Kvo="Tüm zamanlar",Gvo="Tarih seç",Wvo="İptal",Yvo="Uygula",Qvo="BaÅlangıç tarihi bitiÅ tarihinden önce olmalı.",Xvo="Aralık hazır seçenekleri",Zvo="Ãnceki ay",Jvo="Sonraki ay",ebo={last1h:Lvo,today:Uvo,yesterday:Bvo,last7d:Fvo,last30d:zvo,thisMonth:qvo,byMonth:Hvo,custom:Vvo,all:Kvo,selectDate:Gvo,cancel:Wvo,apply:Yvo,reversedError:Qvo,presetsAriaLabel:Xvo,previousMonth:Zvo,nextMonth:Jvo},tbo="Hesap kullanılamıyor",nbo="Hesap baÅlatılıyor",abo={title:"Hesap askıya alındı",description:"Bu hesap oturum açabilir, ancak konsol eriÅimi ve gateway istekleri durduruldu.",detail:"Bunun beklenmedik olduÄunu düÅünüyorsan bu hesabın email adresiyle support ile iletiÅime geç."},obo={accountUnavailable:tbo,accountInitializing:nbo,accountRestricted:abo},sbo="Ãcretsiz Token",rbo="Seçili modeller için günlük ücretsiz token kotası â kendiliÄinden yenilenir. Cüzdanınızdan ücret alınmaz.",ibo="Ãcretsiz token kotanız yüklenemedi.",lbo="Tüm modeller",cbo="Kampanya {{date}} tarihinde sona eriyor",dbo={daily:"Günlük",weekly:"Haftalık"},ubo={daily:"Her gün yenilenir",weekly:"Her hafta yenilenir",localTime:"yerel saatiniz {{time}}",countdown:"sonraki yenileme {{duration}}
835 sonra",refreshingSoon:"yakında yenilenecek"},mbo={title:"Aktif ücretsiz token kampanyası yok",description:"Bir ücretsiz token kampanyası baÅladıÄında günlük kotanız burada görünecek."},pbo={title:"Hesabınızda ücretsiz token verilmesi duraklatıldı",body:"Bu hesap toplu kayıt düzenine benziyor; bu nedenle ücretsiz tahsisler Åimdilik duraklatıldı. Bu bir yanlıÅlıksa bize Åu adresten ulaÅın:"},fbo="token",gbo="Bugün kalan {{value}} token",hbo={label:"Bitince e-posta gönder",hint:"Günlük ücretsiz token'ların bittiÄinde sana e-posta gönderelim."},ybo={crg_freetoken_daily_cn5:"Ãin modelleri · her gün ücretsiz token"},vbo={title:sbo,description:rbo,loadFailed:ibo,allModels:lbo,campaignEnds:cbo,cadence:dbo,refresh:ubo,empty:mbo,paused:pbo,tokensUnit:fbo,remainingToday:gbo,emailToggle:hbo,campaigns:ybo},bbo="Loglar",xbo="İstek bazında maliyet, gecikme, tokens, durum ve routing sinyallerini inceleyin.",$bo={copiedCurl:"curl kopyalandı",copiedId:"İstek ID kopyalandı",copyCurl:"curl olarak kopyala",copyFailed:"Kopyalanamadı",copyId:"İstek ID kopyala",menu:"Satır iÅlemleri",openTab:"Yeni sekmede aç"},wbo={prompt:"Prompt",ratio:"Hit oranı",read:"Cache okuma",title:"Cache hit oranı"},kbo={confirm:"İÅi iptal et",failed:"İŠiptal edilemedi",keep:"Tut",message:"Bu iÅ hâlâ kuyrukta. İptal ederseniz iÅlenmez; herhangi bir ücret uygulanmaz.",success:"İŠiptal edildi",title:"İŠiptal edilsin mi?",pending:"İptal ediliyor..."},Cbo={cacheHit:"Ãnbellek isabeti",cost:"Maliyet",ip:"IP",latency:"Gecikme",model:"Model",source:"Kaynak",status:"Durum",stream:"AkıÅ",time:"Zaman",tokens:"Tokens",tps:"Throughput"},Sbo={trigger:"Sütun ayarları"},Abo={body:"OneHop üzerinden bir istek gönderdiÄinizde burada görünür.",title:"Bu aralıkta log yok"},Tbo={all:"Tümü",apiKey:"API key",cost:"Maliyet (USD)",desktopDateRangeAria:"Masaüstü tarih aralıÄını seç",finishReason:"BitiÅ nedeni",latency:"Gecikme (s)",max:"Maks",min:"Min.",mobileDateRangeAria:"Mobil tarih aralıÄını seç",model:"Model",modelsSelected:"{{count}} seçili",more:"Daha fazla filtre",refresh:"Yenile",request:"İstek ID ile ara",requestIdLabel:"İstek ID",status:"Durum",stream:"AkıÅ",time:"Zaman",type:"Tür",mobileTitle:"Filtreler"},Rbo={requests:"bu sayfadaki istekler",times:"zaman gösterimi"},Pbo={rowsPer:"Satır"},_bo={all:"Tüm zamanlar",custom:"Ãzel",last1h:"Son 1 saat",last30d:"Son 30 gün",last7d:"Son 7 gün",thisMonth:"Bu ay",today:"Bugün",yesterday:"Dün"},jbo={title:"İstemci",unknown:"user-agent bildirilmedi",unknownShort:"Bilinmiyor"},Nbo={output:"Ãıktı tokens",rate:"Oran",title:"Throughput",window:"Ãretim penceresi"},Dbo={title:"İstek",openDetail:"İstek ayrıntılarını aç",copy:"ID kopyala",copied:"Kopyalandı",copyFailed:"Kopyalanamadı",close:"Kapat",loading:"Yükleniyorâ¦",response:"Yanıt",sections:{request:"İstek",routing:"Yönlendirme",tokens:"Tokens",cost:"Maliyet dökümü",performance:"Performans",error:"Hata",outcome:"Sonuç",multimodal:"Ãok modlu"},fields:{requestId:"İstek ID",time:"Zaman",apiKey:"API key",userAgent:"User-Agent",billingMode:"Faturalama modu",onehopModel:"OneHop modeli",endpoint:"Endpoint",firstToken:"İlk token",total:"Toplam süre",throughput:"Throughput",stream:"Streaming",clientIp:"İstemci IP",finishReason:"BitiÅ nedeni",mediaType:"Medya türü",imageCount:"Görseller",imageSize:"Boyut",errorCode:"Kod",errorMessage:"Mesaj",requestedModel:"İstenen model"},billingMode:{token:"token baÅına",per_request:"istek baÅına",image:"görsel baÅına"},timeline:{heading:"YaÅam döngüsü",received:"İstek alındı",routed:"Yönlendirildi",failed:"BaÅarısız",generated:"Ãretildi",metered:"Ãlçüldü",billed:"Faturalandı"},downloadMedia:"İndir"},Mbo={success:"baÅarılı",completed:"tamamlandı",failed:"baÅarısız",pending:"bekliyor",repairing:"onarılıyor",queued:"kuyrukta",running:"çalıÅıyor",cancelled:"iptal edildi",expired:"süresi doldu"},Ebo={chat:"Sohbet",image:"Görsel",video:"Video"},Ibo={stop:"Stop",length:"Uzunluk sınırı",tool_calls:"Araç çaÄrıları",content_filter:"İçerik filtresi",error:"Hata"}
835,Obo={true:"AkıÅ",false:"AkıÅsız"},Lbo={title:"Maliyet dökümü"},Ubo={title:"Token dökümü",prompt:"Girdi",completion:"Ãıktı",imageOutput:"Görüntü çıktı tokenları",cacheRead:"Cache okuma",cacheWrite:"Cache yazma",cacheWrite5m:"Cache yazma 5m",cacheWrite1h:"Cache yazma 1h",total:"Toplam"},Bbo={timestamp:"Zaman damgası",local:"Yerel saat",relative:"Göreli"},Fbo={inputCost:"Girdi maliyeti",outputCost:"Ãıktı maliyeti",cacheReadCost:"Cache okuma maliyeti",cacheWriteCost:"Cache yazma maliyeti",inputPrice:"Girdi fiyatı",outputPrice:"Ãıktı fiyatı",total:"Toplam",officialPrice:"Resmi fiyat",saved:"Tasarruf",factor:{textInput:"Metin giriÅi",textOutput:"Metin çıktısı",imageInput:"Görüntü giriÅi",imageOutput:"Görüntü çıktısı",perCallImage:"Görüntü baÅına",videoPerSecond:"Video",videoPerCall:"Video",cacheRead:"Ãnbellek okuma",cacheWrite:"Ãnbellek yazma",cacheWrite5m:"Ãnbellek yazma (5m)",cacheWrite1h:"Ãnbellek yazma (1h)"},unit:{per1mTokens:"/ 1M token",perImage:"/ görüntü",perSecond:"/ sn",perCall:"/ çaÄrı"},promoBasis:"Promosyon öncesi",promoSaved:"Promosyon tasarrufu",freeCovered:"Ãcretsiz kota ({{tokens}} token)",freeCoveredNoCount:"Ãcretsiz kota"},zbo={noPreview:"Ãnizleme yok",video:"Video"},qbo={free:"Ãcretsiz"},Hbo={title:bbo,description:xbo,actions:$bo,cacheHit:wbo,cancelJob:kbo,col:Cbo,columns:Sbo,empty:Abo,filter:Tbo,meta:Rbo,pager:Pbo,range:_bo,source:jbo,tps:Nbo,drawer:Dbo,status:Mbo,type:Ebo,finishReason:Ibo,stream:Obo,costBreakdown:Lbo,tokensBreakdown:Ubo,time:Bbo,userCost:Fbo,export:{label:"CSV dıÅa aktar",exporting:"DıÅa aktarılıyorâ¦",done:"{{n}} satır dıÅa aktarıldı.",truncated:"İlk {{n}} satır dıÅa aktarıldı. Geri kalanı için tarih aralıÄını daraltın.",failed:"DıÅa aktarma baÅarısız. Lütfen tekrar deneyin."},media:zbo,cost:qbo},Vbo="Modeller",Kbo="Kullanılabilir tüm modelleri, baÄlam uzunluÄunu, giriÅ/çıkıŠfiyatlarını ve yetenekleri görün; sık kullandıklarınızı favorilere ekleyin.",Gbo={all:"Tümü",favorites:"Favorilerim",benefit:"Avantaj",hot:"Popüler",free:"Free"},Wbo={capability:"Tür",allCapabilities:"Tüm türler",capability_text:"Metin",capability_image:"Görsel",capability_audio:"Ses",capability_video:"Video",provider:"SaÄlayıcı",allProviders:"Tüm saÄlayıcılar",protocol:"Protokol",allProtocols:"Tüm protokoller",sort:"Sırala",search:"Ara",searchPlaceholder:"Model / saÄlayıcı",allContexts:"Her uzunluk",context:"BaÄlam",mobileTitle:"Filtreler"},Ybo="Ãne çıkan",Qbo="En yeni",Xbo="Haftanın popülerleri",Zbo="Ad (A-Z)",Jbo="Fiyat (düÅükten yükseÄe)",exo="Fiyat (yüksekten düÅüÄe)",txo="BaÄlam uzunluÄu",nxo="Gecikme",axo="İŠhacmi",oxo="OpenAI Chat",sxo="OpenAI Responses",rxo="Anthropic",ixo="Vertex AI",lxo="OpenAI Images",cxo="OpenAI Video",dxo={label:"Modeller",model:"Model",provider:"SaÄlayıcı",capabilities:"Yetenekler",context:"BaÄlam",price:"Fiyat",discount:"İndirim",action:"İÅlem",tryIt:"Dene",type:"Tür",maxOutput:"Maks. çıktı",copyId:"Model IDâsini kopyala",copied:"Kopyalandı",usage:"Kullanım",stability:"Kararlılık",protocols:"Protokoller",openDetail:"Open model detail"},uxo="Popüler",mxo="Avantaj",pxo={add:"Favorilere ekle",remove:"Favorilerden çıkar"},fxo={favorites:"Henüz favori yok",noMatch:"EÅleÅen model yok"},gxo="Metin",hxo="Görsel",yxo="Dosya",vxo="Video",bxo="Ses",xxo="Embedding",$xo="Vision",wxo="Araç çaÄırma",kxo="JSON modu",Cxo="Görsel üretimi",Sxo="Görsel düzenleme",Axo="Metin",Txo="Görsel",Rxo="Video",Pxo="Ses",_xo="Embedding",jxo="Resmi",Nxo="Kiro",Dxo="baÅlangıç",Mxo="/ çaÄrı",Exo="/ sn",Ixo="/ 1M",Oxo="Hızlı",Lxo="Free",Uxo="Coming Soon",Bxo="Free",Fxo={ariaLabel:"Fiyat para birimi",usd:"USD",rmb:"yuan (Â¥)",settlement:"Fiyatlar sabit {{rate}} kuruyla yuan olarak gösterilir, yalnızca bilgi amaçlıdır; cüzdanınızdan her zaman gerçek kullanıma göre USD tahsil edilir."},zxo="Yükleme gerekli",qxo={title:Vbo,description:Kbo,tabs:Gbo,filters:Wbo,sort_featured:Ybo,sort_newest:Qbo,sort_top_weekly:Xbo,sort_name:Zbo,sort_price_asc:Jbo,sort_price_desc:exo,sort_context:txo,sort_latency:nxo,sort_throughput:axo,protocol_openai_chat:oxo,protocol_openai_responses:sxo,protocol_anthropic_messages:rxo,protocol_google_vertex_ai:ixo,protocol_openai_images:lxo,protocol_openai_sora:cxo,table:dxo,badge_hot:uxo,badge_benefit:mxo,favorite:pxo,empty:fxo,modality_text:gxo,modality_image:hxo,modality_file:yxo,modality_video:vxo,modality_audio:bxo,modality_embeddings:xxo,capability_vision:$xo,capability_tool_calling:wxo,capability_json_mode:kxo,capability_image_generation:Cxo,capability_image_edit:Sxo,type_text:Axo,type_image:Txo,type_video:Rxo,type_audio:Pxo,type_embedding:_xo,provider_official:jxo,provider_kiro:Nxo,price_from:Dxo,price_perCall:Mxo,price_perSec:Exo,price_per1m:Ixo,price_fast:Oxo,badge_free:Lxo,badge_unavailable:Uxo,price_free:Bxo,currency:Fxo,badge_requiresTopup:zxo},Hxo={main:"Ana gezinme",utility:"Yardımcı gezinme",console:"Konsol gezinmesi",openNavigation:"Gezinmeyi aç",collapse:"Kenar çubuÄunu daralt",expand:"Kenar çubuÄunu geniÅlet"},Vxo={platform:"Konsol",chat:"Sohbet",models:"Modeller",logs:"Kayıtlar",jobs:"İÅler",apiKeys:"API keys",usage:"Kullanım",billing:"Faturalama",freeTokens:"Ãcretsiz Token",referrals:"Davetler",settings:"Ayarlar",admin:"Yönetim",balance:"Bakiye",helpSupport:"Yardım ve destek",announcements:"Duyurular",announcementsTitle:"Duyurular",announcementsEmpty:"Henüz duyuru yok. Yakında tekrar kontrol edin.",announcementsTicketUnread:"yeni yanıtı olan {{count}}
835 talep",support:"Destek",tasks:"Görevler",tagNew:"YENİ"},Kxo={staff:"Ekip"},Gxo={dashboard:"Panel",users:"Kullanıcılar",billing:"Platform faturalama",usage:"Platform kullanımı",rateLimits:"Hız sınırları",access:"EriÅim",staff:"Yöneticiler",growth:"Büyüme",models:"Modeller",announcements:"Duyurular",upstream:"Upstream",auditLogs:"Denetim günlükleri",webhooks:"Webhooks",support:"Support",campaigns:"Campaigns",domainRules:"Email domains"},Wxo={title:"Notifications",markAllRead:"Mark all read",loading:"Loadingâ¦",emptyTitle:"You're all caught up",emptyBody:"New notifications will show up here."},Yxo={aria:Hxo,public:{models:"Modeller",pricing:"Fiyatlandırma",docs:"Dokümanlar",blog:"Blog",changelog:"Sürüm Notları"},console:Vxo,adminGroups:Kxo,admin:Gxo,notifications:Wxo},Qxo={back:"Geri",done:"Tamam",next:"İleri",stepOf:"{{current}} / {{total}}"},Xxo={balance:{body:"Kullandıkça yükleme yapın. Kullanılmayan bakiye her zaman iade edilebilir.",title:"Bakiyeniz"},keys:{body:"Buradan bir key oluÅturun ve istediÄiniz aracı OneHopâa yönlendirin.",title:"İlk API keyâinizi oluÅturun"},models:{body:"ÃaÄırabileceÄiniz tüm modelleri ve her birinin fiyatını tek sayfada görün.",cta:"Modelleri aç",title:"Modellere bakın"}},Zxo={body:"Tüm modeller için tek URL. 30 saniyede üç Åeyi gösterelim.",skip:"Atla",start:"BaÅla",title:"OneHopâa hoÅ geldiniz"},Jxo={nav:Qxo,steps:Xxo,welcome:Zxo},e$o="Failed to load",t$o="Nothing here yet.",n$o="Daha fazla ayrıntı",a$o={failedLoad:e$o,emptyDescription:t$o,moreDetails:n$o},o$o="Tümü",s$o="BaÅarılı",r$o="Beklemede",i$o="Onarılıyor",l$o="BaÅarısız",c$o="İade edildi",d$o="Aktif",u$o="Devre dıÅı",m$o="Tükendi",p$o="Rezerve edildi",f$o="Kullanıldı",g$o="Askıya alındı",h$o="Silindi",y$o="Normal",v$o="İzlemede",b$o="Engellendi",x$o="Verildi",$$o="Geri alındı",w$o="Süresi doldu",k$o="Reddedildi",C$o="Taslak",S$o="Yayında",A$o="Kullanımdan kalktı",T$o="ArÅivlendi",R$o="Gizli",P$o="OluÅturuldu",_$o="Checkout açıldı",j$o="Ãdendi",N$o="İptal edildi",D$o="OpenAI Chat",M$o="OpenAI Responses",E$o="Anthropic Messages",I$o="Google Vertex AI",O$o="OpenAI Images",L$o="Kullanım ücreti",U$o="Kayıt bonusu",B$o="Promosyon bonusu",F$o="Referans bonusu",z$o="Telafi bonusu",q$o="Yükleme bonusu",H$o="Manuel düzeltme",V$o="Credit satın alma",K$o="Ãdeme",G$o="Kayıt bonusu",W$o="Kupon",Y$o="Admin kredisi",Q$o="API kullanımı",X$o="Kayıt bonusu",Z$o="Manuel kredi",J$o="Sync",ewo="Streaming",two="Token faturalama",nwo="İstek faturalama",awo="Görsel faturalama",owo="DüÅük reasoning",swo="Orta reasoning",rwo="Yüksek reasoning",iwo="Uygulanamaz",lwo="Bilinmiyor",cwo="Donduruldu",dwo="Serbest bırakıldı",uwo="İptal edildi",mwo="Kısmen geri alındı",pwo="Atlandı",fwo={all:o$o,success:s$o,pending:r$o,repairing:i$o,failed:l$o,refunded:c$o,active:d$o,disabled:u$o,exhausted:m$o,reserved:p$o,redeemed:f$o,suspended:g$o,deleted:h$o,normal:y$o,watchlisted:v$o,blocked:b$o,granted:x$o,reversed:$$o,expired:w$o,denied:k$o,draft:C$o,published:S$o,deprecated:A$o,archived:T$o,public:"Herkese açık",hidden:R$o,created:P$o,checkout_opened:_$o,paid:j$o,canceled:N$o,openai_chat:D$o,openai_responses:M$o,anthropic_messages:E$o,google_vertex_ai:I$o,openai_images:O$o,usage_charge:L$o,bonus_signup_grant:U$o,bonus_promo_grant:B$o,bonus_referral_grant:F$o,bonus_compensation_grant:z$o,bonus_topup_grant:q$o,manual_adjustment:H$o,credit_purchase:V$o,payment:K$o,signup:G$o,coupon:W$o,admin:Y$o,api:Q$o,signup_bonus:X$o,manual:Z$o,sync:J$o,stream:ewo,token:two,request:nwo,image:awo,low:owo,medium:swo,high:rwo,not_applicable:iwo,unknown:lwo,frozen:cwo,released:dwo,cancelled:uwo,partially_reversed:mwo,skipped:pwo},gwo="Sayfa baÅına {{count}}",hwo="Toplam {{count}}",ywo={perPage:gwo,total:hwo},vwo="Davet et ve kazan",bwo="Sana özel baÄlantını paylaÅ. Davet ettiÄin kullanıcı bakiye yükledikçe, her iki tarafın kazancı da net Åekilde kaydedilir.",xwo="Davet verileri yüklenemedi",$wo="Davet baÄlantın",wwo="PaylaÅ",kwo="Davet kopyalandı. PaylaÅmak için WeChatâe yapıÅtırın.",Cwo="Kopyala",Swo="Kopyalandı",Awo="WeChat",Two="X",Rwo="Telegram",Pwo="Reddit",_wo="LinkedIn",jwo="WhatsApp",Nwo="E-posta",Dwo="Facebook",Mwo={default:{title:"Tüm AI modellerini tek bir O
835neHop API ile çaÄırın",body:"Davet baÄlantımla kaydolun â {{firstWindowDays}} gün içinde ilk yüklemenizi yapın, ikimiz de {{percent}}% geri kazanalım."},x:{title:"Tüm AI modelleri için tek API ð¤",body:"BaÄlantımla {{firstWindowDays}} gün içinde yükleme yapın, ikimiz de {{percent}}% geri kazanalım. ð"},telegram:{title:"OneHop ile tüm AI modelleriyle geliÅtirin",body:"Davet baÄlantımı kullanın â {{firstWindowDays}} gün içinde yapılan ilk yükleme ikimize de {{percent}}% referans kredisi kazandırır."},whatsapp:{title:"Tüm AI modelleriyle geliÅtirin â OneHop",body:"Davet baÄlantımla katılın. {{firstWindowDays}} gün içinde yükleme yapın, ikimiz de {{percent}}% geri kazanalım."},reddit:{title:"OneHop â tüm AI modelleri için tek API. Davetimle ilk yüklemenizde ikimiz de {{percent}}% geri kazanırız",body:"{{firstWindowDays}} gün içinde yükleme yapın, ikimiz de {{percent}}% referans kredisi kazanalım."},email:{title:"OneHop daveti â tüm AI modelleri tek API üzerinden",body:`Merhaba, 836 837Tüm büyük AI modellerini tek bir API üzerinden çaÄırmak için OneHop kullanıyorum. Davet baÄlantımla kaydolun; ilk yüklemenizden sonra ikimiz de referans kredisi kazanalım. 838 839Ãdül kademeleri: {{tiers}}. 840 841TeÅekkürler!`},wechat:{title:"OneHop â tüm AI modelleri tek API üzerinden",body:"Davet baÄlantımla kaydolun. {{firstWindowDays}} gün içinde yükleme yapın, ikimiz de {{percent}}% referans kredisi kazanalım."}},Ewo="Kazanç, ödemenin hemen ardından görünür; ancak iade penceresini karÅılamak için önce dondurulur ve süre dolunca OneHop davet ödülü credit olarak serbest bırakılır.",Iwo="{{days}} gün sonra serbest bırakılır.",Owo={referrer:"Davet eden",referee:"Davet edilen"},Lwo={referrer:": davet ettiÄin kiÅi bakiye yüklediÄinde davet creditâi kazanırsın â {{tiers}}.",referee:": baÄlantıyla kaydol ve bakiye yükle, sen de kazan â {{tiers}}."},Uwo={dayRange:"{{fromDay}}-{{untilDay}}. günler",dayOpenEnded:"{{fromDay}}. günden itibaren"},Bwo="Toplam kazanç",Fwo="Serbest bırakılan davet kazancı",zwo="Dondurulan davet kazancı",qwo="Davet edilen kiÅi sayısı",Hwo="Geçerli davetler",Vwo="Serbest bırakılan davet ödülü",Kwo="Dondurulan davet ödülü",Gwo="İptal / geri alınan",Wwo="Davet ettiÄin kiÅiler",Ywo="Kazanç ayrıntıları",Qwo={user:"Kullanıcı",joined:"Kayıt tarihi",topups:"Yükleme sayısı",earned:"Senin kazancın",frozen:"Dondurulan",date:"Tarih",event:"Etkinlik",topupAmount:"KarÅı tarafın yüklemesi",rate:"Oran",releaseAt:"Serbest bırakma tarihi",cashback:"Geri ödeme",status:"Durum"},Xwo={title:"Henüz davet yok",description:"Kazanmaya baÅlamak için baÄlantını paylaÅ."},Zwo={inviteeSignedUp:"Davet edilen kiÅi baÅarıyla kaydoldu",youSignedUp:"Davet üzerinden baÅarıyla kaydoldun",inviteePaid:"Davet edilen kiÅi baÅarıyla harcama yaptı",youPaid:"Davet edilen olarak baÅarıyla harcama yaptın"},Jwo={frozen:"Dondurulan",released:"Serbest bırakıldı",cancelled:"İptal edildi",partially_reversed:"Kısmen geri alındı",reversed:"Geri alındı",failed:"BaÅarısız",skipped:"Atlandı"},e0o={title:vwo,description:bwo,error:xwo,yourLink:$wo,shareVia:wwo,wechatCopied:kwo,copy:Cwo,copied:Swo,wechat:Awo,x:Two,telegram:Rwo,reddit:Pwo,linkedin:_wo,whatsapp:jwo,email:Nwo,facebook:Dwo,share:Mwo,offer:Ewo,releaseDelay:Iwo,role:Owo,roleOffer:Lwo,policy:Uwo,totalEarned:Bwo,availableEarned:Fwo,frozenEarned:zwo,invited:qwo,active:Hwo,availableReceived:Vwo,frozenReceived:Kwo,cancelledReversed:Gwo,peopleYouInvited:Wwo,history:Ywo,col:Qwo,empty:Xwo,event:Zwo,status:Jwo},t0o="Ayarlar",n0o="Hesap tercihlerini ve konsol varsayılanlarını yönet.",a0o="{{email}} olarak giriÅ yapıldı",o0o="Görünen ad",s0o="Dil",r0o="Saat dilimi",i0o="Profil yüklenemedi",l0o="Kaydedilemedi",c0o="DeÄiÅiklikler atılsın mı?",d0o="KaydedilmemiÅ deÄiÅiklikleriniz var. Åimdi çıkarsanız bunlar atılır.",u0o="At",m0o="Düzenlemeye devam et",p0o={title:t0o,description:n0o,signedInAs:a0o,displayName:o0o,locale:s0o,timezone:r0o,failedLoad:i0o,failedSave:l0o,discardTitle:c0o,discardMessage:d0o,discardConfirm:u0o,keepEditing:m0o},f0o="Görev Duvarı",g0o="OneHop'u kitlenizle paylaÅın ve deneme kredisi kazanın. Her baÅvuruyu elle inceliyoruz.",h0o="PaylaÅımınızın baÄlantısı",y0o="https://â¦",v0o="Gönder",b0o="Gönderildi â kısa süre içinde inceleyeceÄiz.",x0o="Kabul edilen baÄlantılar: {{hosts}}",$0o="Daha önce reddedildi: {{reason}}. Düzeltip tekrar gönderin.",w0o={pending:"İncelemede",approved:"Yüklendi",rejected:"Reddedildi",active:"Etkin"}
841,k0o={title:"Åu anda görev yok",description:"Yakında tekrar bakın â bu kampanyaları düzenli olarak açıyoruz."},C0o={x_quote:{title:"X'te bizi alıntılayın",description:"@OneHopAI'nin sabitlenmiÅ gönderisini alıntılayın ve kendi yorumunuzu ekleyin.",rules:["X hesabınız en az 6 aylık olmalı ve 10 veya daha fazla takipçisi bulunmalı.","Orijinal gönderiyi deÄil, kendi alıntı gönderinizin baÄlantısını gönderin.","Kredi, onaydan sonra 2 saat içinde yüklenir."]},youtube_tutorial:{title:"YouTube'da bir eÄitim videosu yayınlayın",description:"OneHop'u kendi ajanınıza nasıl baÄladıÄınızı gösteren 6 dakika veya daha uzun bir video.",rules:["Yayınladıktan sonra video baÄlantısını gönderin.","YouTube kanalınızın 50 veya daha fazla abonesi olmalı.","Hesap baÅına bir kez.","Kredi, onaydan sonra 2 saat içinde yüklenir."]},short_video:{title:"Kısa video paylaÅın",description:"TikTok veya YouTube'da OneHop kurulumunuzdan bahseden 40 saniye ve üzeri bir kısa video.",rules:["Yayınladıktan sonra video baÄlantısını gönderin.","Kredi, onaydan sonra 2 saat içinde yüklenir."]},github_readme:{title:"GitHub README'nize OneHop ekleyin",description:"Kendi deponuzun README dosyasına bir OneHop teÅekkürü ekleyin. Sonraki her yüklemede %15 ekstra kazanın.",rules:["README yayına girdikten sonra depo baÄlantısını gönderin.","Bu tek seferlik deÄil, kalıcıdır: sonraki her yüklemede standart bonus ile %15'inizden yüksek olan uygulanır.","Kopyalanabilir metin aÅaÄıdadır."]}},S0o={load:"Görev duvarı yüklenemedi",generic:"Gönderilemedi",urlRequired:"Ãnce paylaÅımınızın baÄlantısını yapıÅtırın.",urlTooLong:"Bu baÄlantı çok uzun.",urlMalformed:"Bu geçerli bir baÄlantıya benzemiyor.",hostNotAllowed:"Bu görev yalnızca yukarıda listelenen platformlardan gelen baÄlantıları kabul eder.",notAPost:"Profil veya ana sayfa deÄil, ilgili gönderinin ya da videonun baÄlantısını verin.",alreadySubmitted:"Bu görevi zaten gönderdiniz.",notAvailable:"Bu görev Åu anda kullanılamıyor.",busy:"Bugünkü inceleme kapasitemiz doldu. Yarın tekrar deneyin.",emailUnverified:"Ãnce e-posta adresinizi doÄrulayın.",accountTooNew:"Hesabınız bunun için henüz yeterince eski deÄil.",riskFlagged:"Bu hesap Åu anda katılamaz. Bunun bir hata olduÄunu düÅünüyorsanız destek ekibine yazın.",accountInactive:"Bu hesap aktif deÄil.",deviceAlreadyClaimed:"Bu cihazdaki baÅka bir hesap zaten katıldı."},A0o="Bu projeye sponsor olduÄu için [OneHop]({{url}}) teÅekkürler! OneHop, tek bir OpenAI uyumlu API anahtarıyla GPT, Claude, Gemini, DeepSeek, Kimi ve Qwen dahil yüzlerce önde gelen modele eriÅim saÄlar. Birden fazla saÄlayıcı hesabı yönetmenize ya da model deÄiÅtirmek için kod düzenlemenize gerek yok; yalnızca kullandıÄınız kadar ödersiniz. â {{domain}}",T0o="Bu metni kopyala",R0o={title:f0o,description:g0o,urlLabel:h0o,urlPlaceholder:y0o,submit:v0o,submitted:b0o,allowedHosts:x0o,rejectedHint:$0o,status:w0o,empty:k0o,item:C0o,error:S0o,sponsorBlurb:A0o,copyBlurb:T0o},P0o="Canlı sohbet",_0o="Destek talepleri",j0o="Bir destek talebi açın, ekibimiz en kısa sürede yanıt versin.",N0o="Yeni talep",D0o={subject:"Konu",category:"Tür",status:"Durum",updated:"Güncellendi",user:"User"},M0o={billing:"Faturalandırma",technical:"Teknik",account:"Hesap",other:"DiÄer"},E0o={open:"Açık",pending:"Beklemede",resolved:"Ãözüldü",closed:"Kapalı"},I0o={allStatuses:"Tüm durumlar",allCategories:"All categories",search:"Search email or subject"},O0o={subject:"Konu",subjectPlaceholder:"Sorununu kısaca açıkla",category:"Tür",message:"Mesaj",messagePlaceholder:"Neler olduÄunu anlatâ¦",attachments:"Ekler",addAttachment:"Dosya ekle",submit:"Talebi gönder",cancel:"İptal"},L0o={you:"Sen",support:"Destek",system:"Sistem",replyPlaceholder:"Yanıt yazâ¦",send:"Gönder",closedNotice:"Bu talep kapalı. Hâlâ yardıma ihtiyacın varsa yeni bir talep aç.",sendHint:"Göndermek için â/Ctrl + Enter tuÅlarına bas",back:"Taleplere dön",systemStatus:{open:"Talep yeniden açıldı",pending:"Talep yanıtını bekliyor olarak
841iÅaretlendi",resolved:"Talep çözüldü olarak iÅaretlendi",closed:"Talep kapatıldı"}},U0o={title:"Support tickets",resolve:"Resolve",close:"Close",reopen:"Reopen",unread:"Unread"},B0o="Daha fazla yükle",F0o={created:"Talep gönderildi",replied:"Yanıt gönderildi",statusUpdated:"Status updated",error:"Bir Åeyler ters gitti. Lütfen tekrar dene"},z0o="Destek talebi bulunamadı veya kaldırıldı.",q0o={title:"Henüz talep yok",body:"Bir sorun mu var? Destek talebi açın, yardımcı olalım.",cta:"İlk talebi aç"},H0o={liveChat:P0o,title:_0o,subtitle:j0o,newTicket:N0o,columns:D0o,category:M0o,status:E0o,filters:I0o,form:O0o,thread:L0o,admin:U0o,loadMore:B0o,toast:F0o,notFound:z0o,empty:q0o},V0o="Kullanım",K0o="Bakiye, harcama hızı ve giderlerinizin nereye gittiÄi.",G0o="Aktivite",W0o="Bu aralıkta aktivite yok",Y0o="Kullanım dökümü",Q0o="API keyâe göre",X0o="Modele göre",Z0o="token türüne göre",J0o="Veri yok",eko="Bu aralıkta henüz kullanım yok.",tko="Mevcut hızla bakiye yaklaÅık {{days}} gün yeter (yaklaÅık {{rate}}/gün).",nko="çıktı",ako="önbellek",oko={tokens:"Tokens",requests:"İstekler",cost:"Maliyet"},sko="DiÄer",rko="istek",iko="tok",lko="Yenileniyorâ¦",cko="Veri yok",dko="Veri biriktirmek için bir istek gönderin.",uko="En çok kullanılan API keys",mko="Yükle",pko={title:"Kullanım yüklenemedi"},fko={firstToken:"ilk token",latency:"Ortalama gecikme",requests:"İstekler",spend:"Tüketim",spendSub:"bu dönem faturalanan",successRate:"%{{rate}} baÅarılı",tokens:"Tokens",textDuration:"metin",mediaDuration:"görsel/video",cacheHit:"%{{rate}} önbellek",projected:"â {{amount}}/ay",vsPrevious:"önceki döneme göre"},gko={activeDays:"Aktif günler",longestStreak:"En uzun seri",daysValue:"{{n}} gün",totalSpend:"Bu dönemde toplam",peakDay:"En yoÄun gün"},hko={all:"Tüm zamanlar",custom:"Ãzel",last1h:"Son 1 saat",last30d:"Son 30 gün",last7d:"Son 7 gün",thisMonth:"Bu ay",today:"Bugün",yesterday:"Dün",byMonth:"Aya göre"},yko={failed:"BaÅarısız",success:"BaÅarılı"},vko={cacheRead:"Cache okuma",cacheWrite:"Cache yazma",cacheWrite1h:"Cache yazma 1h",cacheWrite5m:"Cache yazma 5m",completion:"Ãıktı",prompt:"Girdi"},bko={body:"Terminalden bir istek gönderin veya playgroundâu açın â kullanım birkaç saniye içinde burada görünür.",openPlayground:"playgroundâu aç",title:"key hazır"},xko={body:"İlk API keyâinizi oluÅturun, tüm istekleri tek URL üzerinden yönlendirin; kullanım ardından burada görünür.",createKey:"API key oluÅtur",title:"OneHopâa hoÅ geldiniz",tryPlayground:"playgroundâu deneyin"},$ko="Yenile",wko="Geçerli filtrede {{count}} baÅarılı istek",kko="Toplam tokens",Cko="Girdi {{input}} / çıktı {{output}}",Sko="Faturalanan credit",Ako="{{cost}} gerçek upstream maliyeti",Tko="Ortalama gecikme",Rko="İlk token {{duration}}",Pko="30 günlük aktivite",_ko="BaÅarılı istekler, token hacmi ve faturalanan credit.",jko="Kullanım trendi yükleniyor",Nko="Kullanım trendi yok",Dko="BaÅarılı isteklerden sonra kullanım trendi görünür.",Mko="Popüler modeller",Eko="Son 30 günde modele göre faturalanan credit.",Iko="Henüz model kullanımı yok",Oko="BaÅarılı isteklerden sonra model daÄılımı görünür.",Lko="Model",Uko="Tüm modeller",Bko="Durum",Fko="Protokol",zko="Satır",qko="Sıfırla",Hko="Kullanım kayıtları",Vko="API key",Kko="Endpoint",Gko="Tür",Wko="Tokens",Yko="Maliyet",Qko="Süre",Xko="Zaman",Zko="User-Agent",Jko="Ayrıntılar",eCo="İstek ayrıntısı",tCo="Kullanım kaydı ayrıntıları ve faturalama metadata.",nCo="İstek ID",aCo="İÅlem",oCo="Girdi tokens",sCo="Ãıktı tokens",rCo="Cache okuma tokens",iCo="Cache yazma tokens",lCo="Girdi maliyeti",cCo="Ãıktı maliyeti",dCo="Cache okuma maliyeti",uCo="Cache yazma maliyeti",mCo="Hata kodu",pCo="Hata mesajı",fCo="Bulunamadı.",gCo="credit",hCo="Toplam {{count}}",yCo="Kullanım kayıtları yükleniyor",vCo="Kullanım kaydı yok",bCo="Farklı bir filtre seti deneyin.",xCo="İstekler API keys üzerinden aktıÄında kayıtlar burada görünür.",$Co="Sayfa {{page}} · eÅleÅen {{total}} kayıttan {{shown}} gösteriliyor",wCo="Ãnceki",kCo="Sonraki",CCo="Credit",SCo="Tokens",ACo="İstekler",TCo={time:"Zaman",apiKey:"API Key",model:"Model",reasoningEffort:"Akıl yürütme düzeyi",endpoint:"Endpoint",type:"Tür",billingMode:"Faturalama modu",inputTokens:"Girdi Tokens",outputTokens:"Ãıktı Tokens",cacheReadTokens:"Cache Okuma Tokens",cacheWriteTokens:"Cache Yazma Tokens",totalTokens:"Toplam Tokens",billedCredit:"Faturalanan Credit",firstTokenMs:"İlk Token Ms",durationMs:"Süre Ms",status:"Durum",userAgent:"User-Agent"},RCo={mon:"Pzt",wed:"Ãar",fri:"Cum"},PCo="Az",_Co="Ãok",jCo={title:V0o,description:K0o,activity:G0o,activityEmpty:W0o,breakdown:Y0o,byApiKey:Q0o,byModel:X0o,byTokenType:Z0o,chartEmpty:J0o,chartEmptyHint:eko,burnRate:tko,in:"girdi",out:nko,cache:ako,metric:oko,other:sko,req:rko,tok:iko,refreshing:lko,topEmpty:cko,topEmptyHint:dko,topKeys:uko,topUp:mko,error:pko,kpi:fko,stat:gko,range:hko,requests:yko,tokenType:vko,noRequests:bko,welcome:xko,refresh:$ko,successfulFilter:wko,totalTokens:kko,inOut:Cko,billedCredit:Sko,upstreamA
841ctualCost:Ako,avgLatency:Tko,firstToken:Rko,activityTitle:Pko,activityDescription:_ko,loadingTrend:jko,noUsageTrend:Nko,trendDescription:Dko,topModels:Mko,topModelsDescription:Eko,noModelUsage:Iko,noModelUsageDescription:Oko,model:Lko,allModels:Uko,status:Bko,protocol:Fko,rows:zko,reset:qko,tableLabel:Hko,apiKey:Vko,endpoint:Kko,type:Gko,tokens:Wko,cost:Yko,duration:Qko,time:Xko,userAgent:Zko,details:Jko,requestDetail:eCo,detailDescription:tCo,requestId:nCo,operation:aCo,inputTokens:oCo,outputTokens:sCo,cacheReadTokens:rCo,cacheWriteTokens:iCo,inputCost:lCo,outputCost:cCo,cacheReadCost:dCo,cacheWriteCost:uCo,errorCode:mCo,errorMessage:pCo,notFound:fCo,creditSuffix:gCo,total:hCo,loadingRecords:yCo,noRecords:vCo,differentFilters:bCo,recordsEmpty:xCo,pageSummary:$Co,previous:wCo,next:kCo,chartCredit:CCo,chartTokens:SCo,chartRequests:ACo,csv:TCo,weekday:RCo,activityLess:PCo,activityMore:_Co},NCo="注ååå ¥",DCo="åæ§åå¸ææ³¨åé¸ãååå é®ç®±/ååã已注åç¨æ·åå¨è管çåå¯ä»¥å建账å·ã",MCo="注ååå ¥åå",ECo="åå ¥åå为空",ICo="é®ç®± / åå",OCo="夿³¨",LCo="ç¶æ",UCo="注åç¶æ",BCo="æææ",FCo="é请",zCo="æ´æ°äº",qCo="æä½",HCo="æ·»å ",VCo="æ¹éæ·»å ",KCo="ç¼è¾",GCo="ä¿å",WCo="é请",YCo="æ¢å¤",QCo="ç§»é¤",XCo="æ·»å æ³¨ååå ¥",ZCo="ç¼è¾ {{email}}",JCo="æ¹éæ·»å æ³¨ååå ¥",e1o="坿·»å 精确é®ç®±,ä¹å¯ç¨ @company.com æ¾è¡æ´ä¸ªååã已注åç¨æ·ä¸å¨è管çåå§ç»æ¾è¡ã",t1o="æ¯è¡ç²è´´ä¸ä¸ªé®ç®±æ @domainãéæ³åéå¤è¡ä¼è·³è¿,ä¸ä¼å½±åå ¶ä»è¡ã",n1o="é®ç®±æåå",a1o="[email protected] æ @company.com",o1o="ç¨ @company.com æ¾è¡æ´ä¸ªååã",s1o="夿³¨(å¯é)",r1o="ä¾å¦ åå§å¢é",i1o="æææ(å¯é)",l1o="çç©ºè¡¨ç¤ºé¿æææãå°æåå°ä¸åå è®¸æ°æ³¨åã",c1o="é®ç®± / åå",d1o=`[email protected] 842[email protected] 843@partner.com`,u1o="æç´¢",m1o="æç´¢é®ç®±æåå",p1o="ç¶æ",f1o="åå ¥æ£æ¥",g1o="[email protected]",h1o="æ£æ¥",y1o="å 许",v1o="æç»",b1o={existing_user:"已注åç¨æ·å§ç»å 许",active_admin:"å¨è管çåå§ç»å 许",email_allowlist:"å½ä¸ç²¾ç¡®é®ç®±",domain_allowlist:"å½ä¸ååè§å",not_allowed:"æªå½ä¸ä»»ä½ææè§å"},x1o="已注å",$1o="æªæ³¨å",w1o="管çå",k1o="ååè§å",C1o="é¿æ",S1o="å·²å å ¥æ³¨ååå ¥ã",A1o="注ååå ¥å·²æ´æ°ã",T1o="已添å {{count}} æ¡ã",R1o="é请é®ä»¶å·²åéã",P1o="å·²æ¢å¤ã",_1o="已仿³¨ååå ¥ç§»é¤ã",j1o="å° {{email}} ç§»åºæ³¨ååå ¥?é¤éå½ä¸å ¶ä»è§å,å¦å该é®ç®±å°æ æ³å建æ°è´¦å·ã",N1o={title:"é®ç®±ååå",description:"å å å¨å ç½®åºçº¿ä¹ä¸çå¯çé é®ç®±åååãé»åååæ³¨å峿;主æµåè·³è¿é£æ§è§å¯ååã",add:"æ·»å åå",addTitle:"æ·»å ååè§å",addDescription:"é»ååæ³¨å峿(403)ãä¸»æµæ è®°æè¯¥åè§ä¸ºå¯ä¿¡,æ°ç¨æ·ä¸è¿è§å¯ååã",kindLabel:"åå",kindBlacklist:"é»åå â æç»æ³¨å",kindMainstream:"ä¸»æµ â è·³è¿è§å¯åå",domainLabel:"åå",domainPlaceholder:"example.com",noteLabel:"夿³¨",notePlaceholder:"å¯é â 说æåå ",search:"æç´¢",searchPlaceholder:"æååçé",kindFilter:"åå",allKinds:"å ¨é¨åå",statusFilter:"ç¶æ",statusActive:"çæ",statusRevoked:"已移é¤",statusAll:"å ¨é¨",label:"é®ç®±ååå",empty:"ææ ååè§å",colDomain:"åå",colKind:"åå",colNote:"夿³¨",colAddedBy:"æ·»å 人",colCreated:"å建æ¶é´",status:"ç¶æ",action:"æä½",remove:"ç§»é¤",restore:"æ¢å¤",confirmRemove:"ç¡®è®¤ç§»é¤ {{domain}} çè§å?",added:"已添å ååè§å",removed:"已移é¤ååè§å",restored:"å·²æ¢å¤ååè§å",badgeBlacklist:"é»åå",badgeMainstream:"主æµ"},D1o={title:NCo,description:DCo,label:MCo,empty:ECo,email:ICo,note:OCo,status:LCo,registration:UCo,expiresAt:BCo,invites:FCo,updatedAt:zCo,action:qCo,add:HCo,bulkAdd:VCo,edit:KCo,save:GCo,invite:WCo,restore:YCo,revoke:QCo,newTitle:XCo,editTitle:ZCo,bulkTitle:JCo,formDescription:e1o,bulkDescription:t1o,emailLabel:n1o,emailPlaceholder:a1o,emailHint:o1o,noteLabel:s1o,notePlaceholder:r1o,expiresAtLabel:i1o,expiresAtHint:l1o,bulkEntriesLabel:c1o,bulkEntriesPlaceholder:d1o,search:u1o,searchPlaceholder:m1o,statusFilter:p1o,checkLabel:f1o,checkPlaceholder:g1o,check:h1o,checkAllowed:y1o,checkDenied:v1o,checkReasons:b1o,registered:x1o,notRegistered:$1o,adminAllowed:w1o,domainRule:k1o,never:C1o,added:S1o,updated:A1o,bulkAdded:T1o,invited:R1o,restored:P1o,revoked:_1o,c
843onfirmRevoke:j1o,domainRules:N1o},M1o="é±å
è´¦å",E1o="æ¥çææç¨æ·çæ¯ä»ãé±å
ä¸é款ã",I1o={payments:"æ¯ä»",wallets:"é±å
",refunds:"鿬¾"},O1o="ç¨æ·é®ç®±",L1o="æé®ç®±æç´¢â¦",U1o="å建æ¶é´",B1o="å建æ¶é´",F1o="éé¢ (USD)",z1o="æå°",q1o="æå¤§",H1o="鿬¾",V1o="ææ éæ¬¾",K1o="鿬¾",G1o="ç±»å",W1o="å
¨é¢é款",Y1o="é¨å鿬¾",Q1o="åå§æ¯ä»",X1o="é±å
",Z1o="é±å
",J1o="ç¨æ·",eSo="æ»è®¡",tSo="å·²è´ä¹°",nSo="å¥å±",aSo="ææ é±å
",oSo="æ¯ä»",sSo="æ¯ä»ç¶æ",rSo="ææ æ¯ä»",iSo="æ¯ä»",lSo="ç¶æ",cSo="éé¢",dSo="æ¯ä»æ¶é´",uSo="鿬¾",mSo="ä¸å¯é款ï¼ç¶æå¿
须为已æ¯ä»ï¼",pSo="å¨ Stripe Dashboard 䏿¥ç",fSo="æè¿ 7 å¤©å¤±è´¥åæ»ä¿¡ Webhook æ°ã0=绿è²ï¼1-9=é»è²ï¼10+=红è²ã",gSo="å¼å¸¸",hSo="鿬¾ {{id}}",ySo="è¿ä¼éè¿ Stripe å {{user}} 鿬¾ã䏿¹çæç»è´¹ä¼ä»éåéé¢ä¸æ£é¤,åæ¶å¾éå¯å
é¤ãåå§ä»æ¬¾é带çä¿é Credits 伿æ¯ä¾ä½åºã",vSo="鿬¾éé¢ (USD)",bSo="æå¤ ${{value}}",xSo="åå ",$So="æ£å¨å è½½éæ¬¾é¢è§â¦",wSo="鿬¾é¢è§å 载失败ï¼é¢è§æååæ æ³æäº¤éæ¬¾ã",kSo="æªæ¾å°å¯é款ç交æââè¯¥ç¬æ¯ä»å¯è½å·²å
¨é¢é款ã",CSo="å®ä»éé¢",SSo="å·²ééé¢",ASo="æ¬æ¬¡é款",TSo="åæ¶ Credit",RSo="嫿æ¯ä¾åæ¶ç伿 å¸ææ£ Credit {{amount}}",PSo="嫿æ¯ä¾åæ¶çé¢å¤åæ¾ Credit {{amount}}",_So="æ¤éå¥å±",jSo="æ¬æ¬¡éæ¬¾å°æ¤é {{amount}} ä¿éå¥å±é¢åº¦ã",NSo="ç» Stripe éå",DSo="æ¶åæç»è´¹ï¼{{fee}}ï¼è¦ç Stripe ééææ¬ï¼",MSo="æç»è´¹ï¼{{fee}}ï¼",ESo="éé¢è¶
è¿æå¤§å¯é {{value}}",ISo="请è¾å
¥ææçæ£æ°éé¢",OSo="ç¨æ·å·²æ¶è´¹é¨åå·²è´ Creditï¼æå¤å¯é {{value}}",LSo="è¯¥ç¬æ¯ä»å·²å
¨é¢é款",USo="æ£å®æç»è´¹åå®ééé¢è¿å°ï¼é款é¢è³å° {{value}}ã",BSo="åæ¶",FSo="åèµ·éæ¬¾",zSo="æäº¤ä¸...",qSo="鿬¾å·²æäº¤",HSo="Stripe ä¼å¨ 1-3 ä¸ªå·¥ä½æ¥å
é忬¾é¡¹ã审计æ¥å¿å·²åå
¥ã",VSo="鿬¾å¤±è´¥",KSo={title:M1o,description:E1o,tabs:I1o,emailFilter:O1o,emailPlaceholder:L1o,created:U1o,createdRange:B1o,amountRange:F1o,amountMin:z1o,amountMax:q1o,refunds:H1o,noRefunds:V1o,refundId:K1o,refundType:G1o,typeRefund:W1o,typePartialRefund:Y1o,originalPayment:Q1o,wallets:X1o,wallet:Z1o,user:J1o,total:eSo,purchased:tSo,bonus:nSo,noWallets:aSo,payments:oSo,paymentStatus:sSo,noPayments:rSo,payment:iSo,status:lSo,amount:cSo,paid:dSo,refund:uSo,notRefundable:mSo,viewInStripe:pSo,webhookHealthHint:fSo,unhealthyWebhooks:gSo,refundConfirmTitle:hSo,refundConfirmBody:ySo,refundAmountLabel:vSo,refundMaxHint:bSo,refundReasonLabel:xSo,refundPreviewLoading:$So,refundPreviewFailed:wSo,refundNoRefundableTx:kSo,refundPaidRow:CSo,refundAlreadyRefundedRow:SSo,refundThisRefundRow:ASo,refundCreditReclaimRow:TSo,refundCreditCouponNote:RSo,refundCreditExtraNote:PSo,refundBonusReverseRow:_So,refundBonusForfeitWarning:jSo,refundStripeReturnRow:NSo,refundFeeToggle:DSo,refundPlatformFeeRow:MSo,refundExceedsMax:ESo,refundAmountInvalid:ISo,refundInsufficientCredit:OSo,refundAlreadyFull:LSo,refundBelowMin:USo,cancel:BSo,confirmRefund:FSo,submitting:zSo,refundSubmittedTitle:qSo,refundSubmittedBody:HSo,refundFailedTitle:VSo},GSo="æ´»å¨è¿è¥",WSo="åä¼å群ãé宿¨¡åææãæ¨¡åææ£ä¸å®åèµ éã",YSo={mobileLabel:"æ´»å¨æ¨¡å",segments:"åä¼",access:"æ¨¡åææ",discounts:"æ¨¡åææ£",grants:"å®åèµ é",recurring:"å¨ææ´»å¨"},QSo="ç¶æ",XSo="æä½",ZSo="å
¨ä½ç¨æ·",JSo="å§ç»",eAo="æ°¸ä¸è¿æ",tAo="çææ¶æ®µ",nAo="ç空å³é¿æçæãæ¶é´åæéæ¥æç彿¥ã",aAo="çæèµ·",oAo="çææ¢",sAo="æå",rAo="æ¢å¤",iAo="æ·»å ",lAo="ç§»é¤",cAo="å é¤",dAo="æ¸
é¤",uAo="å
³é",mAo={allKinds:"å
¨é¨ç±»å",segmentKindStatic:"éæ",segmentKindDynamic:"卿",grantKindGrant:"åæ¾",grantKindRevoke:"æ¤é",allStatuses:"å
¨é¨ç¶æ",statusActive:"çæä¸",statusPaused:"å·²æå",statusArchived:"已彿¡£",statusEnded:"å·²ç»æ",statusPending:"å¾
å¤ç",statusProcessing:"å¤çä¸",statusCompleted:"已宿",statusFailed:"失败"},pAo={title:"åä¼",create:"æ°å»ºåä¼",empty:"ææ åä¼ã建ä¸ä¸ªç¨äºå®å
843ææãææ£åèµ éã",name:"åç§°",namePlaceholder:"ä¾å¦:ä¸å½é«é¢ç¨æ·",description:"说æ",kind:"ç±»å",kind_static:"éæ",kind_dynamic:"卿",kindHint:"éæ = æå·¥æéçç¨æ·åå;卿 = å½ä¸è§åçç¨æ·,ç©åæ¶å·æ°ã",members:"æå",materialized:"䏿¬¡å·æ°",basics:"åºæ¬ä¿¡æ¯",sheetDescription:"åä¼æç¨æ·åç»,ç¨äºå®åæ¨¡åææãææ£ä¸èµ éã",saved:"åä¼å·²ä¿å",created:"åä¼å·²å建",rule:"å¹é
è§å",ruleHint:"æææ¡ä»¶éåæ¶æ»¡è¶³(AND)ã空è§åä¸å¹é
ä»»ä½äººã",countryIn:"å½å®¶å±äº",countryInHint:"éå·åéç ISO-2 代ç ,ä¾å¦ CN, US, JPã",signupAfter:"注åæäº",signupBefore:"æ³¨åæ©äº",minSpend:"累计æ¶è´¹â¥(ç¾å
)",minSpendHint:"ä»
累计æ¶è´¹è¾¾å°è¯¥é¢åº¦çç¨æ·ã",previewing:"ä¼°ç®ä¸â¦â¦",matchCount:"é¢è®¡å½ä¸:{{value}} 人",membersTitle:"æå",membersHint:"æç´¢å¹¶æ·»å ç¨æ·ãè§åå½ä¸çæååªè¯»ã",addMembers:"æ·»å ç¨æ·",searchUsers:"æé®ç®±æ ID æç´¢",noUsers:"æ å¹é
ç¨æ·ã",noMembers:"ææ æåã",membersAdded:"已添å {{count}} åæå",membersAdded_plural:"已添å {{count}} åæå",source_manual:"æå¨",source_rule:"è§å",materializeTitle:"ç©å",materializeHint:"æè§åå¿«ç
§ææåååãå¯éæ¶éè·å·æ°ã",materialize:"ç«å³ç©å",materializing:"ç©åä¸â¦â¦",materializeConfirm:"æå½åè§åå·æ°æå?å°æ¿æ¢è§åå½ä¸çå¿«ç
§ã",materializeDone:"å·²ç©å {{
843count}} åæå",lastMaterialized:"䏿¬¡ç©å {{value}}",neverMaterialized:"å°æªç©å",deleteSegment:"å é¤åä¼",deleteConfirm:"å é¤è¯¥åä¼?å¼ç¨å®çææãææ£ãèµ éå°å¤±å»æ¤å®åã"},fAo={title:"æ¨¡åææ",create:"æäºè®¿é®",empty:"ææ ææã",model:"模å",segment:"åä¼",target:"ç®æ ",validFrom:"çæèµ·",validTo:"çææ¢",sheetDescription:"ææä¸ªé宿¨¡åæäºæåä¼,å¯é设å®çææ¶æ®µã",created:"å·²æäºè®¿é®",statusUpdated:"ç¶æå·²æ´æ°",deleteConfirm:"ç§»é¤è¯¥ææ?",noSegmentsTitle:"请å
建åä¼",noSegmentsDescription:"æææåä¼ä¸åã请å
å¨ãåä¼ã页建åä¼,å忥æäºæ¨¡å访é®ã",publicHint:"该模å为å
¬å¼æ¨¡å ââ ææäººæ¬å°±å¯ç¨ã",publicModelTitle:"模å为å
¬å¼",publicModelWarning:"{{model}} å½å为å
¬å¼æ¨¡å,å¨ã模åã页æ¹ä¸ºéå®å,æ¤ææä¸çæã请å°é£éå°å
¶å为éå®,å³å¯éå®ç»è¯¥åä¼ã",createAnyway:"ä»ç¶å建"},gAo={title:"æ¨¡åææ£",create:"æ°å»ºææ£",empty:"ææ ææ£ã",model:"模å",audience:"åä¼",audienceHint:"ä¿æå
¨ä½ç¨æ·å³å¯¹ææäººææã",discount:"ææ£",window:"æ¶æ®µ",live:"çæä¸",end:"ç»æ",amount:"ææ£",target:"ç®æ ",name:"å
é¨åç§°",nameHint:"å¯é,ä»
ä¾å
é¨å¤æ³¨ã",percentLabel:"å¨å¹³å°ä»·åºç¡ä¸é¢å¤ææ",percentHint:"1â99%ãä½ç¨å¨æä»¬çå¹³å°ä»·(our_price)ä¹ä¸,é宿¹ä»·ã",percentError:"请è¾å
¥ 1 å° 99 ä¹é´çå¼ã",previewPlatform:"æåå¹³å°ä»·",previewVsOfficial:"æ¯å®æ¹ç",pickStart:"éæ©èµ·å§æ¥æ",sheetDescription:"ææ£ä½ç¨å¨å¹³å°ä»·ä¹ä¸;宿¹ä»·ä»
ä½å¯¹ç
§å±ç¤ºã",created:"ææ£å·²å建",saved:"ææ£å·²ä¿å",statusUpdated:"ç¶æå·²æ´æ°",deleteConfirm:"å é¤è¯¥ææ£?",liveReadonly:"è¯¥ææ£æ£å¨çæ ââ ææ£å¼ãæ¶æ®µãåç§°å·²éå®ãéæåæç»æåæè½æ¹å¨ã",terminalReadonly:"è¯¥ææ£å·²ç»æ,åªè¯»ã"},hAo={title:"å®åèµ é",create:"æ°å»ºèµ é",empty:"ææ å®åèµ éã",time:"æ¶é´",kind:"ç±»å",kind_grant:"åæ¾",kind_revoke:"æ¤é",model:"模å",modelHint:"èµ é卿鿍¡åå
å
±äº«,任䏿¨¡åæ¶è´¹é½ä»åä¸ä½é¢æ£é¤ã",pickModels:"éæ©æ¨¡å",nModels:"å·²é {{count}} 个模å",pasteEmails:"ç²è´´é®ç®±æ¹éæ·»å ",pasteEmailsPlaceholder:"[email protected], [email protected] ââ æ¯ææ¢è¡ãéå·æåå·åé",importEmails:"è§£æå¹¶æ·»å ",importMatched:"å¹é
å° {{count}} ä¸ªç¨æ·ã",importUnmatched:"{{count}} 个é®ç®±æªæ¾å°å¯¹åºç¨æ·:",importInvalid:"{{count}} ä¸ªæ ¼å¼æ æå·²è·³è¿:",importInactive:"{{count}} 个已å¹é
ä½éæ´»è·,åæ¾æ¶å°è¢«è·³è¿:",preset7d:"7 天",preset30d:"30 天",preset90d:"90 天",total:"å计",notifyYes:"æ¯",notifyNo:"å¦",recipients:"æ¶ä»¶äºº",amount:"éé¢",expiry:"è¿æ",expiryHint:"å¯éãæªç¨ä½é¢å¨è¯¥æ¥æè¿æã",audience:"åä¼",bySegment:"æåä¼",byUsers:"æå®ç¨æ·",segment:"åä¼",users:"ç¨æ·",searchUsers:"æé®ç®±æ ID æç´¢",noUsers:"æ å¹é
ç¨æ·ã",grantDetails:"åæ¾è¯¦æ
",amountEach:"æ¯äººéé¢(ç¾å
)",amountHint:"æ¯äºº 0.01â2000ã",notifyEmail:"é®ä»¶éç¥æ¶ä»¶äºº",note:"夿³¨",summary:"{{count}} 人 à {{amount}} = å计 {{total}}",send:"åæ¾èµ é",sending:"æéä¸â¦â¦",queued:"èµ éå·²å
¥é ââ æ£åæ¶ä»¶äººéä¸ä¸å",confirmTitle:"ç¡®è®¤åæ¾å®åèµ é?",confirmMessage:"å {{count}} 人åå {{amount}}(å计 {{total}})?",confirmSend:"åæ¾èµ é",sheetDescription:"åæå伿æå·¥æéçç¨æ·åååæ¾é宿¨¡åçèµ éã",batchTitle:"èµ éæ¹æ¬¡",succeeded:"æå",failed:"失败",revokedAmount:"已忶",completedAt:"宿äº",revoke:"æ¤é",revokeConfirm:"ä» {{model}} ç {{count}} åæ¶ä»¶äººåæ¶æªç¨ä½é¢?",revokeQueued:"æ¤éå·²å
¥é"},yAo={title:"å¨ææ´»å¨",create:"æ°å»ºå¨ææ´»å¨",editTitle:"ç¼è¾å¨ææ´»å¨",empty:"ææ å¨ææ´»å¨ã建ä¸ä¸ª,ææ¯å¤©/æ¯å¨ç»åä¼åæ¾å
è´¹ token æåé䏿¬¾ã",sheetDescription:"å
è´¹ token æåé䏿¬¾,æ¯ä¸ªå¨æä¸ºåä¼å·æ°(æçæ,馿¬¡è°ç¨æ¶ä¸å)ã",basics:"åºæ¬ä¿¡æ¯",name:"åç§°",namePlaceholder:"ä¾
843å¦:æ¯æ¥å
è´¹ Kimi token",unit:"åä½",unitHint:"Token = æ¯æå
è´¹ token é¢åº¦;USD = åé䏿¬¾(ä»
é忍¡å)ã",unitLocked:"åä½å建ååºå® ââ æ¢åä½è¯·æ°å»ºä¸æ¡æ´»å¨ã",unit_tokens:"Token",unit_usd:"ç¾å
",allUnits:"å
¨é¨åä½",targeting:"å®å",models:"模å",modelsHint:"å
è´¹ token å¯å¨æéçå
¨é¨æ¨¡åä¸ä½¿ç¨ã",model:"模å",usdSingleModelHint:"USD æ´»å¨ä»
é忍¡å ââ 夿¨¡åä¼è®©æ¶è´¹æ æ³å½å±ã",pickModels:"éæ©æ¨¡å",nModels:"å·²é {{count}} 个模å",nModels_plural:"å·²é {{count}} 个模å",audience:"åä¼",audienceHint:"ä¿æå
¨ä½ç¨æ·å³å¯¹ææäººåæ¾ã",schedule:"é¢åº¦ä¸ææ",perPeriod:"æ¯æé¢åº¦",tokensHint:"æ£æ´æ°,ä¾å¦æ¯æ 100000 tokenã",usdHint:"æ¯æ 0.01â2000 ç¾å
ã",cadence:"卿",cadence_daily:"æ¯å¤©",cadence_weekly:"æ¯å¨",anchorTz:"éç¹æ¶åº",anchorTzHint:"å¨æè¾¹ç以该æ¶åºçæ¬å°åå¤ä¸ºåã",startsAt:"å¼å§",startsAtHint:"å¯éãç空å³ç«å³çæã",endsAt:"ç»æ",endsAtHint:"å¯éãçç©ºå³æ æªæ¢æ¥æã",immediately:"ç«å³",excludeRisky:"æé¤é£é©è´¦æ·",thisPeriod:"æ¬æ(äººæ° Â· å·²ç¨/å·²å)",allStatuses:"å
¨é¨ç¶æ",status_draft:"è稿",status_active:"çæä¸",status_paused:"å·²æå",status_archived:"已彿¡£",created:"å¨ææ´»å¨å·²å建",saved:"å¨ææ´»å¨å·²ä¿å"},vAo={title:GSo,description:WSo,tabs:YSo,status:QSo,actions:XSo,allUsers:ZSo,always:JSo,noExpiry:eAo,window:tAo,windowHint:nAo,validFrom:aAo,validTo:oAo,pause:sAo,resume:rAo,actionAdd:iAo,actionRemove:lAo,actionDelete:cAo,actionClear:dAo,actionClose:uAo,filters:mAo,segments:pAo,access:fAo,discounts:gAo,grants:hAo,recurring:yAo},bAo="ç³»ç»å
¬å",xAo="å¨å®ç½åæ§å¶å°å±ç¤ºç横å¹
/ å¼¹æ¡å
¬åã",$Ao="å
¬å",wAo="å¨ www åæ§å¶å°å±ç¤ºç横å¹
/ å¼¹æ¡å
¬åã",kAo="æ°å»ºå
¬å",CAo="ææ å
¬åï¼ç¹å»ãæ°å»ºå
¬åãåå»ºç¬¬ä¸æ¡ã",SAo="æ¶æ¯å
容",AAo="æ¯æå
è龿¥:[æå](https://⦠æ /è·¯å¾),坿¾å¤ä¸ªã",TAo="æé®æå",RAo="æé®é¾æ¥",PAo="级å«",_Ao="å±ç¤ºä½ç½®",jAo="ä¸çº¿æ¶é´",NAo="ä¸çº¿æ¶é´",DAo="å¯å
³é",MAo="ç¶æ",EAo="彿¡£",IAo="彿¡£æ¤å
¬åï¼å½æ¡£åç¨æ·å°ä¸åçå°ã",OAo="æ°å»ºå
¬å",LAo="ç¼è¾å
¬å",UAo="æ é¢",BAo="ç±»å",FAo="å
容",zAo="å±ç¤ºå½¢å¼",qAo="横å¹
",HAo="å¼¹æ¡",VAo="è稿",KAo="å·²åå¸",GAo="ä¿¡æ¯",WAo="è¦å",YAo="严é",QAo="ä»
æ§å¶å°",XAo="ä»
å®ç½",ZAo="两è
é½",JAo="头å¾",eTo="ä¸ä¼ å¾çï¼æè´´ https 龿¥ï¼å¯çç©ºãæ¯æ PNG / JPEG / WebP / GIFï¼ä¸è¶
è¿ 5MBã",tTo="ä¸ä¼ å¾ç",nTo="ä¸ä¼ ä¸â¦",aTo="ç§»é¤",oTo="åªæ¯æ PNGãJPEGãWebPãGIF å¾çã",sTo="å¾çä¸è½è¶
è¿ 5MBã",rTo="ä¸ä¼ 失败ï¼è¯·éè¯ã",iTo="æ é¢",lTo="æ£æ",cTo="æä½æé®",dTo="æé®æå",uTo="æé®é¾æ¥",mTo="ç±»å",pTo="æ·»å æé®",fTo="å é¤",gTo="主æé®",hTo="次æé®",yTo="æåé¾",vTo="ç®ä½ä¸æï¼æ¯æ¬ï¼",bTo="è¿è¥åªéå¡«ç®ä½ä¸æï¼ç¹ãä¸é®ç¿»è¯ãèªå¨ç¿»æå
¶ä½è¯è¨ã",xTo="ä¸é®ç¿»è¯å
¶ä½è¯è¨",$To="ç¿»è¯ä¸â¦",wTo="å
¶ä½è¯è¨ï¼å·²ç¿»è¯ï¼å¯ç¼è¾ï¼",kTo="å·²ç¿»è¯ {{ok}} ç§è¯è¨",CTo="{{failed}} ç§è¯è¨ç¿»è¯å¤±è´¥ï¼è¯·æå¡«æéè¯",STo="ä¸ææ¯æ¬å·²ä¿®æ¹ä½æªéæ°ç¿»è¯ï¼ä¸æ¹è¯æä»æ¯æ§ææ¡ââè¯·éæ°ç¹ãä¸é®ç¿»è¯ãï¼å¦åæµ·å¤ç¨æ·ä¼çå°è¿æå
容ã",ATo="æ´æ°åéæ°å±ç¤ºç»å·²çè¿çç¨æ·",TTo="请å
å¡«åç®ä½ä¸æçæ£æã",RTo={title:bAo,description:xAo,annTitle:$Ao,annDescription:wAo,annNewButton:kAo,annEmpty:CAo,annMessage:SAo,annInlineLinkHint:AAo,annCtaText:TAo,annCtaUrl:RAo,annSeverity:PAo,annAudience:_Ao,annStartsAt:jAo,annEndsAt:NAo,annDismissible:DAo,annStatus:MAo,annArchive:EAo,annArchiveConfirm:IAo,annCreateTitle:OAo,annEditTitle:LAo,annColTitle:UAo,annColType:BAo,annColContent:FAo,annDisplayType:zAo,annTypeBanner:qAo,annTypeModal:HAo,annStatusDraft:VAo,annStatusActive:KAo,annSevInfo:GAo,annSevWarning:WAo,annSevCritical:YAo,annAudConsole:QAo,annAudPublic:XAo,annAudAll:ZAo,annHeroImage:JAo,annHeroImageHint:eTo,annHeroImageUpload:tTo,annHeroImageUploading:nTo,annHeroImageRemove:aTo,annHeroImageBadType:oTo,annHeroImageTooLarge:sTo,annHeroImageUploadFailed:rTo,annModalTitle:iTo,annBody:lTo,annActions:cTo,annActionLabel:dTo,annActionUrl:uTo,annActionVariant:mTo,annActionAdd:pTo,annActionRemove:fTo,annVariantPrimary:gTo,annVariantSecondary:hTo,annVariantLink:yTo,annSourceLocale:vTo,annSourceHint:bTo,annTranslate:xTo,annTranslating:$To,annOtherLocales:wTo,annTranslateDone:kTo,annTranslateParti
843al:CTo,annTranslateStale:STo,annBumpRevision:ATo,annTranslateNeedSource:TTo},PTo="仪表ç",_To="å¹³å°å¥åº·ãç¨éä¸åè¦ç宿¶æ¦è§ã",jTo="å·æ°",NTo="å·æ°ä¸",DTo="æ´æ°äº {{time}}",MTo="æ£å¨å è½½æ»è§",ETo="å è½½æ»è§å¤±è´¥",ITo="ææ æ°æ®",OTo="ææ æµé",LTo="è§é¢å¤±è´¥ç",UTo="å¹³åå»¶è¿",BTo="é误类å",FTo="æ é误",zTo="模åå¼å¸¸æ¦",qTo="æææ¨¡åæ£å¸¸",HTo="ç»ä»¶",VTo="次",KTo="ç»è´¦æ¾å¼ç",GTo="鿬¾",WTo="æä»",YTo="é¦å
转å",QTo="{{failed}}/{{total}} ä»»å¡",XTo="{{delta}}pt vs æ¨æ¥",ZTo="æ ·æ¬ä¸è¶³({{n}})·æä¸åè¦",JTo="æç½å
³è°ç¨",eRo="è¿ 7 天 cohort · ä»
æ£å¸¸ç¨æ·",tRo="鿬¾ç {{rate}}%",nRo={kpis:"æ ¸å¿ææ ",alerts:"åè¦",health:"ç³»ç»å¥åº·",payment:"æ¯ä»å¥åº·",revenue:"è¥æ¶ä¸å¢é¿",trend:"è¶å¿",alertSettings:"åè¦è®¾ç½®",leaderboard:"å¢é¿æ¦å"},aRo={title:"é请æè¡",boardAria:"éæ©æ¦å",rangeAria:"éæ©æ¶é´èå´",boards:{invites:"é请人æ°",revenue:"å
å¼é¢"},ranges:{today:"ä»å¤©","3d":"è¿ 3 天","7d":"è¿ 7 天","30d":"è¿ 30 天"},ofTotal:"å
± {{total}} 人",countPair:"ææ {{valid}} / å
± {{total}}",empty:"该æ¶é´æ®µå
ææ é请",failedLoad:"å è½½æ¦å失败",validHint:"ææ = 飿§æ£å¸¸ä¸ç»å®çæ"},oRo={requests:"è¯·æ±æ°",successRate:"æ¯ä»æåç",activeUsers:"æ´»è·ç¨æ·",newSignups:"æ°æ³¨å",newSignupsHint:"ä»
ç»è®¡æ£å¸¸ç¨æ·ï¼ä¸å«å·²æ è®°ï¼",billedCredit:"计费é¢åº¦",errorRate:"é误ç",avgLatency:"å¹³åå»¶è¿",balance:"å¹³å°ä½é¢",successFailed:"æå {{success}} · 失败 {{failed}}",vsPrevious:"ç¯æ¯ {{delta}}",vsYesterday:"ç¯æ¯æ¨æ¥",noChange:"æå¹³"},sRo={funnel:"è¿å
¥ {{opened}} · æå {{paid}}"},rRo={today:"仿¥è¥æ¶",trendTitle:"仿¥è¥æ¶ vs æ¨æ¥",monthDetail:"{{count}} ç¬æåå
å¼ Â· æ¬æ {{mtd}}"},iRo={summary:"{{paid}} å·²ä» Â· {{failed}} 失败 · {{pending}} å¾
æ¯ä»"},lRo={paidOfSignups:"{{paid}} å·²é¦å
/ {{signups}} 注å"},cRo={healthy:"æ£å¸¸",degraded:"æ§è½ä¸é",down:"䏿",unknown:"æªç¥"},dRo={critical:"严é",warning:"è¦å",info:"æç¤º",ok:"æ£å¸¸"},uRo={operational:"è¿è¡æ£å¸¸",degraded:"æ§è½ä¸é",down:"æå¡ä¸æ",upstream:"䏿¸¸æ¸ é",gateway:"ç½å
³",billing:"计费",jobs:"ä»»å¡éå",tierReason:{ok:"è¾¾æ ",watch:"å
³æ³¨:æ¥è¿éå¼",warning:"è¦å:å·²è¶è¦æçº¿",critical:"严é:å·²è¶ä¸¥é线"}},mRo={title:"æ´»è·åè¦",empty:"ç³»ç»ä¸åæ£å¸¸",activeCount:"{{count}} æ¡æ´»è·åè¦",triggeredAt:"触åäº {{time}}",viewDetail:"æ¥ç详æ
",acknowledge:"确认",resolved:"已解å³"},pRo={title:"åè¦è®¾ç½®",description:"为 6 ç±»åè¦è®¾å® warning / critical åæ¡£éå¼,ææ è¶çº¿æ¶éç¥è¿è¥ã严éççº§ç±æ¡£ä½èªå¨å¤å®,æ éåç¬é
ç½®ã",enabled:"å¯ç¨",warnThreshold:"Warning éå¼",critThreshold:"Critical éå¼",cooldown:"å·å´(åé)",cooldownHint:"åä¸åè¦ä¸¤æ¬¡éç¥ä¹é´çæçé´é,鲿¢å·å±ã",rateHint:"æ¯ç,åå¼ 0â1(å¦ 0.05 = 5%)ã",countHint:"ç»å¯¹æ°å¼,⥠0ã",directionHigher:"è¶é«è¶å:warning ⤠criticalã",directionLower:"è¶ä½è¶å:warning ⥠criticalã",lastFired:"䏿¬¡è§¦å {{time}}",neverFired:"仿ªè§¦å",save:"ä¿åå
¨é¨",saving:"ä¿åä¸",saved:"åè¦è®¾ç½®å·²ä¿å",saveError:"ä¿å失败",readonlyHint:"ä½ æ²¡æåæé,åªè½æ¥çã",noData:"ææ åè¦é
ç½®",errors:{directionHigher:"warning éå¼å¿
é¡» ⤠critical éå¼",directionLower:"warning éå¼å¿
é¡» ⥠critical éå¼",rateRange:"æ¯çéå¼å¿
é¡»å¨ 0â1 ä¹é´",nonNegative:"éå¼å¿
é¡» ⥠0",cooldownNonNegative:"å·å´æ¶é´å¿
é¡» ⥠0",required:"éå¼ä¸è½ä¸ºç©º"},types:{payment_success_rate_low:"æ¯ä»æåçè¿ä½",gateway_error_rate_high:"ç½å
³é误çè¿é«",model_error_spike:"模åé误ççªå¢",webhook_dead_letter:"Webhook æ»ä¿¡å 积",system_component_down:"ç³»ç»ç»ä»¶ä¸æ",negative_balance_exposure:"è´ä½é¢æå£"}},fRo={label:"æ¶é´èå´",today:"ä»å¤©",days7:"7 天",days30:"30 天"},gRo={title:PTo,description:_To,refresh:jTo,refreshing:NTo,lastUpdated:DTo,loading:MTo,failedLoad:ETo,empty:ITo,noTraffic:OTo,videoFailRate:LTo,avgLatency:UTo,errorTypes:BTo,noErrors:FTo,modelAnomalies:zTo,noAnomalies:qTo,components:HTo,req:VTo,abandonRate:KTo,refunds:GTo,chargebacks:WTo,firstChargeConversion:YTo,videoJobsDetail:QTo,vsYesterdayPt:XTo,lowSample:ZTo,activeUsersHint:JTo,conversionCohortHint:eRo,refundRate:tRo,sections:nRo,leaderboard:aRo,kpi:oRo,checkout:sRo,revenue:rRo,orders:iRo,conversion:lRo,componentStatus:cRo,severity:dRo,health:uRo,alerts:mRo,alertSettings:pRo,range:fRo},hRo="å è½½ä¸...",yRo="éè¦ç®¡çåææ",vRo="ä½ çè´¦å·æ æè®¿é®æ¤ç®¡çå页é¢ã",bRo={loading:hRo,permissionRequired:yRo,permissionDescription:vRo},xRo="å¢é¿è¿è¥",$Ro="注åå¥å±ãææ£ç ãé请è¿å©ä¸ credit åæ¾ãäººå·¥èµ éå¨ç¨æ·é¡µå¤çã",wRo={mobileLabel:"å¢é¿æ¨¡å",onboarding:"注å䏿°ç¨æ·",discount:"ææ£ç ",referral:"é请è¿å©",grants:"Credit åæ¾",topup:"å
å¼è¿ç°",redeem:"å
æ¢ç ",tasks:"ä»»å¡å¢"},kRo="伿 ç æ¹æ¬¡",CRo="ä¿éè§å",SRo="æ°é",ARo="æ¹æ¬¡ code",TRo="å建ä¸...",RRo="åå»ºæ¹æ¬¡",PRo="å·²å建 {{count}} ä¸ªä¼æ ç ",_Ro="å·²å建 {{count}} ä¸ªä¼æ ç ",jRo="æ¹æ¬¡ {{code}}",NRo="å·²å¤å¶",DRo="å
¨é¨å¤å¶",MRo="Credit åæ¾",ERo="æ¥æº",IRo="ç¶æ",ORo="ææ åæ¾è®°å½",LRo="伿 ç å
æ¢ã注åå¥å±åäººå·¥èµ é伿¾ç¤ºå¨è¿éã",URo="æ¶é´",BRo="ç¨æ·",FRo="éé¢",zRo="注åå¥å±",qRo="æ§å¶æ°ç¨æ·æ³¨ååèªå¨åæ¾ç creditãå
³éåï¼ä¹åçæ°æ³¨åç¨æ·ä¸ä¼æ¶å°èµ éã",HRo="å¯ç¨æ³¨åé credit",VRo="éé¢ (USD)",KRo="ä¿å注åå¥å±",GRo="ä¿åä¸...",WRo="å½åéé¢ {{amount}}",YRo="é请è¿å©",QRo="é
ç½®é请人å被é请人çè¿å©æ¯ä¾ãå»ç»éæ¾æ¶é´ãå°é¡¶åè´¦åé¡µè¯æ¯ã",XRo="å¯ç¨é请è¿å©",ZRo="è¿å©æ¡£ä½",JRo="æ·»å æ¡£ä½",ePo="è¿å©å¯¹è±¡",tPo="å¼å§å¤©æ°",nPo="ç»æå¤©æ°",aPo="æ¯ä¾",oPo="æ ç¾",sPo="æä½",rPo="é请人",iPo="被é请人",lPo="ä¸è®¾ç»æ",cPo="å 餿¡£ä½",dPo="鿾延è¿(天)",uPo="åç¬å°é¡¶(USD)",mPo="æä½å
å¼(USD,空=æ )",pPo="è¿å©è¿æå¤©æ°(空=æ°¸ä¸è¿æ)",fPo="è´¦å页åè®¡æ¶ banner",gPo="Banner æ é¢",hPo="坿 é¢",yPo="åè®¡æ¶æ¨¡å¼",vPo="ç»ä¸æªæ¢æ¶é´",bPo="æ¯ä¸ªè¢«é请人ççªå£",xPo="ç»ææ¶é´",$Po="ä¿åé请设置",wPo="v{{version}}",kPo="ä¿åè¿å©æ¡£ä½ã鿾延è¿ãå°é¡¶æè¿æå¤©æ°ä¼åå¸ä¸ä¸ªæ°çæ¬ã已建ç«çé请å
³ç³»æ°¸ä¹
沿ç¨ç»å®æ¶ççæ¬,åªææ°æ³¨åæèµ°æ°è§åãæååªå½±åæ°æ³¨åã",CPo="çæ¬åå²",SPo="çæ¬",APo="ç¶æ",TPo="é请å
³ç³»",RPo="è¿å©æ¡£ä½",PPo="åå¸äº",_Po="éåºäº",jPo="å½å",NPo="çæ¬æç»",DPo="é请记å½",MPo="è¿å©è®°å½",EPo="é请人",IPo="被é请人",OPo="ç»å®æ¶é´",LPo="è§è²",UPo="å¯¹ææ¹",BPo="å
å¼é¢",FPo="è´¹ç",zPo="éé¢",qPo="æ¡£ä½",HPo="éæ¾æ¶é´",VPo="è¯¥çæ¬ä¸ææ é请å
³ç³»",KPo="è¯¥çæ¬ä¸ææ è¿å©è®°å½",GPo="å è½½æ´å¤",WPo="å
弿æ£ç ",YPo="ææ£ç éä½ç¨æ·ç»ç®æ¶çå®ä»éé¢,仿¬¾æååå°è´¦å
å¼å
¨é¢ã卿¤é
ç½®å¥½ææ£,åå°ä¸æ¹çæç æ¹æ¬¡ã",QPo="å¯ç¨ææ£ç ",XPo="ææ£ç±»å",ZPo="åºå®é¢æµæ£(USD)",JPo="ç¾åæ¯ææ£(%)",e_o="æµæ£éé¢(USD)",t_o="ææ£ç¾åæ¯(0-100)",n_o="ä¿åææ£",a_o="é»è®¤ä½ä½é¢æé",o_o="æ°ç¨æ·é»è®¤å¨æ¤é弿¶å°ä½ä½é¢é®ä»¶æéãæ¹è¿éåªå½±åä¹åçæ°æ³¨å,ä¸å溯已æé±å
ã",s_o="éå¼ (USD)",r_o="ä¿åéå¼",i_o="å½å {{amount}}",l_o="æä¸æ¹ææ£è§åçæææ£ç ã",c_o="å½åçæ:{{state}} · æµ {{value}}",d_o="å·²å¯ç¨",u_o="å·²åç¨",m_o="已忾çç ",p_o="éä¸ä¸ªæ¹æ¬¡æ¥çæ¯ä¸ªç 被è°å
æ¢ã",f_o="ææ æ¹æ¬¡",g_o="å¨ä¸æ¹çæä¸ä¸ªæ¹æ¬¡,å¼å§è¿½è¸ªå
æ¢ã",h_o="æ»æ°",y_o="å·²ç¨",v_o="å ç¨ä¸",b_o="å¯ç¨",x_o="{{code}}
843 çç ",$_o="è¯¥æ¹æ¬¡ææ ç ",w_o="ç ",k_o="使ç¨è
",C_o="å
æ¢æ¶é´",S_o="å®ä»",A_o="ææ£",T_o="å建ç ",R_o="å
±äº«ç æ¯ä¸ä¸ªç ãå¤ä¸ªç¨æ·åèªæå¤å
æ¢ N 次;å¯ä¸ç æ¹æ¬¡æ¯ N ä¸ªä¸æ¬¡æ§ç ã",P_o="ç ç±»å",__o="å个å
±äº«ç ",j_o="å¯ä¸ç æ¹æ¬¡",N_o="ç å
容(ç空åéæºçæ)",D_o="ä¾å¦ WELCOME100",M_o="æ»å
æ¢æ¬¡æ°(N)",E_o="æ¯ç¨æ·",I_o="è¿ææ¶é´(å¯é)",O_o="åç»(å¯é)",L_o="å建å
±äº«ç ",U_o="å
±äº«ç å·²å建",B_o="ä¸ºæ¤æ¹æ¬¡åç¬æå®ææ£(å¦åç¨ä¸æ¹è§å)",F_o="å
±äº«ç ",z_o="ä¸ä¸ªç ,å¤ä¸ªç¨æ·ãä½¿ç¨æ°æå®ä»å
æ¢è®¡ã",q_o="ææ å
±äº«ç ",H_o="å·²ç¨ / ä¸é",V_o="æ¯ç¨æ·",K_o="è¿æ",G_o="åç¨",W_o="åç¨æ¤ç ?",Y_o="æ°çç»ç®ä¼ç«å³è¢«æ¦æªãå·²è¿å
¥ç»ç®ç订åä»å¯å®æã",Q_o="ç å·²åç¨",X_o="CSV",Z_o="ç¶æ",J_o="é®ç®±",ejo={code:"ç ",discount:"ææ£",redeemed:"å·²å
æ¢",cap:"ä¸é",perUser:"æ¯ç¨æ·",status:"ç¶æ",expiresAt:"è¿ææ¶é´",batch:"æ¹æ¬¡",createdAt:"å建æ¶é´",redeemedBy:"å
æ¢è
",redeemedAt:"å
æ¢æ¶é´",paid:"å®ä»",discountAmount:"ææ£",email:"é®ç®±",credited:"å°è´¦",bonus:"å èµ ",paidAt:"仿¬¾æ¶é´"},tjo={title:"å
å¼è¿ç°",description:"å
å¾å¤éå¾å¤ãæ¯æ¡£å¯åéç¨èµ é¢,æåéå°ææ¨¡åç»çèµ é¢ã",enabled:"å¯ç¨å
å¼è¿ç°",saved:"å
å¼è¿ç°å·²ä¿å",tiers:"è¿ç°æ¡£ä½",tiersHint:"æå
å¼é¢å½ä¸é¨æ§æé«çæ¡£ãåéèµ é¢ä»
éç¨äºåæ¥ææ¬/å¾åè°ç¨,ä¸å«è§é¢æå¼æ¥å¾çä»»å¡ã",noTiers:"ææ æ¡£ä½ãæ·»å 䏿¡£å¼å§è¿ç°ã",min:"å
å¼é¨æ§ (USD)",rewardType:"å¥å±æ¹å¼",bonus:"åºå® (USD)",percent:"ç¾åæ¯ (%)",rewardBonus:"èµ ééé¢ (USD)",rewardPercent:"å
å¼é¢ç¾åæ¯ (%)",expiryDays:"æææ(天,ç空=ä¸è¿æ)",noExpiry:"ä¸è¿æ",scope:"èµ é¢ä½ç¨å",scopeHint:"éç¨èµ é¢ä»»ææ¨¡åå¯ç¨;鿍¡åç»åèµ é¢åªè½ç¨äºè¯¥ç»æ¨¡åã",scopeGeneral:"éç¨(ä»»ææ¨¡å)",removeTier:"å 餿¡£ä½",addTier:"æ·»å æ¡£ä½",antifraud:"é²è
",minTopup:"èµ·éå
å¼é¢(USD,ç空=ä¸é)",maxBonusPerUser:"åç¨æ·è¿ç°ä¸é(USD,ç空=ä¸é)",none:"ä¸é",excludeRisky:"æé¤å·²æ è®°/å°ç¦ç¨æ·",save:"ä¿åå
å¼è¿ç°",createScope:"æ°å»ºå鿍¡åç»",createScopeDescription:"åéåéèµ é¢å¯æ¶è´¹ç模å,ç¶åå¨ä¸æ¹æ¡£ä½éå¼ç¨è¯¥ç»ã",scopeName:"ç»å",scopeNamePlaceholder:"髿¯å©æ¨¡å",scopeModels:"模å",pickModels:"éæ©æ¨¡å",nModels:"{{count}} 个模å",createScopeButton:"å建模åç»",scopeCreated:"模åç»å·²å建"},njo="çæå
æ¢ç ",ajo="å
å¼å¡å¼å
æ¢ç ãç¨æ·å¨è´¦å页è¾å
¥å
æ¢ç ,é¢å¼ç´æ¥å°è´¦(èµ éä½é¢,æ 鿝ä»)ã",ojo="æ¹æ¬¡åç§°(å¯é)",sjo="ä¾å¦:Conf-2026 èµ é",rjo="çææ°é",ijo="åå¼ é¢å¼(USD)",ljo="æ¯è´¦å·å¨æ¬æ¹å¯å
æ°(ç空 = ä¸é)",cjo="ä¸é",djo="å
æ¢æªæ¢æ¶é´(å¯é)",ujo="é宿¨¡å(å¯é)",mjo="éç¨ä½é¢(ä¸éå®)",pjo="å·²é {{count}} 个模å",fjo="ç空 = éç¨ä½é¢;éä¸ç模åå
±äº«åä¸ç¬ä¸æ¬¾é¢åº¦ã",gjo="å
æ¢åé¢åº¦æææ(天,ç空 = æ°¸ä¹
)",hjo="æ°¸ä¹
ææ",yjo="{{n}} 天",vjo="é宿¨¡å",bjo="é¢åº¦æææ",xjo="éç¨ä½é¢",$jo="çæå
æ¢ç ",wjo="请ç«å³ä¿åãä¹åä¹å¯å¨æ¹æ¬¡å表ç¨ãææå¯¼åºãéæ°è·åã",kjo="å
æ¢ç æ¹æ¬¡",Cjo="ç¹å»æ¹æ¬¡æ¥çåå¼ æç»;ãææå¯¼åºãå¯éæ°å¯¼åºææã",Sjo="ææ å
æ¢ç æ¹æ¬¡",Ajo="æ¹æ¬¡",Tjo="é¢å¼",Rjo="ææå¯¼åº",Pjo="æ¤éè¿å¼ å·²å
æ¢çç ?",_jo="ä»ç¨æ·ä½é¢è¿½åå°æªæ¶è´¹çé¨å;å·²æ¶è´¹çé¨åæ æ³æ¶åã",jjo="æ¤é",Njo="å·²æ¤é {{amount}}",Djo="已导åºå
æ¢ç ",Mjo="åç¨æ¬æ¹æªå
æ¢çç ?",Ejo="ææå°æªå
æ¢çç å°å¤±æ;å·²å
æ¢çç ä¸åå½±åã",Ijo="å·²åç¨ {{n}} å¼ ç ",Ojo="å
å¼å èµ %",Ljo="å èµ æ¯ä¾(%)",Ujo="èµ éæææ(天,å¯é)",Bjo="ç空 = æ°¸ä¸è¿æ",Fjo={view:"对账",title:"ç ····{{code}} çå
弿µæ°´",email:"ç¨æ·",credited:"å°è´¦",bonus:"å èµ ",summary:"{{count}} ç¬ Â· {{users}} 人 · 宿¶ {{paid}} · å èµ {{bonus}}",empty:"è¯¥ç ææ å
弿µæ°´"},zjo={configTitle:"ä»»å¡å¢é
ç½®",configDescription:"éé¢ãå¼å
³ä¸å¯æäº¤å¹³å°ã任塿æ¡å¨ç¿»è¯æä»¶éï¼ä¸å¨è¿éãæ¹å®ä¸æ¬¡å è½½å³çæï¼ä¸åçã",enabled:"å¯ç¨ä»»å¡å¢",tasksTitle:"ä»»å¡",taskKey:"ä»»å¡ key",amount:"éé¢ï¼USDï¼",hosts:"å¯æäº¤å¹³å°",hostsHint:"ä¸å¨æ¤å表å
ç龿¥ä¼å¨æäº¤æ¶ç´æ¥è¢«æã",taskEnabled:"å¯¹ç¨æ·å¯è§",addTask:"æ°å¢ä»»å¡",guardsTitle:"é²è
鍿§",dailyCap:"æ¯æ¥å¾
审ä¸é",dailyCapHint:"0 = ä¸éã
843Redis æäºæ¶ fail-openã",minAge:"è´¦å·æçæ³¨å天æ°",minAgeHint:"0 = ä¸è®¾æ³¨åæ¶é¿é¨æ§ã",saved:"ä»»å¡å¢å·²ä¿å",queueTitle:"æäº¤éå",queueCount:"å
± {{count}} æ¡",empty:"ææ è®°å½ã",approve:"éè¿å¹¶åæ¾",approved:"å·²éè¿ï¼é¢åº¦å·²åæ¾",reject:"驳å",rejected:"已驳å",confirmReject:"确认驳å",reasonPlaceholder:"驳åçç±æ¯ä»ä¹ï¼",duplicate:"è¯¥é¾æ¥å¦æ {{count}} ä¸ªè´¦å·æäº¤è¿",status:{pending:"å¾
审",approved:"å·²éè¿",rejected:"已驳å"}},qjo={title:xRo,description:$Ro,tabs:wRo,couponBatch:kRo,promotionRule:CRo,count:SRo,batchCode:ARo,creating:TRo,createBatch:RRo,codesCreated:PRo,codesCreated_plural:_Ro,batch:jRo,copied:NRo,copyAll:DRo,creditGrants:MRo,source:ERo,status:IRo,noGrants:ORo,noGrantsDescription:LRo,time:URo,user:BRo,amount:FRo,signupBonus:zRo,signupBonusDescription:qRo,signupBonusEnabled:HRo,signupBonusAmount:VRo,saveSignupBonus:KRo,saving:GRo,currentSignupBonus:WRo,referral:YRo,referralDescription:QRo,referralEnabled:XRo,referralRewardTiers:ZRo,addTier:JRo,tierRole:ePo,tierFromDay:tPo,tierUntilDay:nPo,tierPercent:aPo,tierLabel:oPo,tierAction:sPo,roleReferrer:rPo,roleReferee:iPo,noEndDay:lPo,removeTier:cPo,releaseDelayDays:dPo,referralCap:uPo,referralMinTopup:mPo,referralExpiryDays:pPo,bannerEnabled:fPo,bannerTitle:gPo,bannerSubtitle:hPo,bannerMode:yPo,bannerModeGlobal:vPo,bannerModeWindow:bPo,bannerEndsAt:xPo,saveReferral:$Po,referralVersion:wPo,referralPublishHint:kPo,referralVersionHistory:CPo,versionCol:SPo,versionStatus:APo,versionBindings:TPo,versionTiers:RPo,versionPublished:PPo,versionSuperseded:_Po,versionCurrent:jPo,versionDetail:NPo,versionBindingsSection:DPo,versionCashbackSection:MPo,colInviter:EPo,colInvitee:IPo,colBoundAt:OPo,colRole:LPo,colCounterparty:UPo,colTopup:BPo,colRate:FPo,colAmount:zPo,colTier:qPo,colReleasedAt:HPo,noBindings:VPo,noCashback:KPo,loadMore:GPo,discountRule:WPo,discountRuleDescription:YPo,discountEnabled:QPo,discountType:XPo,discountFixed:ZPo,discountPercent:JPo,discountValueFixed:e_o,discountValuePercent:t_o,saveDiscount:n_o,defaultLowBalanceThreshold:a_o,defaultLowBalanceThresholdDescription:o_o,defaultLowBalanceThresholdAmount:s_o,saveDefaultLowBalanceThreshold:r_o,currentDefaultLowBalanceThreshold:i_o,couponBatchDescription:l_o,discountEffective:c_o,stateEnabled:d_o,stateDisabled:u_o,couponTrace:m_o,couponTraceDescription:p_o,noBatches:f_o,noBatchesDescription:g_o,batchTotal:h_o,batchRedeemed:y_o,batchReserved:v_o,batchActive:b_o,codesInBatch:x_o,noCodes:$_o,code:w_o,redeemedBy:k_o,redeemedAt:C_o,paid:S_o,discount:A_o,createIssuance:T_o,createIssuanceDescription:R_o,formLabel:P_o,formShared:__o,formUniqueBatch:j_o,sharedCodeText:N_o,sharedCodeRandomHint:D_o,sharedMaxRedemptions:M_o,sharedPerUser:E_o,expiresAt:I_o,batchCodeOptional:O_o,createSharedCode:L_o,sharedCodeCreated:U_o,batchOwnDiscount:B_o,sharedCodesList:F_o,sharedCodesListDescription:z_o,noSharedCodes:q_o,colRedeemedTotal:H_o,colPerUser:V_o,colExpiry:K_o,disableCode:G_o,disableCodeConfirmTitle:W_o,disableCodeConfirmMessage:Y_o,codeDisabled:Q_o,exportCsv:X_o,statusFilter:Z_o,filterByEmail:J_o,csv:ejo,topup:tjo,redeemCreate:njo,redeemCreateDescription:ajo,redeemBatchName:ojo,redeemBatchNameHint:sjo,redeemCount:rjo,redeemFaceValue:ijo,redeemPerUserLimit:ljo,redeemUnlimited:cjo,redeemExpiresAt:djo,redeemModels:ujo,redeemModelsAll:mjo,redeemModelsCount:pjo,redeemModelsHint:fjo,redeemValidityDays:gjo,redeemValidityForever:hjo,redeemValidityDaysValue:yjo,redeemColModels:vjo,redeemColValidity:bjo,redeemGeneralBalance:xjo,redeemCreateBtn:$jo,redeemRevealHint:wjo,redeemBatches:kjo,redeemBatchesDescription:Cjo,redeemNoBatches:Sjo,redeemBatchCol:Ajo,redeemFace:Tjo,redeemReveal:Rjo,redeemReverseTitle:Pjo,redeemReverseMessage:_jo,redeemReverseBtn:jjo,redeemReversed:Njo,redeemRevealed:Djo,redeemDisableBatchTitle:Mjo,redeemDisableBatchMessage:Ejo,redeemBatchDisabled:Ijo,discountTypeBonusPercent:Ojo,discountValueBonusPercent:Ljo,bonusExpiryDays:Ujo,bonusExpiryDaysHint:Bjo,sharedPayments:Fjo,tasks:zjo},Hjo="模åç®å½",Vjo="模åç®å½:å建ãç¼è¾ãåå¸ã",Kjo={label:"å±ç¤ºå¾½ç« ",hint:"çç¹ / ç¦å© æ ç¾,æ¾ç¤ºå¨ç¨æ·ä¾§ç模ååä»·æ ¼é¡µã",hot:"çç¹",benefit:"ç¦å©"},Gjo="æ°å¢æ¨¡å",Wjo="ç¼è¾ {{model}}",Yjo="ç¼è¾æ¨¡å",Qjo="æ°å¢æ¨¡å",Xjo="å
³é",Zjo="åºæ¬ä¸å
容ä¸èµ·ä¿å;å®ä»·ãç¶ææ¹å¨ç«å³çæã",Jjo="å
å建模åè稿ãå®ä»·ä¸åå¸å¨è稿å建åå设ã",e2o={basics:"åºç¡",basicsHint:"身份ã䏿¸¸æ å°ãåè®®ã",content:"å
容ä¸å±ç¤º",contentHint:"å¤è¯è¨æè¦ / æè¿°ä¸æåºã",config:"é
ç½®",configHint:"身份ã䏿¸¸è·¯ç±ãç±»åä¸è½åã",protocols:"åè®®",protocolsHint:"è¿ä¸ªæ¨¡å坹夿ä¾åªäº API åè®®ã"},t2o="æä¾åæ è¯",n2o="éæ©å·²ç¥æä¾å,ææå¡«èªå®ä¹æ è¯ã",a2o="æ¨¡åæ è¯",o2o="å«å",s2o="éå·åéçæ¥æ¾å«å,ç¨äºå¯¼å
¥ä¸å®¡é
ã",r2o="䏿¸¸æ¥æº(客æ·å¯è§)",i2o="客æ·å¨æ¨¡å/æ¥å¿çå°çæ¥æºæ ç¾ãç空 = ååã忍¡å夿¥æºå¤ä»·æ¶ç¨å®ååºåã",l2o="å¹³å°",c2o="â éæ©å¹³å° â",d2o="䏿¸¸æ¨¡å i
843d(å¯é;䏿é¢å¡«ææå¡«)",u2o="ä»ä¸æ¸¸éæ©...",m2o="䏿¸¸ä¸å¯ç¨",p2o="åè®®",f2o="è¾å
¥ä»·æ ¼ / 1M (USD)",g2o="è¾åºä»·æ ¼ / 1M (USD)",h2o="è±ææè¦",y2o="é¢è§",v2o="(æ æè¦)",b2o="æ åè®®",x2o="åæ¶",$2o="ä¿å",w2o="å建è稿",k2o={basic:"身份ä¸è·¯ç±",pricing:"å®ä»·",content:"å
容ä¸å±ç¤º"},C2o={config:"â é
ç½®",protocols:"â¡ åè®®",pricing:"â¢ ä»·æ ¼",display:"å
容ä¸å±ç¤º",back:"ä¸ä¸æ¥",next:"ä¸ä¸æ¥",create:"å建模å"},S2o="ä¸ä¸æé¿åº¦(token)",A2o="模åè½æ¥æ¶çæå¤§è¾å
¥ãä¸ç¡®å®å¯ç空ã",T2o="æå¤§è¾åº token",R2o="模å忬¡åå¤è½çæçæå¤§ token æ°ã",P2o={status:"ç¶æ",visibility:"å¯è§æ§",hint:"çå½å¨ææ¹å¨ç«å³çæ(带确认),ç¬ç«äºä¿åã",confirmStatus:"å°ç¶æè®¾ä¸ºã{{status}}ã?ç«å³çæã",confirmVisibility:"å°å¯è§æ§è®¾ä¸ºã{{visibility}}ã?ç«å³çæã",statusChanged:"ç¶æå·²è®¾ä¸º {{status}}ã",visibilityChanged:"å¯è§æ§å·²è®¾ä¸º {{visibility}}ã",publishBlocked:"æ æ³åå¸:ç¼ºæ ¸å¿å åä»·,请å
å¨ãå®ä»·ãTab 设置ã",statusOption:{draft:"è稿",published:"å·²åå¸",deprecated:"å·²å¼ç¨",archived:"已彿¡£"},visibilityOption:{public:"å
¬å¼",hidden:"éè"},availability:"å¯ç¨æ§",confirmAvailable:"éæ°æ 记为å¯ç¨?ç«å³çæã",confirmUnavailable:"æ è®°ä¸ºææ¶ä¸å¯ç¨?ä»ä¿çå¨å表ä¸(ç½®ç°)ä½ç½å
³è°ç¨ä¼è¢«æç»ã",availableChanged:"å·²æ 记为å¯ç¨ã",unavailableChanged:"å·²æ è®°ä¸ºææ¶ä¸å¯ç¨ã",availabilityOption:{available:"å¯ç¨",unavailable:"ææ¶ä¸å¯ç¨"},audience:"弿¾å¯¹è±¡",audienceOption:{everyone:"å
¨é¨ç¨æ·",paid_only:"ä»
éå·²å
å¼"},confirmPaidOnly:"æè¯¥æ¨¡åéå®ä¸ºä»
å·²å
å¼è´¦æ·å¯ç¨?模åä»ç
§å¸¸ä¸æ¶é²åº,æªå
å¼ç¨æ·è°ç¨ä¼æ¶å° 403 并被å¼å¯¼å»å
å¼ã",confirmEveryone:"æè¯¥æ¨¡å对å
¨é¨è´¦æ·å¼æ¾?ç«å³çæã",paidOnlyChanged:"å·²éå®ä¸ºä»
å·²å
å¼è´¦æ·å¯ç¨ã",everyoneChanged:"已对å
¨é¨è´¦æ·å¼æ¾ã"},_2o="è¾å
¥æ¨¡æ",j2o="å£°ææ¨¡å坿¥æ¶çè¾å
¥,å
æ¬å¾åãé³é¢ãè§é¢åæä»¶ã",N2o="è¾åºæ¨¡æ",D2o="ç´æ¥ååå¸é¸:å« text é text è¾å
¥/è¾åºä»·,å« image/video/embeddings é对åºå åã",M2o="å¾ç计费å£å¾",E2o="è§é¢è®¡è´¹å£å¾",I2o="䏿¸¸å¯¹è¯¥è¾åºæä»ä¹ç»´åº¦è®¡è´¹ãåå¸åå¿
须声æ ââ åå¸é¸ä¼è¦æ±å¯¹åºçä»·æ ¼å åã",O2o="â éæ©è®¡è´¹å£å¾ â",L2o="æ token(image_output_token)",U2o="æå¼ (per_call_image)",B2o="æç§(video_per_second)",F2o="ææ¬¡(video_per_call)",z2o="å±ç¤ºæåº",q2o="å¿
é¡»æ¯éè´æ´æ°ã",H2o="ç¼è¾è¯è¨",V2o="䏿¸¸å叿¥æ",K2o="æè¦(å½åè¯è¨)",G2o="æè¿°(Markdown,å½åè¯è¨)",W2o={provider:"æä¾å",status:"ç¶æ",visibility:"å¯è§æ§",allProviders:"å
¨é¨æä¾å",allStatuses:"å
¨é¨ç¶æ",allVisibility:"å
¨é¨å¯è§æ§",search:"æç´¢æ¨¡åæ è¯",mobileTitle:"çé"},Y2o={label:"模å",empty:"ææ æ¨¡å",model:"模å",provider:"æä¾å",source:"䏿¸¸æ¥æº",status:"ç¶æ",visibility:"å¯è§æ§",action:"æä½",edit:"ç¼è¾",setStatus:"设置 {{model}} çç¶æ",setVisibility:"设置 {{model}} çå¯è§æ§",confirmSet:'å° {{model}} ç {{field}} 设置为 "{{value}}"?',sub2api:"Sub2API æ å°",textPrice:"ä»·æ ¼(è¾å
¥/è¾åº $/M)",priceByTokens:"{{kind}} · æ token",imageOutput:"å¾çè¾åº",officialPrice:"宿¹",saved:"ç {{pct}}%"},Q2o={invalidPrice:"ä»·æ ¼å¿
é¡»æ¯ >=0 çæ°å,æç空ã",highRisk:"æ¹å¨ä¼å½±åçº¿ä¸ gateway è§£æ(å¯è½è®©ç¨æ· 404)ã确认继ç»?",stale:"模å已被ä»äººä¿®æ¹,请å
³ééæ°æå¼ååæ¹ã"},X2o={savesImmediately:"å®ä»·æ¹å¨ç«å³çæ,ä¸ååºé¨ä¿åæ§å¶ã",createPriceFailed:"模åå·²å建,ä½é¨åå®ä»·æªåå
¥,请å¨ãä»·æ ¼ã页补ã",factors:{title:"å®ä»·å å",hint:"æ¯ä¸è¡æ¯ä¸ä¸ªåå计费åå
(ææ¬è¾å
¥/è¾åºãç¼åãå¾çç)ãçæä¸çè¡ä»å
¶çææ¥æèµ·å³å®è®¡è´¹;åå²è¡è®°å½è¿å¾ä»·æ ¼ã",liveBanner:"è¿éçæ¹å¨ç«å³çæå¹¶åå
¥ä»·æ ¼åå² ââ ä¸ååºé¨ä¿åæé®æ§å¶ã",draftHint:"请å
ä¿å模åè稿;模åå建åæè½å¨æ¤è¡å
ç¼è¾å®ä»·å åã",addFactor:"æ°å¢å å",changePrice:"æ¹ä»·",expire:"失æ",confirmExpire:"让è¿ä¸è¡å å失æ?å®ä¼ç«å³åæ¢çæå¹¶ç§»å
¥åå²ã",changeSaved:"å åä»·æ ¼å·²æ´æ°ã",expired:"å å已失æã",factor:"å å",tier:"æ¡£ä½",tierNone:"(æ æ¡£ä½)",unit:"åä½",ourPrice:"ææ¹ä»·æ ¼ (USD)",officialPrice
843:"宿¹ä»· (USD)",officialAbbr:"宿¹",source:"æ¥æº(å¯é URL æå¤æ³¨,â¤128 å符)",historyLabel:"åå²({{count}})",emptyTitle:"ææ çæä¸çå åä»·æ ¼",empty:"ç¹å»ãæ°å¢å åãæ¥è®¾ç½®ã",loadError:"æ æ³å è½½å®ä»·å å",draftEditorHint:"ç°å¨å°±å¡«ä»·,æå
ç空ã建好模åååå ã",draftEmpty:"è¿æ²¡æ·»å ä»·æ ¼ã",remove:"å é¤",factorOption:{text_input:"ææ¬è¾å
¥ (LLM)",text_output:"ææ¬è¾åº (LLM)",cache_read:"ç¼å读å",cache_write_5m:"ç¼ååå
¥ (5m TTL)",cache_write_1h:"ç¼ååå
¥ (1h TTL)",image_input_token:"å¾çè¾å
¥ token",image_output_token:"å¾çè¾åº token",per_call_image:"å¾ç(ææ¬¡)",video_per_call:"è§é¢(ææ¬¡)",video_per_second:"è§é¢(æç§)",web_search_call:"èç½æç´¢è°ç¨"},unitOption:{per_1m_tokens:"æ¯ 1M tokens",per_image:"æ¯å¼ ",per_call:"æ¯æ¬¡",per_second:"æ¯ç§"},conditions:"æ¡ä»¶ JSON(å¯é)"},discount:{toggle:"æææ£çæ¹ä»·",hint:"ææ¯ä¸ªå åè®¾ä¸ºå®æ¹ä»·çæä¸ªæ¯ä¾(0.5 = 5 æ)ãå
è´¹å å(ææ¹ä»·ä¸º 0)åæ å®æ¹ä»·çå åä¼è·³è¿ã",rate:"ææ£ç",preview:"é¢è§",apply:"åºç¨",allowMarkup:"å
许å ä»·(ææ£çå¤§äº 1 å³é«äºå®æ¹ä»·)",noFactors:"没æå¯æ¹ä»·ççæå åã",confirmTitle:"对ææå ååºç¨ææ£?",confirmBody:"å° {{count}} 个å åæ¹ä¸ºå®æ¹ä»·ç {{rate}} åãå·²çæ¬åââä¸å½±ååå²è®¡è´¹ã",applied:"å·²æå®æ¹ä»· {{rate}} 忹价 {{count}} 个å åã",stale:"é¢è§åä»·æ ¼å·²å,è¯·éæ°é¢è§ã",skipReason:{free_factor_our_zero:"å
è´¹å å(ææ¹ä»·ä¸º 0)ââä¿æä¸å",no_official:"æ 宿¹ä»·ââæ æ³è®¡ç®",official_zero:"宿¹ä»·ä¸º 0ââ已跳è¿"}}},Z2o="æ¾å¼æªä¿åçæ´æ¹?",J2o={title:Hjo,description:Vjo,badges:Kjo,addModel:Gjo,editModel:Wjo,editModelShort:Yjo,newModel:Qjo,close:Xjo,sheetDescription:Zjo,sheetDescriptionNew:Jjo,sections:e2o,providerSlug:t2o,providerSlugHint:n2o,modelSlug:a2o,aliases:o2o,aliasesHint:s2o,source:r2o,sourceHint:i2o,platform:l2o,platformUnset:c2o,sub2apiModelId:d2o,chooseSub2api:u2o,upstreamUnavailable:m2o,protocols:p2o,inputPrice:f2o,outputPrice:g2o,enSummary:h2o,preview:y2o,noSummary:v2o,noProtocol:b2o,cancel:x2o,save:$2o,createDraft:w2o,tabs:k2o,steps:C2o,contextWindow:S2o,contextWindowHint:A2o,maxOutputTokens:T2o,maxOutputTokensHint:R2o,lifecycle:P2o,inputModalities:_2o,inputModalitiesHint:j2o,outputModalities:N2o,outputModalitiesHint:D2o,billingStyleImage:M2o,billingStyleVideo:E2o,billingStyleHint:I2o,billingStyleUnset:O2o,billingStyleToken:L2o,billingStylePerImage:U2o,billingStylePerSecond:B2o,billingStylePerCall:F2o,displayOrder:z2o,displayOrderInvalid:q2o,contentLocale:H2o,upstreamReleaseAt:V2o,summary:K2o,descriptionField:G2o,filters:W2o,table:Y2o,errors:Q2o,pricing:X2o,discardChanges:Z2o},eNo="éçéå¶",tNo="æ scope 管çéçéå¶çç¥ã",nNo="éçéå¶çç¥",aNo="ææ çç¥",oNo="Code",sNo="åç§°",rNo="Scope",iNo="ç¶æ",lNo="éå¶",cNo="æ éå¶",dNo={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},uNo={active:"å¯ç¨",disabled:"åç¨",archived:"彿¡£"},mNo={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"å¹¶å / key",concurrent_streams_per_user:"å¹¶å / user"},pNo="æ°å»ºçç¥",fNo="ç¼è¾",gNo="æä½",hNo="æ°å»ºéçéå¶çç¥",yNo="ç¼è¾ {{name}}",vNo="æ API key åæç¨æ·çæçå¹¶åä¸ RPM éé¢ãå°ç¨æ·é¡µç»ç¨æ·åé
çç¥ã",bNo="å é¤çç¥ã{{name}}ãï¼æå¨å
¶ä¸ç key ä¸ç¨æ·å°åè½é»è®¤çç¥ã",xNo="çç¥å·²å é¤ã",$No={identity:"æ è¯",classification:"åç±»",description:"æè¿°",codeImmutable:"Code å建åä¸å¯æ´æ¹ã",limitsHint:"ç空å该项使ç¨å¹³å°é»è®¤å¼ã",default:"é»è®¤",invalidLimit:"{{field}} å¿
é¡»ä¸ºæ£æ´æ°ã",saved:"çç¥å·²ä¿åã",cancel:"åæ¶",save:"ä¿å",create:"å建çç¥"},wNo={title:eNo,description:tNo,label:nNo,empty:aNo,code:oNo,name:sNo,scope:rNo,status:iNo,limits:lNo,noLimits:cNo,scopes:dNo,statuses:uNo,limitNames:mNo,add:pNo,edit:fNo,delete:"å é¤",action:gNo,newTitle:hNo,editTitle:yNo,formDescription:vNo,confirmDelete:bNo,deleted:xNo,form:$No},kNo="å¢éæå",CNo="è°è½ç»å½åå°ãä»
owner 坿ä½ã",SNo="管çå",ANo="ææ ç®¡çå",TNo="é®ç®±",RNo="åç§°",PNo="è§è²",_No="ç¶æ",jNo="æåç»å½",NNo="æä½",DNo="æ·»å 管çå",MNo="æ·»å 管çå",ENo="该é®ç®±å°ç«å³æä¸ºç®¡çåå¹¶ç¨å®ç»å½ââ管çå身份æé®ç®±å¹é
,ææ¶æ é已注åè´¦å·ã",INo="é®ç®±",ONo="[email protected]",LNo="åç§°",UNo="æ¾ç¤ºåç§°",BNo="è§è²",FNo="管çå已添å ã",zNo="ä¿®æ¹è§è²",qNo="è§è²å·²æ´æ°ã",HNo="åç¨",VNo="å¯ç¨",KNo="ç¶æå·²æ´æ°ã",GNo="ç§»é¤",WNo="管çå已移é¤ã",YNo="ç§»é¤ {{email}} ç管çå身份?对æ¹å°ç«å³å¤±å»åå°è®¿é®æéã",QNo="ä½ ",XNo="仿ª",ZNo={owner:"Owner",admin:"Admin",
843support:"æ¯æ"},JNo={active:"å¯ç¨",suspended:"åç¨"},eDo={title:kNo,description:CNo,label:SNo,empty:ANo,email:TNo,name:RNo,role:PNo,status:_No,lastLogin:jNo,action:NNo,add:DNo,newTitle:MNo,formDescription:ENo,emailLabel:INo,emailPlaceholder:ONo,nameLabel:LNo,namePlaceholder:UNo,roleLabel:BNo,added:FNo,changeRole:zNo,roleChanged:qNo,suspend:HNo,activate:VNo,statusChanged:KNo,remove:GNo,removed:WNo,confirmRemove:YNo,self:QNo,never:XNo,roles:ZNo,statuses:JNo},tDo="䏿¸¸æ¸ é",nDo="åªè¯»ä¸æ¸¸é
ç½®éåï¼ä»¥å OneHop åæ§è·¯ç± key poolsã",aDo="æå¼ä¸æ¸¸ç®¡çåå°",oDo="䏿¸¸æ ç¾é¡µ",sDo={overview:"æ¦è§",keyPools:"Key pools",groups:"åç»",channels:"æ¸ é",accounts:"è´¦å·"},rDo={todayRequests:"仿¥è¯·æ±",total:"æ»è®¡ {{value}}",upstreamCostToday:"仿¥ä¸æ¸¸æ¶è",providerAccounts:"ä¾åºåè´¦å·",health:"å¥åº·ç¶æ",stale:"å·²è¿æ",checkPools:"æ£æ¥ pools",online:"å¨çº¿"},iDo={upstreamStatsFailed:"䏿¸¸ç»è®¡å 载失败",retry:"éè¯",configAuditFailed:"é
置审计失败",keyPoolsLoadFailed:"Key pools å 载失败",createKeyPoolFailed:"å建 key pool 失败",keyPoolTestFailed:"Key pool æµè¯å¤±è´¥",keyPoolRotateFailed:"Key pool è½®æ¢å¤±è´¥",failedLoad:"{{title}} å 载失败"},lDo={title:"é
置审计",description:"å¯¹æ¯ OneHop key poolsãå·²å叿¨¡åè·¯ç±ä¸ä¸æ¸¸è·¯ç±ãä¾åºååç»ãæ¸ éãå®ä»·åè´¦å·å¨è¿éä¿æåªè¯»ã",running:"è¿è¡ä¸...",run:"è¿è¡å®¡è®¡",poolsChecked:"å·²æ£æ¥ pools",modelAudit:"模å审计",checkedAt:"æ£æ¥æ¶é´",needsReview:"éè¦å¤æ ¸",done:"宿",ok:"æ£å¸¸",upstreamCoverage:"䏿¸¸å¯æå¡è¦ç",coverageUnchecked:"è´¦å·è¯»ä¸å°",coverageOnlyAccount:"ä»
{{accounts}}",coverageNoAccount:"没æå¯è°åº¦è´¦å·è®¤è¿ä¸ªä¸æ¸¸å"},cDo={title:"ææ",keyPools:"Key pools",activeGroups:"æ´»è·åç»",activeChannels:"æ´»è·æ¸ é",accounts:"è´¦å·",editingBoundaryTitle:"ç¼è¾è¾¹ç",editingBoundaryDescription:"䏿¸¸ç®¡çåå°æä¾åç»ãæ¸ éãå®ä»·è§åãä¾åºåè´¦å·ãçæ§åç³»ç»è®¾ç½®ç深度ç¼è¾æµç¨ãOneHop åªéåè¿è¥è¯»åè·¯å¾ï¼å¹¶ç®¡çå
é¨ key poolsï¼ä¼æ¹åä¾åºåè·¯ç±çç¼è¾ä»å¨å管çåå°ä¸å®æã"},dDo={title:"OneHop å
é¨ key pools",description:"Pools å³å® OneHop å¨ä¸ååè®®åæ¨¡å模å¼ä¸ä½¿ç¨åªæä¸æ¸¸å
é¨ keyã宿´ secret æ°¸ä¸æ¾ç¤ºã",poolCode:"Pool 代ç ",poolName:"Pool åç§°",defaultPool:"é»è®¤ pool",notDefault:"éé»è®¤",plaintextKey:"ææ key",create:"å建",label:"ä¾åºåè·¯ç± key pools",pool:"Pool",protocols:"åè®®",models:"模å",routingGroup:"è·¯ç±åç»",status:"ç¶æ",health:"å¥åº·ç¶æ",key:"Key",lastCheck:"æåæ£æ¥",action:"æä½",priority:"ä¼å
级 {{value}}",default:"é»è®¤",secret:"secret",hidden:"hidden",test:"æµè¯",rotate:"è½®æ¢",empty:"ææ key pools",emptyDescription:"å
å建å
é¨ poolï¼åéè¿ä¾åºåè·¯ç±æ¿è½½ç产æµéã",newPlaintextKey:"æ°çææ key",confirmRotate:"确认轮æ¢",editProtocols:"ç¼è¾åè®®",editProtocolsTitle:"ç¼è¾åè®®(æ¿æ¢)",confirmEditProtocols:"ä¿ååè®®",cancelEditProtocols:"åæ¶",forceEditProtocols:"强å¶ä¿å(è¦çè·¯ç±æ£æ¥)"},uDo={editUpstreamConfig:"ç¼è¾ä¸æ¸¸é
ç½®",groupsTitle:"åç»",groupsDescription:"æ¥èªä¸æ¸¸é
ç½®çè·¯ç±åç»ãOneHop å°å
¶ä½ä¸º key-pool ç»å®å审计å³ççäºå®æ¥æºã",groupsLabel:"è·¯ç±åç»",groupsEmpty:"ææ åç»",groupsEmptyDescription:"䏿¸¸é
ç½®æªè¿åä»»ä½åç»ã",channelsTitle:"æ¸ é",channelsDescription:"æ¥èªä¸æ¸¸é
ç½®çä¾åºåæ¸ éé
ç½®ï¼å
æ¬æ¨¡åæ å°åå®ä»·è§åè¦çã",channelsLabel:"ä¾åºåè·¯ç±æ¸ é",channelsEmpty:"ææ æ¸ é",channelsEmptyDescription:"䏿¸¸é
ç½®æªè¿å任使¸ éã",accountsTitle:"è´¦å·",accountsDescription:"ä¾åºåè´¦å·å¨ OneHop ä¸å·²è±æãåè¯ç¼è¾å OAuth å·æ°æµç¨è¯·ä½¿ç¨ä¸æ¸¸ç®¡çåå°ã",accountsLabel:"ä¾åºåè·¯ç±è´¦å·",accountsEmpty:"ææ è´¦å·",accountsEmptyDescription:"䏿¸¸é
ç½®æªè¿åä»»ä½ä¾åºåè´¦å·ã"},mDo={group:"åç»",platform:"å¹³å°",rate:"åç",rpm:"RPM",accounts:"è´¦å·",limits:"éå¶",status:"ç¶æ",updated:"æ´æ°æ¶é´",channel:"æ¸ é",billingSource:"è®¡è´¹æ¥æº",mappings:"æ å°",pricing:"å®ä»·",account:"è´¦å·",groups:"åç»",baseUrl:"Base URL",capacity:"容é",lastUsed:"æå使ç¨"},pDo={noDescription:"æ æè¿°",unlimited:"ä¸é",schedulable:"å¯è°åº¦",notSchedulable:"ä¸å¯è°åº¦",loading:"å è½½ä¸...",noPricingRules:"æ å®ä»·è§å",modelsCount:"{{count}} 个模å",none:"æ ",channelMapped:"æ¸ éæ å°",requestedModel:"è¯·æ±æ¨¡å",upstreamModel:"䏿¸¸æ¨¡å",priority:"ä¼å
级",unknown:"æªç¥"},fDo={serving:{label:"æå¡ç¶æ",serving:"æ£å¸¸",rate_limited:"éæµä¸",overloaded:"è¿è½½",expired:"å·²è¿æ",paused:"æåè°åº¦",error:"é误",disabled:"å·²åç¨"},quota:{label:"é¢åº¦å ç¨(仿¥)",noLimit:"æ éé¢",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"æ£å¸¸ {{normal}} · å¼å¸¸ {{error}} · éæµ {{ratelimit}} · è¿è½½ {{overload}}"},freshness:{updated:"{{ago}}åæ´æ°",never:"仿ª"},pools:{lastError:"æè¿é误",resync:"鿰忥"},audit:{poolFindings:"Pool é®é¢",clean:"æ£å¸¸",findingsCount:"{{count}} 项"},tokensToday:"仿¥ {{count}} tok"},gDo={title:tDo,description:nDo,openUpstreamAdmin:aDo,tabsLabel:oDo,tabs:sDo,metrics:rDo,errors:iDo,audit:lDo,topology:cDo,pools:dDo,readonly:uDo,table:mDo,common:pDo,ops:fDo},hDo="ç¨éç»è®¡",yDo="è·¨ç¨æ·æ¥ç请æ±è®¡éãæ¶èãtokenãå»¶è¿åè·¯ç±ä¿¡å·ã",vDo="å·æ°",bDo={label:"èªå¨å·æ°",off:"å
³é"},xDo="导åºä¸",$Do="å¯¼åº CSV",wDo="ç¨éè®°å½å¯¼åºå¤±è´¥",kDo="请æ±",CDo="{{count}} 个æå",SDo="ç¨æ·",ADo="å¹é
å½åç鿡件",TDo="æ¶è credit",RDo="{{cost}} æ¶è",PDo="Tokens",_Do="å¹³å {{duration}}",jDo="ç¨æ· email",NDo="æ email æç´¢",DDo="模å",MDo="ææ¨¡åæç´¢",EDo="ç¶æ",IDo="åè®®",ODo="è¡æ°",LDo="éç½®",UDo="è¿è¥ç¨éè®°å½",BDo="ææ ç¨éè®°å½",FDo="ç¨æ·",zDo="Endpoint",qDo="æ»è®¡ {{count}}",HDo="è¾å
¥ {{input}} / è¾åº {{output}}",VDo="䏿¸¸",KDo="计费",GDo="å»¶è¿",WDo="å¼å§æ¶é´",YDo="第 {{page}} 页 · æ¾ç¤º {{shown}} æ¡ï¼å
± {{total}} æ¡å¹é
è®°å½",QDo="ä¸ä¸é¡µ",XDo="ä¸ä¸é¡µ",ZDo="æ¬é¡µ {{count}} è¡",JDo="æ¶é´æ¾ç¤ºä¸º",eMo="{{count}} 个 API keys",tMo="æ¶èå¿«ç
§",nMo="æ¥èª OneHop 计费快ç
§",aMo="ç¨æ·æ¶è´¹",oMo="ç¨æ·æ¶èæ»é¢",sMo="å¹³åå»¶è¿",rMo="æåæµå¼è¯·æ±",iMo="å¹³åèæ¶",lMo="å·²ç»ç®è¯·æ±",cMo="èå´",dMo={today:"ä»å¤©",days7:"7 天",days30:"30 天",all:"å
¨é¨æ¶é´"},uMo="ææ ",mMo={requests:"请æ±",tokens:"Tokens",cost:"æ¶è"},pMo="åå¸",fMo={model:"模å",requestedModel:"è¯·æ±æ¨¡å",upstreamModel:"䏿¸¸æ¨¡å",apiKey:"API key",user:"ç¨æ·",endpoint:"Endpoint",channel:"æ¸ é",group:"åç»",stream
843:"è¯·æ±æ¹å¼(æµå¼/éæµå¼)"},gMo="ç¨éè¶å¿",hMo="ææ¨¡åç¨é",yMo="æå°æ¶",vMo="æå¤©",bMo="çé¨ endpoints",xMo="çé¨ç»´åº¦è¡",$Mo="è¯·æ±æ¥å¿",wMo="API key",kMo="ç±»å",CMo="计费",SMo="æ¸ é",AMo="åç»",TMo="è¯·æ± ID",RMo="req_ / usg_ / upstream",PMo="å
¨é¨ç±»å",_Mo="å
¨é¨è®¡è´¹",jMo={user:"ç¨æ·",time:"æ¶é´",model:"模å",tokens:"Tokens",cost:"æ¶è",routing:"è·¯ç±",latency:"å»¶è¿(é¦å)",duration:"èæ¶",status:"ç¶æ"},NMo="ç¨éå 载失败",DMo="æ£å¨å è½½ç¨éè®°å½",MMo="æ¢ä¸ç»ç鿡件è¯è¯ã",EMo="ææ è¶å¿æ°æ®",IMo="ææ å叿°æ®",OMo="ææ è¡",LMo="æ¶èæç»",UMo={upstreamList:"䏿¸¸æ ä»·",discount:"ææ£",sub2apiActual:"è®°å½æ¶è",groupChannelMultiplier:"åç»/æ¸ éåç",accountMultiplier:"è´¦å·åç",sub2apiFinalCharge:"æç»æ¶è",billedFactors:"ç¨æ·æ¶è"},BMo="请æ±è¯¦æ
",FMo="æå¼è¯·æ±è¯¦æ
",zMo="æªç¥ç¨æ·",qMo="å è½½ä¸...",HMo="è®°å½æ¶è",VMo="åç»åç",KMo="è´¦å·åç",GMo="身份",WMo="ç¨æ· ID",YMo="Key åç¼",QMo={hopIdentity:"跳次身份",logicalUsageId:"é»è¾ç¨é ID",logicalRequestedModel:"é»è¾è¯·æ±æ¨¡å",logicalModel:"é»è¾æ¨¡å",actualRequestedModel:"å®é
è¯·æ±æ¨¡å",actualModel:"å®é
模å",fallbackHop:"åéè·³æ°",userVisibility:"ç¨æ·å¯è§æ§",visible:"å¯è§",hidden:"éè",supersedesUsageRecord:"æ¿ä»£çç¨éè®°å½",pricingAudit:"è¿ç»æ§è®¡è´¹å®¡è®¡",mode:"模å¼",policyVersion:"çç¥çæ¬",sourceModel:"æºæ¨¡å",targetModel:"ç®æ 模å",requestedRawQuote:"è¯·æ±æ¨¡ååå§æ¥ä»·",requestedQuote:"è¯·æ±æ¨¡åæ¥ä»·",actualPricingStatus:"å®é
æ¨¡åæ¥ä»·ç¶æ",actualPricingAvailable:"å¯ç¨",actualPricingUnavailable:"ä¸å¯ç¨",actualQuote:"å®é
æ¨¡åæ¥ä»·",chargedQuote:"æç»è®¡è´¹æ¥ä»·",variance:"æ¥ä»·å·®é¢",actualPricingError:"å®é
æ¨¡åæ¥ä»·é误"},XMo="è¾å
¥",ZMo="è¾åº",JMo="ç¼å读å",eEo="ç¼ååå
¥",tEo="åå§å
æ°æ®",nEo="请æ±",aEo="ç¨é ID",oEo="OneHop ID",sEo="Sub2API ID",rEo="Sub2API æ¥å¿",iEo="è·¯ç±",lEo="æ å°",cEo="æ§è½",dEo="é¦ token",uEo="æ»èæ¶",mEo="é误",pEo="代ç ",fEo="ä¿¡æ¯",gEo={time:"æ¶é´",user:"ç¨æ·",apiKey:"API key",model:"模å",logicalUsageId:"é»è¾ç¨é ID",logicalRequestedModel:"é»è¾è¯·æ±æ¨¡å",logicalModel:"é»è¾æ¨¡å",actualRequestedModel:"å®é
è¯·æ±æ¨¡å",actualModel:"å®é
模å",fallbackHop:"åéè·³æ°",userVisible:"ç¨æ·å¯è§",supersedesUsageRecord:"æ¿ä»£çç¨éè®°å½",upstreamModel:"䏿¸¸æ¨¡å",protocol:"åè®®",endpoint:"Endpoint",type:"ç±»å",status:"ç¶æ",inputTokens:"è¾å
¥ tokens",outputTokens:"è¾åº tokens",cacheRead:"ç¼å读å",cacheWrite:"ç¼ååå
¥",sub2apiActual:"è®°å½æ¶è",sub2apiCharge:"æ¶è",continuityMode:"è¿ç»æ§æ¨¡å¼",continuityPolicyVersion:"è¿ç»æ§çç¥çæ¬",continuitySourceModel:"è¿ç»æ§æºæ¨¡å",continuityTargetModel:"è¿ç»æ§ç®æ 模å",continuityRequestedRawQuote:"è¿ç»æ§è¯·æ±æ¨¡ååå§æ¥ä»·",continuityRequestedQuote:"è¿ç»æ§è¯·æ±æ¨¡åæ¥ä»·",continuityActualPricingStatus:"è¿ç»æ§å®é
æ¨¡åæ¥ä»·ç¶æ",continuityActualQuote:"è¿ç»æ§å®é
æ¨¡åæ¥ä»·",continuityChargedQuote:"è¿ç»æ§æç»è®¡è´¹æ¥ä»·",continuityVariance:"è¿ç»æ§æ¥ä»·å·®é¢",continuityActualPricingError:"è¿ç»æ§å®é
æ¨¡åæ¥ä»·é误",firstTokenMs:"é¦å毫ç§",durationMs:"èæ¶æ¯«ç§",channel:"æ¸ é",group:"åç»",onehopRequestId:"OneHop è¯·æ± ID",sub2apiRequestId:"Sub2API è¯·æ± ID"},hEo={analytics:"ç¨éåæ",logs:"è¯·æ±æ¥å¿"},yEo={label:"å¾è¡¨è§å¾",stacked:"éæ¶é´",ranking:"æå"},vEo={failedOnly:"ä»
失败",slowOnly:"é¦å > {{sec}}s"},bEo="æ´å¤çé",xEo="é¦åæ
¢éå¼ (ms)",$Eo="å»¶è¿=é¦åæ¶é´(TTFT)ãèæ¶=æ»æ¶é¿ãæ
¢çæé¦åå»¶è¿,ä»
è¦çå·²ééé¦åçæå请æ±(æ´æ©æå¤±è´¥çè¯·æ±æ¾ç¤º â)ã",wEo="ææ æ¨¡åç¨é",kEo="ææ è¯·æ± ââ ææµéåç¨é伿¾ç¤ºå¨è¿éã",CEo="æ£å¨æ¥ç",SEo={title:hDo,description:yDo,refresh:vDo,autoRefresh:bDo,exporting:xDo,exportCsv:$Do,exportError:wDo,requests:kDo,successful:CDo,users:SDo,matchedFilters:ADo,billedCredit:TDo,upstreamCost:RDo,tokens:PDo,avgDuration:_Do,userEmail:jDo,searchEmail:NDo,model:DDo,searchModel:MDo,status:EDo,protocol:IDo,rows:ODo,reset:LDo,label:UDo,empty:BDo,user:FDo,endpoint:zDo,totalTokens:qDo,inOut:HDo,upstream:VDo,billed:KDo,latency:GDo,started:WDo,pageSummary:YDo,previous:QDo,next:XDo,rowsOnPage:ZDo,timesShownIn:JDo,apiKeys:eMo,sub2apiCharge:tMo,sub2apiChargeSource:nMo,userSpend:aMo,userSpendSource:oMo,avgLatency:sMo,avgLatencySub:rMo,avgTotalDuration:iMo,settledRequests:lMo,range:cMo,ranges:dMo,metric:uMo,metrics:mMo,distribution:pMo,breakdown:fMo,usageTrend:gMo,stackedByModel:hMo,hourly:yMo,daily:vMo,topEndpoints:bMo,topDimensionRows:xMo,requestLogs:$Mo,apiKey:wMo,type:kMo,billing:CMo,channel:SMo,group:AMo,requestId:TMo,requestIdPlaceholder:RMo,allTypes:PMo,allBilling:_Mo,table:jMo,failedLoad:NMo,loadingRecords:DMo,tryDifferentFilters:MMo,noTrendData:EMo,noDistributionData:IMo,noRows:OMo,costBreakdown:LMo,adminCost:UMo,requestDetail:BMo,openRequestDetail:FMo,unknownUser:zMo,loading:qMo,sub2apiActual:HMo,groupMultiplier:VMo,accountMultiplier:KMo,identity:GMo,userId:WMo,keySuffix:YMo,continuity:QMo,input
843:XMo,output:ZMo,cacheRead:JMo,cacheWrite:eEo,rawMetadata:tEo,request:nEo,usageId:aEo,onehopId:oEo,sub2apiId:sEo,sub2apiLog:rEo,routing:iEo,mapping:lEo,performance:cEo,firstToken:dEo,total:uEo,error:mEo,code:pEo,message:fEo,csv:gEo,tabs:hEo,modelView:yEo,chip:vEo,moreFilters:bEo,slowThreshold:xEo,latencyHint:$Eo,noModelUsage:wEo,noTrendToday:kEo,viewing:CEo},AEo="æç´¢",TEo="æç¨æ· IDãé®ç®±æåç§°æç´¢",REo="ç¨æ·",PEo="è¿åç¨æ·å表",_Eo="ä½ æ²¡ææ¥çæ¤æ¿åçæéã",jEo="鿬¾",NEo="鿬¾ä¸...",DEo="为 {{email}} åèµ· {{amount}} 鿬¾?鿬¾ä¸ºå¼æ¥å¤ç,ä½é¢ç¨åç± worker åå²ã",MEo="鿬¾å·²åèµ·ã",EEo={overview:"æ¦è§",network:"ç½ç» & 设å¤",recentCalls:"æè¿è°ç¨",apiKeys:"API Key",payments:"仿¬¾",refunds:"鿬¾",subscription:"订é
",referrals:"é请",rewards:"å¥å±",audit:"审计"},IEo={title:"å
è´¹ token é¢åº¦",paused:"该账å·å·²æååæ¾å
è´¹é¢åº¦(飿§å®¡æ¥)ã",daily:"æ¯æ¥",weekly:"æ¯å¨",tokensUnit:"tokens",remaining:"仿¥å©ä½ {{value}} tokens"},OEo={title:"å
费模åé¢åº¦(仿¥)",tokens:"tokens",remaining:"仿¥å©ä½ {{value}} tokens",unlimited:"å
è´¹é¢åº¦:ä¸é(鏿ªå¼å¯)",eligibilityLabel:"å
è´¹å±èµæ ¼",eligible:"享å
è´¹å±",ineligible:"æ å
è´¹èµæ ¼(å设å¤å·²ç¨)"},LEo={phase2:"订é
åè½å°å¨ Phase 2 ä¸çº¿ã"},UEo={empty:"ææ ä»æ¬¾"},BEo={empty:"ææ éæ¬¾"},FEo={empty:"ææ ç§¯åæ¡¶",note:"ç§¯åæ¡¶å±ç¤ºå½åä½é¢åºåãåæ¾ä¸é款åå²è§å®¡è®¡æ¶é´çº¿,é请è¿ç°è§é请æ¿åã"},zEo={totalEarned:"累计è·å¾",frozenEarned:"å»ç»ä¸",refereeCount:"被é请人",activeCount:"æ´»è·",role:"è§è²",counterparty:"å¯¹ææ¹",empty:"ææ é请记å½"},qEo={empty:"ææ å®¡è®¡è®°å½"},HEo={amount:"éé¢",credit:"å°è´¦ç§¯å",status:"ç¶æ",provider:"æ¸ é",createdAt:"å建äº",type:"ç±»å",originalTx:"å交æ",remaining:"å©ä½",initial:"åå§",expiresAt:"è¿æ",event:"äºä»¶",action:"å¨ä½",severity:"级å«"},VEo={ipLocationTitle:"IP & ä½ç½®",deviceBrowserTitle:"è®¾å¤ & æµè§å¨",stripeTitle:"Stripe",signupIp:"注å IP",signupCountry:"注åå½å®¶",lastLoginIp:"æåç»å½ IP",ipDifferent:"䏿³¨å IP ä¸å",sameIpAccounts_one:"{{count}} ä¸ªåæ³¨å IP è´¦å·",sameIpAccounts_other:"{{count}} ä¸ªåæ³¨å IP è´¦å·",sameDeviceAccounts_one:"{{count}} 个å设å¤è´¦å·",sameDeviceAccounts_other:"{{count}} 个å设å¤è´¦å·",deviceFingerprint:"è®¾å¤æçº¹",freeTierEligible:"å
è´¹å±èµæ ¼",firstDevice:"é¦å·",notFirstDevice:"éé¦å· · å设å¤å·²æ³¨å,ä¸äº«å
è´¹ç¦å©",browser:"æµè§å¨",os:"æä½ç³»ç»",deviceType:"设å¤ç±»å",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"å¨ ipinfo.io æ¥ç详æ
"},KEo={empty:"ææ è°ç¨è®°å½",viewAll:"æ¥çå
¨é¨æ¥å¿ â",colStatus:"ç¶æ",colTime:"æ¶é´",colModel:"模å",colProtocol:"åè®®",colDuration:"èæ¶",colCost:"è´¹ç¨",colFreeDiscount:"å
è´¹æµæ£"},GEo={empty:"ææ API Key",colName:"åç§°",colKey:"Key",colStatus:"ç¶æ",colPolicy:"éæµçç¥",colLastUsed:"æè¿ä½¿ç¨",colCreated:"å建æ¶é´",colExpires:"è¿æ",colSpend:"æ¶è´¹",spendTitle:"æ¶è´¹æç»",spend30d:"è¿ 30 天",spendAllTime:"累计",spendRequests:"è¯·æ±æ°"},WEo="å¤å¶",YEo="å·²å¤å¶",QEo={search:AEo,searchPlaceholder:TEo,title:REo,backToList:PEo,noBlockPerm:_Eo,refund:jEo,refunding:NEo,refundConfirm:DEo,refundInitiated:MEo,nav:EEo,freeTokens:IEo,freeQuota:OEo,subscription:LEo,payments:UEo,refunds:BEo,rewards:FEo,referrals:zEo,audit:qEo,col:HEo,network:VEo,recentCalls:KEo,apiKeys:GEo,copy:WEo,copied:YEo},XEo="ç¨æ·ç®¡ç",ZEo="æç´¢ç¨æ·ãåæ¾ creditãæåè´¦å·ã",JEo="Email",eIo="æ email æç´¢",tIo="è´¦æ·ç¶æ",nIo={active:"è´¦æ·æ£å¸¸,å¯ç»å½ä¸è°ç¨",suspended:"åç¨,ç½å
³æç»ææè¯·æ±(401)"},aIo="é£é©",oIo={normal:"享åå
¨é¨å
è´¹ç¦å©",watchlisted:"ææ¯æ¥å
è´¹ token + ä¸å注åé;ä»å¯å
å¼ / è°ç¨ç½å
³",blocked:"ç½å
³å
¨æ(401),å®å
¨å°ç¦"},sIo="ç¨æ·",rIo="æªæ¾å°ç¨æ·",iIo="å½å®¶",lIo="æåç»å½",cIo="æä½",dIo="æ¥ç",uIo="å·²å é¤",mIo="设置 {{email}} çç¶æ",pIo='å° {{email}} 设置为 "{{status}}"?',fIo="åæ¾ credit",gIo="ç» {{email}} æ·»å å¥å± creditãä¼è®°å½å°è´¦æ¬ã",hIo="éé¢ (USD)",yIo="ä¾å¦ 5",vIo="åå (å¯é)",bIo="ä¾å¦åæºè¡¥å¿",xIo="æ§è´¨",$Io="èµ éé¢åº¦",wIo="ç½éçãä¸è®¡å
¥å·²å
å¼ã",kIo="çº¿ä¸æ¶æ¬¾",CIo="çæ¶å°çé±ã计å
¥å·²å
å¼ï¼è§£éä»è´¹ä¸å±æ¨¡åä¸éæµæ¡£ä½ã",SIo="åè¯å·",AIo="ä¾å¦ é¶è¡æµæ°´ 20260907-001",TIo="è®°å½æ¶æ¬¾",RIo="è®°å½ä¸...",PIo="åæ¶",_Io="åæ¾ä¸...",jIo="åæ¾",NIo="å {{email}} åæ¾ ${{amount}}? è¿æ¯å¤§é¢æä½ã",DIo="æ æ¾ç¤ºåç§°",MIo="å è½½ä¸...",EIo="åæ° {{score}}",IIo="Email å·²éªè¯",OIo="æ¯",LIo="å¦",UIo="注å",BIo="æ³¨åæ¹å¼",FIo="æè¿ç»å½æ¹å¼",zIo="注åå¥å±",qIo="æ°æå¼å¯¼",HIo="è¯è¨ / æ¶åº",VIo="å ä»·æ¯ä¾",KI
843o="éçéå¶çç¥",GIo="éçéå¶çç¥å·²æ´æ°ã",WIo="å å
¥æ¶é´",YIo="仿ª",QIo="ä½é¢",XIo="é±å
䏿¶è´¹",ZIo="累计æ¶è´¹",JIo="累计å
å¼",eOo="å°åº",tOo="è¯è¨",nOo="ç´¯è®¡èµ é¢",aOo="ç´¯è®¡éæ¬¾",oOo="è¯·æ±æ°",sOo="Tokens",rOo="æä½",iOo="身份ä¸é£æ§",lOo="è§è²",cOo="ä½ çè§è²æ²¡æå¯æ§è¡æä½ã",dOo="æ¥æºæ¸ é",uOo="æ¥æºåå¸",mOo="ç´æ¥ / æªç¥",pOo="èªå®ä¹æ¥æºâ¦",fOo="设置",gOo="èªå¨è¯å«:{{source}}",hOo="UTM",yOo="é请人",vOo="夿³¨",bOo="ç»è¯¥ç¨æ·å 夿³¨,便äºè¯å«èº«ä»½",xOo="ä¿å夿³¨",$Oo="夿³¨å·²ä¿å",wOo="ææ å¤æ³¨",kOo="çé",COo={title:XEo,description:ZEo,email:JEo,searchEmail:eIo,status:tIo,statusEffect:nIo,risk:aIo,riskEffect:oIo,label:sIo,empty:rIo,country:iIo,lastLogin:lIo,action:cIo,view:dIo,deleted:uIo,setStatusAria:mIo,setStatusConfirm:pIo,grantCredit:fIo,grantDescription:gIo,amountUsd:hIo,amountPlaceholder:yIo,reason:vIo,reasonPlaceholder:bIo,grantKind:xIo,grantKindBonus:$Io,grantKindBonusHint:wIo,grantKindOffline:kIo,grantKindOfflineHint:CIo,referenceNo:SIo,referenceNoPlaceholder:AIo,recordPayment:TIo,recording:RIo,cancel:PIo,granting:_Io,grant:jIo,largeGrantConfirm:NIo,noDisplayName:DIo,loading:MIo,score:EIo,emailVerified:IIo,yes:OIo,no:LIo,signup:UIo,signupMethod:BIo,lastLoginMethod:FIo,signupBonus:zIo,onboarding:qIo,localeTz:HIo,markupRatio:VIo,rateLimitPolicy:KIo,rateLimitPolicyChanged:GIo,joined:WIo,never:YIo,walletBalance:QIo,walletSection:XIo,consumed:ZIo,recharged:JIo,location:eOo,preferredLocale:tOo,bonusGranted:nOo,refunded:aOo,requests:oOo,tokens:sOo,actionsSection:rOo,identitySection:iOo,role:lOo,noPermittedActions:cOo,acquisitionSource:dOo,acquisitionTitle:uOo,sourceDirect:mOo,sourceCustomPlaceholder:pOo,sourceSet:fOo,sourceCaptured:gOo,utm:hOo,referrer:yOo,note:vOo,notePlaceholder:bOo,noteSave:xOo,noteSaved:$Oo,noteEmpty:wOo,filters:kOo},SOo="äºä»¶åè°",AOo="Stripe Webhook äºä»¶ãæ¯æç¶æçéãéè¯å payload æ£æ¥ã",TOo="ç¶æ",ROo="äºä»¶ç±»å",POo="æ¥æ¶æ¶é´",_Oo="äºä»¶ç±»å",jOo="ç¶æ",NOo="模å¼",DOo="å°è¯æ¬¡æ°",MOo="éè¯",EOo="å·²å å
¥éè¯éå",IOo="äºä»¶ {{event}} å·²é置为 pendingï¼ä¸ä¸æ¬¡ä»»å¡è°åº¦ä¼å¤çã",OOo="éè¯å¤±è´¥",LOo="ææ Webhook äºä»¶ã",UOo="ç«¯ç¹æ³¨ååï¼Stripe äºä»¶ä¼æ¾ç¤ºå¨è¿éã",BOo="æ£å¨å è½½ payload...",FOo="æåé误",zOo="Payload (JSON)",qOo={title:SOo,description:AOo,statusFilter:TOo,eventTypeFilter:ROo,receivedAt:POo,eventType:_Oo,status:jOo,mode:NOo,attempts:DOo,retry:MOo,retrySubmittedTitle:EOo,retrySubmittedBody:IOo,retryFailedTitle:OOo,empty:LOo,emptyHint:UOo,detailLoading:BOo,lastError:FOo,payload:zOo},HOo="API key",VOo="10 ç§æ¿å°ç¬¬ä¸ä¸ª key",KOo="å¤å¶å¤±è´¥",GOo={label:"å
è®¸çæ¨¡å",allModels:"å
¨é¨æ¨¡å",allHint:"ç®å½ä¸çæææ¨¡åé½è¢«å
许ã",noModels:"ææ å¯ç¨æ¨¡åã",selected:"已鿩 {{count}} 个",someHint:"å
许 {{count}} 个模åã"},WOo={label:"æ ç¾",placeholder:"è¾å
¥æ ç¾åæå车",remove:"ç§»é¤"},YOo="å建å管çè´¦å·çº§ API keyï¼å¯è°ç¨ OneHop çå
¨é¨ç½å
³è½åã",QOo="å·æ°",XOo="é»è®¤ key",ZOo="Key åç§°",JOo="å建ä¸...",e3o="å建 key",t3o="å建 API key",n3o="ç¼è¾ API key",a3o="ç» key å½åå³å¯å建ãé¢åº¦åæææåªå¨éè¦æ¶å±å¼é«çº§è®¾ç½®ã",o3o="æåº¦ credit é¢åº¦",s3o="æææ",r3o="ä¸é",i3o="ä¿åä¸...",l3o="ä¿å",c3o="åæ¶",d3o="宿´ key",u3o="å¤å¶ API key",m3o="å·²å¤å¶",p3o="å¤å¶",f3o="å¯ä»¥ç°å¨å¤å¶ä¿åï¼ä¹å¯ä»¥ä¹åéæ¶å¨è¯¥ key çè¿æ¥ä¿¡æ¯éæ¥çã",g3o="æå·²ä¿å",h3o={title:"å·²ç¦ç¨ / å·²æ¤é",description:"å·²åç¨ææ¤éç keyãå¯éæ°å¯ç¨å·²ç¦ç¨ç,å·²æ¤éçä»
ä½è®°å½ä¿çã"},y3o={title:"ææ æ´»è· key",description:"å¨ä¸æ¹éæ°å¯ç¨æä¸ªå·²ç¦ç¨ç key,ææ°å»ºä¸ä¸ªã"},v3o={import:"导å
¥å° CCS",client:"CC Switch 客æ·ç«¯",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"å·²ç¨å ä½ç¬¦æå¼ CC Switchï¼è¯·å¨é£è¾¹ç²è´´ä½ ä¿åç API keyã",checking:"æ£æ¥å
¼å®¹æ§â¦",blocked:{title:"{{client}} ä¸è½ä½¿ç¨è¿æå¯é¥",body:"ã{{keyName}}ãçæ¨¡åèå´ä¸å
å« {{client}} å¯ç¨ç模åã导å
¥åï¼CC Switch æµè¯åå®é
请æ±é½ä¼å¤±è´¥ã",adjust:"è°æ´æ¨¡åèå´",forceImport:"ä»ç¶å¯¼å
¥ï¼å°æ æ³ä½¿ç¨ï¼"},pin:{title:"å°ä»¥ {{model}} 导å
¥ {{client}}",body:"ã{{keyName}}ãä¸å
å« {{client}} çé»è®¤æ¨¡åã以䏿¯ {{client}} èµ°è¿ä¸ªä¾åºåæ¶å档请æ±çæ å°ï¼",adjust:"è°æ´æ¨¡åèå´",confirm:"以 {{model}} 导å
¥"}},b3o="API key å 载失败",x3o="éè¯",$3o="ææ API key",w3o="å建第ä¸ä¸ª keyï¼å³å¯éè¿ OneHop å¼å§åé请æ±ã",k3o={search:"æç´¢",searchPlaceholder:"æç´¢åç§°æ key åç¼",status:"ç¶æ",allStatus:"å
¨é¨ç¶æ",clear:"æ¸
é¤çé",empty:"没æå¹é
è¿äºç鿡件ç key",emptyDescription:"æ¸
é¤æç´¢æç¶æçéå³å¯æ¥çå
¨é¨ keyã",mobileTitle:"çé"},C3o={active:"æ´»è·",inactive:"å·²ç¦ç¨",revoked:"å·²æ¤é",expired:"å·²è¿æ",quota_exhausted:"é¢åº¦èå°½"},S3o={label:"API key",tags:"æ ç¾",name:"åç§°",key:"Key",status:"ç¶æ",usage:"ç¨é",quota:"é¢åº¦",expires:"æææ",lastUsed:"æå使ç¨",created:"å建æ¶é´",action:"æä½"},A3o={today:"仿¥ {{requests}} 次 · {{credit}}",days30:"30 天 {{requests}} 次 · {{credit}}"},T3o={use:"è¿æ¥ä¿¡æ¯",edit:"ç¼è¾",enable:"å¯ç¨",disable:"ç¦ç¨",delete:"å é¤"},R3o="ä½¿ç¨ API key",P3o="ç¨è¿ä¸ª key è°ç¨ OneHop ç½å
³ã宿´ key å¯éæ¶å¨æ¤æ¥çã",_3o={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization 请æ±å¤´",env:"ç¯å¢åé",curl:"cURL",revealing:"è§£å¯ä¸â¦",fullKeyUnavailable:"该 key å·²æ æ³æ¾ç¤ºã请使ç¨ä½ ä¿åçå¼ï¼æå建ä¸ä¸ªæ°ç keyã",protocolEndpoints:"å议端ç¹"},j3o="æ¤é",N3o="确认æ¤é {{name}}
843? æ¤æä½æ æ³æ¢å¤ã",D3o="é«çº§è®¾ç½®",M3o={label:"模åèå´",all:"å
¨é¨æ¨¡å",limited:"éå®å°ç¹å®æ¨¡å",allHint:"æ¤ key å¯è°ç¨æææ¨¡å,å
æ¬ä¹åæ°å¢çã",snapshotHint:"åªå«ä½ å¾éçæ¨¡å;ä¹åæ°å¢ç模åä¸ä¼èªå¨å¹¶å
¥ã",snapshotHintEdit:"åªå«ä½ å¾éçæ¨¡å;æ°å¢æ¨¡åä¸ä¼èªå¨å¹¶å
¥ãåå°ãå
¨é¨æ¨¡åã伿¿æ¢æ¤ç½ååã",searchPlaceholder:"æç´¢æ¨¡åâ¦",selectAllResults:"å
¨éå½åç»æ({{count}})",selectedCount:"å·²é {{count}} / {{max}}",clear:"æ¸
空",hiddenSelected:"æ {{hidden}} / {{total}} 个已é被å½åçééè",selectVendor:"å
¨é {{vendor}},å·²é {{on}}/{{total}}",emptyTitle:"没æå¹é
çæ¨¡å",emptyDescription:"æ¢ä¸ªç±»åææç´¢è¯è¯è¯ã",loadFailed:"模åå 载失败",loadFailedHint:"éè¯,æååãå
¨é¨æ¨¡åãã",type:{all:"å
¨é¨",text:"ææ¬",image:"å¾ç",video:"è§é¢",embedding:"åé"},pickAtLeastOne:"请è³å°å¾éä¸ä¸ªæ¨¡å,æååãå
¨é¨æ¨¡åãã",limitReached:"已达 {{max}} 个模åä¸é"},E3o={title:"API Key å·²å建",subtitle:"{{name}} 已就绪 ââ ç°å¨æ¥å
¥å®ã",onceWarning:"ææä»
æ¬æ¬¡å¯è§,å
³éåä»å¯å次æ¥ç,ä½å»ºè®®ç°å¨å°±å¤å¶ä¿åã",connect:"æ¥å
¥",done:"宿"},I3o="IP",O3o="å·²äº {{date}} åé",L3o={title:HOo,emptyTitle:VOo,copyFailed:KOo,allowedModels:GOo,tags:WOo,description:YOo,refresh:QOo,defaultName:XOo,keyName:ZOo,creating:JOo,createKey:e3o,createTitle:t3o,editTitle:n3o,formDescription:a3o,monthlyCreditLimit:o3o,expiresAt:s3o,unlimited:r3o,saving:i3o,save:l3o,cancel:c3o,fullKeyTitle:d3o,copyApiKey:u3o,copied:m3o,copy:p3o,fullKeyDescription:f3o,savedIt:g3o,parked:h3o,noActive:y3o,ccswitch:v3o,loadFailed:b3o,retry:x3o,empty:$3o,emptyDescription:w3o,filters:k3o,status:C3o,table:S3o,usage:A3o,actions:T3o,useTitle:R3o,useDescription:P3o,use:_3o,revoke:j3o,revokeConfirm:N3o,advancedSettings:D3o,scope:M3o,created:E3o,lastUsedIp:I3o,revokedAt:O3o},U3o="审计æ¥å¿",B3o="ææä½åæ¶é´æ¥çé«é£é©ç®¡çåæä½ã",F3o="æä½",z3o="æ¸
é¤",q3o={ops_user_update_status:"ç¨æ·ç¶æå·²æ´æ°",ops_users_allowlist_add:"注ååå
¥å·²æ·»å ",ops_users_allowlist_update:"注ååå
¥å·²æ´æ°",ops_users_allowlist_invite:"注ååå
¥å·²é请",ops_users_allowlist_revoke:"注ååå
¥å·²ç§»é¤",ops_users_allowlist_restore:"注ååå
¥å·²æ¢å¤",ops_model_create:"模åå·²å建",ops_model_update:"模åå·²æ´æ°",ops_model_update_status:"模åç¶æå·²æ´æ°",sub2api_pool_create:"è·¯ç±å¯é¥æ± å·²å建",sub2api_pool_test:"è·¯ç±å¯é¥æ± å·²æµè¯",sub2api_pool_rotate_secret:"è·¯ç±å¯é¥å·²è½®æ¢"},H3o="审计æ¥å¿",V3o="ææ å®¡è®¡è®°å½",K3o="æ¶é´",G3o="䏥鿧",W3o="ç®æ ",Y3o={ai_model:"模å",sub2api_key_pool:"è·¯ç± key pool",sys_user:"ç¨æ·",wallet:"é±å
"},Q3o="ç®æ ç±»å",X3o="è¯·æ± ID",Z3o={title:U3o,description:B3o,action:F3o,clear:z3o,actions:q3o,label:H3o,empty:V3o,time:K3o,severity:G3o,target:W3o,targetTypes:Y3o,targetType:Q3o,requestId:X3o},J3o="ç»å½ OneHop",eLo="è¾å
¥éªè¯ç ",tLo="ä½¿ç¨ Google æé®ç®±ç»§ç»",nLo="è¾å
¥é®ç®±æ¥æ¶éªè¯ç ",aLo="è¾å
¥åéå° {{email}} ç 6 ä½éªè¯ç ",oLo="ä½¿ç¨ Google ç»§ç»",sLo="使ç¨é®ç®±ç»§ç»",rLo="æ",iLo="Email",lLo="åééªè¯ç ",cLo="åéä¸...",dLo="éªè¯",uLo="éªè¯ä¸...",mLo="{{seconds}} ç§åå¯éå",pLo="éæ°åééªè¯ç ",fLo="ç»§ç»å³è¡¨ç¤ºä½ 忿们ç",gLo="æå¡æ¡æ¬¾",hLo="éç§æ¿ç",yLo={signIn:"ç»å½",signOutFailed:"éåºç»å½å¤±è´¥",sendCodeFailed:"éªè¯ç åé失败",notAllowed:"该é®ç®±ææªå¼æ¾è®¿é®,请è系管çåç³è¯·ã",invalidCode:"éªè¯ç æ æ",codeIncorrect:"éªè¯ç é误,请éè¯",googleFailed:"Google ç»å½å¤±è´¥",verifyHuman:"è¯·å®æäººæºéªè¯åç»§ç»",verifyUnavailable:"人æºéªè¯ææ¶ä¸å¯ç¨,请æ¹ç¨ä¸æ¹ç Google ç»å½,æç¨åéè¯ã"},vLo={signInTitle:J3o,enterCodeTitle:eLo,methodIntro:tLo,emailStepIntro:nLo,codeIntro:aLo,continueGoogle:oLo,continueEmail:sLo,or:rLo,emailLabel:iLo,sendCode:lLo,sending:cLo,verify:dLo,verifying:uLo,resendIn:mLo,resendCode:pLo,termsPrefix:fLo,terms:gLo,privacy:hLo,errors:yLo},bLo="è´¦å",xLo="å
å¼ Creditsãå
æ¢ä¼æ ç å¹¶æ¥çé±å
æµæ°´ã",$Lo={title:"䏿¬¾é¢åº¦",subtitle:"ä»
å¯ç¨äºç¹å®æ¨¡åçèµ éé¢åº¦,ç¬ç«äºä½ çä½é¢ãäºä¸æ··ç®ã",onlyModels:"ä»
é {{models}}",onlyModelsGeneric:"å鿍¡å",validUntil:"æææè³ {{date}}",noExpiry:"æ°¸ä¸è¿æ",useInChat:"å»è¯ç¨"},wLo={bonuses:"èµ é",topups:"å
å¼",usage:"æ¶è"},kLo={available:"å·²å°è´¦",availableHint:"已计å
¥å¯ç¨ä½é¢",frozen:"å¾
å°è´¦(å»ç»)",frozenHint:"约 {{days}} 天åå°è´¦",frozenHintGeneric:"å»ç»ææ»¡åå°è´¦",title:"é请å¥å±",viewDetails:"æ¥çé请æç»"},CLo={noUsage:"æè¿ 30 å¤©ææ æ¶è",perDay:"æ¥å {{amount}}",daysLeft:"æå½åé度约å¯ç¨ {{days}} 天"},SLo={amountUsd:"éé¢(USD)",minAmountHint:"æä½å
å¼ {{amount}}ã",apply:"åºç¨",get:"å°è´¦",onehopCredits:"OneHop credits",pay:"æ¯ä»",poweredByStripe:"ç± Stripe ä¿é",poweredBy:"ç± {{provider}} ä¿é",secureCheckout:"å®å
¨æç®¡æ¶é¶å°",secureCheckoutShort:"å®å
¨æ¶é¶å°",taxExclusiveNotice:"ç¨è´¹å°å¨æ¶é¶å°ææ¨æå¨å°åºè®¡ç®,并卿¤éé¢ä¹å¤å¦è¡å æ¶ã",presets:"é¢è®¾éé¢",promoCode:"伿 ç ",promoCodePlaceholder:"è¾å
¥ä¼æ ç ",serviceFee:"æå¡è´¹",title:"å
å¼",topupAmount:"å
å¼éé¢",totalDue:"åºä»æ»é¢",payCta:"æ¯ä» {{amount}}",previewing:"æ ¡éªä¸â¦",discount:"伿 ç æµæ£",couponBelowMin:"æåéé¢è¿ä½,请æé«å
å¼é¢ææ´æ¢ä¼æ ç ã",maintenanceTitle:"æ¯ä»ææ¶ä¸å¯ç¨",maintenanceDescription:"æ¯ä»æå¡ææ¶åºäºæ
é,妿éè¦æ¯ä»,请éè¿ Telegram èç³»æä»¬ã",contactTelegram:"éè¿ Telegram èç³»æä»¬",alipay:"æ¯ä»å®",wechatPay:"微信æ¯ä»",crypto:"ç¨èæå¸æ¯ä»ï¼USDC / USDTï¼",payOnStripe:"æ¯ä»å¨ Stripe å®å
¨æ¶é¶é¡µå®æã",payOnProvider:"æ¯ä»å¨ {{provider}} å®å
¨æ¶é¶é¡µå®æã",payOnHostedCheckout:"æ¯ä»å¨å®å
¨æç®¡æ¶é¶é¡µå®æã",amountPrecision:"{{provider}} ä»
æ¯æå°æ°ç¹å两ä½çç¾å
éé¢ãè¯·è°æ´é颿伿 ç ã",couponBonus:"å èµ é¢åº¦",couponBonusExpiry:"å èµ é¢åº¦å°å¨ä
843»æ¬¾å {{days}} å¤©è¿æã",couponInvalid:"è¯¥ç æ æ³ä½¿ç¨ï¼è¯·æ¢ä¸ä¸ªç ã",couponErrors:{limitReached:"ä½ ä½¿ç¨è¯¥ç çæ¬¡æ°å·²è¾¾ä¸éã",invalid:"è¯¥ç æ ææä¸å¯ç¨ã",expired:"该ç å·²è¿æã",exhausted:"该ç 已被å
å®ã",unavailable:"è¯¥ç æ£å¨è¢«ä½¿ç¨ï¼è¯·ç¨ååè¯ã"},tierBonus:"å
å¼è¿å©",tierBonusExpiry:"å èµ é¢åº¦å°å¨ä»æ¬¾å {{days}} å¤©è¿æã",tierBonusRestricted:"è¿å©é¢åº¦ä»
å¯ç¨äº:{{models}}ã",nextTierPercent:"åå
{{amount}} å³å¯è·å¾ {{percent}}% è¿å©é¢åº¦ã",nextTierBonus:"åå
{{amount}} å³å¯è·å¾ {{bonus}} è¿å©é¢åº¦ã",tierCapReached:"ä½ å·²é¢æ»¡æ¬æ´»å¨çè¿å©ä¸éã"},ALo="æ·»å Credits",TLo="å建ä¸...",RLo="å¯ç¨ Credit",PLo="å
å¼",_Lo="ç± Stripe æä¾æ¯ä»",jLo="éé¢(USD)",NLo="é¢è®¾å
å¼éé¢",DLo="å
æ¢ä¼æ ç ",MLo="伿 ç ",ELo="å
æ¢ä¸...",ILo="å
æ¢",OLo="伿 ç å·²å
æ¢ï¼ä½é¢æ£å¨å·æ°ã",LLo="æ£å¨è·³è½¬å°å®å
¨ checkout...",ULo="è´¦åæè¦å 载失败",BLo="å
å¼å¤±è´¥",FLo="è´¦åæ´»å¨æ ç¾é¡µ",zLo="交æ",qLo="Credit åæ¾",HLo="交æç±»å",VLo="æ¥æº",KLo="ææ äº¤æ",GLo="å
å¼ãæ£è´¹ååæ¾è®°å½ä¼æ¾ç¤ºå¨è¿éã",WLo="è´¦æ¬è®°å½",YLo="æ¶é´",QLo="ç±»å",XLo="éé¢",ZLo="ä½é¢",JLo="ææ åæ¾è®°å½",e4o="注åå¥å±ã伿 ç åäººå·¥èµ é伿¾ç¤ºå¨è¿éã",t4o="ç¶æ",n4o={successTitle:"å·²æ¶å°ä»æ¬¾",polling:"æ£å¨ä¸ºä½ çé±å
å
¥è´¦...约 30 ç§ã",delayed:"å
¥è´¦è¾æ
¢ã请ç¨åå·æ°ï¼ææ¥ç Stripe æ¶æ®ã",cancelledTitle:"仿¬¾å·²åæ¶",cancelledBody:"æªäº§çæ£æ¬¾ãåå¤å¥½åå¯éæ°å°è¯ã",failedTitle:"æ¯ä»å¤±è´¥",failedBody:"æ¬æ¬¡æ¯ä»æªè½å®æï¼Credit æªå
¥è´¦ãå¯ä»¥éè¯ï¼ææ¢ä¸ç§æ¯ä»æ¹å¼ã"},a4o={text:"Credits æ¯é¢ä»æå¡ä½é¢ï¼ä¸æ¯é¶è¡å款ãå·²æ¶è´¹ç Credits ä¸å¯éæ¬¾ãææä»·æ ¼ä»¥ USD 计价ã详æ
请è§",tosLink:"æ¡æ¬¾"},o4o="æ¶æ®",s4o="æå¼ä¸...",r4o="æ æ³æå¼è´¦åå
¥å£",i4o={title:"æè¿å
å¼",subtitle:"æè¿ 90 å¤©ãæªæ¶è´¹ä½é¢éæ¶å¯éã",loading:"æ£å¨å è½½å
å¼è®°å½...",date:"æ¥æ",amount:"éé¢",credits:"Credits",status:"ç¶æ",refund:"鿬¾",alreadyRefunded:"已鿬¾",windowExpired:"鿬¾çªå£å·²è¿æï¼24 å°æ¶ï¼",confirmTitle:"ç¡®è®¤éæ¬¾",confirmBody:"鿬¾å°ç± Stripe å¨ 1-3 ä¸ªå·¥ä½æ¥å
å¤çãç¨æ·èªå©åèµ·ç鿬¾ä¼æ£é¤å¹³å°æç»è´¹({{fee}})ã",amountLabel:"鿬¾éé¢ (USD)",maxLabel:"æå¤ ${{value}}",requestedLabel:"ç³è¯·é款éé¢",platformFeeLabel:"æç»è´¹({{fee}})",cardReturnLabel:"éåå°ä½ çé¶è¡å¡",bonusForfeitureHint:"æ¬æ¬¡å
å¼é带çä¿é Credits 伿æ¯ä¾ä½åºã",cancel:"åæ¶",confirm:"åèµ·éæ¬¾",submitting:"æäº¤ä¸...",refundSubmittedTitle:"鿬¾å·²æäº¤",refundSubmittedBody:"Stripe ä¼å¨ 1-3 ä¸ªå·¥ä½æ¥å
ææ¬¾é¡¹éåä½ çé¶è¡å¡ã",refundFailedTitle:"鿬¾å¤±è´¥",balance:"å
¥è´¦",confirmAmount:"鿬¾ {{amount}}"},l4o={title:"ä½é¢æé",description:"ä½é¢è¿ä½æ¶éç¥ä½ ã",emailLabel:"é®ä»¶æé",webhookLabel:"Webhook",autorechargeLabel:"èªå¨å
å¼",autorechargeUnsupported:"å½åæ¯ä»æ¸ é䏿¯æèªå¨å
å¼ã",autorechargeAddCardHint:"ç»å®é¶è¡å¡,ä½é¢è¿ä½æ¶èªå¨å
å¼",autorechargeTopUp:"æ¯æ¬¡å
å¼",autorechargeWhenBelow:"å½ä½é¢è·ç ´",autorechargeThreshold:"èªå¨å
å¼éå¼",autorechargeAmount:"èªå¨å
å¼éé¢",autorechargeDisabledFailures:"èªå¨å
å¼å è¿ç»å¤æ¬¡æ£æ¬¾å¤±è´¥å·²åç¨ãè¯·æ´æ¢é¶è¡å¡åéæ°å¼å¯ã",autorechargeIncomplete:"请填åèªå¨å
å¼éé¢åé«äº $0 çéå¼ã",test:"æµè¯",testing:"æµè¯ä¸â¦",testQueued:"æµè¯æéå·²å
¥é ââ å»ä½ ç端ç¹ç¡®è®¤æ¶å°",testFailed:"æµè¯æéå
¥é失败",signingSecret:"ç¾åå¯é¥",secretOnSave:"ä¿ååä¼çæç¾åå¯é¥ã",rotate:"è½®æ¢",secretRotated:"ç¾åå¯é¥å·²è½®æ¢",rotateFailed:"å¯é¥è½®æ¢å¤±è´¥",secretCopied:"ç¾åå¯é¥å·²å¤å¶",saved:"æé设置已ä¿å",saveFailed:"æé设置ä¿å失败",loadFailed:"æ æ³å è½½æé设置",thresholdRequired:"请设置é«äº $0 çéå¼ä»¥å¯ç¨æéã",webhookUrlRequired:"请填å https:// å¼å¤´ç webhook å°åã",thresholdOrderBad:"æééå¼å¿
é¡» ⥠èªå¨å
å¼éå¼ã",card:"é¶è¡å¡",changeCard:"æ´æ¢",removeCard:"ç§»é¤",cardRemoved:"é¶è¡å¡å·²ç§»é¤",cardRemoveFailed:"ç§»é¤é¶è¡å¡å¤±è´¥",cardSetupFailed:"ç»å¡å¤±è´¥",lowBalanceGroup:"ä½ä½é¢æé",thresholdLabel:"æééå¼"},c4o={title:"交æåå²",idSearch:"交æ ID",amountRange:"éé¢èå´ (USD)",min:"æå°å¼",max:"æå¤§å¼",clear:"æ¸
é¤",retry:"éè¯",empty:"æ¤èå´å
ææ äº¤æ",date:"æ¥æ",typeMethod:"ç±»å / æ¹å¼",description:"说æ",action:"æä½",prevMonth:"ä¸ä¸ªæ",nextMonth:"ä¸ä¸ªæ",viewInvoices:"æ¥çå票",emptyNew:"è¿æ²¡æäº¤æ",emptyNewDesc:"å
å¼åï¼ä½ çå
å¼ãèµ éå鿬¾è®°å½ä¼æ¾ç¤ºå¨è¿éã",topUpCta:"å»å
å¼",emptyFiltered:"没æå¹é
ç交æ",emptyFilteredDesc:"è¯è¯æ¸
é¤çéææ¾å®½æ¶é´èå´ã",clearFilters:"æ¸
é¤çé"},d4o="ä½é¢åä½ï¼å¯è½å½±åè°ç¨ã建议尽快å
弿å¼å¯èªå¨å
å¼ã",u4o="ä½é¢åä½ï¼å¯è½å½±åè°ç¨ã请尽快å
å¼ä»¥ç»§ç»ä½¿ç¨ã",m4o={creditPurchase:"å
å¼",topupBonus:"å
å¼å¥å±",signupBonus:"注åå¥å±",referralClawback:"é请 credit 忣ï¼é款ï¼",couponBonus:"å èµ ç å¥å±",referralCashback:"é请è¿å©",referralInviteeCashback:"åéå
å¼å¥å±",redeemCode:"å
æ¢ç {{code}}",redeemCodeReversal:"å
æ¢ç æ¤é",stripeRefund:"Stripe 鿬¾",bonusReversal:"鿬¾åæ¶è
843µ é"},p4o={card:"é¶è¡å¡",alipay:"æ¯ä»å®",wechatPay:"微信æ¯ä»"},f4o={title:"å
æ¢ç ",description:"æå
æ¢ç ?è¾å
¥å³å¯æé¢å¼å
å
¥ä½ çä½é¢ã",placeholder:"ä¾å¦:OHR-XXXXXXXX",redeem:"å
æ¢",redeeming:"å
æ¢ä¸â¦",success:"å·²å
æ¢ {{amount}} å°ä½é¢",successRestricted:"å·²å°è´¦ {{amount}},ä»
é {{models}} 使ç¨",successValidity:"æææè³ {{date}}ã",errors:{invalid:"该å
æ¢ç æ ææä¸å¯ç¨ã",expired:"该å
æ¢ç å·²è¿æã",alreadyRedeemed:"该å
æ¢ç 已被å
æ¢ã",perUserLimit:"ä½ å·²è¾¾å°è¯¥æ¹æ¬¡çå
æ¢ä¸éã"}},g4o={title:bLo,description:xLo,earmarked:$Lo,breakdown:wLo,referralRewards:kLo,burnRate:CLo,topup:SLo,addCredits:ALo,creating:TLo,availableCredit:RLo,topUp:PLo,poweredByStripe:_Lo,amountUsd:jLo,presetAmounts:NLo,redeemCoupon:DLo,couponCode:MLo,redeeming:ELo,redeem:ILo,couponRedeemed:OLo,redirecting:LLo,summaryFailed:ULo,topupFailed:BLo,tabsLabel:FLo,transactions:zLo,creditGrants:qLo,transactionType:HLo,source:VLo,noTransactions:KLo,noTransactionsDescription:GLo,ledgerEntries:WLo,time:YLo,type:QLo,amount:XLo,balance:ZLo,noGrants:JLo,noGrantsDescription:e4o,status:t4o,topupBanner:n4o,compliance:a4o,receipts:o4o,openingPortal:s4o,portalFailed:r4o,recentTopups:i4o,alerts:l4o,history:c4o,lowBalanceWarning:d4o,lowBalanceWarningNoAutoTopup:u4o,ledgerDesc:m4o,paymentMethod:p4o,redeemCard:f4o},h4o="å¾è¡¨å 载失败",y4o="ææ æ°æ®",v4o="ææ¶æ²¡æå¯ç»å¶çæ°æ®ã",b4o={errorTitle:h4o,emptyTitle:y4o,emptyDescription:v4o},x4o={copy:"å¤å¶",regenerate:"éæ°çæ",shareComingSoon:"å享ï¼å³å°ä¸çº¿ï¼",download:"ä¸è½½",copyLink:"å¤å¶é¾æ¥",newChat:"æ°å¯¹è¯",deleteChat:"å é¤å¯¹è¯",openConversationList:"æå¼å¯¹è¯å表",openSettings:"对è¯è®¾ç½®",collapseSidebar:"æ¶èµ·ä¾§æ ",expandSidebar:"å±å¼ä¾§æ ",cancel:"åæ¶",apply:"åºç¨",newChatTooltip:"æ°å»ºå¯¹è¯",copied:"å·²å¤å¶"},$4o={placeholderReady:"å¼å§æ°ç对è¯...",placeholderNoModel:"å
å¨ä¸æ¹éæ©ä¸ä¸ªæ¨¡å",placeholderComingSoon:"该模åå³å°ä¸çº¿ï¼è¯·å
éæ©å
¶ä»æ¨¡å",attachmentTooLarge:"æä»¶è¶
è¿ {{limit}}ï¼æ æ³ä¸ä¼ ",attachmentUnsupported:"䏿¯æçæä»¶ç±»åãè¯·ä½¿ç¨ PNGãJPEGãWebPãGIFãMP4ãWebM æ MOVã",unsupportedVision:"å½å模å䏿¯æå¾çæè§é¢è¾å
¥ãæå
¥æä»¶å请å
åæ¢æ¨¡åã",send:"åé",abort:"䏿¢",attachImage:"æ·»å å¾ç",attachMedia:"æ·»å å¾çæè§é¢",removeAttachment:"ç§»é¤",shortcutSend:"åé",shortcutNewLine:"æ¢è¡",shortcutAbort:"䏿¢",frameFirst:"é¦å¸§",frameLast:"尾帧",frameReference:"åèå¾",imageMode:"å¾ççæ",videoMode:"è§é¢çæ",reasoning:"æè",reasoningOff:"å
³é",reasoningAlways:"å§ç»å¼å¯",placeholderTopupRequired:"该模åä»
åå·²å
å¼è´¦æ·å¼æ¾ ââ å
å¼åå³å¯å¨è¿é使ç¨"},w4o={modelUnavailable:"模å {{model}} æä¸å¯ç¨ï¼å·²ä¸ºä½ ä¿çè¾å
¥ã",rateLimited:"å¹¶å请æ±å¤ªå¤ï¼è¯·ç¨ååè¯ã",accountDisabled:"è´¦æ·å·²è¢«ç¦ç¨ï¼æ æ³ç»§ç»å¯¹è¯ã",attachmentsUploading:"å¾çè¿å¨ä¸ä¼ ï¼è¯·ç¨åååéã",attachmentsFailed:"æå¾çä¸ä¼ 失败ï¼è¯·å é¤åéè¯ååéã"},k4o={title:"å¨è¿éå¼å§æµè¯ä»»ææ¨¡åã",body:"ç´æ¥ä¸ä»»ææ¨¡å对è¯ï¼ç¨éä»ä½ ç PAYG é±å
æ£è´¹ã",starters:{compareModels:"ç¨åä¸ä¸ªä»£ç 任塿¯è¾ GPT-5.5 å Claude Opus",analyzeImage:"åæä¸å¼ æ¶æå¾å¹¶æ»ç»é£é©",draftPrompt:"为客æ agent èµ·è䏿®µ system prompt",generateImage:"çæä¸å¼ å¹²å SaaS 飿 ¼ç产å主è§è§å¾"}},C4o={untitled:"æªå½å对è¯",deleteConfirm:"å é¤ã{{title}}ãï¼",emptyTitle:"å°æ 对è¯",emptyBody:"使ç¨ä¸æ¹ç + æ°å¯¹è¯å¼å§ã",listLabel:"对è¯å表",groups:{today:"ä»å¤©",yesterday:"æ¨å¤©",earlier:"æ´æ©"},menu:{rename:"éå½å",delete:"å é¤"},deleteTitle:"å é¤å¯¹è¯ï¼"},S4o={paygWallet:"PAYG é±å
"},A4o={chooseModel:"éæ©æ¨¡å",searchPlaceholder:"æç´¢æ¨¡å...",emptyTitle:"æ²¡ææ¾å°æ¨¡å",emptyBody:"æ¢ä¸ªæç´¢è¯æ Tab è¯è¯ã",protocols:"{{count}} 个åè®®",context:"{{value}} ctx",tabs:{all:"å
¨é¨",text:"ææ¬",image:"å¾ç",video:"è§é¢"},maxOut:"è¾åº {{value}}",unavailable:"å³å°ä¸çº¿",requiresTopup:"éå
å¼è§£é"},T4o={title:"对è¯è®¾ç½®",protocol:"åè®®",unlimited:"æ éå¶",fields:{memory_limit:{label:"对è¯è®°å¿"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"æå¡æ¡£ä½",options:{standard:"æ å",priority:"ä¼å
",flex:"å¼¹æ§"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"ä¾
843å¦ 2000"},tools:{label:"å·¥å
· (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},stop_sequences:{label:"Stop Sequences",placeholder:"éå·åéï¼ä¾å¦ END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"è¾å
¥ system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"éå¼",explicit:"æ¾å¼"}},image_size:{label:"å¾çå辨ç"},image_resolution:{label:"å辨ç"},image_quality:{label:"å¾çè´¨é",options:{Auto:"èªå¨",auto:"èªå¨",low:"ä½",medium:"ä¸",high:"é«"}},video_ratio:{label:"宽髿¯"},video_resolution:{label:"è§é¢å辨ç"},video_duration_seconds:{label:"æ¶é¿"},image_count:{label:"çææ°é"},image_aspect_ratio:{label:"宽髿¯"},reasoning_effort:{label:"æ¨ç强度",options:{none:"å
³é",minimal:"æç®",low:"ä½",medium:"ä¸",high:"é«",xhigh:"æé«",max:"æå¤§"}},reasoning_pro:{label:"Pro 模å¼"},reasoning_context:{label:"æ¨çä¸ä¸æ",options:{auto:"èªå¨",current_turn:"å½å轮次",all_turns:"å
¨é¨è½®æ¬¡"}},reasoning_enabled:{label:"æè"},reasoning_always:{label:"æè",value:"å§ç»å¼å¯"}}},R4o={estimating:"ä¼°ç®ä¸...",settling:"ç»ç®ä¸...",input:"è¾å
¥",output:"è¾åº",milliseconds:"ms",realCost:"å®è´¹",latency:"å»¶è¿",logDetail:"æ¥å¿è¯¦æ
"},P4o={copied:"å¾ç龿¥å·²å¤å¶",expired:"å¾ç龿¥å·²è¿æãå¤å¶é¾æ¥éæ°æå¼ï¼æéæ°çæã",attachment:"[å¾çéä»¶]"},_4o={message:"æ¬æ¬¡å¯¹è¯ä»ä½ ç PAYG é±å
计费",balance:"ä½é¢",billingLink:"æ¥ç计费",dismiss:"æç¥éäº"},j4o={badge:"䏿¬¾ {{amount}}",bannerTitle:"æä¸æ¬¾é¢åº¦å¯ç¨",bannerBody:"ä½ æ {{amount}} ä¸å±é¢åº¦å¯ç¨äºæ¤æ¨¡åï¼å°ä¼å
æµæ£ã"},N4o={trigger:"å¤å¶ä¸ºä»£ç ",copied:"å·²å¤å¶ä¸º {{format}}",failed:"å¤å¶å¤±è´¥",failedDescription:"æµè§å¨å¯è½é»æ¢äºåªè´´æ¿æéã"},D4o={interrupted:"[已䏿]",sending:"åéä¸"},M4o={title:"æèè¿ç¨",duration:"æèäº {{seconds}}s"},E4o={title:"è§é¢çæå³å°ä¸çº¿",body:"æ¤æ¨¡åå·²ååºä¾æ¢ç´¢ï¼ä½å°æªå¯ç¨è§é¢åéã",switchToText:"åæ¢å°ææ¬æ¨¡å"},I4o={imageGenerating:"æ£å¨çæå¾ç",videoGenerating:"æ£å¨çæè§é¢",stage:{queued:"æéä¸",routing:"è·¯ç±ä¸",generating:"çæä¸",storing:"åå¨ä¸",settling:"ç»ç®ä¸"}},O4o={INSUFFICIENT_CREDITS:"ä½é¢ä¸è¶³",RATE_LIMITED:"请æ±è¿äºé¢ç¹",rate_limit_error:"请æ±è¿äºé¢ç¹",MODEL_NO_VISION:"该模å䏿¯æå¾çè¾å
¥",CONTENT_REFUSED:"模åæç»äºæ¤è¯·æ±",EMPTY_RESPONSE:"模åè¿åäºç©ºå
容",upstream_error:"䏿¸¸æå¡è¿åé误",overloaded_error:"䏿¸¸æå¡ç¹å¿",upstream_invalid_json:"䏿¸¸ååºå¼å¸¸",stream_read_error:"ååºè¯»å䏿",invalid_api_key:"䏿¸¸é´æå¤±è´¥",model_unavailable:"æ¨¡åææ¶ä¸å¯ç¨",no_image:"æªè½çæå¾ç",no_body:"䏿¸¸æ ååº",http_error:"请æ±å¤±è´¥",session_create_failed:"ä¼è¯å建失败"},L4o={title:"å
å¼åå³å¯ä½¿ç¨è¯¥æ¨¡å",body:"å®åªåå·²å
å¼è´¦æ·å¼æ¾ãå
å¼ä»»æéé¢åç«å³è§£é,ä½é¢ç
§å¸¸æé计费ã",cta:"å»å
å¼"},U4o={actions:x4o,composer:$4o,errors:w4o,empty:k4o,sidebar:C4o,header:S4o,modelSelector:A4o,settings:T4o,metrics:R4o,image:P4o,payg:_4o,earmark:j4o,copyAsCode:N4o,status:D4o,thinking:M4o,video:E4o,media:I4o,errorCodes:O4o,topupLock:L4o},B4o="å è½½ä¸...",F4o="è´¦å·",z4o="è¯è¨",q4o="ç»å½",H4o="éåºç»å½",V4o="æ£å¨éåº...",K4o="ä¿åæ´æ¹",G4o="ä¿åä¸...",W4o="å·²ä¿åã",Y4o="è¿å",Q4o="éè¯",X4o="å
弿å¡è´¹ç«å 5%ã",Z4o="ä¿å",J4o="åæ¶",e5o="æ¸
é¤",t5o="éç½®",n5o="å·²å¤å¶",a5o="å¤å¶å¤±è´¥",o5o="å
³é",s5o="æ»è®¡",r5o={timestamp:"æ¶é´æ³",local:"æ¬å°æ¶é´",relative:"ç¸å¯¹æ¶é´"},i5o="å¤å¶",l5o={title:"è¯·å¨æµè§å¨ä¸æå¼",description:"ä½ æ£å¨ <b>App å
ç½®æµè§å¨</b>䏿弿¬é¡µ,<b>Google ç»å½å人æºéªè¯å¨è¿éæ æ³ä½¿ç¨</b>ã请ç¨ç³»ç»æµè§å¨æå¼ä»¥ç»§ç»ã",hintWechat:"ç¹å»å³ä¸è§ ··· èå,éæ©ã卿µè§å¨ä¸æå¼ãã",hintGeneric:"éè¿å³ä¸è§èåéæ©ã卿µè§å¨ / Safari 䏿å¼ãã",copyLink:"å¤å¶é¾æ¥",continueAnyway:"ä»è¦ç»§ç»"},c5o="å
¨é¨",d5o="å·²çé",u5o="å¯é",m5o="ç§»é¤",p5o={loading:B4o,account:F4o,language:z4o,signIn:q4o,signOut:H4o,signingOut:V4o,saveChanges:K4o,saving:G4o,saved:W4o,back:Y4o,retry:Q4o,topUpPromo:X4o,save:Z4o,
843cancel:J4o,clearAll:e5o,reset:t5o,copied:n5o,copyFailed:a5o,dismiss:o5o,total:s5o,time:r5o,copy:i5o,inAppBrowser:l5o,all:c5o,active:d5o,optional:u5o,remove:m5o},f5o="仪表ç",g5o="å¨ä¸ä¸ªæ§å¶å°éæ¥ç creditãç¨éå gateway å
³é®å¥åº·ç¶æã",h5o="å建 API key",y5o={creditBalance:"Credit ä½é¢",requestsToday:"仿¥è¯·æ±",activeApiKeys:"æ´»è· API keys"},v5o={title:"ç¨éè¶å¿",description:"æè¿ 14 天ç请æ±éå计费 creditã",viewUsage:"æ¥çç¨é",loading:"æ£å¨å è½½ç¨éè¶å¿",empty:"ææ ç¨é",emptyDescription:"å¼å§åé请æ±åï¼è¿é伿¾ç¤ºç¨éã"},b5o={title:"Credit æ´»è·åº¦",description:"æè¿ 90 天æ¯å¤©ç计费 creditã",total:"90 天å计",loading:"æ£å¨å 载活è·åº¦",activeDays:"æè¿ {{days}} 天å
æ {{count}} ä¸ªæ´»è·æ¥",less:"å°",more:"å¤"},x5o={title:"ç¨é使",description:"ææ¶è强度ãtoken è§æ¨¡åä¸»è¦æ¨¡åå缩å°ä¸å±ã",activeDays:"æ´»è·å¤©æ°",ofDays:"å
± {{days}} 天",avgDailyCredit:"æ¥å credit",nonZeroDays:"ææ´»è·æ¥è®¡ç®",peakDay:"峰弿¥",noPeak:"ææ ç¨é",tokens:"Tokens",topModel:"ä¸»è¦æ¨¡å",creditShare:"计费 credit å æ¯"},$5o={title:"å¿«éå¥åº·ç¶æ",requests7d:"7 æ¥è¯·æ±",creditToday:"仿¥æ¶è credit",credit7d:"7 æ¥æ¶è credit"},w5o={title:"æè¿è¯·æ±",description:"ä½ ç key æè¿åèµ·ç gateway è°ç¨ã",viewRecords:"æ¥çè®°å½",table:{label:"æè¿è¯·æ±",model:"模å",status:"ç¶æ",tokens:"Tokens",credit:"Credit",time:"æ¶é´",apiKey:"API key"},empty:"ææ è¯·æ±",emptyDescription:"å建 API key å¹¶åé请æ±åï¼æè¿è°ç¨ä¼æ¾ç¤ºå¨è¿éã"},k5o={title:"åé第ä¸ä¸ªè¯·æ±",description:"å
¼å®¹ OpenAIãå建 keyï¼è®¾ç½® {{env}}ï¼ç¶åè°ç¨ gatewayã"},C5o={credit:"Credit",requests:"请æ±"},S5o={title:f5o,description:g5o,createApiKey:h5o,cards:y5o,usageTrend:v5o,activity:b5o,usageMix:x5o,quickHealth:$5o,recent:w5o,firstRequest:k5o,tooltip:C5o},A5o="éæ©å
¨é¨è¡",T5o="éæ©ç¬¬ {{row}} è¡",R5o="å 载失败",P5o="ææ æ°æ®",_5o="没æå¯æ¾ç¤ºçè®°å½ã",j5o="æ´å¤è¯¦æ
",N5o="è¿æ {{count}} 项详æ
",D5o="æå¼è¯¦æ
",M5o={selectAllRows:A5o,selectRow:T5o,errorTitle:R5o,emptyTitle:P5o,emptyDescription:_5o,moreDetails:j5o,moreDetailsWithCount:N5o,openRow:D5o},E5o="æè¿ 1 å°æ¶",I5o="ä»å¤©",O5o="æ¨å¤©",L5o="æè¿ 7 天",U5o="æè¿ 30 天",B5o="æ¬æ",F5o="ææä»½",z5o="èªå®ä¹",q5o="å
¨é¨æ¶é´",H5o="éæ©æ¥æ",V5o="åæ¶",K5o="åºç¨",G5o="å¼å§æ¥æå¿
é¡»æ©äºç»ææ¥æã",W5o="æ¶é´èå´é¢è®¾",Y5o="ä¸ä¸ªæ",Q5o="ä¸ä¸ªæ",X5o={last1h:E5o,today:I5o,yesterday:O5o,last7d:L5o,last30d:U5o,thisMonth:B5o,byMonth:F5o,custom:z5o,all:q5o,selectDate:H5o,cancel:V5o,apply:K5o,reversedError:G5o,presetsAriaLabel:W5o,previousMonth:Y5o,nextMonth:Q5o},Z5o="è´¦å·ä¸å¯ç¨",J5o="è´¦å·æ£å¨åå§å",eUo={title:"è´¦å·å·²æå",description:"è¿ä¸ªè´¦å·ä»ç¶å¯ä»¥ç»å½ï¼ä½æ§å¶å°è®¿é®å gateway 请æ±å·²ç»æåã",detail:"å¦æä½ è®¤ä¸ºè¿æ¯è¯¯æä½ï¼è¯·ä½¿ç¨å½åè´¦å·é®ç®±èç³» supportã"},tUo={accountUnavailable:Z5o,accountInitializing:J5o,accountRestricted:eUo},nUo="å
è´¹é¢åº¦",aUo="为æå®æ¨¡åæ¯æ¥åæ¾çå
è´¹ token é¢åº¦,èªå¨å·æ°,ä¸ä»ä½ çé±å
æ£è´¹ã",oUo="æ æ³å è½½ä½ çå
è´¹é¢åº¦ã",sUo="å
¨é¨æ¨¡å",rUo="æ´»å¨äº {{date}} ç»æ",iUo={daily:"æ¯æ¥",weekly:"æ¯å¨"},lUo={daily:"æ¯æ¥å·æ°",weekly:"æ¯å¨å·æ°",localTime:"ä½ çæ¬å°æ¶é´ {{time}}",countdown:"è·ä¸æ¬¡å·æ° {{duration}}",refreshingSoon:"å³å°å·æ°"},cUo={title:"ææ è¿è¡ä¸çå
è´¹é¢åº¦æ´»å¨",description:"æå
è´¹é¢åº¦æ´»å¨è¿è¡æ¶,ä½ çæ¯æ¥é¢åº¦ä¼æ¾ç¤ºå¨è¿éã"},dUo={title:"ä½ çè´¦å·å·²æååæ¾å
è´¹é¢åº¦",body:"该账å·çä¼¼æ¹é注åçä¸é¨å,å·²ææ¶æåå
è´¹åæ¾ãå¦æè¯¯ä¼,请èç³»"},uUo="tokens",mUo="仿¥å©ä½ {{value}} tokens",pUo={label:"ç¨å®æ¶é®ä»¶æé",hint:"仿¥å
è´¹é¢åº¦ç¨å®æ¶,ç»ä½ åä¸å°é®ä»¶æéã"},fUo={crg_freetoken_daily_cn5:"å½äº§æ¨¡å · æ¯æ¥å
è´¹ Token"},gUo={title:nUo,description:aUo,loadFailed:oUo,allModels:sUo,campaignEnds:rUo,cadence:iUo,refresh:lUo,empty:cUo,paused:dUo,tokensUnit:uUo,remainingToday:mUo,emailToggle:pUo,campaigns:fUo},hUo="æ¥å¿",yUo="æ¥çæ¯æ¡è¯·æ±çææ¬ãå»¶è¿ãtokensãç¶æåè·¯ç±ä¿¡å·ã",vUo={copiedCurl:"å·²å¤å¶ curl",copiedId:"å·²å¤å¶è¯·æ± ID",copyCurl:"å¤å¶ä¸º curl",copyFailed:"å¤å¶å¤±è´¥",copyId:"å¤å¶è¯·æ± ID",menu:"è¡æä½",openTab:"卿°æ ç¾é¡µæå¼"},bUo={prompt:"Prompt",ratio:"å½ä¸ç",read:"ç¼å读å",title:"ç¼åå½ä¸ç"},xUo={confirm:"åæ¶ä»»å¡",failed:"åæ¶ä»»å¡å¤±è´¥",keep:"ä¿ç",message:"该任å¡ä»å¨æéä¸ãåæ¶åå°ä¸åå¤ç,ä¹ä¸ä¼äº§çæ£è´¹ã",success:"ä»»å¡å·²åæ¶",title:"åæ¶ä»»å¡?",pending:"åæ¶ä¸..."}
843,$Uo={cacheHit:"ç¼åå½ä¸",cost:"ææ¬",ip:"IP",latency:"æ»èæ¶",model:"模å",source:"æ¥æº",status:"ç¶æ",stream:"æµå¼",time:"æ¶é´",tokens:"Tokens",tps:"åå"},wUo={trigger:"å设置"},kUo={body:"éè¿ OneHop åèµ·ä¸æ¬¡è¯·æ±,è®°å½å°±ä¼åºç°å¨è¿éã",title:"æ¤åºé´å
ææ æ¥å¿"},CUo={all:"å
¨é¨",apiKey:"API key",cost:"ææ¬(USD)",desktopDateRangeAria:"éæ©æ¡é¢ç«¯æ¥æèå´",finishReason:"ç»æåå ",latency:"èæ¶(s)",max:"æå¤§",min:"æå°",mobileDateRangeAria:"éæ©ç§»å¨ç«¯æ¥æèå´",model:"模å",modelsSelected:"å·²é {{count}} 个",more:"æ´å¤çé",refresh:"å·æ°",request:"æè¯·æ± ID æç´¢",requestIdLabel:"è¯·æ± ID",status:"ç¶æ",stream:"æµå¼",time:"æ¶é´",type:"ç±»å",mobileTitle:"çé"},SUo={requests:"æ¡è®°å½(æ¬é¡µ)",times:"æ¶é´æ¾ç¤ºä¸º"},AUo={rowsPer:"æ¯é¡µ"},TUo={all:"å
¨é¨æ¶é´",custom:"èªå®ä¹",last1h:"æè¿ 1 å°æ¶",last30d:"æè¿ 30 天",last7d:"æè¿ 7 天",thisMonth:"æ¬æ",today:"ä»å¤©",yesterday:"æ¨å¤©"},RUo={title:"客æ·ç«¯",unknownShort:"æªç¥",unknown:"æªä¸æ¥ user-agent"},PUo={output:"è¾åº tokens",rate:"éç",title:"åå",window:"çæçªå£"},_Uo={title:"请æ±",openDetail:"æå¼è¯·æ±è¯¦æ
",copy:"å¤å¶ ID",copied:"å·²å¤å¶",copyFailed:"å¤å¶å¤±è´¥",close:"å
³é",loading:"å è½½ä¸â¦",response:"ååº",sections:{request:"请æ±",routing:"è·¯ç±",tokens:"Tokens",cost:"ææ¬æå",performance:"æ§è½",error:"é误",outcome:"ç»æ",multimodal:"夿¨¡æ"},fields:{requestId:"è¯·æ± ID",time:"æ¶é´",apiKey:"API key",userAgent:"User-Agent",billingMode:"计费模å¼",onehopModel:"OneHop 模å",endpoint:"Endpoint",firstToken:"é¦ token",total:"æ»èæ¶",throughput:"åå",stream:"æµå¼",clientIp:"客æ·ç«¯ IP",finishReason:"ç»æåå ",mediaType:"åªä½ç±»å",imageCount:"å¾çæ°",imageSize:"尺寸",errorCode:"代ç ",errorMessage:"ä¿¡æ¯",requestedModel:"è¯·æ±æ¨¡å"},billingMode:{token:"æ token",per_request:"ææ¬¡",image:"æå¾ç"},timeline:{heading:"çå½å¨æ",received:"æ¶å°è¯·æ±",routed:"å®æè·¯ç±",failed:"失败",generated:"çæå®æ",metered:"å®æè®¡é",billed:"å®æè®¡è´¹"},downloadMedia:"ä¸è½½"},jUo={success:"æå",completed:"已宿",failed:"失败",pending:"çå¾
ä¸",repairing:"ä¿®å¤ä¸",queued:"æéä¸",running:"è¿è¡ä¸",cancelled:"已忶",expired:"å·²è¿æ"},NUo={chat:"对è¯",image:"å¾ç",video:"è§é¢"},DUo={stop:"æ£å¸¸ç»æ",length:"é¿åº¦éå¶",tool_calls:"å·¥å
·è°ç¨",content_filter:"å
å®¹è¿æ»¤",error:"é误"},MUo={true:"æµå¼",false:"éæµå¼"},EUo={title:"ææ¬æå"},IUo={title:"Token æç»",prompt:"è¾å
¥",completion:"è¾åº",imageOutput:"å¾çè¾åº token",cacheRead:"ç¼å读å",cacheWrite:"ç¼ååå
¥",cacheWrite5m:"ç¼ååå
¥ 5m",cacheWrite1h:"ç¼ååå
¥ 1h",total:"æ»è®¡"},OUo={timestamp:"æ¶é´æ³",local:"æ¬å°æ¶é´",relative:"ç¸å¯¹æ¶é´"},LUo={promoBasis:"æå",promoSaved:"æ´»å¨ä¼æ ",inputCost:"è¾å
¥ææ¬",outputCost:"è¾åºææ¬",cacheReadCost:"ç¼åè¯»åææ¬",cacheWriteCost:"ç¼ååå
¥ææ¬",inputPrice:"è¾å
¥åä»·",outputPrice:"è¾åºåä»·",total:"æ»è®¡",officialPrice:"宿¹ä»·",saved:"已伿 ",factor:{textInput:"ææ¬è¾å
¥",textOutput:"ææ¬è¾åº",imageInput:"å¾çè¾å
¥",imageOutput:"å¾çè¾åº",perCallImage:"æå¼ ",videoPerSecond:"è§é¢",videoPerCall:"è§é¢",cacheRead:"ç¼å读å",cacheWrite:"ç¼ååå
¥",cacheWrite5m:"ç¼ååå
¥(5m)",cacheWrite1h:"ç¼ååå
¥(1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ å¼ ",perSecond:"/ ç§",perCall:"/ 次"},freeCovered:"å
è´¹é¢åº¦æµæ£ï¼{{tokens}} tokensï¼",freeCoveredNoCount:"å
è´¹é¢åº¦æµæ£"},UUo={noPreview:"ææ é¢è§",video:"è§é¢"},BUo={free:"å
è´¹"},FUo={title:hUo,description:yUo,actions:vUo,cacheHit:bUo,cancelJob:xUo,col:$Uo,columns:wUo,empty:kUo,filter:CUo,meta:SUo,pager:AUo,range:TUo,source:RUo,tps:PUo,drawer:_Uo,status:jUo,type:NUo,finishReason:DUo,stream:MUo,costBreakdown:EUo,tokensBreakdown:IUo,time:OUo,userCost:LUo,export:{label:"å¯¼åº CSV",exporting:"导åºä¸â¦",done:"å·²å¯¼åº {{n}} è¡ã",truncated:"已导åºå {{n}} è¡,ç¼©å°æ¶é´èå´å¯å¯¼åºå
¶ä½ã",failed:"导åºå¤±è´¥,请éè¯ã"},media:UUo,cost:BUo},zUo="模å",qUo="æ¥çå
¨é¨å¯ç¨æ¨¡åãä¸ä¸æé¿åº¦ãè¾å
¥/è¾åºä»·æ ¼,å¹¶æ¶èå¸¸ç¨æ¨¡åã",HUo={all:"å
¨é¨",favorites:"æçæ¶è",free:"å
è´¹",benefit:"ç¦å©",hot:"çç¹"},VUo={capability:"ç±»å",allCapabilities:"å
¨é¨ç±»å",capability_text:"ææ¬",capability_image:"å¾ç",capability_audio:"é³é¢",capability_video:"è§é¢",provider:"æä¾å",allProviders:"å
¨é¨æä¾å",protocol:"åè®®",allProtocols:"å
¨é¨åè®®",sort:"æåº",search:"æç´¢",searchPlaceholder:"模å / åå",context:"ä¸ä¸æ",allContexts:"ä¸é",mobileTitle:"çé"},KUo="æ¨è",GUo="ææ°",WUo="å¨ç度",YUo="åç§° (A-Z)",QUo="ä»·æ ¼(ä»ä½å°é«)",XUo="ä»·æ ¼(ä»é«å°ä½)",ZUo="ä¸ä¸æé¿åº¦",JUo="å»¶è¿",eBo="åå",tBo="OpenAI Chat",nBo="OpenAI Responses",aBo="Anthropic",oBo="Vertex AI",sBo="OpenAI Images",rBo="OpenAI Video",iBo={label:"模å",model:"模å",provider:"æä¾å",capabilities:"è½å",context:"ä¸ä¸æ",price:"ä»·æ ¼",discount:"ææ£",action:"æä½",tryIt:"è¯ä¸è¯",type:"ç±»å",maxOutput:"æå¤§è¾åº",copyId:"å¤å¶æ¨¡å ID",copied:"å·²å¤å¶",usage:"ç¨é",stability:"ç¨³å®æ§",protocols:"åè®®",openDetail:"æå¼æ¨¡å详æ
"},lBo="çç¹",cBo="ç¦å©",dBo="å
è´¹",uBo="å³å°ä¸çº¿",mBo={add:"æ¶è",remove:"åæ¶æ¶è"},pBo={favorites:"è¿æ²¡ææ¶èçæ¨¡å",noMatch:"没æå¹é
çæ¨¡å"},fBo="ææ¬",gBo="å¾ç",hBo="æä»¶",yBo="è§é¢",vBo="é³é¢",bBo="åµå
¥",xBo="è§è§",$Bo="å·¥å
·è°ç¨",wBo="JSON 模å¼",kBo="å¾ççæ",CBo="å¾çç¼è¾",SBo="ææ¬",ABo="å¾ç",TBo="è§é¢",RBo="é³é¢",PBo="åµå
¥",_Bo="宿¹",jBo="Kiro",NBo="æä½",DBo="/ 次",MBo="/ ç§",EBo="/ 1M",IBo="æé",OBo="å
è´¹",LBo={ariaLabel:"ä»·æ ¼è´§å¸",usd:"ç¾å
",rmb:"人æ°å¸ (Â¥)",settlement:"ä»·æ ¼ä»¥äººæ°å¸å±ç¤º,æåºå®æ±ç {{rate}} æç®,ä»
ä¾åè;é±å
å§ç»ä»¥ç¾å
æå®é
ç¨éç»ç®ã"},UBo="éå
å¼",BBo={title:zUo,description:qUo,tabs:HUo,filters:VUo,sort_featured:KUo,sort_newest:GUo,sort_top_weekly:WUo,sort_name:YUo,sort_price_asc:QUo,sort_price_desc:XUo,sort_context:ZUo,sort_latency:JUo,sort_throughput:eBo,protocol_openai_chat:tBo,protocol_openai_responses:nBo,protocol_anthropic_messages:aBo,protocol_google_vertex_ai:oBo,protocol_openai_images:sBo,protocol_openai_sora:rBo,table:iBo,badge_hot:lBo,badge_benefit:cBo,badge_free:dBo,badge_unavailable:uBo,favorite:mBo,empty:pBo,modality_text:fBo,modality_image:gBo,modality_file:h
843Bo,modality_video:yBo,modality_audio:vBo,modality_embeddings:bBo,capability_vision:xBo,capability_tool_calling:$Bo,capability_json_mode:wBo,capability_image_generation:kBo,capability_image_edit:CBo,type_text:SBo,type_image:ABo,type_video:TBo,type_audio:RBo,type_embedding:PBo,provider_official:_Bo,provider_kiro:jBo,price_from:NBo,price_perCall:DBo,price_perSec:MBo,price_per1m:EBo,price_fast:IBo,price_free:OBo,currency:LBo,badge_requiresTopup:UBo},FBo={main:"主导èª",utility:"å·¥å
·å¯¼èª",console:"æ§å¶å°å¯¼èª",openNavigation:"æå¼å¯¼èª",collapse:"æ¶èµ·ä¾§è¾¹æ ",expand:"å±å¼ä¾§è¾¹æ "},zBo={platform:"æ§å¶å°",chat:"对è¯",models:"模å",logs:"æ¥å¿",jobs:"ä»»å¡",apiKeys:"API å¯é¥",usage:"ç¨é",billing:"è´¦å",freeTokens:"å
è´¹é¢åº¦",referrals:"é请",support:"å·¥å",settings:"设置",admin:"管ç",balance:"ä½é¢",helpSupport:"帮å©ä¸æ¯æ",announcements:"å
¬å",announcementsTitle:"å
¬å",announcementsEmpty:"ææ å
¬å,æ¬è¯·æå¾
ã",announcementsTicketUnread:"{{count}} æ¡å·¥åææ°åå¤",tasks:"ä»»å¡å¢",tagNew:"æ°"},qBo={title:"éç¥",markAllRead:"å
¨é¨å·²è¯»",loading:"å è½½ä¸â¦",emptyTitle:"ææ æ°éç¥",emptyBody:"ææ°éç¥ä¼æ¾ç¤ºå¨è¿éã"},HBo={staff:"管çåå°"},VBo={dashboard:"仪表ç",users:"ç¨æ·ç®¡ç",billing:"é±å
è´¦å",usage:"ç¨éç»è®¡",rateLimits:"éçéå¶",access:"注ååå
¥",staff:"å¢éæå",growth:"å¢é¿è¿è¥",models:"模åç®å½",announcements:"ç³»ç»å
¬å",upstream:"䏿¸¸æ¸ é",auditLogs:"审计æ¥å¿",webhooks:"äºä»¶åè°",support:"å·¥åä¸å¿",campaigns:"æ´»å¨è¿è¥",domainRules:"é®ç®±ååå"},KBo={aria:FBo,public:{models:"模å",pricing:"ä»·æ ¼",docs:"ææ¡£",blog:"å客",changelog:"æ´æ°æ¥å¿"},console:zBo,notifications:qBo,adminGroups:HBo,admin:VBo},GBo={title:"欢è¿ä½¿ç¨ OneHop",body:"ä¸ä¸ª URL è°ç¨æææ¨¡åãè± 30 ç§å¸¦ä½ çä¸ä»¶äºã",start:"å¼å§",skip:"è·³è¿"},WBo={models:{title:"ççæ¨¡å",body:"ä¸é¡µçæ¸
ä½ è½è°ç¨çæææ¨¡å,以ååèªçä»·æ ¼ã",cta:"æå¼æ¨¡å页"},keys:{title:"åå»ºç¬¬ä¸æ API key",body:"ç¹è¿éçæä¸æ key,æä»»æå·¥å
·æå OneHop å³å¯ã"},balance:{title:"ä½ çä½é¢",body:"éç¨éå
ãæªæ¶è´¹ä½é¢éæ¶å¯éã"}},YBo={next:"ä¸ä¸æ¥",back:"ä¸ä¸æ¥",done:"宿",stepOf:"{{current}} / {{total}}"},QBo={welcome:GBo,steps:WBo,nav:YBo},XBo="å 载失败",ZBo="è¿éææ¶æ²¡æå
容ã",JBo="æ´å¤è¯¦æ
",e6o={failedLoad:XBo,emptyDescription:ZBo,moreDetails:JBo},t6o="å
¨é¨",n6o="æå",a6o="å¤çä¸",o6o="ä¿®å¤ä¸",s6o="失败",r6o="已鿬¾",i6o="æ´»è·",l6o="å·²åç¨",c6o="å·²ç¨å°½",d6o="å·²é¢ç",u6o="å·²å
æ¢",m6o="å·²æå",p6o="å·²å é¤",f6o="æ£å¸¸",g6o="è§å¯ä¸",h6o="已黿¢",y6o="已忾",v6o="å»ç»ä¸",b6o="已鿾",x6o="已忶",$6o="é¨å忣",w6o="å·²å²å",k6o="已跳è¿",C6o="å·²è¿æ",S6o="å·²æç»",A6o="è稿",T6o="å·²åå¸",R6o="å·²å¼ç¨",P6o="已彿¡£",_6o="éè",j6o="å·²å建",N6o="å·²æå¼ checkout",D6o="å·²æ¯ä»",M6o="已忶",E6o="OpenAI Chat",I6o="OpenAI Responses",O6o="Anthropic Messages",L6o="Google Vertex AI",U6o="OpenAI Images",B6o="ç¨éæ£è´¹",F6o="注åå¥å±",z6o="ä¿éå¥å±",q6o="é请å¥å±",H6o="è¡¥å¿å¥å±",V6o="å
å¼å¥å±",K6o="äººå·¥è°æ´",G6o="Credit è´ä¹°",W6o="æ¯ä»",Y6o="注åå¥å±",Q6o="伿 ç ",X6o="管çåèµ é",Z6o="API ç¨é",J6o="注åå¥å±",e8o="äººå·¥èµ é",t8o="忥",n8o="Streaming",a8o="Token 计费",o8o="请æ±è®¡è´¹",s8o="å¾ç计费",r8o="ä½ reasoning",i8o="ä¸ reasoning",l8o="é« reasoning",c8o="ä¸éç¨",d8o="æªç¥",u8o={all:t6o,success:n6o,pending:a6o,repairing:o6o,failed:s6o,refunded:r6o,active:i6o,disabled:l6o,exhausted:c6o,reserved:d6o,redeemed:u6o,suspended:m6o,deleted:p6o,normal:f6o,watchlisted:g6o,blocked:h6o,granted:y6o,frozen:v6o,released:b6o,cancelled:x6o,partially_reversed:$6o,reversed:w6o,skipped:k6o,expired:C6o,denied:S6o,draft:A6o,published:T6o,deprecated:R6o,archived:P6o,public:"å
¬å¼",hidden:_6o,created:j6o,checkout_opened:N6o,paid:D6o,canceled:M6o,openai_chat:E6o,openai_responses:I6o,anthropic_messages:O6o,google_vertex_ai:L6o,openai_images:U6o,usage_charge:B6o,bonus_signup_grant:F6o,bonus_promo_grant:z6o,bonus_referral_grant:q6o,bonus_compensation_grant:H6o,bonus_topup_grant:V6o,manual_adjustment:K6o,credit_purchase:G6o,payment:W6o,signup:Y6o,coupon:Q6o,admin:X6o,api:Z6o,signup_bonus:J6o,manual:e8o,sync:t8o,stream:n8o,token:a8o,request:o8o,image:s8o,low:r8o,medium:i8o,high:l8o,not_applicable:c8o,unknown:d8o}
843,m8o="å ± {{count}} æ¡",p8o="{{count}} æ¡/页",f8o={total:m8o,perPage:p8o},g8o="é请ä¸è¿å©",h8o="åäº«ä½ çä¸å±é¾æ¥ã被éè¯·ç¨æ·å å¼åï¼åæ¹çè¿å©é½ä¼æ¸ æ¥è®°å½ã",y8o="æ æ³å è½½éè¯·æ°æ®",v8o="ä½ çéè¯·é¾æ¥",b8o="å享",x8o="å·²å¤å¶é请å 容,æå¼å¾®ä¿¡ç²è´´ç»å¥½åå³å¯",$8o="å¤å¶",w8o="å·²å¤å¶",k8o="微信",C8o="X",S8o="Telegram",A8o="Reddit",T8o="LinkedIn",R8o="WhatsApp",P8o="é®ä»¶",_8o="Facebook",j8o={default:{title:"ä¸ä¸ª OneHop API,è°ç¨ææ AI 模å",body:"ç¨æçéè¯·é¾æ¥æ³¨å ââ {{firstWindowDays}} 天å é¦å ,åæ¹åå¾ {{percent}}% è¿å©ã"},x:{title:"ä¸ä¸ª API,è°ç¨ææ AI 模å ð¤",body:"{{firstWindowDays}} 天å ç¨æç龿¥é¦å ,åæ¹åå¾ {{percent}}% è¿å© ð"},telegram:{title:"ç¨ OneHop è°ç¨ææ AI 模å",body:"ç¨æçéè¯·é¾æ¥ ââ {{firstWindowDays}} 天å é¦å ,åæ¹åå¾ {{percent}}% è¿å©ç§¯åã"},whatsapp:{title:"ç¨ OneHop è°ç¨ææ AI 模å",body:"ç¨æçéè¯·é¾æ¥æ³¨å,{{firstWindowDays}} 天å é¦å ,åæ¹åå¾ {{percent}}% è¿å©ã"},reddit:{title:"OneHop ââ ä¸ä¸ª API è°ç¨ææ AI 模å;ç¨æçéè¯·é¾æ¥é¦å ,åæ¹åå¾ {{percent}}% è¿å©",body:"{{firstWindowDays}} 天å é¦å ,åæ¹åå¾ {{percent}}% è¿å©ç§¯åã"},email:{title:"éè¯·ä½ ç¨ OneHop ââ ä¸ä¸ª API è°ç¨ææ AI 模å",body:`ä½ å¥½, 844 845æå¨ç¨ OneHop,ä¸ä¸ª API å°±è½è°ç¨åå¤§ä¸»æµ AI 模åãç¨æçéè¯·é¾æ¥æ³¨å,é¦å ååæ¹é½è½æ¿å°è¿å©ç§¯åã 846 847è¿å©æ¡£ä½:{{tiers}}ã 848 849谢谢!`},wechat:{title:"OneHop ââ ä¸ä¸ª API è°ç¨ææ AI 模å",body:"ç¨æçéè¯·é¾æ¥æ³¨å,{{firstWindowDays}} 天å é¦å ,åæ¹åå¾ {{percent}}% è¿å©ã"}},N8o="è¿å©å¨ä»æ¬¾åç«å³å¯è§ï¼ä½ä¼å å»ç»ä»¥è¦ç鿬¾çªå£ï¼å°æåéæ¾ä¸º OneHop é请å¥å± creditã",D8o="{{days}} 天åéæ¾ã",M8o={referrer:"é请人",referee:"被é请人"},E8o={referrer:"ï¼è¢«é请人é¦å ååç»å å¼ï¼ä½ é½ææ¡£ä½è·å¾ credit è¿è¿ ââ {{tiers}}ã",referee:"ï¼ç¨éè¯·é¾æ¥æ³¨ååï¼ä½ çå å¼åæ ·ææ¡£ä½è·å¾ credit è¿è¿ ââ {{tiers}}ã"},I8o={dayRange:"{{fromDay}}-{{untilDay}} 天",dayOpenEnded:"{{fromDay}} 天起"},O8o="累计è·å¾",L8o="已鿾é请è¿å©",U8o="å»ç»ä¸é请è¿å©",B8o="é请人æ°",F8o="ææé请",z8o="å·²éæ¾è¢«éå¥å±",q8o="å»ç»ä¸è¢«éå¥å±",H8o="åæ¶ / 忣",V8o="ä½ é请ç人",K8o="è¿å©æç»",G8o={user:"ç¨æ·",joined:"æ³¨åæ¶é´",topups:"å å¼ç¬æ°",earned:"ä½ å·²è·å¾",frozen:"å»ç»ä¸",date:"æ¶é´",event:"äºä»¶",topupAmount:"对æ¹å å¼",rate:"æ¯ä¾",releaseAt:"éæ¾æ¶é´",cashback:"è¿å©",status:"ç¶æ"},W8o={title:"è¿æ²¡æé请",description:"åäº«ä½ ç龿¥å³å¯å¼å§è·å¾è¿å©ã"},Y8o={inviteeSignedUp:"被é请人æå注å",youSignedUp:"ä½ éè¿é请æå注å",inviteePaid:"被é请人æåæ¶è´¹",youPaid:"ä½ ä½ä¸ºè¢«é请人æåæ¶è´¹"},Q8o={frozen:"å»ç»ä¸",released:"已鿾",cancelled:"已忶",partially_reversed:"é¨å忣",reversed:"已忣",failed:"失败",ski
849pped:"已跳è¿"},X8o={title:g8o,description:h8o,error:y8o,yourLink:v8o,shareVia:b8o,wechatCopied:x8o,copy:$8o,copied:w8o,wechat:k8o,x:C8o,telegram:S8o,reddit:A8o,linkedin:T8o,whatsapp:R8o,email:P8o,facebook:_8o,share:j8o,offer:N8o,releaseDelay:D8o,role:M8o,roleOffer:E8o,policy:I8o,totalEarned:O8o,availableEarned:L8o,frozenEarned:U8o,invited:B8o,active:F8o,availableReceived:z8o,frozenReceived:q8o,cancelledReversed:H8o,peopleYouInvited:V8o,history:K8o,col:G8o,empty:W8o,event:Y8o,status:Q8o},Z8o="设置",J8o="管çè´¦å·å好忧å¶å°é»è®¤é项ã",eFo="å½åç»å½:{{email}}",tFo="æ¾ç¤ºåç§°",nFo="è¯è¨",aFo="æ¶åº",oFo="èµæå 载失败",sFo="ä¿å失败",rFo="æ¾å¼æ´æ¹?",iFo="ä½ ææªä¿åçæ´æ¹,ç°å¨ç¦»å¼å°ä¸¢å¼è¿äºæ´æ¹ã",lFo="æ¾å¼",cFo="ç»§ç»ç¼è¾",dFo={title:Z8o,description:J8o,signedInAs:eFo,displayName:tFo,locale:nFo,timezone:aFo,failedLoad:oFo,failedSave:sFo,discardTitle:rFo,discardMessage:iFo,discardConfirm:lFo,keepEditing:cFo},uFo="ä»»å¡å¢",mFo="æ OneHop å享ç»ä½ ç读è
ï¼èµåè¯ç¨éãæ¯ä¸æ¡æäº¤æä»¬é½äººå·¥å®¡æ ¸ã",pFo="ä½ çå
容龿¥",fFo="https://â¦",gFo="æäº¤",hFo="å·²æäº¤ï¼æä»¬ä¼å°½å¿«å®¡æ ¸ã",yFo="å¯æäº¤çå¹³å°ï¼{{hosts}}",vFo="䏿¬¡è¢«é©³åï¼{{reason}}ãæ¹å¥½åå¯ä»¥éæ°æäº¤ã",bFo={pending:"å®¡æ ¸ä¸",approved:"å·²å°è´¦",rejected:"已驳å",active:"å·²çæ"},xFo={title:"ææ¶æ²¡æä»»å¡",description:"è¿éµå忥ççââè¿ç±»æ´»å¨æä»¬ä¼ä¸å®æä¸æ°ã"},$Fo={x_quote:{title:"å¨ X å¼ç¨è½¬åæä»¬",description:"å¼ç¨è½¬å @OneHopAI çç½®é¡¶æ¨æï¼å¹¶åä¸ä½ èªå·±çä½¿ç¨æåã",rules:["X è´¦å·éæ³¨åæ»¡ 6 个èªç¶æä¸è³å°æ 10 åå
³æ³¨è
ã","æäº¤ä½ èªå·±é£æ¡å¼ç¨æ¨æç龿¥ï¼ä¸æ¯åæ¨ç龿¥ã","å®¡æ ¸éè¿å 2 å°æ¶å
å°è´¦ã"]},youtube_tutorial:{title:"å䏿¡ YouTube æç¨",description:"6 åé以ä¸çè§é¢ï¼è®²æ¸
æ¥ä½ æä¹æ OneHop æ¥è¿èªå·±ç agentã",rules:["åå¸åæäº¤è§é¢é¾æ¥ã","YouTube è´¦å·ç²ä¸é ⥠50ã","æ¯ä¸ªè´¦å·ä»
éåå 䏿¬¡ã","å®¡æ ¸éè¿å 2 å°æ¶å
å°è´¦ã"]},short_video:{title:"å䏿¡çè§é¢",description:"å¨ TikTok æ YouTube å 40 ç§ä»¥ä¸ççè§é¢ï¼æå°ä½ ç OneHop é
ç½®ã",rules:["åå¸åæäº¤è§é¢é¾æ¥ã","å®¡æ ¸éè¿å 2 å°æ¶å
å°è´¦ã"]},github_readme:{title:"å¨ä½ ç GitHub README éå ä¸ OneHop",description:"å¨ä½ èªå·±çä»åº README éå ä¸å¥ OneHop çèµå©ä¿¡æ¯ï¼æ¤åæ¯ç¬å
å¼é¢å¤å é 15%ã",rules:["README ä¸çº¿åæäº¤ä»åºé¾æ¥ã","è¿æ¯æ°¸ä¹
çï¼ä¸æ¯ä¸æ¬¡æ§ï¼æ¤åæ¯ç¬å
å¼ä¼åãå
¨ç«æ åèµ éãä¸ãä½ ç 15%ãéæ´é«çé£ä¸ªã","å¯ç´æ¥å¤å¶çææ¡è§ä¸æ¹ã"]}},wFo={load:"ä»»å¡å¢å 载失败",generic:"æäº¤å¤±è´¥",urlRequired:"请å
ç²è´´ä½ çå
容龿¥ã",urlTooLong:"è¿ä¸ªé¾æ¥å¤ªé¿äºã",urlMalformed:"è¿ä¸åæ¯ä¸ä¸ªææç龿¥ã",hostNotAllowed:"该任å¡åªæ¥åä¸é¢ååºçå¹³å°ç龿¥ã",notAPost:"请填å
·ä½é£æ¡å
容ç龿¥ï¼ä¸æ¯ä¸»é¡µæé¢é页ã",alreadySubmitted:"è¿ä¸ªä»»å¡ä½ å·²ç»æäº¤è¿äºã",notAvailable:"该任å¡å½åä¸å¯ç¨ã",busy:"ä»å¤©çå®¡æ ¸é已满ï¼è¯·æå¤©åè¯ã",emailUnverified:"请å
éªè¯ä½ çé®ç®±ã",accountTooNew:"ä½ çè´¦å·æ³¨åæ¶é´è¿ä¸å¤ã",riskFlagged:"è¯¥è´¦å·ææ¶æ æ³åå ãå¦è®¤ä¸ºæè¯¯è¯·è系客æã",accountInactive:"è¯¥è´¦å·æªå¤äºæ£å¸¸ç¶æã",deviceAlreadyClaimed:"该设å¤ä¸å·²æå¦ä¸ä¸ªè´¦å·åå è¿ã"},kFo="æè°¢ [OneHop]({{url}}) 对æ¬é¡¹ç®çèµå©ï¼OneHop å¯ä¸ºç¨æ·æä¾ä¸æå
¼å®¹ OpenAI åè®®ç API å¯é¥ï¼å³å¯è°ç¨ä¸ç¾æ¬¾ä¸»æµå¤§æ¨¡åï¼å
æ¬ GPTãClaudeãGeminiãDeepSeekãKimi 以åéä¹åé®ï¼Qwenï¼ãä½ æ é管çå¤å®¶æå¡åè´¦å·ï¼ä¹ä¸ç¨åå¤ä¿®æ¹ä»£ç ï¼å°±è½èªç±åæ¢æ¨¡åï¼å¹¶ä¸éç¨æéä»è´¹æ¨¡å¼ãâ {{domain}}",CFo="å¤å¶è¿æ®µææ¡",SFo={title:uFo,description:mFo,urlLabel:pFo,urlPlaceholder:fFo,submit:gFo,submitted:hFo,allowedHosts:yFo,rejectedHint:vFo,status:bFo,empty:xFo,item:$Fo,error:wFo,sponsorBlurb:kFo,copyBlurb:CFo},AFo="å¨çº¿å®¢æ",TFo="æ¯æå·¥å",RFo="æäº¤å·¥å,æä»¬ä¼å°½å¿«åå¤ä½ ã",PFo="æ°å»ºå·¥å",_Fo="å·¥åä¸åå¨æå·²è¢«å é¤ã",jFo={title:"è¿æ²¡æå·¥å",body:"éå°é®é¢äº?æä¸ªå·¥å,æä»¬æ¥å¸®ä½ ã",cta:"æäº¤ç¬¬ä¸ä¸ªå·¥å"},NFo={subject:"主é¢",category:"ç±»å",status:"ç¶æ",updated:"æ´æ°æ¶é´",user:"ç¨æ·"},DFo={billing:"计费",technical:"ææ¯",account:"è´¦å·",other:"å
¶ä»"},MFo={open:"å¾
å¤ç",pending:"å¾
åå¤",resolved:"已解å³",closed:"å·²å
³é"},EFo={allStatuses:"å
¨é¨ç¶æ",allCategories:"å
¨é¨ç±»å",search:"æç´¢é®ç®±æä¸»é¢"},IFo={subject:"主é¢",subjectPlaceholder:"ç®è¦æè¿°ä½ çé®é¢",category:"ç±»å",message:"å
容",messagePlaceholder:"说说åçäºä»ä¹â¦",attachments:"éä»¶",addAttachment:"æ·»å æä»¶",submit:"æäº¤å·¥å",cancel:"åæ¶"},OFo={you:"ä½ ",support:"客æ",system:"ç³»ç»",replyPlaceholder:"ååå¤â¦",send:"åé",closedNotice:"å·¥åå·²å
³éãå¦ä»é帮å©,请æ°å»ºå·¥åã",sendHint:"æ â/Ctrl + Enter åé",back:"è¿åå·¥åå表",systemStatus:{open:"éæ°æå¼äºå·¥å",pending:"å°å·¥åæ 记为çå¾
ç¨æ·",resolved:"å°å·¥åæ 记为已解å³",closed:"å
³éäºå·¥å"}},LFo={title:"å·¥åä¸å¿",resolve:"æ 记已解å³",close:"å
³é",reopen:"éæ°æå¼",unread:"æªè¯»"},UFo="å è½½æ´å¤",BFo={created:"å·¥åå·²æäº¤",replied:"åå¤å·²åé",statusUpdated:"ç¶æå·²æ´æ°",error:"åºéäº,请éè¯"},FFo={liveChat:AFo,title:TFo,subtitle:RFo,newTicket:PFo,notFound:_Fo,empty:jFo,columns:NFo,category:DFo,status:MFo,filters:EFo,form:IFo,thread:OFo,admin:LFo,loadMore:UFo,toast:BFo}
849,zFo="ç¨é",qFo="ä½é¢ãæ¶èé度,以åä½ çå¼éé½è±å¨äºåªéã",HFo="æ´»å¨",VFo="æ¤åºé´å
ææ æ´»å¨",KFo="ç¨éæç»",GFo="æ API key",WFo="ææ¨¡å",YFo="æ token ç±»å",QFo="ææ æ°æ®",XFo="æ¤åºé´å
ææ ç¨éã",ZFo="æå½åé度,ä½é¢é¢è®¡è¿è½ç¨ {{days}} 天(约 {{rate}}/天)ã",JFo="è¾åº",ezo="ç¼å",tzo={tokens:"Token",requests:"è¯·æ±æ°",cost:"è´¹ç¨"},nzo="å
¶ä»",azo="次",ozo="tok",szo="å·æ°ä¸â¦",rzo="ææ æ°æ®",izo="åèµ·ä¸æ¬¡è¯·æ±å³å¯å¼å§ç§¯ç´¯æ°æ®ã",lzo="çé¨ API key",czo="å
å¼",dzo={title:"æ æ³å è½½ç¨é"},uzo={firstToken:"é¦ token",latency:"å¹³åå»¶è¿",requests:"请æ±",spend:"æ¶è´¹",spendSub:"æ¬æè®¡è´¹",successRate:"{{rate}}% æå",tokens:"Tokens",textDuration:"ææ¬",mediaDuration:"å¾ç/è§é¢",cacheHit:"ç¼åå½ä¸ {{rate}}%",projected:"约 {{amount}}/æ",vsPrevious:"对æ¯ä¸ä¸å¨æ"},mzo={all:"å
¨é¨æ¶é´",custom:"èªå®ä¹",last1h:"æè¿ 1 å°æ¶",last30d:"æè¿ 30 天",last7d:"æè¿ 7 天",thisMonth:"æ¬æ",today:"ä»å¤©",yesterday:"æ¨å¤©",byMonth:"ææä»½"},pzo={failed:"失败",success:"æå"},fzo={cacheRead:"ç¼å读å",cacheWrite:"ç¼ååå
¥",cacheWrite1h:"ç¼ååå
¥ 1h",cacheWrite5m:"ç¼ååå
¥ 5m",completion:"è¾åº",prompt:"è¾å
¥"},gzo={body:"ä»ç»ç«¯å起请æ±,ææå¼ playground ââ å ç§å
ç¨éå°±ä¼åºç°å¨è¿éã",openPlayground:"æå¼ playground",title:"ä½ ç key 已就绪"},hzo={body:"å建第ä¸ä¸ª API key,ç¨ä¸ä¸ª URL è·¯ç±ææè¯·æ±,ç¨ééå就伿¾ç¤ºå¨è¿éã",createKey:"å建 API key",title:"欢è¿ä½¿ç¨ OneHop",tryPlayground:"è¯è¯ playground"},yzo="å·æ°",vzo="å½åçéä¸ {{count}} 个æå请æ±",bzo="æ» tokens",xzo="è¾å
¥ {{input}} / è¾åº {{output}}",$zo="计费 credit",wzo="{{cost}} 䏿¸¸å®é
ææ¬",kzo="å¹³åå»¶è¿",Czo="é¦ token {{duration}}",Szo="30 æ¥æ´»å¨",Azo="æå请æ±ãtoken éå计费 creditã",Tzo="æ£å¨å è½½ç¨éè¶å¿",Rzo="ææ ç¨éè¶å¿",Pzo="æå请æ±åºç°å伿¾ç¤ºç¨éè¶å¿ã",_zo="ç鍿¨¡å",jzo="æè¿ 30 å¤©ææ¨¡åç»è®¡ç计费 creditã",Nzo="ææ æ¨¡åç¨é",Dzo="æå请æ±åºç°å伿¾ç¤ºæ¨¡åæåã",Mzo="模å",Ezo="å
¨é¨æ¨¡å",Izo="ç¶æ",Ozo="åè®®",Lzo="è¡æ°",Uzo="éç½®",Bzo="ç¨éè®°å½",Fzo="API key",zzo="Endpoint",qzo="ç±»å",Hzo="Tokens",Vzo="ææ¬",Kzo="èæ¶",Gzo="æ¶é´",Wzo="User-Agent",Yzo="详æ
",Qzo="请æ±è¯¦æ
",Xzo="ç¨éè®°å½è¯¦æ
ä¸è®¡è´¹å
æ°æ®ã",Zzo="è¯·æ± ID",Jzo="æä½",e7o="è¾å
¥ tokens",t7o="è¾åº tokens",n7o="ç¼å读å tokens",a7o="ç¼ååå
¥ tokens",o7o="è¾å
¥ææ¬",s7o="è¾åºææ¬",r7o="ç¼åè¯»åææ¬",i7o="ç¼ååå
¥ææ¬",l7o="é误ç ",c7o="é误信æ¯",d7o="æªæ¾å°ã",u7o="credit",m7o="æ»è®¡ {{count}}",p7o="æ£å¨å è½½ç¨éè®°å½",f7o="ææ ç¨éè®°å½",g7o="æ¢ä¸ç»ç鿡件è¯è¯ã",h7o="è¯·æ±æµç»ä½ ç API keys åï¼è®°å½ä¼æ¾ç¤ºå¨è¿éã",y7o="第 {{page}} 页 · æ¾ç¤º {{shown}} æ¡ï¼å
± {{total}} æ¡å¹é
è®°å½",v7o="ä¸ä¸é¡µ",b7o="ä¸ä¸é¡µ",x7o={activeDays:"æ´»è·å¤©æ°",longestStreak:"æé¿è¿ç»",daysValue:"{{n}} 天",totalSpend:"æ¬ææ¶è´¹",peakDay:"ææ´»è·æ¥"},$7o="Credit",w7o="Tokens",k7o="请æ±",C7o={time:"æ¶é´",apiKey:"API Key",model:"模å",reasoningEffort:"æ¨ç强度",endpoint:"Endpoint",type:"ç±»å",billingMode:"计费模å¼",inputTokens:"è¾å
¥ Tokens",outputTokens:"è¾åº Tokens",cacheReadTokens:"ç¼å读å Tokens",cacheWriteTokens:"ç¼ååå
¥ Tokens",totalTokens:"æ» Tokens",billedCredit:"计费 Credit",firstTokenMs:"é¦ Token 毫ç§",durationMs:"èæ¶æ¯«ç§",status:"ç¶æ",userAgent:"User-Agent"},S7o={mon:"å¨ä¸",wed:"å¨ä¸",fri:"å¨äº"},A7o="å°",T7o="å¤",R7o={title:zFo,description:qFo,activity:HFo,activityEmpty:VFo,breakdown:KFo,byApiKey:GFo,byModel:WFo,byTokenType:YFo,chartEmpty:QFo,chartEmptyHint:XFo,burnRate:ZFo,in:"è¾å
¥",out:JFo,cache:ezo,metric:tzo,other:nzo,req:azo,tok:ozo,refreshing:szo,topEmpty:rzo,topEmptyHint:izo,topKeys:lzo,topUp:czo,error:dzo,kpi:uzo,range:mzo,requests:pzo,tokenType:fzo,noRequests:gzo,welcome:hzo,refresh:yzo,successfulFilter:vzo,totalTokens:bzo,inOut:xzo,billedCredit:$zo,upstreamA
849ctualCost:wzo,avgLatency:kzo,firstToken:Czo,activityTitle:Szo,activityDescription:Azo,loadingTrend:Tzo,noUsageTrend:Rzo,trendDescription:Pzo,topModels:_zo,topModelsDescription:jzo,noModelUsage:Nzo,noModelUsageDescription:Dzo,model:Mzo,allModels:Ezo,status:Izo,protocol:Ozo,rows:Lzo,reset:Uzo,tableLabel:Bzo,apiKey:Fzo,endpoint:zzo,type:qzo,tokens:Hzo,cost:Vzo,duration:Kzo,time:Gzo,userAgent:Wzo,details:Yzo,requestDetail:Qzo,detailDescription:Xzo,requestId:Zzo,operation:Jzo,inputTokens:e7o,outputTokens:t7o,cacheReadTokens:n7o,cacheWriteTokens:a7o,inputCost:o7o,outputCost:s7o,cacheReadCost:r7o,cacheWriteCost:i7o,errorCode:l7o,errorMessage:c7o,notFound:d7o,creditSuffix:u7o,total:m7o,loadingRecords:p7o,noRecords:f7o,differentFilters:g7o,recordsEmpty:h7o,pageSummary:y7o,previous:v7o,next:b7o,stat:x7o,chartCredit:$7o,chartTokens:w7o,chartRequests:k7o,csv:C7o,weekday:S7o,activityLess:A7o,activityMore:T7o},P7o="註ååå ¥",_7o="åæ§ç¼å¸æè¨»åéãåå®å §ä¿¡ç®±/ååã已註å使ç¨è åå¨è·ç®¡çå¡å¯ä»¥å»ºç«å¸³èã",j7o="註ååå ¥åå®",N7o="åå ¥åå®çºç©º",D7o="ä¿¡ç®± / åå",M7o="å註",E7o="çæ ",I7o="註åçæ ",O7o="æææ",L7o="éè«",U7o="æ´æ°æ¼",B7o="æä½",F7o="æ°å¢",z7o="æ¹éæ°å¢",q7o="編輯",H7o="å²å",V7o="éè«",K7o="復å",G7o="ç§»é¤",W7o="æ°å¢è¨»ååå ¥",Y7o="編輯 {{email}}",Q7o="æ¹éæ°å¢è¨»ååå ¥",X7o="坿°å¢ç²¾ç¢ºä¿¡ç®±ï¼ä¹å¯ç¨ @company.com æ¾è¡æ´åååã已註å使ç¨è èå¨è·ç®¡çå¡å§çµæ¾è¡ã",Z7o="æ¯è¡è²¼ä¸ä¸åä¿¡ç®±æ @domainãéæ³åéè¤è¡æè·³éï¼ä¸æå½±é¿å ¶ä»è¡ã",J7o="ä¿¡ç®±æåå",eqo="[email protected] æ @company.com",tqo="ç¨ @company.com æ¾è¡æ´åååã",nqo="å註ï¼å¯é¸ï¼",aqo="ä¾å¦ åµå§åé",oqo="æææï¼å¯é¸ï¼",sqo="çç©ºè¡¨ç¤ºé·æææãå°æå¾å°ä¸åå 許æ°è¨»åã",rqo="ä¿¡ç®± / åå",iqo=`[email protected] 850[email protected] 851@partner.com`,lqo="æå°",cqo="æå°ä¿¡ç®±æåå",dqo="çæ ",uqo="åå ¥æª¢æ¥",mqo="[email protected]",pqo="檢æ¥",fqo="å 許",gqo="æçµ",hqo={existing_user:"已註å使ç¨è å§çµå 許",active_admin:"å¨è·ç®¡çå¡å§çµå 許",email_allowlist:"å½ä¸ç²¾ç¢ºä¿¡ç®±",domain_allowlist:"å½ä¸ååè¦å",not_allowed:"æªå½ä¸ä»»ä½ææè¦å"},yqo="已註å",vqo="æªè¨»å",bqo="管çå¡",xqo="ååè¦å",$qo="é·æ",wqo="å·²å å ¥è¨»ååå ¥ã",kqo="註ååå ¥å·²æ´æ°ã",Cqo="å·²æ°å¢ {{count}} æ¢ã",Sqo="éè«éµä»¶å·²ç¼éã",Aqo="已復åã",Tqo="å·²å¾è¨»ååå ¥ç§»é¤ã",Rqo="å° {{email}} ç§»åºè¨»ååå ¥ï¼é¤éå½ä¸å ¶ä»è¦åï¼å¦å該信箱å°ç¡æ³å»ºç«æ°å¸³èã",Pqo={title:"éµç®±ååå®",description:"çå å¨å §å»ºåºç·ä¹ä¸çå¯ç±é éµç®±ååå®ãé»åå®å註å峿;主æµåè·³é風æ§è§å¯åå®ã",add:"æ°å¢åå",addTitle:"æ°å¢ååè¦å",addDescription:"é»åå®è¨»å峿(403)ãä¸»æµæ¨è¨æè©²åè¦çºå¯ä¿¡,æ°ä½¿ç¨è ä¸é²è§å¯åå®ã",kindLabel:"åå®",kindBlacklist:"é»åå® â æçµè¨»å",kindMainstream:"ä¸»æµ â è·³éè§å¯åå®",domainLabel:"åå",domainPlaceholder:"example.com",noteLabel:"å註",notePlaceholder:"é¸å¡« â 說æåå ",search:"æå°",searchPlaceholder:"ä¾åå篩é¸",kindFilter:"åå®",allKinds:"å ¨é¨åå®",statusFilter:"çæ ",statusActive:"çæ",statusRevoked:"已移é¤",statusAll:"å ¨é¨",label:"éµç®±ååå®",empty:"æ«ç¡ååè¦å",colDomain:"åå",colKind:"åå®",colNote:"å註",colAddedBy:"æ°å¢è ",colCreated:"å»ºç«æé",status:"çæ ",action:"æä½",remove:"ç§»é¤",restore:"復å",confirmRemove:"確èªç§»é¤ {{domain}} çè¦å?",added:"å·²æ°å¢ååè¦å",removed:"已移é¤ååè¦å",restored:"已復åååè¦å",badgeBlacklist:"é»åå®",badgeMainstream:"主æµ"},_qo={title:P7o,description:_7o,label:j7o,empty:N7o,email:D7o,note:M7o,status:E7o,registration:I7o,expiresAt:O7o,invites:L7o,updatedAt:U7o,action:B7o,add:F7o,bulkAdd:z7o,edit:q7o,save:H7o,invite:V7o,restore:K7o,revoke:G7o,newTitle:W7o,editTitle:Y7o,bulkTitle:Q7o,formDescription:X7o,bulkDescription:Z7o,emailLabel:J7o,emailPlaceholder:eqo,emailHint:tqo,noteLabel:nqo,notePlaceholder:aqo,expiresAtLabel:oqo,expiresAtHint:sqo,bulkEntriesLabel:rqo,bulkEntriesPlaceholder:iqo,search:lqo,searchPlaceholder:cqo,statusFilter:dqo,checkLabel:uqo,checkPlaceholder:mqo,check:pqo,checkAllowed:fqo,checkDenied:gqo,checkReasons:hqo,registered:yqo,notRegistered:vqo,adminAllowed:bqo,domainRule:xqo,never:$qo,added:wqo,updated:kqo,bulkAdded:Cqo,invited:Sqo,restored:Aqo,revoked:Tqo,confirmRevoke:Rqo,domainRules:Pqo},jqo="é¢å 帳å®",Nqo="æ¥çææä½¿ç¨è çæ¯ä»ãé¢å è鿬¾ã",Dqo={payments:"æ¯ä»",wallets:"é¢å ",refunds:"鿬¾"},Mqo="使ç¨è ä¿¡ç®±",Eqo="以信箱æå°â¦",Iqo="å»ºç«æé",Oqo="å»ºç«æé",Lqo="éé¡ (USD)",Uqo="æå°",Bqo="æå¤§",Fqo="鿬¾",zqo="æ«ç¡é款",qqo="鿬¾",Hqo="é¡å",Vqo="å ¨é¡é款",Kqo="é¨å鿬¾",Gqo="åå§æ¯ä»",Wqo="é¢å ",Yqo="é¢å ",Qqo="使ç¨è ",Xqo="總è¨",Zqo="已購買",Jqo="çåµ",eHo="æ«ç¡é¢å ",tHo="æ¯ä»",nHo="æ¯ä»çæ ",aHo="æ«ç¡æ¯ä»",oHo="æ¯ä»",sHo="çæ ",rHo="éé¡",iHo="æ¯ä»æé",lHo="鿬¾",cHo="ä¸å¯é款ï¼çæ å¿ é çºå·²æ¯ä»ï¼",dHo="å¨ Stripe Dashboard 䏿¥ç",uHo="æè¿ 7 天失æåæ»ä¿¡ Webhook æ¸ã0=ç¶ è²ï¼1-9=é»è²ï¼10+=ç´ è²ã",mHo="ç°å¸¸",pHo="鿬¾ {{id}}",fHo="éæéé Stripe å {{user}} 鿬¾ã䏿¹çæçºè²»æå¾éåéé¡ä¸æ£é¤ï¼åæ¶å¾é¸å¯å é¤ãåå§ä»æ¬¾é帶çä¿é· Credits æææ¯ä¾ä½å»¢ã",gHo="鿬¾éé¡ (USD)",hHo="æå¤ ${{value}}",yHo="åå ",vHo="æ£å¨è¼å ¥é款é 覽â¦",bHo="鿬¾é 覽è¼å ¥å¤±æï¼é 覽æååç¡æ³æäº¤é款ã",xHo="æ¾ä¸å°å¯é款ç交æââè©²çæ¯ä»å¯è½å·²å ¨é¡é款ã",$Ho="實ä»éé¡",wHo="å·²ééé¡",kHo="æ¬æ¬¡é款",CHo="åæ¶ Credit",SHo="嫿æ¯ä¾åæ¶çåªæ å¸ææ£ Credit {{amount}}",AHo="嫿æ¯ä¾åæ¶çé¡å¤ç¼æ¾ Credit {{amount}}",THo="æ¤é·çåµ",RHo="æ¬æ¬¡éæ¬¾å°æ¤é· {{amount}} ä¿é·çåµé¡åº¦ã",PHo="ç¶ Stripe éå",_Ho="æ¶åæçºè²»ï¼{{fee}}ï¼è¦è Stripe ééææ¬ï¼",jHo="æçºè²»ï¼{{fee}}ï¼",NHo="éé¡è¶ éæå¤§å¯é {{value}}",DHo="è«è¼¸å ¥ææçæ£æ¸éé¡",MHo="ç¨æ¶å·²æ¶è²»é¨å已購 Creditï¼æå¤å¯é {{value}}",EHo="è©²çæ¯ä»å·²å ¨é¡é款",IHo="æ£å®æçºè²»å¾å¯¦ééé¡éå°ï¼é款é¡è³å° {{value}}ã",OHo="åæ¶",LHo="ç¼èµ·é款",UHo="æäº¤ä¸...",BHo="鿬¾å·²æäº¤",FHo="Stripe æå¨ 1-3 åå·¥ä½å¤©å §é忬¾é ã
851å¯©è¨æ¥èªå·²å¯«å
¥ã",zHo="鿬¾å¤±æ",qHo={title:jqo,description:Nqo,tabs:Dqo,emailFilter:Mqo,emailPlaceholder:Eqo,created:Iqo,createdRange:Oqo,amountRange:Lqo,amountMin:Uqo,amountMax:Bqo,refunds:Fqo,noRefunds:zqo,refundId:qqo,refundType:Hqo,typeRefund:Vqo,typePartialRefund:Kqo,originalPayment:Gqo,wallets:Wqo,wallet:Yqo,user:Qqo,total:Xqo,purchased:Zqo,bonus:Jqo,noWallets:eHo,payments:tHo,paymentStatus:nHo,noPayments:aHo,payment:oHo,status:sHo,amount:rHo,paid:iHo,refund:lHo,notRefundable:cHo,viewInStripe:dHo,webhookHealthHint:uHo,unhealthyWebhooks:mHo,refundConfirmTitle:pHo,refundConfirmBody:fHo,refundAmountLabel:gHo,refundMaxHint:hHo,refundReasonLabel:yHo,refundPreviewLoading:vHo,refundPreviewFailed:bHo,refundNoRefundableTx:xHo,refundPaidRow:$Ho,refundAlreadyRefundedRow:wHo,refundThisRefundRow:kHo,refundCreditReclaimRow:CHo,refundCreditCouponNote:SHo,refundCreditExtraNote:AHo,refundBonusReverseRow:THo,refundBonusForfeitWarning:RHo,refundStripeReturnRow:PHo,refundFeeToggle:_Ho,refundPlatformFeeRow:jHo,refundExceedsMax:NHo,refundAmountInvalid:DHo,refundInsufficientCredit:MHo,refundAlreadyFull:EHo,refundBelowMin:IHo,cancel:OHo,confirmRefund:LHo,submitting:UHo,refundSubmittedTitle:BHo,refundSubmittedBody:FHo,refundFailedTitle:zHo},HHo="æ´»åçé",VHo="åç¾å群ãé宿¨¡åææ¬ãæ¨¡åææ£èå®åè´éã",KHo={mobileLabel:"æ´»åæ¨¡çµ",segments:"åç¾",access:"æ¨¡åææ¬",discounts:"æ¨¡åææ£",grants:"å®åè´é",recurring:"é±ææ´»å"},GHo="çæ
",WHo="æä½",YHo="å
¨é«ä½¿ç¨è
",QHo="å§çµ",XHo="æ°¸ä¸éæ",ZHo="çæææ®µ",JHo="ç空å³é·æçæãæéåæé¸æ¥æçç¶æ¥ã",eVo="çæèµ·",tVo="çææ¢",nVo="æ«å",aVo="æ¢å¾©",oVo="æ°å¢",sVo="ç§»é¤",rVo="åªé¤",iVo="æ¸
é¤",lVo="éé",cVo={allKinds:"å
¨é¨é¡å",segmentKindStatic:"éæ
",segmentKindDynamic:"åæ
",grantKindGrant:"ç¼æ¾",grantKindRevoke:"æ¤é·",allStatuses:"å
¨é¨çæ
",statusActive:"çæä¸",statusPaused:"å·²æ«å",statusArchived:"å·²å°å",statusEnded:"å·²çµæ",statusPending:"å¾
èç",statusProcessing:"èçä¸",statusCompleted:"已宿",statusFailed:"失æ"},dVo={title:"åç¾",create:"æ°å»ºåç¾",empty:"æ«ç¡åç¾ã建ç«ä¸åç¨æ¼å®åææ¬ãææ£åè´éã",name:"å稱",namePlaceholder:"ä¾å¦ï¼ä¸åé«é »ä½¿ç¨è
",description:"說æ",kind:"é¡å",kind_static:"éæ
",kind_dynamic:"åæ
",kindHint:"éæ
= æå·¥æé¸ç使ç¨è
åå®ï¼åæ
= å½ä¸è¦åç使ç¨è
ï¼ç©åæéæ°æ´çã",members:"æå¡",materialized:"䏿¬¡éæ°æ´ç",basics:"åºæ¬è³è¨",sheetDescription:"åç¾æå°ä½¿ç¨è
åçµï¼ç¨æ¼å®åæ¨¡åææ¬ãææ£èè´éã",saved:"åç¾å·²å²å",created:"åç¾å·²å»ºç«",rule:"å¹é
è¦å",ruleHint:"æææ¢ä»¶éåææ»¿è¶³ (AND)ã空è¦åä¸å¹é
ä»»ä½äººã",countryIn:"å家屬æ¼",countryInHint:"以éèåéç ISO-2 代碼ï¼ä¾å¦ CN, US, JPã",signupAfter:"è¨»åææ¼",signupBefore:"è¨»åæ©æ¼",minSpend:"ç´¯è¨æ¶è²» >= (ç¾å
)",minSpendHint:"å
å
å«ç´¯è¨æ¶è²»éå°è©²éé¡ç使ç¨è
ã",previewing:"ä¼°ç®ä¸â¦â¦",matchCount:"é è¨å½ä¸ï¼{{value}} 人",membersTitle:"æå¡",membersHint:"æå°ä¸¦æ°å¢ä½¿ç¨è
ãè¦åå½ä¸çæå¡çºå¯è®ã",addMembers:"æ°å¢ä½¿ç¨è
",searchUsers:"ä¾ email æ ID æå°",noUsers:"æ²æç¬¦åç使ç¨è
ã",noMembers:"æ«ç¡æå¡ã",membersAdded:"å·²æ°å¢ {{count}} åæå¡",membersAdded_plural:"å·²æ°å¢ {{count}} åæå¡",source_manual:"æå",source_rule:"è¦å",materializeTitle:"ç©å",materializeHint:"å°è¦åå¿«ç
§ææå¡åå®ãå¯é¨æéæ°å·è¡ä¾æ´æ°ã",materialize:"ç«å³ç©å",materializing:"ç©åä¸â¦â¦",materializeConfirm:"è¦æç®åè¦åéæ°æ´çæå¡åï¼éææ¿æè¦åå½ä¸çå¿«ç
§ã",materializeDone:"å·²ç©å {{
851count}} åæå¡",lastMaterialized:"䏿¬¡ç©å {{value}}",neverMaterialized:"å°æªç©å",deleteSegment:"åªé¤åç¾",deleteConfirm:"è¦åªé¤è©²åç¾åï¼å¼ç¨å®çææ¬ãææ£èè´éå°å¤±å»æ¤å®åã"},uVo={title:"æ¨¡åææ¬",create:"æäºåå",empty:"æ«ç¡ææ¬ã",model:"模å",segment:"åç¾",target:"ç®æ¨",validFrom:"çæèµ·",validTo:"çææ¢",sheetDescription:"å°æåé宿¨¡åæäºæåç¾ï¼å¯é¸æè¨å®çæææ®µã",created:"å·²æäºåå",statusUpdated:"çæ
å·²æ´æ°",deleteConfirm:"è¦ç§»é¤æ¤ææ¬åï¼",noSegmentsTitle:"è«å
建ç«åç¾",noSegmentsDescription:"ææ¬ææåç¾ä¸ç¼ãè«å
å¨ãåç¾ãé 建ç«åç¾ï¼ååä¾æäºæ¨¡åååã",publicHint:"æ¤æ¨¡åçºå
¬é模å ââ ææäººæ¬ä¾å°±å¯ç¨ã",publicModelTitle:"模åçºå
¬é",publicModelWarning:"{{model}} ç®åçºå
¬é模åï¼å¨ã模åãé æ¹çºéå®åï¼æ¤ææ¬ä¸æçæãè«å°é£è£¡å°å
¶åçºéå®ï¼å³å¯éå®çµ¦è©²åç¾ã",createAnyway:"ä»ç¶å»ºç«"},mVo={title:"æ¨¡åææ£",create:"æ°å»ºææ£",empty:"æ«ç¡ææ£ã",model:"模å",audience:"åç¾",audienceHint:"ä¿æå
¨é«ä½¿ç¨è
å³å°ææäººææã",discount:"ææ£",window:"ææ®µ",live:"çæä¸",end:"çµæ",amount:"ææ£",target:"ç®æ¨",name:"å
§é¨å稱",nameHint:"å¯é¸ï¼å
ä¾å
§é¨å註ã",percentLabel:"å¨å¹³å°å¹åºç¤ä¸é¡å¤ææ",percentHint:"1-99%ãä½ç¨å¨æåçå¹³å°å¹ (our_price) ä¹ä¸ï¼é宿¹å¹ã",percentError:"è«è¼¸å
¥ 1 å° 99 ä¹éçå¼ã",previewPlatform:"æå¾å¹³å°å¹",previewVsOfficial:"æ¯å®æ¹ç",pickStart:"é¸æèµ·å§æ¥æ",sheetDescription:"ææ£ä½ç¨å¨å¹³å°å¹ä¹ä¸ï¼å®æ¹å¹å
ä½å°ç
§å±ç¤ºã",created:"ææ£å·²å»ºç«",saved:"ææ£å·²å²å",statusUpdated:"çæ
å·²æ´æ°",deleteConfirm:"è¦åªé¤æ¤ææ£åï¼",liveReadonly:"æ¤ææ£æ£å¨çæ ââ ææ£å¼ãææ®µãå稱已éå®ãéæ«åæçµæå¾æè½ä¿®æ¹ã",terminalReadonly:"æ¤ææ£å·²çµæï¼çºå¯è®ã"},pVo={title:"å®åè´é",create:"æ°å»ºè´é",empty:"æ«ç¡å®åè´éã",time:"æé",kind:"é¡å",kind_grant:"ç¼æ¾",kind_revoke:"æ¤é·",model:"模å",modelHint:"è´é卿鏿¨¡åå
§å
±äº«,任䏿¨¡åæ¶è²»é½å¾åä¸é¤é¡æ£é¤ã",pickModels:"é¸ææ¨¡å",nModels:"å·²é¸ {{count}} 忍¡å",pasteEmails:"è²¼ä¸ä¿¡ç®±æ¹æ¬¡æ°å¢",pasteEmailsPlaceholder:"[email protected], [email protected] ââ æ¯æ´æè¡ãéèæåèåé",importEmails:"è§£æä¸¦æ°å¢",importMatched:"å¹é
å° {{count}} å使ç¨è
ã",importUnmatched:"{{count}} åä¿¡ç®±æ¾ä¸å°å°æä½¿ç¨è
:",importInvalid:"{{count}} åæ ¼å¼ç¡æå·²ç¥é:",importInactive:"{{count}} åå·²å¹é
ä½éæ´»èº,ç¼æ¾æå°è¢«ç¥é:",preset7d:"7 天",preset30d:"30 天",preset90d:"90 天",total:"åè¨",notifyYes:"æ¯",notifyNo:"å¦",recipients:"æ¶ä»¶äºº",amount:"éé¡",expiry:"éæ",expiryHint:"å¯é¸ãæªç¨é¤é¡æå¨è©²æ¥æéæã",audience:"åç¾",bySegment:"æåç¾",byUsers:"æå®ä½¿ç¨è
",segment:"åç¾",users:"使ç¨è
",searchUsers:"ä¾ email æ ID æå°",noUsers:"æ²æç¬¦åç使ç¨è
ã",grantDetails:"ç¼æ¾è©³æ
",amountEach:"æ¯äººéé¡ (ç¾å
)",amountHint:"æ¯äºº 0.01-2000ã",notifyEmail:"以 email éç¥æ¶ä»¶äºº",note:"å註",summary:"{{count}} 人 x {{amount}} = åè¨ {{total}}",send:"ç¼æ¾è´é",sending:"æéä¸â¦â¦",queued:"è´éå·²å
¥é ââ æ£åæ¶ä»¶äººéä¸ä¸ç¼",confirmTitle:"確èªç¼æ¾å®åè´éï¼",confirmMessage:"å {{count}} 人åç¼ {{amount}} (åè¨ {{total}})ï¼",confirmSend:"ç¼æ¾è´é",sheetDescription:"åæåç¾ææå·¥æé¸ç使ç¨è
åå®ç¼æ¾é宿¨¡åçè´éã",batchTitle:"è´éæ¹æ¬¡",succeeded:"æå",failed:"失æ",revokedAmount:"已忶",completedAt:"宿æ¼",revoke:"æ¤é·",revokeConfirm:"è¦å¾ {{model}} ç {{count}} åæ¶ä»¶äººåæ¶æªç¨é¤é¡åï¼",revokeQueued:"æ¤é·å·²å
¥é"},fVo={title:"é±ææ´»å",create:"æ°å»ºé±ææ´»å",editTitle:"ç·¨è¼¯é±ææ´»å",empty:"æ«ç¡é±ææ´»åã建ç«ä¸åï¼ææ¯å¤©/æ¯é±çµ¦åç¾ç¼æ¾å
è²» token æåéå°æ¬¾ã",sheetDescription:"å
è²» token æåéå°æ¬¾ï¼æ¯å鱿çºåç¾éæ°æ´çï¼æ¶çæï¼é¦æ¬¡å¼å«æä¸ç¼ï¼ã",basics:"åºæ¬è³è¨",name:"å稱",namePlaceholder:"ä¾
851å¦ï¼æ¯æ¥å
è²» Kimi token",unit:"å®ä½",unitHint:"Token = æ¯æå
è²» token é¡åº¦ï¼USD = åéå°æ¬¾ï¼å
é宿¨¡åï¼ã",unitLocked:"å®ä½å»ºç«å¾åºå® ââ æå®ä½è«æ°å»ºä¸æ¢æ´»åã",unit_tokens:"Token",unit_usd:"ç¾å
",allUnits:"å
¨é¨å®ä½",targeting:"å®å",models:"模å",modelsHint:"å
è²» token å¯å¨æé¸çå
¨é¨æ¨¡åä¸ä½¿ç¨ã",model:"模å",usdSingleModelHint:"USD æ´»åå
é宿¨¡å ââ 夿¨¡åæè®æ¶è²»ç¡æ³æ¸å±¬ã",pickModels:"é¸ææ¨¡å",nModels:"å·²é¸ {{count}} 忍¡å",nModels_plural:"å·²é¸ {{count}} 忍¡å",audience:"åç¾",audienceHint:"ä¿æå
¨é«ä½¿ç¨è
å³å°ææäººç¼æ¾ã",schedule:"é¡åº¦èæç¨",perPeriod:"æ¯æé¡åº¦",tokensHint:"æ£æ´æ¸ï¼ä¾å¦æ¯æ 100000 tokenã",usdHint:"æ¯æ 0.01-2000 ç¾å
ã",cadence:"鱿",cadence_daily:"æ¯å¤©",cadence_weekly:"æ¯é±",anchorTz:"é¨é»æå",anchorTzHint:"鱿éç以該æåçæ¬å°åå¤çºæºã",startsAt:"éå§",startsAtHint:"å¯é¸ãç空å³ç«å³çæã",endsAt:"çµæ",endsAtHint:"å¯é¸ãç空å³ç¡æªæ¢æ¥æã",immediately:"ç«å³",excludeRisky:"æé¤é¢¨éªå¸³æ¶",thisPeriod:"æ¬æï¼äººæ¸ · å·²ç¨/å·²ç¼ï¼",allStatuses:"å
¨é¨çæ
",status_draft:"è稿",status_active:"çæä¸",status_paused:"å·²æ«å",status_archived:"å·²å°å",created:"é±ææ´»å已建ç«",saved:"é±ææ´»åå·²å²å"},gVo={title:HHo,description:VHo,tabs:KHo,status:GHo,actions:WHo,allUsers:YHo,always:QHo,noExpiry:XHo,window:ZHo,windowHint:JHo,validFrom:eVo,validTo:tVo,pause:nVo,resume:aVo,actionAdd:oVo,actionRemove:sVo,actionDelete:rVo,actionClear:iVo,actionClose:lVo,filters:cVo,segments:dVo,access:uVo,discounts:mVo,grants:pVo,recurring:fVo},hVo="系統å
¬å",yVo="å¨å®ç¶²åæ§å¶å°å±ç¤ºçæ©«å¹
/ å½çªå
¬åã",vVo="å
¬å",bVo="å¨ www åæ§å¶å°å±ç¤ºçæ©«å¹
/ å½çªå
¬åã",xVo="æ°å»ºå
¬å",$Vo="æ«ç¡å
¬åï¼é»æãæ°å»ºå
¬åã建ç«ç¬¬ä¸æ¢ã",wVo="è¨æ¯å
§å®¹",kVo="æ¯æ´å
§åµé£çµï¼[æå](https://⦠æ /è·¯å¾)ï¼å¯æ¾å¤åã",CVo="æéæå",SVo="æéé£çµ",AVo="ç´å¥",TVo="å±ç¤ºä½ç½®",RVo="ä¸ç·æé",PVo="ä¸ç·æé",_Vo="å¯éé",jVo="çæ
",NVo="æ¸æª",DVo="æ¸æªæ¤å
¬åï¼æ¸æªå¾ä½¿ç¨è
å°ä¸åçå°ã",MVo="æ°å»ºå
¬å",EVo="編輯å
¬å",IVo="æ¨é¡",OVo="é¡å",LVo="å
§å®¹",UVo="å±ç¤ºå½¢å¼",BVo="æ©«å¹
",FVo="å½çª",zVo="è稿",qVo="å·²ç¼å¸",HVo="è³è¨",VVo="è¦å",KVo="å´é",GVo="å
æ§å¶å°",WVo="å
å®ç¶²",YVo="å
©è
é½",QVo="é å",XVo="ä¸å³åçï¼æè²¼ä¸ https é£çµï¼å¯çç©ºãæ¯æ´ PNG / JPEG / WebP / GIFï¼ä¸è¶
é 5MBã",ZVo="ä¸å³åç",JVo="ä¸å³ä¸â¦",e9o="ç§»é¤",t9o="åªæ¯æ´ PNGãJPEGãWebPãGIF åçã",n9o="åçä¸è½è¶
é 5MBã",a9o="ä¸å³å¤±æï¼è«é試ã",o9o="æ¨é¡",s9o="æ£æ",r9o="æä½æé",i9o="æéæå",l9o="æéé£çµ",c9o="é¡å",d9o="æ°å¢æé",u9o="åªé¤",m9o="主æé",p9o="次æé",f9o="æåé£çµ",g9o="ç°¡é«ä¸æï¼æ¯æ¬ï¼",h9o="çéåªéå¡«ç°¡é«ä¸æï¼é»ãä¸éµç¿»è¯ãèªåç¿»æå
¶é¤èªè¨ã",y9o="ä¸éµç¿»è¯å
¶é¤èªè¨",v9o="ç¿»è¯ä¸â¦",b9o="å
¶é¤èªè¨ï¼å·²ç¿»è¯ï¼å¯ç·¨è¼¯ï¼",x9o="å·²ç¿»è¯ {{ok}} 種èªè¨",$9o="{{failed}} 種èªè¨ç¿»è¯å¤±æï¼è«æå¡«æé試",w9o="ä¸ææ¯æ¬å·²ä¿®æ¹ä½æªéæ°ç¿»è¯ï¼ä¸æ¹è¯æä»æ¯èææ¡ï¼è«éæ°é»ãä¸éµç¿»è¯ãï¼å¦åæµ·å¤ä½¿ç¨è
æçå°éæå
§å®¹ã",k9o="æ´æ°å¾éæ°å±ç¤ºçµ¦å·²çéç使ç¨è
",C9o="è«å
填寫簡é«ä¸æçæ£æã",S9o={title:hVo,description:yVo,annTitle:vVo,annDescription:bVo,annNewButton:xVo,annEmpty:$Vo,annMessage:wVo,annInlineLinkHint:kVo,annCtaText:CVo,annCtaUrl:SVo,annSeverity:AVo,annAudience:TVo,annStartsAt:RVo,annEndsAt:PVo,annDismissible:_Vo,annStatus:jVo,annArchive:NVo,annArchiveConfirm:DVo,annCreateTitle:MVo,annEditTitle:EVo,annColTitle:IVo,annColType:OVo,annColContent:LVo,annDisplayType:UVo,annTypeBanner:BVo,annTypeModal:FVo,annStatusDraft:zVo,annStatusActive:qVo,annSevInfo:HVo,annSevWarning:VVo,annSevCritical:KVo,annAudConsole:GVo,annAudPublic:WVo,annAudAll:YVo,annHeroImage:QVo,annHeroImageHint:XVo,annHeroImageUpload:ZVo,annHeroImageUploading:JVo,annHeroImageRemove:e9o,annHeroImageBadType:t9o,annHeroImageTooLarge:n9o,annHeroImageUploadFailed:a9o,annModalTitle:o9o,annBody:s9o,annActions:r9o,annActionLabel:i9o,annActionUrl:l9o,annActionVariant:c9o,annActionAdd:d9o,annActionRemove:u9o,annVariantPrimary:m9o,annVariantSecondary:p9o,annVariantLink:f9o,annSourceLocale:g9o,annSourceHint:h9o,annTranslate:y9o,annTranslating:v9o,annOtherLocales:b9o,annTranslateDone:x9o,annTranslateParti
851al:$9o,annTranslateStale:w9o,annBumpRevision:k9o,annTranslateNeedSource:C9o},A9o="å表æ¿",T9o="å¹³å°å¥åº·ãç¨éèåè¦ç峿æ¦è¦½ã",R9o="éæ°æ´ç",P9o="éæ°æ´çä¸",_9o="æ´æ°æ¼ {{time}}",j9o="æ£å¨è¼å
¥ç¸½è¦½",N9o="è¼å
¥ç¸½è¦½å¤±æ",D9o="æ«ç¡è³æ",M9o="æ«ç¡æµé",E9o="å½±ç失æç",I9o="å¹³åå»¶é²",O9o="é¯èª¤é¡å",L9o="ç¡é¯èª¤",U9o="模åç°å¸¸æ¦",B9o="æææ¨¡åæ£å¸¸",F9o="å
ä»¶",z9o="次",q9o="çµå¸³æ¾æ£ç",H9o="鿬¾",V9o="æä»",K9o="é¦å²è½å",G9o={kpis:"æ ¸å¿ææ¨",alerts:"åè¦",health:"系統å¥åº·",payment:"æ¯ä»å¥åº·",revenue:"çæ¶èæé·",trend:"趨å¢",alertSettings:"åè¦è¨å®",leaderboard:"æé·æ¦å®"},W9o={title:"éè«æè¡",boardAria:"鏿æ¦å®",rangeAria:"鏿æéç¯å",boards:{invites:"éè«äººæ¸",revenue:"å²å¼é¡"},ranges:{today:"ä»å¤©","3d":"è¿ 3 天","7d":"è¿ 7 天","30d":"è¿ 30 天"},ofTotal:"å
± {{total}} 人",countPair:"ææ {{valid}} / å
± {{total}}",empty:"該æé段å
§æ«ç¡éè«",failedLoad:"è¼å
¥æ¦å®å¤±æ",validHint:"ææ = é¢¨æ§æ£å¸¸ä¸ç¶å®çæ"},Y9o={requests:"è«æ±æ¸",successRate:"æ¯ä»æåç",activeUsers:"æ´»èºä½¿ç¨è
",newSignups:"æ°è¨»å",newSignupsHint:"å
çµ±è¨æ£å¸¸ä½¿ç¨è
ï¼ä¸å«å·²æ¨è¨ï¼",billedCredit:"è¨è²»é¡åº¦",errorRate:"é¯èª¤ç",avgLatency:"å¹³åå»¶é²",balance:"å¹³å°é¤é¡",vsPrevious:"ç°æ¯ {{delta}}",vsYesterday:"ç°æ¯æ¨æ¥",noChange:"æå¹³",successFailed:"æå {{success}} · 失æ {{failed}}"},Q9o={today:"仿¥çæ¶",trendTitle:"仿¥çæ¶ vs æ¨æ¥",monthDetail:"{{count}} çæåå²å¼ · æ¬æ {{mtd}}"},X9o={summary:"{{paid}} å·²ä» Â· {{failed}} 失æ · {{pending}} å¾
æ¯ä»"},Z9o={paidOfSignups:"{{paid}} å·²é¦å
/ {{signups}} 註å"},J9o={healthy:"æ£å¸¸",degraded:"æè½ä¸é",down:"䏿·",unknown:"æªç¥"},eKo={critical:"å´é",warning:"è¦å",info:"æç¤º",ok:"æ£å¸¸"},tKo={operational:"éè¡æ£å¸¸",degraded:"æè½ä¸é",down:"æå䏿·",upstream:"䏿¸¸æ¸ é",gateway:"Gateway",billing:"è¨è²»",jobs:"ä»»åä½å",tierReason:{ok:"鿍",watch:"éæ³¨ï¼æ¥è¿é¾å¼",warning:"è¦åï¼å·²è¶è¦æç·",critical:"å´éï¼å·²è¶å´éç·"}},nKo={title:"æ´»èºåè¦",empty:"系統ä¸åæ£å¸¸",activeCount:"{{count}} æ¢æ´»èºåè¦",triggeredAt:"è§¸ç¼æ¼ {{time}}",viewDetail:"æ¥ç詳æ
",acknowledge:"確èª",resolved:"已解決"},aKo={title:"åè¦è¨å®",description:"çº 6 é¡åè¦è¨å® warning / critical éæªé¾å¼ï¼ææ¨è¶ç·æéç¥çéãå´éçç´ç±æªä½èªåå¤å®ï¼ç¡éå®ç¨é
ç½®ã",enabled:"åç¨",warnThreshold:"Warning é¾å¼",critThreshold:"Critical é¾å¼",cooldown:"å·å»ï¼åéï¼",cooldownHint:"åä¸åè¦å
©æ¬¡éç¥ä¹éçæçééï¼é²æ¢å·å±ã",rateHint:"æ¯çï¼åå¼ 0â1ï¼å¦ 0.05 = 5%ï¼ã",countHint:"çµå°æ¸å¼ï¼â¥ 0ã",directionHigher:"è¶é«è¶å£ï¼warning ⤠criticalã",directionLower:"è¶ä½è¶å£ï¼warning ⥠criticalã",lastFired:"䏿¬¡è§¸ç¼ {{time}}",neverFired:"徿ªè§¸ç¼",save:"å²åå
¨é¨",saving:"å²åä¸",saved:"åè¦è¨å®å·²å²å",saveError:"å²å失æ",readonlyHint:"ä½ æ²æå¯«å
¥æ¬éï¼åªè½æ¥çã",noData:"æ«ç¡åè¦é
ç½®",errors:{directionHigher:"warning é¾å¼å¿
é ⤠critical é¾å¼",directionLower:"warning é¾å¼å¿
é ⥠critical é¾å¼",rateRange:"æ¯çé¾å¼å¿
é å¨ 0â1 ä¹é",nonNegative:"é¾å¼å¿
é ⥠0",cooldownNonNegative:"å·å»æéå¿
é ⥠0",required:"é¾å¼ä¸è½çºç©º"},types:{payment_success_rate_low:"æ¯ä»æåçéä½",gateway_error_rate_high:"Gateway é¯èª¤çéé«",model_error_spike:"模åé¯èª¤ççªå¢",webhook_dead_letter:"Webhook æ»ä¿¡å ç©",system_component_down:"系統å
件䏿·",negative_balance_exposure:"è² é¤é¡æå£"}},oKo={label:"æéç¯å",today:"ä»å¤©",days7:"7 天",days30:"30 天"},sKo="{{failed}}/{{total}} ä»»å",rKo="{{delta}}pt vs æ¨æ¥",iKo="樣æ¬ä¸è¶³ï¼{{n}}ï¼Â· æ«ä¸åè¦",lKo="æ Gateway å¼å«",cKo="è¿ 7 天 cohort · å
æ£å¸¸ç¨æ¶",dKo="鿬¾ç {{rate}}%",uKo={funnel:"é²å
¥ {{opened}} · æå {{paid}}"},mKo={title:A9o,description:T9o,refresh:R9o,refreshing:P9o,lastUpdated:_9o,loading:j9o,failedLoad:N9o,empty:D9o,noTraffic:M9o,videoFailRate:E9o,avgLatency:I9o,errorTypes:O9o,noErrors:L9o,modelAnomalies:U9o,noAnomalies:B9o,components:F9o,req:z9o,abandonRate:q9o,refunds:H9o,chargebacks:V9o,firstChargeConversion:K9o,sections:G9o,leaderboard:W9o,kpi:Y9o,revenue:Q9o,orders:X9o,conversion:Z9o,componentStatus:J9o,severity:eKo,health:tKo,alerts:nKo,alertSettings:aKo,range:oKo,videoJobsDetail:sKo,vsYesterdayPt:rKo,lowSample:iKo,activeUsersHint:lKo,conversionCohortHint:cKo,refundRate:dKo,checkout:uKo},pKo="è¼å
¥ä¸...",fKo="éè¦ç®¡ç塿æ¬",gKo="ä½ ç帳èç¡æ¬ååæ¤ç®¡çå¡é é¢ã",hKo={loading:pKo,permissionRequired:fKo,permissionDescription:gKo},yKo="æé·çé",vKo="註åçåµãææ£ç¢¼ãéè«è¿å©è credit ç¼æ¾ã人工è´éå¨ä½¿ç¨è
é èçã",bKo={mobileLabel:"æé·æ¨¡çµ",onboarding:"註åèæ°ä½¿ç¨è
",discount:"ææ£ç¢¼",referral:"éè«è¿å©",grants:"Credit ç¼æ¾",topup:"å²å¼è¿ç¾",redeem:"å
æç¢¼",tasks:"ä»»åç"}
851,xKo="åªæ ç¢¼æ¹æ¬¡",$Ko="ä¿é·è¦å",wKo="æ¸é",kKo="æ¹æ¬¡ code",CKo="建ç«ä¸...",SKo="å»ºç«æ¹æ¬¡",AKo="å·²å»ºç« {{count}} ååªæ 碼",TKo="å·²å»ºç« {{count}} ååªæ 碼",RKo="æ¹æ¬¡ {{code}}",PKo="å·²è¤è£½",_Ko="å
¨é¨è¤è£½",jKo="Credit ç¼æ¾",NKo="便º",DKo="çæ
",MKo="æ«ç¡ç¼æ¾è¨é",EKo="åªæ 碼å
æã註åçåµå人工è´éæé¡¯ç¤ºå¨é裡ã",IKo="æé",OKo="使ç¨è
",LKo="éé¡",UKo="註åçåµ",BKo="æ§å¶æ°ä½¿ç¨è
註åå¾èªåç¼æ¾ç creditãééå¾ï¼ä¹å¾çæ°è¨»å使ç¨è
䏿æ¶å°è´éã",FKo="åç¨è¨»åé credit",zKo="éé¡ (USD)",qKo="å²å註åçåµ",HKo="å²åä¸...",VKo="ç®åéé¡ {{amount}}",KKo="éè«è¿å©",GKo="è¨å®éè«äººå被éè«äººçè¿å©æ¯ä¾ãåçµéæ¾æéãå°é å帳å®é 話è¡ã",WKo="åç¨éè«è¿å©",YKo="è¿å©æªä½",QKo="æ°å¢æªä½",XKo="è¿å©å°è±¡",ZKo="éå§å¤©æ¸",JKo="çµæå¤©æ¸",eGo="æ¯ä¾",tGo="æ¨ç±¤",nGo="æä½",aGo="éè«äºº",oGo="被éè«äºº",sGo="ä¸è¨çµæ",rGo="åªé¤æªä½",iGo="鿾延é²(天)",lGo="å®çå°é (USD)",cGo="æä½å²å¼(USD,空=ç¡)",dGo="è¿å©éæå¤©æ¸(空=æ°¸ä¸éæ)",uGo="帳å®é 忏 banner",mGo="Banner æ¨é¡",pGo="坿¨é¡",fGo="åæ¸æ¨¡å¼",gGo="çµ±ä¸æªæ¢æé",hGo="æ¯å被éè«äººçè¦çª",yGo="çµææé",vGo="å²åéè«è¨å®",bGo="v{{version}}",xGo="å²åè¿å©æªä½ã鿾延é²ãå°é æéæå¤©æ¸æç¼å¸ä¸åæ°çæ¬ã已建ç«çéè«éä¿æ°¸ä¹
沿ç¨ç¶å®æççæ¬ï¼åªææ°è¨»åæèµ°æ°è¦åãæ«ååªå½±é¿æ°è¨»åã",$Go="çæ¬æ·å²",wGo="çæ¬",kGo="çæ
",CGo="éè«éä¿",SGo="è¿å©æªä½",AGo="ç¼å¸æ¼",TGo="éå ´æ¼",RGo="ç®å",PGo="çæ¬æç´°",_Go="éè«è¨é",jGo="è¿å©è¨é",NGo="éè«äºº",DGo="被éè«äºº",MGo="ç¶å®æé",EGo="è§è²",IGo="å°ææ¹",OGo="å²å¼é¡",LGo="è²»ç",UGo="éé¡",BGo="æªä½",FGo="éæ¾æé",zGo="è©²çæ¬ä¸æ«ç¡éè«éä¿",qGo="è©²çæ¬ä¸æ«ç¡è¿å©è¨é",HGo="è¼å
¥æ´å¤",VGo="å²å¼ææ£ç¢¼",KGo="ææ£ç¢¼éä½ä½¿ç¨è
çµç®æç實ä»éé¡ï¼ä»æ¬¾æåå¾å°å¸³å²å¼å
¨é¡ã卿¤è¨å®å¥½ææ£ï¼åå°ä¸æ¹ç¢çç¢¼æ¹æ¬¡ã",GGo="åç¨ææ£ç¢¼",WGo="ææ£é¡å",YGo="åºå®é¡æµæ£(USD)",QGo="ç¾åæ¯ææ£(%)",XGo="æµæ£éé¡(USD)",ZGo="ææ£ç¾åæ¯(0-100)",JGo="å²åææ£",eWo="é è¨ä½é¤é¡æé",tWo="æ°ä½¿ç¨è
é è¨å¨æ¤é檻æ¶å°ä½é¤é¡éµä»¶æéãæ¹é裡åªå½±é¿ä¹å¾çæ°è¨»åï¼ä¸å溯已æé¢å
ã",nWo="éæª» (USD)",aWo="å²åéæª»",oWo="ç®å {{amount}}",sWo="æä¸æ¹ææ£è¦åç¢çææ£ç¢¼ã",rWo="ç®åçæ:{{state}} · æµ {{value}}",iWo="å·²åç¨",lWo="å·²åç¨",cWo="å·²ç¼æ¾ç碼",dWo="é¸ä¸åæ¹æ¬¡æ¥çæ¯å碼被誰å
æã",uWo="æ«ç¡æ¹æ¬¡",mWo="å¨ä¸æ¹ç¢çä¸åæ¹æ¬¡ï¼éå§è¿½è¹¤å
æã",pWo="總æ¸",fWo="å·²ç¨",gWo="ä½ç¨ä¸",hWo="å¯ç¨",yWo="{{code}} ç碼",vWo="è©²æ¹æ¬¡æ«ç¡ç¢¼",bWo="碼",xWo="使ç¨è
",$Wo="å
ææé",wWo="實ä»",kWo="ææ£",CWo="å»ºç«ææ£ç¢¼",SWo="å
±ç¨ç¢¼æ¯ä¸å碼å¯ä¾å¤ä½ä½¿ç¨è
åå
ææå¤ N 次;å¯ä¸ç¢¼æ¹æ¬¡åæ¯ N å䏿¬¡æ§ç¢¼ã",AWo="碼é¡å",TWo="å®ä¸å
±ç¨ç¢¼",RWo="å¯ä¸ç¢¼æ¹æ¬¡",PWo="碼å
§å®¹(ç空å鍿©ç¢ç)",_Wo="ä¾å¦ WELCOME100",jWo="總å
ææ¬¡æ¸ (N)",NWo="æ¯ä½ä½¿ç¨è
",DWo="å°ææé(é¸å¡«)",MWo="åçµ(é¸å¡«)",EWo="建ç«å
±ç¨ç¢¼",IWo="å
±ç¨ç¢¼å·²å»ºç«",OWo="çºæ¤æ¹æ¬¡æå®ææ£(å¦åå¥ç¨ä¸æ¹è¦å)",LWo="å
±ç¨ç¢¼",UWo="ä¸å碼,å¤ä½ä½¿ç¨è
ãå·²ç¨æ¬¡æ¸çµ±è¨å¯¦ä»å
æã",BWo="æ«ç¡å
±ç¨ç¢¼",FWo="å·²ç¨ / ä¸é",zWo="æ¯ä½ä½¿ç¨è
",qWo="å°æ",HWo="åç¨",VWo="åç¨æ¤ç¢¼?",KWo="æ°ççµç®æç«å³è¢«æä¸ãå·²é²å
¥çµç®çè¨å®ä»å¯å®æã",GWo="碼已åç¨",WWo="å¯åº CSV",YWo="çæ
",QWo="é»åéµä»¶",XWo={code:"碼",discount:"ææ£",redeemed:"å·²å
æ",cap:"ä¸é",perUser:"æ¯ä½ä½¿ç¨è
",status:"çæ
",expiresAt:"å°ææé",batch:"æ¹æ¬¡",createdAt:"å»ºç«æé",redeemedBy:"å
æè
",redeemedAt:"å
ææé",paid:"實ä»",discountAmount:"ææ£",email:"éµç®±",credited:"å°è³¬",bonus:"å è´",paidAt:"仿¬¾æé"},ZWo={title:"å²å¼è¿ç¾",description:"å²å¾å¤éå¾å¤ãæ¯æªå¯ç¼éç¨è´é¡ï¼
851æåéå°ææ¨¡åçµçè´é¡ã",enabled:"åç¨å²å¼è¿ç¾",saved:"å²å¼è¿ç¾å·²å²å",tiers:"è¿ç¾æªä½",tiersHint:"æå²å¼é¡å½ä¸é檻æé«çæªãåéè´é¡å
é©ç¨æ¼åæ¥æå/ååå¼å«ï¼ä¸å«å½±çæé忥åçä»»åã",noTiers:"æ«ç¡æªä½ãæ°å¢ä¸æªéå§è¿ç¾ã",min:"å²å¼é檻 (USD)",rewardType:"ç嵿¹å¼",bonus:"åºå® (USD)",percent:"ç¾åæ¯ (%)",rewardBonus:"è´ééé¡ (USD)",rewardPercent:"å²å¼é¡ç¾åæ¯ (%)",expiryDays:"æææ(天,ç空=ä¸éæ)",noExpiry:"ä¸éæ",scope:"è´é¡ä½ç¨å",scopeHint:"éç¨è´é¡ä»»ææ¨¡åå¯ç¨ï¼é¸æ¨¡åçµåè´é¡åªè½ç¨æ¼è©²çµæ¨¡åã",scopeGeneral:"éç¨(ä»»ææ¨¡å)",removeTier:"åªé¤æªä½",addTier:"æ°å¢æªä½",antifraud:"é²è
",minTopup:"èµ·éå²å¼é¡(USD,ç空=ä¸é)",maxBonusPerUser:"å®ä½¿ç¨è
è¿ç¾ä¸é(USD,ç空=ä¸é)",none:"ä¸é",excludeRisky:"æé¤å·²æ¨è¨/å°ç¦ä½¿ç¨è
",save:"å²åå²å¼è¿ç¾",createScope:"æ°å»ºå鿍¡åçµ",createScopeDescription:"åé¸åéè´é¡å¯æ¶è²»ç模åï¼ç¶å¾å¨ä¸æ¹æªä½è£¡å¼ç¨è©²çµã",scopeName:"çµå",scopeNamePlaceholder:"髿¯å©æ¨¡å",scopeModels:"模å",pickModels:"é¸ææ¨¡å",nModels:"{{count}} 忍¡å",createScopeButton:"å»ºç«æ¨¡åçµ",scopeCreated:"模åçµå·²å»ºç«"},JWo="ç¢çå
æç¢¼",eYo="å²å¼å¡å¼å
æç¢¼ã使ç¨è
å¨å¸³å®é 輸å
¥å
æç¢¼ï¼é¢é¡ç´æ¥å
¥å¸³ï¼è´éé¤é¡ï¼ç¡é仿¬¾ï¼ã",tYo="æ¹æ¬¡å稱ï¼é¸å¡«ï¼",nYo="ä¾å¦ï¼Conf-2026 è´é",aYo="ç¢çæ¸é",oYo="å®å¼µé¢é¡ï¼USDï¼",sYo="æ¯å¸³è卿¬æ¹å¯å
ææ¸ï¼ç空 = ä¸éï¼",rYo="ä¸é",iYo="å
ææªæ¢æéï¼é¸å¡«ï¼",lYo="é宿¨¡å(å¯é¸)",cYo="éç¨é¤é¡(ä¸éå®)",dYo="å·²é¸ {{count}} 忍¡å",uYo="ç空 = éç¨é¤é¡;é¸ä¸ç模åå
±äº«åä¸çå°æ¬¾é¡åº¦ã",mYo="å
æå¾é¡åº¦æææ(天,ç空 = æ°¸ä¹
)",pYo="æ°¸ä¹
ææ",fYo="{{n}} 天",gYo="é宿¨¡å",hYo="é¡åº¦æææ",yYo="éç¨é¤é¡",vYo="ç¢çå
æç¢¼",bYo="è«ç«å³å²åãä¹å¾ä¹å¯å¨æ¹æ¬¡æ¸
å®ç¨ãææå¯åºãéæ°åå¾ã",xYo="å
æç¢¼æ¹æ¬¡",$Yo="é»é¸æ¹æ¬¡æ¥çå®å¼µæç´°ï¼ãææå¯åºãå¯éæ°å¯åºææã",wYo="å°ç¡å
æç¢¼æ¹æ¬¡",kYo="æ¹æ¬¡",CYo="é¢é¡",SYo="ææå¯åº",AYo="æ¤é·é張已å
æç碼ï¼",TYo="å¾ä½¿ç¨è
é¤é¡è¿½åå°æªæ¶è²»çé¨åï¼å·²æ¶è²»çé¨åç¡æ³æ¶åã",RYo="æ¤é·",PYo="å·²æ¤é· {{amount}}",_Yo="å·²å¯åºå
æç¢¼",jYo="åç¨æ¬æ¹æªå
æç碼ï¼",NYo="ææå°æªå
æç碼å°å¤±æï¼å·²å
æç碼ä¸åå½±é¿ã",DYo="å·²åç¨ {{n}} 張碼",MYo="å²å¼å è´ %",EYo="å è´æ¯ä¾(%)",IYo="è´éæææ(天,å¯é¸)",OYo="ç空 = æ°¸ä¸éæ",LYo={view:"å°è³¬",title:"碼 ····{{code}} çå²å¼æµæ°´",email:"ç¨æ¶",credited:"å°è³¬",bonus:"å è´",summary:"{{count}} ç · {{users}} 人 · å¯¦æ¶ {{paid}} · å è´ {{bonus}}",empty:"該碼æ«ç¡å²å¼æµæ°´"},UYo={configTitle:"ä»»åçè¨å®",configDescription:"éé¡ãééèå¯æäº¤å¹³å°ã任忿¡å¨ç¿»è¯æªæ¡è£¡ï¼ä¸å¨éè£¡ãæ¹å®ä¸æ¬¡è¼å
¥å³çæï¼ä¸éç¼çã",enabled:"åç¨ä»»åç",tasksTitle:"ä»»å",taskKey:"ä»»å key",amount:"éé¡ï¼USDï¼",hosts:"å¯æäº¤å¹³å°",hostsHint:"ä¸å¨æ¤æ¸
å®å
§çé£çµæå¨æäº¤æç´æ¥è¢«æã",taskEnabled:"å°ä½¿ç¨è
å¯è¦",addTask:"æ°å¢ä»»å",guardsTitle:"鲿¿«ç¨é檻",dailyCap:"æ¯æ¥å¾
審ä¸é",dailyCapHint:"0 = ä¸éãRedis æ
éæ fail-openã",minAge:"帳èæç註å天æ¸",minAgeHint:"0 = ä¸è¨è¨»åæé·é檻ã",saved:"ä»»åçå·²å²å",queueTitle:"æäº¤ä½å",queueCount:"å
± {{count}} ç",empty:"ç®åæ²æç´éã",approve:"ééä¸¦ç¼æ¾",approved:"å·²ééï¼é¡åº¦å·²ç¼æ¾",reject:"éå",rejected:"å·²éå",confirmReject:"確èªéå",reasonPlaceholder:"éåççç±æ¯ä»éº¼ï¼",duplicate:"æ¤é£çµå¦æ {{count}} å帳èæäº¤é",status:{pending:"å¾
審",approved:"å·²éé",rejected:"å·²éå"}},BYo={title:yKo,description:vKo,tabs:bKo,couponBatch:xKo,promotionRule:$Ko,count:wKo,batchCode:kKo,creating:CKo,createBatch:SKo,codesCreated:AKo,codesCreated_plural:TKo,batch:RKo,copied:PKo,copyAll:_Ko,creditGrants:jKo,source:NKo,status:DKo,noGrants:MKo,noGrantsDescription:EKo,time:IKo,user:OKo,amount:LKo,signupBonus:UKo,signupBonusDescription:BKo,signupBonusEnabled:FKo,signupBonusAmount:zKo,saveSignupBonus:qKo,saving:HKo,currentSignupBonus:VKo,referral:KKo,referralDescription:GKo,referralEnabled:WKo,referralRewardTiers:YKo,addTier:QKo,tierRole:XKo,tierFromDay:ZKo,tierUntilDay:JKo,tierPercent:eGo,tierLabel:tGo,tierAction:nGo,roleReferrer:aGo,roleReferee:oGo,noEndDay:sGo,removeTier:rGo,releaseDelayDays:iGo,referralCap:lGo,referralMinTopup:cGo,referralExpiryDays:dGo,bannerEnabled:uGo,bannerTitle:mGo,bannerSubtitle:pGo,bannerMode:fGo,bannerModeGlobal:gGo,bannerModeWindow:hGo,bannerEndsAt:yGo,saveReferral:vGo,referralVersion:bGo,referralPublishHint:xGo,referralVersionHistory:$Go,versionCol:wGo,versionStatus:kGo,versionBindings:CGo,versionTiers:SGo,versionPublished:AGo,versionSuperseded:TGo,versionCurrent:RGo,versionDetail:PGo,versionBindingsSection:_Go,versionCashbackSection:jGo,colInviter:NGo,colInvitee:DGo,colBoundAt:MGo,colRole:EGo,colCounterparty:IGo,colTopup:OGo,colRate:LGo,colAmount:UGo,colTier:BGo,colReleasedAt:FGo,noBindings:zGo,noCashback:qGo,loadMore:HGo,discountRule:VGo,discountRuleDescription:KGo,discountEnabled:GGo,discountType:WGo,discountFixed:YGo,discountPercent:QGo,discountValueFixed:XGo,discountValuePercent:ZGo,saveDiscount:JGo,defaultLowBalanceThreshold:eWo,defaultLowBalanceThresholdDescription:tWo,defaultLowBalanceThresholdAmount:nWo,saveDefaultLowBalanceThreshold:aWo,currentDefaultLowBalanceThreshold:oWo,couponBatchDescription:sWo,discountEffective:rWo,stateEnabled:iWo,stateDisabled:lWo,couponTrace:cWo,couponTraceDescription:dWo,noBatches:uWo,noBatchesDescription:mWo,batchTotal:pWo,batchRedeemed:fWo,batchReserved:gWo,batchActive:hWo,co
851desInBatch:yWo,noCodes:vWo,code:bWo,redeemedBy:xWo,redeemedAt:$Wo,paid:wWo,discount:kWo,createIssuance:CWo,createIssuanceDescription:SWo,formLabel:AWo,formShared:TWo,formUniqueBatch:RWo,sharedCodeText:PWo,sharedCodeRandomHint:_Wo,sharedMaxRedemptions:jWo,sharedPerUser:NWo,expiresAt:DWo,batchCodeOptional:MWo,createSharedCode:EWo,sharedCodeCreated:IWo,batchOwnDiscount:OWo,sharedCodesList:LWo,sharedCodesListDescription:UWo,noSharedCodes:BWo,colRedeemedTotal:FWo,colPerUser:zWo,colExpiry:qWo,disableCode:HWo,disableCodeConfirmTitle:VWo,disableCodeConfirmMessage:KWo,codeDisabled:GWo,exportCsv:WWo,statusFilter:YWo,filterByEmail:QWo,csv:XWo,topup:ZWo,redeemCreate:JWo,redeemCreateDescription:eYo,redeemBatchName:tYo,redeemBatchNameHint:nYo,redeemCount:aYo,redeemFaceValue:oYo,redeemPerUserLimit:sYo,redeemUnlimited:rYo,redeemExpiresAt:iYo,redeemModels:lYo,redeemModelsAll:cYo,redeemModelsCount:dYo,redeemModelsHint:uYo,redeemValidityDays:mYo,redeemValidityForever:pYo,redeemValidityDaysValue:fYo,redeemColModels:gYo,redeemColValidity:hYo,redeemGeneralBalance:yYo,redeemCreateBtn:vYo,redeemRevealHint:bYo,redeemBatches:xYo,redeemBatchesDescription:$Yo,redeemNoBatches:wYo,redeemBatchCol:kYo,redeemFace:CYo,redeemReveal:SYo,redeemReverseTitle:AYo,redeemReverseMessage:TYo,redeemReverseBtn:RYo,redeemReversed:PYo,redeemRevealed:_Yo,redeemDisableBatchTitle:jYo,redeemDisableBatchMessage:NYo,redeemBatchDisabled:DYo,discountTypeBonusPercent:MYo,discountValueBonusPercent:EYo,bonusExpiryDays:IYo,bonusExpiryDaysHint:OYo,sharedPayments:LYo,tasks:UYo},FYo="模åç®é",zYo="模åç®éï¼å»ºç«ã編輯ãç¼å¸ã",qYo={label:"å±ç¤ºå¾½ç« ",hint:"ç±é / ç¦å©æ¨ç±¤æé¡¯ç¤ºå¨ä½¿ç¨è
å´ç模åè广 ¼é ã",hot:"ç±é",benefit:"ç¦å©"},HYo="æ°å¢æ¨¡å",VYo="編輯 {{model}}",KYo="編輯模å",GYo="æ°å¢æ¨¡å",WYo="éé",YYo="åºæ¬è³æèå
§å®¹ä¸èµ·å²åï¼å®å¹åçæ
è®æ´æç«å³çæã",QYo="å
å»ºç«æ¨¡åè稿ãå®å¹èç¼å¸å¨è稿建ç«å¾åè¨å®ã",XYo={basics:"åºç¤",basicsHint:"身份ã䏿¸¸æ å°ãåå®ã",config:"è¨å®",configHint:"身份ã䏿¸¸è·¯ç±ãé¡åèè½åã",protocols:"åå®",protocolsHint:"æ¤æ¨¡åå°å¤æä¾åªäº API åå®ã",content:"å
§å®¹èå±ç¤º",contentHint:"å¤èªæè¦ / æè¿°èæåºã"},ZYo="æä¾åæ¨è",JYo="é¸æå·²ç¥æä¾åï¼ææå¡«èªè¨æ¨èã",eQo="æ¨¡åæ¨è",tQo="å¥å",nQo="éèåéçæ¥æ¾å¥åï¼ç¨æ¼å¯å
¥è審é±ã",aQo="䏿¸¸ä¾æº(客æ¶å¯è¦)",oQo="客æ¶å¨æ¨¡å / æ¥èªä¸çå°ç便ºæ¨ç±¤ãç空 = å» åã忍¡åå¤ä¾æºå¤å¹æç¨å®åååã",sQo="å¹³å°",rQo="â é¸æå¹³å° â",iQo="䏿¸¸æ¨¡å id(å¯é¸ï¼å¾ä¸æ¸¸é¸æææå輸å
¥)",lQo="å¾ä¸æ¸¸é¸æ...",cQo="䏿¸¸ä¸å¯ç¨",dQo="åå®",uQo="輸å
¥å¹æ ¼ / 1M (USD)",mQo="輸åºå¹æ ¼ / 1M (USD)",pQo="è±ææè¦",fQo="é 覽",gQo="(ç¡æè¦)",hQo="ç¡åå®",yQo="åæ¶",vQo="å²å",bQo="建ç«è稿",xQo={basic:"身份èè·¯ç±",pricing:"å®å¹",content:"å
§å®¹èå±ç¤º"},$Qo={config:"â è¨å®",protocols:"â¡ åå®",pricing:"â¢ å¹æ ¼",display:"å
§å®¹èå±ç¤º",back:"ä¸ä¸æ¥",next:"ä¸ä¸æ¥",create:"å»ºç«æ¨¡å"},wQo="ä¸ä¸æé·åº¦(token)",kQo="模å坿¥æ¶çæå¤§è¼¸å
¥ãä¸ç¢ºå®å¯ç空ã",CQo="æå¤§è¼¸åº token",SQo="模å宿¬¡åè¦å¯ç¢ççæå¤§ token æ¸ã",AQo={status:"çæ
",visibility:"å¯è¦æ§",hint:"çå½é±æè®æ´æç«å³çæ(é確èª)ï¼ç¨ç«æ¼å²åã",confirmStatus:"å°çæ
è¨çºã{{status}}ãï¼ç«å³çæã",confirmVisibility:"å°å¯è¦æ§è¨çºã{{visibility}}ãï¼ç«å³çæã",statusChanged:"çæ
å·²è¨çº {{status}}ã",visibilityChanged:"å¯è¦æ§å·²è¨çº {{visibility}}ã",publishBlocked:"ç¡æ³ç¼å¸ï¼ç¼ºå°æ ¸å¿å®å¹å åï¼è«å
å¨ãå®å¹ãTab è¨å®ã",statusOption:{draft:"è稿",published:"å·²ç¼å¸",deprecated:"å·²æ£ç¨",archived:"å·²æ¸æª"},visibilityOption:{public:"å
¬é",hidden:"é±è"},availability:"å¯ç¨æ§",confirmAvailable:"éæ°æ¨è¨çºå¯ç¨ï¼ç«å³çæã",confirmUnavailable:"æ¨è¨çºæ«æä¸å¯ç¨ï¼ä»ä¿çå¨å表ä¸ï¼
851ç½®ç°ï¼ä½ééå¼å«å°è¢«æçµã",availableChanged:"å·²æ¨è¨çºå¯ç¨ã",unavailableChanged:"å·²æ¨è¨çºæ«æä¸å¯ç¨ã",availabilityOption:{available:"å¯ç¨",unavailable:"æ«æä¸å¯ç¨"},audience:"éæ¾å°è±¡",audienceOption:{everyone:"å
¨é¨ä½¿ç¨è
",paid_only:"å
éå·²å
å¼"},confirmPaidOnly:"æè©²æ¨¡åéå®çºå
å·²å
å¼å¸³æ¶å¯ç¨?模åä»ç
§å¸¸ä¸æ¶é²åº,æªå
å¼ä½¿ç¨è
å¼å«ææ¶å° 403 並被å¼å°å»å
å¼ã",confirmEveryone:"æè©²æ¨¡åå°å
¨é¨å¸³æ¶éæ¾?ç«å³çæã",paidOnlyChanged:"å·²éå®çºå
å·²å
å¼å¸³æ¶å¯ç¨ã",everyoneChanged:"å·²å°å
¨é¨å¸³æ¶éæ¾ã"},TQo="輸å
¥æ¨¡æ
",RQo="宣忍¡å坿¥æ¶ç輸å
¥ï¼å
å«ååãé³è¨ãå½±çåæªæ¡ã",PQo="è¼¸åºæ¨¡æ
",_Qo="ç´æ¥é¤µçµ¦ç¼å¸éï¼å« text é text 輸å
¥/輸åºå¹ï¼å« image/video/embeddings éå°æå åã",jQo="åçè¨è²»å£å¾",NQo="å½±çè¨è²»å£å¾",DQo="䏿¸¸å°è©²è¼¸åºæä»éº¼ç¶åº¦è¨è²»ãç¼å¸åå¿
é 宣åï¼ç¼å¸éæè¦æ±å°æç广 ¼å åã",MQo="â 鏿è¨è²»å£å¾ â",EQo="æ token(image_output_token)",IQo="æå¼µ(per_call_image)",OQo="æç§(video_per_second)",LQo="ææ¬¡(video_per_call)",UQo="å±ç¤ºæåº",BQo="å¿
é æ¯éè² æ´æ¸ã",FQo="編輯èªè¨",zQo="䏿¸¸ç¼å¸æ¥æ",qQo="æè¦(ç®åèªè¨)",HQo="æè¿°(Markdownï¼ç®åèªè¨)",VQo={provider:"æä¾å",status:"çæ
",visibility:"å¯è¦æ§",allStatuses:"å
¨é¨æ¨¡åçæ
",allVisibility:"å
¨é¨å¯è¦æ§",allProviders:"å
¨é¨æä¾å",search:"æå°æ¨¡åæ¨è",mobileTitle:"篩é¸"},KQo={label:"模å",empty:"æ«ç¡æ¨¡å",model:"模å",provider:"æä¾å",source:"䏿¸¸ä¾æº",status:"çæ
",visibility:"å¯è¦æ§",action:"æä½",edit:"編輯",setStatus:"è¨å® {{model}} ççæ
",setVisibility:"è¨å® {{model}} çå¯è¦æ§",confirmSet:"å° {{model}} ç {{field}} è¨çºã{{value}}ãï¼",sub2api:"Sub2API æ å°",textPrice:"广 ¼(輸å
¥ / è¼¸åº $/M)",priceByTokens:"{{kind}} · æ token",imageOutput:"åç輸åº",officialPrice:"宿¹",saved:"ç {{pct}}%"},GQo={invalidPrice:"广 ¼å¿
é æ¯ >=0 çæ¸åï¼æç空ã",highRisk:"æ¤è®æ´æå½±é¿ç·ä¸ gateway è§£æï¼å¯è½è®ä½¿ç¨è
éå° 404ã確èªç¹¼çºï¼",stale:"模å已被å
¶ä»äººä¿®æ¹ï¼è«éé䏦鿰éåå¾å編輯ã"},WQo={savesImmediately:"å®å¹è®æ´æç«å³çæï¼ä¸ååºé¨å²åæ§å¶ã",createPriceFailed:"模å已建ç«ï¼ä½é¨åå®å¹æªå¯«å
¥ï¼è«å¨ã广 ¼ãé è£ä¸ã",factors:{title:"å®å¹å å",hint:"æ¯ä¸è¡æ¯ä¸åååè¨è²»å®å
(æå輸å
¥/輸åºãå¿«åãåçç)ãçæä¸çè¡å¾å
¶çææ¥æèµ·æ±ºå®è¨è²»ï¼æ·å²è¡è¨ééå¾å¹æ ¼ã",liveBanner:"é裡çè®æ´æç«å³çæä¸¦å¯«å
¥å¹æ ¼æ·å²ï¼ä¸ååºé¨å²åæéæ§å¶ã",draftHint:"è«å
å²å模åèç¨¿ï¼æ¨¡å建ç«å¾æè½å¨æ¤è¡å
§ç·¨è¼¯å®å¹å åã",addFactor:"æ°å¢å å",changePrice:"æ¹å¹",expire:"失æ",confirmExpire:"è®éä¸è¡å å失æï¼å®æç«å³åæ¢çæä¸¦ç§»å
¥æ·å²ã",changeSaved:"å å广 ¼å·²æ´æ°ã",expired:"å å已失æã",factor:"å å",tier:"æªä½",tierNone:"(ç¡æªä½)",unit:"å®ä½",ourPrice:"ææ¹å¹æ ¼ (USD)",officialPrice:"宿¹å¹ (USD)",officialAbbr:"宿¹",source:"便º(å¯é¸ URL æå註ï¼â¤128 åå
)",historyLabel:"æ·å²({{count}})",emptyTitle:"æ«ç¡çæä¸çå å广 ¼",empty:"é»æãæ°å¢å åãä¾è¨å®ã",loadError:"ç¡æ³è¼å
¥å®å¹å å",draftEditorHint:"ç¾å¨å°±å¡«å¹ï¼æå
ç空ã建好模åå¾åå ã",draftEmpty:"å°æªæ°å¢å¹æ ¼ã",remove:"ç§»é¤",factorOption:{text_input:"æå輸å
¥ (LLM)",text_output:"æåè¼¸åº (LLM)",cache_read:"å¿«åè®å",cache_write_5m:"å¿«å寫å
¥ (5m TTL)",cache_write_1h:"å¿«å寫å
¥ (1h TTL)",image_input_token:"åç輸å
¥ token",image_output_token:"åçè¼¸åº token",per_call_image:"åç(ææ¬¡)",video_per_call:"å½±ç(ææ¬¡)",video_per_second:"å½±ç(æç§)",web_search_call:"網路æå°å¼å«"},unitOption:{per_1m_tokens:"æ¯ 1M tokens",per_image:"æ¯å¼µ",per_call:"æ¯æ¬¡",per_second:"æ¯ç§"},conditions:"æ¢ä»¶ JSON(å¯é¸)"},discount:{toggle:"æææ£çæ¹å¹",hint:"ææ¯åå åè¨çºå®æ¹å¹çæåæ¯ä¾(0.5 = 5 æ)ãå
è²»å å(ææ¹å¹çº 0)åç¡å®æ¹å¹çå åæè·³éã",rate:"ææ£ç",preview:"é 覽",apply:"å¥ç¨",allowMarkup:"å
許å å¹(ææ£çå¤§æ¼ 1 å³é«æ¼å®æ¹å¹)",noFactors:"æ²æå
851¯æ¹å¹ççæå åã",confirmTitle:"å°ææå åå¥ç¨ææ£ï¼",confirmBody:"å° {{count}} åå åæ¹çºå®æ¹å¹ç {{rate}} åãå·²çæ¬åï¼ä¸å½±é¿æ·å²è¨è²»ã",applied:"å·²æå®æ¹å¹ {{rate}} åæ¹å¹ {{count}} åå åã",stale:"é 覽å¾å¹æ ¼å·²è®ï¼è«éæ°é 覽ã",skipReason:{free_factor_our_zero:"å
è²»å å(ææ¹å¹çº 0)ï¼ä¿æä¸è®",no_official:"ç¡å®æ¹å¹ï¼ç¡æ³è¨ç®",official_zero:"宿¹å¹çº 0ï¼å·²è·³é"}}},YQo="æ¾æ£æªå²åçè®æ´ï¼",QQo={title:FYo,description:zYo,badges:qYo,addModel:HYo,editModel:VYo,editModelShort:KYo,newModel:GYo,close:WYo,sheetDescription:YYo,sheetDescriptionNew:QYo,sections:XYo,providerSlug:ZYo,providerSlugHint:JYo,modelSlug:eQo,aliases:tQo,aliasesHint:nQo,source:aQo,sourceHint:oQo,platform:sQo,platformUnset:rQo,sub2apiModelId:iQo,chooseSub2api:lQo,upstreamUnavailable:cQo,protocols:dQo,inputPrice:uQo,outputPrice:mQo,enSummary:pQo,preview:fQo,noSummary:gQo,noProtocol:hQo,cancel:yQo,save:vQo,createDraft:bQo,tabs:xQo,steps:$Qo,contextWindow:wQo,contextWindowHint:kQo,maxOutputTokens:CQo,maxOutputTokensHint:SQo,lifecycle:AQo,inputModalities:TQo,inputModalitiesHint:RQo,outputModalities:PQo,outputModalitiesHint:_Qo,billingStyleImage:jQo,billingStyleVideo:NQo,billingStyleHint:DQo,billingStyleUnset:MQo,billingStyleToken:EQo,billingStylePerImage:IQo,billingStylePerSecond:OQo,billingStylePerCall:LQo,displayOrder:UQo,displayOrderInvalid:BQo,contentLocale:FQo,upstreamReleaseAt:zQo,summary:qQo,descriptionField:HQo,filters:VQo,table:KQo,errors:GQo,pricing:WQo,discardChanges:YQo},XQo="éçéå¶",ZQo="æ scope 管çéçéå¶çç¥ã",JQo="éçéå¶çç¥",eXo="æ«ç¡çç¥",tXo="Code",nXo="å稱",aXo="Scope",oXo="çæ
",sXo="éå¶",rXo="ç¡éå¶",iXo={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},lXo={active:"åç¨",disabled:"åç¨",archived:"æ¸æª"},cXo={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"ä¸¦ç¼ / key",concurrent_streams_per_user:"ä¸¦ç¼ / user"},dXo="æ°å»ºçç¥",uXo="編輯",mXo="æä½",pXo="æ°å»ºéçéå¶çç¥",fXo="編輯 {{name}}",gXo="æ API key åæä½¿ç¨è
çæç並ç¼è RPM éé¡ãå°ä½¿ç¨è
é çºä½¿ç¨è
åé
çç¥ã",hXo="åªé¤çç¥ã{{name}}ãï¼æå¨å
¶ä¸ç key è使ç¨è
å°åè½é è¨çç¥ã",yXo="çç¥å·²åªé¤ã",vXo={identity:"æ¨è",classification:"åé¡",description:"æè¿°",codeImmutable:"Code 建ç«å¾ä¸å¯æ´æ¹ã",limitsHint:"ç空å該é
使ç¨å¹³å°é è¨å¼ã",default:"é è¨",invalidLimit:"{{field}} å¿
é çºæ£æ´æ¸ã",saved:"çç¥å·²å²åã",cancel:"åæ¶",save:"å²å",create:"建ç«çç¥"},bXo={title:XQo,description:ZQo,label:JQo,empty:eXo,code:tXo,name:nXo,scope:aXo,status:oXo,limits:sXo,noLimits:rXo,scopes:iXo,statuses:lXo,limitNames:cXo,add:dXo,edit:uXo,delete:"åªé¤",action:mXo,newTitle:pXo,editTitle:fXo,formDescription:gXo,confirmDelete:hXo,deleted:yXo,form:vXo},xXo="åéæå¡",$Xo="誰è½ç»å
¥å¾å°ãå
owner 坿ä½ã",wXo="管çå¡",kXo="æ«ç¡ç®¡çå¡",CXo="ä¿¡ç®±",SXo="å稱",AXo="è§è²",TXo="çæ
",RXo="æå¾ç»å
¥",PXo="æä½",_Xo="æ°å¢ç®¡çå¡",jXo="æ°å¢ç®¡çå¡",NXo="該信箱å°ç«å³æçºç®¡çå¡ä¸¦ç¨å®ç»å
¥ï¼ç®¡çå¡èº«åæä¿¡ç®±å¹é
ï¼æ«æç¡é已註å帳èã",DXo="ä¿¡ç®±",MXo="[email protected]",EXo="å稱",IXo="顯示å稱",OXo="è§è²",LXo="管çå¡å·²æ°å¢ã",UXo="ä¿®æ¹è§è²",BXo="è§è²å·²æ´æ°ã",FXo="å
851ç¨",zXo="åç¨",qXo="çæ
å·²æ´æ°ã",HXo="ç§»é¤",VXo="管çå¡å·²ç§»é¤ã",KXo="ç§»é¤ {{email}} ç管çå¡èº«åï¼å°æ¹å°ç«å³å¤±å»å¾å°å忬éã",GXo="ä½ ",WXo="徿ª",YXo={owner:"Owner",admin:"Admin",support:"æ¯æ´"},QXo={active:"åç¨",suspended:"åç¨"},XXo={title:xXo,description:$Xo,label:wXo,empty:kXo,email:CXo,name:SXo,role:AXo,status:TXo,lastLogin:RXo,action:PXo,add:_Xo,newTitle:jXo,formDescription:NXo,emailLabel:DXo,emailPlaceholder:MXo,nameLabel:EXo,namePlaceholder:IXo,roleLabel:OXo,added:LXo,changeRole:UXo,roleChanged:BXo,suspend:FXo,activate:zXo,statusChanged:qXo,remove:HXo,removed:VXo,confirmRemove:KXo,self:GXo,never:WXo,roles:YXo,statuses:QXo},ZXo="䏿¸¸æ¸ é",JXo="åªè®ä¸æ¸¸è¨å®é¡åï¼ä»¥å OneHop åæ§è·¯ç± key poolsã",eZo="éå䏿¸¸ç®¡çå¾å°",tZo="䏿¸¸åé ",nZo={overview:"æ¦è¦½",keyPools:"Key pools",groups:"åçµ",channels:"æ¸ é",accounts:"帳è"},aZo={todayRequests:"仿¥è«æ±",total:"ç¸½è¨ {{value}}",upstreamCostToday:"仿¥ä¸æ¸¸æ¶è",providerAccounts:"便å帳è",health:"å¥åº·çæ
",stale:"å·²éæ",checkPools:"æª¢æ¥ pools",online:"å¨ç·"},oZo={upstreamStatsFailed:"䏿¸¸çµ±è¨è¼å
¥å¤±æ",retry:"é試",configAuditFailed:"è¨å®å¯©è¨å¤±æ",keyPoolsLoadFailed:"Key pools è¼å
¥å¤±æ",createKeyPoolFailed:"å»ºç« key pool 失æ",keyPoolTestFailed:"Key pool 測試失æ",keyPoolRotateFailed:"Key pool 輪æå¤±æ",failedLoad:"{{title}} è¼å
¥å¤±æ"},sZo={title:"è¨å®å¯©è¨",description:"æ¯å° OneHop key poolsãå·²ç¼å¸æ¨¡åè·¯ç±è䏿¸¸è·¯ç±ã便ååçµãæ¸ éãå®å¹å帳èå¨éè£¡ä¿æåªè®ã",running:"å·è¡ä¸...",run:"å·è¡å¯©è¨",poolsChecked:"å·²æª¢æ¥ pools",modelAudit:"模å審è¨",checkedAt:"æª¢æ¥æé",needsReview:"éè¦è¤æ ¸",done:"宿",ok:"æ£å¸¸",upstreamCoverage:"䏿¸¸å¯æåè¦è",coverageUnchecked:"帳èè®ä¸å°",coverageOnlyAccount:"å
{{accounts}}",coverageNoAccount:"æ²æå¯èª¿åº¦å¸³èèªéå䏿¸¸å"},rZo={title:"ææ²",keyPools:"Key pools",activeGroups:"æ´»èºåçµ",activeChannels:"æ´»èºæ¸ é",accounts:"帳è",editingBoundaryTitle:"編輯éç",editingBoundaryDescription:"䏿¸¸ç®¡çå¾å°æä¾åçµãæ¸ éãå®å¹è¦åã便å帳èãç£æ§å系統è¨å®ç深度編輯æµç¨ãOneHop åªé¡åçéè®åè·¯å¾ï¼ä¸¦ç®¡çå
§é¨ key poolsï¼ææ¹è®ä¾æåè·¯ç±ç編輯ä»å¨å管çå¾å°å®æã"},iZo={title:"OneHop å
§é¨ key pools",description:"Pools æ±ºå® OneHop å¨ä¸ååè°åæ¨¡åæ¨¡å¼ä¸ä½¿ç¨åªæä¸æ¸¸å
§é¨ keyã宿´ secret æ°¸ä¸é¡¯ç¤ºã",poolCode:"Pool 代碼",poolName:"Pool å稱",defaultPool:"é è¨ pool",notDefault:"éé è¨",plaintextKey:"ææ key",create:"建ç«",label:"便åè·¯ç± key pools",pool:"Pool",protocols:"åè°",models:"模å",routingGroup:"è·¯ç±åçµ",status:"çæ
",health:"å¥åº·çæ
",key:"Key",lastCheck:"æå¾æª¢æ¥",action:"æä½",priority:"åªå
ç´ {{value}}",default:"é è¨",secret:"secret",hidden:"hidden",test:"測試",rotate:"輪æ",empty:"æ«ç¡ key pools",emptyDescription:"å
建ç«å
§é¨ poolï¼åéé便åè·¯ç±æ¿è¼æ£å¼æµéã",newPlaintextKey:"æ°çææ key",confirmRotate:"確èªè¼ªæ",editProtocols:"編輯åè°",editProtocolsTitle:"編輯åè°(æ¿æ)",confirmEditProtocols:"å²ååè°",cancelEditProtocols:"åæ¶",forceEditProtocols:"å¼·å¶å²å(è¦èè·¯ç±æª¢æ¥)"},lZo={editUpstreamConfig:"ç·¨è¼¯ä¸æ¸¸è¨å®",groupsTitle:"åçµ",groupsDescription:"ä¾èªä¸æ¸¸è¨å®çè·¯ç±åçµãOneHop å°å
¶ä½çº key-pool ç¶å®åå¯©è¨æ±ºççäºå¯¦ä¾æºã",groupsLabel:"è·¯ç±åçµ",groupsEmpty:"æ«ç¡åçµ",groupsEmptyDescription:"䏿¸¸è¨å®æªè¿åä»»ä½åçµã",channelsTitle:"æ¸ é",channelsDescription:"ä¾èªä¸æ¸¸è¨å®ç便忏 éè¨å®ï¼å
æ¬æ¨¡åæ å°åå®å¹è¦åè¦èã",channelsLabel:"便åè·¯ç±æ¸ é",channelsEmpty:"æ«ç¡æ¸ é",channelsEmptyDescription:"䏿¸¸è¨å®æªè¿å任使¸ éã",accountsTitle:"帳è",accountsDescription:"便å帳èå¨ OneHop ä¸å·²è«æãæè編輯å OAuth å·æ°æµç¨è«ä½¿ç¨ä¸æ¸¸ç®¡çå¾å°ã",accountsLabel:"便åè·¯ç±å¸³è",accountsEmpty:"æ«ç¡å¸³è",accountsEmptyDescription:"䏿¸¸è¨å®æªè¿åä»»ä½ä¾æå帳èã"},cZo={group:"åçµ",platform:"å¹³å°",rate:"åç",rpm:"RPM",accounts:"帳è",limits:"éå¶",status:"çæ
",updated:"æ´æ°æé",channel:"æ¸ é",billingSource:"è¨è²»ä¾æº",mappings:"æ å°",pricing:"å®å¹",account:"帳è",groups:"åçµ",baseUrl:"Base URL",capacity:"容é",lastUsed:"æå¾ä½¿ç¨"},dZo={noDescription:"ç¡æè¿°",unlimited:"ä¸é",schedulable:"å¯èª¿åº¦",notSchedulable:"ä¸å¯èª¿åº¦",loading:"è¼å
¥ä¸...",noPricingRules:"ç¡å®å¹è¦å",modelsCount:"{{count}} 忍¡å",none:"ç¡",channelMapped:"æ¸ éæ å°",requestedModel:"è«æ±æ¨¡å",upstreamModel:"䏿¸¸æ¨¡å",priority:"åªå
ç´",unknown:"æªç¥"},uZo={serving:{label:"æåçæ
",serving:"æ£å¸¸",rate_limited:"éæµä¸",overloaded:"éè¼",expired:"å·²éæ",paused:"æ«å調度",error:"é¯èª¤",disabled:"å·²åç¨"},quota:{label:"é¡åº¦ä½ç¨(仿¥)",noLimit:"ç¡éé¡",spend:"{{spend}} / {{limit}}"},accounts:{breakdown:"æ£å¸¸ {{normal}} · ç°å¸¸ {{error}} · éæµ {{ratelimit}} · éè¼ {{overload}}"},freshness:{updated:"{{ago}}åæ´æ°",never:"徿ª"},pools:{lastError:"æè¿é¯èª¤",resync:"鿰忥"},audit:{poolFindings:"Pool åé¡",clean:"æ£å¸¸",findingsCount:"{{count}} é
"},tokensToday:"仿¥ {{count}} tok"},mZo={title:ZXo,description:JXo,openUpstreamAdmin:eZo,tabsLabel:tZo,tabs:nZo,metrics:aZo,errors:oZo,audit:sZo,topology:rZo,pools:iZo,readonly:lZo,table:cZo,common:dZo,ops:uZo},pZo="å¹³å°ç¨é",fZo="跨使ç¨è
æ¥çè«æ±è¨éãæ¶èãtokenãå»¶é²èè·¯ç±è¨èã",gZo="éæ°æ´ç",hZo={label:"èªåéæ°æ´ç",off:"éé"},yZo="å¯åºä¸",vZo="å¯åº CSV",bZo="ç¨éè¨éå¯åºå¤±æ",xZo="è«æ±",$Zo="{{count}} åæå",wZo="使ç¨è
",kZo="符åç®åç¯©é¸æ¢ä»¶",CZo="æ¶è credit",SZo="{{cost}} æ¶è",AZo="Tokens",TZo="å¹³å {{duration}}",RZo="使ç¨è
email",PZo="æ email æå°",_Zo="模å",jZo="ææ¨¡åæå°",NZo="çæ
",DZo="åå®",MZo="è¡æ¸",EZo="éè¨",IZo="çéç¨éè¨é",OZo="æ«ç¡ç¨éè¨é",LZo="使ç¨è
",UZo="Endpoint",BZo="ç¸½è¨ {{count}}",FZo="輸å
¥ {{input}} / è¼¸åº {{output}}",zZo="䏿¸¸",qZo="è¨è²»",HZo="å»¶é²",VZo="éå§æé",KZo="第 {{page}} é · 顯示 {{shown}} çï¼å
± {{total}} ç符åè¨é",GZo="ä¸ä¸é ",WZo="ä¸ä¸é ",YZo="æ¬é {{count}} è¡",QZo="æé顯示çº",XZo="{{count}} API keys",ZZo="æ¶èå¿«ç
§",JZo="ä¾èª OneHop è¨è²»å¿«ç
§",eJo="使ç¨è
æ¶è",tJo="使ç¨è
æ¶èç¸
851½é¡",nJo="å¹³åå»¶é²",aJo="å·²çµç®è«æ±",oJo="ç¯å",sJo={today:"ä»å¤©",days7:"7 天",days30:"30 天",all:"å
¨é¨æé"},rJo="ææ¨",iJo={cost:"æ¶è",tokens:"Tokens",requests:"è«æ±"},lJo="åå¸",cJo={model:"模å",requestedModel:"è«æ±æ¨¡å",upstreamModel:"䏿¸¸æ¨¡å",apiKey:"API key",user:"使ç¨è
",endpoint:"Endpoint",channel:"æ¸ é",group:"åçµ",stream:"å³è¼¸æ¹å¼(串æµ/忥)"},dJo="ç¨é趨å¢",uJo="ææ¨¡åç¨é",mJo="æå°æ",pJo="æå¤©",fJo="ç±é endpoints",gJo="ç±éç¶åº¦è¡",hJo="è«æ±æ¥èª",yJo="API key",vJo="é¡å",bJo="è¨è²»",xJo="æ¸ é",$Jo="åçµ",wJo="è«æ± ID",kJo="req_ / usg_ / upstream",CJo="å
¨é¨é¡å",SJo="å
¨é¨è¨è²»",AJo={user:"使ç¨è
",time:"æé",model:"模å",tokens:"Tokens",cost:"æ¶è",routing:"è·¯ç±",latency:"å»¶é²(é¦å)",status:"çæ
",duration:"èæ"},TJo="ç¨éè¼å
¥å¤±æ",RJo="æ£å¨è¼å
¥ç¨éè¨é",PJo="æä¸çµç¯©é¸æ¢ä»¶è©¦è©¦ã",_Jo="æ«ç¡è¶¨å¢è³æ",jJo="æ«ç¡åå¸è³æ",NJo="æ«ç¡è¡",DJo="æ¶èæç´°",MJo={upstreamList:"䏿¸¸æ¨å¹",discount:"ææ£",sub2apiActual:"è¨éæ¶è",groupChannelMultiplier:"åçµ/æ¸ éåç",accountMultiplier:"帳èåç",sub2apiFinalCharge:"æçµæ¶è",billedFactors:"使ç¨è
æ¶è"},EJo="è«æ±è©³æ
",IJo="éåè«æ±è©³æ
",OJo="æªç¥ä½¿ç¨è
",LJo="è¼å
¥ä¸...",UJo="è¨éæ¶è",BJo="åçµåç",FJo="帳èåç",zJo="身份",qJo="使ç¨è
ID",HJo="Key å¾ç¶´",VJo={hopIdentity:"跳次身份",logicalUsageId:"é輯ç¨é ID",logicalRequestedModel:"éè¼¯è«æ±æ¨¡å",logicalModel:"é輯模å",actualRequestedModel:"實éè«æ±æ¨¡å",actualModel:"坦鿍¡å",fallbackHop:"åéè·³æ¸",userVisibility:"使ç¨è
å¯è¦æ§",visible:"å¯è¦",hidden:"é±è",supersedesUsageRecord:"å代çç¨éè¨é",pricingAudit:"é£çºæ§è¨è²»ç¨½æ ¸",mode:"模å¼",policyVersion:"çç¥çæ¬",sourceModel:"便ºæ¨¡å",targetModel:"ç®æ¨æ¨¡å",requestedRawQuote:"è«æ±æ¨¡ååå§å ±å¹",requestedQuote:"è«æ±æ¨¡åå ±å¹",actualPricingStatus:"坦鿍¡åå ±å¹çæ
",actualPricingAvailable:"å¯ç¨",actualPricingUnavailable:"ä¸å¯ç¨",actualQuote:"坦鿍¡åå ±å¹",chargedQuote:"æçµè¨è²»å ±å¹",variance:"å ±å¹å·®é¡",actualPricingError:"坦鿍¡åå ±å¹é¯èª¤"},KJo="輸å
¥",GJo="輸åº",WJo="å¿«åè®å",YJo="å¿«å寫å
¥",QJo="åå§å
è³æ",XJo="è«æ±",ZJo="ç¨é ID",JJo="OneHop ID",ees="Sub2API ID",tes="Sub2API æ¥èª",nes="è·¯ç±",aes="æ å°",oes="æè½",ses="é¦ token",res="總èæ",ies="é¯èª¤",les="代碼",ces="è¨æ¯",des={time:"æé",user:"使ç¨è
",apiKey:"API key",model:"模å",logicalUsageId:"é輯ç¨é ID",logicalRequestedModel:"éè¼¯è«æ±æ¨¡å",logicalModel:"é輯模å",actualRequestedModel:"實éè«æ±æ¨¡å",actualModel:"坦鿍¡å",fallbackHop:"åéè·³æ¸",userVisible:"使ç¨è
å¯è¦",supersedesUsageRecord:"å代çç¨éè¨é",upstreamModel:"䏿¸¸æ¨¡å",protocol:"åå®",endpoint:"Endpoint",type:"é¡å",status:"çæ
",inputTokens:"輸å
¥ tokens",outputTokens:"è¼¸åº tokens",cacheRead:"å¿«åè®å",cacheWrite:"å¿«å寫å
¥",sub2apiActual:"è¨éæ¶è",sub2apiCharge:"æ¶è",continuityMode:"é£çºæ§æ¨¡å¼",continuityPolicyVersion:"é£çºæ§çç¥çæ¬",continuitySourceModel:"é£çºæ§ä¾æºæ¨¡å",continuityTargetModel:"é£çºæ§ç®æ¨æ¨¡å",continuityRequestedRawQuote:"é£çºæ§è«æ±æ¨¡ååå§å ±å¹",continuityRequestedQuote:"é£çºæ§è«æ±æ¨¡åå ±å¹",continuityActualPricingStatus:"é£çºæ§å¯¦é模åå ±å¹çæ
",continuityActualQuote:"é£çºæ§å¯¦é模åå ±å¹",continuityChargedQuote:"é£çºæ§æçµè¨è²»å ±å¹",continuityVariance:"é£çºæ§å ±å¹å·®é¡",continuityActualPricingError:"é£çºæ§å¯¦é模åå ±å¹é¯èª¤",durationMs:"èææ¯«ç§",channel:"æ¸ é",group:"åçµ",onehopRequestId:"OneHop è«æ± ID",sub2apiRequestId:"Sub2API è«æ± ID",firstTokenMs:"é¦å毫ç§"},ues={analytics:"ç¨éåæ",logs:"è«æ±æ¥èª"},mes={label:"å表è¦å",stacked:"鍿é",ranking:"æå"},pes={failedOnly:"å
失æ",slowOnly:"é¦å > {{sec}}s"},fes="æ´å¤ç¯©é¸",ges="é¦åæ
¢é¾å¼ (ms)",hes="æ«ç¡æ¨¡åç¨é",yes="æ«ç¡è«æ± ââ ææµéå¾ç¨éæé¡¯ç¤ºå¨é裡ã",ves="æ£å¨æ¥ç",bes="æå串æµè«æ±",xes="å¹³åèæ",$es="å»¶é²=é¦åæé(TTFT)ãèæ=總æé·ãæ
¢ç¯©æé¦åå»¶é²ï¼å
æ¶µèå·²æ¡éé¦åçæåè«æ±(æ´æ©æå¤±æçè«æ±é¡¯ç¤º â)ã",wes={title:pZo,description:fZo,refresh:gZo,autoRefresh:hZo,exporting:yZo,exportCsv:vZo,exportError:bZo,requests:xZo,successful:$Zo,users:wZo,matchedFilters:kZo,billedCredit:CZo,upstreamCost:SZo,tokens:AZo,avgDuration:TZo,userEmail:RZo,searchEmail:PZo,model:_Zo,searchModel:jZo,status:NZo,protocol:DZo,rows:MZo,reset:EZo,label:IZo,empty:OZo,user:LZo,endpoint:UZo,totalTokens:BZo,inOut:FZo,upstream:zZo,billed:qZo,latency:HZo,started:VZo,pageSummary:KZo,previous:GZo,next:WZo,rowsOnPage:YZo,timesShownIn:QZo,apiKeys:XZo,sub2apiCharge:ZZo,sub2apiChargeSource:JZo,userSpend:eJo,userSpendSource:tJo,avgLatency:nJo,settledRequests:aJo,range:oJo,ranges:sJo,metric:rJo,metrics:iJo,distribution:lJo,breakdown:cJo,usageTrend:dJo,stackedByModel:uJo,hourly:mJo,daily:pJo,topEndpoints:fJo,topDimensionRows:gJo,requestLogs:hJo,apiKey:yJo,type:vJo,billing:bJo,channel:xJo,group:$Jo,requestId:wJo,requestIdPlaceholder:kJo,allTypes:CJo,allBilling:SJo,table:AJo,failedLoad:TJo,loadingRecords:RJo,tryDifferentFilters:PJo,noTrendData:_Jo,noDistributionData:jJo,noRows:NJo,costBreakdown:DJo,adminCost:MJo,requestDetail:EJo,openRequestDetail:IJo,unknownUser:OJo,loading:LJo,sub2apiActual:UJo,groupMultiplier:BJo,accountMultiplier:FJo,identity:zJo,userId:qJo,keySuffix:HJo,continuity:VJo,input:KJo,output:GJo,cacheRead:WJo,cacheWrite:YJo,rawMetadata:QJo,request:XJo,usageId:ZJo,onehopId:JJo,sub2apiId:ees,sub2apiLog:tes,routing:nes,mapping:aes,performance:oes,firstToken:ses,total:res,error:ies,code:les,message:ces,csv:des,tabs:ues,modelView:mes,chip:pes,moreFilters:fes,slowThreshold:ges,noModelUsage:hes,noTrendToday:yes,viewing:ves,avgLatencySub:bes,avgTotalDuration:xes,latencyHint:$es},kes="æå°",Ces="æä½¿ç¨è
IDãä¿¡ç®±æå稱æå°",Ses="使ç¨è
",Aes="è¿å使ç¨è
å表",Tes="ä½ æ²ææ¥çæ¤åå¡çæ¬éã",Res="鿬¾",Pes="鿬¾ä¸...",_es="çº {{email}} ç¼èµ· {{amount}} 鿬¾ï¼é款çºé忥èçï¼é¤é¡ç¨å¾ç± worker åæ²ã",jes="鿬¾å·²ç¼èµ·ã",Nes={overview:"æ¦è¦½",network:"網路èè£ç½®",recentCalls:"æè¿å¼å«",apiKeys:"API éé°",payments:"仿¬¾",refunds:"鿬¾",subscription:"è¨é±",referrals:"éè«",rewards:"çåµ",audit:"審è¨"},Des={title:"å
è²» token é¡åº¦",paused:"該帳èå·²æ«åç¼æ¾å
è²»é¡åº¦ï¼é¢¨æ§å¯©æ¥ï¼ã",daily:"æ¯æ¥",weekly:"æ¯é±",tokensUnit:"tokens",remaining:"仿¥å©é¤ {{value}} tokens"},Mes={title:"å
費模åé¡åº¦ï¼ä»æ¥ï¼",tokens:"tokens",remaining:"仿¥å©é¤ {{value}} tokens",unlimited:"å
è²»é¡åº¦ï¼ä¸éï¼éæªéåï¼",eligibilityLabel:"å
è²»å±¤è³æ ¼",eligible:"享å
費層",ineligible:"ç¡å
è²»è³æ ¼ï¼åè£ç½®å·²ç¨ï¼"},Ees={phase2:"è¨é±åè½å°å¨ Phase 2 ä¸ç·ã"},Ies={empty:"æ«ç¡ä»æ¬¾"},Oes={empty:"æ«ç¡é款"},Les={empty:"æ«ç¡ç©åæ¡¶",note:"ç©åæ¡¶å±ç¤ºç®åé¤é¡åº«åãç¼æ¾è鿬¾æ·å²è¦å¯©è¨æéç·ï¼éè«è¿ç¾è¦
851éè«åå¡ã"},Ues={totalEarned:"ç´¯è¨ç²å¾",frozenEarned:"åçµä¸",refereeCount:"被éè«äºº",activeCount:"æ´»èº",role:"è§è²",counterparty:"å°ææ¹",empty:"æ«ç¡éè«è¨é"},Bes={empty:"æ«ç¡å¯©è¨è¨é"},Fes={amount:"éé¡",credit:"å°å¸³ç©å",status:"çæ
",provider:"æ¸ é",createdAt:"å»ºç«æ¼",type:"é¡å",originalTx:"å交æ",remaining:"å©é¤",initial:"åå§",expiresAt:"éæ",event:"äºä»¶",action:"åä½",severity:"ç´å¥"},zes={ipLocationTitle:"IP èä½ç½®",deviceBrowserTitle:"è£ç½®èç覽å¨",stripeTitle:"Stripe",signupIp:"註å IP",signupCountry:"註ååå®¶",lastLoginIp:"æå¾ç»å
¥ IP",ipDifferent:"è註å IP ä¸å",sameIpAccounts_one:"åä¸è¨»å IP æ {{count}} å帳æ¶",sameIpAccounts_other:"åä¸è¨»å IP æ {{count}} å帳æ¶",sameDeviceAccounts_one:"åä¸è£ç½®æ {{count}} å帳æ¶",sameDeviceAccounts_other:"åä¸è£ç½®æ {{count}} å帳æ¶",deviceFingerprint:"è£ç½®æç´",freeTierEligible:"å
è²»æ¹æ¡è³æ ¼",firstDevice:"æ¤è£ç½®é¦å帳æ¶",notFirstDevice:"鿤è£ç½®é¦åå¸³æ¶ â ç¡å
è²»ç¦å©",browser:"ç覽å¨",os:"OS",deviceType:"è£ç½®é¡å",acceptLanguage:"Accept-Language",stripeCustomerId:"Stripe Customer ID",viewOnIpinfo:"å¨ ipinfo.io æ¥ç"},qes={empty:"å°ç¡å¼å«ç´é",viewAll:"æ¥çæææ¥èª â",colStatus:"çæ
",colTime:"æé",colModel:"模å",colProtocol:"åå®",colDuration:"èæ",colCost:"è²»ç¨",colFreeDiscount:"å
è²»é¡åº¦"},Hes={empty:"æ«ç¡ API Key",colName:"å稱",colKey:"Key",colStatus:"çæ
",colPolicy:"éæµçç¥",colLastUsed:"æå¾ä½¿ç¨",colCreated:"å»ºç«æé",colExpires:"æææ",colSpend:"æ¶è²»",spendTitle:"æ¶è²»æç´°",spend30d:"è¿ 30 天",spendAllTime:"ç´¯è¨",spendRequests:"è«æ±æ¸"},Ves="è¤è£½",Kes="å·²è¤è£½",Ges={search:kes,searchPlaceholder:Ces,title:Ses,backToList:Aes,noBlockPerm:Tes,refund:Res,refunding:Pes,refundConfirm:_es,refundInitiated:jes,nav:Nes,freeTokens:Des,freeQuota:Mes,subscription:Ees,payments:Ies,refunds:Oes,rewards:Les,referrals:Ues,audit:Bes,col:Fes,network:zes,recentCalls:qes,apiKeys:Hes,copy:Ves,copied:Kes},Wes="使ç¨è
管ç",Yes="æå°ä½¿ç¨è
ãç¼æ¾ creditãåç¨å¸³èã",Qes="Email",Xes="æ email æå°",Zes="帳èçæ
",Jes={active:"帳æ¶åç¨ä¸ï¼å¯ç»å
¥ä¸¦å¼å« gateway",suspended:"å·²åç¨ï¼gateway æçµææè«æ±ï¼401ï¼"},ets="風éª",tts={normal:"å¯äº«æææå
è²»æ¬ç",watchlisted:"ç¡å
è²» token è註åè´éï¼ä»å¯å²å¼ä¸¦å¼å« gateway",blocked:"Gateway æçµææè«æ±ï¼401ï¼ï¼å®å
¨å°é"},nts="使ç¨è
",ats="æ¾ä¸å°ä½¿ç¨è
",ots="åå®¶",sts="æå¾ç»å
¥",rts="æä½",its="æ¥ç",lts="å·²åªé¤",cts="è¨å® {{email}} ççæ
",dts="å° {{email}} è¨çºã{{status}}ãï¼",uts="ç¼æ¾ credit",mts="çº {{email}} æ°å¢è´é creditï¼ä¸¦è¨éå¨ ledger ä¸ã",pts="éé¡ (USD)",fts="ä¾å¦ 5",gts="åå (å¯é¸)",hts="ä¾å¦åæ©è£å",yts="Type",vts="Bonus credit",bts="A gift. Does not count as a top-up.",xts="Offline payment",$ts="Money we actually received. Counts as a top-up: unlocks paid-only models and rate-limit tiers.",wts="Reference no.",kts="e.g. bank slip 20260907-001",Cts="Record payment",Sts="Recording...",Ats="åæ¶",Tts="ç¼æ¾ä¸...",Rts="ç¼æ¾",Pts="è¦å {{email}} ç¼æ¾ ${{amount}} åï¼éæ¯ä¸çè¼å¤§éé¡ã",_ts="ç¡é¡¯ç¤ºå稱",jts="è¼å
¥ä¸...",Nts="忏 {{score}}",Dts="Email å·²é©è",Mts="æ¯",Ets="å¦",Its="註å",Ots="è¨»åæ¹å¼",Lts="æè¿ç»å
¥æ¹å¼",Uts="註åè´é",Bts="æ°æå¼å°",Fts="èªè¨ / æå",zts="å 广¯ä¾",qts="éçéå¶çç¥",Hts="éçéå¶çç¥å·²æ´æ°ã",Vts="å å
¥æé",Kts="徿ª",Gts="é¤é¡",Wts="é¢å
èæ¶è",Yts="ç´¯è¨æ¶è",Qts="ç´¯è¨å²å¼",Xts="å°å",Zts="èªè¨",Jts="ç´¯è¨è´é¡",ens="ç´¯è¨é款",tns="è«æ±æ¸",nns="Tokens",ans="æä½",ons="身份è風éª",sns="è§è²",rns="ç®åè§è²æ²æå¯å·è¡çæä½ã",ins="便ºæ¸ é",lns="便ºåå¸",cns="ç´æ¥ / æªç¥",dns="èªè¨ä¾æºâ¦",uns="è¨å®",mns="èªåèå¥ï¼{{source}}",pns="UTM",fns="éè«äºº",gns="å註",hns="æ°å¢å註以è奿¤ä½¿ç¨è
",yns="å²åå註",vns="å註已å²å",bns="ç¡å註",xns="篩é¸",$ns={title:Wes,description:Yes,email:Qes,searchEmail:Xes,status:Zes,statusEffect:Jes,risk:ets,riskEffect:tts,label:nts,empty:ats,country:ots,lastLogin:sts,action:rts,view:its,deleted:lts,setStatusAria:cts,setStatusConfirm:dts,grantCredit:uts,grantDescription:mts,amountUsd:pts,amountPlaceholder:fts,reason:gts,reasonPlaceholder:hts,grantKind:yts,grantKindBonus:vts,grantKindBonusHint:bts,grantKindOffline:xts,grantKindOfflineHint:$ts,referenceNo:wts,referenceNoPlaceholder:kts,recordPayment:Cts,recording:Sts,cancel:Ats,granting:Tts,grant:Rts,largeGrantConfirm:Pts,noDisplayName:_ts,loading:jts,score:Nts,emailVerified:Dts,yes:Mts,no:Ets,signup:Its,signupMethod:Ots,lastLoginMethod:Lts,signupBonus:Uts,onboarding:Bts,localeTz:Fts,markupRatio:zts,rateLimitPolicy:qts,rateLimitPolicyChanged:Hts,joined:Vts,never:Kts,walletBalance:Gts,walletSection:Wts,consumed:Yts,recharged:Qts,location:Xts,preferredLocale:Zts,bonusGranted:Jts,refunded:ens,requests:tns,tokens:nns,actionsSection:ans,identitySection:ons,role:sns,noPermittedActions:rns,acquisitionSource:ins,acquisitionTitle:lns,sourceDirect:cns,sourceCustomPlaceholder:dns,sourceSet:uns,sourceCaptured:mns,utm:pns,referrer:fns,note:gns,notePlaceholder:hns,noteSave:yns,noteSaved:vns,noteEmpty:bns,filters:xns},wns="äºä»¶å調",kns="Stripe Webhook äºä»¶ãæ¯æ´çæ
篩é¸ãé試å payload 檢æ¥ã",Cns="çæ
",Sns="äºä»¶é¡å",Ans="æ¥æ¶æé",Tns="äºä»¶é¡å",Rns="çæ
",Pns="模å¼",_ns="å試次æ¸",jns="é試",Nns="å·²å å
¥é試ä½å",Dns="äºä»¶ {{event}} å·²éç½®çº pendingï¼ä¸ä¸æ¬¡ä»»å調度æèçã",Mns="é試失æ",Ens="æ«ç¡ Webhook äºä»¶ã",Ins="端é»è¨»åå¾ï¼Stripe äºä»¶æé¡¯ç¤ºå¨é裡ã",Ons="æ£å¨è¼å
¥ payload...",Lns="æå¾é¯èª¤",Uns="Payload (JSON)",Bns={title:wns,description:kns,statusFilter:Cns,eventTypeFilter:Sns,receivedAt:Ans,eventType:Tns,status:Rns,mode:Pns,attempts:_ns,retry:jns,retrySubmittedTitle:Nns,retrySubmittedBody:Dns,retryFailedTitle:Mns,empty:Ens,emptyHint:
851Ins,detailLoading:Ons,lastError:Lns,payload:Uns},Fns="API key",zns="10 ç§æ¿å°ç¬¬ä¸å key",qns="è¤è£½å¤±æ",Hns={label:"å
è¨±çæ¨¡å",allModels:"å
¨é¨æ¨¡å",allHint:"ç®éä¸çæææ¨¡åé½è¢«å
許ã",noModels:"æ«ç¡å¯ç¨æ¨¡åã",selected:"已鏿 {{count}} å",someHint:"å
許 {{count}} 忍¡åã"},Vns={label:"æ¨ç±¤",placeholder:"輸å
¥æ¨ç±¤å¾æ Enter",remove:"ç§»é¤"},Kns="çºæ£å¼ãé åèåéæµç¨å»ºç«æéçç keyã",Gns="éæ°æ´ç",Wns="é è¨ key",Yns="Key å稱",Qns="建ç«ä¸...",Xns="å»ºç« key",Zns="宿´ keyï¼å
é¡¯ç¤ºä¸æ¬¡",Jns="è¤è£½ API key",eas="å·²è¤è£½",tas="è¤è£½",nas="è«ç¾å¨è¤è£½ä¸¦ä¿åãé鿤颿¿å¾ï¼å®æ´ key å°ç¡æ³å次æ¥çã",aas="æå·²ä¿å",oas="API key è¼å
¥å¤±æ",sas="é試",ras="æ«ç¡ API key",ias="建ç«ç¬¬ä¸å keyï¼å³å¯éé OneHop éå§å³éè«æ±ã",las={label:"API key",tags:"æ¨ç±¤",name:"å稱",key:"Key",status:"çæ
",created:"å»ºç«æé",action:"æä½",usage:"ç¨é",quota:"é¡åº¦",expires:"æææ",lastUsed:"æå¾ä½¿ç¨"},cas="æ¤é·",das="ç¢ºèªæ¤é· {{name}}ï¼æ¤æä½ç¡æ³å¾©åã",uas="給 key å½åå³å¯å»ºç«ãé¡åº¦åæææåªå¨éè¦æå±éé²éè¨å®ã",mas="æåº¦ credit é¡åº¦",pas="æææ",fas="ä¸é",gas="å²åä¸...",has="å²å",yas="åæ¶",vas={title:"å·²åç¨ / å·²æ¤é·",description:"å·²åç¨ææ¤é·ç keyãå¯éæ°åç¨å·²åç¨çï¼å·²æ¤é·çå
ä¿çè¨éã"},bas={title:"æ²ææ´»èº key",description:"å¯éæ°åç¨ä¸æ¹å·²åç¨ç keyï¼æå»ºç«æ°ç keyã"},xas={import:"å¯å
¥å° CCS",client:"CC-Switch 客æ¶ç«¯",codex:"Codex / OpenAI",claude:"Claude Code",pasteHint:"å·²ç¨ä½ä½ç¬¦éå CC Switchï¼è«å¨é£éè²¼ä¸ä½ ä¿åç API keyã",checking:"æ£å¨æª¢æ¥ç¸å®¹æ§â¦",blocked:{title:"{{client}} ç¡æ³ä½¿ç¨æ¤éé°",body:"ã{{keyName}}ãåªå
許 {{client}} ç¡æ³ä½¿ç¨ç模åãå¯å
¥å¾æç¼çé¯èª¤ã",adjust:"èª¿æ´æ¨¡åç¯å",forceImport:"ä»ç¶å¯å
¥ï¼å°ç¡æ³ä½¿ç¨ï¼"},pin:{title:"å°ä»¥ {{model}} å¯å
¥ {{client}}",body:"ã{{keyName}}ãä¸å
å« {{client}} çé è¨æ¨¡åã以䏿¯ {{client}} çè«æ±ç¶æ¤ä¾æåè·¯ç±çæ¹å¼ï¼",adjust:"èª¿æ´æ¨¡åç¯å",confirm:"以 {{model}} å¯å
¥"}},$as={search:"æå°",searchPlaceholder:"æå°å稱æ key å¾ç¶´",status:"çæ
",allStatus:"å
¨é¨çæ
",clear:"æ¸
é¤ç¯©é¸",empty:"æ²æç¬¦åéäºç¯©é¸æ¢ä»¶ç key",emptyDescription:"æ¸
餿尿çæ
篩é¸å³å¯æ¥çå
¨é¨ keyã",mobileTitle:"篩é¸"},was={active:"æ´»èº",inactive:"å·²åç¨",revoked:"å·²æ¤é·",expired:"å·²éæ",quota_exhausted:"é¡åº¦èç¡"},kas={today:"仿¥ {{requests}} 次 · {{credit}}",days30:"30 天 {{requests}} 次 · {{credit}}"},Cas={use:"é£ç·è³è¨",edit:"編輯",enable:"åç¨",disable:"åç¨",delete:"åªé¤"},Sas="ä½¿ç¨ API key",Aas="ç¨ä½ å·²å²åç key å¼å« OneHop gatewayã宿´ key åªæå¨å»ºç«æé¡¯ç¤ºä¸æ¬¡ã",Tas={baseUrl:"Base URL",keyHint:"API key",authorization:"Authorization è«æ±æ¨é ",env:"ç°å¢è®æ¸",curl:"cURL",revealing:"è§£å¯ä¸â¦",fullKeyUnavailable:"宿´ key åªæå¨å»ºç«æé¡¯ç¤ºä¸æ¬¡ãè«ä½¿ç¨ä½ å·²å²åçå¼ï¼å¦æéºå¤±ï¼è«å»ºç«æ°ç keyã",protocolEndpoints:"åå®ç«¯é»"},Ras="é²éè¨å®",Pas="å»ºç« API key",_as="編輯 API key",jas={label:"模åç¯å",all:"å
¨é¨æ¨¡å",limited:"éå®å°ç¹å®æ¨¡å",allHint:"æ¤ key å¯èª¿ç¨æææ¨¡åï¼å
æ¬ä¹å¾æ°å¢ç模åã",snapshotHint:"åªå
å«ä½ å¾é¸ç模åï¼ä¹å¾æ°å¢ç模å䏿èªåå å
¥ã",snapshotHintEdit:"åªå
å«ä½ å¾é¸ç模åï¼æ°å¢æ¨¡å䏿èªåå å
¥ãåå°ãå
¨é¨æ¨¡åãææ¿ææ¤ç½åå®ã",searchPlaceholder:"æå°æ¨¡åâ¦",selectAllResults:"å
¨é¸ç®åçµæï¼{{count}}ï¼",selectedCount:"å·²é¸ {{count}} / {{max}}",clear:"æ¸
空",hiddenSelected:"æ {{hidden}} / {{total}} åå·²é¸é
被ç®å篩é¸é±è",selectVendor:"å
¨é¸ {{vendor}}ï¼å·²é¸ {{on}}/{{total}}",emptyTitle:"æ²æå¹é
çæ¨¡å",emptyDescription:"æåé¡åææå°è©è©¦è©¦ã",loadFailed:"模åè¼å
¥å¤±æ",loadFailedHint:"è«éè©¦ï¼æååãå
¨é¨æ¨¡åãã",type:{all:"å
¨é¨",text:"æå",image:"åç",video:"å½±ç",embedding:"åµå
¥"},pickAtLeastOne:"è«è³å°é¸æä¸å模åï¼æååãå
¨é¨æ¨¡åãã",limitReached:"å·²é {{max}} 忍¡åä¸é"}
851,Nas={title:"API key 已建ç«",subtitle:"{{name}} 已就ç·ï¼ç¾å¨é£æ¥ã",onceWarning:"åªé¡¯ç¤ºä¸æ¬¡ãä¹å¾å¯éæ°é¡¯ç¤ºï¼ä½å»ºè°ç¾å¨å
è¤è£½ä¿åã",connect:"飿¥",done:"宿"},Das="IP",Mas="å·²æ¼ {{date}} æ¤é·",Eas={title:Fns,emptyTitle:zns,copyFailed:qns,allowedModels:Hns,tags:Vns,description:Kns,refresh:Gns,defaultName:Wns,keyName:Yns,creating:Qns,createKey:Xns,fullKeyTitle:Zns,copyApiKey:Jns,copied:eas,copy:tas,fullKeyDescription:nas,savedIt:aas,loadFailed:oas,retry:sas,empty:ras,emptyDescription:ias,table:las,revoke:cas,revokeConfirm:das,formDescription:uas,monthlyCreditLimit:mas,expiresAt:pas,unlimited:fas,saving:gas,save:has,cancel:yas,parked:vas,noActive:bas,ccswitch:xas,filters:$as,status:was,usage:kas,actions:Cas,useTitle:Sas,useDescription:Aas,use:Tas,advancedSettings:Ras,createTitle:Pas,editTitle:_as,scope:jas,created:Nas,lastUsedIp:Das,revokedAt:Mas},Ias="å¯©è¨æ¥èª",Oas="ææä½åæéæ¥çé«é¢¨éªç®¡ç塿ä½ã",Las="æä½",Uas="æ¸
é¤",Bas={ops_user_update_status:"使ç¨è
çæ
å·²æ´æ°",ops_users_allowlist_add:"註ååå
¥å·²æ°å¢",ops_users_allowlist_update:"註ååå
¥å·²æ´æ°",ops_users_allowlist_invite:"註ååå
¥å·²éè«",ops_users_allowlist_revoke:"註ååå
¥å·²ç§»é¤",ops_users_allowlist_restore:"註ååå
¥å·²æ¢å¾©",ops_model_create:"模å已建ç«",ops_model_update:"模åå·²æ´æ°",ops_model_update_status:"模åçæ
å·²æ´æ°",sub2api_pool_create:"è·¯ç±å¯é°æ± 已建ç«",sub2api_pool_test:"è·¯ç±å¯é°æ± 已測試",sub2api_pool_rotate_secret:"è·¯ç±å¯é°å·²è¼ªæ"},Fas="å¯©è¨æ¥èª",zas="æ«ç¡å¯©è¨è¨é",qas="æé",Has="å´éæ§",Vas="ç®æ¨",Kas={ai_model:"模å",sub2api_key_pool:"è·¯ç± key pool",sys_user:"使ç¨è
",wallet:"é¢å
"},Gas="ç®æ¨é¡å",Was="è«æ± ID",Yas={title:Ias,description:Oas,action:Las,clear:Uas,actions:Bas,label:Fas,empty:zas,time:qas,severity:Has,target:Vas,targetTypes:Kas,targetType:Gas,requestId:Was},Qas="ç»å
¥ OneHop",Xas="輸å
¥é©è碼",Zas="ä½¿ç¨ Google æ Email ç¹¼çº",Jas="輸å
¥ Email ä»¥æ¥æ¶é©è碼",eos="輸å
¥å³éå° {{email}} ç 6 ä½é©è碼",tos="ä½¿ç¨ Google ç¹¼çº",nos="ä½¿ç¨ Email ç¹¼çº",aos="æ",oos="Email",sos="å³éé©è碼",ros="å³éä¸...",ios="é©è",los="é©èä¸...",cos="{{seconds}} ç§å¾å¯éç¼",dos="éæ°å³éé©è碼",uos="ç¹¼çºå³è¡¨ç¤ºä½ åææåç",mos="æåæ¢æ¬¾",pos="é±ç§æ¬æ¿ç",fos={signIn:"ç»å
¥",signOutFailed:"ç»åºå¤±æ",sendCodeFailed:"é©è碼å³é失æ",notAllowed:"æ¤ä¿¡ç®±å°æªéæ¾åå,è«è¯çµ¡ç®¡çå¡ç³è«ã",invalidCode:"é©èç¢¼ç¡æ",codeIncorrect:"é©è碼é¯èª¤ï¼è«é試",googleFailed:"Google ç»å
¥å¤±æ",verifyHuman:"è«å®æäººæ©é©èå¾ç¹¼çº",verifyUnavailable:"人æ©é©èæ«æç¡æ³ä½¿ç¨,è«æ¹ç¨ä¸æ¹ç Google ç»å
¥,æç¨å¾å試ã"},gos={signInTitle:Qas,enterCodeTitle:Xas,methodIntro:Zas,emailStepIntro:Jas,codeIntro:eos,continueGoogle:tos,continueEmail:nos,or:aos,emailLabel:oos,sendCode:sos,sending:ros,verify:ios,verifying:los,resendIn:cos,resendCode:dos,termsPrefix:uos,terms:mos,privacy:pos,errors:fos},hos="帳å®",yos="å²å¼ Creditsãå
æåªæ 碼並æ¥çé¢å
æµæ°´ã",vos={bonuses:"è´é",topups:"å²å¼",usage:"æ¶è"},bos={available:"å·²å
¥å¸³",availableHint:"å·²è¨å
¥å¯ç¨é¤é¡",frozen:"å¾
å
¥å¸³ï¼åçµï¼",frozenHint:"ç´ {{days}} 天å¾å
¥å¸³",frozenHintGeneric:"åçµææ»¿å¾å
¥å¸³",title:"éè«çåµ",viewDetails:"æ¥çéè«æç´°"},xos={noUsage:"æè¿ 30 天æ«ç¡æ¶è",perDay:"æ¥å {{amount}}",daysLeft:"æç®åé度ç´å¯ç¨ {{days}} 天"},$os={amountUsd:"éé¡ (USD)",minAmountHint:"æä½å²å¼ {{amount}}ã",apply:"å¥ç¨",get:"å°å¸³",onehopCredits:"OneHop credits",pay:"æ¯ä»",poweredByStripe:"ç± Stripe ä¿é",poweredBy:"ç± {{provider}} ä¿é",secureCheckout:"å®å
¨è¨ç®¡æ¶éå°",secureCheckoutShort:"å®å
¨æ¶éå°",taxExclusiveNotice:"ç¨
è²»å°æ¼æ¶éå°ä¾æ¨æå¨å°åè¨ç®,ä¸¦æ¼æ¤éé¡ä¹å¤å¦è¡å æ¶ã",presets:"é è¨éé¡",promoCode:"åªæ 碼",promoCodePlaceholder:"輸å
¥åªæ 碼",serviceFee:"æåè²»",title:"å²å¼",topupAmount:"å²å¼éé¡",totalDue:"æä»ç¸½é¡",payCta:"æ¯ä» {{amount}}",previewing:"é©èä¸â¦",discount:"åªæ ç¢¼ææµ",couponBelowMin:"ææµå¾éé¡éä½,è«æé«å
å¼é¡ææ´æåªæ 碼ã",maintenanceTitle:"æ¯ä»æ«æä¸å¯ç¨",maintenanceDescription:"æ¯ä»æåæ«æåºäºæ
éï¼
851妿éè¦æ¯ä»ï¼è«éé Telegram è¯çµ¡æåã",contactTelegram:"éé Telegram è¯çµ¡æå",alipay:"æ¯ä»å¯¶",wechatPay:"微信æ¯ä»",crypto:"ç¨èæ¬å¹£æ¯ä»ï¼USDC / USDTï¼",payOnStripe:"仿¬¾å¨ Stripe å®å
¨æ¶éé 宿ã",payOnProvider:"仿¬¾å¨ {{provider}} å®å
¨æ¶éé 宿ã",payOnHostedCheckout:"仿¬¾å¨å®å
¨è¨ç®¡æ¶éé 宿ã",amountPrecision:"{{provider}} å
æ¯æ´å°æ¸é»å¾å
©ä½çç¾å
éé¡ãè«èª¿æ´éé¡æåªæ 碼ã",couponBonus:"å è´é¡åº¦",couponBonusExpiry:"å è´é¡åº¦å°å¨ä»æ¬¾å¾ {{days}} 天éæã",couponInvalid:"è©²ç¢¼ç¡æ³ä½¿ç¨ï¼è«æä¸å碼ã",couponErrors:{limitReached:"ä½ ä½¿ç¨è©²ç¢¼ç次æ¸å·²éä¸éã",invalid:"è©²ç¢¼ç¡ææä¸å¯ç¨ã",expired:"該碼已éæã",exhausted:"該碼已被å
å®ã",unavailable:"該碼æ£å¨è¢«ä½¿ç¨ï¼è«ç¨å¾å試ã"},tierBonus:"å
å¼è¿å©",tierBonusExpiry:"å è´é¡åº¦å°å¨ä»æ¬¾å¾ {{days}} 天éæã",tierBonusRestricted:"è¿å©é¡åº¦å
å¯ç¨æ¼:{{models}}ã",nextTierPercent:"åå²å¼ {{amount}} å³å¯ç²å¾ {{percent}}% è¿å©é¡åº¦ã",nextTierBonus:"åå²å¼ {{amount}} å³å¯ç²å¾ {{bonus}} è¿å©é¡åº¦ã",tierCapReached:"ä½ å·²é æ»¿æ¬æ´»åçè¿å©ä¸éã"},wos="æ°å¢ Credits",kos="建ç«ä¸...",Cos="å¯ç¨ Credit",Sos="å²å¼",Aos="ç± Stripe æä¾ä»æ¬¾",Tos="éé¡ (USD)",Ros="é è¨å²å¼éé¡",Pos="å
æåªæ 碼",_os="åªæ 碼",jos="å
æä¸...",Nos="å
æ",Dos="åªæ 碼已å
æï¼é¤é¡æ£å¨éæ°æ´çã",Mos="æ£å¨åå¾å®å
¨ checkout...",Eos="右宿è¦è¼å
¥å¤±æ",Ios="å²å¼å¤±æ",Oos="右宿´»ååé ",Los="交æ",Uos="Credit ç¼æ¾",Bos="交æé¡å",Fos="便º",zos="æ«ç¡äº¤æ",qos="å²å¼ãæ£è²»åç¼æ¾è¨éæé¡¯ç¤ºå¨é裡ã",Hos="帳æ¬è¨é",Vos="æé",Kos="é¡å",Gos="éé¡",Wos="é¤é¡",Yos="æ«ç¡ç¼æ¾è¨é",Qos="註åçåµãåªæ 碼å人工è´éæé¡¯ç¤ºå¨é裡ã",Xos="çæ
",Zos={successTitle:"å·²æ¶å°ä»æ¬¾",polling:"æ£å¨çºä½ çé¢å
å
¥å¸³...ç´ 30 ç§ã",delayed:"å
¥å¸³éåº¦è¼æ
¢ãè«ç¨å¾éæ°æ´çï¼æå° Stripe æ¶ææ¥çã",cancelledTitle:"仿¬¾å·²åæ¶",cancelledBody:"æªç¢çæ£æ¬¾ãæºå好æåè©¦ä¸æ¬¡å³å¯ã",failedTitle:"仿¬¾å¤±æ",failedBody:"æ¬æ¬¡ä»æ¬¾æªè½å®æï¼Credit æªå
¥å¸³ãå¯ä»¥éè©¦ï¼ææ¹ç¨å
¶ä»ä»æ¬¾æ¹å¼ã"},Jos={text:"Credit æ¯é 仿åé¡åº¦ï¼ä¸æ¯éè¡å款ãå·²æ¶è²»ç Credit ä¸éæ¬¾ãææå¹æ ¼ä»¥ USD è¨å¹ã詳è¦",tosLink:"æåæ¢æ¬¾"},ess="æ¶æ",tss="éåä¸...",nss="ç¡æ³éå帳å®å
¥å£",ass={title:"æè¿å²å¼",subtitle:"è¿ 90 天ç´éï¼24 å°æå
§å¯é款ã",loading:"æ£å¨è¼å
¥å²å¼ç´é...",date:"æ¥æ",amount:"éé¡",credits:"Credit",status:"çæ
",refund:"鿬¾",alreadyRefunded:"已鿬¾",windowExpired:"鿬¾è¦çªå·²éæï¼24 å°æï¼",confirmTitle:"確èªé款",confirmBody:"鿬¾å°ç± Stripe å¨ 1-3 å工使¥å
§èçãç¨æ¶èªå©ç¼èµ·ç鿬¾ææ£é¤å¹³å°æçºè²»({{fee}})ã",amountLabel:"鿬¾éé¡ (USD)",maxLabel:"ä¸é ${{value}}",requestedLabel:"ç³è«é款éé¡",platformFeeLabel:"æçºè²»({{fee}})",cardReturnLabel:"éåå°ä½ çä¿¡ç¨å¡",bonusForfeitureHint:"æ¤çå²å¼é帶çè´é Credit å°ææ¯ä¾åæ¥ä½å»¢ã",cancel:"åæ¶",confirm:"éåºé款",submitting:"éåºä¸...",refundSubmittedTitle:"鿬¾å·²éåº",refundSubmittedBody:"Stripe å°æ¼ 1-3 åå·¥ä½å¤©å
§ææ¬¾é
éåä½ çä¿¡ç¨å¡ã",refundFailedTitle:"鿬¾å¤±æ",balance:"å
¥å¸³",confirmAmount:"鿬¾ {{amount}}"},oss={title:"é¤é¡æé",description:"é¤é¡é使éç¥ä½ ã",emailLabel:"éµä»¶æé",webhookLabel:"Webhook",autorechargeLabel:"èªåå²å¼",autorechargeUnsupported:"ç®åæ¯ä»æ¸ é䏿¯æ´èªåå²å¼ã",autorechargeAddCardHint:"ç¶å®éè¡å¡,é¤é¡é使èªåå²å¼",autorechargeTopUp:"æ¯æ¬¡å²å¼",autorechargeWhenBelow:"ç¶é¤é¡è·ç ´",autorechargeThreshold:"èªåå²å¼é¾å¼",autorechargeAmount:"èªåå²å¼éé¡",autorechargeDisabledFailures:"èªåå²å¼å é£çºå¤æ¬¡æ£æ¬¾å¤±æå·²åç¨ãè«æ´æéè¡å¡å¾éæ°éåã",autorechargeIncomplete:"è«å¡«å¯«èªåå²å¼éé¡å髿¼ $0 çé¾å¼ã",test:"測試",testing:"測試ä¸â¦",testQueued:"測試æéå·²æå
¥ä½å ââ å»ä½ ç端é»ç¢ºèªæ¶å°",testFailed:"測試æéæå
¥ä½å失æ",signingSecret:"ç°½åå¯é°",secretOnSave:"å²å徿ç¢çç°½åå¯é°ã",rotate:"輪æ",secretRotated:"ç°½åå¯é°å·²è¼ªæ",rotateFailed:"å¯é°è¼ªæå¤±æ",secretCopied:"ç°½åå¯é°å·²è¤è£½",saved:"æéè¨å®å·²å²å",saveFailed:"æéè¨å®å²å失æ",loadFailed:"ç¡æ³è¼å
¥æéè¨å®",thresholdRequired:"è«è¨å®é«æ¼ $0 çé¾å¼ä»¥åç¨æéã",webhookUrlRequired:"è«å¡«å¯« https:// éé ç webhook ç¶²åã",thresholdOrderBad:"æéé¾å¼å¿
é ⥠èªåå²å¼é¾å¼ã",card:"éè¡å¡",changeCard:"æ´æ",removeCard:"ç§»é¤",cardRemoved:"éè¡å¡å·²ç§»é¤",cardRemoveFailed:"ç§»é¤éè¡å¡å¤±æ",cardSetupFailed:"ç¶å¡å¤±æ",lowBalanceGroup:"ä½é¤é¡æé",thresholdLabel:"æééæª»"},sss={title:"äº¤ææ·å²",idSearch:"交æ ID",amountRange:"éé¡ç¯å (USD)",min:"æå°å¼",max:"æå¤§å¼",clear:"æ¸
é¤",retry:"é試",empty:"æ¤ç¯åå
§æ«ç¡äº¤æ",date:"æ¥æ",typeMethod:"é¡å / æ¹å¼",description:"說æ",action:"æä½",prevMonth:"ä¸åæ",nextMonth:"ä¸åæ",viewInvoices:"æ¥çç¼ç¥¨",emptyNew:"éæ²æäº¤æ",emptyNewDesc:"å
å¼å¾ï¼ä½ çå
å¼ãè´éå鿬¾è¨éæé¡¯ç¤ºå¨é裡ã",topUpCta:"å»å
å¼",emptyFiltered:"æ²æå¹é
ç交æ",emptyFilteredDesc:"試試æ¸
é¤ç¯©é¸ææ¾å¯¬æéç¯åã",clearFilters:"æ¸
é¤ç¯©é¸"},rss="é¤é¡åä½ï¼å¯è½å½±é¿èª¿ç¨ã建è°ç¡å¿«å
弿éåèªåå
å¼ã",iss="é¤é¡åä½ï¼å¯è½å½±é¿èª¿ç¨ãè«ç¡å¿«å²å¼ä»¥ç¹¼çºä½¿ç¨ã",lss={creditPurchase:"å
å¼",topupBonus:"å
å¼çåµ",signupBonus:"註åçåµ",referralClawback:"éè«è¿ç¾åæ£ï¼é款ï¼",couponBonus:"å è´ç¢¼çåµ",referralCashback:"éè«è¿å©",referralInviteeCashback:"åéå²å¼çåµ",redeemCode:"å
æç¢¼ {{code}}",redeemCodeReversal:"å
æç¢¼æ¤é·",stripeRefund:"Stripe 鿬¾",bonusReversal:"鿬¾åæ¶è´
851é"},css={title:"å°æ¬¾é¡åº¦",subtitle:"å
å¯ç¨æ¼ç¹å®æ¨¡åçè´éé¡åº¦,ç¨ç«æ¼ä½ çé¤é¡ãäºä¸æ··ç®ã",onlyModels:"å
é {{models}}",onlyModelsGeneric:"å鿍¡å",validUntil:"æææè³ {{date}}",noExpiry:"æ°¸ä¸éæ",useInChat:"å»è©¦ç¨"},dss={card:"éè¡å¡",alipay:"æ¯ä»å¯¶",wechatPay:"微信æ¯ä»"},uss={title:"å
æç¢¼",description:"æå
æç¢¼ï¼è¼¸å
¥å³å¯æé¢é¡å
å
¥ä½ çé¤é¡ã",placeholder:"ä¾å¦ï¼OHR-XXXXXXXX",redeem:"å
æ",redeeming:"å
æä¸â¦",success:"å·²å
æ {{amount}} å°é¤é¡",successRestricted:"å·²å°å¸³ {{amount}},å
é {{models}} 使ç¨",successValidity:"æææè³ {{date}}ã",errors:{invalid:"該å
æç¢¼ç¡ææä¸å¯ç¨ã",expired:"該å
æç¢¼å·²éæã",alreadyRedeemed:"該å
æç¢¼å·²è¢«å
æã",perUserLimit:"ä½ å·²éå°è©²æ¹æ¬¡çå
æä¸éã"}},mss={title:hos,description:yos,breakdown:vos,referralRewards:bos,burnRate:xos,topup:$os,addCredits:wos,creating:kos,availableCredit:Cos,topUp:Sos,poweredByStripe:Aos,amountUsd:Tos,presetAmounts:Ros,redeemCoupon:Pos,couponCode:_os,redeeming:jos,redeem:Nos,couponRedeemed:Dos,redirecting:Mos,summaryFailed:Eos,topupFailed:Ios,tabsLabel:Oos,transactions:Los,creditGrants:Uos,transactionType:Bos,source:Fos,noTransactions:zos,noTransactionsDescription:qos,ledgerEntries:Hos,time:Vos,type:Kos,amount:Gos,balance:Wos,noGrants:Yos,noGrantsDescription:Qos,status:Xos,topupBanner:Zos,compliance:Jos,receipts:ess,openingPortal:tss,portalFailed:nss,recentTopups:ass,alerts:oss,history:sss,lowBalanceWarning:rss,lowBalanceWarningNoAutoTopup:iss,ledgerDesc:lss,earmarked:css,paymentMethod:dss,redeemCard:uss},pss="å表è¼å
¥å¤±æ",fss="æ«ç¡è³æ",gss="ç®åæ²æå¯ç¹ªè£½çè³æã",hss={errorTitle:pss,emptyTitle:fss,emptyDescription:gss},yss={copy:"è¤è£½",regenerate:"éæ°ç¢ç",shareComingSoon:"å享ï¼å³å°æ¨åºï¼",download:"ä¸è¼",copyLink:"è¤è£½é£çµ",newChat:"æ°å°è©±",deleteChat:"åªé¤å°è©±",openConversationList:"éåå°è©±å表",openSettings:"å°è©±è¨å®",collapseSidebar:"æ¶åå´éæ¬",expandSidebar:"å±éå´éæ¬",cancel:"åæ¶",apply:"å¥ç¨",newChatTooltip:"æ°å¢å°è©±",copied:"å·²è¤è£½"},vss={placeholderReady:"éå§æ°çå°è©±...",placeholderNoModel:"è«å
鏿䏿¹ç模å",attachmentTooLarge:"æªæ¡è¶
é {{limit}}ï¼ç¡æ³ä¸å³",attachmentUnsupported:"䏿¯æ´æ¤æªæ¡é¡åãè«ä½¿ç¨ PNGãJPEGãWebPãGIFãMP4ãWebM æ MOVã",unsupportedVision:"æ¤æ¨¡å䏿¯æ´åçæå½±ç輸å
¥ãææ¾æªæ¡åè«å
åææ¨¡åã",send:"å³é",abort:"䏿¢",attachImage:"æ°å¢åç",attachMedia:"æ°å¢åçæå½±ç",removeAttachment:"ç§»é¤",shortcutSend:"å³é",shortcutNewLine:"æè¡",shortcutAbort:"䏿¢",frameFirst:"é¦å¹",frameLast:"å°¾å¹",frameReference:"åèå",imageMode:"åççæ",videoMode:"å½±ççæ",placeholderComingSoon:"æ¤æ¨¡åå³å°æ¨åºââè«é¸æä¸æ¹å
¶ä»æ¨¡å",reasoning:"æè",reasoningOff:"éé",reasoningAlways:"æ°¸é éå",placeholderTopupRequired:"該模åå
åå·²å
å¼å¸³æ¶éæ¾ ââ å
å¼å¾å³å¯å¨é裡使ç¨"},bss={modelUnavailable:"模å {{model}} ç®åç¡æ³ä½¿ç¨ãä½ çæç¤ºè©ä»å·²ä¿åã",rateLimited:"並è¡è«æ±éå¤ãè«ç¨å¾å試ã",accountDisabled:"æ¤å¸³æ¶å·²åç¨ï¼ç¡æ³ç¹¼çºå°è©±ã",attachmentsUploading:"åçéå¨ä¸å³ï¼è«ç¨ååå³éã",attachmentsFailed:"æåçä¸å³å¤±æï¼è«ç§»é¤å¾é試åå³éã"},xss={title:"å¨é裡éå§æ¸¬è©¦ä»»ä½æ¨¡åã",body:"ç´æ¥è任使¨¡åå°è©±ãç¨éæå¾ä½ ç PAYG é¢å
æ£æ¬¾ã",starters:{compareModels:"ç¨åä¸åç¨å¼ç¢¼ä»»åæ¯è¼ GPT-5.5 å Claude Opus",analyzeImage:"åæä¸å¼µæ¶æ§å並總çµé¢¨éª",draftPrompt:"çºå®¢æ agent èµ·è䏿®µ system prompt",generateImage:"ç¢çä¸å¼µä¹¾æ·¨ SaaS é¢¨æ ¼çç¢å主è¦è¦ºåç"}},$ss={untitled:"æªå½åå°è©±",deleteConfirm:"åªé¤ã{{title}}ãï¼",emptyTitle:"å°ç¡å°è©±",emptyBody:"使ç¨ä¸æ¹ç + æ°å°è©±éå§ã",listLabel:"å°è©±å表",groups:{today:"ä»å¤©",yesterday:"æ¨å¤©",earlier:"æ´æ©"},menu:{rename:"éæ°å½å",delete:"åªé¤"},deleteTitle:"åªé¤å°è©±ï¼"},wss={paygWallet:"PAYG é¢å
"},kss={chooseModel:"é¸ææ¨¡å",searchPlaceholder:"æå°æ¨¡å...",emptyTitle:"æ¾ä¸å°æ¨¡å",emptyBody:"è«å試å
¶ä»æå°è©æåé ã",protocols:"{{count}} ååè°",context:"{{value}} ctx",tabs:{all:"å
¨é¨",text:"æå",image:"åç",video:"å½±ç"},maxOut:"è¼¸åº {{value}}",unavailable:"æ«æç¡æ³ä½¿ç¨",requiresTopup:"éå
å¼è§£é"},Css={title:"å°è©±è¨å®",protocol:"åè°",unlimited:"ä¸é",fields:{memory_limit:{label:"å°è©±è¨æ¶"},temperature:{label:"Temperature"},top_p:{label:"Top P"},max_tokens:{label:"Max Tokens",placeholder:"128000"},service_tier:{label:"æå層ç´",options:{standard:"æ¨æº",priority:"åªå
",flex:"彿§"}},thinking_budget:{label:"Thinking Budget (tokens)",placeholder:"e.g. 2000"},stop_sequences:{label:"Stop Sequences",placeholder:"以éèåéï¼ä¾å¦ END, STOP",itemLabel:"Stop"},system_prompt:{label:"System Prompt",placeholder:"輸å
¥ system prompt..."},prompt_cache_mode:{label:"Prompt Cache",options:{implicit:"é±å¼",explicit:"顯å¼"}},image_size:{label:"åçè§£æåº¦"},image_resolution:{label:"è§£æåº¦"},image_quality:{label:"åçå質",options:{Auto:"èªå",auto:"èªå",low:"ä½",medium:"ä¸",high:"é«"}},video_ratio:{label:"坬髿¯"},video_resolution:{label:"å½±çè§£æåº¦"},video_duration_seconds:{label:"æé·"},tools:{label:"Tools (JSON)",placeholder:'[{ "type": "function", "function": { ... } }]'},image_count:{label:"åçæ¸é"},image_aspect_ratio:{label:"é·å¯¬æ¯"},reasoning_effort:{label:"æ¨ç強度",options:{none:"éé",minimal:"æä½",low:"ä½",medium:"ä¸",high:"é«",xhigh:"極é«",max:"æé«"}},reasoning_pro:{label:"Pro 模å¼"},reasoning_context:{label:"æ¨çä¸ä¸æ",options:{auto:"èªå",current_turn:"ç®å輪次",all_turns:"ææè¼ªæ¬¡"}},reasoning_enabled:{label:"æè"}
851,reasoning_always:{label:"æè",value:"æ°¸é éå"}}},Sss={estimating:"ä¼°ç®ä¸...",settling:"çµç®ä¸...",input:"輸å
¥",output:"輸åº",milliseconds:"ms",realCost:"坦鿿¬",latency:"å»¶é²",logDetail:"æ¥èªè©³æ
"},Ass={copied:"åçé£çµå·²è¤è£½",expired:"åçé£çµå·²éæãè«è¤è£½é£çµéæ°éåï¼æéæ°ç¢çã",attachment:"[åçéä»¶]"},Tss={message:"æ¤å°è©±å°å¾ä½ ç PAYG é¢å
è¨è²»",balance:"é¤é¡",billingLink:"帳å®",dismiss:"éé"},Rss={badge:"å°æ¬¾ {{amount}}",bannerTitle:"æå°æ¬¾é¡åº¦å¯ç¨",bannerBody:"ä½ æ {{amount}} å°å±¬é¡åº¦å¯ç¨æ¼æ¤æ¨¡åï¼å°åªå
æµæ£ã"},Pss={trigger:"è¤è£½çºç¨å¼ç¢¼",copied:"å·²è¤è£½çº {{format}}",failed:"è¤è£½å¤±æ",failedDescription:"ç覽å¨å¯è½å°éäºåªè²¼ç°¿æ¬éã"},_ss={interrupted:"[已䏿·]",sending:"å³éä¸"},jss={title:"æèéç¨",duration:"æèäº {{seconds}}s"},Nss={title:"å½±ççæå³å°æ¨åº",body:"æ¤æ¨¡åå·²ååºä¾æ¢ç´¢ï¼ä½å°æªåç¨å½±çå³éã",switchToText:"åæå°æå模å"},Dss={imageGenerating:"æ£å¨çæåç",videoGenerating:"æ£å¨çæå½±ç",stage:{queued:"æéä¸",routing:"è·¯ç±ä¸",generating:"çæä¸",storing:"å²åä¸",settling:"çµç®ä¸"}},Mss={INSUFFICIENT_CREDITS:"é¤é¡ä¸è¶³",RATE_LIMITED:"è«æ±éæ¼é »ç¹",rate_limit_error:"è«æ±éæ¼é »ç¹",MODEL_NO_VISION:"æ¤æ¨¡å䏿¯æ´åç輸å
¥",CONTENT_REFUSED:"模åæçµäºæ¤è«æ±",EMPTY_RESPONSE:"模ååå³äºç©ºå
§å®¹",upstream_error:"䏿¸¸æååå³é¯èª¤",overloaded_error:"䏿¸¸æåå¿ç¢",upstream_invalid_json:"䏿¸¸åæç°å¸¸",stream_read_error:"åæè®å䏿·",invalid_api_key:"䏿¸¸é©è失æ",model_unavailable:"æ¨¡åæ«æç¡æ³ä½¿ç¨",no_image:"æªè½çæåç",no_body:"䏿¸¸ç¡åæ",http_error:"è«æ±å¤±æ",session_create_failed:"æè©±å»ºç«å¤±æ"},Ess={title:"å
å¼å¾å³å¯ä½¿ç¨è©²æ¨¡å",body:"å®åªåå·²å
å¼å¸³æ¶éæ¾ãå
å¼ä»»æéé¡å¾ç«å³è§£é,é¤é¡ç
§å¸¸æéè¨è²»ã",cta:"å»å
å¼"},Iss={actions:yss,composer:vss,errors:bss,empty:xss,sidebar:$ss,header:wss,modelSelector:kss,settings:Css,metrics:Sss,image:Ass,payg:Tss,earmark:Rss,copyAsCode:Pss,status:_ss,thinking:jss,video:Nss,media:Dss,errorCodes:Mss,topupLock:Ess},Oss="è¼å
¥ä¸...",Lss="帳è",Uss="èªè¨",Bss="ç»å
¥",Fss="ç»åº",zss="æ£å¨ç»åº...",qss="å²åè®æ´",Hss="å²åä¸...",Vss="å·²å²åã",Kss="è¿å",Gss="é試",Wss="å²å¼æåè²»ç«æ¸ 5%ã",Yss="å²å",Qss="åæ¶",Xss="æ¸
é¤",Zss="éç½®",Jss="å·²è¤è£½",ers="è¤è£½å¤±æ",trs="éé",nrs="總è¨",ars={timestamp:"æéæ³",local:"æ¬å°æé",relative:"ç¸å°æé"},ors="è¤è£½",srs={title:"è«å¨ç覽å¨ä¸éå",description:"ä½ æ£å¨ <b>App å
§å»ºç覽å¨</b>ä¸é忬é ,<b>Google ç»å
¥å人æ©é©èå¨éè£¡ç¡æ³ä½¿ç¨</b>ãè«ç¨ç³»çµ±ç覽å¨éå以繼çºã",hintWechat:"黿å³ä¸è§ ··· é¸å®,鏿ãå¨ç覽å¨ä¸éåãã",hintGeneric:"ééå³ä¸è§é¸å®é¸æãå¨çè¦½å¨ / Safari ä¸éåãã",copyLink:"è¤è£½é£çµ",continueAnyway:"ä»è¦ç¹¼çº"},rrs="å
¨é¨",irs="已篩é¸",lrs="å¯é¸",crs="ç§»é¤",drs={loading:Oss,account:Lss,language:Uss,signIn:Bss,signOut:Fss,signingOut:zss,saveChanges:qss,saving:Hss,saved:Vss,back:Kss,retry:Gss,topUpPromo:Wss,save:Yss,cancel:Qss,clearAll:Xss,reset:Zss,copied:Jss,copyFailed:ers,dismiss:trs,total:nrs,time:ars,copy:ors,inAppBrowser:srs,all:rrs,active:irs,optional:lrs,remove:crs},urs="å表æ¿",mrs="å¨åä¸åæ§å¶å°æ¥ç creditãç¨éè gateway ééµå¥åº·çæ
ã",prs="å»ºç« API key",frs={creditBalance:"Credit é¤é¡",requestsToday:"仿¥è«æ±",activeApiKeys:"æ´»èº API keys"},grs={title:"ç¨é趨å¢",description:"æè¿ 14 天çè«æ±éèè¨è²» creditã",viewUsage:"æ¥çç¨é",loading:"æ£å¨è¼å
¥ç¨é趨å¢",empty:"æ«ç¡ç¨é",emptyDescription:"éå§å³éè«æ±å¾ï¼é裡æé¡¯ç¤ºç¨éã"},hrs={title:"Credit æ´»èºåº¦",description:"æè¿ 90 天æ¯å¤©çè¨è²» creditã",total:"90 天åè¨",loading:"æ£å¨è¼å
¥æ´»èºåº¦",activeDays:"æè¿ {{days}} 天å
§æ {{count}} åæ´»èºæ¥",less:"å°",more:"å¤"},yrs={title:"ç¨é髿",description:"ææ¶è強度ãtoken è¦æ¨¡åä¸»è¦æ¨¡åå£ç¸®å°ä¸å±ã",activeDays:"æ´»èºå¤©æ¸",ofDays:"å
± {{days}} 天",avgDailyCredit:"æ¥å credit",nonZeroDays:"ææ´»èºæ¥è¨ç®",peakDay:"峰弿¥",noPeak:"æ«ç¡ç¨é",tokens:"Tokens",topModel:"ä¸»è¦æ¨¡å",creditShare:"è¨è²» credit 使¯"},vrs={title:"å¿«éå¥åº·çæ
",requests7d:"7 æ¥è«æ±",creditToday:"仿¥æ¶è credit",credit7d:"7 æ¥æ¶è credit"},brs={title:"æè¿è«æ±",description:"ä½ ç key æè¿ç¼èµ·ç gateway å¼å
851«ã",viewRecords:"æ¥çè¨é",table:{label:"æè¿è«æ±",model:"模å",status:"çæ
",tokens:"Tokens",credit:"Credit",time:"æé",apiKey:"API key"},empty:"æ«ç¡è«æ±",emptyDescription:"å»ºç« API key 並å³éè«æ±å¾ï¼æè¿å¼å«æé¡¯ç¤ºå¨é裡ã"},xrs={title:"å³é第ä¸åè«æ±",description:"ç¸å®¹ OpenAIãå»ºç« keyï¼è¨å® {{env}}ï¼ç¶å¾å¼å« gatewayã"},$rs={credit:"Credit",requests:"è«æ±"},wrs={title:urs,description:mrs,createApiKey:prs,cards:frs,usageTrend:grs,activity:hrs,usageMix:yrs,quickHealth:vrs,recent:brs,firstRequest:xrs,tooltip:$rs},krs="é¸åå
¨é¨å",Crs="é¸å第 {{row}} å",Srs="è¼å
¥å¤±æ",Ars="æ«ç¡è³æ",Trs="æ²æå¯é¡¯ç¤ºçè¨éã",Rrs="æ´å¤è©³æ
",Prs="éæ {{count}} é
詳æ
",_rs="éå詳æ
",jrs={selectAllRows:krs,selectRow:Crs,errorTitle:Srs,emptyTitle:Ars,emptyDescription:Trs,moreDetails:Rrs,moreDetailsWithCount:Prs,openRow:_rs},Nrs="æè¿ 1 å°æ",Drs="ä»å¤©",Mrs="æ¨å¤©",Ers="æè¿ 7 天",Irs="æè¿ 30 天",Ors="æ¬æ",Lrs="ææä»½",Urs="èªè¨",Brs="å
¨é¨æé",Frs="é¸ææ¥æ",zrs="åæ¶",qrs="å¥ç¨",Hrs="éå§æ¥æå¿
é æ©æ¼çµææ¥æã",Vrs="æéç¯åé è¨",Krs="ä¸åæ",Grs="ä¸åæ",Wrs={last1h:Nrs,today:Drs,yesterday:Mrs,last7d:Ers,last30d:Irs,thisMonth:Ors,byMonth:Lrs,custom:Urs,all:Brs,selectDate:Frs,cancel:zrs,apply:qrs,reversedError:Hrs,presetsAriaLabel:Vrs,previousMonth:Krs,nextMonth:Grs},Yrs="帳èä¸å¯ç¨",Qrs="å¸³èæ£å¨åå§å",Xrs={title:"帳èå·²æ«å",description:"æ¤å¸³èä»å¯ç»å
¥ï¼ä½æ§å¶å°ååè gateway è«æ±å·²æ«åã",detail:"å¦æä½ èªçºéæ¯èª¤æä½ï¼è«ä½¿ç¨æ¤å¸³èç Email è¯çµ¡ supportã"},Zrs={accountUnavailable:Yrs,accountInitializing:Qrs,accountRestricted:Xrs},Jrs="å
è²»é¡åº¦",eis="çºæå®æ¨¡åæ¯æ¥ç¼æ¾çå
è²» token é¡åº¦,æèªåå·æ°,䏿å¾ä½ çé¢å
æ£è²»ã",tis="ç¡æ³è¼å
¥ä½ çå
è²»é¡åº¦ã",nis="å
¨é¨æ¨¡å",ais="æ´»åæ¼ {{date}} çµæ",ois={daily:"æ¯æ¥",weekly:"æ¯é±"},sis={daily:"æ¯æ¥å·æ°",weekly:"æ¯é±å·æ°",localTime:"ä½ çæ¬å°æé {{time}}",countdown:"è·ä¸æ¬¡å·æ° {{duration}}",refreshingSoon:"å³å°å·æ°"},ris={title:"ç®åæ²æé²è¡ä¸çå
è²»é¡åº¦æ´»å",description:"æå
è²»é¡åº¦æ´»åé²è¡æ,ä½ çæ¯æ¥é¡åº¦æé¡¯ç¤ºå¨é裡ã"},iis={title:"ä½ ç帳èå·²æ«åç¼æ¾å
è²»é¡åº¦",body:"æ¤å¸³èçä¼¼å±¬æ¼æ¹é註åçä¸é¨å,å æ¤æ«ææ«åå
è²»ç¼æ¾ãå¦æèª¤æ,è«è¯çµ¡"},lis="tokens",cis="仿¥å©é¤ {{value}} tokens",dis={label:"ç¨å®æéµä»¶æé",hint:"仿¥å
è²»é¡åº¦ç¨å®æ,å¯ä¸å°éµä»¶éç¥ä½ ã"},uis={crg_freetoken_daily_cn5:"åç¢æ¨¡å · æ¯æ¥å
è²» Token"},mis={title:Jrs,description:eis,loadFailed:tis,allModels:nis,campaignEnds:ais,cadence:ois,refresh:sis,empty:ris,paused:iis,tokensUnit:lis,remainingToday:cis,emailToggle:dis,campaigns:uis},pis="æ¥èª",fis="æ¥çæ¯çè«æ±çææ¬ãå»¶é²ãtokensãçæ
åè·¯ç±ä¿¡èã",gis={copiedCurl:"å·²è¤è£½ curl",copiedId:"å·²è¤è£½è«æ± ID",copyCurl:"è¤è£½çº curl",copyFailed:"è¤è£½å¤±æ",copyId:"è¤è£½è«æ± ID",menu:"è¡æä½",openTab:"卿°åé æé"},his={prompt:"Prompt",ratio:"å½ä¸ç",read:"å¿«åè®å",title:"å¿«åå½ä¸ç"},yis={confirm:"åæ¶ä»»å",failed:"åæ¶ä»»å失æ",keep:"ä¿ç",message:"æ¤ä»»åä»å¨æéä¸ãåæ¶å¾å°ä¸åèçï¼ä¹ä¸æç¢çæ£è²»ã",success:"ä»»å已忶",title:"åæ¶ä»»åï¼",pending:"åæ¶ä¸..."},vis={cacheHit:"å¿«åå½ä¸",cost:"ææ¬",ip:"IP",latency:"å»¶é²",model:"模å",source:"便º",status:"çæ
",stream:"串æµ",time:"æé",tokens:"Tokens",tps:"åå"},bis={trigger:"æ¬ä½è¨å®"},xis={body:"éé OneHop ç¼èµ·ä¸æ¬¡è«æ±ï¼è¨éå°±æåºç¾å¨é裡ã",title:"æ¤åéå
§æ«ç¡æ¥èª"},$is={all:"å
¨é¨",apiKey:"API key",cost:"ææ¬ (USD)",desktopDateRangeAria:"鏿æ¡é¢ç«¯æ¥æç¯å",finishReason:"çµæåå ",latency:"å»¶é² (s)",max:"æå¤§",min:"æå°",mobileDateRangeAria:"鏿è¡åç«¯æ¥æç¯å",model:"模å",modelsSelected:"å·²é¸ {{count}} å",more:"æ´å¤ç¯©é¸",refresh:"éæ°æ´ç",request:"æè«æ± ID æå°",requestIdLabel:"è«æ± ID",status:"çæ
",
851stream:"串æµ",time:"æé",type:"é¡å",mobileTitle:"篩é¸"},wis={requests:"æ¬é è¨é",times:"æé顯示çº"},kis={rowsPer:"æ¯é "},Cis={all:"å
¨é¨æé",custom:"èªè¨",last1h:"æè¿ 1 å°æ",last30d:"æè¿ 30 天",last7d:"æè¿ 7 天",thisMonth:"æ¬æ",today:"ä»å¤©",yesterday:"æ¨å¤©"},Sis={title:"客æ¶ç«¯",unknown:"æªåå ± user-agent",unknownShort:"æªç¥"},Ais={output:"è¼¸åº tokens",rate:"éç",title:"åå",window:"çæçªå£"},Tis={title:"è«æ±",openDetail:"éåè«æ±è©³æ
",copy:"è¤è£½ ID",copied:"å·²è¤è£½",copyFailed:"è¤è£½å¤±æ",close:"éé",loading:"è¼å
¥ä¸â¦",response:"åæ",sections:{request:"è«æ±",routing:"è·¯ç±",tokens:"Tokens",cost:"ææ¬æå",performance:"æè½",error:"é¯èª¤",outcome:"çµæ",multimodal:"夿¨¡æ
"},fields:{requestId:"è«æ± ID",time:"æé",apiKey:"API key",userAgent:"User-Agent",billingMode:"è¨è²»æ¨¡å¼",onehopModel:"OneHop 模å",endpoint:"Endpoint",firstToken:"é¦ token",total:"總èæ",throughput:"åå",stream:"串æµ",clientIp:"客æ¶ç«¯ IP",finishReason:"çµæåå ",mediaType:"åªé«é¡å",imageCount:"åçæ¸",imageSize:"尺寸",errorCode:"代碼",errorMessage:"è¨æ¯",requestedModel:"è«æ±æ¨¡å"},billingMode:{token:"æ token",per_request:"ææ¬¡",image:"æåç"},timeline:{heading:"çå½é±æ",received:"æ¶å°è«æ±",routed:"å®æè·¯ç±",failed:"失æ",generated:"çæå®æ",metered:"宿è¨é",billed:"宿è¨è²»"},downloadMedia:"ä¸è¼"},Ris={success:"æå",completed:"已宿",failed:"失æ",pending:"çå¾
ä¸",repairing:"修復ä¸",queued:"æéä¸",running:"å·è¡ä¸",cancelled:"已忶",expired:"å·²éæ"},Pis={chat:"å°è©±",image:"åç",video:"å½±ç"},_is={stop:"æ£å¸¸çµæ",length:"é·åº¦éå¶",tool_calls:"å·¥å
·å¼å«",content_filter:"å
§å®¹é濾",error:"é¯èª¤"},jis={true:"串æµ",false:"é串æµ"},Nis={title:"ææ¬æå"},Dis={title:"Token æç´°",prompt:"輸å
¥",completion:"輸åº",imageOutput:"åçè¼¸åº token",cacheRead:"å¿«åè®å",cacheWrite:"å¿«å寫å
¥",cacheWrite5m:"å¿«å寫å
¥ 5m",cacheWrite1h:"å¿«å寫å
¥ 1h",total:"總è¨"},Mis={timestamp:"æéæ³",local:"æ¬å°æé",relative:"ç¸å°æé"},Eis={inputCost:"輸å
¥ææ¬",outputCost:"è¼¸åºææ¬",cacheReadCost:"å¿«åè®åææ¬",cacheWriteCost:"å¿«å寫å
¥ææ¬",inputPrice:"輸å
¥å®å¹",outputPrice:"輸åºå®å¹",total:"總è¨",officialPrice:"宿¹å¹",saved:"å·²åªæ ",factor:{textInput:"æå輸å
¥",textOutput:"æå輸åº",imageInput:"åç輸å
¥",imageOutput:"åç輸åº",perCallImage:"æå¼µ",videoPerSecond:"å½±ç",videoPerCall:"å½±ç",cacheRead:"å¿«åè®å",cacheWrite:"å¿«å寫å
¥",cacheWrite5m:"å¿«å寫å
¥(5m)",cacheWrite1h:"å¿«å寫å
¥(1h)"},unit:{per1mTokens:"/ 1M tokens",perImage:"/ å¼µ",perSecond:"/ ç§",perCall:"/ 次"},promoBasis:"æå",promoSaved:"æ´»ååªæ ",freeCovered:"å
è²»é¡åº¦æµæ£ï¼{{tokens}} tokensï¼",freeCoveredNoCount:"å
è²»é¡åº¦æµæ£"},Iis={noPreview:"æ«ç¡é 覽",video:"å½±ç"},Ois={free:"å
è²»"},Lis={title:pis,description:fis,actions:gis,cacheHit:his,cancelJob:yis,col:vis,columns:bis,empty:xis,filter:$is,meta:wis,pager:kis,range:Cis,source:Sis,tps:Ais,drawer:Tis,status:Ris,type:Pis,finishReason:_is,stream:jis,costBreakdown:Nis,tokensBreakdown:Dis,time:Mis,userCost:Eis,export:{label:"å¯åº CSV",exporting:"å¯åºä¸â¦",done:"å·²å¯åº {{n}} åã",truncated:"å·²å¯åºå {{n}} å,ç¸®å°æéç¯åå¯å¯åºå
¶é¤ã",failed:"å¯åºå¤±æ,è«é試ã"},media:Iis,cost:Ois},Uis="模å",Bis="æ¥çå
¨é¨å¯ç¨æ¨¡åãä¸ä¸æé·åº¦ã輸å
¥/輸åºå¹æ ¼ï¼ä¸¦æ¶èå¸¸ç¨æ¨¡åã",Fis={all:"å
¨é¨",favorites:"æçæ¶è",benefit:"ç¦å©",hot:"ç±é",free:"å
è²»"},zis={capability:"é¡å",allCapabilities:"å
¨é¨é¡å",capability_text:"æå",capability_image:"åç",capability_audio:"é³è¨",capability_video:"å½±ç",provider:"æä¾å",allProviders:"å
¨é¨æä¾å",protocol:"åè°",allProtocols:"å
¨é¨åè°",sort:"æåº",search:"æå°",searchPlaceholder:"模å / å» å",context:"ä¸ä¸æ",allContexts:"ä¸é",mobileTitle:"篩é¸"},qis="æ¨è¦",His="ææ°",Vis="é±ç±åº¦",Kis="å稱 (A-Z)",Gis="广 ¼ï¼ç±ä½å°é«ï¼",Wis="广 ¼ï¼ç±é«å°ä½ï¼",Yis="ä¸ä¸æé·åº¦",Qis="å»¶é²",Xis="åå",Zis="OpenAI Chat",Jis="OpenAI Responses",els="Anthropic",tls="Vertex AI",
851nls="OpenAI Images",als="OpenAI Video",ols={label:"模å",model:"模å",provider:"æä¾å",capabilities:"è½å",context:"ä¸ä¸æ",price:"广 ¼",discount:"ææ£",action:"æä½",tryIt:"試ä¸è©¦",type:"é¡å",maxOutput:"æå¤§è¼¸åº",copyId:"è¤è£½æ¨¡å ID",copied:"å·²è¤è£½",usage:"ç¨é",stability:"ç©©å®æ§",protocols:"åå®",openDetail:"é忍¡å詳æ
"},sls="ç±é",rls="ç¦å©",ils={add:"æ¶è",remove:"åæ¶æ¶è"},lls={favorites:"éæ²ææ¶èçæ¨¡å",noMatch:"æ²æå¹é
çæ¨¡å"},cls="æå",dls="åç",uls="æªæ¡",mls="å½±ç",pls="é³è¨",fls="åµå
¥",gls="è¦è¦º",hls="å·¥å
·èª¿ç¨",yls="JSON 模å¼",vls="åççæ",bls="åç編輯",xls="æå",$ls="åç",wls="å½±ç",kls="é³è¨",Cls="åµå
¥",Sls="宿¹",Als="Kiro",Tls="æä½",Rls="/ 次",Pls="/ ç§",_ls="/ 1M",jls="極é",Nls="å
è²»",Dls="å³å°æ¨åº",Mls="å
è²»",Els={ariaLabel:"广 ¼è²¨å¹£",usd:"ç¾å
",rmb:"人æ°å¹£ (Â¥)",settlement:"广 ¼ä»¥äººæ°å¹£é¡¯ç¤º,æåºå®å¯ç {{rate}} æç®,å
ä¾åè;é¢å
å§çµä»¥ç¾å
æå¯¦éç¨éçµç®ã"},Ils="éå
å¼",Ols={title:Uis,description:Bis,tabs:Fis,filters:zis,sort_featured:qis,sort_newest:His,sort_top_weekly:Vis,sort_name:Kis,sort_price_asc:Gis,sort_price_desc:Wis,sort_context:Yis,sort_latency:Qis,sort_throughput:Xis,protocol_openai_chat:Zis,protocol_openai_responses:Jis,protocol_anthropic_messages:els,protocol_google_vertex_ai:tls,protocol_openai_images:nls,protocol_openai_sora:als,table:ols,badge_hot:sls,badge_benefit:rls,favorite:ils,empty:lls,modality_text:cls,modality_image:dls,modality_file:uls,modality_video:mls,modality_audio:pls,modality_embeddings:fls,capability_vision:gls,capability_tool_calling:hls,capability_json_mode:yls,capability_image_generation:vls,capability_image_edit:bls,type_text:xls,type_image:$ls,type_video:wls,type_audio:kls,type_embedding:Cls,provider_official:Sls,provider_kiro:Als,price_from:Tls,price_perCall:Rls,price_perSec:Pls,price_per1m:_ls,price_fast:jls,badge_free:Nls,badge_unavailable:Dls,price_free:Mls,currency:Els,badge_requiresTopup:Ils},Lls={main:"主å°èª",utility:"å·¥å
·å°èª",console:"æ§å¶å°å°èª",openNavigation:"æéå°èª",collapse:"æ¶èµ·å´éæ¬",expand:"å±éå´éæ¬"},Uls={platform:"æ§å¶å°",chat:"å°è©±",models:"模å",logs:"æ¥èª",jobs:"ä»»å",apiKeys:"API å¯é°",usage:"ç¨é",billing:"帳å®",freeTokens:"å
è²»é¡åº¦",referrals:"éè«",settings:"è¨å®",admin:"管ç",balance:"é¤é¡",helpSupport:"幫å©èæ¯æ´",announcements:"å
¬å",announcementsTitle:"å
¬å",announcementsEmpty:"æ«ç¡å
¬åï¼æ¬è«æå¾
ã",announcementsTicketUnread:"{{count}} 張工宿æ°åè¦",support:"å·¥å®",tasks:"ä»»åç",tagNew:"æ°"},Bls={staff:"管çå¾å°"},Fls={dashboard:"總覽",users:"ç¨æ¶",billing:"å¹³å°å¸³å®",usage:"å¹³å°ç¨é",rateLimits:"éçéå¶",access:"è¨ªåæ§å¶",staff:"管çå¡",growth:"å¢é·",models:"模å",announcements:"å
¬å",upstream:"䏿¸¸",auditLogs:"å¯©è¨æ¥èª",webhooks:"äºä»¶å調",support:"å·¥å®ä¸å¿",campaigns:"æ´»åçé",domainRules:"éµç®±ååå®"},zls={title:"éç¥",markAllRead:"å
¨é¨å·²è®",loading:"è¼å
¥ä¸â¦",emptyTitle:"æ«ç¡æ°éç¥",emptyBody:"ææ°éç¥æé¡¯ç¤ºå¨é裡ã"},qls={aria:Lls,public:{models:"模å",pricing:"广 ¼",docs:"æä»¶",blog:"ç¶²èª",changelog:"æ´æ°æ¥èª"},console:Uls,adminGroups:Bls,admin:Fls,notifications:zls},Hls={back:"ä¸ä¸æ¥",done:"宿",next:"ä¸ä¸æ¥",stepOf:"{{current}} / {{total}}"},Vls={balance:{body:"é¨ç¨é¨å²ãæªä½¿ç¨é¤é¡å¯é¨æé款ã",title:"ä½ çé¤é¡"},keys:{body:"é»é裡ç¢ç䏿 keyï¼æä»»ä½å·¥å
·æå OneHop å³å¯ã",title:"建ç«ç¬¬ä¸æ API key"},models:{body:"ä¸é çæ¸
ä½ è½èª¿ç¨çæææ¨¡åï¼ä»¥ååèªå¹æ ¼ã",cta:"æé模åé ",title:"ççæ¨¡å"}},Kls={body:"ä¸å URL èª¿ç¨æææ¨¡åãè± 30 ç§å¸¶ä½ çä¸ä»¶äºã",skip:"è·³é",start:"éå§",title:"æ¡è¿ä½¿ç¨ OneHop"},Gls={nav:Hls,steps:Vls,welcome:Kls},Wls="è¼å
¥å¤±æ",Yls="éè£¡æ«ææ²æå
§å®¹ã",Qls="æ´å¤è©³æ
",Xls={failedLoad:Wls,emptyDescription:Yls,moreDetails:Qls},Zls="å
¨é¨",Jls="æå",ecs="èçä¸",tcs="修復ä¸",ncs="失æ",acs="已鿬¾",ocs="æ´»èº",scs="å·²åç¨",rcs="å·²ç¨ç½",ics="ä½ç¨ä¸",lcs="å·²å
æ",ccs="å·²æ«å",dcs="å·²åªé¤",ucs="æ£å¸¸",mcs="è§å¯ä¸",pcs="已黿¢",fcs="å·²ç¼æ¾",gcs="åçµä¸",hcs="已鿾",ycs="已忶",vcs="é¨å忣",bcs="å·²æ²å",xcs="已跳é",$cs="å·²éæ",wcs="å·²æçµ",kcs="è稿",Ccs="å·²ç¼å¸",Scs="å·²æ£ç¨",Acs="å·²å°å",Tcs="é±è",Rcs="已建ç«
851",Pcs="å·²éå checkout",_cs="å·²æ¯ä»",jcs="已忶",Ncs="OpenAI Chat",Dcs="OpenAI Responses",Mcs="Anthropic Messages",Ecs="Google Vertex AI",Ics="OpenAI Images",Ocs="ç¨éæ£è²»",Lcs="註åçåµ",Ucs="ä¿é·çåµ",Bcs="æ¨è¦çåµ",Fcs="è£åçåµ",zcs="å²å¼çåµ",qcs="人工調æ´",Hcs="Credit 購買",Vcs="æ¯ä»",Kcs="註åçåµ",Gcs="åªæ 碼",Wcs="管çå¡è´é",Ycs="API ç¨é",Qcs="註åçåµ",Xcs="人工è´é",Zcs="忥",Jcs="Streaming",eds="Token è¨è²»",tds="è«æ±è¨è²»",nds="åçè¨è²»",ads="ä½ reasoning",ods="ä¸ reasoning",sds="é« reasoning",rds="ä¸é©ç¨",ids="æªç¥",lds={all:Zls,success:Jls,pending:ecs,repairing:tcs,failed:ncs,refunded:acs,active:ocs,disabled:scs,exhausted:rcs,reserved:ics,redeemed:lcs,suspended:ccs,deleted:dcs,normal:ucs,watchlisted:mcs,blocked:pcs,granted:fcs,frozen:gcs,released:hcs,cancelled:ycs,partially_reversed:vcs,reversed:bcs,skipped:xcs,expired:$cs,denied:wcs,draft:kcs,published:Ccs,deprecated:Scs,archived:Acs,public:"å ¬é",hidden:Tcs,created:Rcs,checkout_opened:Pcs,paid:_cs,canceled:jcs,openai_chat:Ncs,openai_responses:Dcs,anthropic_messages:Mcs,google_vertex_ai:Ecs,openai_images:Ics,usage_charge:Ocs,bonus_signup_grant:Lcs,bonus_promo_grant:Ucs,bonus_referral_grant:Bcs,bonus_compensation_grant:Fcs,bonus_topup_grant:zcs,manual_adjustment:qcs,credit_purchase:Hcs,payment:Vcs,signup:Kcs,coupon:Gcs,admin:Wcs,api:Ycs,signup_bonus:Qcs,manual:Xcs,sync:Zcs,stream:Jcs,token:eds,request:tds,image:nds,low:ads,medium:ods,high:sds,not_applicable:rds,unknown:ids},cds="{{count}} æ¢/é ",dds="å ± {{count}} æ¢",uds={perPage:cds,total:dds},mds="éè«èè¿å©",pds="åäº«ä½ çå°å±¬é£çµã被éè«ä½¿ç¨è å²å¼å¾ï¼éæ¹çè¿å©é½ææ¸ æ¥è¨éã",fds="ç¡æ³è¼å ¥éè«è³æ",gds="ä½ çéè«é£çµ",hds="å享",yds="å·²è¤è£½éè«å §å®¹,æé微信貼給好åå³å¯",vds="è¤è£½",bds="å·²è¤è£½",xds="微信",$ds="X",wds="Telegram",kds="Reddit",Cds="LinkedIn",Sds="WhatsApp",Ads="éµä»¶",Tds="Facebook",Rds={default:{title:"ç¨ä¸å OneHop APIï¼èª¿ç¨ææ AI 模å",body:"ç¨æçéè«é£çµè¨»å ââ å¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©ã"},x:{title:"ä¸å APIï¼èª¿ç¨ææ AI 模å ð¤",body:"ç¨æçé£çµå¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æååå¾ {{percent}}% è¿å© ð"},telegram:{title:"ç¨ OneHop æ¥å ¥ææ AI 模å",body:"ä½¿ç¨æçéè«é£çµ ââ å¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©ç©åã"},whatsapp:{title:"ç¨ OneHop æ¥å ¥ææ AI 模å",body:"ç¨æçéè«é£çµå å ¥ï¼å¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©ã"},reddit:{title:"OneHop ââ ä¸å API èª¿ç¨ææ AI 模åï¼ç¨æçéè«é£çµé¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©",body:"å¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©ç©åã"},email:{title:"éè«ä½ ä½¿ç¨ OneHop ââ ééä¸å API èª¿ç¨ææ AI 模å",body:`ä½ å¥½ï¼ 852 853ææ£å¨ä½¿ç¨ OneHopï¼ééå®ä¸ API å°±è½èª¿ç¨åå¤§ä¸»æµ AI 模åãä½¿ç¨æçéè«é£çµè¨»åï¼å®æé¦æ¬¡å²å¼å¾ï¼æåéæ¹é½è½ç²å¾è¿å©ç©åã 854 855è¿å©ç´è·ï¼{{tiers}}ã 856 857è¬è¬ï¼`},wechat:{title:"OneHop ââ ä¸å API èª¿ç¨ææ AI 模å",body:"ç¨æçéè«é£çµè¨»åï¼å¨ {{firstWindowDays}} å¤©å §é¦æ¬¡å²å¼ï¼æåéæ¹åå¾ {{percent}}% è¿å©ã"}},Pds="è¿å©å¨ä»æ¬¾å¾ç«å³å¯è¦ï¼ä½æå åçµä»¥è¦è鿬¾æï¼å°æå¾éåºçº OneHop éè«çåµ creditã",_ds="{{days}} 天å¾éåºã",jds={referrer:"éè«äºº",referee:"被éè«äºº"},Nds={referrer:"ï¼è¢«éè«äººé¦æ¬¡åå¾çºå²å¼ï¼ä½ é½ä¾ç´è·ç²å¾ credit åé¥ ââ {{tiers}}ã",referee:"ï¼ç¨éè«é£çµè¨»åå¾ï¼ä½ çå²å¼å樣ä¾ç´è·ç²å¾ credit åé¥ ââ {{tiers}}ã"},Dds={dayRange:"{{fromDay}}-{{untilDay}} 天",dayOpenEnded:"{{fromDay}} 天起"},Mds="ç´¯è¨ç²å¾",Eds="å·²éåºéè«è¿å©",Ids="åçµä¸éè«è¿å©",Ods="éè«äººæ¸",Lds="ææéè«",Uds="å·²éåºè¢«éçåµ",Bds="åçµä¸è¢«éçåµ",Fds="åæ¶ / 忣",zds="ä½ éè«ç人",qds="è¿å©æç´°",Hds={user:"使ç¨è ",joined:"註åæé",topups:"å²å¼çæ¸",earned:"ä½ å·²ç²å¾",frozen:"åçµä¸",date:"æé",event:"äºä»¶",topupAmount:"å°æ¹å²å¼",rate:"æ¯ä¾",releaseAt:"éåºæé",cashback:"è¿å©",status:"çæ "},Vds={title:"éæ²æéè«",description:"åäº«ä½ çé£çµå³å¯éå§ç²å¾è¿å©ã"},Kds={inviteeSignedUp:"被éè«äººæå註å",youSignedUp:"ä½ éééè«æå註å",inviteePaid:"被éè«äººæåæ¶è²»",youPaid:"ä
857½ ä½çºè¢«éè«äººæåæ¶è²»"},Gds={frozen:"åçµä¸",released:"å·²éåº",cancelled:"已忶",partially_reversed:"é¨å忣",reversed:"已忣",failed:"失æ",skipped:"已跳é"},Wds={title:mds,description:pds,error:fds,yourLink:gds,shareVia:hds,wechatCopied:yds,copy:vds,copied:bds,wechat:xds,x:$ds,telegram:wds,reddit:kds,linkedin:Cds,whatsapp:Sds,email:Ads,facebook:Tds,share:Rds,offer:Pds,releaseDelay:_ds,role:jds,roleOffer:Nds,policy:Dds,totalEarned:Mds,availableEarned:Eds,frozenEarned:Ids,invited:Ods,active:Lds,availableReceived:Uds,frozenReceived:Bds,cancelledReversed:Fds,peopleYouInvited:zds,history:qds,col:Hds,empty:Vds,event:Kds,status:Gds},Yds="è¨å®",Qds="管ç帳èåå¥½èæ§å¶å°é è¨é¸é
ã",Xds="ç®åç»å
¥ï¼{{email}}",Zds="顯示å稱",Jds="èªè¨",eus="æå",tus="è³æè¼å
¥å¤±æ",nus="å²å失æ",aus="æ¾æ£è®æ´?",ous="ä½ æå°æªå²åçè®æ´,ç¾å¨é¢éå°ææ¨æ£éäºè®æ´ã",sus="æ¾æ£",rus="ç¹¼çºç·¨è¼¯",ius={title:Yds,description:Qds,signedInAs:Xds,displayName:Zds,locale:Jds,timezone:eus,failedLoad:tus,failedSave:nus,discardTitle:aus,discardMessage:ous,discardConfirm:sus,keepEditing:rus},lus="ä»»åç",cus="æ OneHop åäº«çµ¦ä½ çè®è
ï¼è³ºå試ç¨éãæ¯ä¸åæäº¤æåé½äººå·¥å¯©æ ¸ã",dus="ä½ çå
§å®¹é£çµ",uus="https://â¦",mus="æäº¤",pus="å·²æäº¤ï¼æåæç¡å¿«å¯©æ ¸ã",fus="å¯æäº¤çå¹³å°ï¼{{hosts}}",gus="䏿¬¡è¢«éåï¼{{reason}}ãä¿®æ£å¾å¯ä»¥éæ°æäº¤ã",hus={pending:"å¯©æ ¸ä¸",approved:"å·²å
¥å¸³",rejected:"å·²éå",active:"å·²çæ"},yus={title:"ç®åæ²æä»»å",description:"éé£ååä¾ççââé顿´»åæåæä¸å®ææ¨åºã"},vus={x_quote:{title:"å¨ X å¼ç¨è½ç¼æå",description:"å¼ç¨è½ç¼ @OneHopAI çç½®é è²¼æï¼ä¸¦å¯«ä¸ä½ èªå·±ç使ç¨å¿å¾ã",rules:["X 帳èéè¨»åæ»¿ 6 åæä¸è³å°æ 10 ä½è¿½è¹¤è
ã","æäº¤ä½ èªå·±é£åå¼ç¨è²¼æçé£çµï¼ä¸æ¯åè²¼æçé£çµã","å¯©æ ¸ééå¾ 2 å°æå
§å
¥å¸³ã"]},youtube_tutorial:{title:"ç¼ä¸æ¯ YouTube æå¸",description:"6 åé以ä¸çå½±çï¼èªªæä½ å¦ä½æ OneHop æ¥é²èªå·±ç agentã",rules:["ç¼å¸å¾æäº¤å½±çé£çµã","YouTube é »éè¨é±æ¸é ⥠50ã","æ¯å帳èå
éåå 䏿¬¡ã","å¯©æ ¸ééå¾ 2 å°æå
§å
¥å¸³ã"]},short_video:{title:"ç¼ä¸æ¯çå½±é³",description:"å¨ TikTok æ YouTube ç¼ 40 ç§ä»¥ä¸ççå½±é³ï¼æå°ä½ ç OneHop è¨å®ã",rules:["ç¼å¸å¾æäº¤å½±çé£çµã","å¯©æ ¸ééå¾ 2 å°æå
§å
¥å¸³ã"]},github_readme:{title:"å¨ä½ ç GitHub README å ä¸ OneHop",description:"å¨ä½ èªå·±çå²å庫 README å ä¸å¥ OneHop çè´å©è¨æ¯ï¼æ¤å¾æ¯çå²å¼é¡å¤å é 15%ã",rules:["README ä¸ç·å¾æäº¤å²å庫é£çµã","éæ¯æ°¸ä¹
çï¼ä¸æ¯ä¸æ¬¡æ§ï¼æ¤å¾æ¯çå²å¼æåãå
¨ç«æ¨æºè´éãèãä½ ç 15%ãä¸è¼é«è
ã","å¯ç´æ¥è¤è£½çææ¡è¦ä¸æ¹ã"]}},bus={load:"ä»»åçè¼å
¥å¤±æ",generic:"æäº¤å¤±æ",urlRequired:"è«å
è²¼ä¸ä½ çå
§å®¹é£çµã",urlTooLong:"éåé£çµå¤ªé·äºã",urlMalformed:"éçèµ·ä¾ä¸æ¯ææçé£çµã",hostNotAllowed:"æ¤ä»»ååªæ¥å䏿¹ååºçå¹³å°é£çµã",notAPost:"è«å¡«å
·é«é£åå
§å®¹çé£çµï¼ä¸æ¯åäººé æé »éé ã",alreadySubmitted:"éåä»»åä½ å·²ç¶æäº¤éäºã",notAvailable:"æ¤ä»»åç®åç¡æ³ä½¿ç¨ã",busy:"ä»å¤©çå¯©æ ¸é已滿ï¼è«æå¤©å試ã",emailUnverified:"è«å
é©èä½ çé»åéµä»¶ã",accountTooNew:"ä½ ç帳è註åæééä¸å¤ ä¹
ã",riskFlagged:"æ¤å¸³èç®åç¡æ³åå ãå¦èªçºæèª¤è«è¯çµ¡å®¢æã",accountInactive:"æ¤å¸³èæªèæ¼æ£å¸¸çæ
ã",deviceAlreadyClaimed:"æ¤è£ç½®ä¸å·²æå¦ä¸å帳èåå éã"},xus="æè¬ [OneHop]({{url}}) å°æ¬å°æ¡çè´å©ï¼OneHop å¯çºä½¿ç¨è
æä¾ä¸æç¸å®¹ OpenAI åè°ç API éé°ï¼å³å¯å¼å«ä¸ç¾æ¬¾ä¸»æµå¤§æ¨¡åï¼å
æ¬ GPTãClaudeãGeminiãDeepSeekãKimi 以åé義ååï¼Qwenï¼ãä½ ç¡é管çå¤å®¶æåå帳èï¼ä¹ä¸ç¨åè¦ä¿®æ¹ç¨å¼ç¢¼ï¼å°±è½èªç±åææ¨¡åï¼ä¸¦ä¸æ¡ç¨æéä»è²»æ¨¡å¼ãâ {{domain}}",$us="è¤è£½éæ®µææ¡",wus={title:lus,description:cus,urlLabel:dus,urlPlaceholder:uus,submit:mus,submitted:pus,allowedHosts:fus,rejectedHint:gus,status:hus,empty:yus,item:vus,error:bus,sponsorBlurb:xus,copyBlurb:$us},kus="ç·ä¸å®¢æ",Cus="æ¯æ´å·¥å®",Sus="æäº¤å·¥å®ï¼æåæç¡å¿«åè¦ä½ ã",Aus="æ°å»ºå·¥å®",Tus={subject:"主æ¨",category:"é¡å",status:"çæ
",updated:"æ´æ°æé",user:"使ç¨è
"},Rus={billing:"è¨è²»",technical:"æè¡",account:"帳è",other:"å
¶ä»"},Pus={open:"å¾
èç",pending:"å¾
åè¦",resolved:"已解決",closed:"å·²éé"},_us={allStatuses:"å
¨é¨çæ
",allCategories:"å
¨é¨é¡å",search:"æå° email æä¸»æ¨"},jus={subject:"主æ¨",subjectPlaceholder:"ç°¡è¦æè¿°ä½ çåé¡",category:"é¡å",message:"å
§å®¹",messagePlaceholder:"èª
857ªèªªç¼çäºä»éº¼â¦",attachments:"éä»¶",addAttachment:"æ°å¢æªæ¡",submit:"æäº¤å·¥å®",cancel:"åæ¶"},Nus={you:"ä½ ",support:"客æ",system:"系統",replyPlaceholder:"寫åè¦â¦",send:"å³é",closedNotice:"å·¥å®å·²ééãå¦ä»éåå©ï¼è«æ°å»ºå·¥å®ã",sendHint:"æ â/Ctrl + Enter å³é",back:"è¿åå·¥å®å表",systemStatus:{open:"éæ°éåäºå·¥å®",pending:"å·²å°å·¥å®æ¨è¨çºçå¾
使ç¨è
",resolved:"å·²å°å·¥å®æ¨è¨çºå·²è§£æ±º",closed:"å·²ééå·¥å®"}},Dus={title:"å·¥å®ä¸å¿",resolve:"æ¨è¨å·²è§£æ±º",close:"éé",reopen:"éæ°éå",unread:"æªè®"},Mus="è¼å
¥æ´å¤",Eus={created:"å·¥å®å·²æäº¤",replied:"åè¦å·²å³é",statusUpdated:"çæ
å·²æ´æ°",error:"ç¼çé¯èª¤ï¼è«é試"},Ius="å·¥å®ä¸åå¨æå·²è¢«åªé¤ã",Ous={title:"éæ²æå·¥å®",body:"éå°åé¡äºï¼æäº¤å·¥å®ï¼æåä¾å¹«ä½ ã",cta:"æäº¤ç¬¬ä¸åå·¥å®"},Lus={liveChat:kus,title:Cus,subtitle:Sus,newTicket:Aus,columns:Tus,category:Rus,status:Pus,filters:_us,form:jus,thread:Nus,admin:Dus,loadMore:Mus,toast:Eus,notFound:Ius,empty:Ous},Uus="ç¨é",Bus="é¤é¡ãæ¶èé度ï¼ä»¥åä½ çéé·é½è±å¨åªè£¡ã",Fus="æ´»å",zus="æ¤åéå
§æ«ç¡æ´»å",qus="ç¨éæç´°",Hus="æ API key",Vus="ææ¨¡å",Kus="æ token é¡å",Gus="æ«ç¡è³æ",Wus="æ¤åéå
§æ«ç¡ç¨éã",Yus="æç®åé度ï¼é¤é¡é è¨éè½ç¨ {{days}} 天ï¼ç´ {{rate}}/天ï¼ã",Qus="輸åº",Xus="å¿«å",Zus={tokens:"Tokens",requests:"è«æ±æ¸",cost:"è²»ç¨"},Jus="å
¶ä»",ems="次",tms="tok",nms="éæ°æ´çä¸â¦",ams="æ«ç¡è³æ",oms="ç¼èµ·ä¸æ¬¡è«æ±å³å¯éå§ç´¯ç©è³æã",sms="ç±é API key",rms="å²å¼",ims={title:"ç¡æ³è¼å
¥ç¨é"},lms={firstToken:"é¦ token",latency:"å¹³åå»¶é²",requests:"è«æ±",spend:"æ¶è²»",spendSub:"æ¬æè¨è²»",successRate:"{{rate}}% æå",tokens:"Tokens",textDuration:"æå",mediaDuration:"åç/å½±ç",cacheHit:"å¿«åå½ä¸ {{rate}}%",projected:"ç´ {{amount}}/æ",vsPrevious:"å°æ¯ä¸ä¸é±æ"},cms={activeDays:"æ´»èºå¤©æ¸",longestStreak:"æé·é£çº",daysValue:"{{n}} 天",totalSpend:"æ¬ææ¶è²»",peakDay:"ææ´»èºæ¥"},dms={all:"å
¨é¨æé",custom:"èªè¨",last1h:"æè¿ 1 å°æ",last30d:"æè¿ 30 天",last7d:"æè¿ 7 天",thisMonth:"æ¬æ",today:"ä»å¤©",yesterday:"æ¨å¤©",byMonth:"ææä»½"},ums={failed:"失æ",success:"æå"},mms={cacheRead:"å¿«åè®å",cacheWrite:"å¿«å寫å
¥",cacheWrite1h:"å¿«å寫å
¥ 1h",cacheWrite5m:"å¿«å寫å
¥ 5m",completion:"輸åº",prompt:"輸å
¥"},pms={body:"å¾çµç«¯ç¼èµ·è«æ±ï¼ææé playground ââ å¹¾ç§å
§ç¨éå°±æåºç¾å¨é裡ã",openPlayground:"æé playground",title:"ä½ ç key 已就ç·"},fms={body:"建ç«ç¬¬ä¸å API keyï¼ç¨ä¸å URL è·¯ç±ææè«æ±ï¼ç¨éé¨å¾å°±æé¡¯ç¤ºå¨é裡ã",createKey:"å»ºç« API key",title:"æ¡è¿ä½¿ç¨ OneHop",tryPlayground:"試試 playground"},gms="éæ°æ´ç",hms="ç®å篩é¸ä¸ {{count}} åæåè«æ±",yms="總 tokens",vms="輸å
¥ {{input}} / è¼¸åº {{output}}",bms="è¨è²» credit",xms="{{cost}} 䏿¸¸å¯¦éææ¬",$ms="å¹³åå»¶é²",wms="é¦ token {{duration}}",kms="30 æ¥æ´»å",Cms="æåè«æ±ãtoken éèè¨è²» creditã",Sms="æ£å¨è¼å
¥ç¨é趨å¢",Ams="æ«ç¡ç¨é趨å¢",Tms="æåè«æ±åºç¾å¾æé¡¯ç¤ºç¨é趨å¢ã",Rms="ç±é模å",Pms="æè¿ 30 å¤©ææ¨¡åçµ±è¨çè¨è²» creditã",_ms="æ«ç¡æ¨¡åç¨é",jms="æåè«æ±åºç¾å¾æé¡¯ç¤ºæ¨¡åæåã",Nms="模å",Dms="å
¨é¨æ¨¡å",Mms="çæ
",Ems="åå®",Ims="è¡æ¸",Oms="éè¨",Lms="ç¨éè¨é",Ums="API key",Bms="Endpoint",Fms="é¡å",zms="Tokens",qms="ææ¬",Hms="èæ",Vms="æé",Kms="User-Agent",Gms="詳æ
",Wms="è«æ±è©³æ
",Yms="ç¨éè¨é詳æ
èè¨è²» metadataã",Qms="è«æ± ID",Xms="æä½",Zms="輸å
¥ tokens",Jms="è¼¸åº tokens",eps="å¿«åè®å tokens",tps="å¿«å寫å
¥ tokens",nps="輸å
¥ææ¬",aps="è¼¸åºææ¬",ops="å¿«åè®åææ¬",sps="å¿«å寫å
¥ææ¬",rps="é¯èª¤ç¢¼",ips="é¯èª¤è¨æ¯",lps="æªæ¾å°ã",cps="credit",dps="ç¸½è¨ {{count}}",ups="æ£å¨è¼å
¥ç¨éè¨é",mps="æ«ç¡ç¨éè¨é",pps="æä¸çµç¯©é¸æ¢ä»¶è©¦è©¦ã",fps="è«æ±æµç¶ä½ ç API keys å¾ï¼è¨éæé¡¯ç¤ºå¨é裡ã",gps="第 {{page}} é · 顯示 {{shown}} çï¼å
± {{total}} çå¹é
è¨é",hps="ä¸ä¸é ",yps="ä¸ä¸é ",vps="Credit",bps="Tokens",xps="è«æ±",$ps={time:"æé",apiKey:"API Key",model:"模å",reasoningEffort:"æ¨ç強度",endpoint:"Endpoint",type:"é¡å",billingMode:"è¨è²»æ¨¡å¼",inputTokens:"輸å
¥ Tokens",outputTokens:"è¼¸åº Tokens",cacheReadTokens:"å¿«åè®å Tokens",cacheWriteTokens:"å¿«å寫å
¥ Tokens",totalTokens:"總 Tokens",billedCredit:"è¨è²» Credit",firstTokenMs:"é¦ Token 毫ç§",durationMs:"èææ¯«ç§",status:"çæ
",userAgent:"User-Agent"},wps={mon:"é±ä¸",wed:"é±ä¸",fri:"é±äº"},kps="å°",Cps="å¤",Sps={title:Uus,description:Bus,activity:Fus,activityEmpty:zus,breakdown:qus,byApiKey:Hus,byModel:Vus,byTokenType:Kus,chartEmpty:Gus,chartEmptyHint:Wus,burnRate:Yus,in:"輸å
¥",out:Qus,cache:Xus,metric:Zus,other:Jus,req:ems,tok:tms,refreshing:nms,topEmpty:ams,topEmptyHint:oms,topKeys:sms,topUp:rms,error:ims,kpi:lms,stat:cms,range:dms,requests:ums,tokenType:mms,noRequests:pms,welcome:fms,refresh:gms,successfulFilter:hms,totalTokens:yms,inOut:vms,billedCredit:bms,upstreamA
857ctualCost:xms,avgLatency:$ms,firstToken:wms,activityTitle:kms,activityDescription:Cms,loadingTrend:Sms,noUsageTrend:Ams,trendDescription:Tms,topModels:Rms,topModelsDescription:Pms,noModelUsage:_ms,noModelUsageDescription:jms,model:Nms,allModels:Dms,status:Mms,protocol:Ems,rows:Ims,reset:Oms,tableLabel:Lms,apiKey:Ums,endpoint:Bms,type:Fms,tokens:zms,cost:qms,duration:Hms,time:Vms,userAgent:Kms,details:Gms,requestDetail:Wms,detailDescription:Yms,requestId:Qms,operation:Xms,inputTokens:Zms,outputTokens:Jms,cacheReadTokens:eps,cacheWriteTokens:tps,inputCost:nps,outputCost:aps,cacheReadCost:ops,cacheWriteCost:sps,errorCode:rps,errorMessage:ips,notFound:lps,creditSuffix:cps,total:dps,loadingRecords:ups,noRecords:mps,differentFilters:pps,recordsEmpty:fps,pageSummary:gps,previous:hps,next:yps,chartCredit:vps,chartTokens:bps,chartRequests:xps,csv:$ps,weekday:wps,activityLess:kps,activityMore:Cps},F3={ar:{translation:{adminAccess:i0e,adminBilling:xke,adminCampaigns:Kke,adminContent:n1e,adminDashboard:q1e,adminGate:G1e,adminGrowth:yRe,adminModels:TPe,adminRateLimits:QPe,adminStaff:R_e,adminUpstream:q_e,adminUsage:J2e,adminUserDetail:CNe,adminUsers:ZDe,adminWebhooks:yMe,apiKeys:mEe,auditLogs:AEe,auth:KEe,billing:qIe,charts:GIe,chat:pOe,common:FOe,dashboard:JOe,dataTable:l3e,dateRange:S3e,errors:P3e,freeTokens:q3e,logs:gLe,models:f4e,nav:x4e,onboarding:C4e,opsTable:R4e,optionLabels:U5e,pagination:z5e,referrals:SUe,settings:LUe,tasks:JUe,support:gBe,usage:n8e}},de:{translation:{adminAccess:oFe,adminBilling:yze,adminCampaigns:qze,adminContent:J7e,adminDashboard:Bqe,adminGate:Hqe,adminGrowth:fKe,adminModels:CGe,adminRateLimits:GGe,adminStaff:SWe,adminUpstream:BWe,adminUsage:QQe,adminUserDetail:$Xe,adminUsers:YZe,adminWebhooks:fJe,apiKeys:det,auditLogs:Cet,auth:Vet,billing:ztt,charts:Ktt,chat:mnt,common:Bnt,dashboard:Znt,dataTable:iat,dateRange:Cat,errors:Rat,freeTokens:zat,logs:fot,models:pst,nav:bst,onboarding:kst,opsTable:Tst,optionLabels:Lrt,pagination:Frt,referrals:Cit,settings:Oit,tasks:Zit,support:flt,usage:tdt}},en:{translation:{adminAccess:aut,adminBilling:hmt,adminCampaigns:zmt,adminContent:Zpt,adminDashboard:Uft,adminGate:qft,adminGrowth:pvt,adminModels:kbt,adminRateLimits:Kbt,adminStaff:Cxt,adminUpstream:Uxt,adminUsage:Ywt,adminUserDetail:x0t,adminUsers:Wkt,adminWebhooks:pCt,apiKeys:l1t,auditLogs:w1t,auth:z1t,billing:USt,charts:qSt,chat:cAt,common:OAt,dashboard:YAt,dataTable:oTt,dateRange:$Tt,errors:STt,freeTokens:UTt,logs:uRt,models:dPt,nav:hPt,onboarding:xPt,opsTable:CPt,optionLabels:E_t,pagination:L_t,referrals:$jt,settings:Mjt,tasks:Yjt,support:u2t,usage:ZNt}},es:{translation:{adminAccess:eMt,adminBilling:pEt,adminCampaigns:UEt,adminContent:YIt,adminDashboard:IOt,adminGate:BOt,adminGrowth:d5t,adminModels:xUt,adminRateLimits:qUt,adminStaff:$Bt,adminUpstream:IBt,adminUsage:K8t,adminUserDetail:yFt,adminUsers:Vzt,adminWebhooks:d7t,apiKeys:sqt,auditLogs:bqt,auth:Uqt,billing:IHt,charts:BHt,chat:rVt,common:MVt,dashboard:KVt,dataTable:t9t,dateRange:v9t,errors:w9t,freeTokens:I9t,logs:lKt,models:iGt,nav:pGt,onboarding:yGt,opsTable:$Gt,optionLabels:NWt,pagination:EWt,referrals:vYt,settings:jYt,tasks:KYt,support:lQt,usage:YXt}},fr:{translation:{adminAccess:XZt,adminBilling:den,adminCampaigns:Ien,adminContent:Ktn,adminDashboard:Dnn,adminGate:Onn,adminGrowth:irn,adminModels:yin,adminRateLimits:Bin,adminStaff:vln,adminUpstream:Dln,adminUsage:qdn,adminUserDetail:fun,adminUsers:zmn,adminWebhooks:ipn,apiKeys:nfn,auditLogs:hfn,auth:Ifn,billing:Dgn,charts:Ogn,chat:ahn,common:jhn,dashboard:qhn,dataTable:Zhn,dateRange:gyn,errors:byn,freeTokens:Dyn,logs:svn,models:obn,nav:dbn,onboarding:fbn,opsTable:vbn,optionLabels:Pxn,pagination:Nxn,referrals:g$n,settings:R$n,tasks:q$n,support:swn,usage:K0n}},ja:{translation:{adminAccess:Wkn,adminBilling:i1n,adminCampaigns:D1n,adminContent:qSn,adminDashboard:_An,adminGate:MAn,adminGrowth:o_n,adminModels:fjn,adminRateLimits:Ojn,adminStaff:g2n,adminUpstream:_2n,adminUsage:BDn,adminUserDetail:uMn,adminUsers:UEn,adminWebhooks:oIn,apiKeys:JIn,auditLogs:pOn,auth:DOn,billing:_3n,charts:M3n,chat:eLn,common:RLn,dashboard:BLn,dataTable:YLn,dateRange:m4n,errors:h4n,freeTokens:_4n,logs:n5n,models:tUn,nav:iUn,onboarding:uUn,opsTable:gUn,optionLabels:ABn,pagination:PBn,referrals:m6n,settings:S6n,tasks:B6n,support:n8n,usage:qFn}},ko:{translation:{adminAccess:Vzn,adminBilling:oqn,adminCampaigns:_qn,adminContent:BHn,adminDashboard:TVn,adminGate:jVn,adminGrowth:tWn,adminModels:uYn,adminRateLimits:MYn,adminStaff:mQn,adminUpstream:TQn,adminUsage:OZn,adminUserDetail
857:lJn,adminUsers:Iea,adminWebhooks:tta,apiKeys:Qta,auditLogs:dna,auth:_na,billing:Taa,charts:jaa,chat:Xaa,common:Soa,dashboard:Ooa,dataTable:Koa,dateRange:csa,errors:psa,freeTokens:Tsa,logs:Jsa,models:Zra,nav:oia,onboarding:lia,opsTable:mia,optionLabels:kla,pagination:Ala,referrals:cca,settings:wca,tasks:Oca,support:Jca,usage:Bua}},"pt-BR":{translation:{adminAccess:zma,adminBilling:tfa,adminCampaigns:Tfa,adminContent:Oga,adminDashboard:Cha,adminGate:Rha,adminGrowth:Zba,adminModels:l$a,adminRateLimits:j$a,adminStaff:cwa,adminUpstream:Cwa,adminUsage:Mka,adminUserDetail:sCa,adminUsers:D1a,adminWebhooks:Z1a,apiKeys:GSa,auditLogs:iAa,auth:TAa,billing:CTa,charts:RTa,chat:WTa,common:wRa,dashboard:MRa,dataTable:qRa,dateRange:rPa,errors:dPa,freeTokens:CPa,logs:QPa,models:Y_a,nav:tja,onboarding:sja,opsTable:cja,optionLabels:x2a,pagination:k2a,referrals:rNa,settings:bNa,tasks:MNa,support:QNa,usage:OMa}},ru:{translation:{adminAccess:UEa,adminBilling:ZIa,adminCampaigns:COa,adminContent:M3a,adminDashboard:$La,adminGate:SLa,adminGrowth:YUa,adminModels:s6a,adminRateLimits:R6a,adminStaff:r8a,adminUpstream:$8a,adminUsage:jza,adminUserDetail:n7a,adminUsers:_qa,adminWebhooks:Yqa,apiKeys:HHa,auditLogs:oVa,auth:CVa,billing:$9a,charts:S9a,chat:V9a,common:bKa,dashboard:jKa,dataTable:BKa,dateRange:aGa,errors:iGa,freeTokens:$Ga,logs:GGa,models:KWa,nav:ZWa,onboarding:nYa,opsTable:rYa,optionLabels:yQa,pagination:xQa,referrals:aXa,settings:hXa,tasks:jXa,support:GXa,usage:MJa}},tr:{translation:{adminAccess:Ieo,adminBilling:Yto,adminCampaigns:$no,adminContent:jao,adminDashboard:voo,adminGate:woo,adminGrowth:Kio,adminModels:nco,adminRateLimits:Sco,adminStaff:ado,adminUpstream:vdo,adminUsage:Rmo,adminUserDetail:Jmo,adminUsers:Tfo,adminWebhooks:Kfo,apiKeys:Fgo,auditLogs:tho,auth:$ho,billing:vyo,charts:wyo,chat:zyo,common:hvo,dashboard:Rvo,dataTable:Ovo,dateRange:ebo,errors:obo,freeTokens:vbo,logs:Hbo,models:qxo,nav:Yxo,onboarding:Jxo,opsTable:a$o,optionLabels:fwo,pagination:ywo,referrals:e0o,settings:p0o,tasks:R0o,support:H0o,usage:jCo}},"zh-Hans":{translation:{adminAccess:D1o,adminBilling:KSo,adminCampaigns:vAo,adminContent:RTo,adminDashboard:gRo,adminGate:bRo,adminGrowth:qjo,adminModels:J2o,adminRateLimits:wNo,adminStaff:eDo,adminUpstream:gDo,adminUsage:SEo,adminUserDetail:QEo,adminUsers:COo,adminWebhooks:qOo,apiKeys:L3o,auditLogs:Z3o,auth:vLo,billing:g4o,charts:b4o,chat:U4o,common:p5o,dashboard:S5o,dataTable:M5o,dateRange:X5o,errors:tUo,freeTokens:gUo,logs:FUo,models:BBo,nav:KBo,onboarding:QBo,opsTable:e6o,optionLabels:u8o,pagination:f8o,referrals:X8o,settings:dFo,tasks:SFo,support:FFo,usage:R7o}},"zh-Hant":{translation:{adminAccess:_qo,adminBilling:qHo,adminCampaigns:gVo,adminContent:S9o,adminDashboard:mKo,adminGate:hKo,adminGrowth:BYo,adminModels:QQo,adminRateLimits:bXo,adminStaff:XXo,adminUpstream:mZo,adminUsage:wes,adminUserDetail:Ges,adminUsers:$ns,adminWebhooks:Bns,apiKeys:Eas,auditLogs:Yas,auth:gos,billing:mss,charts:hss,chat:Iss,common:drs,dashboard:wrs,dataTable:jrs,dateRange:Wrs,errors:Zrs,freeTokens:mis,logs:Lis,models:Ols,nav:qls,onboarding:Gls,opsTable:Xls,optionLabels:lds,pagination:uds,referrals:Wds,settings:ius,tasks:wus,support:Lus,usage:Sps}}};function fj(){if(qn.isInitialized)return qn;const e=Ew();return c9(e),qn.use(Cye).init({resources:F3,lng:e,fallbackLng:Xi,supportedLngs:Object.keys(F3).filter(Yd),interpolation:{escapeValue:!1},returnEmptyString:!1}),qn}async function kR(e){qn.isInitialized||fj(),await qn.changeLanguage(e),c9(e)}fj();function Aps(){const e=Re();h.useEffect(()=>{const t=()=>{document.visibilityState==="visible"&&e.invalidateQueries({queryKey:Ht.me})};return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)},[e])}const H9=h.createContext(null),Tps=H9.Provider;function YBs(){const e=h.useContext(H9);return e||{sidebarAsDrawer:!1,toggleSidebar:()=>{},openDrawer:()=>{}}}function Te(){const{i18n:e}=W(),t=e.language;return h.useMemo(()=>({locale:t,number:n=>or(n,t),currency:(n,a="USD",s=2)=>lr(n,t,a,s),dateTime:n=>HV(n,t),relativeTime:n=>uhe(n,t),monthShort:n=>new Intl.DateTimeFormat(t,{month:"short"}).format(n),monthDay:n=>new Intl.DateTimeFormat(t,{month:"short",day:"numeric"}).format(n)}),[t])}function Rps(e){const t=Number(e);if(!Number.isFinite(t))return"danger";const n=Math.round(t*100)/100;return n<1?"danger":n<5?"warning":"normal"}const CR="[email protected]";function Pps({wallet:e,user:t,currentLocale:n,availableLocales:a=i_(Z$),onChangeLocale:s,signingOut:r,signOutError:i,onSignOut:c,onNavigate:d}){const{t:m}=W(),[f,p]=h.useState("main"),y=e?Rps(e.availableCredit):"normal";function v($){$||p("main")}return o.jsx(qie,{initial:t.initial,displayName:t.displayName,email:t.email,avatarUrl:t.avatarUrl,menuSide:"top",className:"z-10",indicator:o.jsx(_ps,{tier:y}),onOpenChange:v,"aria-label":m("common.account"),children:f==="main"?o.jsx(jps,{wallet:e,tier:y,currentLocale:n,signingOut:r,signOutError:i,onSignOut:c,onOpenLanguage:()=>p("language"),onNavigate:d}):o.jsx(Dps,{currentLocale:n,availableLocales:a,onChangeLocale:s,onBack:()=>p("main")})})}function _ps({tier:e}
857){return e==="normal"?null:o.jsx("span",{"aria-hidden":!0,className:X("pointer-events-none absolute -end-0.5 -top-0.5 size-2.5 rounded-full ring-2 ring-[color:var(--sidebar)]",e==="danger"?"bg-[color:var(--destructive)]":"bg-amber-500")})}const gj="text-[color:var(--muted-foreground)]";function jps({wallet:e,tier:t,currentLocale:n,signingOut:a,signOutError:s,onSignOut:r,onOpenLanguage:i,onNavigate:c}){const{t:d}=W(),m=ls(),f=Te(),y=m.state?.backgroundLocation??{pathname:m.pathname,search:m.search,hash:m.hash,state:null,key:m.key},v=e?f.currency(Number(e.availableCredit)):null,$=t==="danger"?"font-semibold text-[color:var(--destructive)]":t==="warning"?"text-[color:var(--warning-foreground)]":"text-[color:var(--foreground)]";return o.jsxs(o.Fragment,{children:[e?o.jsx(tc,{asChild:!0,className:"tabular-nums",children:o.jsxs(Ta,{to:Be.billing,children:[o.jsx(N9,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{className:"flex-1",children:d("nav.console.balance")}),o.jsx("span",{"data-clarity-mask":"true",className:X("min-w-0 max-w-[7rem] truncate text-right",$),children:v}),o.jsx(gR,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0})]})}):null,e?o.jsx(wg,{}):null,o.jsx(tc,{asChild:!0,children:o.jsxs(Ta,{to:Be.settings,state:{backgroundLocation:y},onClick:c,children:[o.jsx(Hbe,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{className:"flex-1",children:d("nav.console.settings")})]})}),o.jsxs(tc,{onClick:x=>{x.stopPropagation(),i()},children:[o.jsx(Gve,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{className:"flex-1",children:d("common.language")}),o.jsx("span",{className:"min-w-0 max-w-[6.5rem] truncate text-right text-xs text-[color:var(--muted-foreground)]",children:Uh[n]}),o.jsx(gR,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0})]}),o.jsx(wg,{}),moe.map(x=>o.jsx(Nps,{href:x.href,label:d(`nav.public.${x.href.slice(1)}`)},x.href)),o.jsx(wg,{}),o.jsx(tc,{asChild:!0,className:gj,children:o.jsxs("a",{href:`mailto:${CR}`,children:[o.jsx(lj,{className:"size-4","aria-hidden":!0}),o.jsx("span",{className:"flex-1",children:d("nav.console.helpSupport")}),o.jsx(f9,{className:"size-3.5","aria-hidden":!0})]})}),o.jsx(wg,{}),o.jsxs(tc,{disabled:a,onClick:r,children:[o.jsx(lbe,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("span",{children:d(a?"common.signingOut":"common.signOut")})]}),s?o.jsx("p",{className:"px-2 pb-1 text-xs text-[color:var(--destructive)]",children:s}):null]})}function Nps({href:e,label:t}){return o.jsx(tc,{asChild:!0,className:gj,children:o.jsxs("a",{href:e,children:[o.jsx("span",{className:"size-1.5 rounded-full bg-current opacity-40","aria-hidden":!0}),o.jsx("span",{className:"flex-1 truncate",children:t}),o.jsx(f9,{className:"size-3.5","aria-hidden":!0})]})})}function Dps({currentLocale:e,availableLocales:t,onChangeLocale:n,onBack:a}){const{t:s}=W();return o.jsxs(o.Fragment,{children:[o.jsxs(tc,{className:gj,onClick:r=>{r.stopPropagation(),a()},children:[o.jsx(v9,{className:"size-4","aria-hidden":!0}),o.jsx("span",{children:s("common.back")})]}),o.jsx(wg,{}),o.jsx("div",{className:"max-h-[min(18rem,calc(100dvh-9rem))] overflow-y-auto pr-1",children:t.map(r=>{const i=r===e;return o.jsxs(jz,{checked:i,onClick:()=>n(r),children:[o.jsx("span",{className:"flex-1 truncate",children:Uh[r]}),o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:r})]},r)})})]})}function Mps(e=20){return Ue({queryKey:Ht.notifications,queryFn:()=>Ye.request(`/console/notifications?limit=${e}`),retry:1})}function Eps(e={}){return Ue({queryKey:Ht.notificationsUnreadCount,queryFn:()=>Ye.request("/console/notifications/unread-count").then(t=>t.count),retry:1,refetchInterval:e.refetchInterval,refetchOnWindowFocus:!0})}function Ips(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/notifications/read",{method:"POST",body:t&&t.length>0?{publicIds:t}:{},idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["console","notifications"]})}})}const Ops=6e4;function Lps(e){const t=e?.deeplink;return typeof t=="string"&&t.startsWith("/platform/")?t:null}function Ups(){const{t:e}=W(),t=Te(),n=No(),[a,s]=h.useState(!1),r=Mps(),i=Eps({refetchInterval:Ops}).data??0,c=O9().data?.unreadCount??0,d=Ips(),m=r.data?.items??[],f=i+c,p=e("nav.console.announcements");function y(v){v.readAt||d.mutate([v.publicId]);const $=Lps(v.data);s(!1),$&&n(mj($))}return o.jsxs(Bp,{open:a,onOpenChange:s,children:[o.jsx(Fp,{asChild:!0,children:o.jsxs(Aa,{variant:"ghost","aria-label":p,title:p,className:"relative shrink-0 rounded-md hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:[o.jsx(rj,{className:"size-4"}),f>0?o.jsx("span",{className:"absolute right-1 top-1 size-1.5 rounded-full bg-[color:var(--destructive)] ring-2 ring-[color:var(--sidebar)]"}):null]})}),o.jsxs(yu,{side:"top",align:"start",sideOffset:8,className:"w-80 p-0",children:[o.jsxs("div",{className:"flex items-center justify-between gap-2 border-b border-[color:var(--border)] px-3 py-2.5",children:[o.jsx("p",{className:"text-sm font-medium text-[color:var(--foreground)]",children:e("nav.notifications.title")}),i>0?o.jsxs("button",{type:"button",onClick:()=>d.mutate(void 0),disabled:d.isPending,className:"inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-xs text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)] disabled:opacity-50",children:[o.jsx(uve,{className:"size-3.5"}),e("nav.notifications.markAllRead")]}):null]}),o.jsx("div",{className:"max-h-80 overflow-y-auto",children:r.isPending?o.jsx("p",{className:"px-3 py-6 text-center text-xs text-[color:var(--muted-foreground)]",children:e("nav.notifications.loading")}):m.length===0?o.jsxs("div",{className:"grid gap-1 px-3 py-8 text-center",children:[o.jsx("p",{className:"text-sm text-[color:var(--foreground)]",children:e("nav.notifications.emptyTitle")}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("nav.notifications.emptyBody")})]}):o.jsx("ul",{className:"grid",children:m.map(v=>{const $=!v.readAt;return o.jsx("li",{children:o.jsxs("button",{type:"button",onClick:()=>y(v),className:"flex w-full items-start gap-2.5 px-3 py-2.5 text-left transition-colors hover:bg-[color:var(--accent)]",children:[o.jsx("span",{"aria-hidden":!0,
857className:$?"mt-1.5 size-1.5 shrink-0 rounded-full bg-[color:var(--destructive)]":"mt-1.5 size-1.5 shrink-0 rounded-full bg-transparent"}),o.jsxs("span",{className:"grid min-w-0 flex-1 gap-0.5",children:[o.jsx("span",{className:$?"truncate text-13 font-medium text-[color:var(--foreground)]":"truncate text-13 text-[color:var(--foreground)]",children:v.title}),v.body?o.jsx("span",{className:"line-clamp-2 text-xs text-[color:var(--muted-foreground)]",children:v.body}):null,o.jsx("span",{className:"text-2xs tabular-nums text-[color:var(--muted-foreground)]",children:t.relativeTime(v.createdAt)})]})]})},v.publicId)})})}),c>0?o.jsxs("button",{type:"button",onClick:()=>{s(!1),n(Be.support)},className:"flex w-full items-center justify-between gap-2 border-t border-[color:var(--border)] px-3 py-2.5 text-left text-xs text-[color:var(--foreground)] transition-colors hover:bg-[color:var(--accent)]",children:[o.jsx("span",{children:e("nav.console.announcementsTicketUnread",{count:c})}),o.jsx("span",{className:"inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-[color:var(--destructive)] px-1.5 text-2xs font-semibold leading-none text-[color:var(--destructive-foreground)] tabular-nums",children:c>99?"99+":c})]}):null]})]})}const Bps=[{labelKey:"nav.console.usage",href:Be.usage,icon:cve},{labelKey:"nav.console.models",href:Be.models,icon:Jve},{labelKey:"nav.console.logs",href:Be.logs,icon:Ube},{labelKey:"nav.console.apiKeys",href:Be.apiKeys,icon:Uw},{labelKey:"nav.console.billing",href:Be.billing,icon:Lw},{labelKey:"nav.console.referrals",href:Be.referrals,icon:uy},{labelKey:"nav.console.tasks",href:Be.tasks,icon:dxe},{labelKey:"nav.public.docs",href:l_,icon:rve,external:!0},{labelKey:"nav.console.support",href:Be.support,icon:ij}],Fps=Date.parse("2026-10-11T00:00:00Z"),zps=264,qps=60,Hps=820,Vps=768;function Kps({title:e,description:t,detail:n}){return o.jsx("main",{className:"min-h-0 flex-1 overflow-y-auto bg-[color:var(--console-workspace)] p-4 md:p-8",children:o.jsx("section",{className:"mx-auto grid min-h-[calc(100dvh-4rem)] w-full max-w-2xl place-items-center",children:o.jsxs(nj,{className:"w-full rounded-2xl border-[color:var(--console-hairline)] p-6 shadow-[var(--shadow-card)] md:p-8",children:[o.jsx("div",{className:"mb-5 flex size-11 items-center justify-center rounded-full border border-[color:var(--warning-border)] bg-[color:var(--warning-surface)] text-[color:var(--warning)]",children:o.jsx(_9,{className:"size-5","aria-hidden":!0})}),o.jsx("p",{className:"mb-2 text-xs font-semibold uppercase tracking-[0.08em] text-[color:var(--muted-foreground)]",children:"OneHop"}),o.jsx("h1",{className:"text-2xl font-semibold tracking-[-0.01em] text-[color:var(--foreground)]",children:e}),o.jsx("p",{className:"mt-3 max-w-prose text-sm leading-6 text-[color:var(--muted-foreground)]",children:t}),o.jsx(Hm,{className:"mt-6 text-sm text-[color:var(--muted-foreground)]",children:n}),o.jsx("div",{className:"mt-6 flex flex-col gap-3 sm:flex-row",children:o.jsxs("a",{href:`mailto:${CR}`,className:X(ur({size:"md"}),"inline-flex items-center gap-2"),children:[o.jsx(lj,{className:"size-4","aria-hidden":!0}),CR]})})]})})})}function z3({wallet:e,user:t,currentLocale:n,availableLocales:a,onChangeLocale:s,adminItems:r,signingOut:i,signOutError:c,onSignOut:d,collapsed:m,showCollapseButton:f,onCollapse:p,onNavigate:y}){const{t:v}=W(),$=m?v("nav.aria.expand","Expand sidebar"):v("nav.aria.collapse","Collapse sidebar"),x=O9().data?.unreadCount??0,w=h.useMemo(()=>Bps.map(S=>S.href===Be.support?{...S,badge:x}:S.href===Be.tasks&&Date.now()<Fps?{...S,tag:v("nav.console.tagNew")}:S),[x,v]);return o.jsxs("div",{role:"banner","data-sidebar-collapsed":m?"true":"false",className:"flex h-full min-h-0 flex-col bg-[color:var(--sidebar)] text-[color:var(--sidebar-foreground)]",children:[o.jsx("div",{"data-testid":"console-shell-sidebar-header",className:X("flex h-14 shrink-0 items-center",m?"justify-center px-0":"gap-2 px-4"),children:m?o.jsxs("span",{className:"group/logo relative flex size-9 items-center justify-center",children:[o.jsx("a",{href:"/","aria-label":"OneHop",className:"inline-flex size-9 items-center justify-center rounded-md transition-opacity group-hover/logo:opacity-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:o.jsx(Lz,{size:30})}),f?o.jsx(Aa,{variant:"ghost",onClick:p,"aria-label":$,className:"absolute inset-0 rounded-md bg-[color:var(--sidebar)] opacity-0 transition-opacity hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)] group-hover/logo:opacity-100 focus-visible:opacity-100",children:o.jsx(_3,{className:"size-4 rotate-180"})}):null]}):o.jsxs(o.Fragment,{children:[o.jsx("a",{href:"/","aria-label":"OneHop",className:"flex min-w-0 flex-1 items-center rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:o.jsx(Cce,{className:"h-9 w-auto"})}),f?o.jsx(Aa,{variant:"ghost",onClick:p,"aria-label":$,className:"shrink-0 rounded-md hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:o.jsx(_3,{className:"size-4"})}):null]})}),o.jsxs(Oce,{role:"navigation","aria-label":v("nav.aria.console"),className:"min-h-0 flex-1 pb-6",children:[o.jsx("div",{className:X("pt-1",m?"px-0":"px-2"),children:m?o.jsx(Oc,{delayDuration:250,skipDelayDuration:80,children:o.jsx(H3,{collapsed:!0,onNavigate:y})}):o.jsx(H3,{collapsed:!1,onNavigate:y})}
857),o.jsx("div",{"aria-hidden":!0,className:X("my-2 border-t border-[color:var(--console-hairline)]",m?"mx-3":"mx-2")}),o.jsx(MO,{children:o.jsx(q3,{items:w,collapsed:m,onNavigate:y})}),r.length>0?o.jsx(MO,{children:o.jsxs("nav",{"aria-label":v("nav.adminGroups.staff"),className:"mt-4 border-t border-[color:var(--console-hairline)] pt-4",children:[m?null:o.jsx("p",{"aria-hidden":!0,className:"px-2 pb-1 text-xs font-semibold uppercase tracking-[0.08em] text-[color:var(--muted-foreground)]",children:v("nav.adminGroups.staff")}),o.jsx(q3,{items:r,collapsed:m,onNavigate:y})]})}):null]}),o.jsxs("div",{"data-testid":"console-shell-sidebar-footer",className:X("flex shrink-0 items-center gap-2 border-t border-[color:var(--console-hairline)] px-3 py-3",m?"justify-center":"justify-between"),children:[o.jsx(Pps,{wallet:e,user:t,currentLocale:n,availableLocales:a,onChangeLocale:s,signingOut:i,signOutError:c,onSignOut:d}),m?null:o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("a",{href:Mg.x,target:"_blank",rel:"noopener noreferrer","aria-label":"X",className:"flex h-8 w-8 items-center justify-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:o.jsx(Xb,{brand:"x",size:15})}),o.jsx("a",{href:Mg.telegram,target:"_blank",rel:"noopener noreferrer","aria-label":"Telegram",className:"flex h-8 w-8 items-center justify-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:o.jsx(Xb,{brand:"telegram",size:15})}),o.jsx("a",{href:Mg.discord,target:"_blank",rel:"noopener noreferrer","aria-label":"Discord",className:"flex h-8 w-8 items-center justify-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:o.jsx(Xb,{brand:"discord",size:15})}),o.jsx(Ups,{})]})]})]})}function q3({items:e,collapsed:t,onNavigate:n}){const{t:a}=W(),s=o.jsx(Lce,{className:X(t&&"px-0"),children:e.map(r=>{const i=a(r.labelKey);return o.jsx(Uce,{children:o.jsx(Gps,{to:r.href,icon:r.icon,label:i,collapsed:t,badge:r.badge,tag:r.tag,external:r.external,onNavigate:n})},r.href)})});return t?o.jsx(Oc,{delayDuration:250,skipDelayDuration:80,children:s}):s}function Gps({to:e,icon:t,label:n,collapsed:a,badge:s,tag:r,external:i,onNavigate:c}){const d=(s??0)>0,m={href:e,target:"_blank",rel:"noreferrer"};if(a){const p=v=>X("group/sidebar-menu-button grid h-9 w-full grid-cols-[2.75rem] items-center justify-center overflow-hidden rounded-md text-sm transition-colors motion-reduce:transition-none focus-visible:border-ring focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",v?"bg-foreground
857/[0.14] font-medium text-foreground":"text-foreground hover:bg-foreground/6"),y=o.jsxs(o.Fragment,{children:[o.jsx(EO,{className:"w-full",children:o.jsxs("span",{className:"relative inline-flex",children:[o.jsx(t,{className:"size-4"}),d?o.jsx("span",{className:"absolute -right-1 -top-1 size-1.5 rounded-full bg-[color:var(--destructive)] ring-2 ring-[color:var(--sidebar)]"}):null]})}),o.jsx("span",{className:"sr-only",children:n})]});return o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:i?o.jsx("a",{...m,"aria-label":n,className:p(!1),children:y}):o.jsx(Yg,{to:e,onClick:c,"aria-label":d?`${n} (${s})`:n,className:({isActive:v})=>p(v),children:y})}),o.jsx(cs,{side:"right",sideOffset:10,children:n})]})}const f=p=>o.jsx(Fce,{asChild:!0,active:p,children:o.jsxs("span",{className:"inline-flex w-full items-center",children:[o.jsx(EO,{children:o.jsx(t,{className:"size-4"})}),o.jsx("span",{className:"truncate",children:n}),d||r?o.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-1.5 pr-1",children:[r?o.jsx("span",{className:"inline-flex items-center rounded px-1 py-0.5 text-2xs font-semibold leading-none tracking-wide text-emerald-700 ring-1 ring-inset ring-emerald-500/30 bg-emerald-50 dark:bg-emerald-950/40 dark:text-emerald-400 dark:ring-emerald-500/20",children:r}):null,d?o.jsx("span",{className:"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-[color:var(--destructive)] px-1.5 text-2xs font-semibold leading-none text-[color:var(--destructive-foreground)]",children:s>99?"99+":s}):null]}):null]})});return i?o.jsx("a",{...m,children:f(!1)}):o.jsx(Yg,{to:e,onClick:c,children:({isActive:p})=>f(p)})}function H3({collapsed:e,onNavigate:t}){const{t:n}=W(),{pathname:a}=ls(),s=n("nav.console.chat"),r=a===Be.chat,i="bg-[linear-gradient(180deg,var(--nav-chat-from),var(--nav-chat-to))]",c=r?"ring-1 ring-inset ring-white/25":"";return e?o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsxs(Yg,{to:Be.chat,onClick:t,"aria-label":s,className:X("group/chat-nav relative mx-auto grid size-9 place-items-center overflow-hidden rounded-md text-white shadow-[0_2px_8px_var(--nav-chat-glow),inset_0_1px_0_rgba(255,255,255,0.12)] transition-transform duration-[var(--duration-fast)] hover:-translate-y-px focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70 motion-reduce:transition-none",i,c),children:[o.jsx("span",{className:"oh-nav-sheen","aria-hidden":!0}),o.jsx(bR,{className:"relative size-4"})]})}),o.jsx(cs,{side:"right",sideOffset:10,children:s})]}):o.jsxs(Yg,{to:Be.chat,onClick:t,className:X("group/chat-nav relative flex h-10 w-full items-center gap-2.5 overflow-hidden rounded-lg px-3 text-sm font-medium text-white shadow-[0_2px_8px_var(--nav-chat-glow),inset_0_1px_0_rgba(255,255,255,0.12)] transition-[transform,box-shadow] duration-[var(--duration-fast)] hover:-translate-y-px hover:shadow-[0_5px_14px_var(--nav-chat-glow),inset_0_1px_0_rgba(255,255,255,0.18)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70 motion-reduce:transition-none",i,c),children:[o.jsx("span",{className:"oh-nav-sheen","aria-hidden":!0}),o.jsx(bR,{className:"relative size-4 shrink-0"}),o.jsx("span",{className:"relative truncate",children:s}),o.jsx(p9,{className:"relative ml-auto size-3.5 opacity-70 transition-transform duration-[var(--duration-fast)] group-hover/chat-nav:translate-x-0.5 motion-reduce:transition-none"})]})}const Wps=h.memo(function({navigationToggle:t}){return o.jsx(zce,{navigationToggle:t,children:o.jsx(yF,{})})});function Yps(){const{t:e}=W(),[t,n]=h.useState(Ew),[a,s]=h.useState(!1),[r,i]=h.useState(null),[c,d]=h.useState(()=>typeof window>"u"?1280:window.innerWidth),[m,f]=h.useState(!1),[p,y]=h.useState(null),v=No(),$=Re(),x=qa();Aps();const{visibleBanners:w,dismissBanner:S,activeModal:k,dismissModal:T}=jxe(t);h.useEffect(()=>(document.body.classList.add("onehop-console-shell"),()=>document.body.classList.remove("onehop-console-shell")),[]),h.useEffect(()=>{const we=()=>void rF(()=>import("./mermaid-GHXKKRXX-CGcEX0fW.js").then(ye=>ye.C),__vite__mapDeps([0,1])),me=window.requestIdleCallback;if(typeof me=="function")me(we);else{const ye=window.setTimeout(we,1200);return()=>window.clearTimeout(ye)}},[]),h.useEffect(()=>{x.data&&Hxe(t)},[x.data?.user.email,t]),h.useEffect(()=>{if(typeof window>"u")return;const we=()=>d(window.innerWidth);return window.addEventListener("resize",we),()=>window.removeEventListener("resize",we)},[]);const R=c<Vps,_=c<Hps,P=R,j=!P&&(p==="collapsed"||p===null&&_),N=e("nav.aria.openNavigation",{defaultValue:"Open navigation"}),I=e("nav.aria.console",{defaultValue:"Console navigation"}),z=h.useCallback(()=>{R?f(we=>!we):y(j?"expanded":"collapsed")},[j,R]),E=h.useCallback(()=>f(!0),[]),L=h.useCallback(()=>f(!1),[]),O=h.useMemo(()=>P?o.jsx("button",{type:"button",onClick:E,"aria-label":N,className:"inline-flex size-9 items-center justify-center rounded-md text-[color:var(--muted-foreground)] transition-colors hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:o.jsx($be,{className:"size-4"})}):null,[P,E,N]);h.useEffect(()=>{!P&&m&&f(!1)},[m,P]);const V=h.useMemo(()=>({sidebarAsDrawer:P,toggleSidebar:z,openDrawer:E}),[P,z,E]),ne=x.data?.user.email?.slice(0,1).toUpperCase()??"O",q=x.data?.user.email??e("common.account"),M=x.error instanceof rn?x.error:null,F=I9(x.data?.admin),H=M?.status===ko.forbidden,ee=ls(),B=ee.pathname===Be.admin||ee.pathname.startsWith(`${Be.admin}/`),G=B?Nye(t):t,Q=B?i9:void 0,de=ee.pathname===Be.chat;h.useEffect(()=>{kR(G)},[G]);function Y(we){n(we),l9(we),kR(we)}async function pe(){const we=zx(`${window.location.pathname}${window.location.search}`);s(!0),i(null);try{const me=await Tg.signOut();if(me.error)throw new Error(me.error.message||e("auth.errors.signOutFailed"));$.removeQueries({queryKey:Ht.me}),v(`${Be.login}?redirect=${encodeURIComponent(we)}`,{replace:!0})}catch(me){i(me instanceof Error?me.message:e("auth.errors.signOutFailed"))}finally{s(!1)}}if(M?.status===ko.unauthorized){const we=zx(`${window.location.pathname}${window.location.search}`);return o.jsx(Gd,{to:`${Be.login}?redirect=${encodeURIComponent(we)}`,replace:!0})}if(x.isPending)return o.jsx("div",{className:"grid min-h-screen place-items-center bg-[color:var(--console-shell)] text-sm text-[color:var(--muted-foreground)]",children:o.jsx("div",{role:"status",children:e("common.loading")})});const se={wallet:x.data?.wallet,user:{displayName:x.data?.user.displayName??null,email:q,avatarUrl:x.data?.user.avatarUrl??null,initial:ne},currentLocale:G,availableLocales:Q,onChangeLocale:Y,adminItems:F,signingOut:a,signOutError:r,onSignOut:()=>void pe(),collapsed:j,showCollapseButton:!0,onCollapse:z};return H?o.jsx("div",{className:"flex h-dvh flex-col overflow-hidden bg-[
857color:var(--console-shell)] text-[color:var(--foreground)]",children:o.jsx(Kps,{title:e("errors.accountRestricted.title"),description:e("errors.accountRestricted.description"),detail:e("errors.accountRestricted.detail")})}):o.jsxs(Tps,{value:V,children:[o.jsxs("div",{className:"flex h-dvh flex-col overflow-hidden bg-[color:var(--console-shell)] text-[color:var(--foreground)]",children:[w.length>0&&o.jsx(Mhe,{banners:w,onDismiss:S}),k&&o.jsx(fhe,{open:!0,onOpenChange:we=>{we||T(k.publicId,k.revision)},onNavigate:we=>we===mp||we.startsWith(`${mp}/`)?(v(mj(we)),!0):!1,imageUrl:k.imageUrl,severity:k.severity,copy:k.copy}),o.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1",children:[o.jsx("div",{"data-testid":"console-shell-sidebar","data-collapsed":j?"true":"false","aria-hidden":P,inert:P?!0:void 0,className:X("h-full shrink-0 overflow-hidden transition-[width] duration-200 ease-[cubic-bezier(0.2,0.8,0.2,1)] motion-reduce:transition-none",P&&"pointer-events-none opacity-0"),style:{width:P?0:j?qps:zps,willChange:"width"},children:o.jsx(z3,{...se})}),o.jsx("main",{"data-testid":"console-shell-content",className:X("relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-[color:var(--console-workspace)]",!P&&"rounded-tl-2xl",!P&&"mt-2","shadow-[var(--shadow-card)]",P&&"shadow-none",de&&"p-0"),children:M&&(M.status===ko.forbidden||M.status===ko.conflict)?o.jsx(Qt,{title:M.status===ko.forbidden?e("errors.accountUnavailable"):e("errors.accountInitializing"),description:M.message}):o.jsx(Wps,{navigationToggle:O})})]}),P?o.jsx(Vn,{open:m,onOpenChange:f,children:o.jsxs(Nn,{side:"left",showClose:!1,className:"!w-[min(280px,calc(100vw-2rem))] !max-w-[min(280px,calc(100vw-2rem))] flex-col overflow-hidden !p-0",onOpenAutoFocus:we=>we.preventDefault(),children:[o.jsx(Rn,{className:"sr-only",children:I}),o.jsx(z3,{...se,collapsed:!1,showCollapseButton:!0,onCollapse:L,onNavigate:L})]})}):null]}),null]})}const V3="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";let mb=null;function Qps(){return window.turnstile?Promise.resolve():mb||(mb=new Promise((e,t)=>{const n=document.querySelector(`script[src="${V3}"]`);if(n){n.addEventListener("load",()=>e(),{once:!0}),n.addEventListener("error",()=>t(new Error("Turnstile failed to load")),{once:!0});return}const a=document.createElement("script");a.src=V3,a.async=!0,a.defer=!0,a.addEventListener("load",()=>e(),{once:!0}),a.addEventListener("error",()=>t(new Error("Turnstile failed to load")),{once:!0}),document.head.appendChild(a)}),mb)}function Xps({action:e,resetKey:t=0,siteKey:n,onTokenChange:a,onUnavailable:s}){const r=h.useRef(null),i=h.useRef(null),[c,d]=h.useState(!0);return h.useEffect(()=>{let m=!1;return d(!0),a(""),Qps().then(()=>{m||!r.current||!window.turnstile||(i.current&&window.turnstile.remove&&(window.turnstile.remove(i.current),i.current=null),r.current.innerHTML="",i.current=window.turnstile.render(r.current,{sitekey:n,action:e,theme:"light",size:"flexible",callback:f=>a(f),"expired-callback":()=>a(""),"error-callback":()=>{a(""),s?.("Human verification is temporarily unavailable")}}),d(!1))}).catch(f=>{m||(d(!1),a(""),s?.(f instanceof Error?f.message:"Turnstile failed to load"))}),()=>{m=!0,i.current&&window.turnstile?.remove&&(window.turnstile.remove(i.current),i.current=null)}},[e,a,s,t,n]),o.jsxs("div",{className:"min-h-[65px]",children:[o.jsx("div",{ref:r}),c?o.jsx("div",{className:"h-[65px] rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]","aria-hidden":"true"}):null]})}const Zps=720*60*60;function Jps(){return window.location.hostname.endsWith("onehop.ai")?".onehop.ai":void 0}function efs(){if(typeof document>"u"||document.cookie.split("; ").some(a=>a.startsWith("oh_attr=")))return;const e=lhe({params:new URLSearchParams(window.location.search),referer:document.referrer||null,path:window.location.pathname});if(!che(e))return;const t=[`oh_attr=${encodeURIComponent(JSON.stringify(e))}`,"path=/",`max-age=${Zps}`,"samesite=lax"],n=Jps();n&&t.push(`domain=${n}`),window.location.protocol==="https:"&&t.push("secure"),document.cookie=t.join("; ")}const K3=2592e5,V9="thumbmark",K9="https://api.thumbmarkjs.com",hj={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,cache_lifetime_in_ms:0,performance:!1,experimental:!1,property_name_factory:e=>`${V9}_${e}`},tfs={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}
857],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}],always:[{exclude:["speech"],browsers:["brave","firefox"]}]},G3=typeof window<"u"?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function nfs(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function W3(e,t,n){if(e.length===1)return e[0];if(e.length===3){const r=e[0].data,i=e[1].data,c=e[2].data,d=new Uint8ClampedArray(r.length);for(let m=0;m<r.length;m++){const f=r[m],p=i[m],y=c[m];d[m]=f===p||f===y?f:p===y?p:f}return new ImageData(d,t,n)}let a=[];for(let r=0;r<e[0].data.length;r++){let i=[];for(let c=0;c<e.length;c++)i.push(e[c].data[r]);a.push(afs(i))}const s=new Uint8ClampedArray(a);return new ImageData(s,t,n)}function afs(e){if(e.length===0)return 0;const t={};for(const a of e)t[a]=(t[a]||0)+1;let n=e[0];for(const a in t)t[a]>t[n]&&(n=parseInt(a,10));return n}function pb(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const Na=new Uint32Array([597399067,2869860233,951274213,2716044179]);function $s(e,t){return e<<t|e>>>32-t}function Fo(e,t=0){if(t=t?0|t:0,typeof e=="string"&&(e=(function(s){if(typeof TextEncoder<"u")return new TextEncoder().encode(s).buffer;const r=[];for(let i=0;i<s.length;i++){let c=s.charCodeAt(i);c<128?r.push(c):c<2048?r.push(192|c>>6,128|63&c):c<55296||c>=57344?r.push(224|c>>12,128|c>>6&63,128|63&c):(i++,c=65536+((1023&c)<<10|1023&s.charCodeAt(i)),r.push(240|c>>18,128|c>>12&63,128|c>>6&63,128|63&c))}return new Uint8Array(r).buffer})(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);(function(s,r){const i=s.byteLength/16|0,c=new Uint32Array(s,0,4*i);for(let d=0;d<i;d++){const m=c.subarray(4*d,4*(d+1));m[0]=Math.imul(m[0],Na[0]),m[0]=$s(m[0],15),m[0]=Math.imul(m[0],Na[1]),r[0]=r[0]^m[0],r[0]=$s(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,m[1]=Math.imul(m[1],Na[1]),m[1]=$s(m[1],16),m[1]=Math.imul(m[1],Na[2]),r[1]=r[1]^m[1],r[1]=$s(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,m[2]=Math.imul(m[2],Na[2]),m[2]=$s(m[2],17),m[2]=Math.imul(m[2],Na[3]),r[2]=r[2]^m[2],r[2]=$s(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,m[3]=Math.imul(m[3],Na[3]),m[3]=$s(m[3],18),m[3]=Math.imul(m[3],Na[0]),r[3]=r[3]^m[3],r[3]=$s(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119}})(e,n),(function(s,r){const i=s.byteLength/16|0,c=s.byteLength%16,d=new Uint32Array(4),m=new Uint8Array(s,16*i,c);switch(c){case 15:d[3]=d[3]^m[14]<<16;case 14:d[3]=d[3]^m[13]<<8;case 13:d[3]=d[3]^m[12],d[3]=Math.imul(d[3],Na[3]),d[3]=$s(d[3],18),d[3]=Math.imul(d[3],Na[0]),r[3]=r[3]^d[3];case 12:d[2]=d[2]^m[11]<<24;case 11:d[2]=d[2]^m[10]<<16;case 10:d[2]=d[2]^m[9]<<8;case 9:d[2]=d[2]^m[8],d[2]=Math.imul(d[2],Na[2]),d[2]=$s(d[2],17),d[2]=Math.imul(d[2],Na[3]),r[2]=r[2]^d[2];case 8:d[1]=d[1]^m[7]<<24;case 7:d[1]=d[1]^m[6]<<16;case 6:d[1]=d[1]^m[5]<<8;case 5:d[1]=d[1]^m[4],d[1]=Math.imul(d[1],Na[1]),d[1]=$s(d[1],16),d[1]=Math.imul(d[1],Na[2]),r[1]=r[1]^d[1];case 4:d[0]=d[0]^m[3]<<24;case 3:d[0]=d[0]^m[2]<<16;case 2:d[0]=d[0]^m[1]<<8;case 1:d[0]=d[0]^m[0],d[0]=Math.imul(d[0],Na[0]),d[0]=$s(d[0],15),d[0]=Math.imul(d[0],Na[1]),r[0]=r[0]^d[0]}})(e,n),(function(s,r){r[0]=r[0]^s.byteLength,r[1]=r[1]^s.byteLength,r[2]=r[2]^s.byteLength,r[3]=r[3]^s.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=pb(r[0]),r[1]=pb(r[1]),r[2]=pb(r[2]),r[3]=pb(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0})(e,n);const a=new Uint8Array(n.buffer);return Array.from(a).map((s=>s.toString(16).padStart(2,"0"))).join("")}const Y3=280;async function G9(e){for(var t;!document.body;)await ofs(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const a=n.style;a.setProperty("position","fixed"),a.setProperty("display","block","important"),a.setProperty("visibility","visible"),a.setProperty("border","0"),a.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const s=n.contentDocument||((t=n.contentWindow)===null||t===void 0?void 0:t.document);if(!s)throw new Error("Iframe document is not accessible");e({iframe:s}),setTimeout((()=>{document.body.removeChild(n)}),0)}function ofs(e,t){return new Promise((n=>setTimeout(n,e,t)))}const sfs=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],rfs=["monospace","sans-serif","serif"];function Q3(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function ifs(){var e;const t=document.createElement("canvas"),n=(e=t.getContext("webgl"))!==null&&e!==void 0?e:t.getContext("experimental-webgl");
vendor: 4,227 bytes, line 857
857if(n&&"getParameter"in n)try{const a=(n.getParameter(n.VENDOR)||"").toString(),s=(n.getParameter(n.RENDERER)||"").toString();let r={vendor:a,renderer:s,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!s.length||!a.length){const i=n.getExtension("WEBGL_debug_renderer_info");if(i){const c=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||"").toString(),d=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||"").toString();c&&(r.vendorUnmasked=c),d&&(r.rendererUnmasked=d)}}return r}catch{}return"undefined"}function lfs(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const fb=(e,t,n,a)=>{const s=(n-t)/a;let r=0;for(let i=0;i<a;i++)r+=e(t+(i+.5)*s);return r*s};function cfs(e,t){const n={};return t.forEach((a=>{const s=(function(r){if(r.length===0)return null;const i={};r.forEach((m=>{const f=String(m);i[f]=(i[f]||0)+1}));let c=r[0],d=1;return Object.keys(i).forEach((m=>{i[m]>d&&(c=m,d=i[m])})),c})(e.map((r=>a in r?r[a]:void 0)).filter((r=>r!==void 0)));s&&(n[a]=s)})),n}const dfs=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"],dS=new Map;function Fw(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};const e=!!navigator.brave,t=(e?"B|":"N|")+navigator.userAgent,n=dS.get(t);if(n)return n;const a=[{name:"Brave",detect:()=>e}];let s;for(const r of a)if(r.detect()){const i=X3(navigator.userAgent);return s={name:r.name,version:i.version},dS.set(t,s),s}return s=X3(navigator.userAgent),dS.set(t,s),s}function X3(e){var t,n,a,s,r,i;const c=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],d={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const m of c){const f=e.match(m);if(f){let p=(t=f.groups)===null||t===void 0?void 0:t.name,y=((n=f.groups)===null||n===void 0?void 0:n.version)||((a=f.groups)===null||a===void 0?void 0:a.version1)||((s=f.groups)===null||s===void 0?void 0:s.version2);if(p||!(!((r=f.groups)===null||r===void 0)&&r.version1)&&!(!((i=f.groups)===null||i===void 0)&&i.version2)||(p="Safari"),!p&&m.source.includes("Opera Mini")&&(p="Opera Mini"),!p&&m.source.includes("Opera Mobi")&&(p="Opera Mobi"),!p&&m.source.includes("Opera")&&(p="Opera"),!p&&f[1]&&(p=f[1]),!y&&f[2]&&(y=f[2]),p)return{name:d[p.toLowerCase()]||p,version:y||"unknown"}}}return{name:"unknown",version:"unknown"}}function Z3(){if(typeof navigator>"u"||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function ufs(){let e=[];const t={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(t).forEach((n=>
857{t[n].forEach((a=>{matchMedia(`(${n}: ${a})`).matches&&e.push(`${n}: ${a}`)}))})),e}function mfs(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch{return 0}return 0}const pfs=Fw().name!=="SamsungBrowser"?1:3,ffs=Fw().name!=="Brave",J3=137,gfs=(()=>{const e=new Float32Array(548),t=2*Math.PI/J3;for(let n=0;n<J3;n++){const a=n*t;e[4*n]=0,e[4*n+1]=0,e[4*n+2]=100*Math.cos(a),e[4*n+3]=50*Math.sin(a)}return e})();let Rg=null;function eL(){try{if(typeof document>"u")return null;const e=document.createElement("canvas");e.width=200,e.height=100;const t=e.getContext("webgl");if(!t)return null;e.addEventListener("webglcontextlost",(i=>{i.preventDefault(),Rg=null}),{once:!0});const n=t.createShader(t.VERTEX_SHADER),a=t.createShader(t.FRAGMENT_SHADER);if(!n||!a||(t.shaderSource(n,` 858 attribute vec2 position; 859 void main() { 860 gl_Position = vec4(position, 0.0, 1.0); 861 } 862`),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))||(t.shaderSource(a,` 863 precision mediump float; 864 void main() { 865 gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color 866 } 867`),t.compileShader(a),!t.getShaderParameter(a,t.COMPILE_STATUS)))return null;const s=t.createProgram();if(!s||(t.attachShader(s,n),t.attachShader(s,a),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS)))return null;const r=t.createBuffer();return r?(t.bindBuffer(t.ARRAY_BUFFER,r),t.bufferData(t.ARRAY_BUFFER,gfs,t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),{canvas:e,gl:t,program:s,buffer:r}):null}catch{return null}}function ar(e){const t=new Set;return(function n(a){if(a&&a.toJSON&&typeof a.toJSON=="function"&&(a=a.toJSON()),a===void 0)return;if(typeof a=="number")return isFinite(a)?""+a:"null";if(typeof a!="object")return JSON.stringify(a);let s,r;if(Array.isArray(a)){for(r="[",s=0;s<a.length;s++)s&&(r+=","),r+=n(a[s])||"null";return r+"]"}if(a===null)return"null";if(t.has(a))throw new TypeError("Converting circular structure to JSON");t.add(a);const i=Object.keys(a).sort();for(r="",s=0;s<i.length;s++){const c=i[s],d=n(a[c]);d&&(r&&(r+=","),r+=JSON.stringify(c)+":"+d)}return t.delete(a),"{"+r+"}"})(e)||""}const W9=["ð","ð ","â","ð","ð","ð","ð¸","ð¹","â","ð»","ð¼","ð½"],Y9=["β","Ï","λ","ε","ζ","α","ξ","μ","Ï","Ï","κ","Ï","η","Ï","ι","Ï","γ","ν","Ï","δ","θ","Ï","Ï ","ο"];function Lg(e,t){return`<math><mrow>${t}</mrow></math>`}function hfs(){let e="<mo>â</mo>";return W9.forEach(((t,n)=>{const a=2*n,s=Y9.slice(a,a+2);s.length===2&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${s[1]}</mi><mprescripts></mprescripts><mi>${s[0]}</mi><none/></mmultiscripts>`)})),Lg(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function yfs(){const e=[];return W9.forEach(((t,n)=>{const a=2*n,s=Y9.slice(a,a+2);s.length===2&&e.push(Lg(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${s[1]}</mi><mprescripts></mprescripts><mi>${s[0]}</mi><none/></mmultiscripts>`))})),e}const vfs={audio:async function(){return G3?(async function(){return new Promise(((e,t)=>{try{const n=new G3(1,5e3,44100),a=n.createBufferSource(),s=n.createOscillator();s.frequency.value=1e3;const r=n.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,s.connect(r),r.connect(n.destination),s.start(),n.oncomplete=c=>{i=c.renderedBuffer.getChannelData(0),e({sampleHash:nfs(i),maxChannels:n.destination.maxChannelCount,channelCountMode:a.channelCountMode})},n.startRendering()}catch(n){t(n)}}))})():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>(function(){const n=document.createElement("canvas"),a=n.getContext("2d");if(!a)return null;n.width=Y3,n.height=20;const s=a.createLinearGradient(0,0,n.width,n.height);s.addColorStop(0,"red"),s.addColorStop(.16666666666666666,"orange"),s.addColorStop(.3333333333333333,"yellow"),s.addColorStop(.5,"green"),s.addColorStop(.6666666666666666,"blue"),s.addColorStop(.8333333333333334,"indigo"),s.addColorStop(1,"violet"),a.fillStyle=s,a.fillRect(0,0,n.width,n.height);const r="Random Text WMwmil10Oo";
867return a.font="23.123px Arial",a.fillStyle="black",a.fillText(r,-5,15),a.fillStyle="rgba(0, 0, 255, 0.5)",a.fillText(r,-3.3,17.7),a.beginPath(),a.moveTo(0,0),a.lineTo(2*n.width/7,n.height),a.strokeStyle="white",a.lineWidth=2,a.stroke(),a.getImageData(0,0,n.width,n.height)})())).filter((n=>n!==null));t.length!==0?e({commonPixelsHash:Fo(W3(t,Y3,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((t=>{try{G9((async({iframe:n})=>{const a=n.createElement("canvas").getContext("2d");if(!a)return void t(null);const s=rfs.map((i=>Q3(a,i)));let r={};sfs.forEach((i=>{const c=Q3(a,i);s.includes(c)||(r[i]=c)})),t(r)}))}catch{t(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,a=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:ifs(),architecture:lfs(),deviceMemory:n.toString()||"undefined",jsHeapSizeLimit:a.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:fb(Math.asin,-1,1,97),cos:fb(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:fb(Math.sin,-Math.PI,Math.PI,97),tan:fb(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=e?.permissions_to_check||dfs;return cfs(await Promise.all(Array.from({length:3},(()=>(async function(n){const a={};for(const s of n)try{const r=await navigator.permissions.query({name:s});a[s]=r.state.toString()}catch{}return a})(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if(typeof matchMedia>"u"||typeof screen>"u")return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:ufs()};Z3()&&navigator.maxTouchPoints>0&&(t.resolution=(function(){const n=window.screen.width,a=window.screen.height,s=Math.max(n,a).toString(),r=Math.min(n,a).toString();return`${s}x${r}`})()),e(t)}))},system:function(){return new Promise((e=>{const t=Fw();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:Z3(),applePayVersion:mfs(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){const e=ffs?(Rg||(Rg=eL()),Rg):eL();if(!e)return{webgl:"unsupported"};try{const t=Array.from({length:pfs},(()=>(function(n){const{canvas:a,gl:s,program:r,buffer:i}=n;try{s.useProgram(r),s.bindBuffer(s.ARRAY_BUFFER,i);const c=s.getAttribLocation(r,"position");s.enableVertexAttribArray(c),s.vertexAttribPointer(c,2,s.FLOAT,!1,0,0),s.viewport(0,0,a.width,a.height),s.clearColor(0,0,0,1),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.LINES,0,274);const d=new Uint8ClampedArray(a.width*a.height*4);return s.readPixels(0,0,a.width,a.height,s.RGBA,s.UNSIGNED_BYTE,d),new ImageData(d,a.width,a.height)}catch{return Rg=null,new ImageData(1,1)}finally{s.bindBuffer(s.ARRAY_BUFFER,null),s.useProgram(null),s.viewport(0,0,s.drawingBufferWidth,s.drawingBufferHeight),s.clearColor(0,0,0,0)}})(e)));return{commonPixelsHash:Fo(W3(t,e.canvas.width,e.canvas.height).data.toString()).toString()}}catch{return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{let n;try{const a=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!a)return void t({supported:!1,error:"WebRTC not supported"});n=new a({iceCandidatePoolSize:1,iceServers:[]});const s=n;s.createDataChannel(""),(async()=>{try{const r={offerToReceiveAudio:!0,offerToReceiveVideo:!0},i=await s.createOffer(r);await s.setLocalDescription(i);const c=i.sdp||"",d=[...new Set((c.match(/extmap:\d+ [^\n\r]+/g)||[]).map((x=>x.replace(/extmap:\d+ /,""))))].sort(),m=x=>{const w=c.match(new RegExp(`m=${x} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return w?w[1].split(" "):[]},f=(x,w)=>w.map((S=>{const k=new RegExp(`(rtpmap|fmtp|rtcp-fb):${S} (.+)`,"g"),T=[...c.matchAll(k)];if(!T.length)return null;const R={};return T.forEach((_=>{const[P,j,N]=_,I=N.split("/");j==="rtpmap"?(R.mimeType=`${x}
867/${I[0]}`,R.clockRate=+I[1],x==="audio"&&(R.channels=+I[2]||1)):j==="rtcp-fb"?(R.feedbackSupport=R.feedbackSupport||[],R.feedbackSupport.push(N)):j==="fmtp"&&(R.sdpFmtpLine=N)})),R})).filter(Boolean),p=f("audio",m("audio")),y=f("video",m("video")),v={audio:{count:p.length,hash:Fo(ar(p))},video:{count:y.length,hash:Fo(ar(y))},extensionsHash:Fo(ar(d))};s.close();const $={supported:!0,...v,candidateType:"host"};t({details:$,hash:Fo(ar($))})}catch(r){s.close(),t({supported:!0,error:`WebRTC offer failed: ${r.message}`})}})()}catch(a){n?.close(),t({supported:!1,error:`WebRTC error: ${a.message}`})}}))},speech:async function(){return new Promise((e=>{try{if(typeof window>"u"||!window.speechSynthesis||typeof window.speechSynthesis.getVoices!="function")return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const a=i=>{if(!t){t=!0,n&&clearTimeout(n);try{const c=i.map((m=>{const f=p=>p.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[f(m.voiceURI||""),f(m.name||""),f(m.lang||""),m.localService?"1":"0",m.default?"1":"0"].join(",")}));c.sort();const d={voiceCount:i.length,voicesHash:Fo(ar(c))};e({details:d,hash:Fo(ar(d))})}catch(c){e({supported:!0,error:`Voice processing failed: ${c.message}`})}}},s=window.speechSynthesis.getVoices();if(s.length>0)return void a(s);n=setTimeout((()=>{const i=window.speechSynthesis.getVoices();a(i)}),800);const r=()=>{window.speechSynthesis.removeEventListener("voiceschanged",r);const i=window.speechSynthesis.getVoices();a(i)};window.speechSynthesis.addEventListener("voiceschanged",r)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},bfs={intl:async function(){if(typeof Intl>"u")return null;try{const e=new Date(Date.UTC(2024,0,15,12,30,45)),t={dateFullFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"full",timeZone:"UTC"}).format(e),dateMediumFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"medium",timeZone:"UTC"}).format(e),timeFormat:new Intl.DateTimeFormat("en-US",{timeStyle:"long",timeZone:"UTC"}).format(e),numberFormat:new Intl.NumberFormat("en-US").format(123456.789),currencyFormat:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(123456.789),percentFormat:new Intl.NumberFormat("en-US",{style:"percent"}).format(.456),nonLatinDate:new Intl.DateTimeFormat("ar-EG",{timeZone:"UTC"}).format(e),nonLatinNumber:new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(123456.789)},n=Intl;return typeof n.ListFormat=="function"&&(t.listFormat=new n.ListFormat("en",{type:"conjunction"}).format(["a","b","c"])),typeof n.DisplayNames=="function"&&(t.displayNames=new n.DisplayNames("en",{type:"region"}).of("US")||""),{details:t,hash:Fo(ar(t))}}catch{return null}},mathml:async function(){return new Promise((e=>{try{G9((async({iframe:t})=>{try{if(!(function(i){try{const c=i.createElement("math");c.innerHTML="<mrow><mi>x</mi></mrow>",c.style.position="absolute",c.style.visibility="hidden",i.body.appendChild(c);const d=c.getBoundingClientRect();return i.body.removeChild(c),d.width>0&&d.height>0}catch{return!1}})(t))return void e({supported:!1,error:"MathML not supported"});const n=[Lg("integral","<msubsup><mo>â«</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),Lg("fraction","<mfrac><mrow><mi>Ï</mi><mo>Ã</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>Ï</mi></mrow></mfrac>"),Lg("matrix","<mo>[</mo><mtable><mtr><mtd><mi>α</mi></mtd><mtd><mi>β</mi></mtd></mtr><mtr><mtd><mi>γ</mi></mtd><mtd><mi>δ</mi></mtd></mtr></mtable><mo>]</mo>"),hfs(),...yfs()],a=[];let s="";n.forEach(((i,c)=>{const d=(function(m,f){try{const p=f.createElement("math");p.innerHTML=m.replace(/<\/?math>/g,""),p.style.whiteSpace="nowrap",p.style.position="absolute",p.style.visibility="hidden",p.style.top="-9999px",f.body.appendChild(p);const y=p.getBoundingClientRect(),v=(f.defaultView||window).getComputedStyle(p),$={dimensions:{width:y.width,height:y.height},fontInfo:{fontFamily:v.fontFamily,fontSize:v.fontSize,fontWeight:v.fontWeight,fontStyle:v.fontStyle,lineHeight:v.lineHeight,fontVariant:v.fontVariant||"normal",fontStretch:v.fontStretch||"normal",fontSizeAdjust:v.fontSizeAdjust||"none",textRendering:v.textRendering||"auto",fontFeatureSettings:v.fontFeatureSettings||"normal",fontVariantNumeric:v.fontVariantNumeric||"normal",fontKerning:v.fontKerning||"auto"}};return f.body.removeChild(p),$}catch(p){return{error:p.message}}})(i,t);a.push({width:d.dimensions.width,height:d.dimensions.height}),c===0&&d.fontInfo&&(s=Fo(ar(d.fontInfo)))}));const r={fontStyleHash:s,dimensions:a};e({details:r,hash:Fo(ar(r))})}catch(n){e({supported:!1,error:`MathML error: ${n.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))},mediadevices:async function(){if(typeof navigator>"u"||!navigator.mediaDevices||typeof navigator.mediaDevices.enumerateDevices!="function")return null;try{const e=await navigator.mediaDevices.enumerateDevices(),t={};for(const n of e)t[n.kind]=(t[n.kind]||0)+1;return{audioinput:t.audioinput||0,audiooutput:t.audiooutput||0,videoinput:t.videoinput||0}}catch{return null}}},xfs={},$fs={timeout:"true"};function Q9(e,t){var n,a;let s=Fw();if(s.name==="unknown"&&t){const m=(n=t.system)===null||n===void 0?void 0:n.browser;
867m?.name&&(s={name:String(m.name),version:String(m.version||"unknown")})}const r=s.name.toLowerCase(),i=parseInt(s.version.split(".")[0]||"0",10),c=Array.isArray(e?.exclude)?[...e.exclude]:[],d=[...new Set([...e?.stabilize||[],"always"])];for(const m of d){const f=tfs[m];if(f)for(const p of f)"browsers"in p&&!(!((a=p.browsers)===null||a===void 0)&&a.some((y=>{const v=y.match(/(.+?)(>=)(\d+)/);return v?r===v[1]&&i>=+v[3]:r===y})))||c.push(...p.exclude)}return c}function X9(e,t){const n=Q9(t,e),a=Array.isArray(t?.include)?t.include:[];return(function s(r,i=""){const c={};for(const[d,m]of Object.entries(r)){const f=i?`${i}.${d}`:d;if(typeof m!="object"||Array.isArray(m)||m===null){const p=n.some((v=>f.startsWith(v))),y=a.some((v=>f.startsWith(v)));p&&!y||(c[d]=m)}else{const p=s(m,f);Object.keys(p).length>0&&(c[d]=p)}}return c})(e)}const Z9="visitor_id";function J9(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(Z9)}const tL=`${V9}_${Z9}`;function eK(e,t){try{localStorage.setItem(J9(t),e)}catch{}}const tK="cache";function SR(e){try{const t=localStorage.getItem(e.property_name_factory(tK));return JSON.parse(t)||{}}catch{}return{}}function wfs(e){return e.cache_lifetime_in_ms>K3?Date.now()+K3:Date.now()+e.cache_lifetime_in_ms}
867class qx extends Error{constructor(t){super(`HTTP error! status: ${t}`),this.status=t}}let tg=null,AR=null;async function kfs(e,t,n,a){const s=await fetch(e,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw new qx(s.status);const r=await s.json();return r.visitorId&&r.visitorId!==a&&eK(r.visitorId,n),AR=r,(function(i,c){!i.cache_api_call||!i.cache_lifetime_in_ms||(function(d,m){const f={...SR(d),...m};try{localStorage.setItem(d.property_name_factory(tK),JSON.stringify(f))}catch{}})(i,{apiResponseExpiry:wfs(i),apiResponse:c})})(n,r),r}const Cfs=(e,t)=>{if(e.cache_api_call){if(AR)return Promise.resolve(AR);const d=(function(m){const f=SR(m);if(f&&f.apiResponse&&f.apiResponseExpiry&&Date.now()<=f.apiResponseExpiry)return f.apiResponse})(e);if(d)return Promise.resolve(d);if(tg)return tg}const n=`${e.api_endpoint||K9}/thumbmark`,a=(function(d){try{const m=J9(d);let f=localStorage.getItem(m);return f||m===tL||(f=localStorage.getItem(tL),f&&eK(f,d)),f}catch{return null}})(e),s={components:t,options:e,clientHash:Fo(ar(t)),version:"1.9.1"};if(a&&(s.visitorId=a),e.metadata){const d=typeof e.metadata=="function"?e.metadata():e.metadata;d&&((typeof d=="string"?d.length:JSON.stringify(d).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):s.metadata=d)}const r=e.timeout||5e3,i=(async function(d,m,f,p){for(let y=0;y<3;y++){y>0&&await new Promise((v=>setTimeout(v,200*y)));try{return await kfs(d,m,f,p)}catch(v){if(v instanceof qx||y===2)throw v}}throw new Error("Unreachable")})(n,s,e,a).finally((()=>{tg=null})),c=new Promise((d=>{setTimeout((()=>{const m=SR(e);d(m?.apiResponse||{info:{timed_out:!0},...a&&{visitorId:a}})}),r)}));return tg=Promise.race([i,c]),tg};async function Sfs(e,t={}){var n,a;if(typeof document>"u"||typeof window>"u")return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:"Browser environment required"}]};try{const s={...hj,...e},r=[],i=s.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,c={...vfs,...xfs,...t},{elapsed:d,resolvedComponents:m,errors:f,pipelineTimings:p}=await nL(c,s);r.push(...f);let y={},v={},$={};if(i||s.experimental){const{elapsed:q,resolvedComponents:M,errors:F,pipelineTimings:H}=await nL(bfs,s);y=M,v=q,$=H,r.push(...F)}const x=s.api_key?Cfs(s,m):null;let w=null;if(x)try{w=await x}catch(q){if(q instanceof qx&&q.status===403)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.9.1",thumbmark:""};r.push({type:q instanceof qx?"api_error":"network_error",message:q instanceof Error?q.message:String(q)})}!((n=w?.info)===null||n===void 0)&&n.timed_out&&r.push({type:"api_timeout",message:"API request timed out"});const S=performance.now(),k=X9(w?.components||{},s),T=performance.now()-S,R={...m,...k},_=w?.info||{uniqueness:{score:"api only"}};let P,j=0,N=0;if(w?.thumbmark)P=w.thumbmark;else{const q=performance.now(),M=ar(R);j=performance.now()-q;const F=performance.now();P=Fo(M),N=performance.now()-F}const I="1.9.1";i&&(async function(q,M,F,H={},ee=[]){var B;const G=`${K9}/log`,Q={thumbmark:q,components:M,experimental:H,version:"1.9.1",options:F,path:(B=window?.location)===null||B===void 0?void 0:B.pathname,...ee.length>0&&{errors:ee}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)})}catch{}})(P,R,s,y,r).catch((()=>{}));const z=(a=$["_pipeline.filter"])!==null&&a!==void 0?a:0,E={"_pipeline.dispatch":p["_pipeline.dispatch"],"_pipeline.resolve":p["_pipeline.resolve"],"_pipeline.filter":p["_pipeline.filter"]+z+T,"_pipeline.stringify":j,"_pipeline.hash":N,"_pipeline.assembly":0},L={...d,...v,...p,...E},O=s.performance?{elapsed:L}:{},V=performance.now(),ne={...w?.visitorId&&{visitorId:w.visitorId},thumbmark:P,components:R,info:_,version:I,...O,...r.length>0&&{error:r},...Object.keys(y).length>0&&s.experimental&&{experimental:y},...w?.requestId&&{requestId:w.requestId},...w?.metadata&&{metadata:w.metadata}};return L["_pipeline.assembly"]=performance.now()-V,ne}catch(s){return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:s instanceof Error?s.message:String(s)}]}}}async function nL(e,t){const n={...hj,...t},a=Q9(n).filter((T=>!T.includes("."))),s=Object.entries(e).filter((([T])=>{var R;return!(!((R=n?.exclude)===null||R===void 0)&&R.includes(T))})).filter((([T])=>!a.includes(T))).filter((([T])=>{var R,_,P,j;return!((R=n?.include)===null||R===void 0)&&R.some((N=>N.includes(".")))?(_=n?.include)===null||_===void 0?void 0:_.some((N=>N.startsWith(T))):((P=n?.include)===null||P===void 0?void 0:P.length)===0||((j=n?.include)===null||j===void 0?void 0:j.includes(T))})),r=s.map((([T])=>T)),i={},c=performance.now(),d=s.map((([T,R])=>{const _=performance.now(),P=R(t);return i[`_dispatch.${T}`]=performance.now()-_,P})),m=performance.now()-c,f=performance.now(),p=await(function(T,R,_){return Promise.all(T.map((P=>{const j=performance.now();let N;const I=P.then((E=>(N!==void 0&&clearTimeout(N),{value:E,elapsed:performance.now()-j}
867))).catch((E=>(N!==void 0&&clearTimeout(N),{value:_,elapsed:performance.now()-j,error:E instanceof Error?E.message:String(E)}))),z=new Promise((E=>{N=setTimeout((()=>{E({value:_,elapsed:performance.now()-j,error:"timeout"})}),R)}));return Promise.race([I,z])})))})(d,n?.timeout||5e3,$fs),y=performance.now()-f,v={},$={},x=[];p.forEach(((T,R)=>{var _;const P=r[R];v[P]=(_=T.elapsed)!==null&&_!==void 0?_:0,T.error==="timeout"?x.push({type:"component_timeout",message:`Component '${P}' timed out`,component:P}):T.error&&x.push({type:"component_error",message:T.error,component:P}),T.value!=null&&($[P]=T.value)}));const w=performance.now(),S=X9($,n),k={"_pipeline.dispatch":m,"_pipeline.resolve":y,"_pipeline.filter":performance.now()-w,...i};return{elapsed:v,resolvedComponents:S,errors:x,pipelineTimings:k}}class Afs{constructor(t){this.options={...hj,...t},this.customComponents={}}async get(t){return Sfs({...this.options,...t},this.customComponents)}getVersion(){return"1.9.1"}includeComponent(t,n){this.customComponents[t]=n}}const Tfs=365*24*60*60;function Rfs(){return window.location.hostname.endsWith("onehop.ai")?".onehop.ai":void 0}function Pfs(e){const t=[`oh_dev=${e}`,"path=/",`max-age=${Tfs}`,"samesite=lax"],n=Rfs();n&&t.push(`domain=${n}`),window.location.protocol==="https:"&&t.push("secure"),document.cookie=t.join("; ")}function _fs(){const e=document.cookie.match(/(?:^|; )oh_dev=([^;]*)/);return e?e[1]:null}async function jfs(){if(!(typeof document>"u"))try{const{thumbmark:e}=await new Afs({logging:!1}).get();if(!e||_fs()===e)return;Pfs(e)}catch{}}const Nfs=60,Dfs=i_(Z$).map(e=>({label:Uh[e],value:e}));function Mfs(){return o.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true",children:[o.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),o.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),o.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),o.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})}function Efs(e){if(!e||typeof e!="object")return!1;const t=e;return t.code==="TURNSTILE_REQUIRED"||t.code==="TURNSTILE_FAILED"?!0:typeof t.message=="string"&&t.message.toLowerCase().includes("human verification")}function aL(e){if(!e||typeof e!="object")return!1;const t=e;return t.code==="SIGNUP_NOT_ALLOWED"?!0:typeof t.message=="string"&&t.message.toLowerCase().includes("not approved for access")}function Ifs(){const{t:e}=W(),t="0x4AAAAAADUanQOKPqvJgta7",[n]=s_(),a=zx(n.get("redirect")),s=Nxe(a),r=qa(),i=r.error instanceof rn?r.error:null,[c,d]=h.useState("entry"),[m,f]=h.useState(Ew),[p,y]=h.useState(""),[v,$]=h.useState(""),[x,w]=h.useState(null),[S,k]=h.useState(!1),[T,R]=h.useState(!1),[_,P]=h.useState(""),[j,N]=h.useState(0),[I,z]=h.useState(!1),[E,L]=h.useState(0),O=h.useRef(null);h.useEffect(()=>{efs(),jfs()},[]);const V=!!t,ne=!V||!!_,q=h.useCallback(Y=>{P(Y),Y&&z(!1)},[]),M=h.useCallback(()=>{P(""),z(!0)},[]);h.useEffect(()=>{if(c!=="entry"||r.data||i&&i.status!==ko.unauthorized||O.current===a||!swe)return;const Y=Tg;O.current=a,Y.oneTap({callbackURL:s}).catch(()=>{})},[i,s,r.data,a,c]),h.useEffect(()=>{if(E<=0)return;const Y=setInterval(()=>L(pe=>pe<=1?0:pe-1),1e3);return()=>clearInterval(Y)},[E]);function F(){V&&(P(""),z(!1),N(Y=>Y+1))}const H=_?{"X-Turnstile-Token":_}:void 0;if(r.data)return o.jsx(Gd,{to:mj(a),replace:!0});if(r.isPending)return o.jsx("main",{className:"grid min-h-screen place-items-center bg-[color:var(--muted)] text-sm text-[color:var(--muted-foreground)]",children:o.jsx("div",{role:"status",children:e("common.loading")})});if(i&&i.status!==ko.unauthorized)return o.jsx("main",{className:"flex min-h-screen items-center justify-center bg-[color:var(--muted)] p-4 sm:p-6",children:o.jsx("div",{className:"w-full max-w-md",children:o.jsx(Qt,{title:e("auth.errors.signIn"),description:i.message})})});async function ee(){const Y=p.trim().toLowerCase();w(null),R(!0);try{const{error:pe}=await Tg.emailOtp.sendVerificationOtp({email:Y,type:"sign-in"},{headers:H});if(pe){if(Efs(pe)){w(e("auth.errors.verifyHuman")),F();return}if(aL(pe)){w(e("auth.errors.notAllowed"));return}throw new Error(pe.message||e("auth.errors.sendCodeFailed"))}y(Y),d("code"),L(Nfs),F()}catch(pe){w(pe instanceof Error?pe.message:e("auth.errors.sendCodeFailed")),F()}finally{R(!1)}}async function B(Y){k(!1),R(!0);try{const{error:pe}=await Tg.signIn.emailOtp({email:p,otp:Y});if(pe){if(aL(pe)){w(e("auth.errors.notAllowed")),$("");return}throw new Error(pe.message||e("auth.errors.invalidCode"))}window.location.assign(a)}catch{k(!0),w(e("auth.errors.codeIncorrect")),$("")}finally{R(!1)}}async function G(){w(null),R(!0);try{await Tg.signIn.social({provider:"google",callbackURL:s})}catch(Y){w(Y instanceof Error?Y.message:e("auth.errors.googleFailed")),R(!1)}}function Q(Y){if(!Yd(Y))return;const pe=Y;f(pe),l9(pe),kR(pe),window.location.href=`${uoe(pe,window.location.pathname)}${window.location.search}`}function de(){d("entry"),$(""),k(!1),w(null),F()}return o.jsx("main",{className:"grid min-h-screen place-items-center bg-[color:var(--muted)] p-4 sm:p-6",children:o.jsxs("div",{className:"w-full max-w-md
867space-y-5",children:[o.jsxs(nj,{className:"space-y-6 rounded-3xl border-[color:var(--border)] bg-[color:var(--background)] p-7 shadow-[0_4px_20px_rgba(0,0,0,0.08)] sm:p-8",children:[o.jsxs("header",{className:"space-y-2 text-center",children:[o.jsx(Lz,{className:"mx-auto size-10"}),o.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:e(c==="code"?"auth.enterCodeTitle":"auth.signInTitle")}),o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:c==="code"?e("auth.codeIntro",{email:p}):e("auth.methodIntro")})]}),x?o.jsx(Qt,{title:e("auth.errors.signIn"),description:x}):null,c==="entry"?o.jsxs("div",{className:"space-y-5",children:[o.jsxs(K,{variant:"outline",size:"lg",className:"w-full rounded-full",disabled:T,onClick:()=>void G(),children:[o.jsx(Mfs,{}),e("auth.continueGoogle")]}),o.jsxs("div",{className:"flex items-center gap-3 text-xs font-medium uppercase tracking-[0.12em] text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"h-px flex-1 bg-[color:var(--border)]"}),e("auth.or"),o.jsx("span",{className:"h-px flex-1 bg-[color:var(--border)]"})]}),o.jsxs("form",{className:"space-y-4",onSubmit:Y=>{Y.preventDefault(),ee()},children:[o.jsx(ge,{type:"email",autoComplete:"email","aria-label":e("auth.emailLabel"),value:p,onChange:Y=>y(Y.target.value),placeholder:"[email protected]",className:"h-12 rounded-2xl px-4 text-base"}),V?o.jsxs(o.Fragment,{children:[o.jsx(Xps,{action:"otp_send",resetKey:j,siteKey:t,onTokenChange:q,onUnavailable:M}),I?o.jsx("p",{className:"text-13 text-[color:var(--muted-foreground)]",children:e("auth.errors.verifyUnavailable")}):null]}):null,o.jsx(K,{size:"lg",className:"w-full rounded-full disabled:bg-transparent disabled:border disabled:border-[color:var(--border)] disabled:text-[color:var(--foreground)]",disabled:T||!p.trim()||!ne,children:e(T?"auth.sending":"auth.continueEmail")})]})]}):o.jsxs("div",{className:"space-y-4",children:[o.jsx(Ice,{value:v,onChange:$,onComplete:Y=>void B(Y),error:S,disabled:T,autoFocus:!0}),o.jsx(K,{size:"lg",className:"w-full rounded-full disabled:bg-transparent disabled:border disabled:border-[color:var(--border)] disabled:text-[color:var(--foreground)]",disabled:T||v.length!==6,onClick:()=>void B(v),children:e(T?"auth.verifying":"auth.verify")}),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsxs(K,{variant:"link",size:"sm",className:"px-0 text-[color:var(--muted-foreground)] no-u
867nderline hover:text-[color:var(--foreground)] hover:no-underline",onClick:de,children:["â ",e("common.back")]}),o.jsx(K,{variant:"link",size:"sm",className:"px-0 no-underline hover:no-underline disabled:text-[color:var(--muted-foreground)]",disabled:E>0||T,onClick:de,children:E>0?e("auth.resendIn",{seconds:E}):e("auth.resendCode")})]})]}),o.jsxs("p",{className:"text-center text-xs text-[color:var(--muted-foreground)]",children:[e("auth.termsPrefix")," ",o.jsx("a",{href:"/terms",className:"text-[color:var(--primary)]",children:e("auth.terms")})," · ",o.jsx("a",{href:"/privacy",className:"text-[color:var(--primary)]",children:e("auth.privacy")})]})]}),o.jsx("div",{className:"fixed bottom-5 left-5",children:o.jsx(Bie,{"aria-label":e("common.language"),value:m,onSelect:Q,options:Dfs,showLabel:!0})})]})})}/** 868 * table-core 869 * 870 * Copyright (c) TanStack 871 * 872 * This source code is licensed under the MIT license found in the 873 * LICENSE.md file in the root directory of this source tree. 874 * 875 * @license MIT 876 */function gc(e,t){return typeof e=="function"?e(t):e}function ss(e,t){return n=>{t.setState(a=>({...a,[e]:gc(n,a[e])}))}}function zw(e){return e instanceof Function}function Ofs(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function Lfs(e,t){const n=[],a=s=>{s.forEach(r=>{n.push(r);const i=t(r);i!=null&&i.length&&a(i)})};return a(e),n}function at(e,t,n){let a=[],s;return r=>{let i;n.key&&n.debug&&(i=Date.now());const c=e(r);if(!(c.length!==a.length||c.some((f,p)=>a[p]!==f)))return s;a=c;let m;if(n.key&&n.debug&&(m=Date.now()),s=t(...c),n==null||n.onChange==null||n.onChange(s),n.key&&n.debug&&n!=null&&n.debug()){const f=Math.round((Date.now()-i)*100)/100,p=Math.round((Date.now()-m)*100)/100,y=p/16,v=($,x)=>{for($=String($);$.length<x;)$=" "+$;return $};console.info(`%câ± ${v(p,5)} /${v(f,5)} ms`,` 877 font-size: .6rem; 878 font-weight: bold; 879 color: hsl(${Math.max(0,Math.min(120-120*y,120))}deg 100% 31%);`,n?.key)}return s}}function ot(e,t,n,a){return{debug:()=>{var s;return(s=e?.debugAll)!=null?s:e[t]},key:!1,onChange:a}}function Ufs(e,t,n,a){const s=()=>{var i;return(i=r.getValue())!=null?i:e.options.renderFallbackValue},r={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(a),renderValue:s,getContext:at(()=>[e,n,t,r],(i,c,d,m)=>({table:i,column:c,row:d,cell:m,getValue:m.getValue,renderValue:m.renderValue}),ot(e.options,"debugCells"))};return e._features.forEach(i=>{i.createCell==null||i.createCell(r,n,t,e)},{}),r}function Bfs(e,t,n,a){var s,r;const c={...e._getDefaultColumnDef(),...t},d=c.accessorKey;let m=(s=(r=c.id)!=null?r:d?typeof String.prototype.replaceAll=="function"?d.replaceAll(".","_"):d.replace(/\./g,"_"):void 0)!=null?s:typeof c.header=="string"?c.header:void 0,f;if(c.accessorFn?f=c.accessorFn:d&&(d.includes(".")?f=y=>{let v=y;for(const x of d.split(".")){var $;v=($=v)==null?void 0:$[x]}return v}:f=y=>y[c.accessorKey]),!m)throw new Error;let p={id:`${String(m)}`,accessorFn:f,parent:a,depth:n,columnDef:c,columns:[],getFlatColumns:at(()=>[!0],()=>{var y;return[p,...(y=p.columns)==null?void 0:y.flatMap(v=>v.getFlatColumns())]},ot(e.options,"debugColumns")),getLeafColumns:at(()=>[e._getOrderColumnsFn()],y=>{var v;if((v=p.columns)!=null&&v.length){let $=p.columns.flatMap(x=>x.getLeafColumns());return y($)}return[p]},ot(e.options,"debugColumns"))};for(const y of e._features)y.createColumn==null||y.createColumn(p,e);return p}const Da="debugHeaders";function oL(e,t,n){var a;let r={id:(a=n.id)!=null?a:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const i=[],c=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(c),i.push(d)};return c(r),i},getContext:()=>({table:e,header:r,column:t})};return e._features.forEach(i=>{i.createHeader==null||i.createHeader(r,e)}),r}const Ffs={createTable:e=>{e.getHeaderGroups=at(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,a,s)=>{var r,i;const c=(r=a?.map(p=>n.find(y=>
vendor: 46,580 bytes, line 879
879y.id===p)).filter(Boolean))!=null?r:[],d=(i=s?.map(p=>n.find(y=>y.id===p)).filter(Boolean))!=null?i:[],m=n.filter(p=>!(a!=null&&a.includes(p.id))&&!(s!=null&&s.includes(p.id)));return gb(t,[...c,...m,...d],e)},ot(e.options,Da)),e.getCenterHeaderGroups=at(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,a,s)=>(n=n.filter(r=>!(a!=null&&a.includes(r.id))&&!(s!=null&&s.includes(r.id))),gb(t,n,e,"center")),ot(e.options,Da)),e.getLeftHeaderGroups=at(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,a)=>{var s;const r=(s=a?.map(i=>n.find(c=>c.id===i)).filter(Boolean))!=null?s:[];return gb(t,r,e,"left")},ot(e.options,Da)),e.getRightHeaderGroups=at(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,a)=>{var s;const r=(s=a?.map(i=>n.find(c=>c.id===i)).filter(Boolean))!=null?s:[];return gb(t,r,e,"right")},ot(e.options,Da)),e.getFooterGroups=at(()=>[e.getHeaderGroups()],t=>[...t].reverse(),ot(e.options,Da)),e.getLeftFooterGroups=at(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),ot(e.options,Da)),e.getCenterFooterGroups=at(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),ot(e.options,Da)),e.getRightFooterGroups=at(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),ot(e.options,Da)),e.getFlatHeaders=at(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),ot(e.options,Da)),e.getLeftFlatHeaders=at(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),ot(e.options,Da)),e.getCenterFlatHeaders=at(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),ot(e.options,Da)),e.getRightFlatHeaders=at(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),ot(e.options,Da)),e.getCenterLeafHeaders=at(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var a;return!((a=n.subHeaders)!=null&&a.length)}),ot(e.options,Da)),e.getLeftLeafHeaders=at(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var a;return!((a=n.subHeaders)!=null&&a.length)}),ot(e.options,Da)),e.getRightLeafHeaders=at(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var a;return!((a=n.subHeaders)!=null&&a.length)}),ot(e.options,Da)),e.getLeafHeaders=at(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,a)=>{var s,r,i,c,d,m;return[...(s=(r=t[0])==null?void 0:r.headers)!=null?s:[],...(i=(c=n[0])==null?void 0:c.headers)!=null?i:[],...(d=(m=a[0])==null?void 0:m.headers)!=null?d:[]].map(f=>f.getLeafHeaders()).flat()},ot(e.options,Da))}};function gb(e,t,n,a){var s,r;let i=0;const c=function(y,v){v===void 0&&(v=1),i=Math.max(i,v),y.filter($=>$.getIsVisible()).forEach($=>{var x;(x=$.columns)!=null&&x.length&&c($.columns,v+1)},0)};c(e);let d=[];const m=(y,v)=>{const $={depth:v,id:[a,`${v}`].filter(Boolean).join("_"),headers:[]},x=[];y.forEach(w=>{const S=[...x].reverse()[0],k=w.column.depth===$.depth;let T,R=!1;if(k&&w.column.parent?T=w.column.parent:(T=w.column,R=!0),S&&S?.column===T)S.subHeaders.push(w);else{const _=oL(n,T,{id:[a,v,T.id,w?.id].filter(Boolean).join("_"),isPlaceholder:R,placeholderId:R?`${x.filter(P=>P.column===T).length}`:void 0,depth:v,index:x.length});_.subHeaders.push(w),x.push(_)}$.headers.push(w),w.headerGroup=$}),d.push($),v>0&&m(x,v-1)},f=t.map((y,v)=>oL(n,y,{depth:i,index:v}));m(f,i-1),d.reverse();const p=y=>y.filter($=>$.column.getIsVisible()).map($=>{let x=0,w=0,S=[0];$.subHeaders&&$.subHeaders.length?(S=[],p($.subHeaders).forEach(T=>{let{colSpan:R,rowSpan:_}=T;x+=R,S.push(_)})):x=1;const k=Math.min(...S);return w=w+k,$.colSpan=x,$.rowSpan=w,{colSpan:x,rowSpan:w}});return p((s=(r=d[0])==null?void 0:r.headers)!=null?s:[]),d}const zfs=(e,t,n,a,s,r,i)=>{let c={id:t,index:a,original:n,depth:s,parentId:i,_valuesCache:{},_uniqueValuesCache:{},getValue:d=>{if(c._valuesCache.hasOwnProperty(d))return c._valuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return c._valuesCache[d]=m.accessorFn(c.original,a),c._valuesCache[d]},getUniqueValues:d=>{if(c._uniqueValuesCache.hasOwnProperty(d))return c._uniqueValuesCache[d];const m=e.getColumn(d);if(m!=null&&m.accessorFn)return m.columnDef.getUniqueValues?(c._uniqueValuesCache[d]=m.columnDef.getUniqueValues(c.original,a),c._uniqueValuesCache[d]):(c._uniqueValuesCache[d]=[c.getValue(d)],c._uniqueValuesCache[d])},renderValue:d=>{var m;return(m=c.getValue(d))!=null?m:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>Lfs(c.subRows,d=>d.subRows),getParentRow:()=>c.parentId?e.getRow(c.parentId,!0):void 0,getParentRows:()=>{let d=[],m=c;for(;;){const f=m.getParentRow();if(!f)break;d.push(f),m=f}return d.reverse()},getAllCells:at(()=>[e.getAllLeafColumns()],d=>d.map(m=>Ufs(e,c,m,m.id)),ot(e.options,"debugRows")),_getAllCellsByColumnId:at(()=>[c.getAllCells()],d=>d.reduce((m,f)=>(m[f.column.id]=f,m),{}),ot(e.options,"debugRows"))};for(let d=0;d<e._features.length;d++){const m=e._features[d];m==null||m.createRow==null||m.createRow(c,e)}return c},qfs={createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},nK=(e,t,n)=>{var a,s;const r=n==null||(a=n.toString())==null?void 0:a.toLowerCase();return!!(!((s=e.getValue(t))==null||(s=s.toString())==null||(s=s.toLowerCase())==null)&&s.includes(r))};nK.autoRemove=e=>dr(e);const aK=(e,t,n)=>{var a;return!!(!((a=e.getValue(t))==null||(a=a.toString())==null)&&a.includes(n))};aK.autoRemove=e=>dr(e);const oK=(e,t,n)=>{var a;return((a=e.getValue(t))==null||(a=a.toString())==null?void 0:a.toLowerCase())===n?.toLowerCase()};oK.autoRemove=e=>dr(e);const sK=(e,t,n)=>{var a;return(a=e.getValue(t))==null?void 0:a.includes(n)};sK.autoRemove=e=>dr(e);const rK=(e,t,n)=>!n.some(a=>{var s;return!((s=e.getValue(t))!=null&&s.includes(a))});rK.autoRemove=e=>dr(e)||!(e!=null&&e.length);const iK=(e,t,n)=>n.some(a=>{var s;return(s=e.getValue(t))==null?void 0:s.includes(a)});iK.autoRemove=e=>dr(e)||!(e!=null&&e.length);const lK=(e,t,n)=>e.getValue(t)===n;lK.autoRemove=e=>dr(e);const cK=(e,t,n)=>e.getValue(t)==n;cK.autoRemove=e=>dr(e);const yj=(e,t,n)=>{let[a,s]=n;const r=e.getValue(t);return r>=a&&r<=s};yj.resolveFilterValue=e=>{let[t,n]=e,a=typeof t!="number"?parseFloat(t):t,s=typeof n!="number"?parseFloat(n):n,r=t===null||Number.isNaN(a)?-1/0:a,i=n===null||Number.isNaN(s)?1/0:s;if(r>i){const c=r;r=i,i=c}return[r,i]};yj.autoRemove=e=>dr(e)||dr(e[0])&&dr(e[1]);const Li={includesString:nK,includesStringSensitive:aK,equalsString:oK,arrIncludes:sK,arrIncludesAll:rK,arrIncludesSome:iK,equals:lK,weakEquals:cK,inNumberRange:yj};function dr(e){return e==null||e===""}const Hfs={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:ss("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],a=n?.getValue(e.id);return typeof a=="string"?Li.includesString:typeof a=="number"?Li.inNumberRange:typeof a=="boolean"||a!==null&&typeof a=="object"?Li.equals:Array.isArray(a)?Li.arrIncludes:Li.weakEquals},e.getFilterFn=()=>{var n,a;return zw(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(a=t.options.filterFns)==null?void 0:a[e.columnDef.filterFn])!=null?n:Li[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,a,s;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((a=t.options.enableColumnFilters)!=null?a:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(a=>a.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,a;return(n=(a=t.getState().columnFilters)==null?void 0:a.findIndex(s=>s.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(a=>{const s=e.getFilterFn(),r=a?.find(f=>f.id===e.id),i=gc(n,r?r.value:void 0);if(sL(s,i,e)){var c;return(c=a?.filter(f=>f.id!==e.id))!=null?c:[]}const d={id:e.id,value:i};if(r){var m;return(m=a?.map(f=>f.id===e.id?d:f))!=null?m:[]}return a!=null&&a.length?[...a,d]:[d]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),a=s=>{var r;return(r=gc(t,s))==null?void 0:r.filter(i=>{const c=n.find(d=>d.id===i.id);if(c){const d=c.getFilterFn();if(sL(d,i.value,c))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(a)},e.resetColumnFilters=t=>{var n,a;e.setColumnFilters(t?[]:(n=(a=e.initialState)==null?void 0:a.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function sL(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Vfs=(e,t,n)=>n.reduce((a,s)=>{const r=s.getValue(e);return a+(typeof r=="number"?r:0)},0),Kfs=(e,t,n)=>{let a;return n.forEach(s=>{const r=s.getValue(e);r!=null&&(a>r||a===void 0&&r>=r)&&(a=r)}),a},Gfs=(e,t,n)=>{let a;return n.forEach(s=>{const r=s.getValue(e);r!=null&&(a<r||a===void 0&&r>=r)&&(a=r)}),a},Wfs=(e,t,n)=>{let a,s;return n.forEach(r=>{const i=r.getValue(e);i!=null&&(a===void 0?i>=i&&(a=s=i):(a>i&&(a=i),s<i&&(s=i)))}),[a,s]},Yfs=(e,t)=>{let n=0,a=0;if(t.forEach(s=>{let r=s.getValue(e);r!=null&&(r=+r)>=r&&(++n,a+=r)}),n)return a/n},Qfs=(e,t)=>{if(!t.length)return;const n=t.map(r=>r.getValue(e));if(!Ofs(n))return;if(n.length===1)return n[0];const a=Math.floor(n.length/2),s=n.sort((r,i)=>r-i);return n.length%2!==0?s[a]:(s[a-1]+s[a])/2},Xfs=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),Zfs=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,Jfs=(e,t)=>t.length,uS={sum:Vfs,min:Kfs,max:Gfs,extent:Wfs,mean:Yfs,median:Qfs,unique:Xfs,uniqueCount:Zfs,count:Jfs},egs={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:ss("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(a=>a!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,a;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((a=t.options.enableGrouping)!=null?a:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],a=n?.getValue(e.id);if(typeof a=="number")return uS.sum;if(Object.prototype.toString.call(a)==="[object Date]")return uS.extent},e.getAggregationFn=()=>{var n,a;if(!e)throw new Error;return zw(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(a=t.options.aggregationFns)==null?void 0:a[e.columnDef.aggregationFn])!=null?n:uS[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,a;e.setGrouping(t?[]:(n=(a=e.initialState)==null?void 0:a.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const a=t.getColumn(n);return a!=null&&a.columnDef.getGroupingValue?(e._groupingValuesCache[n]=a.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,a)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var s;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((s=n.subRows)!=null&&s.length)}}};function tgs(e,t,n){if(!(t!=null&&t.length)||!n)return e;const a=e.filter(r=>!t.includes(r.id));return n==="remove"?a:[...t.map(r=>e.find(i=>i.id===r)).filter(Boolean),...a]}const ngs={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:ss("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=at(n=>[Ug(t,n)],n=>n.findIndex(a=>a.id===e.id),ot(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var a;return((a=Ug(t,n)[0])==null?void 0:a.id)===e.id},e.getIsLastColumn=n=>{var a;const s=Ug(t,n);return((a=s[s.length-1])==null?void 0:a.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=at(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,a)=>s=>{let r=[];if(!(t!=null&&t.length))r=s;else{const i=[...t],c=[...s];for(;c.length&&i.length;){const d=i.shift(),m=c.findIndex(f=>f.id===d);m>-1&&r.push(c.splice(m,1)[0])}r=[...r,...c]}return tgs(r,n,a)},ot(e.options,"debugTable"))}},mS=()=>({left:[],right:[]}),ags={getInitialState:e=>({columnPinning:mS(),...e}),getDefaultOptions:e=>({onColumnPinningChange:ss("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const a=e.getLeafColumns().map(s=>s.id).filter(Boolean);t.setColumnPinning(s=>{var r,i;if(n==="right"){var c,d;return{left:((c=s?.left)!=null?c:[]).filter(p=>!(a!=null&&a.includes(p))),right:[...((d=s?.right)!=null?d:[]).filter(p=>!(a!=null&&a.includes(p))),...a]}}if(n==="left"){var m,f;return{left:[...((m=s?.left)!=null?m:[]).filter(p=>!(a!=null&&a.includes(p))),...a],right:((f=s?.right)!=null?f:[]).filter(p=>!(a!=null&&a.includes(p)))}}return{left:((r=s?.left)!=null?r:[]).filter(p=>!(a!=null&&a.includes(p))),right:((i=s?.right)!=null?i:[]).filter(p=>!(a!=null&&a.includes(p)))}})},e.getCanPin=()=>e.getLeafColumns().some(a=>{var s,r,i;return((s=a.columnDef.enablePinning)!=null?s:!0)&&((r=(i=t.options.enableColumnPinning)!=null?i:t.options.enablePinning)!=null?r:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(c=>c.id),{left:a,right:s}=t.getState().columnPinning,r=n.some(c=>a?.includes(c)),i=n.some(c=>s?.includes(c));return r?"left":i?"right":!1},e.getPinnedIndex=()=>{var n,a;const s=e.getIsPinned();return s?(n=(a=t.getState().columnPinning)==null||(a=a[s])==null?void 0:a.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=at(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,a,s)=>{const r=[...a??[],...s??[]];return n.filter(i=>!r.includes(i.column.id))},ot(t.options,"debugRows")),e.getLeftVisibleCells=at(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,a)=>(a??[]).map(r=>n.find(i=>i.column.id===r)).filter(Boolean).map(r=>({...r,position:"left"})),ot(t.options,"debugRows")),e.getRightVisibleCells=at(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,a)=>(a??[]).map(r=>n.find(i=>i.column.id===r)).filter(Boolean).map(r=>({...r,position:"right"})),ot(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,a;return e.setColumnPinning(t?mS():(n=(a=e.initialState)==null?void 0:a.columnPinning)!=null?n:mS())},e.getIsSomeColumnsPinned=t=>{var n;const a=e.getState().columnPinning;if(!t){var s,r;return!!((s=a.left)!=null&&s.length||(r=a.right)!=null&&r.length)}return!!((n=a[t])!=null&&n.length)},e.getLeftLeafColumns=at(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(a=>t.find(s=>s.id===a)).filter(Boolean),ot(e.options,"debugColumns")),e.getRightLeafColumns=at(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(a=>t.find(s=>s.id===a)).filter(Boolean),ot(e.options,"debugColumns")),e.getCenterLeafColumns=at(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,a)=>{const s=[...n??[],...a??[]];return t.filter(r=>!s.includes(r.id))},ot(e.options,"debugColumns"))}};function ogs(e){return e||(typeof document<"u"?document:null)}const hb={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},pS=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),sgs={getDefaultColumnDef:()=>hb,getInitialState:e=>({columnSizing:{},columnSizingInfo:pS(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:ss("columnSizing",e),onColumnSizingInfoChange:ss("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,a,s;const r=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:hb.minSize,(a=r??e.columnDef.size)!=null?a:hb.size),(s=e.columnDef.maxSize)!=null?s:hb.maxSize)},e.getStart=at(n=>[n,Ug(t,n),t.getState().columnSizing],(n,a)=>a.slice(0,e.getIndex(n)).reduce((s,r)=>s+r.getSize(),0),ot(t.options,"debugColumns")),e.getAfter=at(n=>[n,Ug(t,n),t.getState().columnSizing],(n,a)=>a.slice(e.getIndex(n)+1).reduce((s,r)=>s+r.getSize(),0),ot(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:a,...s}=n;return s})},e.getCanResize=()=>{var n,a;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((a=t.options.enableColumnResizing)!=null?a:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const a=s=>{if(s.subHeaders.length)s.subHeaders.forEach(a);else{var r;n+=(r=s.column.getSize())!=null?r:0}};return a(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const a=t.getColumn(e.column.id),s=a?.getCanResize();return r=>{if(!a||!s||(r.persist==null||r.persist(),fS(r)&&r.touches&&r.touches.length>1))return;const i=e.getSize(),c=e?e.getLeafHeaders().map(S=>[S.column.id,S.column.getSize()]):[[a.id,a.getSize()]],d=fS(r)?Math.round(r.touches[0].clientX):r.clientX,m={},f=(S,k)=>{typeof k=="number"&&(t.setColumnSizingInfo(T=>{var R,_;const P=t.options.columnResizeDirection==="rtl"?-1:1,j=(k-((R=T?.startOffset)!=null?R:0))*P,N=Math.max(j/((_=T?.startSize)!=null?_:0),-.999999);return T.columnSizingStart.forEach(I=>{let[z,E]=I;m[z]=Math.round(Math.max(E+E*N,0)*100)/100}),{...T,deltaOffset:j,deltaPercentage:N}}),(t.options.columnResizeMode==="onChange"||S==="end")&&t.setColumnSizing(T=>({...T,...m})))},p=S=>f("move",S),y=S=>{f("end",S),t.setColumnSizingInfo(k=>({...k,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},v=ogs(n),$={moveHandler:S=>p(S.clientX),upHandler:S=>{v?.removeEventListener("mousemove",$.moveHandler),v?.removeEventListener("mouseup",$.upHandler),y(S.clientX)}},x={moveHandler:S=>(S.cancelable&&(S.preventDefault(),S.stopPropagation()),p(S.touches[0].clientX),!1),upHandler:S=>{var k;v?.removeEventListener("touchmove",x.moveHandler),v?.removeEventListener("touchend",x.upHandler),S.cancelable&&(S.preventDefault(),S.stopPropagation()),y((k=S.touches[0])==null?void 0:k.clientX)}},w=rgs()?{passive:!1}:!1;fS(r)?(v?.addEventListener("touchmove",x.moveHandler,w),v?.addEventListener("touchend",x.upHandler,w)):(v?.addEventListener("mousemove",$.moveHandler,w),v?.addEventListener("mouseup",$.upHandler,w)),t.setColumnSizingInfo(S=>({...S,startOffset:d,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:c,isResizingColumn:a.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?pS():(n=e.initialState.columnSizingInfo)!=null?n:pS())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((a,s)=>a+s.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((a,s)=>a+s.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((a,s)=>a+s.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((a,s)=>a+s.getSize(),0))!=null?t:0}}};let yb=null;function rgs(){if(typeof yb=="boolean")return yb;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return yb=e,yb}function fS(e){return e.type==="touchstart"}const igs={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:ss("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(a=>({...a,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,a;const s=e.columns;return(n=s.length?s.some(r=>r.getIsVisible()):(a=t.getState().columnVisibility)==null?void 0:a[e.id])!=null?n:!0},e.getCanHide=()=>{var n,a;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((a=t.options.enableHiding)!=null?a:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=at(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(a=>a.column.getIsVisible()),ot(t.options,"debugRows")),e.getVisibleCells=at(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,a,s)=>[...n,...a,...s],ot(t.options,"debugRows"))},createTable:e=>{const t=(n,a)=>at(()=>[a(),a().filter(s=>s.getIsVisible()).map(s=>s.id).join("_")],s=>s.filter(r=>r.getIsVisible==null?void 0:r.getIsVisible()),ot(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var a;e.setColumnVisibility(n?{}:(a=e.initialState.columnVisibility)!=null?a:{})},e.toggleAllColumnsVisible=n=>{var a;n=(a=n)!=null?a:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((s,r)=>({...s,[r.id]:n||!(r.getCanHide!=null&&r.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var a;e.toggleAllColumnsVisible((a=n.target)==null?void 0:a.checked)}}};function Ug(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const lgs={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},cgs={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:ss("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const a=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof a=="string"||typeof a=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,a,s,r;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((a=t.options.enableGlobalFilter)!=null?a:!0)&&((s=t.options.enableFilters)!=null?s:!0)&&((r=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?r:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Li.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:a}=e.options;return zw(a)?a:a==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[a])!=null?t:Li[a]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},dgs={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:ss("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var a,s;if(!t){e._queue(()=>{t=!0});return}if((a=(s=e.options.autoResetAll)!=null?s:e.options.autoResetExpanded)!=null?a:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=a=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(a),e.toggleAllRowsExpanded=a=>{a??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=a=>{var s,r;e.setExpanded(a?{}:(s=(r=e.initialState)==null?void 0:r.expanded)!=null?s:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(a=>a.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>a=>{a.persist==null||a.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const a=e.getState().expanded;return a===!0||Object.values(a).some(Boolean)},e.getIsAllRowsExpanded=()=>{const a=e.getState().expanded;return typeof a=="boolean"?a===!0:!(!Object.keys(a).length||e.getRowModel().flatRows.some(s=>!s.getIsExpanded()))},e.getExpandedDepth=()=>{let a=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(r=>{const i=r.split(".");a=Math.max(a,i.length)}),a},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(a=>{var s;const r=a===!0?!0:!!(a!=null&&a[e.id]);let i={};if(a===!0?Object.keys(t.getRowModel().rowsById).forEach(c=>{i[c]=!0}):i=a,n=(s=n)!=null?s:!r,!r&&n)return{...i,[e.id]:!0};if(r&&!n){const{[e.id]:c,...d}=i;return d}return a})},e.getIsExpanded=()=>{var n;const a=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:a===!0||a?.[e.id])},e.getCanExpand=()=>{var n,a,s;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((a=t.options.enableExpanding)!=null?a:!0)&&!!((s=e.subRows)!=null&&s.length)},e.getIsAllParentsExpanded=()=>{let n=!0,a=e;for(;n&&a.parentId;)a=t.getRow(a.parentId,!0),n=a.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},TR=0,RR=10,gS=()=>({pageIndex:TR,pageSize:RR}),ugs={getInitialState:e=>({...e,pagination:{...gS(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:ss("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var a,s;if(!t){e._queue(()=>{t=!0});return}if((a=(s=e.options.autoResetAll)!=null?s:e.options.autoResetPageIndex)!=null?a:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=a=>{const s=r=>gc(a,r);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(s)},e.resetPagination=a=>{var s;e.setPagination(a?gS():(s=e.initialState.pagination)!=null?s:gS())},e.setPageIndex=a=>{e.setPagination(s=>{let r=gc(a,s.pageIndex);const i=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...s,pageIndex:r}})},e.resetPageIndex=a=>{var s,r;e.setPageIndex(a?TR:(s=(r=e.initialState)==null||(r=r.pagination)==null?void 0:r.pageIndex)!=null?s:TR)},e.resetPageSize=a=>{var s,r;e.setPageSize(a?RR:(s=(r=e.initialState)==null||(r=r.pagination)==null?void 0:r.pageSize)!=null?s:RR)},e.setPageSize=a=>{e.setPagination(s=>{const r=Math.max(1,gc(a,s.pageSize)),i=s.pageSize*s.pageIndex,c=Math.floor(i/r);return{...s,pageIndex:c,pageSize:r}})},e.setPageCount=a=>e.setPagination(s=>{var r;let i=gc(a,(r=e.options.pageCount)!=null?r:-1);return typeof i=="number"&&(i=Math.max(-1,i)),{...s,pageCount:i}}),e.getPageOptions=at(()=>[e.getPageCount()],a=>{let s=[];return a&&a>0&&(s=[...new Array(a)].fill(null).map((r,i)=>i)),s},ot(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:a}=e.getState().pagination,s=e.getPageCount();return s===-1?!0:s===0?!1:a<s-1},e.previousPage=()=>e.setPageIndex(a=>a-1),e.nextPage=()=>e.setPageIndex(a=>a+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var a;return(a=e.options.pageCount)!=null?a:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var a;return(a=e.options.rowCount)!=null?a:e.getPrePaginationRowModel().rows.length}}},hS=()=>({top:[],bottom:[]}),mgs={getInitialState:e=>({rowPinning:hS(),...e}),getDefaultOptions:e=>({onRowPinningChange:ss("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,a,s)=>{const r=a?e.getLeafRows().map(d=>{let{id:m}=d;return m}):[],i=s?e.getParentRows().map(d=>{let{id:m}=d;return m}):[],c=new Set([...i,e.id,...r]);t.setRowPinning(d=>{var m,f;if(n==="bottom"){var p,y;return{top:((p=d?.top)!=null?p:[]).filter(x=>!(c!=null&&c.has(x))),bottom:[...((y=d?.bottom)!=null?y:[]).filter(x=>!(c!=null&&c.has(x))),...Array.from(c)]}}if(n==="top"){var v,$;return{top:[...((v=d?.top)!=null?v:[]).filter(x=>!(c!=null&&c.has(x))),...Array.from(c)],bottom:(($=d?.bottom)!=null?$:[]).filter(x=>!(c!=null&&c.has(x)))}}return{top:((m=d?.top)!=null?m:[]).filter(x=>!(c!=null&&c.has(x))),bottom:((f=d?.bottom)!=null?f:[]).filter(x=>!(c!=null&&c.has(x)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:a,enablePinning:s}=t.options;return typeof a=="function"?a(e):(n=a??s)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:a,bottom:s}=t.getState().rowPinning,r=n.some(c=>a?.includes(c)),i=n.some(c=>s?.includes(c));return r?"top":i?"bottom":!1},e.getPinnedIndex=()=>{var n,a;const s=e.getIsPinned();if(!s)return-1;const r=(n=s==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(i=>{let{id:c}=i;return c});return(a=r?.indexOf(e.id))!=null?a:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,a;return e.setRowPinning(t?hS():(n=(a=e.initialState)==null?void 0:a.rowPinning)!=null?n:hS())},e.getIsSomeRowsPinned=t=>{var n;const a=e.getState().rowPinning;if(!t){var s,r;return!!((s=a.top)!=null&&s.length||(r=a.bottom)!=null&&r.length)}return!!((n=a[t])!=null&&n.length)},e._getPinnedRows=(t,n,a)=>{var s;return((s=e.options.keepPinnedRows)==null||s?(n??[]).map(i=>{const c=e.getRow(i,!0);return c.getIsAllParentsExpanded()?c:null}):(n??[]).map(i=>t.find(c=>c.id===i))).filter(Boolean).map(i=>({...i,position:a}))},e.getTopRows=at(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),ot(e.options,"debugRows")),e.getBottomRows=at(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),ot(e.options,"debugRows")),e.getCenterRows=at(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,a)=>{const s=new Set([...n??[],...a??[]]);return t.filter(r=>!s.has(r.id))},ot(e.options,"debugRows"))}},pgs={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:ss("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const a={...n},s=e.getPreGroupedRowModel().flatRows;return t?s.forEach(r=>{r.getCanSelect()&&(a[r.id]=!0)}):s.forEach(r=>{delete a[r.id]}),a})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const a=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),s={...n};return e.getRowModel().rows.forEach(r=>{PR(s,r.id,a,!0,e)}),s}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=at(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?yS(e,n):{rows:[],flatRows:[],rowsById:{}},ot(e.options,"debugTable")),e.getFilteredSelectedRowModel=at(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?yS(e,n):{rows:[],flatRows:[],rowsById:{}},ot(e.options,"debugTable")),e.getGroupedSelectedRowModel=at(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?yS(e,n):{rows:[],flatRows:[],rowsById:{}},ot(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let a=!!(t.length&&Object.keys(n).length);return a&&t.some(s=>s.getCanSelect()&&!n[s.id])&&(a=!1),a},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(s=>s.getCanSelect()),{rowSelection:n}=e.getState();let a=!!t.length;return a&&t.some(s=>!n[s.id])&&(a=!1),a},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,a)=>{const s=e.getIsSelected();t.setRowSelection(r=>{var i;if(n=typeof n<"u"?n:!s,e.getCanSelect()&&s===n)return r;const c={...r};return PR(c,e.id,n,(i=a?.selectChildren)!=null?i:!0,t),c})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return vj(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return _R(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return _R(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return a=>{var s;n&&e.toggleSelected((s=a.target)==null?void 0:s.checked)}}}},PR=(e,t,n,a,s)=>{var r;const i=s.getRow(t,!0);n?(i.getCanMultiSelect()||Object.keys(e).forEach(c=>delete e[c]),i.getCanSelect()&&(e[t]=!0)):delete e[t],a&&(r=i.subRows)!=null&&r.length&&i.getCanSelectSubRows()&&i.subRows.forEach(c=>PR(e,c.id,n,a,s))};function yS(e,t){const n=e.getState().rowSelection,a=[],s={},r=function(i,c){return i.map(d=>{var m;const f=vj(d,n);if(f&&(a.push(d),s[d.id]=d),(m=d.subRows)!=null&&m.length&&(d={...d,subRows:r(d.subRows)}),f)return d}).filter(Boolean)};return{rows:r(t.rows),flatRows:a,rowsById:s}}function vj(e,t){var n;return(n=t[e.id])!=null?n:!1}function _R(e,t,n){var a;if(!((a=e.subRows)!=null&&a.length))return!1;let s=!0,r=!1;return e.subRows.forEach(i=>{if(!(r&&!s)&&(i.getCanSelect()&&(vj(i,t)?r=!0:s=!1),i.subRows&&i.subRows.length)){const c=_R(i,t);c==="all"?r=!0:(c==="some"&&(r=!0),s=!1)}}),s?"all":r?"some":!1}const jR=/([0-9]+)/gm,fgs=(e,t,n)=>dK(Ac(e.getValue(n)).toLowerCase(),Ac(t.getValue(n)).toLowerCase()),ggs=(e,t,n)=>dK(Ac(e.getValue(n)),Ac(t.getValue(n))),hgs=(e,t,n)=>bj(Ac(e.getValue(n)).toLowerCase(),Ac(t.getValue(n)).toLowerCase()),ygs=(e,t,n)=>bj(Ac(e.getValue(n)),Ac(t.getValue(n))),vgs=(e,t,n)=>{const a=e.getValue(n),s=t.getValue(n);return a>s?1:a<s?-1:0},bgs=(e,t,n)=>bj(e.getValue(n),t.getValue(n));function bj(e,t){return e===t?0:e>t?1:-1}function Ac(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function dK(e,t){const n=e.split(jR).filter(Boolean),a=t.split(jR).filter(Boolean);for(;n.length&&a.length;){const s=n.shift(),r=a.shift(),i=parseInt(s,10),c=parseInt(r,10),d=[i,c].sort();if(isNaN(d[0])){if(s>r)return 1;if(r>s)return-1;continue}if(isNaN(d[1]))return isNaN(i)?-1:1;if(i>c)return 1;if(c>i)return-1}return n.length-a.length}const ng={alphanumeric:fgs,alphanumericCaseSensitive:ggs,text:hgs,textCaseSensitive:ygs,datetime:vgs,basic:bgs},xgs={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:ss("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let a=!1;for(const s of n){const r=s?.getValue(e.id);if(Object.prototype.toString.call(r)==="[object Date]")return ng.datetime;if(typeof r=="string"&&(a=!0,r.split(jR).length>1))return ng.alphanumeric}return a?ng.text:ng.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof n?.getValue(e.id)=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,a;if(!e)throw new Error;return zw(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(a=t.options.sortingFns)==null?void 0:a[e.columnDef.sortingFn])!=null?n:ng[e.columnDef.sortingFn]},e.toggleSorting=(n,a)=>{const s=e.getNextSortingOrder(),r=typeof n<"u"&&n!==null;t.setSorting(i=>{const c=i?.find(v=>v.id===e.id),d=i?.findIndex(v=>v.id===e.id);let m=[],f,p=r?n:s==="desc";if(i!=null&&i.length&&e.getCanMultiSort()&&a?c?f="toggle":f="add":i!=null&&i.length&&d!==i.length-1?f="replace":c?f="toggle":f="replace",f==="toggle"&&(r||s||(f="remove")),f==="add"){var y;m=[...i,{id:e.id,desc:p}],m.splice(0,m.length-((y=t.options.maxMultiSortColCount)!=null?y:Number.MAX_SAFE_INTEGER))}else f==="toggle"?m=i.map(v=>v.id===e.id?{...v,desc:p}:v):f==="remove"?m=i.filter(v=>v.id!==e.id):m=[{id:e.id,desc:p}];return m})},e.getFirstSortDir=()=>{var n,a;return((n=(a=e.columnDef.sortDescFirst)!=null?a:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var a,s;const r=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==r&&((a=t.options.enableSortingRemoval)==null||a)&&(!(n&&(s=t.options.enableMultiRemove)!=null)||s)?!1:i==="desc"?"asc":"desc":r},e.getCanSort=()=>{var n,a;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((a=t.options.enableSorting)!=null?a:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,a;return(n=(a=e.columnDef.enableMultiSort)!=null?a:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const a=(n=t.getState().sorting)==null?void 0:n.find(s=>s.id===e.id);return a?a.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,a;return(n=(a=t.getState().sorting)==null?void 0:a.findIndex(s=>s.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(a=>a.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return a=>{n&&(a.persist==null||a.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(a):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,a;e.setSorting(t?[]:(n=(a=e.initialState)==null?void 0:a.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},$gs=[Ffs,igs,ngs,ags,qfs,Hfs,lgs,cgs,xgs,egs,dgs,ugs,mgs,pgs,sgs];function wgs(e){var t,n;const a=[...$gs,...(t=e._features)!=null?t:[]];let s={_features:a};const r=s._features.reduce((y,v)=>Object.assign(y,v.getDefaultOptions==null?void 0:v.getDefaultOptions(s)),{}),i=y=>s.options.mergeOptions?s.options.mergeOptions(r,y):{...r,...y};let d={...{},...(n=e.initialState)!=null?n:{}};s._features.forEach(y=>{var v;d=(v=y.getInitialState==null?void 0:y.getInitialState(d))!=null?v:d});const m=[];let f=!1;const p={_features:a,options:{...r,...e},initialState:d,_queue:y=>{m.push(y),f||(f=!0,Promise.resolve().then(()=>{for(;m.length;)m.shift()();f=!1}).catch(v=>setTimeout(()=>{throw v})))},reset:()=>{s.setState(s.initialState)},setOptions:y=>{const v=gc(y,s.options);s.options=i(v)},getState:()=>s.options.state,setState:y=>{s.options.onStateChange==null||s.options.onStateChange(y)},_getRowId:(y,v,$)=>{var x;return(x=s.options.getRowId==null?void 0:s.options.getRowId(y,v,$))!=null?x:`${$?[$.id,v].join("."):v}`},getCoreRowModel:()=>(s._getCoreRowModel||(s._getCoreRowModel=s.options.getCoreRowModel(s)),s._getCoreRowModel()),getRowModel:()=>s.getPaginationRowModel(),getRow:(y,v)=>{let $=(v?s.getPrePaginationRowModel():s.getRowModel()).rowsById[y];if(!$&&($=s.getCoreRowModel().rowsById[y],!$))throw new Error;return $},_getDefaultColumnDef:at(()=>[s.options.defaultColumn],y=>{var v;return y=(v=y)!=null?v:{},{header:$=>{const x=$.header.column.columnDef;return x.accessorKey?x.accessorKey:x.accessorFn?x.id:null},cell:$=>{var x,w;return(x=(w=$.renderValue())==null||w.toString==null?void 0:w.toString())!=null?x:null},...s._features.reduce(($,x)=>Object.assign($,x.getDefaultColumnDef==null?void 0:x.getDefaultColumnDef()),{}),...y}},ot(e,"debugColumns")),_getColumnDefs:()=>s.options.columns,getAllColumns:at(()=>[s._getColumnDefs()],y=>{const v=function($,x,w){return w===void 0&&(w=0),$.map(S=>{const k=Bfs(s,S,w,x),T=S;return k.columns=T.columns?v(T.columns,k,w+1):[],k})};return v(y)},ot(e,"debugColumns")),getAllFlatColumns:at(()=>[s.getAllColumns()],y=>y.flatMap(v=>v.getFlatColumns()),ot(e,"debugColumns")),_getAllFlatColumnsById:at(()=>[s.getAllFlatColumns()],y=>y.reduce((v,$)=>(v[$.id]=$,v),{}),ot(e,"debugColumns")),getAllLeafColumns:at(()=>[s.getAllColumns(),s._getOrderColumnsFn()],(y,v)=>{let $=y.flatMap(x=>x.getLeafColumns());return v($)},ot(e,"debugColumns")),getColumn:y=>s._getAllFlatColumnsById()[y]};Object.assign(s,p);for(let y=0;y<s._features.length;y++){const v=s._features[y];v==null||v.createTable==null||v.createTable(s)}return s}function kgs(){return e=>at(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},a=function(s,r,i){r===void 0&&(r=0);const c=[];for(let m=0;m<s.length;m++){const f=zfs(e,e._getRowId(s[m],m,i),s[m],m,r,void 0,i?.id);if(n.flatRows.push(f),n.rowsById[f.id]=f,c.push(f),e.options.getSubRows){var d;f.originalSubRows=e.options.getSubRows(s[m],m),(d=f.originalSubRows)!=null&&d.length&&(f.subRows=a(f.originalSubRows,r+1,f))}}return c};return n.rows=a(t),n},ot(e.options,"debugTable","getRowModel",()=>e._autoResetPageIndex()))}function Cgs(e){const t=[],n=a=>{var s;t.push(a),(s=a.subRows)!=null&&s.length&&a.getIsExpanded()&&a.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function Sgs(e){return t=>at(()=>[t.getState().pagination,t.getPrePaginationRowModel(),t.options.paginateExpandedRows?void 0:t.getState().expanded],(n,a)=>{if(!a.rows.length)return a;const{pageSize:s,pageIndex:r}=n;let{rows:i,flatRows:c,rowsById:d}=a;const m=s*r,f=m+s;i=i.slice(m,f);let p;t.options.paginateExpandedRows?p={rows:i,flatRows:c,rowsById:d}:p=Cgs({rows:i,flatRows:c,rowsById:d}),p.flatRows=[];const y=v=>{p.flatRows.push(v),v.subRows.length&&v.subRows.forEach(y)};return p.rows.forEach(y),p},ot(t.options,"debugTable"))}function Ags(){return e=>at(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const a=e.getState().sorting,s=[],r=a.filter(d=>{var m;return(m=e.getColumn(d.id))==null?void 0:m.getCanSort()}),i={};r.forEach(d=>{const m=e.getColumn(d.id);m&&(i[d.id]={sortUndefined:m.columnDef.sortUndefined,invertSorting:m.columnDef.invertSorting,sortingFn:m.getSortingFn()})});const c=d=>{const m=d.map(f=>({...f}));return m.sort((f,p)=>{for(let v=0;v<r.length;v+=1){var y;const $=r[v],x=i[$.id],w=x.sortUndefined,S=(y=$?.desc)!=null?y:!1;let k=0;if(w){const T=f.getValue($.id),R=p.getValue($.id),_=T===void 0,P=R===void 0;if(_||P){if(w==="first")return _?-1:1;
879if(w==="last")return _?1:-1;k=_&&P?0:_?w:-w}}if(k===0&&(k=x.sortingFn(f,p,$.id)),k!==0)return S&&(k*=-1),x.invertSorting&&(k*=-1),k}return f.index-p.index}),m.forEach(f=>{var p;s.push(f),(p=f.subRows)!=null&&p.length&&(f.subRows=c(f.subRows))}),m};return{rows:c(n.rows),flatRows:s,rowsById:n.rowsById}},ot(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** 880 * react-table 881 * 882 * Copyright (c) TanStack 883 * 884 * This source code is licensed under the MIT license found in the 885 * LICENSE.md file in the root directory of this source tree. 886 * 887 * @license MIT 888 */function Ad(e,t){return e?Tgs(e)?h.createElement(e,t):e:null}function Tgs(e){return Rgs(e)||typeof e=="function"||Pgs(e)}function Rgs(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Pgs(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function _gs(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=h.useState(()=>({current:wgs(t)})),[a,s]=h.useState(()=>n.current.initialState);return n.current.setOptions(r=>({...r,...e,state:{...a,...e.state},onStateChange:i=>{s(i),e.onStateChange==null||e.onStateChange(i)}})),n.current}const jgs='a,button,input,select,textarea,summary,[role="button"],[role="link"],[role="menuitem"],[tabindex]:not([tabindex="-1"])';function eu(e){const{target:t,currentTarget:n}=e;if(!(t instanceof HTMLElement)||!(n instanceof HTMLElement))return!1;const a=t.closest(jgs);return!!a&&a!==n&&n.contains(a)}function Ngs(e,t){eu(e)||(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),t())}function Dn({children:e,className:t,selected:n,onClick:a,activation:s="interactive"}){const r=!!(a&&s==="interactive");return o.jsx("article",{"data-selected":n,onClick:a?i=>{eu(i)||a()}:void 0,onKeyDown:r?i=>Ngs(i,a):void 0,role:r?"button":void 0,tabIndex:r?0:void 0,className:X("min-w-0 max-w-full overflow-hidden border-b border-[color:var(--border)] bg-[color:var(--card)] px-3 py-2 text-sm last:border-b-0",a&&"cursor-pointer transition-colors hover:bg-[color:var(--muted)]/50",r&&"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[color:var(--ring)]",n&&"bg-[color:var(--primary)]/[0.04]",t),children:e})}function kr({title:e,meta:t,trailing:n,className:a,titleClassName:s,truncateTitle:r=!0}){return o.jsxs("div",{className:X("flex min-w-0 items-start justify-between gap-2",a),children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:X("min-w-0 text-sm font-semibold",r?"truncate":"break-words",s),children:e}),t?o.jsx("div",{className:"mt-0.5 min-w-0 text-11 text-[color:var(--muted-foreground)]",children:t}):null]}),n?o.jsx("div",{className:"flex shrink-0 items-center gap-1",children:n}):null]})}function Ha({children:e,className:t}){return o.jsx("dl",{className:X("mt-1.5 grid grid-cols-2 gap-x-3 gap-y-1",t),children:e})}function Qe({label:e,children:t,align:n="left",className:a,truncate:s=!0}){return o.jsxs("div",{className:X("grid min-w-0 gap-0.5",n==="right"&&"text-right",a),children:[o.jsx("dt",{className:"text-11 font-semibold uppercase leading-4 text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:X("min-w-0 text-xs",s?"truncate":"break-words",n==="right"&&"tabular-nums"),children:t})]})}function Cr({children:e,className:t}){return o.jsx("div",{className:X("flex min-w-0 max-w-full flex-wrap items-center justify-end gap-1.5",t),onClick:n=>n.stopPropagation(),onKeyDown:n=>n.stopPropagation(),children:e})}const Dgs={comfortable:"py-3",compact:"py-1.5"},vS=3;function NR({columns:e,data:t,loading:n=!1,error:a=null,emptyState:s,pagination:r,sorting:i,rowSelection:c,rowActions:d,onRowClick:m,isRowHighlighted:f,caption:p,density:y="comfortable",stickyFirstColumn:v=!0,stickyActionsColumn:$=!0,stickyHeader:x=!1,containerClassName:w,mobileCard:S,mobileRowAction:k,className:T}){const{t:R}=W(),_=h.useMemo(()=>{const E=[];return c&&E.push({id:"__select",header:({table:L})=>c.mode==="multi"?o.jsx(Zn,{"aria-label":R("dataTable.selectAllRows"),checked:L.getIsAllPageRowsSelected(),onChange:O=>L.toggleAllPageRowsSelected(O.target.checked)}):null,cell:({row:L})=>o.jsx(Zn,{"aria-label":R("dataTable.selectRow",{row:L.index+1}),checked:L.getIsSelected(),onChange:O=>{const V=O.target.checked;L.toggleSelected(V)}}),size:36,enableSorting:!1}),E.push(...e),d&&E.push({id:"__actions",header:"",cell:({row:L})=>d(L.original),size:80,enableSorting:!1}),E},[e,d,c]),P=_gs({data:t,columns:_,getCoreRowModel:kgs(),getSortedRowModel:Ags(),enableSorting:!!i,manualSorting:i?.mode==="server",...r?.mode!=="server"&&{getPaginationRowModel:Sgs()}
888,manualPagination:r?.mode==="server",pageCount:r?.pageCount,state:{...r?.pageIndex!==void 0&&{pagination:{pageIndex:r.pageIndex,pageSize:r.pageSize}},...i?.state!==void 0&&{sorting:i.state},...c?.state!==void 0&&{rowSelection:c.state}},...r&&{onPaginationChange:E=>{const L=typeof E=="function"?E({pageIndex:r.pageIndex??0,pageSize:r.pageSize}):E;r.onPageChange?.(L.pageIndex)}},...i?.onChange&&{onSortingChange:E=>{const L=typeof E=="function"?E(i.state??[]):E;i.onChange(L)}},onRowSelectionChange:c?E=>{const L=typeof E=="function"?E(c.state??{}):E,O=[];P.getRowModel().rows.forEach(V=>{L[V.id]&&O.push(V.original)}),c.onChange(O)}:void 0,...c?.getRowId&&{getRowId:c.getRowId},enableMultiRowSelection:c?.mode==="multi",initialState:{pagination:{pageSize:r?.pageSize??20,pageIndex:r?.pageIndex??0},...i?.defaultSorting&&{sorting:i.defaultSorting}}});if(a){const E=a instanceof Error?o.jsx(Qt,{title:R("dataTable.errorTitle"),description:a.message}):a;return o.jsx("div",{"data-testid":"data-table","data-state":"error",className:T,children:E})}if(n)return o.jsxs("div",{"data-testid":"data-table","data-state":"loading",className:T,children:[o.jsx("div",{className:"hidden md:block",children:o.jsx(Bgs,{columns:_.length,rows:r?.pageSize??5})}),o.jsx(Egs,{rows:Math.min(r?.pageSize??5,8)})]});const j=P.getRowModel().rows;if(j.length===0)return o.jsx("div",{"data-testid":"data-table","data-state":"empty",className:T,children:s??o.jsx(Ot,{title:R("dataTable.emptyTitle"),description:R("dataTable.emptyDescription")})});const I=_.length-1,z=c?1:0;return o.jsxs("div",{"data-testid":"data-table","data-state":"data",className:X("flex flex-col",T),children:[o.jsx("div",{className:"hidden min-h-0 flex-1 md:flex md:flex-col",children:o.jsxs(Ua,{stickyHeader:x,containerClassName:w,children:[p?o.jsx("caption",{className:"sr-only",children:p}):null,o.jsx(Po,{children:P.getHeaderGroups().map(E=>o.jsx(qt,{children:E.headers.map((L,O)=>{const V=v&&O===z?"left":$&&d&&O===I?"right":void 0;return o.jsx(Ie,{sticky:V,"aria-sort":L.column.getCanSort()?Ogs(L.column.getIsSorted()):void 0,style:L.column.columnDef.size!=null?{width:L.getSize()}:void 0,children:L.isPlaceholder?null:L.column.getCanSort()?o.jsx(Ugs,{header:L}):Ad(L.column.columnDef.header,L.getContext())},L.id)})},E.id))}),o.jsx(Ba,{children:j.map(E=>o.jsx(qt,{className:X("group/row",m&&"cursor-pointer",f?.(E.original)&&"bg-[color:var(--primary)]/[0.04]"),"data-selected":E.getIsSelected(),onClick:m?L=>{eu(L)||m(E.original)}:void 0,children:E.getVisibleCells().map((L,O)=>{const V=v&&O===z?"left":$&&d&&O===I?"right":void 0;return o.jsx(Me,{sticky:V,className:X("whitespace-nowrap",Dgs[y]),children:Ad(L.column.columnDef.cell,L.getContext())},L.id)})},E.id))})]})}),o.jsx(Igs,{rows:j,headers:P.getFlatHeaders(),rowActions:d,onRowClick:m,isRowHighlighted:f,mobileCard:S,mobileRowAction:k}),r?o.jsx(Fgs,{total:r.mode==="server"?r.total??0:t.length,pageIndex:r.mode==="server"?r.pageIndex??0:P.getState().pagination.pageIndex,pageSize:r.mode==="server"?r.pageSize:P.getState().pagination.pageSize,pageSizeOptions:r.pageSizeOptions,onPageChange:E=>{r.mode==="server"?r.onPageChange?.(E):P.setPageIndex(E)},onPageSizeChange:E=>{r.mode==="server"?r.onPageSizeChange?.(E):P.setPageSize(E)}}):null]})}function Mgs(e){return e==="__select"||e==="__actions"}function Egs({rows:e}){return o.jsx("div",{className:"grid min-w-0 max-w-full grid-cols-[minmax(0,1fr)] md:hidden",children:Array.from({length:e}).map((t,n)=>o.jsxs(Dn,{children:[o.jsxs("div",{className:"flex items-start justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(Rt,{className:"h-4 w-36 max-w-[70%]"}),o.jsx(Rt,{className:"mt-1.5 h-3 w-24 max-w-[55%]"})]}),o.jsx(Rt,{className:"size-8 shrink-0 rounded-md"})]}),o.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-2",children:[o.jsx(Rt,{className:"h-3 w-20 max-w-full"}),o.jsx(Rt,{className:"ml-auto h-3 w-16 max-w-full"}),o.jsx(Rt,{className:"h-3 w-24 max-w-full"}),o.jsx(Rt,{className:"ml-auto h-3 w-14 max-w-full"})]})]},n))})}function Igs({rows:e,headers:t,rowActions:n,onRowClick:a,isRowHighlighted:s,mobileCard:r,mobileRowAction:i}){const{t:c}=W(),d=h.useMemo(()=>{const m=new Map;return t.forEach(f=>m.set(f.column.id,f)),m},[t]);return o.jsx("div",{"data-testid":"data-table-mobile",className:"grid min-w-0 max-w-full grid-cols-[minmax(0,1fr)] md:hidden",children:e.map(m=>{const f=r?.(m.original);if(f)return o.jsx("div",{children:f},m.id);const p=m.getVisibleCells().find(R=>R.column.id==="__select"),y=m.getVisibleCells().find(R=>R.column.id==="__actions"),v=i?.(m.original),$=!v&&a?o.jsx(K,{type:"button",variant:"ghost",size:"icon","aria-label":c("dataTable.openRow",{defaultValue:"Open row"}),className:"size-8",onClick:()=>a(m.original),children:o.jsx(wu,{className:"size-4"})}):null,x=v??$,w=m.getVisibleCells().filter(R=>!Mgs(R.column.id)),S=w.slice(0,vS),k=w.slice(vS),T=(R,_)=>{const P=d.get(R.column.id),j=P?Ad(P.column.columnDef.header,P.getContext()):R.column.id;return o.jsx(Qe,{label:j,className:_===0?"col-span-2":void 0,children:o.jsx("span",{className:X("block min-w-0 truncate [&>*]:max-w-full [&>
888*]:min-w-0",_===0&&"font-medium"),children:Ad(R.column.columnDef.cell,R.getContext())})},R.id)};return o.jsxs(Dn,{selected:m.getIsSelected()||s?.(m.original),onClick:a?()=>a(m.original):void 0,activation:"pointer",children:[p?o.jsx("div",{className:"mb-1.5 flex min-h-8 items-center",children:Ad(p.column.columnDef.cell,p.getContext())}):null,o.jsx(Ha,{children:S.map(T)}),k.length>0||x||n&&y?o.jsxs("div",{className:"mt-1.5 flex min-w-0 items-center justify-between gap-2",children:[k.length>0?o.jsxs("details",{className:"group/details min-w-0 flex-1",onClick:R=>R.stopPropagation(),onKeyDown:R=>R.stopPropagation(),children:[o.jsxs("summary",{className:"inline-flex min-h-8 cursor-pointer list-none items-center gap-1 rounded-md px-1 text-11 font-medium text-[color:var(--muted-foreground)] marker:hidden focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] [&::-webkit-details-marker]:hidden",children:[o.jsx("span",{className:"sr-only",children:c("dataTable.moreDetailsWithCount",{count:k.length,defaultValue:"{{count}} more details"})}),"+",k.length,o.jsx(zc,{className:"size-3.5 transition-transform group-open/details:rotate-180","aria-hidden":"true"})]}),o.jsx("dl",{className:"mt-1 grid grid-cols-2 gap-x-3 gap-y-1 border-t border-[color:var(--border)] pt-1.5",children:k.map((R,_)=>T(R,_+vS))})]}):o.jsx("span",{}),x||n&&y?o.jsxs(Cr,{className:"shrink-0 [&>div]:flex-wrap",children:[x,n&&y?Ad(y.column.columnDef.cell,y.getContext()):null]}):null]}):null]},m.id)})})}function Ogs(e){return e==="asc"?"ascending":e==="desc"?"descending":"none"}function Lgs({dir:e}){return e==="asc"?o.jsx(g9,{className:"size-3.5 text-[color:var(--foreground)]"}):e==="desc"?o.jsx(m9,{className:"size-3.5 text-[color:var(--foreground)]"}):o.jsx(yve,{className:"size-3.5 opacity-40"})}function Ugs({header:e}){return o.jsxs("button",{type:"button",onClick:e.column.getToggleSortingHandler(),className:"-mx-1 inline-flex items-center gap-1 rounded px-1 py-0.5 transition-colors hover:bg-[color:var(--gray-a3)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:[Ad(e.column.columnDef.header,e.getContext()),o.jsx(Lgs,{dir:e.column.getIsSorted()})]})}function Bgs({columns:e,rows:t}){return o.jsx(Ua,{children:o.jsx(Ba,{children:Array.from({length:t},(n,a)=>o.jsx(qt,{children:Array.from({length:e},(s,r)=>o.jsx(Me,{children:o.jsx(Rt,{className:"h-4 w-full"})},r))},a))})})}function Fgs({total:e,pageIndex:t,pageSize:n,pageSizeOptions:a,onPageChange:s,onPageSizeChange:r}){const{t:i}=W();return o.jsx("div",{"data-testid":"pagination-bar",className:"border-t border-[color:var(--border)] px-3 py-3 sm:px-5",children:o.jsx(A_,{total:e,page:t+1,pageSize:n,pageSizeOptions:a,onPageChange:c=>s(c-1),onPageSizeChange:r,labels:{total:c=>i("pagination.total",{count:c,defaultValue:"Total {{count}}"}),perPage:c=>i("pagination.perPage",{count:c,defaultValue:"{{count}} / page"})}})})}function Gp({label:e,active:t,children:n,open:a,onOpenChange:s,className:r,panelClassName:i,compact:c=!1,iconOnly:d=!1}){const m=a!==void 0,f=h.useId(),p=m?a:void 0;return o.jsxs("details",{className:X("group/mobile-filters md:hidden",r),open:a,children:[o.jsxs("summary",{role:"button","aria-controls":f,"aria-expanded":p,"aria-label":typeof e=="string"?e:void 0,onClick:m?y=>{y.preventDefault(),s?.(!a)}:void 0,className:X("flex cursor-pointer list-none items-center justify-between gap-2 rounded-md border border-[color:var(--border)] bg-[color:var(--card)] font-medium marker:hidden focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] [&::-webkit-details-marker]:hidden",c?"min-h-9 px-2.5 text-xs":"min-h-10 px-3 text-sm",d&&"relative grid size-10 place-items-center p-0"),children:[o.jsxs("span",{className:X("inline-flex min-w-0 items-center gap-2",d&&"sr-only"),children:[o.jsx(vR,{className:"size-4 shrink-0 text-[color:var(--muted-foreground)]"}),o.jsx("span",{className:"min-w-0 truncate",children:e}),t?o.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-[color:var(--primary)]"}):null]}),d?o.jsxs(o.Fragment,{children:[o.jsx(vR,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":"true"}),t?o.jsx("span",{className:"absolute right-1.5 top-1.5 size-1.5 rounded-full bg-[color:var(--primary)]"}):null]}):o.jsx(zc,{className:"size-3.5 shrink-0 transition-transform group-open/mobile-filters:rotate-180","aria-hidden":"true"})]}),o.jsx("div",{id:f,className:X("mt-2 grid min-w-0 gap-2.5 rounded-md border border-[color:var(--border)] bg-[color:var(--card)] p-2.5",i),children:n})]})}function gr(e,t){return{selectDate:e("dateRange.selectDate",{defaultValue:"Select date"}),previousMonth:e("dateRange.previousMonth",{defaultValue:"Previous month"}),nextMonth:e("dateRange.nextMonth",{defaultValue:"Next month"}),clear:t}}function zgs(e){return{cancel:e("dateRange.cancel",{defaultValue:"Cancel"}),apply:e("dateRange.apply",{defaultValue:"Apply"}),reversedError:e("dateRange.reversedError",{defaultValue:"Start date must be before end date."}),presetsAriaLabel:e("dateRange.presetsAriaLabel",{defaultValue:"Range presets"}),previousMonth:e("dateRange.previousMonth",{defaultValue:"Previous month"}),nextMonth:e("dateRange.nextMonth",{defaultValue:"Next month"})}}function fh(e,t){return{...t,...zgs(e)}}function nn({show:e,onReset:t,labelKey:n="common.clearAll",className:a}){const{t:s}=W();return e?o.jsx(K,{variant:"ghost",size:"sm",onClick:t,className:a,children:s(n,{defaultValue:n==="common.reset"?"Reset":"Clear"})}):null}function py(e){const{t}=W();
888return o.jsx(S_,{copyLabel:t("common.copy"),copiedLabel:t("common.copied"),onCopyError:()=>ie.error(t("common.copyFailed")),...e})}function xj(e){const{t}=W();return o.jsx(Tz,{copyLabel:t("common.copy"),copiedLabel:t("common.copied"),onCopyError:()=>ie.error(t("common.copyFailed")),...e})}function qgs(e,t){const n=new URLSearchParams(e);for(const[a,s]of Object.entries(t))s===void 0||s===""?n.delete(a):n.set(a,s);return n}function Hgs(e,t){const n=new URLSearchParams(e);for(const a of t)n.delete(a);return n}function qw(e,t){const n=e.get("preset"),a=e.get("from")??void 0,s=e.get("to")??void 0;return!n&&!a&&!s?u3(t):n?u3({preset:n,from:a,to:s}):{preset:"custom",from:a,to:s}}function Hw(e){return e.preset==="custom"||e.preset==="byMonth"?{preset:e.preset,from:e.from,to:e.to}:e.preset?{preset:e.preset,from:void 0,to:void 0}:{preset:e.from||e.to?"custom":void 0,from:e.from,to:e.to}}function Pe(e,t,n=""){return e.get(t)??n}function ln(e,t,n){const a=e.get(t);if(a==null)return n;const s=Number(a);return Number.isInteger(s)&&s>=1?s:n}function Mt(){const[e,t]=s_(),n=h.useRef(e);n.current=e;const a=h.useCallback((r,i)=>{const c=qgs(n.current,r);n.current=c,t(c,{replace:i?.replace??!0})},[t]),s=h.useCallback(r=>{const i=Hgs(n.current,r);n.current=i,t(i,{replace:!0})},[t]);return{params:e,patch:a,remove:s}}function Zt(e,t,n=["page"]){return t.some(a=>!n.includes(a)&&e.has(a))}const Vw=(()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}})();function uK(){return Vw}function fy(e=new Date){const t=-e.getTimezoneOffset(),n=t>=0?"+":"â",a=Math.floor(Math.abs(t)/60),s=Math.abs(t)%60;return`UTC${n}${a}${s?`:${String(s).padStart(2,"0")}`:""}`}function mK(e=new Date){return`${fy(e)} · ${uK()}`}const Vgs=new Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZone:Vw});function pK(e){const t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?"â":Vgs.format(t)}const Kgs=new Intl.DateTimeFormat("sv-SE",{year:"numeric",month:"2-digit",day:"2-digit",timeZone:Vw});function fK(e){const t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?"â":Kgs.format(t)}const Ggs=new Intl.DateTimeFormat("sv-SE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZone:Vw});function Tc(e){const t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?"â":Ggs.format(t)}const Wgs=new Intl.DateTimeFormat("sv-SE",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZone:"UTC"});function gK(e){const t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?"â":Wgs.format(t)}function hK(e,t=new Date){const n=e instanceof Date?e:new Date(e);if(Number.isNaN(n.getTime()))return"â";const a=t.getTime()-n.getTime();if(a<0)return"just now";const s=Math.floor(a/6e4);if(s<1)return"just now";if(s<60)return`${s} min ago`;const r=Math.floor(s/60);return r<24?`${r}h ${s%60}m ago`:`${Math.floor(r/24)}d ago`}function rx({label:e,value:t,muted:n=!1}){return o.jsxs("div",{className:"flex items-baseline justify-between gap-6 py-1 text-xs",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:"tabular-nums "+(n?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]"),children:t})]})}function ix({iso:e,empty:t="â",popoverExtraRows:n}){const{t:a}=W(),s=e?new Date(e):null;return!e||!s||Number.isNaN(s.getTime())?o.jsx("span",{className:"text-sm tabular-nums text-[color:var(--muted-foreground)]",children:t}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"inline-flex w-fit cursor-help flex-col tabular-nums leading-tight text-[color:var(--muted-foreground)]",children:[o.jsx("span",{children:fK(e)}),o.jsx("span",{children:pK(e)})]})}),o.jsxs(ns,{children:[o.jsx("div",{className:"mb-1 text-xs font-semibold",children:a("common.time.timestamp",{defaultValue:"Timestamp"})}),o.jsx(rx,{label:a("common.time.local",{defaultValue:"Local"}),value:`${Tc(e)} ${fy(s)}`}),o.jsx(rx,{label:"UTC",value:gK(e)}),o.jsx(rx,{label:a("common.time.relative",{defaultValue:"Relative"}),value:hK(e),muted:!0}
888),n]})]})}const Ygs={openai:"OpenAI",anthropic:"Anthropic",google:"Google",gemini:"Google",minimax:"MiniMax",stepfun:"StepFun",alibaba:"Alibaba",meta:"Meta",mistral:"Mistral",xai:"xAI",deepseek:"DeepSeek",qwen:"Qwen"};function Hx(e){return e?Ygs[e.toLowerCase()]??e:""}function yK(e){if(!e)return{authorSlug:"",modelName:""};const t=e.indexOf("/");return t<0?{authorSlug:"",modelName:e}:{authorSlug:e.slice(0,t),modelName:e.slice(t+1)}}function QBs(e){const{authorSlug:t,modelName:n}=yK(e),a=Hx(t);return a?`${a}: ${n}`:n}function vK(e){return e.displayName||e.modelSlug||e.fullSlug?.split("/").pop()||e.fullSlug||""}function bK(e,t){return(e.tokenPricingBands??[]).filter(a=>!(a.serviceTier==="standard"&&!a.promptTokens?.gt&&!a.promptTokens?.gte)).map(a=>{const s=a.serviceTier==="standard"?"Standard":a.serviceTier==="priority"?"Priority":"Flex",r=a.promptTokens?.gt!=null?` >${bS(a.promptTokens.gt)}`:a.promptTokens?.gte!=null?` â¥${bS(a.promptTokens.gte)}`:a.promptTokens?.lte!=null?` â¤${bS(a.promptTokens.lte)}`:"";return`${s}${r} ${Fn(a.inputPricePer1m,t)} / ${Fn(a.outputPricePer1m,t)}`})}function bS(e){return e%1e3===0?`${e/1e3}K`:String(e)}function DR(e){return(e??"").toLowerCase().includes("kiro")?"kiro":"official"}function Qgs(e,t,n){const a=`/${e}/${t}`;return n&&n.toLowerCase()!=="en"?`/${n}${a}`:a}const Xgs={sm:16,md:20,lg:24};function Zgs({model:e,logoSize:t="md",showContext:n=!0,showCapabilities:a=!0,meta:s,trailing:r,className:i}){const c=a?(e.capabilities??[]).filter(p=>Dce.includes(p)).slice(0,3):[],d=!!(e.source&&e.source!==e.provider&&e.source!==e.authorSlug),m=n&&e.contextWindow?Xl(e.contextWindow):null,f=s!=null||m!=null;return o.jsxs("div",{className:X("flex min-w-0 items-center gap-3",i),children:[o.jsx(Xo,{authorSlug:e.authorSlug,size:Xgs[t],className:"shrink-0 text-foreground/80"}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsxs("span",{className:"max-w-[38%] shrink truncate text-xs text-[color:var(--muted-foreground)] sm:max-w-none sm:shrink-0",children:[Hx(e.authorSlug),":"]}),o.jsx("span",{className:"truncate text-sm font-medium",children:vK(e)}),d?o.jsx(Xt,{variant:"outline",className:"shrink-0",children:e.source}):null,c.length?o.jsx("span",{className:"ml-0.5 inline-flex shrink-0 items-center gap-1 text-[color:var(--muted-foreground)]",children:c.map(p=>o.jsx(Nce,{capability:p,size:13},p))}):null]}),f?o.jsxs("div",{className:"mt-0.5 flex min-w-0 flex-wrap items-center gap-x-1.5 gap-y-0.5 font-[family-name:var(--font-mono)] text-11 tabular-nums text-[color:var(--muted-foreground)]",children:[s?o.jsx("span",{className:"min-w-0 max-w-full truncate",children:s}):null,m?o.jsx("span",{className:"truncate",children:m}):null]}):null]}),r??null]})}const Im=100,Jgs=["all","text","image","video","embedding"];function ehs(e,t){return t==="all"?!0:Eg(e.outputModalities??[])===t}function ths(e,t){const n=t.search.trim().toLowerCase();return e.filter(a=>ehs(a,t.type)?n?a.fullSlug.toLowerCase().includes(n)||(a.displayName??"").toLowerCase().includes(n)||(a.summary??"").toLowerCase().includes(n):!0:!1)}function nhs(e){const t=new Map;for(const n of e){const a=n.authorSlug||n.provider||"",s=t.get(a);s?s.push(n):t.set(a,[n])}return[...t.entries()].map(([n,a])=>({vendor:n,models:a})).sort((n,a)=>n.vendor.localeCompare(a.vendor))}function rL(e,t){if(e.length===0)return"none";let n=0;for(const a of e)t.has(a)&&(n+=1);return n===0?"none":n===e.length?"all":"some"}function ahs(e,t,n=Im){const a=new Set(e);if(t.length>0&&t.every(c=>a.has(c))){for(const c of t)a.delete(c);return{next:[...a],added:0,reachedLimit:!1}}let r=0,i=!1;for(const c of t)if(!a.has(c)){if(a.size>=n){i=!0;break}a.add(c),r+=1}return{next:[...a],added:r,reachedLimit:i}}function ohs(e,t,n=Im){const a=new Set(e);return a.has(t)?(a.delete(t),{next:[...a],reachedLimit:!1}):a.size>=n?{next:e,reachedLimit:!0}:(a.add(t),{next:[...a],reachedLimit:!1})}function shs(e,t){const n=new Set(t);return e.filter(a=>!n.has(a)).length}function rhs({value:e,onChange:t,models:n,isLoading:a,isError:s,onRetry:r}){const{t:i}=W(),[c,d]=h.useState(""),[m,f]=h.useState("all"),p=h.useDeferredValue(c),y=h.useMemo(()=>new Set(e),[e]),v=h.useMemo(()=>ths(n,{type:m,search:p}),[n,m,p]),$=h.useMemo(()=>v.map(_=>_.fullSlug),[v]),x=h.useMemo(()=>nhs(v),[v]),w=e.length>
888=Im,S=shs(e,$);function k(_){_&&ie.info(i("apiKeys.scope.limitReached",{max:Im,defaultValue:"Reached the {{max}}-model limit"}))}function T(_){const P=ahs(e,_);k(P.reachedLimit),t(P.next)}function R(_){const P=ohs(e,_);k(P.reachedLimit),t(P.next)}return a?o.jsx("div",{className:"space-y-1.5 rounded-md border border-[color:var(--border)] p-2",children:Array.from({length:4}).map((_,P)=>o.jsx(Rt,{className:"h-11 rounded"},P))}):s?o.jsx(Qt,{title:i("apiKeys.scope.loadFailed",{defaultValue:"Could not load models"}),description:i("apiKeys.scope.loadFailedHint",{defaultValue:"Retry, or switch back to All models."}),action:r?o.jsx(K,{onClick:r,children:i("apiKeys.retry",{defaultValue:"Retry"})}):void 0}):o.jsxs("div",{className:"min-w-0 rounded-md border border-[color:var(--border)]",children:[o.jsxs("div",{className:"space-y-2 border-b border-[color:var(--border)] p-2",children:[o.jsxs("div",{className:"relative",children:[o.jsx(hp,{className:"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-[color:var(--muted-foreground)]"}),o.jsx(ge,{value:c,onChange:_=>d(_.target.value),placeholder:i("apiKeys.scope.searchPlaceholder",{defaultValue:"Search modelsâ¦"}),className:"pl-8"})]}),o.jsx(Cc,{value:m,onValueChange:_=>f(_),children:o.jsx(tl,{className:"w-full gap-x-1 sm:gap-x-3",children:Jgs.map(_=>o.jsx(ia,{value:_,className:"min-w-0 px-1 text-xs sm:px-0 sm:text-sm",children:i(`apiKeys.scope.type.${_}`,{defaultValue:_})},_))})})]}),o.jsxs("div",{className:"sticky top-0 z-10 grid grid-cols-[minmax(0,1fr)] gap-2 border-b border-[color:var(--border)] bg-[color:var(--card)] px-3 py-2 text-sm min-[380px]:grid-cols-[minmax(0,1fr)_auto] min-[380px]:items-center",children:[o.jsxs("label",{className:"flex min-w-0 cursor-pointer items-center gap-2 font-medium",children:[(()=>{const _=rL($,y);return o.jsx(Zn,{checked:_==="all",indeterminate:_==="some",disabled:$.length===0,onChange:()=>T($),"aria-label":i("apiKeys.scope.selectAllResults",{count:$.length,defaultValue:"Select all results ({{count}})"})})})(),o.jsx("span",{className:"min-w-0 truncate",children:i("apiKeys.scope.selectAllResults",{count:$.length,defaultValue:"Select all results ({{count}})"})})]}),o.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2 min-[380px]:justify-end",children:[o.jsx("span",{className:X("tabular-nums",w&&"text-[color:var(--warning-foreground)]"),children:i("apiKeys.scope.selectedCount",{count:e.length,max:Im,defaultValue:"{{count}} / {{max}} selected"})}),e.length>0?o.jsx(K,{type:"button",variant:"link",size:"sm",onClick:()=>t([]),className:"h-auto px-0",children:i("apiKeys.scope.clear",{defaultValue:"Clear"})}):null]})]}),S>0?o.jsx("div",{className:"break-words border-b border-[color:var(--border)] bg-[color:var(--muted)]/30 px-3 py-1.5 text-xs text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:i("apiKeys.scope.hiddenSelected",{hidden:S,total:e.length,defaultValue:"{{hidden}} of {{total}} selected are hidden by the current filter"})}):null,o.jsxs("div",{className:"max-h-[min(48vh,380px)] overflow-y-auto overscroll-contain",children:[o.jsx("div",{"aria-live":"polite",className:"sr-only",children:i("apiKeys.scope.selectedCount",{count:e.length,max:Im,defaultValue:"{{count}} / {{max}} selected"})}),v.length===0?o.jsx(Ot,{icon:o.jsx(Fbe,{className:"size-5"}),title:i("apiKeys.scope.emptyTitle",{defaultValue:"No models match"}),description:i("apiKeys.scope.emptyDescription",{defaultValue:"Try a different type or search."})}):x.map(_=>{const P=_.models.map(I=>I.fullSlug),j=rL(P,y),N=P.filter(I=>y.has(I)).length;return o.jsxs("div",{children:[o.jsxs("label",{className:"sticky top-0 z-[1] flex min-w-0 cursor-pointer items-center gap-2 border-y border-[color:var(--border)] bg-[color:var(--muted)] px-3 py-1.5",children:[o.jsx(Zn,{checked:j==="all",indeterminate:j==="some",onChange:()=>T(P),"aria-label":i("apiKeys.scope.selectVendor",{vendor:Hx(_.vendor),on:N,total:P.length,defaultValue:"Select all {{vendor}}, {{on}} of {{total}} selected"})}),o.jsx(Xo,{authorSlug:_.vendor,size:16,className:"shrink-0 text-foreground
888/80"}),o.jsx("span",{className:"min-w-0 truncate text-xs font-semibold text-[color:var(--muted-foreground)]",children:Hx(_.vendor)}),o.jsxs("span",{className:"ml-auto text-11 tabular-nums text-[color:var(--muted-foreground)]",children:[N,"/",P.length]})]}),o.jsx("ul",{children:_.models.map(I=>{const z=y.has(I.fullSlug),E=!z&&w;return o.jsx("li",{children:o.jsxs("label",{className:X("flex min-w-0 cursor-pointer items-center gap-2 border-b border-[color:var(--border)]/60 px-3 py-2 hover:bg-[color:var(--accent)] sm:gap-3",z&&"bg-[color:var(--accent)]/60",E&&"cursor-not-allowed opacity-50"),children:[o.jsx(Zn,{checked:z,disabled:E,onChange:()=>R(I.fullSlug),"aria-label":I.displayName||I.fullSlug}),o.jsx(Zgs,{model:I,className:"flex-1"})]})},I.fullSlug)})})]},_.vendor)})]})]})}function Js(e){return e.publicId??e.public_id??""}function $j(e){return e.prefix??e.keyPrefix??e.key_prefix??""}function wj(e){return e.suffix??e.keySuffix??e.key_suffix??""}function iL(e){return e.createdAt??e.created_at??""}function lL(e){return e.lastUsedAt??e.last_used_at??""}function lx(e){return e.expiresAt??e.expires_at??""}function ihs(e){return e.lastUsedIp??null}function lhs(e){return e.revokedAt??null}function Bg(e){return e.monthlyCreditLimit??e.monthly_credit_limit??null}function Vm(e){return e.tags??[]}function cx(e){return e.allowedModels??e.allowed_models??[]}function kj(e={}){return Ue({queryKey:[...Ht.apiKeys,e],queryFn:()=>Ye.request(`/console/api-keys${$r(e)}`),retry:1})}function chs(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/api-keys",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Ht.apiKeys})})}function dhs(){const e=Re();return ke({mutationFn:({publicId:t,body:n})=>Ye.request(`/console/api-keys/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Ht.apiKeys})})}function xK(e){return Ye.request(`/console/api-keys/${e}/reveal`)}function uhs(e){return Ue({queryKey:[...Ht.apiKeys,"reveal",e],queryFn:()=>xK(e),enabled:!!e,retry:!1,staleTime:1/0,gcTime:0})}function mhs(){const e=Re();return ke({mutationFn:t=>Ye.request(`/console/api-keys/${t}/revoke`,{method:"POST",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Ht.apiKeys})})}function $K(e={}){const t=e.locale??"en",n=Ue({queryKey:["public","models",t],queryFn:()=>Ye.request(`/public/models?locale=${t}&limit=100`),staleTime:300*1e3,retry:1}),a=h.useMemo(()=>{const s=n.data?.items??[];return e.protocol?s.filter(r=>r.supportedProtocolList.includes(e.protocol)):s},[n.data?.items,e.protocol]);return{...n,items:a}}function phs(e,t={}){const n=$K({protocol:t.protocol??null,locale:t.locale}),a=h.useMemo(()=>{const s=new Set,r=[];t.includeAll&&r.push({label:t.allLabel??"All",value:""});for(const i of n.items){const c=i[e];if(c==null||c==="")continue;const d=String(c);s.has(d)||(s.add(d),r.push({label:ghs(e,d),value:d}))}return r},[n.items,e,t.includeAll,t.allLabel]);return{...n,options:a}}const fhs={openai:"OpenAI",anthropic:"Anthropic",google:"Google",minimax:"MiniMax"};function ghs(e,t){return fhs[t.toLowerCase()]??hhs(t)}function hhs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function yhs(){const t=qa().data?.wallet?.hasToppedUp??!0;return n=>n?.requiresPaidAccount===!0&&!t}const wK=[{label:"All statuses",value:""},{label:"Success",value:"success"},{label:"Pending",value:"pending"},{label:"Repairing",value:"repairing"},{label:"Failed",value:"failed"},{label:"Refunded",value:"refunded"}],Cj=[{label:"All protocols",value:""},...X$.map(e=>({label:Wd[e].label,value:e}))],Sj=Cj.filter(e=>e.value),kK=[{label:"OpenAI",value:"openai"},{label:"Anthropic",value:"anthropic"},{label:"Google",value:"google"},{label:"MiniMax",value:"minimax"}],CK=[{label:"Draft",value:"draft"},{label:"Published",value:"published"},{label:"Deprecated",value:"deprecated"},{label:"Archived",value:"archived"}],SK=[{label:"Public",value:"public"},{label:"Hidden",value:"hidden"}],vhs=[{label:"All content statuses",value:""},{label:"Draft",value:"draft"},{label:"Published",value:"published"},{label:"Archived",value:"archived"},{label:"Scheduled",value:"scheduled"}],AK=[{label:"All payment statuses",value:"all"},{label:"Created",value:"created"},{label:"Checkout opened",value:"checkout_opened"},{label:"Pending",value:"pending"},{label:"Paid",value:"paid"},{label:"Expired",value:"expired"},{label:"Canceled",value:"canceled"},{label:"Failed",value:"failed"}],TK=[{label:"All transaction types",value:""},{label:"Usage charge",value:"usage_charge"},{label:"Signup bonus",value:"bonus_signup_grant"},{label:"Promo bonus",value:"bonus_promo_grant"},{label:"Referral bonus",value:"bonus_referral_grant"},{label:"Compensation bonus",value:"bonus_compensation_grant"},{label:"Top-up bonus",value:"bonus_topup_grant"},{label:"Manual adjustment",value:"manual_adjustment"},{label:"Credit purchase",value:"credit_purchase"}],RK=[{label:"All sources",value:""},{label:"Payment",value:"payment"},{label:"Signup bonus",value:"signup"},{label:"Coupon",value:"coupon"},{label:"Admin grant",value:"admin"},{label:"API usage",value:"api"}],MR=[{label:"å
¨é¨",value:""},{label:"Active",value:"active"},{label:"Suspended",value:"suspended"},{label:"Deleted",value:"deleted"}],bhs=[{label:"Active",value:"active"},{label:"Suspended",value:"suspended"}],ER=[{label:"å
¨é¨",value:""},{label:"Normal",value:"normal"},{label:"Watchlisted",value:"watchlisted"},{label:"Blocked",value:"blocked"}],xhs=[{label:"Normal",value:"normal"},{label:"Watchlisted",value:"watchlisted"},{label:"Blocked",value:"blocked"}],PK=[{label:"Active",value:"active"},{label:"Expired",value:"expired"},{label:"Revoked",value:"revoked"}
888,{label:"All entries",value:"all"}],_K=[{label:"All actions",value:""},{label:"User status updated",value:"ops.user.update_status"},{label:"Signup access added",value:"ops.users.allowlist_add"},{label:"Signup access updated",value:"ops.users.allowlist_update"},{label:"Signup access invited",value:"ops.users.allowlist_invite"},{label:"Signup access removed",value:"ops.users.allowlist_revoke"},{label:"Signup access restored",value:"ops.users.allowlist_restore"},{label:"Model created",value:"ops.model.create"},{label:"Model updated",value:"ops.model.update"},{label:"Model status updated",value:"ops.model.update_status"},{label:"Routing pool created",value:"sub2api.pool.create"},{label:"Routing pool tested",value:"sub2api.pool.test"},{label:"Routing secret rotated",value:"sub2api.pool.rotate_secret"}],cL=[{label:"UTC",value:"UTC"},{label:"Asia/Shanghai",value:"Asia/Shanghai"},{label:"Asia/Hong Kong",value:"Asia/Hong_Kong"},{label:"Asia/Singapore",value:"Asia/Singapore"},{label:"Asia/Tokyo",value:"Asia/Tokyo"},{label:"Europe/London",value:"Europe/London"},{label:"Europe/Berlin",value:"Europe/Berlin"},{label:"America/Los Angeles",value:"America/Los_Angeles"},{label:"America/New York",value:"America/New_York"}],$hs=[{label:"1 code",value:"1"},{label:"10 codes",value:"10"},{label:"50 codes",value:"50"},{label:"100 codes",value:"100"}],whs=[{label:"All statuses",value:""},{label:"Active",value:"active"},{label:"Disabled",value:"disabled"}],khs=[{label:"All statuses",value:""},{label:"Active",value:"active"},{label:"Reserved",value:"reserved"},{label:"Redeemed",value:"redeemed"},{label:"Disabled",value:"disabled"}],Chs=[{label:"All content types",value:""},{label:"Blog post",value:"blog"},{label:"Changelog",value:"changelog"},{label:"Docs",value:"docs"},{label:"Page",value:"page"}],jK=[{label:"All sources",value:""},{label:"Signup bonus",value:"signup_bonus"},{label:"Coupon",value:"coupon"},{label:"Manual grant",value:"manual"}],NK=[{label:"All grant statuses",value:""},{label:"Granted",value:"granted"},{label:"Pending",value:"pending"},{label:"Reversed",value:"reversed"},{label:"Expired",value:"expired"},{label:"Denied",value:"denied"}],Shs=[{label:"Sync",value:"sync"},{label:"Stream",value:"stream"}],Ahs=[{label:"Token billing",value:"token"},{label:"Request billing",value:"request"},{label:"Image billing",value:"image"}],Ths=[{label:"Low reasoning",value:"low"},{label:"Medium reasoning",value:"medium"},{label:"High reasoning",value:"high"}],Rhs=new Map([...wK,...Cj,...kK,...CK,...SK,...vhs,...AK,...TK,...RK,...MR,...ER,...PK,...Chs,...jK,...NK,...Shs,...Ahs,...Ths,{label:"Payment",value:"payment"},{label:"Signup bonus",value:"signup"},{label:"Admin grant",value:"admin"},{label:"API usage",value:"api"},{label:"Usage charge",value:"usage_charge"},{label:"Signup bonus",value:"bonus_signup_grant"},{label:"Promo bonus",value:"bonus_promo_grant"},{label:"Referral bonus",value:"bonus_referral_grant"},{label:"Compensation bonus",value:"bonus_compensation_grant"},{label:"Top-up bonus",value:"bonus_topup_grant"},{label:"Manual adjustment",value:"manual_adjustment"},{label:"Credit purchase",value:"credit_purchase"},{label:"Email",value:"email"},{label:"Email OTP",value:"email_otp"},{label:"Magic link",value:"magic_link"},{label:"OAuth",value:"oauth"},{label:"User",value:"user"},{label:"Support",value:"support"},{label:"Admin",value:"admin"},{label:"Owner",value:"owner"},{label:"New",value:"new"},{label:"Started",value:"started"},{label:"Completed",value:"completed"},{label:"Skipped",value:"skipped"},{label:"MVP default",value:"mvp_default"},{label:"Tier 1",value:"tier_1"},{label:"Tier 2",value:"tier_2"},{label:"Tier 3",value:"tier_3"},{label:"Tier 4",value:"tier_4"},{label:"Not applicable",value:"not_applicable"},{label:"Any platform",value:"any"}].map(e=>[e.value,e.label]));function ct(e){return!e||typeof e!="string"?"â":Rhs.get(e)??e.replaceAll("_"," ")}const Phs={success:"success",active:"success",paid:"success",normal:"success",online:"success",healthy:"success",granted:"success",manual_grant:"success",pending:"warning",repairing:"warning",checkout_opened:"warning",stale:"warning",rotating:"warning",suspended:"warning",w
888atchlisted:"warning",warning:"warning",degraded:"warning",inactive:"warning",disabled:"warning",published:"primary",public:"primary",coupon:"primary",failed:"destructive",blocked:"destructive",canceled:"destructive",expired:"destructive",exhausted:"destructive",denied:"destructive",down:"destructive",quota_exhausted:"destructive",revoked:"destructive"};function Oe({value:e,label:t}){const{t:n}=W(),a=Phs[e]??"muted";return o.jsx(jo,{tone:a,children:t??n(`optionLabels.${e}`,{defaultValue:ct(e)})})}const _hs="gpt-5.5",jhs={claude:"anthropic_messages",codex:"openai_responses"};function Nhs(e){const t=e?.trim();return t?`OneHop-${t}`:"OneHop"}const Dhs=`({ 889 request: { 890 url: "{{baseUrl}}/user/balance", 891 method: "GET", 892 headers: { "Authorization": "Bearer {{apiKey}}" } 893 }, 894 extractor: function(response) { 895 return { 896 isValid: response.is_active, 897 remaining: response.balance, 898 unit: response.currency || "USD" 899 }; 900 } 901})`;function Mhs(e){const t=[["resource","provider"],["app",e.app],["name",e.providerName],["homepage",e.homepageUrl],["endpoint",e.endpointUrl],["apiKey",e.apiKey],["configFormat","json"],["usageEnabled","true"],["usageScript",btoa(Dhs)],["usageAutoInterval","30"]];return e.model&&t.splice(2,0,["model",e.model]),e.haikuModel&&t.push(["haikuModel",e.haikuModel]),e.sonnetModel&&t.push(["sonnetModel",e.sonnetModel]),e.opusModel&&t.push(["opusModel",e.opusModel]),`ccswitch://v1/import?${new URLSearchParams(t).toString()}`}async function Ehs(e,t,n){const a=new AbortController,s=setTimeout(()=>a.abort(),3e3);try{const r=await fetch(`${e.replace(/\/+$/,"")}/v1/models?protocol=${encodeURIComponent(n)}&include=protocols`,{method:"GET",credentials:"omit",headers:{Authorization:`Bearer ${t}`},signal:a.signal});if(r.status===401)return{status:"unauthorized"};if(!r.ok)return{status:"error"};let i;try{i=await r.json()}catch{return{status:"error"}}return typeof i!="object"||i===null||!("data"in i)||!Array.isArray(i.data)?{status:"error"}:{status:"ok",models:i.data.flatMap(m=>{if(typeof m.id!="string"||!m.id)return[];const f=typeof m.supported_protocols=="object"&&m.supported_protocols!==null&&!Array.isArray(m.supported_protocols)?Object.keys(m.supported_protocols):[];return[{id:m.id,supportedProtocols:f}]})}}catch{return{status:"error"}}finally{clearTimeout(s)}}const Ihs=new Set(["openai_chat","openai_responses"]),Ohs=new Set(["anthropic_messages"]);function dL(e){const t=e.supportedProtocols.some(a=>Ihs.has(a)),n=e.supportedProtocols.some(a=>Ohs.has(a));return t&&n}function uL(e,t){if(t==="claude"){const n=e.startsWith("anthropic/")&&!e.includes("-kiro"),a=e.includes("-kiro");if(n)return e.includes("haiku")?100:e.includes("sonnet")?200:e.includes("fable")?290:e.includes("opus")?300:150;if(a)return e.includes("haiku")?410:e.includes("sonnet")?420:e.includes("fable")?430:e.includes("opus")?440:450}else if(e.startsWith("openai/gpt"))return e.includes("mini")?100:e.includes("5.4")&&!e.includes("mini")?200:e.includes("5.5")?300:150;return e.startsWith("minimax/")?e.includes("m3")?610:e.includes("highspeed")?630:e.includes("m2.7")?650:640:900}function mL(e,t,n){if(t.length===0)return{action:"direct"};if(n.status!=="ok")return{action:"direct"};const{models:a}=n;if(a.length===0)return{action:"block"};const s=[...a].sort((c,d)=>uL(c.id,e)-uL(d.id,e)),r=s[0],i=s[s.length-1];if(e==="claude"){const c=s.length>2?Math.floor((s.length-1)/2):0,d=s.length>1?s[c]:r;return{action:"pin",model:r.id,haikuModel:r.id,sonnetModel:d.id,opusModel:i.id,needsConfirm:dL(r)}}return{action:"pin",model:i.id,haikuModel:r.id,sonnetModel:i.id,opusModel:i.id,needsConfirm:dL(i)}}function Aj(){return`https://${ioe}/v1`}function DK(){return Aj().replace(/\/v1$/,"")}const xS=["search","status","page"],pL=[{value:"",labelKey:"apiKeys.filters.allStatus"},{value:"active",labelKey:"apiKeys.status.active"},{value:"inactive",labelKey:"apiKeys.status.inactive"},{value:"expired",labelKey:"apiKeys.status.expired"},{value:"quota_exhausted",labelKey:"apiKeys.status.quota_exhausted"},{value:"revoked",labelKey:"apiKeys.status.revoked"}];function $S(e){return{name:e,tags:[],scopeMode:"all",allowedModels:[],monthlyCreditLimit:"",expiresAt:"",status:"active"}}
901function Lhs(e){const t=lx(e),n=cx(e);return{name:e.name,tags:Vm(e),scopeMode:n.length?"limited":"all",allowedModels:n,monthlyCreditLimit:Bg(e)??"",expiresAt:t?t.slice(0,10):"",status:e.storedStatus==="inactive"?"inactive":"active"}}function Uhs(e){const t=e.trim(),n=Number(t);return Number.isFinite(n)&&n>0?t:null}function fL(e){return{name:e.name.trim(),tags:e.tags,allowedModels:e.scopeMode==="all"?[]:e.allowedModels,monthlyCreditLimit:Uhs(e.monthlyCreditLimit),expiresAt:e.expiresAt||null,status:e.status}}function Bhs(e,t){return!t||!Number.isFinite(t)||t<=0?0:Math.max(0,Math.min(100,e/t*100))}function Fhs(e){return e>=95?"error":e>=80?"warning":"normal"}const zhs={normal:"bg-[color:var(--primary)]",warning:"bg-[color:var(--warning)]",error:"bg-[color:var(--destructive)]"},qhs="https://onehop.ai",dx="<YOUR_ONEHOP_API_KEY>",MK=["codex","claude"];function Hhs(e,t){return`${e.replace(/\/+$/,"")}/${t.replace(/^\/+/,"")}`}function EK(e,t,n=kF){return`curl ${Hhs(e,"chat/completions")} \\ 902 -H "Authorization: Bearer ${t}" \\ 903 -H "Content-Type: application/json" \\ 904 -d '{"model":"${n}","messages":[{"role":"user","content":"Hello"}]}'`}function Vhs(e){return e[0]??kF}function wS({label:e}){return o.jsxs("span",{className:"inline-flex items-baseline gap-1",children:[e,o.jsx("span",{className:"text-2xs font-normal text-[color:var(--muted-foreground)]",children:fy()})]})}function Khs(e){const t=new Set;for(const n of e)for(const a of Vm(n))t.add(a);return[...t].sort()}const Ghs=new Set(["inactive","revoked"]),gL=e=>Ghs.has(e);function IK(e){const t=e.status!=="revoked";return{canImport:e.status==="active",canUse:t,canEdit:t,canToggle:t,canDelete:t}}function Whs({apiKey:e,onImport:t,onUse:n,onEdit:a,onToggle:s,onDelete:r,importing:i,toggling:c,deleting:d}){const{t:m,i18n:f}=W(),p=IK(e),y=Vm(e),v=e.usage??{requests30d:0,billed30d:"0"},$=Bg(e);return o.jsxs(Dn,{children:[o.jsx(kr,{title:e.name,titleClassName:"break-words [overflow-wrap:anywhere]",truncateTitle:!1,meta:o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[o.jsxs("code",{className:"min-w-0 break-all font-mono text-[color:var(--foreground)]",children:[$j(e).slice(0,12),"â¦",wj(e).slice(-4)]}),y.slice(0,2).map(x=>o.jsx(Xt,{variant:"outline",className:"h-auto max-w-full break-all px-1.5 py-0.5 text-11 leading-snug",children:x},x))]}),trailing:o.jsxs(o.Fragment,{children:[o.jsx(Oe,{value:e.status,label:m(`apiKeys.status.${e.status}`,{defaultValue:e.status})}),o.jsxs(zp,{children:[o.jsx(qp,{asChild:!0,children:o.jsx(K,{type:"button",variant:"ghost",size:"icon",className:"size-9","aria-label":m("apiKeys.table.action"),"data-testid":"api-key-actions-trigger",children:o.jsx(w9,{className:"size-4"})})}),o.jsxs(xu,{align:"end",className:"max-w-[calc(100vw-1rem)]",children:[p.canUse?o.jsxs(La,{onSelect:n,className:"min-h-10",children:[o.jsx(k9,{className:"size-3.5"}),m("apiKeys.actions.use")]}):null,p.canImport?MK.map(x=>o.jsxs(La,{disabled:i,onSelect:()=>t(x),className:"min-h-10",children:[o.jsx(Uw,{className:"size-3.5"}),m(`apiKeys.ccswitch.${x}`)]},x)):null,p.canEdit?o.jsxs(La,{onSelect:a,className:"min-h-10",children:[o.jsx(A9,{className:"size-3.5"}),m("apiKeys.actions.edit")]}):null,p.canToggle?o.jsxs(La,{disabled:c,onSelect:s,className:"min-h-10",children:[e.storedStatus==="inactive"?o.jsx(x9,{className:"size-3.5"}):o.jsx(b9,{className:"size-3.5"}),e.storedStatus==="inactive"?m("apiKeys.actions.enable"):m("apiKeys.actions.disable")]}):null,p.canDelete?o.jsxs(La,{disabled:d,className:"min-h-10 text-[color:var(--destructive)] focus:text-[color:var(--destructive)]",onSelect:r,children:[o.jsx(Sc,{className:"size-3.5"}),m("apiKeys.actions.delete")]}):null]})]})]})}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_auto]",children:[o.jsx(Qe,{label:m("apiKeys.table.usage"),children:o.jsx("span",{className:"tabular-nums",children:m("apiKeys.usage.days30",{requests:or(v.requests30d),credit:lr(Number(v.billed30d??0),f.language,"USD",6)})})}),o.jsx(Qe,{label:m("apiKeys.table.quota"),align:"right",children:o.jsx("span",{className:"tabular-nums",children:$==null?"â":lr(Number($),f.language,"USD",6)})})]})]})}function Yhs(){const{t:e,i18n:t}=W(),[n,a]=h.useState(null),[s,r]=h.useState(!1),[i,c]=h.useState("configure"),[d,m]=h.useState(!1),[f,p]=h.useState(null),[y,v]=h.useState(null),[$,x]=h.useState(null),[w,S]=h.useState(null),[k,T]=h.useState(null),[R,_]=h.useState(null),[P,j]=h.useState(null),[N,I]=h.useState(()=>$S(e("apiKeys.defaultName"))),{params:z,patch:E,remove:L}=Mt(),O=h.useMemo(()=>({search:Pe(z,"search"),status:Pe(z,"status"),page:ln(z,"page",1)}),[z]),V=h.useDeferredValue(O.search),ne=h.useMemo(()=>({search:V,status:O.status,limit:"50"}),[V,O.status]),q=kj(ne),M=q.data?.items??[],F=h.useMemo(()=>Khs(M),[M]),H=h.useMemo(()=>M.filter(fe=>!gL(fe.status)),[M]),ee=h.useMemo(()=>M.filter(fe=>gL(fe.status)),[M]),B=$K({locale:t.language}),G=h.useMemo(()=>[{id:"name",header:e("apiKeys.table.name"),accessorFn:fe=>fe.name,cell:({row:fe})=>o.jsx("div",{className:"min-w-44 font-medium",children:fe.original.n
904ame})},{id:"key",header:e("apiKeys.table.key"),enableSorting:!1,cell:({row:fe})=>o.jsxs("code",{className:"whitespace-nowrap text-sm",children:[$j(fe.original).slice(0,12),"â¦",wj(fe.original).slice(-4)]})},{id:"tags",header:e("apiKeys.table.tags",{defaultValue:"Tags"}),accessorFn:fe=>Vm(fe)[0]??"",cell:({row:fe})=>{const Ne=Vm(fe.original);return Ne.length?o.jsx("div",{className:"flex min-w-32 flex-wrap gap-1",children:Ne.map(rt=>o.jsx(Xt,{variant:"outline",children:rt},rt))}):o.jsx("span",{className:"text-sm text-[color:var(--muted-foreground)]",children:"-"})}},{id:"status",header:e("apiKeys.table.status"),accessorFn:fe=>fe.status,cell:({row:fe})=>{const Ne=lhs(fe.original),rt=fe.original.status==="revoked"&&Ne?e("apiKeys.revokedAt",{date:Tc(Ne),defaultValue:"Revoked {{date}}"}):void 0;return o.jsx("span",{title:rt,children:o.jsx(Oe,{value:fe.original.status,label:e(`apiKeys.status.${fe.original.status}`,{defaultValue:fe.original.status})})})}},{id:"usage",header:e("apiKeys.table.usage"),accessorFn:fe=>Number(fe.usage?.billed30d??0),cell:({row:fe})=>{const Ne=fe.original.usage??{requestsToday:0,billedToday:"0",requests30d:0,billed30d:"0"},rt=Number(Ne.billed30d??0);return o.jsxs("div",{className:"min-w-44 text-xs tabular-nums",children:[o.jsx("div",{children:e("apiKeys.usage.days30",{requests:or(Ne.requests30d),credit:lr(rt,t.language,"USD",6)})}),o.jsx("div",{className:"text-[color:var(--muted-foreground)]",children:e("apiKeys.usage.today",{requests:or(Ne.requestsToday),credit:lr(Number(Ne.billedToday??0),t.language,"USD",6)})})]})}},{id:"quota",header:e("apiKeys.table.quota"),accessorFn:fe=>{const Ne=Bg(fe);return Ne==null?void 0:Number(Ne)},sortUndefined:"last",cell:({row:fe})=>{const Ne=fe.original,rt=Ne.usage??{billed30d:"0"},na=Number(rt.billed30d??0),cn=Bg(Ne),vn=cn==null?null:Number(cn),ds=Bhs(na,vn),Vc=Fhs(ds);return vn?o.jsxs("div",{className:"min-w-40 space-y-1",children:[o.jsxs("div",{className:"flex justify-between gap-2 text-xs tabular-nums",children:[o.jsx("span",{className:Vc==="error"?"text-[color:var(--destructive)]":Vc==="warning"?"text-[color:var(--warning-foreground)]":void 0,children:lr(na,t.language,"USD",6)}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:lr(vn,t.language,"USD",6)})]}),o.jsx(iy,{value:ds,className:"h-1.5",indicatorClassName:zhs[Vc]})]}):o.jsx("span",{className:"text-sm tabular-nums text-[color:var(--muted-foreground)]",title:e("apiKeys.unlimited"),children:"â"})}},{id:"expires",header:()=>o.jsx(wS,{label:e("apiKeys.table.expires")}),accessorFn:fe=>lx(fe)||void 0,sortUndefined:"last",cell:({row:fe})=>o.jsx(ix,{iso:lx(fe.original)||null,empty:"â"})},{id:"lastUsed",header:()=>o.jsx(wS,{label:e("apiKeys.table.lastUsed")}),accessorFn:fe=>lL(fe)||void 0,sortUndefined:"last",cell:({row:fe})=>{const Ne=ihs(fe.original);return o.jsx(ix,{iso:lL(fe.original)||null,popoverExtraRows:Ne?o.jsx(rx,{label:e("apiKeys.lastUsedIp",{defaultValue:"IP"}),value:Ne,muted:!0}):void 0})}},{id:"created",header:()=>o.jsx(wS,{label:e("apiKeys.table.created")}),accessorFn:fe=>iL(fe)||void 0,sortUndefined:"last",cell:({row:fe})=>o.jsx(ix,{iso:iL(fe.original)||null})}],[e,t.language]),Q=chs(),de=dhs(),Y=mhs(),pe=Q.isPending||de.isPending,se=Zt(z,xS),we=M.length===0&&!q.isLoading&&!se,me=M.length===0&&!q.isLoading&&se,ye=Aj(),_e=!B.isLoading&&B.items.length===0,ae=N.scopeMode==="limited"&&(B.isError||N.allowedModels.length===0);function Je(){p(null),I($S(e("apiKeys.defaultName"))),m(!1),a(null),c("configure"),r(!0)}function Ae(fe){p(fe);const Ne=Lhs(fe);I(Ne),m(!!(Ne.monthlyCreditLimit||Ne.expiresAt)),a(null),c("configure"),r(!0)}function tt(){r(!1),p(null),m(!1),c("configure"),a(null),I($S(""))}async function Tt(fe){if(fe.preventDefault(),!N.name.trim())return;if(f){await de.mutateAsync({publicId:Js(f),body:fL(N)});const rt=R;_(null),tt(),rt&&Js(rt.key)===Js(f)&&ta(rt.app,f);return}const Ne=await Q.mutateAsync(fL(N));a(Ne.apiKey.fullKey??null),c("created")}async function an(fe,Ne,rt){const na=cx(Ne),cn=rt===dx;let vn={action:"direct"};if(!cn){const ds=na.length===0?{status:"skipped"}:await Ehs(DK(),rt,jhs[fe]);vn=mL(fe,na,ds)}if(vn.action==="block"){S({app:fe,key:Ne});return}if(vn.action==="pin"&&vn.needsConfirm){T({app:fe,key:Ne,plan:vn,fullKey:rt});return}window.location.href=ag(fe,ye,rt,Ne.name,vn)}async function ta(fe,Ne){const rt=Js(Ne);x(rt);try{let na;try{na=(await xK(rt)).fullKey}catch{na=dx,window.location.href=ag(fe,ye,na,Ne.name),ie.info(e("apiKeys.ccswitch.pasteHint",{defaultValue:"Opened CC Switch with a placeholder â paste your saved API key there."}));return}await an(fe,Ne,na)}finally{x(null)}}async function lo(fe){const Ne=Js(fe),rt=fe.storedStatus==="inactive"?"active":"inactive";await de.mutateAsync({publicId:Ne,body:{name:fe.name,tags:Vm(fe),allowedModels:cx(fe),monthlyCreditLimit:Bg(fe),expiresAt:lx(fe)||null,status:rt}})}function qs(fe){Js(fe);const Ne=IK(fe);return o.jsxs("div",{className:"flex justify-end gap-1",children:[Ne.canImport?o.jsx(Tj,{onImport:rt=>{ta(rt,fe)},loading:$===Js(fe)}):null,Ne.canUse?o.jsx(K,{size:"sm",variant:"ghost",onClick:()=>v(fe),title:e("apiKeys.actions.use"),"aria-label":e("apiKeys.actions.use"),children:o.jsx(k9,{className:"size-4"})}):null,Ne.canEdit?o.jsx(K,{size:"sm",variant:"ghost",onClick:()=>Ae(fe),title:e("apiKeys.actions.edit"),"aria-label":e("apiKeys.actions.edit"),children:o.jsx(A9,{className:"size-4"})}):null,Ne.canToggle?o.jsx(K,{size:"sm",variant:"ghost",onClick:()=>lo(fe),disabled:de.isPending,title:fe.storedStatus==="inactive"?e("apiKeys.actions.enable"):e("apiKeys.actions.disable"),"aria-label":fe.storedStatus==="inactive"?e("apiKeys.actions.enable"):e("apiKeys.actions.disable"),children:fe.storedStatus==="inactive"?o.jsx(x9,{className:"size-4"}):o.jsx(b9,{className:"size-4"})}):null,Ne.canDelete?o.jsx(K,{size:"sm",variant:"ghost",disabled:Y.isPending,"aria-label":e("apiKeys.actions.delete"),title:e("apiKeys.actions.delete"),onClick:()=>j(fe),children:o.jsx(Sc,{className:"size-4"})}):null]})}function yt(fe){const Ne=Js(fe);return o.jsx(Whs,{apiKey:fe,importing:$===Ne,toggling:de.isPending,deleting:Y.isPending,onImport:rt=>{ta(rt,fe)},onUse:()=>v(fe),onEdit:()=>Ae(fe),onToggle:()=>{lo(fe)},onDelete:()=>j(fe)})}return o.jsxs(Vt,{title:e("apiKeys.title"),description:e("apiKeys.description"),action:o.jsxs("div",{className:"flex w-full justify-end gap-1.5 sm:w-auto
904sm:flex-wrap sm:gap-2",children:[o.jsxs(K,{onClick:()=>q.refetch(),variant:"outline",size:"icon",className:"sm:h-10 sm:w-auto sm:px-4","aria-label":e("apiKeys.refresh"),children:[o.jsx(Vp,{className:"size-4"}),o.jsx("span",{className:"hidden sm:inline",children:e("apiKeys.refresh")})]}),o.jsxs(K,{onClick:Je,"data-tour":"create-key",size:"icon",className:"sm:h-10 sm:w-auto sm:px-4","aria-label":e("apiKeys.createKey"),children:[o.jsx(Uw,{className:"size-4"}),o.jsx("span",{className:"hidden sm:inline",children:e("apiKeys.createKey")})]})]}),children:[q.error?o.jsx(Qt,{title:e("apiKeys.loadFailed"),description:q.error.message,action:o.jsx(K,{onClick:()=>q.refetch(),children:e("apiKeys.retry")})}):null,we?o.jsx(Ot,{title:e("apiKeys.emptyTitle",{defaultValue:"Get your first key in 10 seconds"}),description:e("apiKeys.emptyDescription"),action:o.jsx(K,{onClick:Je,children:e("apiKeys.createKey")})}):o.jsxs(Ee,{className:"overflow-hidden",children:[o.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-start gap-2 border-b border-[color:var(--border)] p-2.5 md:flex md:flex-row md:items-end md:justify-between md:gap-3 md:p-3",children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-2 md:grid-cols-[minmax(220px,320px)_180px] md:gap-3",children:[o.jsxs("label",{className:"min-w-0 md:grid md:gap-1.5 md:text-sm md:font-medium",children:[o.jsx("span",{className:"sr-only md:not-sr-only",children:e("apiKeys.filters.search")}),o.jsx(ge,{startIcon:o.jsx(hp,{className:"size-4"}),value:O.search,onChange:fe=>E({search:fe.target.value,page:void 0}),placeholder:e("apiKeys.filters.searchPlaceholder"),className:"h-10"})]}),o.jsx("div",{className:"hidden md:block",children:o.jsx(ca,{label:e("apiKeys.filters.status"),value:O.status,onChange:fe=>E({status:fe.target.value,page:void 0}),children:pL.map(fe=>o.jsx("option",{value:fe.value,children:e(fe.labelKey)},fe.value||"all"))})})]}),o.jsx(nn,{show:se,onReset:()=>L(xS),className:"hidden self-end md:inline-flex"}),o.jsxs(Gp,{iconOnly:!0,label:e("apiKeys.filters.mobileTitle",{defaultValue:"Filters"}),active:!!O.status,className:"contents",panelClassName:"col-span-2 mt-1",children:[o.jsx(ca,{label:e("apiKeys.filters.status"),value:O.status,onChange:fe=>E({status:fe.target.value,page:void 0}),children:pL.map(fe=>o.jsx("option",{value:fe.value,children:e(fe.labelKey)},fe.value||"all"))}),o.jsx(nn,{show:se,onReset:()=>L(xS),className:"justify-self-end"})]})]}),me?o.jsx(Ot,{title:e("apiKeys.filters.empty",{defaultValue:"No keys match these filters"}),description:e("apiKeys.filters.emptyDescription",{defaultValue:"Clear the search or status filter to see all keys."})}):H.length>0?o.jsx(NR,{caption:e("apiKeys.table.label"),columns:G,data:H,sorting:{defaultSorting:[{id:"created",desc:!0}]},pagination:{pageSize:20,pageSizeOptions:[10,20,50,100],pageIndex:O.page-1,onPageChange:fe=>E({page:fe+1===1?void 0:String(fe+1)},{replace:!1})},containerClassName:"pb-3 max-h-[60vh]",stickyHeader:!0,stickyFirstColumn:!0,stickyActionsColumn:!0,rowActions:qs,mobileCard:yt}):o.jsx(Ot,{title:e("apiKeys.noActive.title",{defaultValue:"No active keys"}),description:e("apiKeys.noActive.description",{defaultValue:"Re-enable a disabled key below, or create a new one."})})]}),ee.length>0?o.jsxs("section",{className:"space-y-2",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("apiKeys.parked.title",{defaultValue:"Disabled & revoked"})}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("apiKeys.parked.description",{defaultValue:"Turned-off or revoked keys. Re-enable a disabled one, or keep it here for the record."})})]}),o.jsx(Ee,{className:"overflow-hidden",children:o.jsx(NR,{caption:e("apiKeys.parked.title",{defaultValue:"Disabled & revoked"}),columns:G,data:ee,sorting:{defaultSorting:[{id:"created",desc:!0}]},pagination:{pageSize:20,pageSizeOptions:[10,20,50,100]},containerClassName:"pb-3 max-h-[60vh]",stickyHeader:!0,stickyFirstColumn:!0,stickyActionsColumn:!0,rowActions:qs,mobileCard:yt})})]}):null,o.jsx(Vn,{open:s,onOpenChange:fe=>{fe||tt()},children:o.jsx(Nn,{side:"auto",className:"gap-0 overflow-hidden !p-0",children:i==="created"&&n?o.jsx(Xhs,{name:N.name,fullKey:n,baseUrl:ye,testModel:Vhs(N.scopeMode==="limited"?N.allowedModels:[]),onImport:fe=>{const Ne=N.scopeMode==="limited"?N.allowedModels:[],rt=Ne.map(cn=>{const vn=cn.includes("/")?cn.split("/")[0]??"":"";return{id:cn,supportedProtocols:vn==="anthropic"?["anthropic_messages"]:vn==="openai"?["openai_chat","openai_responses"]:["openai_chat","openai_responses","anthropic_messages"]}}),na=mL(fe,Ne,{status:"ok",models:rt});window.location.href=ag(fe,ye,n,N.name,na)},onDone:tt}):o.jsxs("form",{onSubmit:Tt,className:"flex h-full flex-col",children:[o.jsxs(Pa,{className:"shrink-0 border-b border-[color:var(--border)] px-4 py-4 sm:px-5",children:[o.jsx(Rn,{className:"break-words [overflow-wrap:anywhere]",children:e(f?"apiKeys.editTitle":"apiKeys.createTitle")}),o.jsx(ua,{className:"break-words [overflow-wrap:anywhere]",children:e("apiKeys.formDescription")})]}),o.jsxs("div",{className:"flex-1 space-y-5 overflow-y-auto px-4 py-4 sm:px-5",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[e("apiKeys.keyName"),o.jsx(ge,{autoFocus:!0,value:N.name,onChange:fe=>I(Ne=>({...Ne,name:fe.target.value}))})]}),o.jsxs("div",{className:"grid gap-2 text-sm font-medium",children:[e("apiKeys.scope.label",{defaultValue:"Model access"}),o.jsx(el,{ariaLabel:e("apiKeys.scope.label",{defaultValue:"Model access"}),value:N.scopeMode,onValueChange:fe=>I(Ne=>({...Ne,scopeMode:fe})),className:"w-full max-w-full [&>button]:min-w-0 [&>button]:flex-1 [&>button]:break-words [&>button]:px-2 [&>button]:text-xs sm:[&>button]:text-sm",options:[{value:"all",label:e("apiKeys.scope.all",{defaultValue:"All models"})},{value:"limited",label:e("apiKeys.scope.limited",{defaultValue:"Restrict to specific models"}),disabled:_e}]}),N.scopeMode==="all"?o.jsx("span",{className:"text-xs font-normal text-[color:var(--muted-foreground)]",children:e("apiKeys.scope.allHint",{defaultValue:"This key can call every model, including ones added later."})}):o.jsxs(o.Fragment,{children:[o.jsx(rhs,{value:N.allowedModels,onChange:fe=>I(Ne=>({...Ne,allowedModels:fe})),models:B.items,isLoading:B.isLoading,isError:B.isError,onRetry:()=>B.refetch()}),o.jsx("span",{className:X("text-xs font-normal",N.allowedModels.length===0?"text-[color:var(--warning-foreground)]":"text-[color:var(--muted-foreground)]"),children:N.allowedModels.length===0?e("apiKeys.scope.pickAtLeastOne",{defaultValue:"Pick at least one model, or switch to All models."}):f?e("apiKeys.scope.snapshotHintEdit",{defaultValue:"Only the models you pick â new models are not added automatically. Switching to All models replaces this whitelist."}):e("apiKeys.scope.snapshotHint",{defaultValue:"Only the models you pick â new models added later are not included automatically."})})]})]}),o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[e("apiKeys.tags.label",{defaultValue:"Tags"}),o.jsx(K_,{value:N.tags,suggestions:F,onChange:fe=>I(Ne=>({...Ne,tags:fe})),placeholder:e("apiKeys.tags.placeholder",{defaultValue:"Add a tag and press Enter"}),removeLabel:e("apiKeys.tags.remove",{defaultValue:"Remove"})})]}),o.jsx(IV,{type:"single",collapsible:!0,value:d?"advanced":"",onValueChange:fe=>m(fe==="advanced"),children:o.jsxs(J_,{value:"advanced",className:"rounded-md border px-3",children:[o.jsx(ej,{children:e("apiKeys.advancedSettings",{defaultValue:"Advanced settings"})}),o.jsxs(tj,{className:"grid gap-4",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[e("apiKeys.monthlyCreditLimit"),o.jsx(ge,{type:"number",inputMode:"decimal",min:"0",step:"any",startIcon:"$",onWheel:fe=>fe.currentTarget.blur(),value:N.monthlyCreditLimit,onChange:fe=>I(Ne=>({...Ne,monthlyCreditLimit:fe.target.value})),placeholder:e("apiKeys.unlimited")})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[e("apiKeys.expiresAt"),o.jsx(fr,{value:N.expiresAt,onChange:fe=>I(Ne=>({...Ne,expiresAt:fe})),placeholder:e("apiKeys.unlimited"),minDate:new Date,locale:t.language,clearLabel:e("common.clearAll"),labels:gr(e,e("common.clearAll"))})]})]})]})}),f?o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[e("apiKeys.table.status"),o.jsxs(ft,{value:N.status,onValueChange:fe=>I(Ne=>({...Ne,status:fe})),children:[o.jsx("option",{value:"active",children:e("apiKeys.status.active")}),o.jsx("option",{value:"inactive",children:e("apiKeys.status.inactive")})]})]}):null]}),o.jsxs("div",{className:"grid shrink-0 gap-2 border-t border-[color:var(--border)] bg-[color:var(--card)] px-4 py-4 sm:flex sm:justify-end sm:px-5",children:[o.jsx(K,{type:"button",variant:"outline",onClick:tt,className:"min-w-0",children:e("apiKeys.cancel")}),o.jsx(K,{type:"submit",disabled:pe||!N.name.trim()||ae,className:"min-w-0",children:e(pe?"apiKeys.saving":"apiKeys.save")})]})]})})}),o.jsx(Up,{open:y!==null,onOpenChange:fe=>{fe||v(null)},children:o.jsx(fu,{className:"max-w-2xl",children:y?o.jsx(Qhs,{apiKey:y,baseUrl:ye,onImportWithKey:async(fe,Ne,rt)=>{v(null),await an(fe,Ne,rt)}}):null})}),w?o.jsx(Zhs,{app:w.app,keyName:w.key.name,allowedModels:cx(w.key),onAdjust:()=>{const fe=w.key,Ne=w.app;S(null),_({app:Ne,key:fe}),Ae(fe)},onForceImport:()=>{const{app:fe,key:Ne}=w;
904S(null),window.location.href=ag(fe,ye,dx,Ne.name),ie.info(e("apiKeys.ccswitch.pasteHint",{defaultValue:"Opened CC Switch with a placeholder â paste your saved API key there."}))},onClose:()=>S(null)}):null,k?o.jsx(Jhs,{app:k.app,plan:k.plan,keyName:k.key.name,onConfirm:()=>{const{app:fe,key:Ne,plan:rt,fullKey:na}=k;T(null),window.location.href=ag(fe,ye,na,Ne.name,rt)},onAdjust:()=>{const{app:fe,key:Ne}=k;T(null),_({app:fe,key:Ne}),Ae(Ne)},onClose:()=>T(null)}):null,o.jsx(Cw,{open:P!==null,onOpenChange:fe=>{fe||j(null)},children:o.jsxs(ay,{className:"max-w-md",children:[o.jsxs(Sw,{children:[o.jsx(oy,{className:"break-words [overflow-wrap:anywhere]",children:e("apiKeys.revoke",{defaultValue:"Revoke"})}),o.jsx(sy,{className:"break-words [overflow-wrap:anywhere]",children:P?e("apiKeys.revokeConfirm",{name:P.name}):""})]}),o.jsxs(Aw,{className:"grid gap-2 sm:flex sm:justify-end",children:[o.jsx(ry,{disabled:Y.isPending,className:"mt-0 min-w-0",children:e("apiKeys.cancel")}),o.jsx(z_,{disabled:Y.isPending||!P,className:X("min-w-0",ur({variant:"destructive"})),onClick:fe=>{fe.preventDefault(),P&&(Y.mutate(Js(P)),j(null))},children:e("apiKeys.actions.delete")})]})]})})]})}function ag(e,t,n,a,s){const r=s?.action==="pin",i=e==="codex"?_hs:void 0;return Mhs({app:e,endpointUrl:e==="claude"?t.replace(/\/v1\/?$/,""):t,homepageUrl:qhs,providerName:Nhs(a),apiKey:n,model:r?s.model:i,haikuModel:r?s.haikuModel:void 0,sonnetModel:r?s.sonnetModel:void 0,opusModel:r?s.opusModel:void 0})}function Tj({onImport:e,disabled:t,loading:n,compact:a=!1}){const{t:s}=W();return o.jsxs(zp,{children:[o.jsx(qp,{asChild:!0,children:o.jsx(K,{size:"sm",disabled:t||n,"aria-busy":n,className:X("max-w-full min-w-0",a?"h-8 px-2.5 text-xs":void 0),children:n?o.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsx("span",{className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),o.jsx("span",{className:"min-w-0 truncate",children:s("apiKeys.ccswitch.checking",{defaultValue:"Checkingâ¦"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"min-w-0 truncate",children:s("apiKeys.ccswitch.import")}),o.jsx(zc,{className:"size-3.5"})]})})}),o.jsx(xu,{align:"end",className:"w-[var(--radix-dropdown-menu-trigger-width)] max-w-[calc(100vw-1rem)]",children:MK.map(r=>o.jsx(La,{onSelect:()=>e(r),className:"min-h-10",children:s(`apiKeys.ccswitch.${r}`)},r))})]})}function Qhs({apiKey:e,baseUrl:t,onImportWithKey:n}){const{t:a}=W(),s=uhs(Js(e)),r=`${$j(e)}...${wj(e)}`,i=s.data?.fullKey??null,c=i??dx;return o.jsxs(o.Fragment,{children:[o.jsx(Xh,{children:o.jsxs("div",{className:"flex min-w-0 flex-col gap-3 pr-8 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"grid min-w-0 gap-1.5",children:[o.jsx(gu,{className:"break-words [overflow-wrap:anywhere]",children:a("apiKeys.useTitle")}),o.jsx(hu,{className:"break-words [overflow-wrap:anywhere]",children:a("apiKeys.useDescription")})]}),o.jsx(Tj,{onImport:d=>{n(d,e,c)}})]})}),o.jsxs("div",{className:"grid gap-4",children:[o.jsxs("div",{className:"min-w-0 rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/35 p-3 text-sm",children:[o.jsxs("div",{className:"break-words font-medium [overflow-wrap:anywhere]",children:[e.name," · ",r]}),s.isLoading?o.jsx("p",{className:"mt-1 text-[color:var(--muted-foreground)]",children:a("apiKeys.use.revealing",{defaultValue:"Decrypting keyâ¦"})}):i?null:o.jsx("p",{className:"mt-1 break-words text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:a("apiKeys.use.fullKeyUnavailable",{defaultValue:"This key can no longer be shown. Use the value you saved, or create a new key."})})]}),i?o.jsx(xd,{label:a("apiKeys.copyApiKey"),value:i}):o.jsx(xd,{label:a("apiKeys.use.keyHint",{defaultValue:"API key"}),value:r}),o.jsx(xd,{label:a("apiKeys.use.baseUrl"),value:t}),o.jsx(xd,{label:a("apiKeys.use.authorization"),value:`Authorization: Bearer ${c}`}),o.jsx(xd,{label:a("apiKeys.use.env"),value:`export ONEHOP_API_KEY="${c}"`}),o.jsx(xd,{label:a("apiKeys.use.curl"),value:EK(t,c),multiline:!0})]})]})}function xd({label:e,value:t,multiline:n=!1}){return n?o.jsxs("div",{className:"grid min-w-0 gap-1.5","data-clarity-mask":"true",children:[o.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[o.jsx("span",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:e}),o.jsx(py,{value:t})]}),o.jsx("code",{className:"block max-w-full overflow-x-auto whitespace-pre rounded-md bg-[color:var(--muted)] p-3 text-xs",children:t})]}):o.jsxs("div",{className:"grid min-w-0 gap-1.5","data-clarity-mask":"true",children:[o.jsx("span",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:e}),o.jsx(xj,{value:t,mono:!0})]})}function Xhs({name:e,fullKey:t,baseUrl:n,testModel:a,onImport:s,onDone:r}){const{t:i}=W();return o.jsxs("div",{className:"flex h-full flex-col",children:[o.jsxs(Pa,{className:"shrink-0 border-b border-[color:var(--border)] px-4 py-4 sm:px-5",children:[o.jsxs(Rn,{className:"flex min-w-0 items-center gap-2 break-words [overflow-wrap:anywhere]",children:[o.jsx("span",{className:"grid size-6 place-items-center rounded-full bg-[color:var(--success)]/15 text-[color:var(--success)]",children:o.jsx(cy,{className:"size-4"})}),i("apiKeys.created.title",{defaultValue:"API key created"})]}),o.jsx(ua,{className:"break-words [overflow-wrap:anywhere]",children:i("apiKeys.created.subtitle",{name:e,defaultValue:"{{name}} is ready â connect it now."})})]}),o.jsxs("div",{className:"flex-1 space-y-5 overflow-y-auto px-4 py-4 sm:px-5",children:[o.jsxs("div",{className:"grid min-w-0 gap-1.5","data-clarity-mask":"true",children:[o.jsx("span",{className:"text-sm font-medium",children:i("apiKeys.copyApiKey")}),o.jsx(xj,{value:t,mono:!0,autoFocus:!0}),o.jsx("span",{className:"break-words text-xs text-[color:var(--warning-foreground)] [overflow-wrap:anywhere]",children:i("apiKeys.created.onceWarning",{defaultValue:"Shown once. You can re-reveal it later, but copy it now to be safe."})})]}),o.jsxs("div",{className:"grid gap-1.5",children:[o.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-[color:var(--muted-foreground)]",children:i("apiKeys.created.connect",{defaultValue:"Connect"})}),o.jsx("div",{children:o.jsx(Tj,{onImport:s})})]}),o.jsx(xd,{label:i("apiKeys.use.curl"),value:EK(n,t,a),multiline:!0}),o.jsxs("div",{className:"grid gap-1.5",children:[o.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-[color:var(--muted-foreground)]",children:i("apiKeys.use.protocolEndpoints",{defaultValue:"Protocol endpoints"})}),o.jsx("ul",{className:"grid gap-1 text-13",children:Object.entries(X$.reduce((c,d)=>{const m=Wd[d].baseUrlSegment;return(c[m]??(c[m]=[])).push(Wd[d].label),c},{})).map(([c,d])=>o.jsxs("li",{className:"grid gap-1 sm:flex sm:flex-wrap sm:items-baseline sm:justify-between sm:gap-2",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:d.join(" · ")}
904),o.jsx("code",{className:"break-all font-[family-name:var(--font-mono)] text-xs",children:`${DK()}/${c}`})]},c))})]})]}),o.jsx("div",{className:"grid shrink-0 border-t border-[color:var(--border)] bg-[color:var(--card)] px-4 py-4 sm:flex sm:justify-end sm:px-5",children:o.jsx(K,{type:"button",onClick:r,className:"min-w-0",children:i("apiKeys.created.done",{defaultValue:"Done"})})})]})}function Zhs({app:e,keyName:t,allowedModels:n,onAdjust:a,onForceImport:s,onClose:r}){const{t:i}=W(),c=i(`apiKeys.ccswitch.${e}`);return o.jsx(Up,{open:!0,onOpenChange:d=>{d||r()},children:o.jsxs(fu,{className:"max-w-md",children:[o.jsxs(Xh,{children:[o.jsx(gu,{className:"break-words [overflow-wrap:anywhere]",children:i("apiKeys.ccswitch.blocked.title",{client:c,defaultValue:`${c} cannot use this key`})}),o.jsx(hu,{className:"break-words [overflow-wrap:anywhere]",children:i("apiKeys.ccswitch.blocked.body",{keyName:t,client:c,defaultValue:`"${t}" only allows models that ${c} cannot use. Importing will result in errors.`})})]}),n.length>0?o.jsx("div",{className:"flex min-w-0 flex-wrap gap-1.5",children:n.map(d=>o.jsx(Xt,{variant:"secondary",className:"max-w-full break-all font-[family-name:var(--font-mono)] text-xs leading-snug",children:d},d))}):null,o.jsxs("div",{className:"grid gap-2 pt-1 sm:flex sm:items-center sm:justify-between",children:[o.jsx(K,{variant:"ghost",size:"sm",onClick:s,className:"justify-center text-[color:var(--muted-foreground)]",children:i("apiKeys.ccswitch.blocked.forceImport",{defaultValue:"Import anyway (will not work)"})}),o.jsxs("div",{className:"grid gap-2 sm:flex",children:[o.jsx(K,{variant:"outline",size:"sm",onClick:r,children:i("apiKeys.cancel")}),o.jsx(K,{size:"sm",onClick:a,children:i("apiKeys.ccswitch.blocked.adjust",{defaultValue:"Adjust model scope"})})]})]})]})})}function hL(e){return e.includes("/")?e.split("/").slice(1).join("/"):e}function Jhs({app:e,plan:t,keyName:n,onConfirm:a,onAdjust:s,onClose:r}){const{t:i}=W(),c=i(`apiKeys.ccswitch.${e}`),d=hL(t.model),m=e==="claude"&&(t.haikuModel!==t.sonnetModel||t.sonnetModel!==t.opusModel);return o.jsx(Up,{open:!0,onOpenChange:f=>{f||r()},children:o.jsxs(fu,{className:"max-w-md",children:[o.jsxs(Xh,{children:[o.jsx(gu,{className:"break-words [overflow-wrap:anywhere]",children:i("apiKeys.ccswitch.pin.title",{model:d,client:c,defaultValue:`Import as ${d}`})}),o.jsx(hu,{className:"break-words [overflow-wrap:anywhere]",children:i("apiKeys.ccswitch.pin.body",{keyName:n,client:c,model:d,defaultValue:`"${n}" doesn't include ${c}'s default model. Claude Code will use the models below when routing through this provider.`})})]}),m?o.jsx(Ee,{className:"overflow-hidden text-sm divide-y divide-[color:var(--border)]",children:[{label:"Haiku",id:t.haikuModel},{label:"Sonnet",id:t.sonnetModel},{label:"Opus",id:t.opusModel}].map(({label:f,id:p})=>o.jsxs("div",{className:"grid grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:f}),o.jsx("code",{className:"min-w-0 break-all text-right font-[family-name:var(--font-mono)] text-xs",children:hL(p)})]},f))}):null,o.jsxs("div",{className:"grid gap-2 pt-1 sm:flex sm:justify-end",children:[o.jsx(K,{variant:"outline",size:"sm",onClick:s,children:i("apiKeys.ccswitch.pin.adjust",{defaultValue:"Adjust model scope"})}),o.jsx(K,{size:"sm",onClick:a,children:i("apiKeys.ccswitch.pin.confirm",{model:d,defaultValue:`Import with ${d}`})})]})]})})}function eys(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{return}}async function tys(e){const t=new URLSearchParams;for(const[f,p]of Object.entries(e))p&&t.set(f,p);const n=eys();n&&t.set("tz",n);const a=`${sj()}/console/usage-records/export?${t.toString()}`,s=await fetch(a,{credentials:"include",headers:{Accept:"text/csv"}});if(!s.ok)throw new Error(`Export failed (${s.status})`);const r=s.headers.get("X-Export-Truncated")==="1",i=Number(s.headers.get("X-Export-Count")??0),c=await s.blob(),d=URL.createObjectURL(c),m=document.createElement("a");return m.href=d,m.download=`onehop-logs-${new Date().toISOString().slice(0,10)}.csv`,m.click(),URL.revokeObjectURL(d),{truncated:r,count:i}}function nys(e={}){const t=UK(e);return Ue({queryKey:Ht.usageRecords(t),queryFn:()=>Ye.request(`/console/usage-records${$r(t)}`),retry:1})}function ays(){return Ue({queryKey:Ht.usageRecordModels,queryFn:()=>Ye.request("/console/usage-records/models"),retry:1})}function OK(e={},t={}){const n=UK(e);return Ue({queryKey:Ht.usageRecordsSummary(n),queryFn:()=>Ye.request(`/console/usage-records/summary${$r(n)}`),retry:1,enabled:t.enabled??!0})}function LK(e,t="/console/usage-records"){return Ue({queryKey:["usage-records","detail",t,e],queryFn:()=>Ye.request(`${t}/${e}`),enabled:!!e,retry:1,refetchInterval:n=>{const a=n.state.data?.status;return a==="queued"||a==="running"?2e3:!1}})}function Kw(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{return}}function UK(e){const t=Kw();return t?{...e,tz:t}:e}function BK(e=30){const t=Kw();return Ue({queryKey:Ht.usageTrends(e),queryFn:()=>Ye.request(`/console/usage-records/trends?days=${e}${t?`&tz=${encodeURIComponent(t)}`:""}`),retry:1})}function kS(e){const t={groupBy:e.groupBy}
904;e.metric&&(t.metric=e.metric),e.granularity&&(t.granularity=e.granularity),e.startDate&&(t.startDate=e.startDate),e.endDate&&(t.endDate=e.endDate);const n=Kw();return n&&(t.tz=n),Ue({queryKey:["console","usage-records","stacked",t],queryFn:()=>Ye.request(`/console/usage-records/stacked${$r(t)}`),retry:1,staleTime:6e4})}function oys(e={}){const t={};e.startDate&&(t.startDate=e.startDate),e.endDate&&(t.endDate=e.endDate),e.granularity&&(t.granularity=e.granularity),e.days&&(t.days=e.days);const n=Kw();return n&&(t.tz=n),Ue({queryKey:["console","usage","dashboard",t],queryFn:()=>Ye.request(`/console/usage/dashboard${$r(t)}`),retry:1,staleTime:3e4})}function Ze({label:e,icon:t,value:n,options:a,onChange:s}){const{t:r}=W();return o.jsx(ca,{fieldClassName:Qo,label:t?o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[t,e]}):e,"aria-label":e,value:n,onChange:i=>s(i.target.value),children:a.map(i=>{const c=i.icon?i.label:r(`optionLabels.${i.value||"all"}`,{defaultValue:i.label});return o.jsx("option",{value:i.value,children:i.icon?o.jsxs("span",{className:"flex items-center gap-2",children:[i.icon,c]}):c},i.value||"all")})})}function sys(e){const t=e.indexOf("/");return t>0?e.slice(0,t):e}const yL=["last1h","today","yesterday","last7d","last30d","thisMonth","custom","all"],rys=["","chat","image","video"],iys=["","success","failed","pending","repairing","queued","running","cancelled","expired"],lys=["","stop","length","tool_calls","content_filter","error"],cys=["","true","false"];function dys(e){const{t}=W(),n=t("logs.filter.all",{defaultValue:"All"}),a=!!(e.apiKey||e.models.length>0||e.status||e.secondary.type||e.secondary.finishReason||e.secondary.stream||e.secondary.costMin||e.secondary.costMax||e.secondary.latencyMin||e.secondary.latencyMax),s=[{value:"",label:n},...e.apiKeyOptions],r=iys.map(m=>({value:m,label:m?t(`logs.status.${m}`,{defaultValue:m}):n})),i=rys.map(m=>({value:m,label:m?t(`logs.type.${m}`,{defaultValue:{chat:"Chat",image:"Image",video:"Video"}[m]??m}):n})),c=lys.map(m=>({value:m,label:m?t(`logs.finishReason.${m}`,{defaultValue:m}):n})),d=cys.map(m=>({value:m,label:m?t(`logs.stream.${m}`,{defaultValue:m==="true"?"Streaming":"Non-streaming"}):n}));return o.jsxs("div",{className:"grid gap-3 rounded-md border border-[color:var(--border)] bg-[color:var(--background)] p-2 md:p-3",children:[o.jsxs("div",{className:"grid gap-2 md:hidden",children:[o.jsxs("div",{className:"grid grid-cols-1 gap-2 min-[360px]:grid-cols-[minmax(0,0.95fr)_minmax(0,1.05fr)]",children:[o.jsxs("label",{className:X(Qo,"min-w-0 gap-1 text-xs"),children:[o.jsx("span",{className:"sr-only",children:t("logs.filter.time",{defaultValue:"Time"})}),o.jsx(uh,{value:e.dateRange,onChange:e.onDateRangeChange,presets:yL,defaultPreset:"last1h",locale:e.locale,triggerAriaLabel:t("logs.filter.mobileDateRangeAria",{defaultValue:"Select mobile date range"}),labels:fh(t,{last1h:t("logs.range.last1h",{defaultValue:"Last 1 hour"}),today:t("logs.range.today",{defaultValue:"Today"}),yesterday:t("logs.range.yesterday",{defaultValue:"Yesterday"}),last7d:t("logs.range.last7d",{defaultValue:"Last 7 days"}),last30d:t("logs.range.last30d",{defaultValue:"Last 30 days"}),thisMonth:t("logs.range.thisMonth",{defaultValue:"This month"}),custom:t("logs.range.custom",{defaultValue:"Custom"}),all:t("logs.range.all",{defaultValue:"All time"})})})]}),o.jsxs("label",{className:X(Qo,"min-w-0 gap-1 text-xs"),children:[o.jsx("span",{className:"sr-only",children:t("logs.filter.requestIdLabel",{defaultValue:"Request ID"})}),o.jsx(ge,{type:"text",value:e.requestId,onChange:m=>e.onRequestIdChange(m.target.value),placeholder:t("logs.filter.requestIdLabel",{defaultValue:"Request ID"}),startIcon:o.jsx(hp,{className:"size-3.5"}),className:"font-mono text-xs"})]})]}),o.jsxs(Gp,{label:t("logs.filter.mobileTitle",{defaultValue:"Filters"}),active:a,open:e.expanded,onOpenChange:e.onExpandedChange,children:[o.jsx(Ze,{label:t("logs.filter.apiKey",{defaultValue:"API key"}),value:e.apiKey,options:s,onChange:e.onApiKeyChange}),o.jsx(vL,{value:e.models,options:e.modelOptions,onChange:e.onModelsChange}),o.jsx(Ze,{label:t("logs.filter.status",{defaultValue:"Status"}),value:e.status,options:r,onChange:e.onStatusChange}),o.jsx(Ze,{label:t("logs.filter.type",{defaultValue:"Type"}),value:e.secondary.type,options:i,onChange:m=>e.onSecondaryChange({type:m})}),o.jsx(Ze,{label:t("logs.filter.finishReason",{defaultValue:"Finish reason"}),value:e.secondary.finishReason,options:c,onChange:m=>e.onSecondaryChange({finishReason:m})}),o.jsx(Ze,{label:t("logs.filter.stream",{defaultValue:"Stream"}),value:e.secondary.stream,options:d,onChange:m=>
904e.onSecondaryChange({stream:m})}),o.jsx(vb,{label:t("logs.filter.cost",{defaultValue:"Cost (USD)"}),min:e.secondary.costMin,max:e.secondary.costMax,step:"0.0001",onMin:m=>e.onSecondaryChange({costMin:m}),onMax:m=>e.onSecondaryChange({costMax:m})}),o.jsx(vb,{label:t("logs.filter.latency",{defaultValue:"Latency (s)"}),min:e.secondary.latencyMin,max:e.secondary.latencyMax,step:"0.1",onMin:m=>e.onSecondaryChange({latencyMin:m}),onMax:m=>e.onSecondaryChange({latencyMax:m})}),o.jsxs("div",{className:"grid min-w-0 grid-cols-1 gap-2 min-[360px]:flex min-[360px]:flex-wrap min-[360px]:justify-end [&>*]:min-w-0",children:[e.reset,e.columnSettings,e.exportAction]})]})]}),o.jsxs("div",{className:"hidden gap-3 md:grid md:grid-cols-2 xl:flex xl:flex-wrap xl:items-end",children:[o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:t("logs.filter.time",{defaultValue:"Time"})}),o.jsx(uh,{value:e.dateRange,onChange:e.onDateRangeChange,presets:yL,defaultPreset:"last1h",locale:e.locale,triggerAriaLabel:t("logs.filter.desktopDateRangeAria",{defaultValue:"Select desktop date range"}),labels:fh(t,{last1h:t("logs.range.last1h",{defaultValue:"Last 1 hour"}),today:t("logs.range.today",{defaultValue:"Today"}),yesterday:t("logs.range.yesterday",{defaultValue:"Yesterday"}),last7d:t("logs.range.last7d",{defaultValue:"Last 7 days"}),last30d:t("logs.range.last30d",{defaultValue:"Last 30 days"}),thisMonth:t("logs.range.thisMonth",{defaultValue:"This month"}),custom:t("logs.range.custom",{defaultValue:"Custom"}),all:t("logs.range.all",{defaultValue:"All time"})})})]}),o.jsx("div",{className:"min-w-0 xl:min-w-[170px] xl:flex-1",children:o.jsx(Ze,{label:t("logs.filter.apiKey",{defaultValue:"API key"}),value:e.apiKey,options:s,onChange:e.onApiKeyChange})}),o.jsx("div",{className:"min-w-0 xl:min-w-[170px] xl:flex-1",children:o.jsx(vL,{value:e.models,options:e.modelOptions,onChange:e.onModelsChange})}),o.jsx("div",{className:"min-w-0 xl:w-[120px]",children:o.jsx(Ze,{label:t("logs.filter.status",{defaultValue:"Status"}),value:e.status,options:r,onChange:e.onStatusChange})}),o.jsx("div",{className:"min-w-0 xl:w-[120px]",children:o.jsx(Ze,{label:t("logs.filter.type",{defaultValue:"Type"}),value:e.secondary.type,options:i,onChange:m=>e.onSecondaryChange({type:m})})}),o.jsx("div",{className:"min-w-0 xl:w-[148px]",children:o.jsx(Ze,{label:t("logs.filter.finishReason",{defaultValue:"Finish reason"}),value:e.secondary.finishReason,options:c,onChange:m=>e.onSecondaryChange({finishReason:m})})}),o.jsx("div",{className:"min-w-0 xl:w-[120px]",children:o.jsx(Ze,{label:t("logs.filter.stream",{defaultValue:"Stream"}),value:e.secondary.stream,options:d,onChange:m=>e.onSecondaryChange({stream:m})})}),o.jsxs("label",{className:X(Qo,"min-w-0 xl:min-w-[200px] xl:flex-1"),children:[o.jsx("span",{children:t("logs.filter.requestIdLabel",{defaultValue:"Request ID"})}),o.jsx(ge,{type:"text",value:e.requestId,onChange:m=>e.onRequestIdChange(m.target.value),placeholder:t("logs.filter.request",{defaultValue:"Search by request ID"}),startIcon:o.jsx(hp,{className:"size-3.5"}),className:"font-mono text-xs"})]}),o.jsxs("div",{className:"flex min-w-0 flex-wrap items-end gap-2 md:col-span-2 xl:col-span-1 xl:flex-nowrap",children:[e.reset,o.jsxs(K,{type:"button",variant:"outline",size:"sm",className:"h-10 gap-1.5 px-3","aria-expanded":e.expanded,onClick:()=>e.onExpandedChange(!e.expanded),children:[t("logs.filter.more",{defaultValue:"More filters"}),o.jsx(zc,{className:X("size-3.5 transition-transform",e.expanded&&"rotate-180")})]}),e.columnSettings,e.exportAction]})]}),e.expanded?o.jsxs("div",{className:"hidden gap-3 border-t border-[color:var(--border)] pt-3 md:grid md:grid-cols-2",children:[o.jsx(vb,{label:t("logs.filter.cost",{defaultValue:"Cost (USD)"}),min:e.secondary.costMin,max:e.secondary.costMax,step:"0.0001",onMin:m=>e.onSecondaryChange({costMin:m}),onMax:m=>e.onSecondaryChange({costMax:m})}),o.jsx(vb,{label:t("logs.filter.latency",{defaultValue:"Latency (s)"}),min:e.secondary.latencyMin,max:e.secondary.latencyMax,step:"0.1",onMin:m=>e.onSecondaryChange({latencyMin:m}),onMax:m=>e.onSecondaryChange({latencyMax:m})})]}):null]})}function vL({value:e,options:t,onChange:n}){const{t:a}=W(),s=a("logs.filter.model",{defaultValue:"Model"}),r=a("logs.filter.all",{defaultValue:"All"});return o.jsxs("div",{className:Qo,children:[o.jsx("span",{children:s}
904),o.jsx(ly,{"aria-label":s,value:e,onChange:n,allLabel:r,placeholder:r,className:"h-10",options:t.map(i=>({value:i,label:o.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsx(Xo,{authorSlug:sys(i),size:16,className:"shrink-0 text-[color:var(--muted-foreground)]"}),o.jsx("span",{className:"truncate",children:i})]})})),triggerLabel:i=>i.length===0?r:i.length===1?i[0]:a("logs.filter.modelsSelected",{count:i.length,defaultValue:"{{count}} selected"})})]})}function vb({label:e,min:t,max:n,step:a,onMin:s,onMax:r}){const{t:i}=W();return o.jsxs("div",{className:Qo,children:[o.jsx("span",{children:e}),o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(ge,{type:"number",inputMode:"decimal",step:a,min:"0",value:t,onChange:c=>s(c.target.value),placeholder:i("logs.filter.min",{defaultValue:"Min"}),className:"min-w-0 px-2 text-xs tabular-nums"}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"}),o.jsx(ge,{type:"number",inputMode:"decimal",step:a,min:"0",value:n,onChange:c=>r(c.target.value),placeholder:i("logs.filter.max",{defaultValue:"Max"}),className:"min-w-0 px-2 text-xs tabular-nums"})]})]})}function FK(){const e=Re();return ke({mutationFn:t=>Ye.request(`/console/jobs/${t}`,{method:"DELETE",idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["console","usage-records"]})}})}function uys({title:e,message:t,content:n,confirmText:a="Confirm",cancelText:s="Cancel",variant:r="default",resolve:i}){const[c,d]=h.useState(!0);h.useEffect(()=>{c||i(!1)},[c]);function m(){i(!0),d(!1)}return o.jsx(Cw,{open:c,onOpenChange:d,children:o.jsxs(ay,{className:"max-h-[calc(100dvh-1rem)] pb-[calc(1rem+env(safe-area-inset-bottom))]",children:[o.jsxs(Sw,{children:[e?o.jsx(oy,{children:e}):null,o.jsx(sy,{className:"break-words leading-relaxed",children:t})]}),n,o.jsxs(Aw,{className:"gap-2 sm:gap-2",children:[o.jsx(ry,{className:"mt-0 w-full sm:w-auto",children:s}),o.jsx(z_,{onClick:m,className:X("w-full sm:w-auto",r==="destructive"&&ur({variant:"destructive"})),children:a})]})]})})}let xm=null,Vx=null;function mys(){return xm||(xm=document.createElement("div"),xm.id="confirm-dialog-host",document.body.appendChild(xm)),Vx||(Vx=H8.createRoot(xm)),xm}function zt(e){const t=typeof e=="string"?{message:e}:e;return new Promise(n=>{mys();function a(s){n(s),setTimeout(()=>{Vx?.render(null)},200)}Vx.render(o.jsx(uys,{...t,resolve:a}))})}function pys(e){return e.onehopRequestId??e.publicId}function fys(e,t){const n=e.replace(/\/v1\/?$/,"").replace(/\/+$/,""),a=(t.endpointPath||"/v1/chat/completions").replace(/^\/+/,"");return`curl ${n}/${a} \\ 905 -H "Authorization: Bearer $ONEHOP_API_KEY" \\ 906 -H "Content-Type: application/json" \\ 907 -d '{"model":"${t.requestedModel}","messages":[{"role":"user","content":"Hello"}]}'`}function bL(e,t,n){try{navigator.clipboard.writeText(e).then(()=>ie.success(t)).catch(()=>ie.error(n))}catch{ie.error(n)}}function zK({record:e}){const{t}=W(),n=FK(),a=pys(e);async function s(){if(!(!e.jobPublicId||!await zt({title:t("logs.cancelJob.title",{defaultValue:"Cancel job?"}),message:t("logs.cancelJob.message",{defaultValue:"This job is still queued. Cancelling stops it from being processed; no charge will be applied."}),confirmText:t("logs.cancelJob.confirm",{defaultValue:"Cancel job"}),cancelText:t("logs.cancelJob.keep",{defaultValue:"Keep"}),variant:"destructive"})))try{await n.mutateAsync(e.jobPublicId),ie.success(t("logs.cancelJob.success",{defaultValue:"Job cancelled"}))}catch(i){ie.error(i instanceof Error?i.message:t("logs.cancelJob.failed",{defaultValue:"Failed to cancel job"}))}}return o.jsxs(zp,{children:[o.jsx(qp,{asChild:!0,children:o.jsx(Aa,{type:"button","aria-label":t("logs.actions.menu",{defaultValue:"Row actions"}),onClick:r=>r.stopPropagation(),children:o.jsx(w9,{className:"size-4","aria-hidden":!0})})}),o.jsxs(xu,{align:"end",onClick:r=>r.stopPropagation(),children:[o.jsxs(La,{onSelect:()=>bL(a,t("logs.actions.copiedId",{defaultValue:"Request ID copied"}),t("logs.actions.copyFailed",{defaultValue:"Copy failed"})),children:[o.jsx(Ow,{className:"size-3.5","aria-hidden":!0}),t("logs.actions.copyId",{defaultValue:"Copy request ID"})]}),o.jsxs(La,{onSelect:()=>bL(fys(Aj(),e),t("logs.actions.copiedCurl",{defaultValue:"curl copied"}),t("logs.actions.copyFailed",{defaultValue:"Copy failed"})),children:[o.jsx(txe,{className:"size-3.5","aria-hidden":!0}),t("logs.actions.copyCurl",{defaultValue:"Copy as curl"})]}),o.jsxs(La,{onSelect:()=>window.open(`/platform/logs?reqId=${encodeURIComponent(a)}`,"_blank","noopener"),children:[o.jsx(dy,{className:"size-3.5","aria-hidden":!0}),t("logs.actions.openTab",{defaultValue:"Open in new tab"})]}),e.cancellable&&e.jobPublicId?o.jsxs(o.Fragment,{children:[o.jsx(eH,{}
907),o.jsxs(La,{className:"text-[color:var(--destructive)] focus:text-[color:var(--destructive)]",disabled:n.isPending,onSelect:r=>{r.preventDefault(),s()},children:[o.jsx(h9,{className:"size-3.5","aria-hidden":!0}),t("logs.cancelJob.confirm",{defaultValue:"Cancel job"})]})]}):null]})]})}const gys={text_input:"textInput",text_output:"textOutput",image_input_token:"imageInput",image_output_token:"imageOutput",per_call_image:"perCallImage",video_per_second:"videoPerSecond",video_per_call:"videoPerCall",cache_read:"cacheRead",cache_write:"cacheWrite",cache_write_5m:"cacheWrite5m",cache_write_1h:"cacheWrite1h"};function qK(e){return gys[e]??null}const hys={per_1m_tokens:"per1mTokens",per_image:"perImage",per_second:"perSecond",per_call:"perCall"};function HK(e){return hys[e]??null}function yys(e){const t=e?.trim().toLowerCase();return t==="priority"||t==="fast"?"fast":t==="flex"?"flex":null}const VK=1e-9;function KK(e,t){if(!e.length||!e.every(r=>r.officialLineCostUsd!=null&&r.officialLineCostUsd!==""))return null;const n=e.reduce((r,i)=>r+Number(i.officialLineCostUsd),0),a=Number(t);if(!Number.isFinite(n)||!Number.isFinite(a)||n<=0)return null;const s=n-a;return s<=VK?null:{officialTotal:n,saved:s,pct:s/n}}function vys(e){if(!e||e.length===0)return null;const t=e[0],n=e[e.length-1],a=Number(t.basisUsd),s=Number(n.resultUsd);if(!Number.isFinite(a)||!Number.isFinite(s)||a<=0)return null;const r=e.reduce((i,c)=>i+Math.abs(Number(c.deltaUsd)||0),0);return r<=VK?null:{rawBilled:a,saved:r,finalBilled:s,pct:r/a}}function GK(e,t){const n=yys(t);return n?e(`logs.serviceTier.${n}`,{defaultValue:n==="fast"?"Fast":"Flex"}):null}function Gw({serviceTier:e,className:t}){const{t:n}=W(),a=GK(n,e);return a?o.jsx("span",{className:X("inline-flex h-5 shrink-0 items-center rounded-sm border border-[color:var(--border)] bg-[color:var(--muted)]/50 px-1.5 text-2xs font-medium leading-none text-[color:var(--foreground)]",t),children:a}):null}const Ss=(e,t=4)=>{if(e==null||e==="")return"â";const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?`$${n.toFixed(t)}`:"â"};function Pg(e){if(e==null||e==="")return!1;const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)&&t>0}function IR({record:e}){const{t}=W(),n=e.pricingFactors;if(n?.length){const a=KK(n,e.billedCredit),s=vys(e.pricingAdjustments);return o.jsxs("div",{className:"text-xs tabular-nums",children:[n.map((r,i)=>o.jsx(bys,{line:r,t},`${r.factor}-${i}`)),a?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"my-1.5 border-t border-[color:var(--border)]/40"}),o.jsx(Xs,{label:t("logs.userCost.officialPrice",{defaultValue:"Official price"}),value:Ss(a.officialTotal,6),dim:!0}),o.jsx(Xs,{label:t("logs.userCost.saved",{defaultValue:"You save"}),value:`${Ss(a.saved,6)} (${Math.round(a.pct*100)}%)`})]}
907):null,s?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"my-1.5 border-t border-[color:var(--border)]/40"}),o.jsx(Xs,{label:t("logs.userCost.promoBasis",{defaultValue:"Before promo"}),value:Ss(s.rawBilled,6),dim:!0}),o.jsx(Xs,{label:t("logs.userCost.promoSaved",{defaultValue:"Promo savings"}),value:`-${Ss(s.saved,6)} (${Math.round(s.pct*100)}%)`})]}):null,o.jsx(xL,{record:e,t}),o.jsx(Xs,{label:t("logs.userCost.total"),value:Ss(e.billedCredit,6),final:!0})]})}return o.jsxs("div",{className:"text-xs tabular-nums",children:[Pg(e.inputCostUsd)?o.jsx(Xs,{label:t("logs.userCost.inputCost"),value:Ss(e.inputCostUsd,6)}):null,Pg(e.outputCostUsd)?o.jsx(Xs,{label:t("logs.userCost.outputCost"),value:Ss(e.outputCostUsd,6)}):null,Pg(e.cacheReadCostUsd)?o.jsx(Xs,{label:t("logs.userCost.cacheReadCost"),value:Ss(e.cacheReadCostUsd,6)}):null,Pg(e.cacheWriteCostUsd)?o.jsx(Xs,{label:t("logs.userCost.cacheWriteCost"),value:Ss(e.cacheWriteCostUsd,6)}):null,o.jsx(xL,{record:e,t}),o.jsx(Xs,{label:t("logs.userCost.total"),value:Ss(e.billedCredit,6),final:!0})]})}function xL({record:e,t}){if(!Pg(e.freeDiscountUsd))return null;const n=Number(e.freeTokensConsumed??0),a=n>0?t("logs.userCost.freeCovered",{tokens:n,defaultValue:"Free allowance ({{tokens}} tokens)"}):t("logs.userCost.freeCoveredNoCount",{defaultValue:"Free allowance"});return o.jsx(Xs,{label:a,value:`-${Ss(e.freeDiscountUsd,6)}`})}function bys({line:e,t}){const n=qK(e.factor),a=n?t(`logs.userCost.factor.${n}`,{defaultValue:e.factor}):e.factor,s=HK(e.unit),r=s?t(`logs.userCost.unit.${s}`,{defaultValue:e.unit}):e.unit;return o.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-baseline gap-2 py-1",children:[o.jsxs("span",{className:"min-w-0 break-words text-[color:var(--foreground)]",children:[a,o.jsx(Gw,{serviceTier:e.tierKey,className:"ml-1.5"}),o.jsxs("span",{className:"ml-1.5 text-[color:var(--muted-foreground)]",children:["$",e.unitPriceUsd," ",r]})]}),o.jsx("span",{className:"whitespace-nowrap text-[color:var(--foreground)]",children:Ss(e.lineCostUsd,6)})]})}function Xs({label:e,value:t,dim:n=!1,final:a=!1}){return o.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-baseline gap-2 py-1 "+(a?"mt-1 border-t border-[color:var(--border)] pt-2 font-medium":""),children:[o.jsx("span",{className:(n?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]")+" min-w-0 break-words",children:e}),o.jsx("span",{className:(n?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]")+" whitespace-nowrap",children:t})]})}function Ia({label:e,value:t,muted:n=!1,divider:a=!1,bold:s=!1}){return o.jsxs("div",{className:"flex items-baseline justify-between gap-6 py-1 text-xs "+(a?"mt-1 border-t border-[color:var(--border)] pt-2":""),children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:"tabular-nums "+(n?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]")+(s?" font-medium":""),children:t})]})}function Rc({children:e}){return o.jsx("div",{className:"mb-1 text-11 font-medium uppercase tracking-wide text-[color:var(--muted-foreground)]",children:e})}function Wr(e){if(e==null||e==="")return"$0.000000";const t=typeof e=="number"?e:Number(e);if(!Number.isFinite(t))return"â";if(t===0)return"$0.000000";const n=Math.abs(t),a=t<0?"-$":"$";return n<.01?`${a}${n.toFixed(6)}`:n<1?`${a}${n.toFixed(4)}`:`${a}${n.toFixed(2)}`}function WK({record:e}){const{t}=W(),n=Number(e.billedCredit??0);return Number(e.freeDiscountUsd??0)>0&&n===0?o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsx(Xt,{variant:"secondary",className:"cursor-help",children:t("logs.cost.free",{defaultValue:"Free"})})}),o.jsxs(ns,{className:"min-w-[300px]",children:[o.jsx(Rc,{children:t("logs.costBreakdown.title")}),o.jsx(IR,{record:e})]})]}):n===0?o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:Wr(0)}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsx("span",{className:"cursor-help tabular-nums",children:Wr(e.billedCredit)})}),o.jsxs(ns,{className:"min-w-[300px]",children:[o.jsx(Rc,{children:t("logs.costBreakdown.title")}),o.jsx(IR,{record:e})]})]})}function YK({thumbSrc:e,fullSrc:t,fallback:n,className:a,loading:s}){const r=e&&e!==t?[e,t]:[t],[i,c]=h.useState(0);return i>=r.length?o.jsx(o.Fragment,{children:n}):o.jsx("img",{src:r[i],alt:"",onError:()=>c(d=>d+1),className:a,loading:s})}function Kx(e){try{const t=new URL(e),n=t.protocol==="http:"&&(t.hostname==="localhost"||t.hostname==="127.0.0.1");return!(t.protocol!=="https:"&&!n||/\.svg(\?|$)/i.test(t.pathname))}catch{return!1}}function QK(e){return e.operation==="video_generation"||e.operation==="generate_videos"?!0:e.mediaType==="video"||(e.mediaType?.startsWith("video/")??
907!1)}function xys(e){const t=e.imageCount??1,n=e.imageSize??"",a=t>1?`${t} images`:"1 image";return n?`${a} · ${n}`:a}function $ys({record:e,detailPath:t}){const{t:n}=W(),a=QK(e);return o.jsxs(Ns,{openDelay:150,closeDelay:100,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[color:var(--muted-foreground)]",children:[a?o.jsx(Fve,{className:"size-3.5"}):o.jsx(S9,{className:"size-3.5"}),o.jsx("span",{className:"text-xs",children:a?n("logs.media.video",{defaultValue:"Video"}):xys(e)})]})}),o.jsx(ns,{align:"start",className:"w-auto max-w-[380px] p-2",children:o.jsx(wys,{publicId:e.publicId,detailPath:t})})]})}function wys({publicId:e,detailPath:t}){const{t:n}=W(),a=LK(e,t);if(a.isLoading)return o.jsx("div",{className:"grid h-24 w-40 place-items-center text-xs text-[color:var(--muted-foreground)]",children:n("logs.drawer.loading")});const s=a.data,r=XK(s?.outputImageUrls,s?.outputImageThumbUrls),i=s?.outputVideoUrl&&Kx(s.outputVideoUrl)?s.outputVideoUrl:null;return i?o.jsx(kys,{src:i}):r.length>0?o.jsx("div",{className:X("grid max-h-[360px] gap-2 overflow-y-auto",r.length===1?"grid-cols-1":"grid-cols-2"),children:r.map(({src:c,thumb:d},m)=>o.jsx(YK,{thumbSrc:d,fullSrc:c,fallback:o.jsx(OR,{}),className:"max-h-[260px] w-full rounded border border-[color:var(--border)] object-contain",loading:"lazy"},`${c}-${m}`))}):o.jsx(OR,{})}function XK(e,t){return(e??[]).map((n,a)=>{const s=t?.[a];return{src:n,thumb:s&&Kx(s)?s:null}}).filter(n=>Kx(n.src))}function kys({src:e}){const[t,n]=h.useState(!1);return t?o.jsx(OR,{}):o.jsx("video",{src:e,controls:!0,onError:()=>n(!0),className:"max-h-[320px] max-w-[360px] rounded border border-[color:var(--border)]",preload:"metadata"})}function OR(){const{t:e}=W();return o.jsx("div",{className:"grid h-24 w-40 place-items-center px-3 text-center text-xs text-[color:var(--muted-foreground)]",children:e("logs.media.noPreview",{defaultValue:"No preview available"})})}function Cys(e){try{return new URL(e).pathname.includes("/console/playground/media/")}catch{return!1}}function XBs(e,t,n){if(!Cys(e))return e;const a=new URL(e);return a.searchParams.set(t,n),a.toString()}function Sys(e){const t=document.createElement("a");t.href=e,document.body.appendChild(t),t.click(),document.body.removeChild(t)}function Rj(e){const t=XK(e.outputImageUrls,e.outputImageThumbUrls),n=e.outputVideoUrl&&Kx(e.outputVideoUrl)?e.outputVideoUrl:null;return{imgs:t,video:n,hasMedia:t.length>0||!!n}}function ZK({record:e}){const{imgs:t,video:n}=Rj(e),a=e.outputImageDownloadUrls??null,s=e.outputVideoDownloadUrl??null;return o.jsxs("div",{className:"space-y-4",children:[n?o.jsxs("div",{className:"group relative min-w-0",children:[o.jsx("video",{src:n,controls:!0,className:"max-h-[52vh] w-full rounded-lg border border-[color:var(--border)] object-contain"}),s?o.jsx($L,{url:s}):null]}):null,t.length>0?o.jsx("div",{className:"grid grid-cols-1 gap-3 min-[360px]:grid-cols-2 md:grid-cols-3",children:t.map(({src:r,thumb:i},c)=>o.jsxs("div",{className:"group relative min-w-0",children:[o.jsx("a",{href:r,target:"_blank",rel:"noreferrer noopener",className:"block",children:o.jsx(YK,{thumbSrc:i,fullSrc:r,fallback:o.jsx("div",{className:"aspect-square w-full rounded-lg border border-dashed border-[color:var(--border)]"}),className:"max-h-[52vh] w-full rounded-lg border border-[color:var(--border)] object-contain"})}),a?.[c]?o.jsx($L,{url:a[c]}):null]},`${r}-${c}`))}):null]})}function $L({url:e}){const{t}=W();return o.jsx(Aa,{"aria-label":t("logs.drawer.downloadMedia",{defaultValue:"Download"}),size:"sm",variant:"soft",className:"absolute right-2 top-2 bg-[color:var(--background)]/90 opacity-0 transition-opacity group-hover:opacity-100",onClick:n=>{n.preventDefault(),Sys(e)},children:o.jsx($u,{className:"h-3.5 w-3.5"})})}function wL(e,t){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:or(e,t)}function Ays(e){return(e.cacheWrite1hTokens??0)>0?"1h":(e.cacheWrite5mTokens??0)>0?"5m":null}function JK(e){return!!(e.billingMode==="image"||(e.imageCount??0)>0||e.mediaType&&e.mediaType.startsWith("image/"))}function Pj({record:e,detailPath:t}){const{t:n}=W(),a=Te();if(JK(e)||QK(e))return o.jsx($ys,{record:e,detailPath:t});const s=e.inputTokens!=null,r=e.outputTokens!=null;if(!s&&!r)return o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"});const i=e.cacheReadTokens??0,c=(e.cacheWriteTokens??0)+(e.cacheWrite5mTokens??0)+(e.cacheWrite1hTokens??0),d=Ays(e);return o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"inline-flex max-w-full cursor-help flex-wrap items-center gap-x-2 gap-y-1 whitespace-normal tabular-nums md:flex-nowrap md:whitespace-nowrap",children:[o.jsx(bb,{icon:o.jsx(m9,{className:"size-3.5 text-emerald-500"}),value:s?a.number(e.inputTokens):"â",muted:!s}),o.jsx(bb,{icon:o.jsx(g9,{className:"size-3.5 text-violet-500"}),value:r?a.number(e.outputTokens):"â",muted:!r}),i>0?o.jsx("span",{className:"ml-1 inline-flex items-center",children:o.jsx(bb,{icon:o.jsx(Qve,{className:"size-3.5 text-sky-500"}),value:wL(i,a.locale),className:"text-sky-600 dark:text-sky-400"})}):null,c>0?o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx(bb,{icon:o.jsx(T9,{className:"size-3.5 text-amber-500"}
907),value:wL(c,a.locale),className:"text-amber-600 dark:text-amber-500"}),d?o.jsx("span",{className:"inline-flex items-center rounded px-1 py-px text-2xs font-medium leading-tight bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300",children:d}):null]}):null]})}),o.jsxs(ns,{children:[o.jsx(Rc,{children:n("logs.tokensBreakdown.title")}),o.jsx(Ia,{label:n("logs.tokensBreakdown.prompt"),value:s?a.number(e.inputTokens):"â",muted:!s}),o.jsx(Ia,{label:n("logs.tokensBreakdown.completion"),value:r?a.number(e.outputTokens):"â",muted:!r}),o.jsx(Ia,{label:n("logs.tokensBreakdown.cacheRead"),value:a.number(e.cacheReadTokens??0),muted:(e.cacheReadTokens??0)===0}),o.jsx(Ia,{label:n("logs.tokensBreakdown.cacheWrite",{defaultValue:"Cache write"}),value:a.number(e.cacheWriteTokens??0),muted:(e.cacheWriteTokens??0)===0}),o.jsx(Ia,{label:n("logs.tokensBreakdown.cacheWrite5m"),value:a.number(e.cacheWrite5mTokens??0),muted:(e.cacheWrite5mTokens??0)===0}),o.jsx(Ia,{label:n("logs.tokensBreakdown.cacheWrite1h"),value:a.number(e.cacheWrite1hTokens??0),muted:(e.cacheWrite1hTokens??0)===0}),o.jsx(Ia,{label:n("logs.tokensBreakdown.total"),value:a.number(e.totalTokens),divider:!0,bold:!0})]})]})}function bb({icon:e,value:t,muted:n=!1,className:a}){return o.jsxs("span",{className:"inline-flex items-center gap-1",children:[e,o.jsx("span",{className:(n?"text-[color:var(--muted-foreground)] ":"")+(a??"text-[color:var(--foreground)]"),children:t})]})}function LR(e){return e.clientIp??null}function kL(e){return e.finishReason??null}const _j="â";function Tys(e){const t=e.outputTokens;if(!t||t<=0)return null;const{durationMs:n,firstTokenMs:a}=e;if(n==null||!Number.isFinite(n))return null;const s=a!=null?Math.max(n-a,1):n;return s<=0?null:t/s*1e3}function Rys({record:e}){const{t}=W(),n=Tys(e);return n==null?o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:_j}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"cursor-help border-b border-dotted border-[color:var(--muted-foreground)] tabular-nums text-[color:var(--foreground)]",children:[n.toFixed(2)," ",o.jsx("span",{className:"text-11 text-[color:var(--muted-foreground)]",children:"tps"})]})}),o.jsxs(ns,{children:[o.jsx(Rc,{children:t("logs.tps.title",{defaultValue:"Throughput"})}),o.jsx(Ia,{label:t("logs.tps.output",{defaultValue:"Output tokens"}),value:String(e.outputTokens??0)}),o.jsx(Ia,{label:t("logs.tps.window",{defaultValue:"Generation window"}),value:e.firstTokenMs!=null&&e.durationMs!=null?`${Math.max(e.durationMs-e.firstTokenMs,1)} ms`:`${e.durationMs??0} ms`}),o.jsx(Ia,{label:t("logs.tps.rate",{defaultValue:"Rate"}),value:`${n.toFixed(2)} tps`,muted:!0})]})]})}function Pys({record:e}){const{t}=W(),n=Vge(e.userAgent),a=e.userAgent;return o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsx("span",{className:"inline-flex cursor-help items-center rounded border border-[color:var(--border)] bg-[color:var(--muted)]/40 px-1.5 py-0.5 text-11 text-[color:var(--foreground)]",children:n??t("logs.source.unknownShort",{defaultValue:"Unknown"})})}),o.jsxs(ns,{className:"max-w-[320px]",children:[o.jsx(Rc,{children:t("logs.source.title",{defaultValue:"Client"})}),o.jsx("p",{className:"break-all font-mono text-11 text-[color:var(--muted-foreground)]",children:a||t("logs.source.unknown",{defaultValue:"No user-agent reported"})})]})]})}function _ys({record:e}){const t=LR(e);return t?o.jsx("span",{className:"font-mono text-11 tabular-nums text-[color:var(--foreground)]",children:t}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:_j})}function jys(e){const t=e.cacheReadTokens??0,a=(e.inputTokens??0)+t;return a<=0?null:t/a*100}function Nys({record:e}){const{t}=W(),n=jys(e);return n==null?o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:_j}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"cursor-help border-b border-dotted border-[color:var(--muted-foreground)] tabular-nums text-[color:var(--foreground)]",children:[n.toFixed(1),"%"]})}),o.jsxs(ns,{children:[o.jsx(Rc,{children:t("logs.cacheHit.title",{defaultValue:"Cache hit ratio"})}),o.jsx(Ia,{label:t("logs.cacheHit.read",{defaultValue:"Cache read"}),value:String(e.cacheReadTokens??0)}),o.jsx(Ia,{label:t("logs.cacheHit.prompt",{defaultValue:"Prompt"}),value:String(e.inputTokens??0)}),o.jsx(Ia,{label:t("logs.cacheHit.ratio",{defaultValue:"Hit ratio"}),value:`${n.toFixed(1)}%`,muted:!0}
907)]})]})}function Dys({publicId:e,onClose:t}){const n=LK(e),a=n.data;return o.jsx(Vn,{open:!!e,onOpenChange:s=>{s||t()},children:o.jsxs(Nn,{side:"auto",showClose:!1,className:"w-full !p-0 md:w-[min(920px,92vw)] md:!max-w-none",children:[o.jsx(Rn,{className:"sr-only",children:"Log detail"}),n.isLoading||!a?o.jsx(Mys,{onClose:t}):o.jsx(Eys,{record:a,onClose:t})]})})}function Mys({onClose:e}){const{t}=W();return o.jsxs("div",{className:"flex w-full flex-col",children:[o.jsx(eG,{onClose:e}),o.jsx("div",{className:"flex-1 p-6 text-sm text-[color:var(--muted-foreground)]",children:t("logs.drawer.loading")})]})}function Eys({record:e,onClose:t}){const n=e.onehopRequestId??e.publicId;return o.jsxs("div",{className:"flex h-full w-full flex-col",children:[o.jsx(eG,{onClose:t,requestId:n,record:e}),o.jsxs("div",{className:"grid min-h-0 min-w-0 flex-1 overflow-y-auto md:grid-cols-[minmax(0,1fr)_360px] md:overflow-hidden",children:[o.jsx(Bys,{record:e}),o.jsx(Fys,{record:e})]})]})}function eG({onClose:e,requestId:t,record:n}){const{t:a}=W();return o.jsxs("header",{className:"grid shrink-0 grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-2 border-b border-[color:var(--border)] px-3 py-3 min-[360px]:px-4 sm:px-5",children:[o.jsx(Aa,{variant:"ghost",size:"sm",onClick:e,"aria-label":a("common.back"),className:"size-10 rounded border border-[color:var(--border)] hover:text-[color:var(--foreground)]",children:o.jsx(Iw,{className:"size-4"})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"truncate text-sm font-semibold",children:a("logs.drawer.title")}),t?o.jsx("code",{className:"mt-1 block max-w-full truncate rounded border border-[color:var(--border)] bg-[color:var(--muted)] px-2 py-0.5 font-mono text-11 text-[color:var(--muted-foreground)] min-[390px]:inline-block",children:t.length>28?`${t.slice(0,14)}â¦${t.slice(-8)}`:t}):null]}),n?.cancellable?o.jsx(Iys,{record:n}):null,t?o.jsx(py,{value:t,variant:"ghost",iconClassName:"size-4",className:"col-start-3 row-start-1 size-10 rounded border border-[color:var(--border)]"}):null,o.jsx(h7,{className:"col-start-4 row-start-1 grid size-10 place-items-center rounded border border-[color:var(--border)] text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]","aria-label":a("logs.drawer.close"),children:o.jsx(my,{className:"size-4"})})]})}function Iys({record:e}){const{t}=W(),n=FK();if(!e.jobPublicId)return null;async function a(){if(await zt({title:t("logs.cancelJob.title",{defaultValue:"Cancel job?"}),message:t("logs.cancelJob.message",{defaultValue:"This job is still queued. Cancelling stops it from being processed; no charge will be applied."}),confirmText:t("logs.cancelJob.confirm",{defaultValue:"Cancel job"}),cancelText:t("logs.cancelJob.keep",{defaultValue:"Keep"}),variant:"destructive"}))try{await n.mutateAsync(e.jobPublicId),ie.success(t("logs.cancelJob.success",{defaultValue:"Job cancelled"}))}catch(r){ie.error(r instanceof Error?r.message:t("logs.cancelJob.failed",{defaultValue:"Failed to cancel job"}))}}return o.jsxs(K,{variant:"destructive",size:"sm",onClick:a,disabled:n.isPending,className:"col-span-full h-8 justify-self-start gap-1.5 rounded px-2 text-11 font-normal min-[390px]:col-span-1 min-[390px]:justify-self-auto",children:[o.jsx(h9,{className:"size-3"}),n.isPending?t("logs.cancelJob.pending",{defaultValue:"Cancellingâ¦"}):t("logs.cancelJob.confirm",{defaultValue:"Cancel job"})]})}function Oys(e,t,n){const a=!!(e.errorCode||e.errorMessage),s=[];if(s.push({id:"received",icon:o.jsx(Uw,{className:"size-3.5"}),label:t("logs.drawer.timeline.received",{defaultValue:"Request received"}),status:"ok",facts:e.apiKey?o.jsxs("span",{className:"font-mono text-11",children:[e.apiKey.name," · ",e.apiKey.prefix,"â¦",e.apiKey.suffix]}):void 0}),s.push({id:"routed",icon:o.jsx(Obe,{className:"size-3.5"}),label:t("logs.drawer.timeline.routed",{defaultValue:"Routed"}),status:"ok",facts:o.jsxs("span",{className:"flex min-w-0 flex-col gap-0.5 font-mono text-11 sm:block",children:[e.modelSlug,e.endpointPath?o.jsxs("span",{className:"break-words text-[color:var(--muted-foreground)] sm:ml-1",children:["· ",e.endpointPath]}):null]})}),a)return s.push({id:"error",icon:o.jsx(dj,{className:"size-3.5"}),label:t("logs.drawer.timeline.failed",{defaultValue:"Failed"}),status:"error",facts:o.jsxs("span",{className:"text-[11.5px]",children:[e.errorCode?o.jsx("code",{className:"font-mono",children:e.errorCode}):null,e.errorMessage?o.jsx("span",{className:"ml-1 text-[color:var(--muted-foreground)]",children:e.errorMessage}):null]})}),s;const r=[];e.firstTokenMs!=null&&r.push(`TTFT ${or(e.firstTokenMs,n)}ms`),e.durationMs!=null&&r.push(`${or(e.durationMs,n)}ms total`),e.stream&&r.push("SSE"),s.push({id:"generated",icon:o.jsx(bR,{className:"size-3.5"}),label:t("logs.drawer.timeline.generated",{defaultValue:"Generated"}),status:"ok",facts:r.length?o.jsx("span",{className:"font-mono text-11 tabular-nums",children:r.join(" · ")}):void 0});const i=[];e.inputTokens&&i.push(`${or(e.inputTokens,n)} in`),e.outputTokens&&i.push(`${or(e.outputTokens,n)}
907 out`),e.cacheReadTokens&&i.push(`${or(e.cacheReadTokens,n)} cache`),s.push({id:"metered",icon:o.jsx(C9,{className:"size-3.5"}),label:t("logs.drawer.timeline.metered",{defaultValue:"Metered"}),status:i.length?"ok":"muted",facts:i.length?o.jsx("span",{className:"font-mono text-11 tabular-nums",children:i.join(" · ")}):void 0});const c=Number(e.freeDiscountUsd??0)>0&&Number(e.billedCredit??0)===0;return s.push({id:"billed",icon:o.jsx($ve,{className:"size-3.5"}),label:t("logs.drawer.timeline.billed",{defaultValue:"Billed"}),status:"ok",facts:o.jsx("span",{className:"font-mono text-[11.5px] tabular-nums font-semibold",children:c?t("logs.cost.free",{defaultValue:"Free"}):e.billedCredit})}),s}const Lys={ok:"border-[color:var(--primary)] bg-[color:var(--accent)] text-[color:var(--primary)]",error:"border-[color:var(--destructive-border)] bg-[color:var(--destructive-surface)] text-[color:var(--destructive)]",muted:"border-[color:var(--border)] bg-[color:var(--card)] text-[color:var(--muted-foreground)]"};function Uys({record:e}){const{t}=W(),n=Te(),a=Oys(e,t,n.locale);return o.jsx("ol",{className:"relative space-y-0",children:a.map((s,r)=>{const i=r===a.length-1;return o.jsxs("li",{className:"relative flex min-w-0 gap-3 pb-5 last:pb-0",children:[i?null:o.jsx("span",{"aria-hidden":!0,className:"absolute left-[15px] top-8 h-[calc(100%-1rem)] w-px bg-[color:var(--border)]"}),o.jsx("span",{className:X("relative z-10 grid size-8 shrink-0 place-items-center rounded-full border",Lys[s.status]),children:s.icon}),o.jsxs("div",{className:"min-w-0 flex-1 pt-1",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-sm font-medium text-[color:var(--foreground)]",children:[s.label,s.status==="ok"?o.jsx(cy,{className:"size-3 text-[color:var(--success)]","aria-hidden":!0}):null]}),s.facts?o.jsx("div",{className:"mt-0.5 min-w-0 break-words text-[color:var(--muted-foreground)]",children:s.facts}):null]})]},s.id)})})}function Bys({record:e}){const{t}=W(),{hasMedia:n}=Rj(e);return o.jsxs("div",{className:"min-w-0 border-b border-[color:var(--border)] p-4 md:overflow-y-auto md:border-b-0 md:border-r md:p-6",children:[o.jsxs("div",{className:n?"mb-6":"",children:[o.jsx("div",{className:"mb-4 text-11 font-semibold uppercase tracking-[0.08em] text-[color:var(--muted-foreground)]",children:t("logs.drawer.timeline.heading",{defaultValue:"Lifecycle"})}),o.jsx(Uys,{record:e})]}),n?o.jsxs("div",{children:[o.jsx("div",{className:"mb-4 text-11 font-semibold uppercase tracking-[0.08em] text-[color:var(--muted-foreground)]",children:t("logs.drawer.response")}),o.jsx(ZK,{record:e})]}):null]})}function Fys({record:e}){const{t}=W(),n=Te(),a=e.createdAt?new Date(e.createdAt):null,s=e.apiKey;return o.jsxs("div",{className:"min-w-0 bg-[color:var(--muted)]/30 md:overflow-y-auto",children:[o.jsxs(Vl,{title:t("logs.drawer.sections.request"),children:[o.jsx(mn,{label:t("logs.drawer.fields.requestId"),value:o.jsx("code",{className:"font-mono text-[11.5px] break-all",children:e.publicId})}),a?o.jsx(mn,{label:t("logs.drawer.fields.time"),value:o.jsxs("span",{children:[Tc(a)," ",o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:fy(a)}),o.jsxs("span",{className:"ml-2 text-11 text-[color:var(--muted-foreground)]",children:["(",hK(a),", UTC ",gK(a),")"]})]})}):null,s?o.jsx(mn,{label:t("logs.drawer.fields.apiKey"),value:o.jsxs("span",{children:[s.name," ",o.jsxs("span",{className:"text-[color:var(--muted-foreground)] font-mono text-11",children:[s.prefix,"â¦",s.suffix]})]})}):null,e.userAgent?o.jsx(mn,{label:t("logs.drawer.fields.userAgent"),value:o.jsx("span",{className:"font-mono text-11 break-all",children:e.userAgent})}):null,e.billingMode?o.jsx(mn,{label:t("logs.drawer.fields.billingMode"),value:zys(t,e.billingMode)}):null]}),o.jsxs(Vl,{title:t("logs.drawer.sections.routing"),children:[o.jsx(mn,{label:t("logs.drawer.fields.onehopModel"),value:e.modelSlug}),e.requestedModel&&e.requestedModel!==e.modelSlug?o.jsx(mn,{label:t("logs.drawer.fields.requestedModel",{defaultValue:"Requested (raw)"}),value:o.jsx("code",{className:"font-mono text-11",children:e.requestedModel})}):null,e.endpointPath?o.jsx(mn,{label:t("logs.drawer.fields.endpoint"),value:o.jsx("code",{className:"font-mono text-11",children:e.endpointPath})}):null,LR(e)?o.jsx(mn,{label:t("logs.drawer.fields.clientIp",{defaultValue:"Client IP"}),value:o.jsx("code",{className:"font-mono text-11",children:LR(e)})}):null]}),o.jsxs(Vl,{title:t("logs.drawer.sections.tokens"),children:[o.jsx(mn,{label:t("logs.tokensBreakdown.prompt"),value:n.number(e.inputTokens??0)}),o.jsx(mn,{label:JK(e)?t("logs.tokensBreakdown.imageOutput",{defaultValue:"Image output tokens"}):t("logs.tokensBreakdown.completion"),value:n.number(e.outputTokens??0)}),o.jsx(mn,{label:t("logs.tokensBreakdown.cacheRead"),value:n.number(e.cacheReadTokens??0),muted:(e.cacheReadTokens??0)===0}),o.jsx(mn,{label:t("logs.tokensBreakdown.cacheWrite",{defaultValue:"Cache write"}),value:n.number(e.cacheWriteTokens??0),muted:(e.cacheWriteTokens??0)===0}),o.jsx(mn,{label:t("logs.tokensBreakdown.cacheWrite5m"),value:n.number(e.cacheWrite5mTokens??0),muted:(e.cacheWrite5mTokens??0)===0}),o.jsx(mn,{label:t("logs.tokensBreakdown.cacheWrite1h"),value:n.number(e.cacheWrite1hTokens??0),muted:(e.cacheWrite1hTokens??0)===0})]}),o.jsx(Vl,{title:t("logs.drawer.sections.cost"),bare:!0,children:o.jsx(IR,{record:e})}),o.jsxs(Vl,{title:t("logs.drawer.sections.performance"),children:[e.firstTokenMs!=null?o.jsx(mn,{label:t("logs.drawer.fields.firstToken"),value:`${n.number(e.firstTokenMs)} ms`}):null,e.durationMs!=null?o.jsx(mn,{label:t("logs.drawer.fields.total"),value:`${n.number(e.durationMs)} ms`}):null,e.firstTokenMs!=null&&e.durationMs!=null&&e.outputTokens?o.jsx(mn,{label:t("logs.drawer.fields.throughput"),value:`${(e.outputTokens/Math.max(e.durationMs-e.firstTokenMs,1)*1e3).toFixed(1)} tps`}):null,e.stream?o.jsx(mn,{label:t("logs.drawer.fields.stream"),value:"SSE"}):null]}),kL(e)?o.jsx(Vl,{title:t("logs.drawer.sections.outcome",{defaultValue:"Outcome"}),children:o.jsx(mn,{label:t("logs.drawer.fields.finishReason",{defaultValue:"Finish reason"}),value:o.jsx("span",{className:"inline-flex items-center rounded border border-[color:var(--border)] bg-[color:var(--muted)]/50 px-1.5 py-0.5 font-mono text-11",children:kL(e)})})}
907):null,e.imageCount||e.imageSize||e.mediaType?o.jsxs(Vl,{title:t("logs.drawer.sections.multimodal",{defaultValue:"Multimodalities"}),children:[e.mediaType?o.jsx(mn,{label:t("logs.drawer.fields.mediaType",{defaultValue:"Media type"}),value:e.mediaType}):null,e.imageCount!=null?o.jsx(mn,{label:t("logs.drawer.fields.imageCount",{defaultValue:"Images"}),value:n.number(e.imageCount)}):null,e.imageSize?o.jsx(mn,{label:t("logs.drawer.fields.imageSize",{defaultValue:"Size"}),value:e.imageSize}):null]}):null,e.errorCode||e.errorMessage?o.jsxs(Vl,{title:t("logs.drawer.sections.error"),children:[e.errorCode?o.jsx(mn,{label:t("logs.drawer.fields.errorCode"),value:o.jsx("code",{className:"font-mono text-[11.5px]",children:e.errorCode})}):null,e.errorMessage?o.jsx(mn,{label:t("logs.drawer.fields.errorMessage"),value:o.jsx("span",{className:"text-[11.5px]",children:e.errorMessage})}):null]}):null]})}function zys(e,t){const n=`logs.drawer.billingMode.${t}`,a=e(n);return a===n?t:a}function Vl({title:e,children:t,bare:n=!1}){return o.jsxs("section",{className:"border-b border-[color:var(--border)] px-4 py-4 last:border-b-0 sm:px-5",children:[o.jsx("h5",{className:"mb-2 text-11 font-semibold uppercase text-[color:var(--muted-foreground)]",children:e}),n?t:o.jsx("dl",{className:"grid grid-cols-1 gap-y-1.5 text-[12.5px] min-[360px]:grid-cols-[104px_minmax(0,1fr)] min-[360px]:gap-x-3 sm:grid-cols-[110px_minmax(0,1fr)]",children:t})]})}function mn({label:e,value:t,muted:n=!1}){return o.jsxs(o.Fragment,{children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:`min-w-0 break-words tabular-nums [&_code]:break-all ${n?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]"}`,children:t})]})}function tG({record:e}){const t=Iz(e.modelSlug);return o.jsxs("span",{className:"inline-flex max-w-[280px] items-center gap-1.5 whitespace-nowrap",children:[t?o.jsx(Xo,{authorSlug:t,size:14,className:"shrink-0 text-[color:var(--muted-foreground)]"}):null,o.jsx("span",{className:"truncate text-[color:var(--foreground)] underline decoration-dotted decoration-[color:var(--muted-foreground)] underline-offset-[3px]",children:e.modelSlug}),o.jsx(Gw,{serviceTier:e.serviceTier})]})}const qys=new Set(["pending","repairing","queued","running"]);function Ww({record:e}){const{t}=W(),n=e.status;return n==="success"||n==="completed"?o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:t(`logs.status.${n}`,{defaultValue:n})}):n==="failed"?o.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs text-[color:var(--foreground)]",children:[o.jsx("span",{className:"inline-block size-1.5 rounded-full bg-[color:var(--destructive)]"}),o.jsx("span",{children:e.errorCode??t("logs.status.failed",{defaultValue:"failed"})})]}):qys.has(n)?o.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs",children:[o.jsx("span",{className:"inline-block size-1.5 rounded-full bg-[color:var(--warning)]"}),o.jsx("span",{className:"text-[color:var(--warning)]",children:t(`logs.status.${n}`,{defaultValue:n})})]}):o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:t(`logs.status.${n}`,{defaultValue:n})})}function jj({iso:e}){return o.jsx(ix,{iso:e})}const nG=["costMin","costMax","latencyMin","latencyMax"],CL=["preset","from","to","apiKey","model","status","type","finishReason","stream","reqId","more","page","size",...nG],Hys=["page","size","more"],Vys={preset:"last30d"},SL="onehop.logs.columns.v1",Kys=[10,20,50,100],AL=[{key:"time",defaultVisible:!0,locked:!0,labelKey:"logs.col.time",labelDefault:"Time"},{key:"model",defaultVisible:!0,labelKey:"logs.col.model",labelDefault:"Model"},{key:"tokens",defaultVisible:!0,labelKey:"logs.col.tokens",labelDefault:"Tokens"},{key:"cost",defaultVisible:!0,labelKey:"logs.col.cost",labelDefault:"Cost"},{key:"latency",defaultVisible:!0,labelKey:"logs.col.latency",labelDefault:"Latency"},{key:"tps",defaultVisible:!1,labelKey:"logs.col.tps",labelDefault:"Throughput"},{key:"ip",defaultVisible:!1,labelKey:"logs.col.ip",labelDefault:"IP"},{key:"source",defaultVisible:!0,labelKey:"logs.col.source",labelDefault:"Source"}
907,{key:"cacheHit",defaultVisible:!1,labelKey:"logs.col.cacheHit",labelDefault:"Cache hit"},{key:"stream",defaultVisible:!1,labelKey:"logs.col.stream",labelDefault:"Stream"},{key:"status",defaultVisible:!0,labelKey:"logs.col.status",labelDefault:"Status"}];function Gys(e){if(e.preset==="all")return{};const t=s=>{if(!s)return;const r=new Date(s);if(!Number.isNaN(r.getTime()))return`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,"0")}-${String(r.getDate()).padStart(2,"0")}`},n=t(e.from),a=t(e.to);return{...n&&{startDate:n},...a&&{endDate:a}}}function Wys(e,t){const n=Number(e.billedCredit??0),a=t.costMin===""?null:Number(t.costMin),s=t.costMax===""?null:Number(t.costMax);if(a!=null&&Number.isFinite(a)&&n<a||s!=null&&Number.isFinite(s)&&n>s)return!1;const r=e.durationMs!=null?e.durationMs/1e3:null,i=t.latencyMin===""?null:Number(t.latencyMin),c=t.latencyMax===""?null:Number(t.latencyMax);return!(i!=null&&Number.isFinite(i)&&(r==null||r<i)||c!=null&&Number.isFinite(c)&&(r==null||r>c))}function Gx(e){return e==null||!Number.isFinite(e)?"â":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(e<1e4?2:1)}s`}function Yys({children:e}){return o.jsx("span",{className:"text-11 font-semibold uppercase leading-4 text-[color:var(--muted-foreground)]",children:e})}function CS({label:e,children:t}){return o.jsxs("span",{className:"inline-flex min-w-0 items-baseline gap-1",children:[o.jsx(Yys,{children:e}),o.jsx("span",{className:"min-w-0 tabular-nums [&>*]:max-w-full [&>*]:min-w-0",children:t})]})}function Qys({record:e,selected:t,onOpen:n}){const{t:a}=W(),s=e.onehopRequestId??e.publicId;return o.jsxs(Dn,{selected:t,onClick:n,activation:"pointer",children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-start gap-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"min-w-0",children:o.jsx(tG,{record:e})}),o.jsxs("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"tabular-nums",children:pK(e.createdAt)}),o.jsx("span",{className:"hidden tabular-nums min-[360px]:inline",children:fK(e.createdAt)}),o.jsx("span",{className:"max-w-[11rem] truncate font-mono",children:s})]})]}),o.jsxs(Cr,{className:"max-w-[7.75rem] shrink-0 gap-1 min-[360px]:max-w-none",children:[o.jsx(Ww,{record:e}),o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:n,"aria-label":a("logs.drawer.openDetail",{defaultValue:"Open request detail"}),className:"size-8 min-[360px]:size-10",children:o.jsx(wu,{className:"size-4"})}),o.jsx(zK,{record:e})]})]}),o.jsxs("div",{className:"mt-1.5 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs",children:[o.jsx(CS,{label:a("logs.col.tokens",{defaultValue:"Tokens"}),children:o.jsx(Pj,{record:e})}),o.jsx(CS,{label:a("logs.col.cost",{defaultValue:"Cost"}),children:o.jsx(WK,{record:e})}),o.jsxs(CS,{label:a("logs.col.latency",{defaultValue:"Latency"}),children:[o.jsx("span",{children:Gx(e.durationMs)}),e.firstTokenMs!=null?o.jsxs("span",{className:"ml-1 text-11 text-[color:var(--muted-foreground)]",children:[Gx(e.firstTokenMs)," TTFT"]}):null]})]})]})}function Xys(){const{t:e,i18n:t}=W(),n=Te(),{params:a,patch:s,remove:r}=Mt(),i=h.useMemo(()=>{const O={type:Pe(a,"type"),costMin:Pe(a,"costMin"),costMax:Pe(a,"costMax"),latencyMin:Pe(a,"latencyMin"),latencyMax:Pe(a,"latencyMax"),finishReason:Pe(a,"finishReason"),stream:Pe(a,"stream")},V=nG.some(ne=>a.has(ne));return{range:qw(a,Vys),apiKey:Pe(a,"apiKey"),model:Pe(a,"model").split(",").filter(Boolean),status:Pe(a,"status"),requestId:Pe(a,"reqId"),secondary:O,moreOpen:a.has("more")||V,page:ln(a,"page",1),size:ln(a,"size",20)}},[a]),[c,d]=h.useState(null),[m,f]=h.useState(!1),p=h.useMemo(()=>AL.map(O=>({key:O.key,label:e(O.labelKey,{defaultValue:O.labelDefault}),defaultVisible:O.defaultVisible,locked:O.locked})),[e]),[y,v]=h.useState(()=>Phe(SL)??AL.filter(O=>O.locked||O.defaultVisible).map(O=>O.key)),$=h.useMemo(()=>dR(p,y),[p,y]),x=h.useMemo(()=>Gys(i.range),[i.range]),w=h.useMemo(()=>({apiKey:i.apiKey,category:i.secondary.type,model:i.model.join(","),status:i.status,stream:i.secondary.stream,...x,limit:String(i.size),page:String(i.page),summary:"0"}),[i.page,i.size,x,i.apiKey,i.secondary.type,i.model,i.status,i.secondary.stream]),S=nys(w),k=kj(),T=ays(),R=S.data?.items??[];async function _(){f(!0);try{const O=await tys({apiKey:i.apiKey||void 0,category:i.secondary.type||void 0,model:i.model.join(",")||void 0,status:i.status||void 0,stream:i.secondary.stream||void 0,...x});O.truncated?ie.warning(e("logs.export.truncated",{defaultValue:"Exported the first {{n}} rows. Narrow the time range to export the rest.",n:n.number(O.count)})):ie.success(e("logs.export.done",{defaultValue:"Exported {{n}} rows.",n:n.number(O.count)}))}catch{ie.error(e("logs.export.failed",{defaultValue:"Export failed. Please try again."}))}finally{f(!1)}}const P=h.useDeferredValue(i.requestId),j=h.useDeferredValue(i.secondary),N=h.useMemo(()=>{let O=R;if(P){const F=P.toLowerCase();O=O.filter(H=>H.publicId.toLowerCase().includes(F)||H.onehopRequestId?.toLowerCase().includes(F))}const{costMin:V,costMax:ne,latencyMin:q,latencyMax:M}=j;return(V||ne||q||M)&&(O=O.filter(F=>Wys(F,j))),O},[R,P,j]),I=h.useMemo(()=>(k.data?.items??[]).map(O=>({value:Js(O),label:O.name})),[k.data?.items]),z=h.useMemo(()=>
907(T.data?.items??[]).filter(Boolean),[T.data?.items]),E=h.useMemo(()=>[{id:"time",header:()=>o.jsxs("span",{className:"inline-flex items-baseline gap-1",children:[e("logs.col.time",{defaultValue:"Time"}),o.jsx("span",{className:"text-2xs font-normal text-[color:var(--muted-foreground)]",children:fy()})]}),cell:({row:O})=>o.jsx(jj,{iso:O.original.createdAt}),size:130},{id:"model",header:e("logs.col.model",{defaultValue:"Model"}),cell:({row:O})=>o.jsx(tG,{record:O.original})},{id:"tokens",header:e("logs.col.tokens",{defaultValue:"Tokens"}),cell:({row:O})=>o.jsx(Pj,{record:O.original})},{id:"cost",header:e("logs.col.cost",{defaultValue:"Cost"}),cell:({row:O})=>o.jsx(WK,{record:O.original})},{id:"latency",header:e("logs.col.latency",{defaultValue:"Latency"}),cell:({row:O})=>{const V=O.original.firstTokenMs;return o.jsxs("div",{className:"flex items-baseline gap-1.5 whitespace-nowrap tabular-nums",children:[o.jsx("span",{className:"text-[color:var(--foreground)]",children:Gx(O.original.durationMs)}),V!=null?o.jsxs("span",{className:"text-11 text-[color:var(--muted-foreground)]",children:[Gx(V)," ",o.jsx("span",{className:"opacity-70",children:"TTFT"})]}):null]})}},{id:"tps",header:e("logs.col.tps",{defaultValue:"Throughput"}),cell:({row:O})=>o.jsx(Rys,{record:O.original})},{id:"ip",header:e("logs.col.ip",{defaultValue:"IP"}),cell:({row:O})=>o.jsx(_ys,{record:O.original})},{id:"source",header:e("logs.col.source",{defaultValue:"Source"}),cell:({row:O})=>o.jsx(Pys,{record:O.original})},{id:"cacheHit",header:e("logs.col.cacheHit",{defaultValue:"Cache hit"}),cell:({row:O})=>o.jsx(Nys,{record:O.original})},{id:"stream",header:e("logs.col.stream",{defaultValue:"Stream"}),cell:({row:O})=>O.original.stream?o.jsx("span",{className:"font-mono text-11 text-[color:var(--foreground)]",children:"SSE"}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})},{id:"status",header:e("logs.col.status",{defaultValue:"Status"}),cell:({row:O})=>o.jsx(Ww,{record:O.original})}],[e]),L=h.useMemo(()=>E.filter(O=>$.has(O.id)),[E,$]);return o.jsxs(Vt,{title:e("logs.title",{defaultValue:"Logs"}),description:e("logs.description",{defaultValue:"Inspect request-level cost, latency, tokens, status, and routing signals."}),action:o.jsxs(K,{type:"button",variant:"outline",size:"sm",className:"h-9 gap-1.5 px-3",onClick:()=>S.refetch(),disabled:S.isFetching,children:[o.jsx(Vp,{className:X("size-3.5",S.isFetching&&"animate-spin")}),e("logs.filter.refresh",{defaultValue:"Refresh"})]}),children:[o.jsx(dys,{dateRange:i.range,onDateRangeChange:O=>s({...Hw(O),page:void 0}),apiKey:i.apiKey,onApiKeyChange:O=>s({apiKey:O,page:void 0}),apiKeyOptions:I,models:i.model,onModelsChange:O=>s({model:O.length?O.join(","):void 0,page:void 0}),status:i.status,onStatusChange:O=>s({status:O,page:void 0}),requestId:i.requestId,onRequestIdChange:O=>s({reqId:O,page:void 0}),secondary:i.secondary,onSecondaryChange:O=>s({...O,page:void 0}),modelOptions:z,expanded:i.moreOpen,onExpandedChange:O=>s({more:O?"1":void 0}),locale:t.language,reset:Zt(a,CL,Hys)?o.jsx(nn,{show:!0,onReset:()=>r(CL),labelKey:"common.reset"}):null,columnSettings:o.jsx(jhe,{columns:p,value:y,onChange:v,persistKey:SL,triggerLabel:e("logs.columns.trigger",{defaultValue:"Column settings"}),resetLabel:e("common.reset",{defaultValue:"Reset"}),saveLabel:e("common.save",{defaultValue:"Save"}),className:"h-10"}),exportAction:o.jsxs(K,{type:"button",variant:"outline",size:"sm",className:"h-10 gap-1.5 px-3",onClick:_,disabled:m||(S.data?.total??0)===0,children:[o.jsx($u,{className:"size-3.5"}),m?e("logs.export.exporting",{defaultValue:"Exportingâ¦"}):e("logs.export.label",{defaultValue:"Export CSV"})]})}),o.jsx(Ee,{className:"flex flex-1 flex-col overflow-hidden md:min-h-[420px] md:max-h-[calc(100vh-280px)]",children:o.jsx(NR,{caption:e("logs.title",{defaultValue:"Logs"}),columns:L,data:N,loading:S.isLoading,density:"comfortable",className:"min-h-0 flex-1",containerClassName:"min-h-0 flex-1 pb-3",stickyHeader:!0,stickyFirstColumn:!0,stickyActionsColumn:!0,rowActions:O=>o.jsx(zK,{record:O}),onRowClick:O=>d(O.publicId),isRowHighlighted:O=>O.publicId===c,mobileCard:O=>o.jsx(Qys,{record:O,selected:O.publicId===c,onOpen:()=>d(O.publicId)}),emptyState:o.jsx(Ot,{title:e("logs.empty.title",{defaultValue:"No logs in this range"}),description:e("logs.empty.body",{defaultValue:"Make a request through OneHop and it shows up here."})}),pagination:{mode:"server",pageSize:i.size,total:S.data?.total??0,pageIndex:i.page-1,pageSizeOptions:Kys,onPageChange:O=>s({page:O===0?void 0:String(O+1)},{replace:!1}),onPageSizeChange:O=>s({size:O===20?void 0:String(O),page:void 0})}})}),o.jsx(Dys,{publicId:c,onClose:()=>d(null)})]})}function Zys(e={}){return Ue({queryKey:Ht.consoleModels(e),queryFn:()=>Ye.request(`/console/models${$r(e)}`),placeholderData:t=>t,staleTime:180*1e3,retry:1})}function Jys(e){const t=Re(),n=Ht.consoleModels(e);return ke({mutationFn:({publicId:a,favorited:s})=>s?Ye.request("/console/favorite-models",{method:"POST",body:{publicId:a},idempotent:!0}):Ye.request(`/console/favorite-models/${a}`,{method:"DELETE",idempotent:!0}),onMutate:async({publicId:a,favorited:s})=>{await t.cancelQueries({queryKey:n});const r=t.getQueryData(n);return r&&t.setQueryData(n,{...r,items:r.items.map(i=>i.publicId===a?{...i,isFavorited:s}:i),kpis:{...r.kpis,favorites:Math.max(0,r.kpis.favorites+(s?1:-1))}}),{prev:r}},onError:(a,s,r)=>{r?.prev&&t.setQueryData(n,r.prev)},onSettled:()=>
907t.invalidateQueries({queryKey:["console","models"]})})}const TL=20,evs=[10,20,50,100],tvs=2;function RL({columns:e}){return o.jsx(Po,{children:o.jsx(qt,{children:e.map((t,n)=>o.jsx(Ie,{sticky:t.sticky??(n===0?"left":void 0),className:t.align==="right"?"text-right":t.align==="center"?"text-center":void 0,children:t.header},n))})})}function nvs({rows:e,columns:t,onRowClick:n,mobileCard:a,mobileRowAction:s,mobileVisibleFieldCount:r}){const{t:i}=W();return o.jsx("div",{className:"grid min-w-0 max-w-full grid-cols-[minmax(0,1fr)] overflow-hidden md:hidden",children:e.map(c=>{const d=a?.(c);if(d)return o.jsx("div",{children:d},c.publicId);const m=t.filter(k=>k.sticky==="right"),f=t.filter(k=>k.sticky!=="right"),p=s?.(c),y=!p&&n?o.jsx(K,{type:"button",variant:"ghost",size:"icon","aria-label":i("dataTable.openRow",{defaultValue:"Open row"}),className:"size-8",onClick:()=>n(c),children:o.jsx(wu,{className:"size-4"})}):null,v=p??y,$=f.slice(0,r),x=f.slice(r),w=k=>k.mobileValue==="break-all"?"break-all":k.mobileValue==="wrap"?"line-clamp-2 break-words":"truncate [&>*]:truncate",S=(k,T)=>o.jsx(Qe,{label:k.header,align:k.align==="right"?"right":"left",className:T===0?"min-[360px]:col-span-2":void 0,truncate:k.mobileValue==null||k.mobileValue==="truncate",children:o.jsx("span",{className:X("block min-w-0 [&>*]:max-w-full [&>*]:min-w-0",w(k),T===0&&"font-medium"),children:k.cell(c)})},T);return o.jsxs(Dn,{onClick:n?()=>n(c):void 0,activation:"pointer",children:[o.jsx(Ha,{className:"grid-cols-1 min-[360px]:grid-cols-2",children:$.map(S)}),x.length>0||v||m.length>0?o.jsxs("div",{className:"mt-1.5 flex min-w-0 items-center justify-between gap-2",children:[x.length>0?o.jsxs("details",{className:"group/details min-w-0 flex-1",onClick:k=>k.stopPropagation(),onKeyDown:k=>k.stopPropagation(),children:[o.jsxs("summary",{className:"inline-flex min-h-8 cursor-pointer list-none items-center gap-1 rounded-md px-1 text-11 font-medium text-[color:var(--muted-foreground)] marker:hidden focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)] [&::-webkit-details-marker]:hidden",children:[o.jsx("span",{className:"sr-only",children:i("dataTable.moreDetailsWithCount",{count:x.length,defaultValue:"{{count}} more details"})}),"+",x.length,o.jsx(zc,{className:"size-3.5 transition-transform group-open/details:rotate-180","aria-hidden":"true"})]}),o.jsx("dl",{className:"mt-1 grid grid-cols-1 gap-x-3 gap-y-2 border-t border-[color:var(--border)] pt-1.5 min-[360px]:grid-cols-2",children:x.map((k,T)=>S(k,T+r))})]}):o.jsx("span",{}),v||m.length>0?o.jsxs(Cr,{className:"shrink-0 flex-nowrap",children:[v,m.map((k,T)=>o.jsx("div",{children:k.cell(c)},T))]}):null]}):null]},c.publicId)})})}const SS=8,PL=["w-24","w-16","w-32","w-20","w-28","w-12"];function avs({rows:e}){return o.jsx("div",{className:"grid min-w-0 max-w-full grid-cols-[minmax(0,1fr)] md:hidden",children:Array.from({length:e}).map((t,n)=>o.jsxs(Dn,{children:[o.jsxs("div",{className:"flex items-start justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(Rt,{className:"h-4 w-36 max-w-[70%]"}),o.jsx(Rt,{className:"mt-1.5 h-3 w-24 max-w-[55%]"})]}),o.jsx(Rt,{className:"size-8 shrink-0 rounded-md"})]}),o.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-x-3 gap-y-2",children:[o.jsx(Rt,{className:"h-3 w-20 max-w-full"}),o.jsx(Rt,{className:"ml-auto h-3 w-16 max-w-full"}),o.jsx(Rt,{className:"h-3 w-24 max-w-full"}),o.jsx(Rt,{className:"ml-auto h-3 w-14 max-w-full"})]})]},n))})}function Pt({label:e,rows:t,columns:n,isLoading:a,error:s,emptyTitle:r,pagination:i,onRowClick:c,stickyHeader:d,containerClassName:m,fill:f,mobileCard:p,mobileRowAction:y,mobileVisibleFieldCount:v=tvs}){const{t:$}=W(),x=i?.total!=null,[w,S]=h.useState(1),[k,T]=h.useState(i?.pageSize??TL);if(s)return o.jsx(Ot,{title:$("opsTable.failedLoad"),description:s.message});if(a)return o.jsxs(Ee,{className:f?"flex min-h-0 flex-1 flex-col":void 0,children:[o.jsx("div",{className:X("hidden",f?"md:flex md:min-
907h-0 md:flex-1 md:flex-col":"md:block"),children:o.jsxs(Ua,{"aria-label":e??r,"aria-busy":!0,stickyHeader:d,containerClassName:X(f&&"min-h-0 flex-1",m),children:[o.jsx(RL,{columns:n}),o.jsx(Ba,{children:Array.from({length:SS}).map((I,z)=>o.jsx(qt,{children:n.map((E,L)=>o.jsx(Me,{sticky:E.sticky??(L===0?"left":void 0),className:X("whitespace-nowrap",E.align==="right"&&"text-right",E.align==="center"&&"text-center"),children:o.jsx(Rt,{className:X("h-4",PL[(z+L)%PL.length],E.align==="right"&&"ml-auto",E.align==="center"&&"mx-auto")})},L))},z))})]})}),o.jsx(avs,{rows:Math.min(i?.pageSize??SS,SS)})]});if(!t||t.length===0)return o.jsx(Ot,{title:r,description:$("opsTable.emptyDescription")});const R=x?i.pageSize??TL:k,_=Math.max(1,Math.ceil(t.length/R)),P=!x&&i?.onPageChange!=null,j=x?i.page??1:Math.min(P?i.page??1:w,_),N=i&&!x?t.slice((j-1)*R,j*R):t;return o.jsxs(Ee,{className:f?"flex min-h-0 flex-1 flex-col":void 0,children:[o.jsx("div",{className:X("hidden",f?"md:flex md:min-h-0 md:flex-1 md:flex-col":"md:block"),children:o.jsxs(Ua,{"aria-label":e??r,stickyHeader:d,containerClassName:X(f&&"min-h-0 flex-1",m),children:[o.jsx(RL,{columns:n}),o.jsx(Ba,{children:N.map(I=>o.jsx(qt,{className:X("group/row",c&&"cursor-pointer hover:bg-[color:var(--muted)]"),onClick:c?z=>{eu(z)||c(I)}:void 0,children:n.map((z,E)=>o.jsx(Me,{sticky:z.sticky??(E===0?"left":void 0),className:X("whitespace-nowrap",z.align==="right"&&"text-right tabular-nums",z.align==="center"&&"text-center"),children:z.cell(I)},E))},I.publicId))})]})}
907),o.jsx(nvs,{rows:N,columns:n,onRowClick:c,mobileCard:p,mobileRowAction:y,mobileVisibleFieldCount:v}),i?o.jsx("div",{className:X("border-t border-[color:var(--border)] px-3 py-3 sm:px-4",f&&"shrink-0"),children:o.jsx(A_,{total:x?i.total:t.length,page:j,pageSize:R,pageSizeOptions:i.pageSizeOptions??evs,onPageChange:I=>i.onPageChange?i.onPageChange(I):S(I),onPageSizeChange:I=>{x?i.onPageSizeChange?.(I):(T(I),P?i.onPageChange(1):S(1))},labels:{total:I=>$("pagination.total",{count:I,defaultValue:"Total {{count}}"}),perPage:I=>$("pagination.perPage",{count:I,defaultValue:"{{count}} / page"})}})}):null]})}function gh(e,t,n){const[a,s]=h.useState(()=>{try{if(typeof window>"u"||!window.localStorage)return t;const i=window.localStorage.getItem(e);return i===null?t:n(i)??t}catch{return t}}),r=h.useCallback(i=>{s(i);try{if(typeof window>"u"||!window.localStorage)return;window.localStorage.setItem(e,String(i))}catch{}},[e]);return[a,r]}const xb=["tab","capability","provider","context","protocol","search","page","size"],ovs="onehop.models.sort",svs="onehop.models.currency",rvs=e=>e==="USD"||e==="CNY"?e:null,ivs=e=>e.toLowerCase().startsWith("zh"),lvs=new Set(zT),cvs=["text","image","audio","video"],_L=[{key:"lt64k",min:null,max:64e3},{key:"64k-256k",min:64e3,max:256e3},{key:"256k-512k",min:256e3,max:512e3},{key:"512k-1m",min:512e3,max:1e6},{key:"gte1m",min:1e6,max:null}],dvs=X$,uvs=[20,50,100],UR={text:mxe,image:S9,video:vxe,audio:eve,embedding:y9},aG={text:"text-blue-600",image:"text-amber-600",video:"text-rose-600",audio:"text-emerald-600",embedding:"text-violet-600"};function mvs({className:e,children:t}){return o.jsx("span",{className:X("inline-flex h-6 items-center gap-1 rounded-md px-2 text-xs font-medium",e),children:t})}function oG(e,t){const n=Hge(e);return n?t(n,{defaultValue:e==="perCall"?"/ call":e==="perSec"?"/ sec":"/ 1M"}):""}const pvs={newest:Ave,top_weekly:qve,price_asc:hR,price_desc:hR,context:nx},fvs={openai:"OpenAI",anthropic:"Anthropic",google:"Google",minimax:"MiniMax",deepseek:"DeepSeek",bytedance:"ByteDance"},jL="#9046FF";function ux(e){return fvs[e.toLowerCase()]??e.charAt(0).toUpperCase()+e.slice(1)}function sG({label:e,children:t}){return o.jsxs(Ls,{delayDuration:500,children:[o.jsx(Us,{asChild:!0,children:t}),o.jsx(cs,{children:e})]})}function Er({icon:e,children:t}){return o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e?o.jsx(e,{size:13,className:"text-[color:var(--muted-foreground)]"}):null,t]})}function gvs({model:e,currency:t,locked:n,onOpen:a,onTry:s,onToggleFavorite:r,favoriteLabels:i}){const{t:c,i18n:d}=W(),m=Eg(e.outputModalities),f=UR[m],p=LV(e,m,t),y=m==="text"?bK(e,t):[],v=UV(e,m,t),$=DR(e.source)==="kiro"?"Kiro":ux(e.authorSlug);return o.jsxs(Dn,{onClick:a,activation:"pointer",children:[o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-start gap-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsx("span",{className:"flex size-[18px] shrink-0 items-center justify-center text-[color:var(--muted-foreground)]",children:DR(e.source)==="kiro"?o.jsx(QT,{size:18}):o.jsx(Xo,{authorSlug:e.authorSlug,size:18})}),o.jsx("span",{className:X("truncate font-semibold",(e.available===!1||n)&&"text-[color:var(--muted-foreground)]"),children:e.displayName||e.modelSlug}),n?o.jsx(Xt,{variant:"warning",className:"h-5 shrink-0 px-1.5 text-11",children:c("models.badge_requiresTopup",{defaultValue:"Top-up required"})}):null,e.badges.slice(0,1).map(x=>o.jsx(Xt,{variant:x==="hot"?"warning":"success",className:"h-5 px-1.5 text-11",children:c(`models.badge_${x}`,{defaultValue:x})},x))]}),o.jsx("div",{className:"mt-0.5 truncate font-[family-name:var(--font-mono)] text-11 text-[color:var(--muted-foreground)]",children:e.fullSlug})]}),o.jsxs(Cr,{className:"shrink-0 gap-1",children:[o.jsx(rG,{on:e.isFavorited,onToggle:r,addLabel:i.add,removeLabel:i.remove}),o.jsx(K,{type:"button",variant:"ghost",size:"icon","aria-label":c("models.table.openDetail",{defaultValue:"Open model detail"}),className:"size-8 min-[360px]:size-9",onClick:a,children:o.jsx(wu,{className:"size-4"})}),o.jsx(K,{type:"button",variant:"secondary",size:"icon",disabled:e.available===!1||n,"aria-label":c("models.table.tryIt",{defaultValue:"Try it"}),className:"size-8 min-[360px]:size-9",onClick:s,children:o.jsx(gbe,{className:"size-4"})})]})]}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_auto] gap-x-2",children:[o.jsxs(Qe,{label:c("models.table.price",{defaultValue:"Price"}),children:[o.jsxs("div",{className:"mt-0.5 font-[family-name:var
907(--font-mono)] text-sm font-semibold tabular-nums",children:[p.from?o.jsxs("span",{className:"font-normal text-[color:var(--muted-foreground)]",children:[c("models.price_from",{defaultValue:"from"})," "]}):null,p.our,p.unit!=="inout"?o.jsxs("span",{className:"font-normal text-[color:var(--muted-foreground)]",children:[" ",oG(p.unit,c)]}):null]}),y.length>0?o.jsx("div",{className:"mt-1 space-y-0.5 font-[family-name:var(--font-mono)] text-11 tabular-nums text-[color:var(--muted-foreground)]",children:y.map(x=>o.jsx("div",{children:x},x))}):null]}),v?o.jsxs(Qe,{label:c("models.table.discount",{defaultValue:"Discount"}),align:"right",children:[o.jsx(Xt,{variant:"success",className:"h-5 px-1.5 text-11",children:BV(v.pct,d.language)}),o.jsx("div",{className:"mt-0.5 font-[family-name:var(--font-mono)] text-11 tabular-nums text-[color:var(--muted-foreground)] line-through",children:v.official})]}):null]}),o.jsxs("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-11 text-[color:var(--muted-foreground)]",children:[o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx(f,{size:12,className:aG[m]}),c(`models.type_${m}`,{defaultValue:m})]}),o.jsx("span",{children:$}),o.jsx("span",{className:"tabular-nums",children:Xl(e.contextWindow)}),e.supportedProtocolList.length>0?o.jsx(GV,{protocols:e.supportedProtocolList,max:2}):null]})]})}function hvs(){const{t:e,i18n:t}=W(),n=No(),a=yhs(),{params:s,patch:r,remove:i}=Mt(),c=Pe(s,"tab","all"),d=Pe(s,"capability"),m=Pe(s,"provider"),f=Pe(s,"context"),p=Pe(s,"protocol"),y=Pe(s,"search"),[v,$]=gh(ovs,poe,M=>lvs.has(M)?M:null),x=ivs(t.language),[w,S]=gh(svs,x?"CNY":"USD",rvs),k=x?w:"USD",T=ln(s,"page",1),R=ln(s,"size",20),_=h.useDeferredValue(y),P=h.useMemo(()=>{const M={sort:v,page:String(T),size:String(R),locale:t.language};c!=="all"&&(M.tab=c),d&&(M.capability=d),m&&(M.provider=m);const F=_L.find(H=>H.key===f);return F?.min!=null&&(M.ctxMin=String(F.min)),F?.max!=null&&(M.ctxMax=String(F.max)),p&&(M.protocol=p),_&&(M.search=_),M},[c,d,m,f,p,_,v,T,R,t.language]),j=Zys(P),N=Jys(P),I=j.data?.kpis??{total:0,favorites:0,hot:0,benefit:0},z=[{value:"",label:e("models.filters.allCapabilities",{defaultValue:"All types"})},...cvs.map(M=>{const F=UR[M];return{value:M,label:e(`models.filters.capability_${M}`,{defaultValue:M}),icon:o.jsx(F,{size:14,className:"text-[color:var(--muted-foreground)]"})}})],E=[{value:"",label:e("models.filters.allProviders",{defaultValue:"All providers"})},...(j.data?.options.providers??[]).map(M=>M==="Kiro"?{value:"Kiro",label:"Kiro",icon:o.jsx("span",{className:"flex items-center justify-center",style:{color:jL},children:o.jsx(QT,{size:16})})}:{value:M,label:ux(M),icon:o.jsx(Xo,{authorSlug:M,size:16})})],L=[{value:"",label:e("models.filters.allContexts",{defaultValue:"Any length"})},..._L.map(M=>({value:M.key,label:M.min==null?`< ${Xl(M.max)}`:M.max==null?`⥠${Xl(M.min)}`:`${Xl(M.min)}â${Xl(M.max)}`}))],O=[{value:"",label:e("models.filters.allProtocols",{defaultValue:"All protocols"})},...dvs.map(M=>({value:M,label:e(`models.protocol_${M}`,{defaultValue:Wd[M].label}),icon:o.jsx(Xo,{authorSlug:Wd[M].iconAuthor,size:16})}))],V=M=>{window.open(`${window.location.origin}${Qgs(M.authorSlug,M.modelSlug,t.language)}`,"_blank","noopener")},ne=M=>x?o.jsx(el,{ariaLabel:e("models.currency.ariaLabel",{defaultValue:"ä»·æ ¼è´§å¸"}),value:k,onValueChange:F=>S(F),options:[{value:"USD",label:e("models.currency.usd",{defaultValue:"ç¾å
"})},{value:"CNY",label:e("models.currency.rmb",{defaultValue:"人æ°å¸ (Â¥)"})}],className:M}):null,q=M=>o.jsx(gvs,{model:M,currency:k,locked:a(M),onOpen:()=>V(M),onTry:()=>n(`${Be.chat}?model=${encodeURIComponent(M.fullSlug)}&chatId=new`),onToggleFavorite:()=>N.mutate({publicId:M.publicId,favorited:!M.isFavorited}),favoriteLabels:{add:e("models.favorite.add",{defaultValue:"Add favorite"}),remove:e("models.favorite.remove",{defaultValue:"Remove favorite"})}});return o.jsxs(Vt,{fill:!0,title:e("models.title",{defaultValue:"Models"}),description:e("models.description",{defaultValue:"Browse every available model, its context window, input/output price, and capabilities."}),children:[o.jsx(Cc,{value:c,onValueChange:M=>r({tab:M==="all"?void 0:M,page:void 0}),className:"min-w-0 shrink-0 overflow-x-auto pb-0.5",children:o.jsxs(tl,{children:[o.jsxs(ia,{value:"all",children:[e("models.tabs.all",{defaultValue:"All"})," ",I.total]}),o.jsxs(ia,{value:"favorites",children:[e("models.tabs.favorites",{defaultValue:"My favorites"})," ",I.favorites]}
907),o.jsxs(ia,{value:"benefit",children:[e("models.tabs.benefit",{defaultValue:"Benefit"})," ",I.benefit]}),o.jsxs(ia,{value:"hot",children:[e("models.tabs.hot",{defaultValue:"Hot"})," ",I.hot]})]})}),o.jsxs("div",{className:"grid shrink-0 grid-cols-[minmax(0,1fr)_auto] gap-2 md:hidden",children:[o.jsxs("label",{className:"min-w-0",children:[o.jsx("span",{className:"sr-only",children:e("models.filters.search",{defaultValue:"Search"})}),o.jsx(ge,{value:y,onChange:M=>r({search:M.target.value,page:void 0}),placeholder:e("models.filters.searchPlaceholder",{defaultValue:"Model / maker"}),startIcon:o.jsx(hp,{size:14,className:"text-[color:var(--muted-foreground)]"}),className:"h-10"})]}),o.jsxs(Gp,{iconOnly:!0,label:e("models.filters.mobileTitle",{defaultValue:"Filters"}),active:Zt(s,["capability","provider","context","protocol"]),className:"contents",panelClassName:"col-span-2 mt-1",children:[o.jsx(Ze,{icon:o.jsx(eS,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.capability",{defaultValue:"Type"}),value:d,options:z,onChange:M=>r({capability:M,page:void 0})}),o.jsx(Ze,{icon:o.jsx(J1,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.provider",{defaultValue:"Provider"}),value:m,options:E,onChange:M=>r({provider:M,page:void 0})}),o.jsx(Ze,{icon:o.jsx(nx,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.context",{defaultValue:"Context"}),value:f,options:L,onChange:M=>r({context:M,page:void 0})}),o.jsx(Ze,{icon:o.jsx(Z1,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.protocol",{defaultValue:"Protocol"}),value:p,options:O,onChange:M=>r({protocol:M,page:void 0})}),o.jsx(nn,{show:Zt(s,xb),onReset:()=>i(xb),className:"justify-self-end"})]})]}),o.jsxs("div",{className:"hidden shrink-0 gap-3 md:grid md:grid-cols-2 xl:flex xl:flex-wrap xl:items-end",children:[o.jsx("div",{className:"min-w-0 xl:min-w-[130px] xl:flex-1",children:o.jsx(Ze,{icon:o.jsx(eS,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.capability",{defaultValue:"Type"}),value:d,options:z,onChange:M=>r({capability:M,page:void 0})})}),o.jsx("div",{className:"min-w-0 xl:min-w-[130px] xl:flex-1",children:o.jsx(Ze,{icon:o.jsx(J1,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.provider",{defaultValue:"Provider"}),value:m,options:E,onChange:M=>r({provider:M,page:void 0})})}),o.jsx("div",{className:"min-w-0 xl:min-w-[120px] xl:flex-1",children:o.jsx(Ze,{icon:o.jsx(nx,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.context",{defaultValue:"Context"}),value:f,options:L,onChange:M=>r({context:M,page:void 0})})}),o.jsx("div",{className:"min-w-0 xl:min-w-[130px] xl:flex-1",children:o.jsx(Ze,{icon:o.jsx(Z1,{size:13,className:"text-[color:var(--muted-foreground)]"}),label:e("models.filters.protocol",{defaultValue:"Protocol"}),value:p,options:O,onChange:M=>r({protocol:M,page:void 0})})}),o.jsxs("label",{className:"grid min-w-0 gap-1.5 text-xs font-medium sm:col-span-2 xl:min-w-[180px] xl:flex-[1.5]",children:[o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx(hp,{size:13,className:"text-[color:var(--muted-foreground)]"}),e("models.filters.search",{defaultValue:"Search"})]}),o.jsx(ge,{value:y,onChange:M=>r({search:M.target.value,page:void 0}),placeholder:e("models.filters.searchPlaceholder",{defaultValue:"Model / maker"})})]}),o.jsx(nn,{show:Zt(s,xb),onReset:()=>i(xb),className:"self-end"})]}),o.jsxs("div",{className:"grid shrink-0 gap-2 md:hidden",children:[o.jsxs("label",{className:"grid gap-1.5 text-xs font-medium",children:[o.jsx("span",{className:"sr-only",children:e("models.filters.sort",{defaultValue:"Sort"})}),o.jsx(ft,{value:v,"aria-label":e("models.filters.sort",{defaultValue:"Sort"}),options:zT.map(M=>({value:M,label:e(`models.sort_${M}`,{defaultValue:M})})),onValueChange:M=>{$(M),r({page:void 0})},className:"h-9 text-xs"})]}),ne("text-xs")]}),o.jsxs("div",{className:"-mx-1 hidden shrink-0 items-center justify-between gap-3 px-1 md:flex",children:[o.jsx("div",{className:"min-w-0 overflow-x-auto",children:o.jsx(Cc,{value:v,onValueChange:M=>{$(M),r({page:void 0})},children:o.jsx(tl,{children:zT.map(M=>{const F=pvs[M]??Wye;return o.jsxs(ia,{value:M,className:"h-9 gap-1.5 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:[o.jsx(F,{size:13,className:"text-[color:var(--muted-foreground)]"}),e(`models.sort_${M}`,{defaultValue:M})]},M)})})})}),ne("shrink-0")]}),x&&k==="CNY"?o.jsx("p",{className:"-mt-1 shrink-0 text-2xs text-[color:var(--muted-foreground)]",children:e("models.currency.settlement",{rate:bF,defaultValue:"ä»·æ ¼ä»¥äººæ°å¸å±ç¤º,æåºå®æ±ç {{rate}} æç®,ä»
ä¾åè;é±å
å§ç»ä»¥ç¾å
æå®é
ç¨éç»ç®ã"})}):null,o.jsx(Pt,{fill:!0,stickyHeader:!0,label:e("models.table.label",{defaultValue:"Models"}),rows:j.data?.items,isLoading:j.isLoading,error:j.error,emptyTitle:c==="favorites"?e("models.empty.favorites",{defaultValue:"No favorites yet"}):e("models.empty.noMatch",{defaultValue:"No matching models"}),onRowClick:V,mobileCard:q,pagination:{total:j.data?.total??0,page:T,pageSize:R,pageSizeOptions:uvs,onPageChange:M=>r({page:M===1?void 0:String(M)}),onPageSizeChange:M=>r({size:M===20?void 0:String(M),page:void 0})},columns:[{header:o.jsx(Er,{children:e("models.table.model",{defaultValue:"Model"})}),cell:M=>o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(rG,{on:M.isFavorited,onToggle:()=>N.mutate({publicId:M.publicId,favorited:!M.isFavorited}),addLabel:e("models.favorite.add",{defaultValue:"Add favorite"}),removeLabel:e("models.favorite.remove",{defaultValue:"Remove favorite"})}),o.jsx(sG,{label:ux(M.authorSlug),children:o.jsx("span",{className:"flex size-[18px] shrink-0 items-center justify-center text-[color:var(--muted-foreground)]",children:o.jsx(Xo,{authorSlug:M.authorSlug,size:18})})}),o.jsxs("div",{className:"flex flex-col gap-0.5",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:`text-sm font-medium${M.available===!1||a(M)?" text-[color:var(--muted-foreground)]":""}`,children:M.displayName||M.modelSlug}),M.available===!1?o.jsx(Xt,{variant:"warning",children:e("models.badge_unavailable",{defaultValue:"Unavailable"})}):null,a(M)?o.jsx(Xt,{variant:"warning",children:e("models.badge_requiresTopup",{defaultValue:"Top-up required"})}):null,M.badges.map(F=>o.jsx(Xt,{variant:F==="hot"?"warning":"success",children:e(`models.badge_${F}`,{defaultValue:F})},F))]}),o.jsx(yvs,{slug:M.fullSlug,copyLabel:e("models.table.copyId",{defaultValue:"Copy model ID"}),copiedLabel:e("models.table.copied",{defaultValue:"Copied"})})]})]})},{header:o.jsx(Er,{icon:hR,children:e("models.table.price",{defaultValue:"Price"})}),align:"right",cell:M=>{const F=Eg(M.outputModalities),H=LV(M,F,k),ee=F!=="image"&&F!=="video"?zge(M,k):null,B=F==="text"?bK(M,k):[];return o.jsxs("span",{className:"flex flex-col items-end gap-0.5 font-[family-name:var
907(--font-mono)] text-sm font-semibold tabular-nums",children:[o.jsxs("span",{children:[H.from?o.jsxs("span",{className:"font-normal text-[color:var(--muted-foreground)]",children:[e("models.price_from",{defaultValue:"from"})," "]}):null,H.our,H.unit!=="inout"?o.jsxs("span",{className:"font-normal text-[color:var(--muted-foreground)]",children:[" ",oG(H.unit,e)]}):null]}),ee?o.jsxs("span",{className:"text-11 font-normal text-[color:var(--muted-foreground)]",children:[e("models.price_fast",{defaultValue:"Fast"})," ",ee]}):null,B.map(G=>o.jsx("span",{className:"max-w-[260px] whitespace-normal text-right text-11 font-normal leading-relaxed text-[color:var(--muted-foreground)]",children:G},G)),M.imageTiers&&M.imageTiers.length>0?o.jsx("span",{className:"text-11 font-normal text-[color:var(--muted-foreground)]",children:M.imageTiers.map(G=>`${G.resolution} ${Fn(G.perImageUsd,k)}`).join(" · ")}):null]})}},{header:o.jsx(Er,{icon:Tbe,children:e("models.table.discount",{defaultValue:"Discount"})}),align:"right",cell:M=>{const F=UV(M,Eg(M.outputModalities),k);return F?o.jsxs("span",{className:"flex flex-col items-end gap-1",children:[o.jsx(Xt,{variant:"success",children:BV(F.pct,t.language)}),o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-11 tabular-nums text-[color:var(--muted-foreground)] line-through",children:F.official})]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}},{header:o.jsx(Er,{icon:eS,children:e("models.table.type",{defaultValue:"Type"})}),cell:M=>{const F=Eg(M.outputModalities),H=UR[F];return o.jsxs(mvs,{className:"bg-[color:var(--muted)] text-[color:var(--foreground)]",children:[o.jsx(H,{size:13,className:aG[F]}),e(`models.type_${F}`,{defaultValue:F})]})}},{header:o.jsx(Er,{icon:J1,children:e("models.table.provider",{defaultValue:"Provider"})}),cell:M=>{const F=DR(M.source)==="kiro";return o.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[o.jsx("span",{className:"flex size-[18px] items-center justify-center",style:F?{color:jL}:void 0,children:F?o.jsx(QT,{size:18}):o.jsx(Xo,{authorSlug:M.authorSlug,size:18})}),o.jsx("span",{className:"text-sm font-medium",children:F?"Kiro":ux(M.authorSlug)})]})}},{header:o.jsx(Er,{icon:Z1,children:e("models.table.protocols",{defaultValue:"Protocols"})}),cell:M=>M.supportedProtocolList.length>0?o.jsx(GV,{protocols:M.supportedProtocolList,max:3}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})},{header:o.jsx(Er,{icon:nx,children:e("models.table.context",{defaultValue:"Context"})}),align:"right",cell:M=>o.jsx("span",{className:"tabular-nums",children:Xl(M.contextWindow)})},{header:o.jsx(Er,{icon:Qye,children:e("models.table.maxOutput",{defaultValue:"Max output"})}),align:"right",cell:M=>o.jsx("span",{className:"tabular-nums",children:Xl(M.maxOutputTokens)})},{header:o.jsx(Er,{icon:$9,children:e("models.table.usage",{defaultValue:"Usage"})}),align:"right",cell:M=>o.jsx("span",{className:"text-sm tabular-nums",children:Jge(M.usageTokens)})},{header:o.jsx(Er,{icon:u9,children:e("models.table.stability",{defaultValue:"Stability"})}),align:"right",cell:M=>o.jsx("div",{className:"ml-auto w-44 sm:w-60",children:o.jsx(yhe,{data:M.uptime24h??[],heightPx:16,showPct:!0})})},{header:e("models.table.action",{defaultValue:"Action"}),sticky:"right",cell:M=>o.jsx(K,{variant:"secondary",size:"sm",disabled:M.available===!1||a(M),className:"opacity-100 transition md:opacity-0 md:group-hover/row:opacity-100 md:focus-visible:opacity-100 md:group-hover/row:bg-[color:var(--primary)] md:group-hover/row:text-[color:var(--primary-foreground)] md:group-hover/row:border-transparent disabled:pointer-events-none disabled:opacity-40",onClick:F=>{F.stopPropagation(),n(`${Be.chat}?model=${encodeURIComponent(M.fullSlug)}&chatId=new`)},children:e("models.table.tryIt",{defaultValue:"Try it"})})}]})]})}function rG({on:e,onToggle:t,addLabel:n,removeLabel:a}){return o.jsx(sG,{label:e?a:n,children:o.jsx("button",{type:"button",onClick:s=>{s.stopPropagation(),t()},"aria-label":e?a:n,className:"flex size-7 items-center justify-center rounded-md hover:bg-[color:var(--muted)]",children:o.jsx(Jbe,{size:16,className:e?"fill-amber-400 text-amber-400":"text-[color:var(--muted-foreground)]"})})})}function yvs({slug:e,copyLabel:t,copiedLabel:n}){return o.jsxs("span",{className:"group/slug flex items-center gap-1",children:[o.jsx("span",{className:"font-[family-name:var
907(--font-mono)] text-11 text-[color:var(--muted-foreground)]",children:e}),o.jsx(py,{value:e,copyLabel:t,copiedLabel:n,iconClassName:"size-3",className:"size-5 rounded opacity-0 transition-opacity group-hover/slug:opacity-100"})]})}const vvs=300;function bvs({children:e}){const t=h.useRef(null),[n,a]=h.useState({w:0,h:0}),[,s]=h.useTransition(),r=h.useRef(null);return h.useLayoutEffect(()=>{const i=t.current;if(!i)return;const{width:c,height:d}=i.getBoundingClientRect();c>0&&d>0&&a({w:Math.round(c),h:Math.round(d)})},[]),h.useEffect(()=>{const i=t.current;if(!i)return;const c=new ResizeObserver(d=>{const{width:m,height:f}=d[0]?.contentRect??{};!m||!f||(r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{s(()=>a({w:Math.round(m),h:Math.round(f)}))},vvs))});return c.observe(i),()=>{c.disconnect(),r.current&&clearTimeout(r.current)}},[]),o.jsx("div",{ref:t,style:{width:"100%",height:"100%"},children:n.w>0?h.cloneElement(e,{width:n.w,height:n.h}):null})}function Nj({title:e,description:t,actions:n,height:a=240,loading:s=!1,error:r=null,hasData:i=!0,emptyState:c,children:d,className:m}){const{t:f}=W(),p=r?"error":s?"loading":i?"data":"empty";return o.jsxs("section",{"data-testid":"chart-container","data-state":p,className:X("flex min-w-0 flex-col gap-2.5 rounded-lg border border-border bg-card p-3 sm:gap-3 sm:p-4",m),children:[(e||n)&&o.jsxs("header",{className:"flex min-w-0 flex-col gap-2 sm:flex-row sm:items-start sm:justify-between sm:gap-3",children:[o.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0",children:[e?o.jsx("h3",{className:"truncate text-sm font-semibold text-foreground",children:e}):null,t?o.jsx("p",{className:"text-xs text-muted-foreground line-clamp-1",children:t}):null]}),n?o.jsx("div",{className:"flex min-w-0 flex-wrap items-center gap-2 sm:shrink-0 sm:justify-end",children:n}):null]}),o.jsx("div",{style:{height:a},className:"relative",children:p==="loading"?o.jsx(Rt,{className:"h-full w-full"}):p==="error"?r instanceof Error?o.jsx(Qt,{title:f("charts.errorTitle"),description:r.message}):r:p==="empty"?c??o.jsx(Ot,{title:f("charts.emptyTitle"),description:f("charts.emptyDescription"),className:"h-full"}):o.jsx(bvs,{children:d})})]})}const xvs=[1,2,3,4,5,6,7,8,9,10,11,12];function Yw(e){return`var(--chart-${(e-1)%xvs.length+1})`}const $vs={zIndex:"var(--z-tooltip)",pointerEvents:"none"},wvs={background:"var(--popover)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 18px 60px rgba(13,17,23,0.14)",color:"var(--popover-foreground)",fontSize:12},kvs={color:"var(--muted-foreground)",fontWeight:500},Cvs={color:"var(--foreground)"},iG={allowEscapeViewBox:{x:!1,y:!0},contentStyle:wvs,itemStyle:Cvs,labelStyle:kvs,wrapperStyle:$vs},lG={fontSize:12,paddingTop:12};function Svs(e,t="(other)"){return[...e].sort((n,a)=>{const s=n.dataKey===t,r=a.dataKey===t;return s!==r?s?1:-1:Number(a.value)-Number(n.value)})}var Avs=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdate
907Capture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function Dj(e){if(typeof e!="string")return!1;var t=Avs;return t.includes(e)}var Tvs=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Rvs=new Set(Tvs);function cG(e){return typeof e!="string"?!1:Rvs.has(e)}function dG(e){return typeof e=="string"&&e.startsWith("data-")}function Is(e){if(typeof e!="object"||e===null)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(cG(n)||dG(n))&&(t[n]=e[n]);return t}function gy(e){if(e==null)return null;if(h.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return Is(t)}return typeof e=="object"&&!Array.isArray(e)?Is(e):null}function no(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(cG(n)||dG(n)||Dj(n))&&(t[n]=e[n]);return t}function Pvs(e){return e==null?null:h.isValidElement(e)?no(e.props):typeof e=="object"&&!Array.isArray(e)?no(e):null}var _vs=["children","width","height","viewBox","className","style","title","desc"];function BR(){return BR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},BR.apply(null,arguments)}function jvs(e,t){if(e==null)return{};var n,a,s=Nvs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Nvs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Mj=h.forwardRef((e,t)=>
vendor: 5,464 bytes, line 907
907{var{children:n,width:a,height:s,viewBox:r,className:i,style:c,title:d,desc:m}=e,f=jvs(e,_vs),p=r||{width:a,height:s,x:0,y:0},y=Lt("recharts-surface",i);return h.createElement("svg",BR({},no(f),{className:y,width:a,height:s,style:c,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height),ref:t}),h.createElement("title",null,d),h.createElement("desc",null,m),n)}),Dvs=["children","className"];function FR(){return FR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},FR.apply(null,arguments)}function Mvs(e,t){if(e==null)return{};var n,a,s=Evs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Evs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Fa=h.forwardRef((e,t)=>{var{children:n,className:a}=e,s=Mvs(e,Dvs),r=Lt("recharts-layer",a);return h.createElement("g",FR({className:r},no(s),{ref:t}),n)}),uG=h.createContext(null),Ivs=()=>h.useContext(uG);function on(e){return function(){return e}}const ZBs=Math.abs,JBs=Math.atan2,mG=Math.cos,e6s=Math.max,t6s=Math.min,Wx=Math.sin,Sr=Math.sqrt,n6s=1e-12,yp=Math.PI,NL=yp/2,Qw=2*yp;function a6s(e){return e>1?0:e<-1?yp:Math.acos(e)}function o6s(e){return e>=1?NL:e<=-1?-NL:Math.asin(e)}const zR=Math.PI,qR=2*zR,$d=1e-6,Ovs=qR-$d;function pG(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Lvs(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return pG;const n=10**t;return function(a){this._+=a[0];for(let s=1,r=a.length;s<r;++s)this._+=Math.round(arguments[s]*n)/n+a[s]}}class Uvs{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?pG:Lvs(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,a,s){this._append`Q${+t},${+n},${this._x1=+a},${this._y1=+s}`}bezierCurveTo(t,n,a,s,r,i){this._append`C${+t},${+n},${+a},${+s},${this._x1=+r},${this._y1=+i}`}arcTo(t,n,a,s,r){if(t=+t,n=+n,a=+a,s=+s,r=+r,r<0)throw new Error(`negative radius: ${r}`);let i=this._x1,c=this._y1,d=a-t,m=s-n,f=i-t,p=c-n,y=f*f+p*p;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(y>$d)if(!(Math.abs(p*d-m*f)>$d)||!r)this._append`L${this._x1=t},${this._y1=n}`;else{let v=a-i,$=s-c,x=d*d+m*m,w=v*v+$*$,S=Math.sqrt(x),k=Math.sqrt(y),T=r*Math.tan((zR-Math.acos((x+y-w)/(2*S*k)))/2),R=T/k,_=T/S;Math.abs(R-1)>$d&&this._append`L${t+R*f},${n+R*p}`,this._append`A${r},${r},0,0,${+(p*v>f*$)},${this._x1=t+_*d},${this._y1=n+_*m}`}}arc(t,n,a,s,r,i){if(t=+t,n=+n,a=+a,i=!!i,a<0)throw new Error(`negative radius: ${a}`);let c=a*Math.cos(s),d=a*Math.sin(s),m=t+c,f=n+d,p=1^i,y=i?s-r:r-s;this._x1===null?this._append`M${m},${f}`:(Math.abs(this._x1-m)>$d||Math.abs(this._y1-f)>$d)&&this._append`L${m},${f}`,a&&(y<0&&(y=y%qR+qR),y>Ovs?this._append`A${a},${a},0,1,${p},${t-c},${n-d}A${a},${a},0,1,${p},${this._x1=m},${this._y1=f}`:y>$d&&this._append`A${a},${a},0,${+(y>=zR)},${p},${this._x1=t+a*Math.cos(r)},${this._y1=n+a*Math.sin(r)}`)}rect(t,n,a,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${a=+a}v${+s}h${-a}Z`}toString(){return this._}}function Ej(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const a=Math.floor(n);if(!(a>=0))throw new RangeError(`invalid digits: ${n}`);t=a}return e},()=>new Uvs(t)}function Ij(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function fG(e){this._context=e}fG.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Xw(e){return new fG(e)}function gG(e){return e[0]}function hG(e){return e[1]}function yG(e,t){var n=on(!0),a=null,s=Xw,r=null,i=Ej(c);e=typeof e=="function"?e:e===void 0?gG:on(e),t=typeof t=="function"?t:t===void 0?hG:on(t);function c(d){var m,f=(d=Ij(d)).length,p,y=!1,v;for(a==null&&(r=s(v=i())),m=0;m<=f;++m)!(m<f&&n(p=d[m],m,d))===y&&((y=!y)?r.lineStart():r.lineEnd()),y&&r.point(+e(p,m,d),+t(p,m,d));if(v)return r=null,v+""||null}return c.x=function(d){return arguments.length?(e=typeof d=="function"?d:on(+d),c):e},c.y=function(d){return arguments.length?(t=typeof d=="function"?d:on(+d),c):t},c.defined=function(d){return arguments.length?(n=typeof d=="function"?d:on(!!d),c):n},c.curve=function(d){return arguments.length?(s=d,a!=null&&(r=s(a)),c):s},c.context=function(d){return arguments.length?(d==null?a=r=null:r=s(a=d),c):a},c}function $b(e,t,n){var a=null,s=on(!0),r=null,i=Xw,c=null,d=Ej(m);e=typeof e=="function"?e:e===void 0?gG:on(+e),t=typeof t=="function"?t:on(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?hG:on(+n);function m(p){var y,v,$,x=(p=Ij(p)).length,w,S=!1,k,T=new Array(x),R=new Array(x);for(r==null&&(c=i(k=d())),y=0;y<=x;
907++y){if(!(y<x&&s(w=p[y],y,p))===S)if(S=!S)v=y,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),$=y-1;$>=v;--$)c.point(T[$],R[$]);c.lineEnd(),c.areaEnd()}S&&(T[y]=+e(w,y,p),R[y]=+t(w,y,p),c.point(a?+a(w,y,p):T[y],n?+n(w,y,p):R[y]))}if(k)return c=null,k+""||null}function f(){return yG().defined(s).curve(i).context(r)}return m.x=function(p){return arguments.length?(e=typeof p=="function"?p:on(+p),a=null,m):e},m.x0=function(p){return arguments.length?(e=typeof p=="function"?p:on(+p),m):e},m.x1=function(p){return arguments.length?(a=p==null?null:typeof p=="function"?p:on(+p),m):a},m.y=function(p){return arguments.length?(t=typeof p=="function"?p:on(+p),n=null,m):t},m.y0=function(p){return arguments.length?(t=typeof p=="function"?p:on(+p),m):t},m.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:on(+p),m):n},m.lineX0=m.lineY0=function(){return f().x(e).y(t)},m.lineY1=function(){return f().x(e).y(n)},m.lineX1=function(){return f().x(a).y(t)},m.defined=function(p){return arguments.length?(s=typeof p=="function"?p:on(!!p),m):s},m.curve=function(p){return arguments.length?(i=p,r!=null&&(c=i(r)),m):i},m.context=function(p){return arguments.length?(p==null?r=c=null:c=i(r=p),m):r},m}class vG{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function Bvs(e){return new vG(e,!0)}function Fvs(e){return new vG(e,!1)}const Oj={draw(e,t){const n=Sr(t/yp);e.moveTo(n,0),e.arc(0,0,n,0,Qw)}},zvs={draw(e,t){const n=Sr(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},bG=Sr(1/3),qvs=bG*2,Hvs={draw(e,t){const n=Sr(t/qvs),a=n*bG;e.moveTo(0,-n),e.lineTo(a,0),e.lineTo(0,n),e.lineTo(-a,0),e.closePath()}},Vvs={draw(e,t){const n=Sr(t),a=-n/2;e.rect(a,a,n,n)}},Kvs=.8908130915292852,xG=Wx(yp/10)/Wx(7*yp/10),Gvs=Wx(Qw/10)*xG,Wvs=-mG(Qw/10)*xG,Yvs={draw(e,t){const n=Sr(t*Kvs),a=Gvs*n,s=Wvs*n;e.moveTo(0,-n),e.lineTo(a,s);for(let r=1;r<5;++r){const i=Qw*r/5,c=mG(i),d=Wx(i);e.lineTo(d*n,-c*n),e.lineTo(c*a-d*s,d*a+c*s)}e.closePath()}},AS=Sr(3),Qvs={draw(e,t){const n=-Sr(t/(AS*3));e.moveTo(0,n*2),e.lineTo(-AS*n,-n),e.lineTo(AS*n,-n),e.closePath()}},ws=-.5,ks=Sr(3)/2,HR=1/Sr(12),Xvs=(HR/2+1)*3,Zvs={draw(e,t){const n=Sr(t/Xvs),a=n/2,s=n*HR,r=a,i=n*HR+n,c=-r,d=i;e.moveTo(a,s),e.lineTo(r,i),e.lineTo(c,d),e.lineTo(ws*a-ks*s,ks*a+ws*s),e.lineTo(ws*r-ks*i,ks*r+ws*i),e.lineTo(ws*c-ks*d,ks*c+ws*d),e.lineTo(ws*a+ks*s,ws*s-ks*a),e.lineTo(ws*r+ks*i,ws*i-ks*r),e.lineTo(ws*c+ks*d,ws*d-ks*c),e.closePath()}};function Jvs(e,t){let n=null,a=Ej(s);e=typeof e=="function"?e:on(e||Oj),t=typeof t=="function"?t:on(t===void 0?64:+t);function s(){let r;if(n||(n=r=a()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return s.type=function(r){return arguments.length?(e=typeof r=="function"?r:on(r),s):e},s.size=function(r){return arguments.length?(t=typeof r=="function"?r:on(+r),s):t},s.context=function(r){return arguments.length?(n=r??null,s):n},s}function Yx(){}function Qx(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function $G(e){this._context=e}$G.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Qx(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Qx(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ebs(e){return new $G(e)}function wG(e){this._context=e}wG.prototype={areaStart:Yx,areaEnd:Yx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Qx(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function tbs(e){return new wG(e)}function kG(e){this._context=e}kG.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,a=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 3:this._point=4;default:Qx(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function nbs(e){return new kG(e)}function CG(e){this._context=e}CG.prototype={areaStart:Yx,areaEnd:Yx,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function abs(e){return new CG(e)}function DL(e){return e<0?-1:1}function ML(e,t,n){var a=e._x1-e._x0,s=t-e._x1,r=(e._y1-e._y0)/(a||s<0&&-0),i=(n-e._y1)/(s||a<0&&-0),c=(r*s+i*a)/(a+s);return(DL(r)+DL(i))*Math.min(Math.abs(r),Math.abs(i),.5*Math.abs(c))||0}function EL(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}
907function TS(e,t,n){var a=e._x0,s=e._y0,r=e._x1,i=e._y1,c=(r-a)/3;e._context.bezierCurveTo(a+c,s+c*t,r-c,i-c*n,r,i)}function Xx(e){this._context=e}Xx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:TS(this,this._t0,EL(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,TS(this,EL(this,n=ML(this,e,t)),n);break;default:TS(this,this._t0,n=ML(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function SG(e){this._context=new AG(e)}(SG.prototype=Object.create(Xx.prototype)).point=function(e,t){Xx.prototype.point.call(this,t,e)};function AG(e){this._context=e}AG.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,a,s,r){this._context.bezierCurveTo(t,e,a,n,r,s)}};function obs(e){return new Xx(e)}function sbs(e){return new SG(e)}function TG(e){this._context=e}TG.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var a=IL(e),s=IL(t),r=0,i=1;i<n;++r,++i)this._context.bezierCurveTo(a[0][r],s[0][r],a[1][r],s[1][r],e[i],t[i]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function IL(e){var t,n=e.length-1,a,s=new Array(n),r=new Array(n),i=new Array(n);for(s[0]=0,r[0]=2,i[0]=e[0]+2*e[1],t=1;t<n-1;++t)s[t]=1,r[t]=4,i[t]=4*e[t]+2*e[t+1];for(s[n-1]=2,r[n-1]=7,i[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)a=s[t]/r[t-1],r[t]-=a,i[t]-=a*i[t-1];for(s[n-1]=i[n-1]/r[n-1],t=n-2;t>=0;--t)s[t]=(i[t]-s[t+1])/r[t];for(r[n-1]=(e[n]+s[n-1])/2,t=0;t<n-1;++t)r[t]=2*e[t+1]-s[t+1];return[s,r]}function rbs(e){return new TG(e)}function Zw(e,t){this._context=e,this._t=t}Zw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function ibs(e){return new Zw(e,.5)}function lbs(e){return new Zw(e,0)}function cbs(e){return new Zw(e,1)}function tu(e,t){if((i=e.length)>1)for(var n=1,a,s,r=e[t[0]],i,c=r.length;n<i;++n)for(s=r,r=e[t[n]],a=0;a<c;++a)r[a][1]+=r[a][0]=isNaN(s[a][1])?s[a][0]:s[a][1]}function VR(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function dbs(e,t){return e[t]}function ubs(e){const t=[];return t.key=e,t}function mbs(){var e=on([]),t=VR,n=tu,a=dbs;function s(r){var i=Array.from(e.apply(this,arguments),ubs),c,d=i.length,m=-1,f;for(const p of r)for(c=0,++m;c<d;++c)(i[c][m]=[0,+a(p,i[c].key,m,r)]).data=p;for(c=0,f=Ij(t(i));c<d;++c)i[f[c]].index=c;return n(i,f),i}return s.keys=function(r){return arguments.length?(e=typeof r=="function"?r:on(Array.from(r)),s):e},s.value=function(r){return arguments.length?(a=typeof r=="function"?r:on(+r),s):a},s.order=function(r){return arguments.length?(t=r==null?VR:typeof r=="function"?r:on(Array.from(r)),s):t},s.offset=function(r){return arguments.length?(n=r??tu,s):n},s}function pbs(e,t){if((a=e.length)>0){for(var n,a,s=0,r=e[0].length,i;s<r;++s){for(i=n=0;n<a;++n)i+=e[n][s][1]||0;if(i)for(n=0;n<a;++n)e[n][s][1]/=i}tu(e,t)}}function fbs(e,t){if((s=e.length)>0){for(var n=0,a=e[t[0]],s,r=a.length;n<r;++n){for(var i=0,c=0;i<s;++i)c+=e[i][n][1]||0;a[n][1]+=a[n][0]=-c/2}tu(e,t)}}function gbs(e,t){if(!(!((i=e.length)>0)||!((r=(s=e[t[0]]).length)>0))){for(var n=0,a=1,s,r,i;a<r;++a){for(var c=0,d=0,m=0;c<i;++c){for(var f=e[t[c]],p=f[a][1]||0,y=f[a-1][1]||0,v=(p-y)/2,$=0;$<c;++$){var x=e[t[$]],w=x[a][1]||0,S=x[a-1][1]||0;v+=w-S}d+=p,m+=v*p}s[a-1][1]+=s[a-1][0]=n,d&&(n-=m/d)}s[a-1][1]+=s[a-1][0]=n,tu(e,t)}}var RS={},PS={},OL;
907function hbs(){return OL||(OL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return n==="__proto__"}e.isUnsafeProperty=t})(PS)),PS}var _S={},LL;function RG(){return LL||(LL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){switch(typeof n){case"number":case"symbol":return!1;case"string":return n.includes(".")||n.includes("[")||n.includes("]")}}e.isDeepKey=t})(_S)),_S}var jS={},UL;function Lj(){return UL||(UL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return typeof n=="string"||typeof n=="symbol"?n:Object.is(n?.valueOf?.(),-0)?"-0":String(n)}e.toKey=t})(jS)),jS}var NS={},DS={},BL;function ybs(){return BL||(BL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){if(n==null)return"";if(typeof n=="string")return n;if(Array.isArray(n))return n.map(t).join(",");const a=String(n);return a==="0"&&Object.is(Number(n),-0)?"-0":a}e.toString=t})(DS)),DS}var FL;function Uj(){return FL||(FL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=ybs(),n=Lj();function a(s){if(Array.isArray(s))return s.map(n.toKey);if(typeof s=="symbol")return[s];s=t.toString(s);const r=[],i=s.length;if(i===0)return r;let c=0,d="",m="",f=!1;for(s.charCodeAt(0)===46&&(r.push(""),c++);c<i;){const p=s[c];m?p==="\\"&&c+1<i?(c++,d+=s[c]):p===m?m="":d+=p:f?p==='"'||p==="'"?m=p:p==="]"?(f=!1,r.push(d),d=""):d+=p:p==="["?(f=!0,d&&(r.push(d),d="")):p==="."?d&&(r.push(d),d=""):d+=p,c++}return d&&r.push(d),r}e.toPath=a})(NS)),NS}var zL;function Bj(){return zL||(zL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=hbs(),n=RG(),a=Lj(),s=Uj();function r(c,d,m){if(c==null)return m;switch(typeof d){case"string":{if(t.isUnsafeProperty(d))return m;const f=c[d];return f===void 0?n.isDeepKey(d)?r(c,s.toPath(d),m):m:f}case"number":case"symbol":{typeof d=="number"&&(d=a.toKey(d));const f=c[d];return f===void 0?m:f}default:{if(Array.isArray(d))return i(c,d,m);if(Object.is(d?.valueOf(),-0)?d="-0":d=String(d),t.isUnsafeProperty(d))return m;const f=c[d];return f===void 0?m:f}}}function i(c,d,m){if(d.length===0)return m;let f=c;for(let p=0;p<d.length;p++){if(f==null||t.isUnsafeProperty(d[p]))return m;f=f[d[p]]}return f===void 0?m:f}e.get=r})(RS)),RS}var MS,qL;function vbs(){return qL||(qL=1,MS=Bj().get),MS}var bbs=vbs();const vp=il(bbs);var xbs=4;function hc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:xbs,n=10**t,a=Math.round(e*n)/n;return Object.is(a,-0)?0:a}function An(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];return e.reduce((s,r,i)=>{var c=n[i-1];return typeof c=="string"?s+c+r:c!==void 0?s+hc(c)+r:s+r},"")}var Co=e=>e===0?0:e>0?1:-1,hr=e=>typeof e=="number"&&e!=+e,KR=e=>typeof e=="string"&&e.indexOf("%")===e.length-1,Fe=e=>(typeof e=="number"||e instanceof Number)&&!hr(e),si=e=>Fe(e)||typeof e=="string",$bs=0,hh=e=>{var t=++$bs;return"".concat(e||"").concat(t)},yr=function(t,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Fe(t)&&typeof t!="string")return a;var r;if(KR(t)){if(n==null)return a;var i=t.indexOf("%");r=n*parseFloat(t.slice(0,i))/100}else r=+t;return hr(r)&&(r=a),s&&n!=null&&r>n&&(r=n),r},PG=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},a=0;a<t;a++)if(!n[String(e[a])])n[String(e[a])]=!0;else return!0;return!1};function bn(e,t,n){return Fe(e)&&Fe(t)?hc(e+n*(t-e)):t}function _G(e,t,n){if(!(!e||!e.length))return e.find(a=>a&&(typeof t=="function"?t(a):vp(a,t))===n)}var $n=e=>e===null||typeof e>"u",hy=e=>$n(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function So(e){return e!=null}function Wp(){}var wbs=["type","size","sizeType"];function GR(){return GR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},GR.apply(null,arguments)}function HL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function VL(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
907t%2?HL(Object(n),!0).forEach(function(a){kbs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):HL(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function kbs(e,t,n){return(t=Cbs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cbs(e){var t=Sbs(e,"string");return typeof t=="symbol"?t:t+""}function Sbs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Abs(e,t){if(e==null)return{};var n,a,s=Tbs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Tbs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var jG={symbolCircle:Oj,symbolCross:zvs,symbolDiamond:Hvs,symbolSquare:Vvs,symbolStar:Yvs,symbolTriangle:Qvs,symbolWye:Zvs},Rbs=Math.PI/180,Pbs=e=>{var t="symbol".concat(hy(e));return jG[t]||Oj},_bs=(e,t,n)=>{if(t==="area")return e;switch(n){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var a=18*Rbs;return 1.25*e*e*(Math.tan(a)-Math.tan(a*2)*Math.tan(a)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},jbs=(e,t)=>{jG["symbol".concat(hy(e))]=t},Fj=e=>{var{type:t="circle",size:n=64,sizeType:a="area"}=e,s=Abs(e,wbs),r=VL(VL({},s),{},{type:t,size:n,sizeType:a}),i="circle";typeof t=="string"&&(i=t);var c=()=>{var y=Pbs(i),v=Jvs().type(y).size(_bs(n,a,i)),$=v();if($!==null)return $},{className:d,cx:m,cy:f}=r,p=no(r);return Fe(m)&&Fe(f)&&Fe(n)?h.createElement("path",GR({}
907,p,{className:Lt("recharts-symbols",d),transform:"translate(".concat(m,", ").concat(f,")"),d:c()})):null};Fj.registerSymbol=jbs;var NG=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,zj=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(h.isValidElement(e)&&(n=e.props),typeof n!="object"&&typeof n!="function")return null;var a={};return Object.keys(n).forEach(s=>{Dj(s)&&typeof n[s]=="function"&&(a[s]=(r=>n[s](n,r)))}),a},Nbs=(e,t,n)=>a=>(e(t,n,a),null),Jw=(e,t,n)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var a=null;return Object.keys(e).forEach(s=>{var r=e[s];Dj(s)&&typeof r=="function"&&(a||(a={}),a[s]=Nbs(r,t,n))}),a};function KL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Dbs(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?KL(Object(n),!0).forEach(function(a){Mbs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KL(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Mbs(e,t,n){return(t=Ebs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ebs(e){var t=Ibs(e,"string");return typeof t=="symbol"?t:t+""}function Ibs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Va(e,t){var n=Dbs({},e),a=t,s=Object.keys(t),r=s.reduce((i,c)=>(i[c]===void 0&&a[c]!==void 0&&(i[c]=a[c]),i),n);return r}function Zx(){return Zx=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Zx.apply(null,arguments)}function GL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function DG(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?GL(Object(n),!0).forEach(function(a){Obs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GL(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Obs(e,t,n){return(t=Lbs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Lbs(e){var t=Ubs(e,"string");return typeof t=="symbol"?t:t+""}function Ubs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var As=32,Bbs={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle",labelStyle:{}};function Fbs(e){if(typeof e=="object"&&e!==null&&"strokeDasharray"in e)return String(e.strokeDasharray)}function zbs(e){var{data:t,iconType:n,inactiveColor:a}=e,s=As/2,r=As/6,i=As/3,c=t.inactive?a:t.color,d=n??t.type;if(d==="none")return null;if(d==="plainline")return h.createElement("line",{strokeWidth:4,fill:"none",stroke:c,strokeDasharray:Fbs(t.payload),x1:0,y1:s,x2:As,y2:s,className:"recharts-legend-icon"});if(d==="line")return h.createElement("path",{strokeWidth:4,fill:"none",stroke:c,d:"M0,".concat(s,"h").concat(i,` 908 A`).concat(r,",").concat(r,",0,1,1,").concat(2*i,",").concat(s,` 909 H`).concat(As,"M").concat(2*i,",").concat(s,` 910 A`).concat(r,",").concat(r,",0,1,1,").concat(i,",").concat(s),className:"recharts-legend-icon"});if(d==="rect")return h.createElement("path",{stroke:"none",fill:c,d:"M0,".concat(As/8,"h").concat(As,"v").concat(As*3/4,"h").concat(-As,"z"),className:"recharts-legend-icon"});if(h.isValidElement(t.legendIcon)){var m=DG({},t);return delete m.legendIcon,h.cloneElement(t.legendIcon,m)}return h.createElement(Fj,{fill:c,cx:s,cy:s,size:As,sizeType:"diameter",type:d})}function qbs(e){var{payload:t,iconSize:n,layout:a,formatter:s,inactiveColor:r,iconType:i,labelStyle:c}=e,d={x:0,y:0,width:As,height:As},m={display:a==="horizontal"?"inline-block":"block",marginRight:10},f={display:"inline-block",verticalAlign:"middle",marginRight:4};return t.map((p,y)=>{var v=p.formatter||s,$=Lt({"recharts-legend-item":!0,["legend-item-".concat(y)]:!0,inactive:p.inactive});if(p.type==="none")return null;var x=typeof c=="object"?DG({},c):{};x.color=p.inactive?r:x.color||p.color;var w=v?v(p.value,p,y):p.value;return h.createElement("li",Zx({className:$,style:m,key:"legend-item-".concat(y)},Jw(e,p,y)),h.createElement(Mj,{width:n,height:n,viewBox:d,style:f,"aria-label":"".concat(p.value," legend icon")},h.createElement(zbs,{data:p,iconType:i,inactiveColor:r})),h.createElement("span",{className:"recharts-legend-item-text",style:x},w))})}var Hbs=e=>{var t=Va(e,Bbs),{payload:n,layout:a,align:s}=t;if(!n||!n.length)return null;var r={padding:0,margin:0,textAlign:a==="horizontal"?s:"left"};return h.createElement("ul",{className:"recharts-default-legend",style:r}
910,h.createElement(qbs,Zx({},t,{payload:n})))},ES={},IS={},WL;function Vbs(){return WL||(WL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n,a){const s=new Map;for(let r=0;r<n.length;r++){const i=n[r],c=a(i,r,n);s.has(c)||s.set(c,i)}return Array.from(s.values())}e.uniqBy=t})(IS)),IS}var OS={},YL;function Kbs(){return YL||(YL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n,a){return function(...s){return n.apply(this,s.slice(0,a))}}e.ary=t})(OS)),OS}var LS={},QL;function MG(){return QL||(QL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return n}e.identity=t})(LS)),LS}var US={},BS={},FS={},XL;function Gbs(){return XL||(XL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return Number.isSafeInteger(n)&&n>=0}e.isLength=t})(FS)),FS}var ZL;function EG(){return ZL||(ZL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Gbs();function n(a){return a!=null&&typeof a!="function"&&t.isLength(a.length)}e.isArrayLike=n})(BS)),BS}var zS={},JL;function Wbs(){return JL||(JL=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return typeof n=="object"&&n!==null}e.isObjectLike=t})(zS)),zS}var e4;function Ybs(){return e4||(e4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=EG(),n=Wbs();function a(s){return n.isObjectLike(s)&&t.isArrayLike(s)}e.isArrayLikeObject=a})(US)),US}var qS={},HS={},t4;function Qbs(){return t4||(t4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Bj();function n(a){return function(s){return t.get(s,a)}}e.property=n})(HS)),HS}var VS={},KS={},GS={},WS={},n4;function IG(){return n4||(n4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return n!==null&&(typeof n=="object"||typeof n=="function")}e.isObject=t})(WS)),WS}var YS={},a4;function OG(){return a4||(a4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return n==null||typeof n!="object"&&typeof n!="function"}e.isPrimitive=t})(YS)),YS}var QS={},o4;function LG(){return o4||(o4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n,a){return n===a||Number.isNaN(n)&&Number.isNaN(a)}e.isEqualsSameValueZero=t})(QS)),QS}var s4;function Xbs(){return s4||(s4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=IG(),n=OG(),a=LG();function s(f,p,y){return typeof y!="function"?s(f,p,()=>{}):r(f,p,function v($,x,w,S,k,T){const R=y($,x,w,S,k,T);return R!==void 0?!!R:r($,x,v,T)},new Map)}function r(f,p,y,v){if(p===f)return!0;switch(typeof p){case"object":return i(f,p,y,v);case"function":return Object.keys(p).length>0?r(f,{...p},y,v):a.isEqualsSameValueZero(f,p);default:return t.isObject(f)?typeof p=="string"?p==="":!0:a.isEqualsSameValueZero(f,p)}}function i(f,p,y,v){if(p==null)return!0;if(Array.isArray(p))return d(f,p,y,v);if(p instanceof Map)return c(f,p,y,v);if(p instanceof Set)return m(f,p,y,v);const $=Object.keys(p);if(f==null||n.isPrimitive(f))return $.length===0;if($.length===0)return!0;if(v?.has(p))return v.get(p)===f;v?.set(p,f);try{for(let x=0;x<$.length;x++){const w=$[x];if(!n.isPrimitive(f)&&!(w in f)||p[w]===void 0&&f[w]!==void 0||p[w]===null&&f[w]!==null||!y(f[w],p[w],w,f,p,v))return!1}return!0}finally{v?.delete(p)}}function c(f,p,y,v){if(p.size===0)return!0;if(!(f instanceof Map))return!1;for(const[$,x]of p.entries()){const w=f.get($);if(y(w,x,$,f,p,v)===!1)return!1}return!0}function d(f,p,y,v){if(p.length===0)return!0;if(!Array.isArray(f))return!1;const $=new Set;for(let x=0;x<p.length;x++){const w=p[x];let S=!1;for(let k=0;k<f.length;k++){if($.has(k))continue;const T=f[k];let R=!1;if(y(T,w,x,f,p,v)&&(R=!0),R){$.add(k),S=!0;break}}if(!S)return!1}return!0}function m(f,p,y,v){return p.size===0?!0:f instanceof Set?d([...f],[...p],y,v):!1}e.isMatchWith=s,e.isSetMatch=m})(GS)),GS}var r4;function UG(){return r4||(r4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Xbs();function n(a,s){return t.isMatchWith(a,s,()=>{})}e.isMatch=n})(KS)),KS}var XS={},ZS={},JS={},i4;function Zbs(){return i4||(i4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return Object.getOwnPropertySymbols(n).filter(a=>Object.prototype.propertyIsEnumerable.call(n,a))}e.getSymbols=t})(JS)),JS}var eA={},l4;function qj(){return l4||(l4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});
910function t(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}e.getTag=t})(eA)),eA}var tA={},c4;function BG(){return c4||(c4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t="[object RegExp]",n="[object String]",a="[object Number]",s="[object Boolean]",r="[object Arguments]",i="[object Symbol]",c="[object Date]",d="[object Map]",m="[object Set]",f="[object Array]",p="[object Function]",y="[object ArrayBuffer]",v="[object Object]",$="[object Error]",x="[object DataView]",w="[object Uint8Array]",S="[object Uint8ClampedArray]",k="[object Uint16Array]",T="[object Uint32Array]",R="[object BigUint64Array]",_="[object Int8Array]",P="[object Int16Array]",j="[object Int32Array]",N="[object BigInt64Array]",I="[object Float32Array]",z="[object Float64Array]";e.argumentsTag=r,e.arrayBufferTag=y,e.arrayTag=f,e.bigInt64ArrayTag=N,e.bigUint64ArrayTag=R,e.booleanTag=s,e.dataViewTag=x,e.dateTag=c,e.errorTag=$,e.float32ArrayTag=I,e.float64ArrayTag=z,e.functionTag=p,e.int16ArrayTag=P,e.int32ArrayTag=j,e.int8ArrayTag=_,e.mapTag=d,e.numberTag=a,e.objectTag=v,e.regexpTag=t,e.setTag=m,e.stringTag=n,e.symbolTag=i,e.uint16ArrayTag=k,e.uint32ArrayTag=T,e.uint8ArrayTag=w,e.uint8ClampedArrayTag=S})(tA)),tA}var nA={},aA={},d4;function Jbs(){return d4||(d4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof xI=="object"&&xI||(function(){return this})()||Function("return this")();e.globalThis=t})(aA)),aA}var u4;function exs(){return u4||(u4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Jbs();function n(a){return typeof t.globalThis.Buffer<"u"&&t.globalThis.Buffer.isBuffer(a)}e.isBuffer=n})(nA)),nA}var oA={},m4;function txs(){return m4||(m4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}e.isTypedArray=t})(oA)),oA}var p4;function FG(){return p4||(p4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Zbs(),n=qj(),a=BG(),s=exs(),r=OG(),i=txs();function c(p,y){return d(p,void 0,p,new Map,y)}function d(p,y,v,$=new Map,x=void 0){const w=x?.(p,y,v,$);if(w!==void 0)return w;if(r.isPrimitive(p))return p;if($.has(p))return $.get(p);if(Array.isArray(p)){const S=new Array(p.length);$.set(p,S);for(let k=0;k<p.length;k++)S[k]=d(p[k],k,v,$,x);return Object.hasOwn(p,"index")&&(S.index=p.index),Object.hasOwn(p,"input")&&(S.input=p.input),S}if(p instanceof Date)return new Date(p.getTime());if(p instanceof RegExp){const S=new RegExp(p.source,p.flags);return S.lastIndex=p.lastIndex,S}if(p instanceof Map){const S=new Map;$.set(p,S);for(const[k,T]of p)S.set(k,d(T,k,v,$,x));return S}if(p instanceof Set){const S=new Set;$.set(p,S);for(const k of p)S.add(d(k,void 0,v,$,x));return S}if(s.isBuffer(p))return p.subarray();if(i.isTypedArray(p)){const S=new(Object.getPrototypeOf(p)).constructor(p.length);$.set(p,S);for(let k=0;k<p.length;k++)S[k]=d(p[k],k,v,$,x);return S}if(p instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&p instanceof SharedArrayBuffer)return p.slice(0);if(p instanceof DataView){const S=new DataView(p.buffer.slice(0),p.byteOffset,p.byteLength);return $.set(p,S),m(S,p,v,$,x),S}if(typeof File<"u"&&p instanceof File){const S=new File([p],p.name,{type:p.type});return $.set(p,S),m(S,p,v,$,x),S}if(typeof Blob<"u"&&p instanceof Blob){const S=new Blob([p],{type:p.type});return $.set(p,S),m(S,p,v,$,x),S}if(p instanceof Error){const S=structuredClone(p);return $.set(p,S),S.message=p.message,S.name=p.name,S.stack=p.stack,S.cause=p.cause,S.constructor=p.constructor,m(S,p,v,$,x),S}if(p instanceof Boolean){const S=new Boolean(p.valueOf());return $.set(p,S),m(S,p,v,$,x),S}if(p instanceof Number){const S=new Number(p.valueOf());return $.set(p,S),m(S,p,v,$,x),S}if(p instanceof String){const S=new String(p.valueOf());return $.set(p,S),m(S,p,v,$,x),S}if(typeof p=="object"&&f(p)){const S=Object.create(Object.getPrototypeOf(p)
910);return $.set(p,S),m(S,p,v,$,x),S}return p}function m(p,y,v=p,$,x){const w=[...Object.keys(y),...t.getSymbols(y)];for(let S=0;S<w.length;S++){const k=w[S],T=Object.getOwnPropertyDescriptor(p,k);(T==null||T.writable)&&(p[k]=d(y[k],k,v,$,x))}}function f(p){switch(n.getTag(p)){case a.argumentsTag:case a.arrayTag:case a.arrayBufferTag:case a.dataViewTag:case a.booleanTag:case a.dateTag:case a.float32ArrayTag:case a.float64ArrayTag:case a.int8ArrayTag:case a.int16ArrayTag:case a.int32ArrayTag:case a.mapTag:case a.numberTag:case a.objectTag:case a.regexpTag:case a.setTag:case a.stringTag:case a.symbolTag:case a.uint8ArrayTag:case a.uint8ClampedArrayTag:case a.uint16ArrayTag:case a.uint32ArrayTag:return!0;default:return!1}}e.cloneDeepWith=c,e.cloneDeepWithImpl=d,e.copyProperties=m})(ZS)),ZS}var f4;function nxs(){return f4||(f4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=FG();function n(a){return t.cloneDeepWithImpl(a,void 0,a,new Map,void 0)}e.cloneDeep=n})(XS)),XS}var g4;function axs(){return g4||(g4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=UG(),n=nxs();function a(s){return s=n.cloneDeep(s),r=>t.isMatch(r,s)}e.matches=a})(VS)),VS}var sA={},rA={},iA={},h4;function oxs(){return h4||(h4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=FG(),n=qj(),a=BG();function s(r,i){return t.cloneDeepWith(r,(c,d,m,f)=>{const p=i?.(c,d,m,f);if(p!==void 0)return p;if(typeof r=="object"){if(n.getTag(r)===a.objectTag&&typeof r.constructor!="function"){const y={};return f.set(r,y),t.copyProperties(y,r,m,f),y}switch(Object.prototype.toString.call(r)){case a.numberTag:case a.stringTag:case a.booleanTag:{const y=new r.constructor(r?.valueOf());return t.copyProperties(y,r),y}case a.argumentsTag:{const y={};return t.copyProperties(y,r),y.length=r.length,y[Symbol.iterator]=r[Symbol.iterator],y}default:return}}})}e.cloneDeepWith=s})(iA)),iA}var y4;function sxs(){return y4||(y4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=oxs();function n(a){return t.cloneDeepWith(a)}e.cloneDeep=n})(rA)),rA}var lA={},cA={},v4;function zG(){return v4||(v4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=/^(?:0|[1-9]\d*)$/;function n(a,s=Number.MAX_SAFE_INTEGER){switch(typeof a){case"number":return Number.isInteger(a)&&a>=0&&a<s;case"symbol":return!1;case"string":return t.test(a)}}e.isIndex=n})(cA)),cA}var dA={},b4;function rxs(){return b4||(b4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=qj();function n(a){return a!==null&&typeof a=="object"&&t.getTag(a)==="[object Arguments]"}e.isArguments=n})(dA)),dA}var x4;function ixs(){return x4||(x4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=RG(),n=zG(),a=rxs(),s=Uj();function r(i,c){let d;if(Array.isArray(c)?d=c:typeof c=="string"&&t.isDeepKey(c)&&i?.[c]==null?d=s.toPath(c):d=[c],d.length===0)return!1;let m=i;for(let f=0;f<d.length;f++){const p=d[f];if((m==null||!Object.hasOwn(m,p))&&!((Array.isArray(m)||a.isArguments(m))&&n.isIndex(p)&&p<m.length))return!1;m=m[p]}return!0}e.has=r})(lA)),lA}var $4;function lxs(){return $4||($4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=UG(),n=Lj(),a=sxs(),s=Bj(),r=ixs();function i(c,d){switch(typeof c){case"object":{Object.is(c?.valueOf(),-0)&&(c="-0");break}case"number":{c=n.toKey(c);break}}return d=a.cloneDeep(d),function(m){const f=s.get(m,c);return f===void 0?r.has(m,c):d===void 0?f===void 0:t.isMatch(f,d)}}e.matchesProperty=i})(sA)),sA}var w4;function cxs(){return w4||(w4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=MG(),n=Qbs(),a=axs(),s=lxs();function r(i){if(i==null)return t.identity;switch(typeof i){case"function":return i;case"object":return Array.isArray(i)&&i.length===2?s.matchesProperty(i[0],i[1]):a.matches(i);case"string":case"symbol":case"number":return n.property(i)}}e.iteratee=r})(qS)),qS}var k4;function dxs(){return k4||(k4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Vbs(),n=Kbs(),a=MG(),s=Ybs(),r=cxs();function i(c,d=a.identity){return s.isArrayLikeObject(c)?t.uniqBy(Array.from(c),n.ary(r.iteratee(d),1)):[]}e.uniqBy=i})(ES)),ES}var uA,C4;function uxs(){return C4||(C4=1,uA=dxs().uniqBy),uA}var mxs=uxs();const S4=il(mxs);function qG(e,t,n){return t===!0?S4(e,n):typeof t=="function"?S4(e,t):e}var mA={exports:{}},pA={};/** 911 * @license React 912 * use-sync-external-store-shim/with-selector.production.js 913 * 914 * Copyright (c) Meta Platforms, Inc. and affiliates. 915 * 916 * This source code is licensed under the MIT license found in the 917 * LICENSE file in the root directory of this source tree. 918 */var A4;function pxs(){if(A4)return pA;A4=1;var e=jp(),t=dV();function n(m,f){return m===f&&(m!==0||1/m===1/f)||m!==m&&f!==f}var a=typeof Object.is=="function"?Object.is:n,s=t.useSyncExternalStore,r=e.useRef,i=e.useEffect,c=e.useMemo,d=e.useDebugValue;return pA.useSyncExternalStoreWithSelector=function(m,f,p,y,v){var $=r(null);if($.current===null){var x={hasValue:!1,value:null};$.current=x}else x=$.current;$=c(function(){function S(P){if(!k){if(k=!0,T=P,P=y(P),v!==void 0&&x.hasValue){var j=x.value;if(v(j,P))return R=j}return R=P}if(j=R,a(T,P))return j;var N=y(P);return v!==void 0&&v(j,N)?(T=P,j):(T=P,R=N)}var k=!1,T,R,_=p===void 0?null:p;return[function(){return S(f())},_===null?void 0:function(){return S(_())}]},[f,p,y,v]);var w=s(m,$[0],$[1]);return i(function(){x.hasValue=!0,x.value=w},[w]),d(w),w},pA}var T4;function fxs(){return T4||(T4=1,mA.exports=pxs()),mA.exports}var gxs=fxs(),Hj=h.createContext(null),hxs=e=>e,gn=()=>{var e=h.useContext(Hj);return e?e.store.dispatch:hxs},mx=()=>{},yxs=()=>mx,vxs=(e,t)=>e===t;function Ge(e){var t=h.useContext(Hj),n=h.useMemo(()=>t?a=>{if(a!=null)return e(a)}:mx,[t,e]);return gxs.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:yxs,t?t.store.getState:mx,t?t.store.getState:mx,n,vxs)}function bxs(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function xxs(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function $xs(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(a=>typeof a=="function"?`function ${a.name||"unnamed"}()`:typeof a).join(", ");throw new TypeError(`${t}[${n}]`)}}var R4=e=>Array.isArray(e)?e:[e];function wxs(e){const t=Array.isArray(e[0])?e[0]:e;return $xs(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function kxs(e,t){const n=[],{length:a}=e;for(let s=0;s<a;s++)n.push(e[s].apply(null,t));return n}var Cxs=class{constructor(e){this.value=e}deref(){return this.value}},Sxs=typeof WeakRef<"u"?WeakRef:Cxs,Axs=0,P4=1;function wb(){return{s:Axs,v:void 0,o:null,p:null}}function HG(e,t={}){let n=wb();const{resultEqualityCheck:a}=t;let s,r=0;function i(){let c=n;const{length:d}=arguments;for(let p=0,y=d;p<y;p++){const v=arguments[p];if(typeof v=="function"||typeof v=="object"&&v!==null){let $=c.o;$===null&&(c.o=$=new WeakMap);const x=$.get(v);x===void 0?(c=wb(),$.set(v,c)):c=x}else{let $=c.p;$===null&&(c.p=$=new Map);const x=$.get(v);x===void 0?(c=wb(),$.set(v,c)):c=x}}const m=c;let f;if(c.s===P4)f=c.v;else if(f=e.apply(null,arguments),r++,a){const p=s?.deref?.()??s;p!=null&&a(p,f)&&(f=p,r!==0&&r--),s=typeof f=="object"&&f!==null||typeof f=="function"?new Sxs(f):f}return m.s=P4,m.v=f,f}return i.clearCache=()=>{n=wb(),i.resetResultsCount()},i.resultsCount=()=>r,i.resetResultsCount=()=>{r=0},i}function Txs(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,a=(...s)=>{let r=0,i=0,c,d={},m=s.pop();typeof m=="object"&&(d=m,m=s.pop()),bxs(m,`createSelector expects an output function after the inputs, but received: [${typeof m}]`);const f={...n,...d},{memoize:p,memoizeOptions:y=[],argsMemoize:v=HG,argsMemoizeOptions:$=[]}=f,x=R4(y),w=R4($),S=wxs(s),k=p(function(){return r++,m.apply(null,arguments)},...x),T=v(function(){i++;const _=kxs(S,arguments);return c=k.apply(null,_),c},...w);return Object.assign(T,{resultFunc:m,memoizedResultFunc:k,dependencies:S,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>c,recomputations:()=>r,resetRecomputations:()=>{r=0},memoize:p,argsMemoize:v})};return Object.assign(a,{withTypes:()=>a}),a}var ce=Txs(HG),Rxs=Object.assign((e,t=ce)=>{xxs(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),a=n.map(r=>e[r]);return t(a,(...r)=>r.reduce((i,c,d)=>(i[n[d]]=c,i),{}))},{withTypes:()=>Rxs}),fA={},gA={},hA={},_4;function Pxs(){return _4||(_4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(a){return typeof a=="symbol"?1:a===null?2:a===void 0?3:a!==a?4:0}const n=(a,s,r)=>{if(a!==s){const i=t(a),c=t(s);if(i===c&&i===0){if(a<s)return r==="desc"?1:-1;if(a>s)return r==="desc"?-1:1}return r==="desc"?c-i:i-c}return 0};e.compareValues=n})(hA)),hA}var yA={},vA={},j4;function VG(){return j4||(j4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){return typeof n=="symbol"||n instanceof Symbol}
918e.isSymbol=t})(vA)),vA}var N4;function _xs(){return N4||(N4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=VG(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function s(r,i){return Array.isArray(r)?!1:typeof r=="number"||typeof r=="boolean"||r==null||t.isSymbol(r)?!0:typeof r=="string"&&(a.test(r)||!n.test(r))||i!=null&&Object.hasOwn(i,r)}e.isKey=s})(yA)),yA}var D4;function jxs(){return D4||(D4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Pxs(),n=_xs(),a=Uj();function s(r,i,c,d){if(r==null)return[];c=d?void 0:c,Array.isArray(r)||(r=Object.values(r)),Array.isArray(i)||(i=i==null?[null]:[i]),i.length===0&&(i=[null]),Array.isArray(c)||(c=c==null?[]:[c]),c=c.map(v=>String(v));const m=(v,$)=>{let x=v;for(let w=0;w<$.length&&x!=null;++w)x=x[$[w]];return x},f=(v,$)=>$==null||v==null?$:typeof v=="object"&&"key"in v?Object.hasOwn($,v.key)?$[v.key]:m($,v.path):typeof v=="function"?v($):Array.isArray(v)?m($,v):typeof $=="object"?$[v]:$,p=i.map(v=>(Array.isArray(v)&&v.length===1&&(v=v[0]),v==null||typeof v=="function"||Array.isArray(v)||n.isKey(v)?v:{key:v,path:a.toPath(v)}));return r.map(v=>({original:v,criteria:p.map($=>f($,v))})).slice().sort((v,$)=>{for(let x=0;x<p.length;x++){const w=t.compareValues(v.criteria[x],$.criteria[x],c[x]);if(w!==0)return w}return 0}).map(v=>v.original)}e.orderBy=s})(gA)),gA}var bA={},M4;function Nxs(){return M4||(M4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n,a=1){const s=[],r=Math.floor(a),i=(c,d)=>{for(let m=0;m<c.length;m++){const f=c[m];Array.isArray(f)&&d<r?i(f,d+1):s.push(f)}};return i(n,0),s}e.flatten=t})(bA)),bA}var xA={},E4;function KG(){return E4||(E4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=zG(),n=EG(),a=IG(),s=LG();function r(i,c,d){return a.isObject(d)&&(typeof c=="number"&&n.isArrayLike(d)&&t.isIndex(c)&&c<d.length||typeof c=="string"&&c in d)?s.isEqualsSameValueZero(d[c],i):!1}e.isIterateeCall=r})(xA)),xA}var I4;function Dxs(){return I4||(I4=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=jxs(),n=Nxs(),a=KG();function s(r,...i){const c=i.length;return c>1&&a.isIterateeCall(r,i[0],i[1])?i=[]:c>2&&a.isIterateeCall(i[0],i[1],i[2])&&(i=[i[0]]),t.orderBy(r,n.flatten(i),["asc"])}e.sortBy=s})(fA)),fA}var $A,O4;function Mxs(){return O4||(O4=1,$A=Dxs().sortBy),$A}var Exs=Mxs();const e0=il(Exs);var GG=e=>e.legend.settings,Ixs=e=>e.legend.size,Oxs=e=>e.legend.payload,Lxs=ce([Oxs,GG],(e,t)=>{var{itemSorter:n}=t,a=e.flat(1);return n?e0(a,n):a});function Uxs(){return Ge(Lxs)}var kb=1;function WG(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,n]=h.useState({height:0,left:0,top:0,width:0}),a=h.useCallback(s=>{if(s!=null){var r=s.getBoundingClientRect(),i={height:r.height,left:r.left,top:r.top,width:r.width};(Math.abs(i.height-t.height)>kb||Math.abs(i.left-t.left)>kb||Math.abs(i.top-t.top)>kb||Math.abs(i.width-t.width)>kb)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}},[t.width,t.height,t.top,t.left,...e]);return[t,a]}function ka(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Bxs=typeof Symbol=="function"&&Symbol.observable||"@@observable",L4=Bxs,wA=()=>Math.random().toString(36).substring(7).split("").join("."),Fxs={INIT:`@@redux/INIT${wA()}`,REPLACE:`@@redux/REPLACE${wA()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${wA()}`},Jx=Fxs;function Vj(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function YG(e,t,n){if(typeof e!="function")throw new Error(ka(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(ka(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(ka(1));return n(YG)(e,t)}let a=e,s=t,r=new Map,i=r,c=0,d=!1;function m(){i===r&&(i=new Map,r.forEach((w,S)=>{i.set(S,w)}))}function f(){if(d)throw new Error(ka(3));return s}function p(w){if(typeof w!="function")throw new Error(ka(4));if(d)throw new Error(ka(5));let S=!0;m();const k=c++;return i.set(k,w),function(){if(S){if(d)throw new Error(ka(6));S=!1,m(),i.delete(k),r=null}}}function y(w){if(!Vj(w))throw new Error(ka(7));if(typeof w.type>"u")throw new Error(ka(8));if(typeof w.type!="string")throw new Error(ka(17));if(d)throw new Error(ka(9));try{d=!0,s=a(s,w)}finally{d=!1}
vendor: 4,380 bytes, line 918
918return(r=i).forEach(k=>{k()}),w}function v(w){if(typeof w!="function")throw new Error(ka(10));a=w,y({type:Jx.REPLACE})}function $(){const w=p;return{subscribe(S){if(typeof S!="object"||S===null)throw new Error(ka(11));function k(){const R=S;R.next&&R.next(f())}return k(),{unsubscribe:w(k)}},[L4](){return this}}}return y({type:Jx.INIT}),{dispatch:y,subscribe:p,getState:f,replaceReducer:v,[L4]:$}}function zxs(e){Object.keys(e).forEach(t=>{const n=e[t];if(typeof n(void 0,{type:Jx.INIT})>"u")throw new Error(ka(12));if(typeof n(void 0,{type:Jx.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(ka(13))})}function QG(e){const t=Object.keys(e),n={};for(let r=0;r<t.length;r++){const i=t[r];typeof e[i]=="function"&&(n[i]=e[i])}const a=Object.keys(n);let s;try{zxs(n)}catch(r){s=r}return function(i={},c){if(s)throw s;let d=!1;const m={};for(let f=0;f<a.length;f++){const p=a[f],y=n[p],v=i[p],$=y(v,c);if(typeof $>"u")throw c&&c.type,new Error(ka(14));m[p]=$,d=d||$!==v}return d=d||a.length!==Object.keys(i).length,d?m:i}}function e$(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...a)=>t(n(...a)))}function qxs(...e){return t=>(n,a)=>{const s=t(n,a);let r=()=>{throw new Error(ka(15))};const i={getState:s.getState,dispatch:(d,...m)=>r(d,...m)},c=e.map(d=>d(i));return r=e$(...c)(s.dispatch),{...s,dispatch:r}}}function XG(e){return Vj(e)&&"type"in e&&typeof e.type=="string"}var ZG=Symbol.for("immer-nothing"),U4=Symbol.for("immer-draftable"),ao=Symbol.for("immer-state");function sr(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Zo=Object,bp=Zo.getPrototypeOf,t$="constructor",t0="prototype",WR="configurable",n$="enumerable",px="writable",yh="value",nl=e=>!!e&&!!e[ao];function vr(e){return e?JG(e)||a0(e)||!!e[U4]||!!e[t$]?.[U4]||o0(e)||s0(e):!1}var Hxs=Zo[t0][t$].toString(),B4=new WeakMap;function JG(e){if(!e||!Kj(e))return!1;const t=bp(e);if(t===null||t===Zo[t0])return!0;const n=Zo.hasOwnProperty.call(t,t$)&&t[t$];if(n===Object)return!0;if(!Mm(n))return!1;let a=B4.get(n);return a===void 0&&(a=Function.toString.call(n),B4.set(n,a)),a===Hxs}function n0(e,t,n=!0){yy(e)===0?(n?Reflect.ownKeys(e):Zo.keys(e)).forEach(s=>{t(s,e[s],e)}):e.forEach((a,s)=>t(s,a,e))}function yy(e){const t=e[ao];return t?t.type_:a0(e)?1:o0(e)?2:s0(e)?3:0}var F4=(e,t,n=yy(e))=>n===2?e.has(t):Zo[t0].hasOwnProperty.call(e,t),YR=(e,t,n=yy(e))=>n===2?e.get(t):e[t],a$=(e,t,n,a=yy(e))=>{a===2?e.set(t,n):a===3?e.add(n):e[t]=n};function Vxs(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var a0=Array.isArray,o0=e=>e instanceof Map,s0=e=>e instanceof Set,Kj=e=>typeof e=="object",Mm=e=>typeof e=="function",kA=e=>typeof e=="boolean";function Kxs(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Ui=e=>e.copy_||e.base_,Gj=e=>e.modified_?e.copy_:e.base_;function QR(e,t){if(o0(e))return new Map(e);if(s0(e))return new Set(e);if(a0(e))return Array[t0].slice.call(e);const n=JG(e);if(t===!0||t==="class_only"&&!n){const a=Zo.getOwnPropertyDescriptors(e);delete a[ao];let s=Reflect.ownKeys(a);for(let r=0;r<s.length;r++){const i=s[r],c=a[i];c[px]===!1&&(c[px]=!0,c[WR]=!0),(c.get||c.set)&&(a[i]={[WR]:!0,[px]:!0,[n$]:c[n$],[yh]:e[i]})}return Zo.create(bp(e),a)}else{const a=bp(e);if(a!==null&&n)return{...e};const s=Zo.create(a);return Zo.assign(s,e)}}function Wj(e,t=!1){return r0(e)||nl(e)||!vr(e)||(yy(e)>1&&Zo.defineProperties(e,{set:Cb,add:Cb,clear:Cb,delete:Cb}),Zo.freeze(e),t&&n0(e,(n,a)=>{Wj(a,!0)},!1)),e}function Gxs(){sr(2)}var Cb={[yh]:Gxs};function r0(e){return e===null||!Kj(e)?!0:Zo.isFrozen(e)}var o$="MapSet",XR="Patches",z4="ArrayMethods",eW={};function nu(e){const t=eW[e];return t||sr(0,e),t}var q4=e=>!!eW[e],vh,tW=()=>vh,Wxs=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:q4(o$)?nu(o$):void 0,arrayMethodsPlugin_:q4(z4)?nu(z4):void 0});function H4(e,t){t&&(e.patchPlugin_=nu(XR),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ZR(e){JR(e),e.drafts_.forEach(Yxs),e.drafts_=null}function JR(e){e===vh&&(vh=e.parent_)}var V4=e=>vh=Wxs(vh,e);function Yxs(e){const t=e[ao];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function K4(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];if(e!==void 0&&e!==n){n[ao].modified_&&(ZR(t),sr(4)),vr(e)&&(e=G4(t,e));const{patchPlugin_:s}
918=t;s&&s.generateReplacementPatches_(n[ao].base_,e,t)}else e=G4(t,n);return Qxs(t,e,!0),ZR(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==ZG?e:void 0}function G4(e,t){if(r0(t))return t;const n=t[ao];if(!n)return s$(t,e.handledSet_,e);if(!i0(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:a}=n;if(a)for(;a.length>0;)a.pop()(e);oW(n,e)}return n.copy_}function Qxs(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Wj(t,n)}function nW(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var i0=(e,t)=>e.scope_===t,Xxs=[];function aW(e,t,n,a){const s=Ui(e),r=e.type_;if(a!==void 0&&YR(s,a,r)===t){a$(s,a,n,r);return}if(!e.draftLocations_){const c=e.draftLocations_=new Map;n0(s,(d,m)=>{if(nl(m)){const f=c.get(m)||[];f.push(d),c.set(m,f)}})}const i=e.draftLocations_.get(t)??Xxs;for(const c of i)a$(s,c,n,r)}function Zxs(e,t,n){e.callbacks_.push(function(s){const r=t;if(!r||!i0(r,s))return;s.mapSetPlugin_?.fixSetContents(r);const i=Gj(r);aW(e,r.draft_??r,i,n),oW(r,s)})}function oW(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:a}=t;if(a){const s=a.getPath(e);s&&a.generatePatches_(e,s,t)}nW(e)}}function Jxs(e,t,n){const{scope_:a}=e;if(nl(n)){const s=n[ao];i0(s,a)&&s.callbacks_.push(function(){fx(e);const i=Gj(s);aW(e,n,i,t)})}else vr(n)&&e.callbacks_.push(function(){const r=Ui(e);e.type_===3?r.has(n)&&s$(n,a.handledSet_,a):YR(r,t,e.type_)===n&&a.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&s$(YR(e.copy_,t,e.type_),a.handledSet_,a)})}function s$(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||nl(e)||t.has(e)||!vr(e)||r0(e)||(t.add(e),n0(e,(a,s)=>{if(nl(s)){const r=s[ao];if(i0(r,n)){const i=Gj(r);a$(e,a,i,e.type_),nW(r)}}else vr(s)&&s$(s,t,n)})),e}function e$s(e,t){const n=a0(e),a={type_:n?1:0,scope_:t?t.scope_:tW(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let s=a,r=r$;n&&(s=[a],r=bh);const{revoke:i,proxy:c}=Proxy.revocable(s,r);return a.draft_=c,a.revoke_=i,[c,a]}var r$={get(e,t){if(t===ao)return e;let n=e.scope_.arrayMethodsPlugin_;const a=e.type_===1&&typeof t=="string";if(a&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);const s=Ui(e);if(!F4(s,t,e.type_))return t$s(e,s,t);const r=s[t];if(e.finalized_||!vr(r)||a&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Kxs(t))return r;if(r===CA(e.base_,t)){fx(e);const i=e.type_===1?+t:t,c=tP(e.scope_,r,e,i);return e.copy_[i]=c}return r},has(e,t){return t in Ui(e)},ownKeys(e){return Reflect.ownKeys(Ui(e))},set(e,t,n){const a=sW(Ui(e),t);if(a?.set)return a.set.call(e.draft_,n),!0;if(!e.modified_){const s=CA(Ui(e),t),r=s?.[ao];if(r&&r.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Vxs(n,s)&&(n!==void 0||F4(e.base_,t,e.type_)))return!0;fx(e),eP(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_.set(t,!0),Jxs(e,t,n)),!0},deleteProperty(e,t){return fx(e),CA(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),eP(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=Ui(e),a=Reflect.getOwnPropertyDescriptor(n,t);return a&&{[px]:!0,[WR]:e.type_!==1||t!=="length",[n$]:a[n$],[yh]:n[t]}},defineProperty(){sr(11)},getPrototypeOf(e){return bp(e.base_)},setPrototypeOf(){sr(12)}},bh={};for(let e in r$){let t=r$[e];bh[e]=function(){const n=arguments;return n[0]=n[0][0],t.apply(this,n)}}bh.deleteProperty=function(e,t){return bh.set.call(this,e,t,void 0)};bh.set=function(e,t,n){return r$.set.call(this,e[0],t,n,e[0])};function CA(e,t){const n=e[ao];return(n?Ui(n):e)[t]}function t$s(e,t,n){const a=sW(t,n);return a?yh in a?a[yh]:a.get?.call(e.draft_):void 0}function sW(e,t){if(!(t in e))return;let n=bp(e);for(;n;){const a=Object.getOwnPropertyDescriptor(n,t);if(a)return a;n=bp(n)}}function eP(e){e.modified_||(e.modified_=!0,e.parent_&&eP(e.parent_))}function fx(e){e.copy_||(e.assigned_=new Map,e.copy_=QR(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var n$s=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(n,a,s)=>{if(Mm(n)&&!Mm(a)){const i=a;a=n;const c=this;return function(m=i,...f){return c.produce(m,p=>
vendor: 9,378 bytes, line 918
918a.call(this,p,...f))}}Mm(a)||sr(6),s!==void 0&&!Mm(s)&&sr(7);let r;if(vr(n)){const i=V4(this),c=tP(i,n,void 0);let d=!0;try{r=a(c),d=!1}finally{d?ZR(i):JR(i)}return H4(i,s),K4(r,i)}else if(!n||!Kj(n)){if(r=a(n),r===void 0&&(r=n),r===ZG&&(r=void 0),this.autoFreeze_&&Wj(r,!0),s){const i=[],c=[];nu(XR).generateReplacementPatches_(n,r,{patches_:i,inversePatches_:c}),s(i,c)}return r}else sr(1,n)},this.produceWithPatches=(n,a)=>{if(Mm(n))return(c,...d)=>this.produceWithPatches(c,m=>n(m,...d));let s,r;return[this.produce(n,a,(c,d)=>{s=c,r=d}),s,r]},kA(t?.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),kA(t?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),kA(t?.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){vr(t)||sr(8),nl(t)&&(t=Rs(t));const n=V4(this),a=tP(n,t,void 0);return a[ao].isManual_=!0,JR(n),a}finishDraft(t,n){const a=t&&t[ao];(!a||!a.isManual_)&&sr(9);const{scope_:s}=a;return H4(s,n),K4(void 0,s)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,n){let a;for(a=n.length-1;a>=0;a--){const r=n[a];if(r.path.length===0&&r.op==="replace"){t=r.value;break}}a>-1&&(n=n.slice(a+1));const s=nu(XR).applyPatches_;return nl(t)?s(t,n):this.produce(t,r=>s(r,n))}};function tP(e,t,n,a){const[s,r]=o0(t)?nu(o$).proxyMap_(t,n):s0(t)?nu(o$).proxySet_(t,n):e$s(t,n);return(n?.scope_??tW()).drafts_.push(s),r.callbacks_=n?.callbacks_??[],r.key_=a,n&&a!==void 0?Zxs(n,r,a):r.callbacks_.push(function(d){d.mapSetPlugin_?.fixSetContents(r);const{patchPlugin_:m}=d;r.modified_&&m&&m.generatePatches_(r,[],d)}),s}function Rs(e){return nl(e)||sr(10,e),rW(e)}function rW(e){if(!vr(e)||r0(e))return e;const t=e[ao];let n,a=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=QR(e,t.scope_.immer_.useStrictShallowCopy_),a=t.scope_.immer_.shouldUseStrictIteration()}else n=QR(e,!0);return n0(n,(s,r)=>{a$(n,s,rW(r))},a),t&&(t.finalized_=!1),n}var a$s=new n$s,iW=a$s.produce;function lW(e){return({dispatch:n,getState:a})=>s=>r=>typeof r=="function"?r(n,a,e):s(r)}var o$s=lW(),s$s=lW,r$s=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?e$:e$.apply(null,arguments)};function rs(e,t){function n(...a){if(t){let s=t(...a);if(!s)throw new Error(es(0));return{type:e,payload:s.payload,..."meta"in s&&{meta:s.meta},..."error"in s&&{error:s.error}}}return{type:e,payload:a[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=a=>XG(a)&&a.type===e,n}var cW=class _g extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,_g.prototype)}static get[Symbol.species](){return _g}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new _g(...t[0].concat(this)):new _g(...t.concat(this))}};function W4(e){return vr(e)?iW(e,()=>{}):e}function Sb(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function i$s(e){return typeof e=="boolean"}var l$s=()=>function(t){const{thunk:n=!0,immutableCheck:a=!0,serializableCheck:s=!0,actionCreatorCheck:r=!0}=t??{};let i=new cW;return n&&(i$s(n)?i.push(o$s):i.push(s$s(n.extraArgument))),i},dW="RTK_autoBatch",pn=()=>e=>({payload:e,meta:{[dW]:!0}}),Y4=e=>t=>{setTimeout(t,e)},c$s=(e,t)=>n=>{let a=!1;const s=()=>{a||(a=!0,cancelAnimationFrame(r),clearTimeout(i),n())},r=e(s),i=setTimeout(s,t)},uW=(e={type:"raf"})=>t=>(...n)=>{const a=t(...n);let s=!0,r=!1,i=!1;const c=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?c$s(window.requestAnimationFrame,100):Y4(10):e.type==="callback"?e.queueNotification:Y4(e.timeout),m=()=>{i=!1,r&&(r=!1,c.forEach(f=>f()))};return Object.assign({},a,{subscribe(f){const p=()=>s&&f(),y=a.subscribe(p);return c.add(f),()=>{y(),c.delete(f)}},dispatch(f){try{return s=!f?.meta?.[dW],r=!s,r&&(i||(i=!0,d(m))),a.dispatch(f)}finally{s=!0}}})},d$s=e=>function(n){const{autoBatch:a=!0}=n??{};let s=new cW(e);return a&&s.push(uW(typeof a=="object"?a:void 0)),s};function u$s(e){const t=l$s(),{reducer:n=void 0,middleware:a,devTools:s=!0,preloadedState:r=void 0,enhancers:i=void 0}=e||{};let c;if(typeof n=="function")c=n;else if(Vj(n))c=QG(n);else throw new Error(es(1));let d;typeof a=="function"?d=a(t):d=t();let m=e$;s&&(m=r$s({trace:!1,...typeof s=="object"&&s}));const f=qxs(...d),p=d$s(f);let y=typeof i=="function"?i(p):p();const v=m(...y);return YG(c,r,v)}function mW(e){const t={},n=[];let a;const s={addCase(r,i){const c=typeof r=="string"?r:r.type;if(!c)throw new Error(es(28));if(c in t)throw new Error(es(29));return t[c]=i,s},addAsyncThunk(r,i){return i.pending&&(t[r.pending.type]=i.pending),i.rejected&&(t[r.rejected.type]=i.rejected),i.fulfilled&&(t[r.fulfilled.type]=i.fulfilled),i.settled&&n.push({matcher:r.settled,reducer:i.settled}),s},addMatcher(r,i){return n.push({matcher:r,reducer:i}),s},addDefaultCase(r){return a=r,s}};return e(s),[t,n,a]}function m$s(e){return typeof e=="function"}function p$s(e,t){let[n,a,s]=mW(t),r;if(m$s(e))r=()=>W4(e());else{const c=W4(e);r=()=>c}function i(c=r(),d){let m=[n[d.type],...a.filter(({matcher:f})=>f(d)).map(({reducer:f})=>f)];return m.filter(f=>!!f).length===0&&(m=[s]),m.reduce((f,p)=>{if(p)if(nl(f)){const v=p(f,d);return v===void 0?f:v}else{if(vr(f))return iW(f,y=>p(y,d));{const y=p(f,d);if(y===void 0){if(f===null)return f;throw Error("A case reducer on a non-draftable value must not return undefined")}return y}}return f},c)}return i.getInitialState=r,i}var f$s="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",g$s=(e=21)=>{let t="",n=e;for(;n--;)t+=f$s[Math.random()*64|0];return t},h$s=Symbol.for("rtk-slice-createasyncthunk");function y$s(e,t){return`${e}/${t}`}function v$s({creators:e}={}){const t=e?.asyncThunk?.[h$s];return function(a){const{name:s,reducerPath:r=s}=a;if(!s)throw new Error(es(11));const i=(typeof a.reducers=="function"?a.reducers(x$s()):a.reducers)||{},c=Object.keys(i),d={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},m={addCase(T,R){const _=typeof T=="string"?T:T.type;if(!_)throw new Error(es(12));if(_ in d.sliceCaseReducersByType)throw new Error(es(13));return d.sliceCaseReducersByType[_]=R,m},addMatcher(T,R){return d.sliceMatchers.push({matcher:T,reducer:R}),m},exposeAction(T,R){return d.actionCreators[T]=R,m},exposeCaseReducer(T,R){return d.sliceCaseReducersByName[T]=R,m}};c.forEach(T=>{const R=i[T],_={reducerName:T,type:y$s(s,T),createNotation:typeof a.reducers=="function"};w$s(R)?C$s(_,R,m,t):$$s(_,R,m)});function f(){const[T={},R=[],_=void 0]=typeof a.extraReducers=="function"?mW(a.extraReducers):[a.extraReducers],P={...T,...d.sliceCaseReducersByType};return p$s(a.initialState,j=>{for(let N in P)j.addCase(N,P[N]);for(let N of d.sliceMatchers)j.addMatcher(N.matcher,N.reducer);for(let N of R)j.addMatcher(N.matcher,N.reducer);_&&j.addDefaultCase(_)})}const p=T=>T,y=new Map,v=new WeakMap;let $;function x(T,R){return $||($=f()),$(T,R)}function w(){return $||($=f()),$.getInitialState()}function S(T,R=!1){function _(j){let N=j[T];return typeof N>"u"&&R&&(N=Sb(v,_,w)),N}function P(j=p){const N=Sb(y,R,()=>new WeakMap);return Sb(N,j,()=>{const I={};for(const[z,E]of Object.entries(a.selectors??{}))I[z]=b$s(E,j,()=>Sb(v,j,w),R);return I})}return{reducerPath:T,getSelectors:P,get selectors(){return P(_)},selectSlice:_}}const k={name:s,reducer:x,actions:d.actionCreators,caseReducers:d.sliceCaseReducersByName,getInitialState:w,...S(r),injectInto(T,{reducerPath:R,..._}={}){const P=R??r;return T.inject({reducerPath:P,reducer:x},_),{...k,...S(P,!0)}}};return k}}function b$s(e,t,n,a){function s(r,...i){let c=t(r);return typeof c>"u"&&a&&(c=n()),e(c,...i)}return s.unwrapped=e,s}var Ka=v$s();function x$s(){function e(t,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...n}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...n){return t(...n)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:n}},asyncThunk:e}}function $$s({type:e,reducerName:t,createNotation:n},a,s){let r,i;if("reducer"in a){if(n&&!k$s(a))throw new Error(es(17));r=a.reducer,i=a.prepare}else r=a;s.addCase(e,r).exposeCaseReducer(t,r).exposeAction(t,i?rs(e,i):rs(e))}function w$s(e){return e._reducerDefinitionType==="asyncThunk"}function k$s(e){return e._reducerDefinitionType==="reducerWithPrepare"}function C$s({type:e,reducerName:t},n,a,s){if(!s)throw new Error(es(18));const{payloadCreator:r,fulfilled:i,pending:c,rejected:d,settled:m,options:f}=n,p=s(e,r,f);a.exposeAction(t,p),i&&a.addCase(p.fulfilled,i),c&&a.addCase(p.pending,c),d&&a.addCase(p.rejected,d),m&&a.addMatcher(p.settled,m),a.exposeCaseReducer(t,{fulfilled:i||Ab,pending:c||Ab,rejected:d||Ab,settled:m||Ab})}function Ab(){}var S$s="task",pW="listener",fW="completed",Yj="cancelled",A$s=`task-${Yj}`,T$s=`task-${fW}`,nP=`${pW}-${Yj}`,R$s=`${pW}-${fW}`,l0=class{constructor(e){Bo(this,"code");Bo(this,"name","TaskAbortError");Bo(this,"message");this.code=e,this.message=`${S$s} ${Yj} (reason: ${e})`}},Qj=(e,t)=>{if(typeof e!="function")throw new TypeError(es(32))},i$=()=>{},gW=(e,t=i$)=>(e.catch(t),e),hW=(e,t)=>
918(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Fd=e=>{if(e.aborted)throw new l0(e.reason)};function yW(e,t){let n=i$;return new Promise((a,s)=>{const r=()=>s(new l0(e.reason));if(e.aborted){r();return}n=hW(e,r),t.finally(()=>n()).then(a,s)}).finally(()=>{n=i$})}var P$s=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(n){return{status:n instanceof l0?"cancelled":"rejected",error:n}}finally{t?.()}},l$=e=>t=>gW(yW(e,t).then(n=>(Fd(e),n))),vW=e=>{const t=l$(e);return n=>t(new Promise(a=>setTimeout(a,n)))},{assign:Km}=Object,Q4={},c0="listenerMiddleware",_$s=(e,t)=>{const n=a=>hW(e,()=>a.abort(e.reason));return(a,s)=>{Qj(a);const r=new AbortController;n(r);const i=P$s(async()=>{Fd(e),Fd(r.signal);const c=await a({pause:l$(r.signal),delay:vW(r.signal),signal:r.signal});return Fd(r.signal),c},()=>r.abort(T$s));return s?.autoJoin&&t.push(i.catch(i$)),{result:l$(e)(i),cancel(){r.abort(A$s)}}}},j$s=(e,t)=>{const n=async(a,s)=>{Fd(t);let r=()=>{};const c=[new Promise((d,m)=>{let f=e({predicate:a,effect:(p,y)=>{y.unsubscribe(),d([p,y.getState(),y.getOriginalState()])}});r=()=>{f(),m()}})];s!=null&&c.push(new Promise(d=>setTimeout(d,s,null)));try{const d=await yW(t,Promise.race(c));return Fd(t),d}finally{r()}};return((a,s)=>gW(n(a,s)))},bW=e=>{let{type:t,actionCreator:n,matcher:a,predicate:s,effect:r}=e;if(t)s=rs(t).match;else if(n)t=n.type,s=n.match;else if(a)s=a;else if(!s)throw new Error(es(21));return Qj(r),{predicate:s,type:t,effect:r}},xW=Km(e=>{const{type:t,predicate:n,effect:a}=bW(e);return{id:g$s(),effect:a,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw new Error(es(22))}}},{withTypes:()=>xW}),X4=(e,t)=>{const{type:n,effect:a,predicate:s}=bW(t);return Array.from(e.values()).find(r=>(typeof n=="string"?r.type===n:r.predicate===s)&&r.effect===a)},aP=e=>{e.pending.forEach(t=>{t.abort(nP)})},N$s=(e,t)=>()=>{for(const n of t.keys())aP(n);e.clear()},Z4=(e,t,n)=>{try{e(t,n)}catch(a){setTimeout(()=>{throw a},0)}},$W=Km(rs(`${c0}/add`),{withTypes:()=>$W}),D$s=rs(`${c0}/removeAll`),wW=Km(rs(`${c0}/remove`),{withTypes:()=>wW}),M$s=(...e)=>{console.error(`${c0}/error`,...e)},vy=(e={})=>{const t=new Map,n=new Map,a=v=>{const $=n.get(v)??0;n.set(v,$+1)},s=v=>{const $=n.get(v)??1;$===1?n.delete(v):n.set(v,$-1)},{extra:r,onError:i=M$s}=e;Qj(i);const c=v=>(v.unsubscribe=()=>t.delete(v.id),t.set(v.id,v),$=>{v.unsubscribe(),$?.cancelActive&&aP(v)}),d=(v=>{const $=X4(t,v)??xW(v);return c($)});Km(d,{withTypes:()=>d});const m=v=>{const $=X4(t,v);return $&&($.unsubscribe(),v.cancelActive&&aP($)),!!$};Km(m,{withTypes:()=>m});const f=async(v,$,x,w)=>{const S=new AbortController,k=j$s(d,S.signal),T=[];try{v.pending.add(S),a(v),await Promise.resolve(v.effect($,Km({},x,{getOriginalState:w,condition:(R,_)=>k(R,_).then(Boolean),take:k,delay:vW(S.signal),pause:l$(S.signal),extra:r,signal:S.signal,fork:_$s(S.signal,T),unsubscribe:v.unsubscribe,subscribe:()=>{t.set(v.id,v)},cancelActiveListeners:()=>{v.pending.forEach((R,_,P)=>{R!==S&&(R.abort(nP),P.delete(R))})},cancel:()=>{S.abort(nP),v.pending.delete(S)},throwIfCancelled:()=>{Fd(S.signal)}})))}catch(R){R instanceof l0||Z4(i,R,{raisedBy:"effect"})}finally{await Promise.all(T),S.abort(R$s),s(v),v.pending.delete(S)}}
918,p=N$s(t,n);return{middleware:v=>$=>x=>{if(!XG(x))return $(x);if($W.match(x))return d(x.payload);if(D$s.match(x)){p();return}if(wW.match(x))return m(x.payload);let w=v.getState();const S=()=>{if(w===Q4)throw new Error(es(23));return w};let k;try{if(k=$(x),t.size>0){const T=v.getState(),R=Array.from(t.values());for(const _ of R){let P=!1;try{P=_.predicate(x,T,w)}catch(j){P=!1,Z4(i,j,{raisedBy:"predicate"})}P&&f(_,x,v,S)}}}finally{w=Q4}return k},startListening:d,stopListening:m,clearListeners:p}};function es(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var E$s={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},kW=Ka({name:"chartLayout",initialState:E$s,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var n,a,s,r;e.margin.top=(n=t.payload.top)!==null&&n!==void 0?n:0,e.margin.right=(a=t.payload.right)!==null&&a!==void 0?a:0,e.margin.bottom=(s=t.payload.bottom)!==null&&s!==void 0?s:0,e.margin.left=(r=t.payload.left)!==null&&r!==void 0?r:0},setScale(e,t){e.scale=t.payload}}}),{setMargin:I$s,setLayout:O$s,setChartSize:L$s,setScale:U$s}=kW.actions,B$s=kW.reducer;function CW(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function ht(e){return Number.isFinite(e)}function xp(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function J4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Om(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?J4(Object(n),!0).forEach(function(a){F$s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function F$s(e,t,n){return(t=z$s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z$s(e){var t=q$s(e,"string");return typeof t=="symbol"?t:t+""}function q$s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function jn(e,t,n){return $n(e)||$n(t)?n:si(t)?vp(e,t,n):typeof t=="function"?t(e):n}var H$s=(e,t,n)=>{if(t&&n){var{width:a,height:s}=n,{align:r,verticalAlign:i,layout:c}=t;if((c==="vertical"||c==="horizontal"&&i==="middle")&&r!=="center"&&Fe(e[r]))return Om(Om({},e),{},{[r]:e[r]+(a||0)});if((c==="horizontal"||c==="vertical"&&r==="center")&&i!=="middle"&&Fe(e[i]))return Om(Om({},e),{},{[i]:e[i]+(s||0)})}return e},pi=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",SW=(e,t,n,a)=>{if(a)return e.map(c=>c.coordinate);var s,r,i=e.map(c=>(c.coordinate===t&&(s=!0),c.coordinate===n&&(r=!0),c.coordinate));return s||i.push(t),r||i.push(n),i},AW=(e,t,n)=>{if(!e)return null;var{duplicateDomain:a,type:s,range:r,scale:i,realScaleType:c,isCategorical:d,categoricalDomain:m,tickCount:f,ticks:p,niceTicks:y,axisType:v}=e;if(!i)return null;var $=c==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,x=s==="category"&&i.bandwidth?i.bandwidth()/$:0;if(x=v==="angleAxis"&&r&&r.length>=2?Co(r[0]-r[1])*2*x:x,p||y){var w=(p||y||[]).map((S,k)=>{var T=a?a.indexOf(S):S,R=i.map(T);return ht(R)?{coordinate:R+x,value:S,offset:x,index:k}:null}).filter(So);return w}return d&&m?m.map((S,k)=>{var T=i.map(S);return ht(T)?{coordinate:T+x,value:S,index:k,offset:x}:null}).filter(So):i.ticks&&f!=null?i.ticks(f).map((S,k)=>{var T=i.map(S);return ht(T)?{coordinate:T+x,value:S,index:k,offset:x}:null}).filter(So):i.domain().map((S,k)=>{var T=i.map(S);return ht(T)?{coordinate:T+x,value:a?a[S]:S,index:k,offset:x}:null}).filter(So)},V$s=(e,t)=>
918{if(!t||t.length!==2||!Fe(t[0])||!Fe(t[1]))return e;var n=Math.min(t[0],t[1]),a=Math.max(t[0],t[1]),s=[e[0],e[1]];return(!Fe(e[0])||e[0]<n)&&(s[0]=n),(!Fe(e[1])||e[1]>a)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]<n&&(s[1]=n),s},K$s=e=>{var t,n=e.length;if(!(n<=0)){var a=(t=e[0])===null||t===void 0?void 0:t.length;if(!(a==null||a<=0))for(var s=0;s<a;++s)for(var r=0,i=0,c=0;c<n;++c){var d=e[c],m=d?.[s];if(m!=null){var f=m[1],p=m[0],y=hr(f)?p:f;y>=0?(m[0]=r,r+=y,m[1]=r):(m[0]=i,i+=y,m[1]=i)}}}},G$s=e=>{var t,n=e.length;if(!(n<=0)){var a=(t=e[0])===null||t===void 0?void 0:t.length;if(!(a==null||a<=0))for(var s=0;s<a;++s)for(var r=0,i=0;i<n;++i){var c=e[i],d=c?.[s];if(d!=null){var m=hr(d[1])?d[0]:d[1];m>=0?(d[0]=r,r+=m,d[1]=r):(d[0]=0,d[1]=0)}}}},W$s={sign:K$s,expand:pbs,none:tu,silhouette:fbs,wiggle:gbs,positive:G$s},Y$s=(e,t,n)=>{var a,s=(a=W$s[n])!==null&&a!==void 0?a:tu,r=mbs().keys(t).value((c,d)=>Number(jn(c,d,0))).order(VR).offset(s),i=r(e);return i.forEach((c,d)=>{c.forEach((m,f)=>{var p=jn(e[f],t[d],0);Array.isArray(p)&&p.length===2&&Fe(p[0])&&Fe(p[1])&&(m[0]=p[0],m[1]=p[1])})}),i};function TW(e){return e==null?void 0:String(e)}function e5(e){var{axis:t,ticks:n,bandSize:a,entry:s,index:r,dataKey:i}=e;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!$n(s[t.dataKey])){var c=_G(n,"value",s[t.dataKey]);if(c)return c.coordinate+a/2}return n!=null&&n[r]?n[r].coordinate+a/2:null}var d=jn(s,$n(i)?t.dataKey:i),m=t.scale.map(d);return Fe(m)?m:null}var t5=e=>{var{axis:t,ticks:n,offset:a,bandSize:s,entry:r,index:i}=e;if(t.type==="category")return n[i]?n[i].coordinate+a:null;var c=jn(r,t.dataKey,t.scale.domain()[i]);if($n(c))return null;var d=t.scale.map(c);return Fe(d)?d-s/2+a:null},Q$s=e=>{var{numericAxis:t}=e,n=t.scale.domain();if(t.type==="number"){var a=Math.min(n[0],n[1]),s=Math.max(n[0],n[1]);return a<=0&&s>=0?0:s<0?s:a}return n[0]},X$s=e=>{var t=e.flat(2).filter(Fe);return[Math.min(...t),Math.max(...t)]},Z$s=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],J$s=(e,t,n)=>{if(e!=null)return Z$s(Object.keys(e).reduce((a,s)=>{var r=e[s];if(!r)return a;var{stackedData:i}=r,c=i.reduce((d,m)=>{var f=CW(m,t,n),p=X$s(f);return!ht(p[0])||!ht(p[1])?d:[Math.min(d[0],p[0]),Math.max(d[1],p[1])]},[1/0,-1/0]);return[Math.min(c[0],a[0]),Math.max(c[1],a[1])]},[1/0,-1/0]))},n5=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,a5=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,$p=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!n||a>0)return a}if(e&&t&&t.length>=2){for(var s=e0(t,f=>f.coordinate),r=1/0,i=1,c=s.length;i<c;i++){var d=s[i],m=s[i-1];r=Math.min((d?.coordinate||0)-(m?.coordinate||0),r)}return r===1/0?0:r}return n?void 0:0};function o5(e){var{tooltipEntrySettings:t,dataKey:n,payload:a,value:s,name:r}=e;return Om(Om({},t),{},{dataKey:n,payload:a,value:s,name:r})}function d0(e,t){if(e)return String(e);if(typeof t=="string")return t}var ews=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},tws=(e,t)=>t==="centric"?e.angle:e.radius,ml=e=>e.layout.width,pl=e=>e.layout.height,nws=e=>e.layout.scale,RW=e=>e.layout.margin,u0=ce(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),m0=ce(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),aws="data-recharts-item-index",ows="data-recharts-item-id",by=60;function s5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Tb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?s5(Object(n),!0).forEach(function(a){sws(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function sws(e,t,n){return(t=rws(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rws(e){var t=iws(e,"string");return typeof t=="symbol"?t:t+""}function iws(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var lws=e=>e.brush.height;function cws(e){var t=m0(e);return t.reduce((n,a)=>
918{if(a.orientation==="left"&&!a.mirror&&!a.hide){var s=typeof a.width=="number"?a.width:by;return n+s}return n},0)}function dws(e){var t=m0(e);return t.reduce((n,a)=>{if(a.orientation==="right"&&!a.mirror&&!a.hide){var s=typeof a.width=="number"?a.width:by;return n+s}return n},0)}function uws(e){var t=u0(e);return t.reduce((n,a)=>a.orientation==="top"&&!a.mirror&&!a.hide?n+a.height:n,0)}function mws(e){var t=u0(e);return t.reduce((n,a)=>a.orientation==="bottom"&&!a.mirror&&!a.hide?n+a.height:n,0)}var ma=ce([ml,pl,RW,lws,cws,dws,uws,mws,GG,Ixs],(e,t,n,a,s,r,i,c,d,m)=>{var f={left:(n.left||0)+s,right:(n.right||0)+r},p={top:(n.top||0)+i,bottom:(n.bottom||0)+c},y=Tb(Tb({},p),f),v=y.bottom;y.bottom+=a,y=H$s(y,d,m);var $=e-y.left-y.right,x=t-y.top-y.bottom;return Tb(Tb({brushBottom:v},y),{},{width:Math.max($,0),height:Math.max(x,0)})}),pws=ce(ma,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Xj=ce(ml,pl,(e,t)=>({x:0,y:0,width:e,height:t})),fws=h.createContext(null),Ga=()=>h.useContext(fws)!=null,p0=e=>e.brush,f0=ce([p0,ma,RW],(e,t,n)=>({height:e.height,x:Fe(e.x)?e.x:t.left,y:Fe(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:Fe(e.width)?e.width:t.width})),r5=function(t,n){for(var a=arguments.length,s=new Array(a>2?a-2:0),r=2;r<a;r++)s[r-2]=arguments[r];if(typeof console<"u"&&console.warn&&(n===void 0&&console.warn("LogUtils requires an error message argument"),!t))if(n===void 0)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var i=0;console.warn(n.replace(/%s/g,()=>s[i++]))}},gws={initialDimension:{width:-1,height:-1}},hws=h.createContext(gws.initialDimension),PW=()=>h.useContext(hws);function Zj(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var g0=()=>{var e,t=Ga(),n=Ge(pws),a=Ge(f0),s=(e=Ge(p0))===null||e===void 0?void 0:e.padding;return!t||!a||!s?n:{width:a.width-s.left-s.right,height:a.height-s.top-s.bottom,x:s.left,y:s.top}},yws={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},_W=()=>{var e;return(e=Ge(ma))!==null&&e!==void 0?e:yws},Jj=()=>Ge(ml),e2=()=>Ge(pl),vws=()=>Ge(e=>e.layout.margin),Ut=e=>e.layout.layoutType,Cu=()=>Ge(Ut),t2=()=>{var e=Cu();if(e==="horizontal"||e==="vertical")return e},jW=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},bws=()=>{var e=Cu();return e!==void 0},xy=e=>{var t=gn(),n=Ga(),{width:a,height:s}=e,r=PW(),i=a,c=s;return r&&(i=r.width>0?r.width:a,c=r.height>0?r.height:s),h.useEffect(()=>{!n&&xp(i)&&xp(c)&&t(L$s({width:i,height:c}))},[t,n,i,c]),null},NW=Symbol.for("immer-nothing"),i5=Symbol.for("immer-draftable"),is=Symbol.for("immer-state");function rr(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var xh=Object.getPrototypeOf;function wp(e){return!!e&&!!e[is]}function au(e){return e?DW(e)||Array.isArray(e)||!!e[i5]||!!e.constructor?.[i5]||$y(e)||y0(e):!1}var xws=Object.prototype.constructor.toString(),l5=new WeakMap;function DW(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let a=l5.get(n);return a===void 0&&(a=Function.toString.call(n),l5.set(n,a)),a===xws}function c$(e,t,n=!0){h0(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(s=>{t(s,e[s],e)}):e.forEach((a,s)=>t(s,a,e))}function h0(e){const t=e[is];return t?t.type_:Array.isArray(e)?1:$y(e)?2:y0(e)?3:0}function oP(e,t){return h0(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function MW(e,t,n){const a=h0(e);a===2?e.set(t,n):a===3?e.add(n):e[t]=n}function $ws(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function $y(e){return e instanceof Map}function y0(e){return e instanceof Set}function wd(e){return e.copy_||e.base_}function sP(e,t){if($y(e))return new Map(e);if(y0(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=DW(e);
918if(t===!0||t==="class_only"&&!n){const a=Object.getOwnPropertyDescriptors(e);delete a[is];let s=Reflect.ownKeys(a);for(let r=0;r<s.length;r++){const i=s[r],c=a[i];c.writable===!1&&(c.writable=!0,c.configurable=!0),(c.get||c.set)&&(a[i]={configurable:!0,writable:!0,enumerable:c.enumerable,value:e[i]})}return Object.create(xh(e),a)}else{const a=xh(e);if(a!==null&&n)return{...e};const s=Object.create(a);return Object.assign(s,e)}}function n2(e,t=!1){return v0(e)||wp(e)||!au(e)||(h0(e)>1&&Object.defineProperties(e,{set:Rb,add:Rb,clear:Rb,delete:Rb}),Object.freeze(e),t&&Object.values(e).forEach(n=>n2(n,!0))),e}function wws(){rr(2)}var Rb={value:wws};function v0(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var kws={};function ou(e){const t=kws[e];return t||rr(0,e),t}var $h;function EW(){return $h}function Cws(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function c5(e,t){t&&(ou("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function rP(e){iP(e),e.drafts_.forEach(Sws),e.drafts_=null}function iP(e){e===$h&&($h=e.parent_)}function d5(e){return $h=Cws($h,e)}function Sws(e){const t=e[is];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function u5(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return e!==void 0&&e!==n?(n[is].modified_&&(rP(t),rr(4)),au(e)&&(e=d$(t,e),t.parent_||u$(t,e)),t.patches_&&ou("Patches").generateReplacementPatches_(n[is].base_,e,t.patches_,t.inversePatches_)):e=d$(t,n,[]),rP(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==NW?e:void 0}function d$(e,t,n){if(v0(t))return t;const a=e.immer_.shouldUseStrictIteration(),s=t[is];if(!s)return c$(t,(r,i)=>m5(e,s,t,r,i,n),a),t;if(s.scope_!==e)return t;if(!s.modified_)return u$(e,s.base_,!0),s.base_;if(!s.finalized_){s.finalized_=!0,s.scope_.unfinalizedDrafts_--;const r=s.copy_;let i=r,c=!1;s.type_===3&&(i=new Set(r),r.clear(),c=!0),c$(i,(d,m)=>m5(e,s,r,d,m,n,c),a),u$(e,r,!1),n&&e.patches_&&ou("Patches").generatePatches_(s,n,e.patches_,e.inversePatches_)}return s.copy_}function m5(e,t,n,a,s,r,i){if(s==null||typeof s!="object"&&!i)return;const c=v0(s);if(!(c&&!i)){if(wp(s)){const d=r&&t&&t.type_!==3&&!oP(t.assigned_,a)?r.concat(a):void 0,m=d$(e,s,d);if(MW(n,a,m),wp(m))e.canAutoFreeze_=!1;else return}else i&&n.add(s);if(au(s)&&!c){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[a]===s&&c)return;d$(e,s),(!t||!t.scope_.parent_)&&typeof a!="symbol"&&($y(n)?n.has(a):Object.prototype.propertyIsEnumerable.call(n,a))&&u$(e,s)}}}function u$(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&n2(t,n)}function Aws(e,t){const n=Array.isArray(e),a={type_:n?1:0,scope_:t?t.scope_:EW(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let s=a,r=a2;n&&(s=[a],r=wh);const{revoke:i,proxy:c}=Proxy.revocable(s,r);return a.draft_=c,a.revoke_=i,c}var a2={get(e,t){if(t===is)return e;const n=wd(e);if(!oP(n,t))return Tws(e,n,t);const a=n[t];return e.finalized_||!au(a)?a:a===SA(e.base_,t)?(AA(e),e.copy_[t]=cP(a,e)):a},has(e,t){return t in wd(e)},ownKeys(e){return Reflect.ownKeys(wd(e))},set(e,t,n){const a=IW(wd(e),t);if(a?.set)return a.set.call(e.draft_,n),!0;if(!e.modified_){const s=SA(wd(e),t),r=s?.[is];if(r&&r.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if($ws(n,s)&&(n!==void 0||oP(e.base_,t)))return!0;AA(e),lP(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty(e,t){return SA(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,AA(e),lP(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=wd(e),a=Reflect.getOwnPropertyDescriptor(n,t);return a&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:a.enumerable,value:n[t]}},defineProperty(){rr(11)},getPrototypeOf(e){return xh(e.base_)},setPrototypeOf(){rr(12)}},wh={};c$(a2,(e,t)=>{wh[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});wh.deleteProperty=function(e,t){return wh.set.call(this,e,t,void 0)};wh.set=function(e,t,n){return a2.set.call(this,e[0],t,n,e[0])};function SA(e,t){const n=e[is];return(n?wd(n):e)[t]}function Tws(e,t,n){const a=IW(t,n);return a?"value"in a?a.value:a.get?.call(e.draft_):void 0}function IW(e,t){if(!(t in e))return;let n=xh(e);for(;n;){const a=Object.getOwnPropertyDescriptor(n,t);if(a)return a;n=xh(n)}}function lP(e){e.modified_||(e.modified_=!0,e.parent_&&lP(e.parent_))}function AA(e){e.copy_||(e.copy_=sP(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Rws=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,n,a)=>
918{if(typeof t=="function"&&typeof n!="function"){const r=n;n=t;const i=this;return function(d=r,...m){return i.produce(d,f=>n.call(this,f,...m))}}typeof n!="function"&&rr(6),a!==void 0&&typeof a!="function"&&rr(7);let s;if(au(t)){const r=d5(this),i=cP(t,void 0);let c=!0;try{s=n(i),c=!1}finally{c?rP(r):iP(r)}return c5(r,a),u5(s,r)}else if(!t||typeof t!="object"){if(s=n(t),s===void 0&&(s=t),s===NW&&(s=void 0),this.autoFreeze_&&n2(s,!0),a){const r=[],i=[];ou("Patches").generateReplacementPatches_(t,s,r,i),a(r,i)}return s}else rr(1,t)},this.produceWithPatches=(t,n)=>{if(typeof t=="function")return(i,...c)=>this.produceWithPatches(i,d=>t(d,...c));let a,s;return[this.produce(t,n,(i,c)=>{a=i,s=c}),a,s]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){au(e)||rr(8),wp(e)&&(e=Pws(e));const t=d5(this),n=cP(e,void 0);return n[is].isManual_=!0,iP(t),n}finishDraft(e,t){const n=e&&e[is];(!n||!n.isManual_)&&rr(9);const{scope_:a}=n;return c5(a,t),u5(void 0,a)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const s=t[n];if(s.path.length===0&&s.op==="replace"){e=s.value;break}}n>-1&&(t=t.slice(n+1));const a=ou("Patches").applyPatches_;return wp(e)?a(e,t):this.produce(e,s=>a(s,t))}};function cP(e,t){const n=$y(e)?ou("MapSet").proxyMap_(e,t):y0(e)?ou("MapSet").proxySet_(e,t):Aws(e,t);return(t?t.scope_:EW()).drafts_.push(n),n}function Pws(e){return wp(e)||rr(10,e),OW(e)}function OW(e){if(!au(e)||v0(e))return e;const t=e[is];let n,a=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=sP(e,t.scope_.immer_.useStrictShallowCopy_),a=t.scope_.immer_.shouldUseStrictIteration()}else n=sP(e,!0);return c$(n,(s,r)=>{MW(n,s,OW(r))},a),t&&(t.finalized_=!1),n}var _ws=new Rws;_ws.produce;var jws={settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},LW=Ka({name:"legend",initialState:jws,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:pn()},replaceLegendPayload:{reducer(e,t){var{prev:n,next:a}=t.payload,s=Rs(e).payload.indexOf(n);s>-1&&(e.payload[s]=a)},prepare:pn()},removeLegendPayload:{reducer(e,t){var n=Rs(e).payload.indexOf(t.payload);n>-1&&e.payload.splice(n,1)},prepare:pn()}}}),{setLegendSize:p5,setLegendSettings:Nws,addLegendPayload:Dws,replaceLegendPayload:Mws,removeLegendPayload:Ews}=LW.actions,Iws=LW.reducer,TA={exports:{}},RA={};/** 919 * @license React 920 * use-sync-external-store-with-selector.production.js 921 * 922 * Copyright (c) Meta Platforms, Inc. and affiliates. 923 * 924 * This source code is licensed under the MIT license found in the 925 * LICENSE file in the root directory of this source tree. 926 */var f5;function Ows(){if(f5)return RA;f5=1;var e=jp();function t(d,m){return d===m&&(d!==0||1/d===1/m)||d!==d&&m!==m}var n=typeof Object.is=="function"?Object.is:t,a=e.useSyncExternalStore,s=e.useRef,r=e.useEffect,i=e.useMemo,c=e.useDebugValue;return RA.useSyncExternalStoreWithSelector=function(d,m,f,p,y){var v=s(null);if(v.current===null){var $={hasValue:!1,value:null};v.current=$}else $=v.current;v=i(function(){function w(_){if(!S){if(S=!0,k=_,_=p(_),y!==void 0&&$.hasValue){var P=$.value;if(y(P,_))return T=P}return T=_}if(P=T,n(k,_))return P;var j=p(_);return y!==void 0&&y(P,j)?(k=_,P):(k=_,T=j)}var S=!1,k,T,R=f===void 0?null:f;return[function(){return w(m())},R===null?void 0:function(){return w(R())}]},[m,f,p,y]);var x=a(d,v[0],v[1]);return r(function(){$.hasValue=!0,$.value=x},[x]),c(x),x},RA}var g5;function Lws(){return g5||(g5=1,TA.exports=Ows()),TA.exports}Lws();function Uws(e){e()}function Bws(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Uws(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let a=e;for(;a;)n.push(a),a=a.next;return n},subscribe(n){let a=!0;const s=t={callback:n,next:null,prev:t};return s.prev?s.prev.next=s:e=s,function(){!a||e===null||(a=!1,s.next?s.next.prev=s.prev:t=s.prev,s.prev?s.prev.next=s.next:e=s.next)}}}}var h5={notify(){},get:()=>[]};function Fws(e,t){let n,a=h5,s=0,r=!1;function i(x){f();const w=a.subscribe(x);let S=!1;return()=>{S||(S=!0,w(),p())}}function c(){a.notify()}function d(){$.onStateChange&&$.onStateChange()}function m(){return r}function f(){s++,n||(n=e.subscribe(d),a=Bws())}function p(){s--,n&&s===0&&(n(),n=void 0,a.clear(),a=h5)}function y(){r||(r=!0,f())}function v(){r&&(r=!1,p())}const $={addNestedSub:i,notifyNestedSubs:c,handleChangeWrapper:d,isSubscribed:m,trySubscribe:y,tryUnsubscribe:v,getListeners:()=>a};return $}var zws=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",qws=zws(),Hws=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Vws=Hws(),Kws=()=>qws||Vws?h.useLayoutEffect:h.useEffect,Gws=Kws();function y5(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Wws(e,t){if(y5(e,t))return!0;
926if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(let s=0;s<n.length;s++)if(!Object.prototype.hasOwnProperty.call(t,n[s])||!y5(e[n[s]],t[n[s]]))return!1;return!0}var PA=Symbol.for("react-redux-context"),_A=typeof globalThis<"u"?globalThis:{};function Yws(){if(!h.createContext)return{};const e=_A[PA]??(_A[PA]=new Map);let t=e.get(h.createContext);return t||(t=h.createContext(null),e.set(h.createContext,t)),t}var Qws=Yws();function Xws(e){const{children:t,context:n,serverState:a,store:s}=e,r=h.useMemo(()=>{const d=Fws(s);return{store:s,subscription:d,getServerState:a?()=>a:void 0}},[s,a]),i=h.useMemo(()=>s.getState(),[s]);Gws(()=>{const{subscription:d}=r;return d.onStateChange=d.notifyNestedSubs,d.trySubscribe(),i!==s.getState()&&d.notifyNestedSubs(),()=>{d.tryUnsubscribe(),d.onStateChange=void 0}},[r,i]);const c=n||Qws;return h.createElement(c.Provider,{value:r},t)}var Zws=Xws,Jws=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function e0s(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Yp(e,t){var n=new Set([...Object.keys(e),...Object.keys(t)]);for(var a of n)if(Jws.has(a)){if(e[a]==null&&t[a]==null)continue;if(!Wws(e[a],t[a]))return!1}else if(!e0s(e[a],t[a]))return!1;return!0}var t0s=["contextPayload"];function dP(){return dP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},dP.apply(null,arguments)}function v5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function kp(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?v5(Object(n),!0).forEach(function(a){n0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function n0s(e,t,n){return(t=a0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a0s(e){var t=o0s(e,"string");return typeof t=="symbol"?t:t+""}function o0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function s0s(e,t){if(e==null)return{};var n,a,s=r0s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function r0s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function i0s(e){return e.value}function l0s(e){var{contextPayload:t}=e,n=s0s(e,t0s),a=qG(t,e.payloadUniqBy,i0s),s=kp(kp({},n),{},{payload:a});return h.isValidElement(e.content)?h.cloneElement(e.content,s):typeof e.content=="function"?h.createElement(e.content,s):h.createElement(Hbs,s)}function c0s(e,t,n,a,s,r){var{layout:i,align:c,verticalAlign:d}=t,m,f;return(!e||(e.left===void 0||e.left===null)&&(e.right===void 0||e.right===null))&&(c==="center"&&i==="vertical"?m={left:((a||0)-r.width)/2}:m=c==="right"?{right:n&&n.right||0}:{left:n&&n.left||0}),(!e||(e.top===void 0||e.top===null)&&(e.bottom===void 0||e.bottom===null))&&(d==="middle"?f={top:((s||0)-r.height)/2}:f=d==="bottom"?{bottom:n&&n.bottom||0}:{top:n&&n.top||0}),kp(kp({},m),f)}function d0s(e){var t=gn();return h.useEffect(()=>{t(Nws(e))},[t,e]),null}function u0s(e){var t=gn();return h.useEffect(()=>(t(p5(e)),()=>{t(p5({width:0,height:0}))}),[t,e]),null}function m0s(e,t,n,a){return e==="vertical"&&t!=null?{height:t}
926:e==="horizontal"?{width:n||a}:null}var p0s={align:"center",iconSize:14,inactiveColor:"#ccc",itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"};function f0s(e){var t=Va(e,p0s),n=Uxs(),a=Ivs(),s=vws(),{width:r,height:i,wrapperStyle:c,portal:d}=t,[m,f]=WG([n]),p=Jj(),y=e2();if(p==null||y==null)return null;var v=p-(s?.left||0)-(s?.right||0),$=m0s(t.layout,i,r,v),x=d?c:kp(kp({position:"absolute",width:$?.width||r||"auto",height:$?.height||i||"auto"},c0s(c,t,s,p,y,m)),c),w=d??a;if(w==null||n==null)return null;var S=h.createElement("div",{className:"recharts-legend-wrapper",style:x,ref:f},h.createElement(d0s,{layout:t.layout,align:t.align,verticalAlign:t.verticalAlign,itemSorter:t.itemSorter}),!d&&h.createElement(u0s,{width:m.width,height:m.height}),h.createElement(l0s,dP({},t,$,{margin:s,chartWidth:p,chartHeight:y,contextPayload:n})));return li.createPortal(S,w)}var o2=h.memo(f0s,Yp);o2.displayName="Legend";function uP(){return uP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},uP.apply(null,arguments)}function b5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function og(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?b5(Object(n),!0).forEach(function(a){g0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function g0s(e,t,n){return(t=h0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h0s(e){var t=y0s(e,"string");return typeof t=="symbol"?t:t+""}function y0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function v0s(e){return Array.isArray(e)&&si(e[0])&&si(e[1])?e.join(" ~ "):e}var $m={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1};function b0s(e,t){return t==null?e:e0(e,t)}var x0s=e=>{var{separator:t=$m.separator,contentStyle:n,itemStyle:a,labelStyle:s=$m.labelStyle,payload:r,formatter:i,itemSorter:c,wrapperClassName:d,labelClassName:m,label:f,labelFormatter:p,accessibilityLayer:y=$m.accessibilityLayer}=e,v=()=>{if(r&&r.length){var _={padding:0,margin:0},P=b0s(r,c),j=P.map((N,I)=>{if(!N||N.type==="none")return null;var z=N.formatter||i||v0s,{value:E,name:L}=N,O=E,V=L;if(z){var ne=z(E,L,N,I,r);if(Array.isArray(ne))[O,V]=ne;else if(ne!=null)O=ne;else return null}var q=og(og({},$m.itemStyle),{},{color:N.color||$m.itemStyle.color},a);return h.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(I),style:q},si(V)?h.createElement("span",{className:"recharts-tooltip-item-name"},V):null,si(V)?h.createElement("span",{className:"recharts-tooltip-item-separator"},t):null,h.createElement("span",{className:"recharts-tooltip-item-value"},O),h.createElement("span",{className:"recharts-tooltip-item-unit"},N.unit||""))});return h.createElement("ul",{className:"recharts-tooltip-item-list",style:_},j)}return null},$=og(og({},$m.contentStyle),n),x=og({margin:0},s),w=!$n(f),S=w?f:"",k=Lt("recharts-default-tooltip",d),T=Lt("recharts-tooltip-label",m);w&&p&&r!==void 0&&r!==null&&(S=p(f,r));var R=y?{role:"status","aria-live":"assertive"}:{};return h.createElement("div",uP({className:k,style:$},R),h.createElement("p",{className:T,style:x},h.isValidElement(S)?S:"".concat(S)),v())},sg="recharts-tooltip-wrapper",$0s={visibility:"hidden"};function w0s(e){var{coordinate:t,translateX:n,translateY:a}=e;return Lt(sg,{["".concat(sg,"-right")]:Fe(n)&&t&&Fe(t.x)&&n>=t.x,["".concat(sg,"-left")]:Fe(n)&&t&&Fe(t.x)&&n<t.x,["".concat(sg,"-bottom")]:Fe(a)&&t&&Fe(t.y)&&a>=t.y,["".concat(sg,"-top")]:Fe(a)&&t&&Fe(t.y)&&a<t.y})}function x5(e){var{allowEscapeViewBox:t,coordinate:n,key:a,offset:s,position:r,reverseDirection:i,tooltipDimension:c,viewBox:d,viewB
926oxDimension:m}=e;if(r&&Fe(r[a]))return r[a];var f=n[a]-c-(s>0?s:0),p=n[a]+s;if(t[a])return i[a]?f:p;var y=d[a];if(y==null)return 0;if(i[a]){var v=f,$=y;return v<$?Math.max(p,y):Math.max(f,y)}if(m==null)return 0;var x=p+c,w=y+m;return x>w?Math.max(f,y):Math.max(p,y)}function k0s(e){var{translateX:t,translateY:n,useTranslate3d:a}=e;return{transform:a?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function C0s(e){var{allowEscapeViewBox:t,coordinate:n,offsetTop:a,offsetLeft:s,position:r,reverseDirection:i,tooltipBox:c,useTranslate3d:d,viewBox:m}=e,f,p,y;return c.height>0&&c.width>0&&n?(p=x5({allowEscapeViewBox:t,coordinate:n,key:"x",offset:s,position:r,reverseDirection:i,tooltipDimension:c.width,viewBox:m,viewBoxDimension:m.width}),y=x5({allowEscapeViewBox:t,coordinate:n,key:"y",offset:a,position:r,reverseDirection:i,tooltipDimension:c.height,viewBox:m,viewBoxDimension:m.height}),f=k0s({translateX:p,translateY:y,useTranslate3d:d})):f=$0s,{cssProperties:f,cssClasses:w0s({translateX:p,translateY:y,coordinate:n})}}var S0s=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),wy={isSsr:S0s()};function UW(){var[e,t]=h.useState(()=>wy.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return h.useEffect(()=>{if(window.matchMedia){var n=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{t(n.matches)};return n.addEventListener("change",a),()=>{n.removeEventListener("change",a)}}},[]),e}function $5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function wm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$5(Object(n),!0).forEach(function(a){A0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function A0s(e,t,n){return(t=T0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T0s(e){var t=R0s(e,"string");return typeof t=="symbol"?t:t+""}function R0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function P0s(e){if(!(e.prefersReducedMotion&&e.isAnimationActive==="auto")&&e.isAnimationActive&&e.active)return"transform ".concat(e.animationDuration,"ms ").concat(e.animationEasing)}function _0s(e){var t,n,a,s,r,i,c=UW(),[d,m]=h.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}));h.useEffect(()=>{var $=x=>{if(x.key==="Escape"){var w,S,k,T;m({dismissed:!0,dismissedAtCoordinate:{x:(w=(S=e.coordinate)===null||S===void 0?void 0:S.x)!==null&&w!==void 0?w:0,y:(k=(T=e.coordinate)===null||T===void 0?void 0:T.y)!==null&&k!==void 0?k:0}})}};return document.addEventListener("keydown",$),()=>{document.removeEventListener("keydown",$)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(n=e.coordinate)===null||n===void 0?void 0:n.y]),d.dismissed&&(((a=(s=e.coordinate)===null||s===void 0?void 0:s.x)!==null&&a!==void 0?a:0)!==d.dismissedAtCoordinate.x||((r=(i=e.coordinate)===null||i===void 0?void 0:i.y)!==null&&r!==void 0?r:0)!==d.dismissedAtCoordinate.y)&&m(wm(wm({},d),{},{dismissed:!1}));var{cssClasses:f,cssProperties:p}=C0s({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),y=e.hasPortalFromProps?{}:wm(wm({transition:P0s({prefersReducedMotion:c,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},p),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),v=wm(wm({},y),{},{visibility:!d.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return h.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,
926className:f,style:v,ref:e.innerRef},e.children)}var j0s=h.memo(_0s),BW=()=>{var e;return(e=Ge(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function mP(){return mP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},mP.apply(null,arguments)}function w5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function k5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w5(Object(n),!0).forEach(function(a){N0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function N0s(e,t,n){return(t=D0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D0s(e){var t=M0s(e,"string");return typeof t=="symbol"?t:t+""}function M0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var C5={curveBasisClosed:tbs,curveBasisOpen:nbs,curveBasis:ebs,curveBumpX:Bvs,curveBumpY:Fvs,curveLinearClosed:abs,curveLinear:Xw,curveMonotoneX:obs,curveMonotoneY:sbs,curveNatural:rbs,curveStep:ibs,curveStepAfter:cbs,curveStepBefore:lbs},m$=e=>ht(e.x)&&ht(e.y),S5=e=>e.base!=null&&m$(e.base)&&m$(e),rg=e=>e.x,ig=e=>e.y,E0s=(e,t)=>{if(typeof e=="function")return e;var n="curve".concat(hy(e));if((n==="curveMonotone"||n==="curveBump")&&t){var a=C5["".concat(n).concat(t==="vertical"?"Y":"X")];if(a)return a}return C5[n]||Xw},A5={connectNulls:!1,type:"linear"},I0s=e=>{var{type:t=A5.type,points:n=[],baseLine:a,layout:s,connectNulls:r=A5.connectNulls}=e,i=E0s(t,s),c=r?n.filter(m$):n;if(Array.isArray(a)){var d,m=n.map(($,x)=>k5(k5({},$),{},{base:a[x]}));s==="vertical"?d=$b().y(ig).x1(rg).x0($=>$.base.x):d=$b().x(rg).y1(ig).y0($=>$.base.y);var f=d.defined(S5).curve(i),p=r?m.filter(S5):m;return f(p)}var y;s==="vertical"&&Fe(a)?y=$b().y(ig).x1(rg).x0(a):Fe(a)?y=$b().x(rg).y1(ig).y0(a):y=yG().x(rg).y(ig);var v=y.defined(m$).curve(i);return v(c)},Fg=e=>{var{className:t,points:n,path:a,pathRef:s}=e,r=Cu();if((!n||!n.length)&&!a)return null;var i={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||r,connectNulls:e.connectNulls},c=n&&n.length?I0s(i):a;return h.createElement("path",mP({},Is(e),zj(e),{className:Lt("recharts-curve",t),d:c===null?void 0:c,ref:s}))},O0s=["x","y","top","left","width","height","className"];function pP(){return pP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},pP.apply(null,arguments)}function T5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function L0s(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?T5(Object(n),!0).forEach(function(a){U0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function U0s(e,t,n){return(t=B0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B0s(e){var t=F0s(e,"string");return typeof t=="symbol"?t:t+""}function F0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function z0s(e,t){if(e==null)return{};var n,a,s=q0s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function q0s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var H0s=(e,t,n,a,s,r)=>"M".concat(e,",").concat(s,"v").concat(a,"M").concat(r,",").concat(t,"h").concat(n),V0s=e=>{var{x:t=0,y:n=0,top:a=0,left:s=0,width:r=0,height:i=0,className:c}=e,d=z0s(e,O0s),m=L0s({x:t,y:n,top:a,left:s,width:r,height:i},d);return!Fe(t)||!Fe(n)||!Fe(r)||!Fe(i)||!Fe(a)||!Fe(s)?null:h.createElement("path",pP({},no(m),{className:Lt("recharts-cross",c),d:H0s(t,n,r,i,a,s)}))};function K0s(e,t,n,a){var s=a/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-s:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-s,width:e==="horizontal"?a:n.width-1,height:e==="horizontal"?n.height-1:a}}function R5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function P5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
926t%2?R5(Object(n),!0).forEach(function(a){G0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function G0s(e,t,n){return(t=W0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function W0s(e){var t=Y0s(e,"string");return typeof t=="symbol"?t:t+""}function Y0s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Q0s=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),FW=(e,t,n)=>e.map(a=>"".concat(Q0s(a)," ").concat(t,"ms ").concat(n)).join(","),X0s=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((n,a)=>n.filter(s=>a.includes(s))),kh=(e,t)=>Object.keys(t).reduce((n,a)=>P5(P5({},n),{},{[a]:e(a,t[a])}),{});function _5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Qn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_5(Object(n),!0).forEach(function(a){Z0s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Z0s(e,t,n){return(t=J0s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J0s(e){var t=eks(e,"string");return typeof t=="symbol"?t:t+""}function eks(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var p$=(e,t,n)=>e+(t-e)*n,fP=e=>{var{from:t,to:n}=e;return t!==n},zW=(e,t,n)=>{var a=kh((s,r)=>{if(fP(r)){var[i,c]=e(r.from,r.to,r.velocity);return Qn(Qn({},r),{},{from:i,velocity:c})}return r},t);return n<1?kh((s,r)=>fP(r)&&a[s]!=null?Qn(Qn({},r),{},{velocity:p$(r.velocity,a[s].velocity,n),from:p$(r.from,a[s].from,n)}):r,t):zW(e,a,n-1)};function tks(e,t,n,a,s,r){var i,c=a.reduce((y,v)=>Qn(Qn({},y),{},{[v]:{from:e[v],velocity:0,to:t[v]}}),{}),d=()=>kh((y,v)=>v.from,c),m=()=>!Object.values(c).filter(fP).length,f=null,p=y=>{i||(i=y);var v=y-i,$=v/n.dt;c=zW(n,c,$),s(Qn(Qn(Qn({},e),t),d())),i=y,m()||(f=r.setTimeout(p))};return()=>(f=r.setTimeout(p),()=>{var y;(y=f)===null||y===void 0||y()})}function nks(e,t,n,a,s,r,i){var c=null,d=s.reduce((p,y)=>{var v=e[y],$=t[y];return v==null||$==null?p:Qn(Qn({},p),{},{[y]:[v,$]})},{}),m,f=p=>{m||(m=p);var y=(p-m)/a,v=kh((x,w)=>p$(...w,n(y)),d);if(r(Qn(Qn(Qn({},e),t),v)),y<1)c=i.setTimeout(f);else{var $=kh((x,w)=>p$(...w,n(1)),d);r(Qn(Qn(Qn({},e),t),$))}};return()=>(c=i.setTimeout(f),()=>{var p;(p=c)===null||p===void 0||p()})}const aks=(e,t,n,a,s,r)=>{var i=X0s(e,t);return n==null?()=>(s(Qn(Qn({},e),t)),()=>{}):n.isStepper===!0?tks(e,t,n,i,s,r):nks(e,t,n,a,i,s,r)};var f$=1e-4,qW=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],HW=(e,t)=>e.map((n,a)=>n*t**a).reduce((n,a)=>n+a),j5=(e,t)=>n=>{var a=qW(e,t);return HW(a,n)},oks=(e,t)=>n=>{var a=qW(e,t),s=[...a.map((r,i)=>r*i).slice(1),0];return HW(s,n)},sks=e=>{var t,n=e.split("(");if(n.length!==2||n[0]!=="cubic-bezier")return null;var a=(t=n[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(a==null||a.length!==4)return null;var s=a.map(r=>parseFloat(r));return[s[0],s[1],s[2],s[3]]},rks=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];if(n.length===1)switch(n[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:{var s=sks(n[0]);if(s)return s}}return n.length===4?n:[0,0,1,1]},iks=(e,t,n,a)=>
926{var s=j5(e,n),r=j5(t,a),i=oks(e,n),c=m=>m>1?1:m<0?0:m,d=m=>{for(var f=m>1?1:m,p=f,y=0;y<8;++y){var v=s(p)-f,$=i(p);if(Math.abs(v-f)<f$||$<f$)return r(p);p=c(p-v/$)}return r(p)};return d.isStepper=!1,d},N5=function(){return iks(...rks(...arguments))},lks=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{stiff:n=100,damping:a=8,dt:s=17}=t,r=(i,c,d)=>{var m=-(i-c)*n,f=d*a,p=d+(m-f)*s/1e3,y=d*s/1e3+i;return Math.abs(y-c)<f$&&Math.abs(p)<f$?[c,0]:[y,p]};return r.isStepper=!0,r.dt=s,r},cks=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return N5(e);case"spring":return lks();default:if(e.split("(")[0]==="cubic-bezier")return N5(e)}return typeof e=="function"?e:null};function dks(e){var t,n=()=>null,a=!1,s=null,r=i=>{if(!a){if(Array.isArray(i)){if(!i.length)return;var c=i,[d,...m]=c;if(typeof d=="number"){s=e.setTimeout(r.bind(null,m),d);return}r(d),s=e.setTimeout(r.bind(null,m));return}typeof i=="string"&&(t=i,n(t)),typeof i=="object"&&(t=i,n(t)),typeof i=="function"&&i()}};return{stop:()=>{a=!0},start:i=>{a=!1,s&&(s(),s=null),r(i)},subscribe:i=>(n=i,()=>{n=()=>null}),getTimeoutController:()=>e}}class uks{setTimeout(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=performance.now(),s=null,r=i=>{i-a>=n?t(i):typeof requestAnimationFrame=="function"&&(s=requestAnimationFrame(r))};return s=requestAnimationFrame(r),()=>{s!=null&&cancelAnimationFrame(s)}}}function mks(){return dks(new uks)}var pks=h.createContext(mks);function fks(e,t){var n=h.useContext(pks);return h.useMemo(()=>t??n(e),[e,t,n])}var gks={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},D5={t:0},jA={t:1};function b0(e){var t=Va(e,gks),{isActive:n,canBegin:a,duration:s,easing:r,begin:i,onAnimationEnd:c,onAnimationStart:d,children:m}=t,f=UW(),p=n==="auto"?!wy.isSsr&&!f:n,y=fks(t.animationId,t.animationManager),[v,$]=h.useState(p?D5:jA),x=h.useRef(null);return h.useEffect(()=>{p||$(jA)},[p]),h.useEffect(()=>{if(!p||!a)return Wp;var w=aks(D5,jA,cks(r),s,$,y.getTimeoutController()),S=()=>{x.current=w()};return y.start([d,i,S,s,c]),()=>{y.stop(),x.current&&x.current(),c()}},[p,a,s,r,i,d,c,y]),m(v.t)}function x0(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",n=h.useRef(hh(t)),a=h.useRef(e);return a.current!==e&&(n.current=hh(t),a.current=e),n.current}var hks=["radius"],yks=["radius"],M5,E5,I5,O5,L5,U5,B5,F5,z5,q5;function H5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function V5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?H5(Object(n),!0).forEach(function(a){vks(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function vks(e,t,n){return(t=bks(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bks(e){var t=xks(e,"string");return typeof t=="symbol"?t:t+""}function xks(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function g$(){return g$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},g$.apply(null,arguments)}function K5(e,t){if(e==null)return{};var n,a,s=$ks(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function $ks(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function Ir(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var G5=(e,t,n,a,s)=>{var r=hc(n),i=hc(a),c=Math.min(Math.abs(r)/2,Math.abs(i)/2),d=i>=0?1:-1,m=r>=0?1:-1,f=i>=0&&r>=0||i<0&&r<0?1:0,p;
926if(c>0&&Array.isArray(s)){for(var y=[0,0,0,0],v=0,$=4;v<$;v++){var x,w=(x=s[v])!==null&&x!==void 0?x:0;y[v]=w>c?c:w}p=An(M5||(M5=Ir(["M",",",""])),e,t+d*y[0]),y[0]>0&&(p+=An(E5||(E5=Ir(["A ",",",",0,0,",",",",",""])),y[0],y[0],f,e+m*y[0],t)),p+=An(I5||(I5=Ir(["L ",",",""])),e+n-m*y[1],t),y[1]>0&&(p+=An(O5||(O5=Ir(["A ",",",",0,0,",`, 927 `,",",""])),y[1],y[1],f,e+n,t+d*y[1])),p+=An(L5||(L5=Ir(["L ",",",""])),e+n,t+a-d*y[2]),y[2]>0&&(p+=An(U5||(U5=Ir(["A ",",",",0,0,",`, 928 `,",",""])),y[2],y[2],f,e+n-m*y[2],t+a)),p+=An(B5||(B5=Ir(["L ",",",""])),e+m*y[3],t+a),y[3]>0&&(p+=An(F5||(F5=Ir(["A ",",",",0,0,",`, 929 `,",",""])),y[3],y[3],f,e,t+a-d*y[3])),p+="Z"}else if(c>0&&s===+s&&s>0){var S=Math.min(c,s);p=An(z5||(z5=Ir(["M ",",",` 930 A `,",",",0,0,",",",",",` 931 L `,",",` 932 A `,",",",0,0,",",",",",` 933 L `,",",` 934 A `,",",",0,0,",",",",",` 935 L `,",",` 936 A `,",",",0,0,",",",","," Z"])),e,t+d*S,S,S,f,e+m*S,t,e+n-m*S,t,S,S,f,e+n,t+d*S,e+n,t+a-d*S,S,S,f,e+n-m*S,t+a,e+m*S,t+a,S,S,f,e,t+a-d*S)}else p=An(q5||(q5=Ir(["M ",","," h "," v "," h "," Z"])),e,t,n,a,-n);return p},W5={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},VW=e=>{var t=Va(e,W5),n=h.useRef(null),[a,s]=h.useState(-1);h.useEffect(()=>{if(n.current&&n.current.getTotalLength)try{var M=n.current.getTotalLength();M&&s(M)}catch{}},[]);var{x:r,y:i,width:c,height:d,radius:m,className:f}=t,{animationEasing:p,animationDuration:y,animationBegin:v,isAnimationActive:$,isUpdateAnimationActive:x}=t,w=h.useRef(c),S=h.useRef(d),k=h.useRef(r),T=h.useRef(i),R=h.useMemo(()=>({x:r,y:i,width:c,height:d,radius:m}),[r,i,c,d,m]),_=x0(R,"rectangle-");if(r!==+r||i!==+i||c!==+c||d!==+d||c===0||d===0)return null;var P=Lt("recharts-rectangle",f);if(!x){var j=no(t),{radius:N}=j,I=K5(j,hks);return h.createElement("path",g$({},I,{x:hc(r),y:hc(i),width:hc(c),height:hc(d),radius:typeof m=="number"?m:void 0,className:P,d:G5(r,i,c,d,m)}))}var z=w.current,E=S.current,L=k.current,O=T.current,V="0px ".concat(a===-1?1:a,"px"),ne="".concat(a,"px ").concat(a,"px"),q=FW(["strokeDasharray"],y,typeof p=="string"?p:W5.animationEasing);return h.createElement(b0,{animationId:_,key:_,canBegin:a>0,duration:y,easing:p,isActive:x,begin:v},M=>{var F=bn(z,c,M),H=bn(E,d,M),ee=bn(L,r,M),B=bn(O,i,M);n.current&&(w.current=F,S.current=H,k.current=ee,T.current=B);var G;$?M>0?G={transition:q,strokeDasharray:ne}:G={strokeDasharray:V}:G={strokeDasharray:ne};var Q=no(t),{radius:de}=Q,Y=K5(Q,yks);return h.createElement("path",g$({},Y,{radius:typeof m=="number"?m:void 0,className:P,d:G5(ee,B,F,H,m),ref:n,style:V5(V5({},G),t.style)}))})};function Y5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Q5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Y5(Object(n),!0).forEach(function(a){wks(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Y5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function wks(e,t,n){return(t=kks(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kks(e){var t=Cks(e,"string");return typeof t=="symbol"?t:t+""}function Cks(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var h$=Math.PI/180,Sks=e=>e*180/Math.PI,Sa=(e,t,n,a)=>({x:e+Math.cos(-h$*a)*n,y:t+Math.sin(-h$*a)*n}),Aks=function(t,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(a.left||0)-(a.right||0)),Math.abs(n-(a.top||0)-(a.bottom||0)))/2},Tks=(e,t)=>{var{x:n,y:a}=e,{x:s,y:r}=t;return Math.sqrt((n-s)**2+(a-r)**2)},Rks=(e,t)=>{var{x:n,y:a}=e,{cx:s,cy:r}=t,i=Tks({x:n,y:a},{x:s,y:r});if(i<=0)return{radius:i,angle:0};var c=(n-s)/i,d=Math.acos(c);return a>r&&(d=2*Math.PI-d),{radius:i,angle:Sks(d),angleInRadian:d}},Pks=e=>{var{startAngle:t,endAngle:n}=e,a=Math.floor(t/360),s=Math.floor(n/360),r=Math.min(a,s);return{startAngle:t-r*360,endAngle:n-r*360}},_ks=(e,t)=>{var{startAngle:n,endAngle:a}=t,s=Math.floor(n/360),r=Math.floor(a/360),i=Math.min(s,r);return e+i*360},jks=(e,t)=>{var{relativeX:n,relativeY:a}=e,{radius:s,angle:r}=Rks({x:n,y:a},t),{innerRadius:i,outerRadius:c}=t;if(s<i||s>c||s===0)return null;var{startAngle:d,endAngle:m}=Pks(t),f=r,p;if(d<=m){for(;f>m;)f-=360;for(;f<d;)f+=360;p=f>=d&&f<=m}else{for(;f>d;)f-=360;for(;f<m;)f+=360;p=f>=m&&f<=d}return p?Q5(Q5({},t),{},{radius:s,angle:_ks(f,t)}):null};function KW(e){var{cx:t,cy:n,radius:a,startAngle:s,endAngle:r}=e,i=Sa(t,n,a,s),c=Sa(t,n,a,r);return{points:[i,c],cx:t,cy:n,radius:a,startAngle:s,endAngle:r}}var X5,Z5,J5,eU,tU,nU,aU;function gP(){return gP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},gP.apply(null,arguments)}function Td(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Nks=(e,t)=>{var n=Co(t-e),a=Math.min(Math.abs(t-e),359.999);return n*a},Pb=e=>{var{cx:t,cy:n,radius:a,angle:s,sign:r,isExternal:i,cornerRadius:c,cornerIsExternal:d}=e,m=c*(i?1:-1)+a,f=Math.asin(c/m)/h$,p=d?s:s+r*f,y=Sa(t,n,m,p),v=Sa(t,n,a,p),$=d?s-r*f:s,x=Sa(t,n,m*Math.cos(f*h$),$);return{center:y,circleTangency:v,lineTangency:x,theta:f}},GW=e=>{var{cx:t,cy:n,innerRadius:a,outerRadius:s,startAngle:r,endAngle:i}=e,c=Nks(r,i),d=r+c,m=Sa(t,n,s,r),f=Sa(t,n,s,d),p=An(X5||(X5=Td(["M ",",",` 937 A `,",",`,0, 938 `,",",`, 939 `,",",` 940 `])),m.x,m.y,s,s,+(Math.abs(c)>180),+(r>d),f.x,f.y);if(a>
9400){var y=Sa(t,n,a,r),v=Sa(t,n,a,d);p+=An(Z5||(Z5=Td(["L ",",",` 941 A `,",",`,0, 942 `,",",`, 943 `,","," Z"])),v.x,v.y,a,a,+(Math.abs(c)>180),+(r<=d),y.x,y.y)}else p+=An(J5||(J5=Td(["L ",","," Z"])),t,n);return p},Dks=e=>{var{cx:t,cy:n,innerRadius:a,outerRadius:s,cornerRadius:r,forceCornerRadius:i,cornerIsExternal:c,startAngle:d,endAngle:m}=e,f=Co(m-d),{circleTangency:p,lineTangency:y,theta:v}=Pb({cx:t,cy:n,radius:s,angle:d,sign:f,cornerRadius:r,cornerIsExternal:c}),{circleTangency:$,lineTangency:x,theta:w}=Pb({cx:t,cy:n,radius:s,angle:m,sign:-f,cornerRadius:r,cornerIsExternal:c}),S=c?Math.abs(d-m):Math.abs(d-m)-v-w;if(S<0)return i?An(eU||(eU=Td(["M ",",",` 944 a`,",",",0,0,1,",`,0 945 a`,",",",0,0,1,",`,0 946 `])),y.x,y.y,r,r,r*2,r,r,-r*2):GW({cx:t,cy:n,innerRadius:a,outerRadius:s,startAngle:d,endAngle:m});var k=An(tU||(tU=Td(["M ",",",` 947 A`,",",",0,0,",",",",",` 948 A`,",",",0,",",",",",",",` 949 A`,",",",0,0,",",",",",` 950 `])),y.x,y.y,r,r,+(f<0),p.x,p.y,s,s,+(S>180),+(f<0),$.x,$.y,r,r,+(f<0),x.x,x.y);if(a>0){var{circleTangency:T,lineTangency:R,theta:_}=Pb({cx:t,cy:n,radius:a,angle:d,sign:f,isExternal:!0,cornerRadius:r,cornerIsExternal:c}),{circleTangency:P,lineTangency:j,theta:N}=Pb({cx:t,cy:n,radius:a,angle:m,sign:-f,isExternal:!0,cornerRadius:r,cornerIsExternal:c}),I=c?Math.abs(d-m):Math.abs(d-m)-_-N;if(I<0&&r===0)return"".concat(k,"L").concat(t,",").concat(n,"Z");k+=An(nU||(nU=Td(["L",",",` 951 A`,",",",0,0,",",",",",` 952 A`,",",",0,",",",",",",",` 953 A`,",",",0,0,",",",",","Z"])),j.x,j.y,r,r,+(f<0),P.x,P.y,a,a,+(I>180),+(f>0),T.x,T.y,r,r,+(f<0),R.x,R.y)}else k+=An(aU||(aU=Td(["L",",","Z"])),t,n);return k},Mks={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},WW=e=>{var t=Va(e,Mks),{cx:n,cy:a,innerRadius:s,outerRadius:r,cornerRadius:i,forceCornerRadius:c,cornerIsExternal:d,startAngle:m,endAngle:f,className:p}=t;if(r<s||m===f)return null;var y=Lt("recharts-sector",p),v=r-s,$=yr(i,v,0,!0),x;return $>0&&Math.abs(m-f)<360?x=Dks({cx:n,cy:a,innerRadius:s,outerRadius:r,cornerRadius:Math.min($,v/2),forceCornerRadius:c,cornerIsExternal:d,startAngle:m,endAngle:f}):x=GW({cx:n,cy:a,innerRadius:s,outerRadius:r,startAngle:m,endAngle:f}),h.createElement("path",gP({},no(t),{className:y,d:x}))};function Eks(e,t,n){if(e==="horizontal")return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e==="vertical")return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(NG(t)){if(e==="centric"){var{cx:a,cy:s,innerRadius:r,outerRadius:i,angle:c}=t,d=Sa(a,s,r,c),m=Sa(a,s,i,c);return[{x:d.x,y:d.y},{x:m.x,y:m.y}]}return KW(t)}}var NA={},DA={},MA={},oU;function Iks(){return oU||(oU=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=VG();function n(a){return t.isSymbol(a)?NaN:Number(a)}e.toNumber=n})(MA)),MA}var sU;function Oks(){return sU||(sU=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Iks();function n(a){return a?(a=t.toNumber(a),a===1/0||a===-1/0?(a<0?-1:1)*Number.MAX_VALUE:a===a?a:0):a===0?a:0}e.toFinite=n})(DA)),DA}var rU;function Lks(){return rU||(rU=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=KG(),n=Oks();function a(s,r,i){i&&typeof i!="number"&&t.isIterateeCall(s,r,i)&&(r=i=void 0),s=n.toFinite(s),r===void 0?(r=s,s=0):r=n.toFinite(r),i=i===void 0?s<r?1:-1:n.toFinite(i);const c=Math.max(Math.ceil((r-s)/(i||1)),0),d=new Array(c);for(let m=0;m<c;m++)d[m]=s,s+=i;return d}e.range=a})(NA)),NA}var EA,iU;function Uks(){return iU||(iU=1,EA=Lks().range),EA}var Bks=Uks();const YW=il(Bks);var Ar=e=>e.chartData,s2=ce([Ar],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),$0=(e,t,n,a)=>a?s2(e):Ar(e),QW=(e,t,n)=>n?s2(e):Ar(e),Fks=ce([$0],e=>{var{chartData:t,dataStartIndex:n,dataEndIndex:a}=e;return t!=null?t.slice(n,a+1):[]});ce([s2],e=>{var{chartData:t,dataStartIndex:n,dataEndIndex:a}=e;return t!=null?t.slice(n,a+1):[]});var zks=ce([Ar],e=>{var{chartData:t,dataStartIndex:n,dataEndIndex:a}=e;return t!=null?t.slice(n,a+1):[]});function ni(e){if(Array.isArray(e)&&e.length===2){var[t,n]=e;if(ht(t)&&ht(n))return!0}return!1}
vendor: 14,443 bytes, line 953
953function lU(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function XW(e,t){if(t&&typeof e!="function"&&Array.isArray(e)&&e.length===2){var[n,a]=e,s,r;if(ht(n))s=n;else if(typeof n=="function")return;if(ht(a))r=a;else if(typeof a=="function")return;var i=[s,r];if(ni(i))return i}}function qks(e,t,n){if(!(!n&&t==null)){if(typeof e=="function"&&t!=null)try{var a=e(t,n);if(ni(a))return lU(a,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var[s,r]=e,i,c;if(s==="auto")t!=null&&(i=Math.min(...t));else if(Fe(s))i=s;else if(typeof s=="function")try{t!=null&&(i=s(t?.[0]))}catch{}else if(typeof s=="string"&&n5.test(s)){var d=n5.exec(s);if(d==null||d[1]==null||t==null)i=void 0;else{var m=+d[1];i=t[0]-m}}else i=t?.[0];if(r==="auto")t!=null&&(c=Math.max(...t));else if(Fe(r))c=r;else if(typeof r=="function")try{t!=null&&(c=r(t?.[1]))}catch{}else if(typeof r=="string"&&a5.test(r)){var f=a5.exec(r);if(f==null||f[1]==null||t==null)c=void 0;else{var p=+f[1];c=t[1]+p}}else c=t?.[1];var y=[i,c];if(ni(y))return t==null?y:lU(y,t,n)}}}var Qp=1e9,Hks={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},i2,yn=!0,Os="[DecimalError] ",zd=Os+"Invalid argument: ",r2=Os+"Exponent out of range: ",Xp=Math.floor,kd=Math.pow,Vks=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Wo,ra=1e7,fn=7,ZW=9007199254740991,y$=Xp(ZW/fn),He={};He.absoluteValue=He.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};He.comparedTo=He.cmp=function(e){var t,n,a,s,r=this;if(e=new r.constructor(e),r.s!==e.s)return r.s||-e.s;if(r.e!==e.e)return r.e>e.e^r.s<0?1:-1;for(a=r.d.length,s=e.d.length,t=0,n=a<s?a:s;t<n;++t)if(r.d[t]!==e.d[t])return r.d[t]>e.d[t]^r.s<0?1:-1;return a===s?0:a>s^r.s<0?1:-1};He.decimalPlaces=He.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*fn;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};He.dividedBy=He.div=function(e){return Wi(this,new this.constructor(e))};He.dividedToIntegerBy=He.idiv=function(e){var t=this,n=t.constructor;return tn(Wi(t,new n(e),0,1),n.precision)};He.equals=He.eq=function(e){return!this.cmp(e)};He.exponent=function(){return Hn(this)};He.greaterThan=He.gt=function(e){return this.cmp(e)>0};He.greaterThanOrEqualTo=He.gte=function(e){return this.cmp(e)>=0};He.isInteger=He.isint=function(){return this.e>this.d.length-2};He.isNegative=He.isneg=function(){return this.s<0};He.isPositive=He.ispos=function(){return this.s>0};He.isZero=function(){return this.s===0};He.lessThan=He.lt=function(e){return this.cmp(e)<0};He.lessThanOrEqualTo=He.lte=function(e){return this.cmp(e)<1};He.logarithm=He.log=function(e){var t,n=this,a=n.constructor,s=a.precision,r=s+5;if(e===void 0)e=new a(10);else if(e=new a(e),e.s<1||e.eq(Wo))throw Error(Os+"NaN");if(n.s<1)throw Error(Os+(n.s?"NaN":"-Infinity"));return n.eq(Wo)?new a(0):(yn=!1,t=Wi(Ch(n,r),Ch(e,r),r),yn=!0,tn(t,s))};He.minus=He.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?tY(t,e):JW(t,(e.s=-e.s,e))};He.modulo=He.mod=function(e){var t,n=this,a=n.constructor,s=a.precision;if(e=new a(e),!e.s)throw Error(Os+"NaN");return n.s?(yn=!1,t=Wi(n,e,0,1).times(e),yn=!0,n.minus(t)):tn(new a(n),s)};He.naturalExponential=He.exp=function(){return eY(this)};He.naturalLogarithm=He.ln=function(){return Ch(this)};He.negated=He.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};He.plus=He.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?JW(t,e):tY(t,(e.s=-e.s,e))};He.precision=He.sd=function(e){var t,n,a,s=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(zd+e);if(t=Hn(s)+1,a=s.d.length-1,n=a*fn+1,a=s.d[a],a){for(;a%10==0;a/=10)n--;for(a=s.d[0];a>=10;a/=10)n++}return e&&t>n?t:n};He.squareRoot=He.sqrt=function(){var e,t,n,a,s,r,i,c=this,d=c.constructor;if(c.s<1){if(!c.s)return new d(0);throw Error(Os+"NaN")}for(e=Hn(c),yn=!1,s=Math.sqrt(+c),s==0||s==1/0?(t=Xr(c.d),(t.length+e)%2==0&&(t+="0"),s=Math.sqrt(t),e=Xp((e+1)/2)-(e<0||e%2),s==1/0?t="5e"+e:(t=s.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),a=new d(t)):a=new d(s.toString()),n=d.precision,s=i=n+3;;)if(r=a,a=r.plus(Wi(c,r,i+2)).times(.5),Xr(r.d).slice(0,i)===(t=Xr(a.d)).slice(0,i)){if(t=t.slice(i-3,i+1),s==i&&t=="4999"){if(tn(r,n+1,0),r.times(r).eq(c)){a=r;break}}else if(t!="9999")break;i+=4}return yn=!0,tn(a,n)};He.times=He.mul=function(e){var t,n,a,s,r,i,c,d,m,f=this,p=f.constructor,y=f.d,v=(e=new p(e)).d;if(!f.s||!e.s)return new p(0);for(e.s*=f.s,n=f.e+e.e,d=y.length,m=v.length,d<m&&(r=y,y=v,v=r,i=d,d=m,m=i),r=[],i=d+m,a=i;a--;)r.push(0);for(a=m;--a>=0;){for(t=0,s=d+a;s>a;)c=r[s]+v[a]*y[s-a-1]+t,r[s--]=c%ra|0,t=c/ra|0;r[s]=(r[s]+t)%ra|0}for(;!r[--i];)r.pop();return t?++n:r.shift(),e.d=r,e.e=n,yn?tn(e,p.precision):e};He.toDecimalPlaces=He.todp=function(e,t){var n=this,a=n.constructor;return n=new a(n),e===void 0?n:(ri(e,0,Qp),t===void 0?t=a.rounding:ri(t,0,8),tn(n,e+Hn(n)+1,t))};He.toExponential=function(e,t){var n,a=this,s=a.constructor;return e===void 0?n=su(a,!0):(ri(e,0,Qp),t===void 0?t=s.rounding:ri(t,0,8),a=tn(new s(a),e+1,t),n=su(a,!0,e+1)),n};He.toFixed=function(e,t){var n,a,s=this,r=s.constructor;return e===void 0?su(s):(ri(e,0,Qp),t===void 0?t=r.rounding:ri(t,0,8),a=tn(new r(s),e+Hn(s)+1,t),n=su(a.abs(),!1,e+Hn(a)+1),s.isneg()&&!s.isZero()?"-"+n:n)};He.toInteger=He.toint=function(){var e=this,t=e.constructor;return tn(new t(e),Hn(e)+1,t.rounding)};He.toNumber=function(){return+this};He.toPower=He.pow=function(e){var t,n,a,s,r,i,c=this,d=c.constructor,m=12,f=+(e=new d(e));if(!e.s)return new d(Wo);if(c=new d(c),!c.s){if(e.s<1)throw Error(Os+"Infinity");return c}if(c.eq(Wo))return c;if(a=d.precision,e.eq(Wo))return tn(c,a);if(t=e.e,n=e.d.length-1,i=t>=n,r=c.s,i){if((n=f<0?-f:f)<=ZW){for(s=new d(Wo),t=Math.ceil(a/fn+4),yn=!1;n%2&&(s=s.times(c),dU(s.d,t)),n=Xp(n/2),n!==0;)c=c.times(c),dU(c.d,t);return yn=!0,e.s<0?new d(Wo).div(s):tn(s,a)}}else if(r<0)throw Error(Os+"NaN");return r=r<0&&e.d[Math.max(t,n)]&1?-1:1,c.s=1,yn=!1,s=e.times(Ch(c,a+m)),yn=!0,s=eY(s),s.s=r,s};He.toPrecision=function(e,t){var n,a,s=this,r=s.constructor;return e===void 0?(n=Hn(s),a=su(s,n<=r.toExpNeg||n>=r.toExpPos)):(ri(e,1,Qp),t===void 0?t=r.rounding:ri(t,0,8),s=tn(new r(s),e,t),n=Hn(s),a=su(s,e<=n||n<=r.toExpNeg,e)),a};He.toSignificantDigits=He.tosd=function(e,t){var n=this,a=n.constructor;return e===void 0?(e=a.precision,t=a.rounding):(ri(e,1,Qp),t===void 0?t=a.rounding:ri(t,0,8)),tn(new a(n),e,t)};He.toString=He.valueOf=He.val=He.toJSON=He[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Hn(e),n=e.constructor;return su(e,t<=n.toExpNeg||t>=n.toExpPos)};function JW(e,t){var n,a,s,r,i,c,d,m,f=e.constructor,p=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),yn?tn(t,p):t;if(d=e.d,m=t.d,i=e.e,s=t.e,d=d.slice(),r=i-s,r){for(r<0?(a=d,r=-r,c=m.length):(a=m,s=i,c=d.length),i=Math.ceil(p/fn),c=i>c?i+1:c+1,r>c&&(r=c,a.length=1),a.reverse();r--;)a.push(0);a.reverse()}for(c=d.length,r=m.length,c-r<0&&(r=c,a=m,m=d,d=a),n=0;r;)n=(d[--r]=d[r]+m[r]+n)/ra|0,d[r]%=ra;for(n&&(d.unshift(n),++s),c=d.length;d[--c]==0;)d.pop();return t.d=d,t.e=s,yn?tn(t,p):t}function ri(e,t,n){if(e!==~~e||e<t||e>n)throw Error(zd+e)}function Xr(e){var t,n,a,s=e.length-1,r="",i=e[0];if(s>0){for(r+=i,t=1;t<s;t++)a=e[t]+"",n=fn-a.length,n&&(r+=Zl(n)),r+=a;i=e[t],a=i+"",n=fn-a.length,n&&(r+=Zl(n))}else if(i===0)return"0";for(;i%10===0;)i/=10;return r+i}var Wi=(function(){function e(a,s){var r,i=0,c=a.length;for(a=a.slice();c--;)r=a[c]*s+i,a[c]=r%ra|0,i=r/ra|0;return i&&a.unshift(i),a}function t(a,s,r,i){var c,d;if(r!=i)d=r>i?1:-1;else for(c=d=0;c<r;c++)if(a[c]!=s[c]){d=a[c]>s[c]?1:-1;break}return d}function n(a,s,r){for(var i=0;r--;)a[r]-=i,i=a[r]<s[r]?1:0,a[r]=i*ra+a[r]-s[r];for(;!a[0]&&a.length>1;)a.shift()}return function(a,s,r,i){var c,d,m,f,p,y,v,$,x,w,S,k,T,R,_,P,j,N,I=a.constructor,z=a.s==s.s?1:-1,E=a.d,L=s.d;if(!a.s)return new I(a);if(!s.s)throw Error(Os+"Division by zero");for(d=a.e-s.e,j=L.length,_=E.length,v=new I(z),$=v.d=[],m=0;L[m]==(E[m]||0);)++m;if(L[m]>(E[m]||0)&&--d,r==null?k=r=I.precision:i?k=r+(Hn(a)-Hn(s))+1:k=r,k<0)return new I(0);if(k=k/fn+2|0,m=0,j==1)for(f=0,L=L[0],k++;(m<_||f)&&k--;m++)T=f*ra+(E[m]||0),$[m]=T/L|0,f=T%L|0;else{for(f=ra/(L[0]+1)|0,f>1&&(L=e(L,f),E=e(E,f),j=L.length,_=E.length),R=j,x=E.slice(0,j),w=x.length;w<j;)x[w++]=0;N=L.slice(),N.unshift(0),P=L[0],L[1]>=ra/2&&++P;do f=0,c=t(L,x,j,w),c<0?(S=x[0],j!=w&&(S=S*ra+(x[1]||0)),f=S/P|0,f>1?(f>=ra&&(f=ra-1),p=e(L,f),y=p.length,w=x.length,c=t(p,x,y,w),c==1&&(f--,n(p,j<y?N:L,y))):(f==0&&(c=f=1),p=L.slice()),y=p.length,y<w&&p.unshift(0),n(x,p,w),c==-1&&(w=x.length,c=t(L,x,j,w),c<1&&(f++,n(x,j<w?N:L,w))),w=x.length):c===0&&(f++,x=[0]),$[m++]=f,c&&x[0]?x[w++]=E[R]||0:(x=[E[R]],w=1);while((R++<_||x[0]!==void 0)&&k--)}return $[0]||$.shift(),v.e=d,tn(v,i?r+Hn(v)+1:r)}})();function eY(e,t){var n,a,s,r,i,c,d=0,m=0,f=e.constructor,p=f.precision;if(Hn(e)>16)throw Error(r2+Hn(e));if(!e.s)return new f(Wo);for(yn=!1,c=p,i=new f(.03125);e.abs().gte(.1);)e=e.times(i),m+=5;for(a=Math.log(kd(2,m))/Math.LN10*2+5|0,c+=a,n=s=r=new f(Wo),f.precision=c;;){if(s=tn(s.times(e),c),n=n.times(++d),i=r.plus(Wi(s,n,c)),Xr(i.d).slice(0,c)===Xr(r.d).slice(0,c)){for(;m--;)r=tn(r.times(r),c);return f.precision=p,t==null?(yn=!0,tn(r,p)):r}r=i}}function Hn(e){for(var t=e.e*fn,n=e.d[0];n>=10;n/=10)t++;return t}function IA(e,t,n){if(t>e.LN10.sd())throw yn=!0,n&&(e.precision=n),Error(Os+"LN10 precision limit exceeded");return tn(new e(e.LN10),t)}function Zl(e){for(var t="";e--;)t+="0";return t}function Ch(e,t){var n,a,s,r,i,c,d,m,f,p=1,y=10,v=e,$=v.d,x=v.constructor,w=x.precision;if(v.s<1)throw Error(Os+(v.s?"NaN":"-Infinity"));if(v.eq(Wo))return new x(0);if(t==null?(yn=!1,m=w):m=t,v.eq(10))return t==null&&(yn=!0),IA(x,m);if(m+=y,x.precision=m,n=Xr($),a=n.charAt(0),r=Hn(v),Math.abs(r)<15e14){for(;a<7&&a!=1||a==1&&n.charAt(1)>3;)v=v.times(e),n=Xr(v.d),a=n.charAt(0),p++;r=Hn(v),a>1?(v=new x("0."+n),r++):v=new x(a+"."+n.slice(1))}else return d=IA(x,m+2,w).times(r+""),v=Ch(new x(a+"."+n.slice(1)),m-y).plus(d),x.precision=w,t==null?(yn=!0,tn(v,w)):v;for(c=i=v=Wi(v.minus(Wo),v.plus(Wo),m),f=tn(v.times(v),m),s=3;;){if(i=tn(i.times(f),m),d=c.plus(Wi(i,new x(s),m)),Xr(d.d).slice(0,m)===Xr(c.d).slice(0,m))return c=c.times(2),r!==0&&(c=c.plus(IA(x,m+2,w).times(r+""))),c=Wi(c,new x(p),m),x.precision=w,t==null?(yn=!0,tn(c,w)):c;c=d,s+=2}}function cU(e,t){var n,a,s;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(a=t.search(/e/i))>0?(n<0&&(n=a),n+=+t.slice(a+1),t=t.substring(0,a)):n<0&&(n=t.length),a=0;t.charCodeAt(a)===48;)++a;for(s=t.length;t.charCodeAt(s-1)===48;)--s;if(t=t.slice(a,s),t){if(s-=a,n=n-a-1,e.e=Xp(n/fn),e.d=[],a=(n+1)%fn,n<0&&(a+=fn),a<s){for(a&&e.d.push(+t.slice(0,a)),s-=fn;a<s;)e.d.push(+t.slice(a,a+=fn));t=t.slice(a),a=fn-t.length}else a-=s;for(;a--;)t+="0";if(e.d.push(+t),yn&&(e.e>y$||e.e<-y$))throw Error(r2+n)}else e.s=0,e.e=0,e.d=[0];return e}function tn(e,t,n){var a,s,r,i,c,d,m,f,p=e.d;for(i=1,r=p[0];r>=10;r/=10)i++;if(a=t-i,a<0)a+=fn,s=t,m=p[f=0];else{if(f=Math.ceil((a+1)/fn),r=p.length,f>=r)return e;for(m=r=p[f],i=1;r>=10;r/=10)i++;a%=fn,s=a-fn+i}if(n!==void 0&&(r=kd(10,i-s-1),c=m/r%10|0,d=t<0||p[f+1]!==void 0||m%r,d=n<4?(c||d)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||d||n==6&&(a>0?s>0?m/kd(10,i-s):0:p[f-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(r=Hn(e),p.length=1,t=t-r-1,p[0]=kd(10,(fn-t%fn)%fn),e.e=Xp(-t/fn)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(a==0?(p.length=f,r=1,f--):(p.length=f+1,r=kd(10,fn-a),p[f]=s>0?(m/kd(10,i-s)%kd(10,s)|0)*r:0),d)for(;;)if(f==0){(p[0]+=r)==ra&&(p[0]=1,++e.e);break}else{if(p[f]+=r,p[f]!=ra)break;p[f--]=0,r=1}for(a=p.length;p[--a]===0;)p.pop();if(yn&&(e.e>y$||e.e<-y$))throw Error(r2+Hn(e));return e}function tY(e,t){var n,a,s,r,i,c,d,m,f,p,y=e.constructor,v=y.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new y(e),yn?tn(t,v):t;if(d=e.d,p=t.d,a=t.e,m=e.e,d=d.slice(),i=m-a,i){for(f=i<0,f?(n=d,i=-i,c=p.length):(n=p,a=m,c=d.length),s=Math.max(Math.ceil(v/fn),c)+2,i>s&&(i=s,n.length=1),n.reverse(),s=i;s--;)n.push(0);n.reverse()}else{for(s=d.length,c=p.length,f=s<c,f&&(c=s),s=0;s<c;s++)if(d[s]!=p[s]){f=d[s]<p[s];break}i=0}for(f&&(n=d,d=p,p=n,t.s=-t.s),c=d.length,s=p.length-c;s>0;--s)d[c++]=0;for(s=p.length;s>i;){if(d[--s]<p[s]){for(r=s;r&&d[--r]===0;)d[r]=ra-1;--d[r],d[s]+=ra}d[s]-=p[s]}for(;d[--c]===0;)d.pop();for(;d[0]===0;d.shift())--a;return d[0]?(t.d=d,t.e=a,yn?tn(t,v):t):new y(0)}function su(e,t,n){var a,s=Hn(e),r=Xr(e.d),i=r.length;return t?(n&&(a=n-i)>0?r=r.charAt(0)+"."+r.slice(1)+Zl(a):i>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(s<0?"e":"e+")+s):s<0?(r="0."+Zl(-s-1)+r,n&&(a=n-i)>0&&(r+=Zl(a))):s>=i?(r+=Zl(s+1-i),n&&(a=n-s-1)>0&&(r=r+"."+Zl(a))):((a=s+1)<i&&(r=r.slice(0,a)+"."+r.slice(a)),n&&(a=n-i)>0&&(s+1===i&&(r+="."),r+=Zl(a))),e.s<0?"-"+r:r}function dU(e,t){if(e.length>t)return e.length=t,!0}function nY(e){var t,n,a;function s(r){var i=this;if(!(i instanceof s))return new s(r);if(i.constructor=s,r instanceof s){i.s=r.s,i.e=r.e,i.d=(r=r.d)?r.slice():r;return}if(typeof r=="number"){if(r*0!==0)throw Error(zd+r);if(r>0)i.s=1;else if(r<0)r=-r,i.s=-1;else{i.s=0,i.e=0,i.d=[0];return}if(r===~~r&&r<1e7){i.e=0,i.d=[r];return}return cU(i,r.toString())}else if(typeof r!="string")throw Error(zd+r);if(r.charCodeAt(0)===45?(r=r.slice(1),i.s=-1):i.s=1,Vks.test(r))cU(i,r);else throw Error(zd+r)}if(s.prototype=He,s.ROUND_UP=0,s.ROUND_DOWN=1,s.ROUND_CEIL=2,s.ROUND_FLOOR=3,s.ROUND_HALF_UP=4,s.ROUND_HALF_DOWN=5,s.ROUND_HALF_EVEN=6,s.ROUND_HALF_CEIL=7,s.ROUND_HALF_FLOOR=8,s.clone=nY,s.config=s.set=Kks,e===void 0&&(e={}),e)for(a=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<a.length;)e.hasOwnProperty(n=a[t++])||(e[n]=this[n]);return s.config(e),s}function Kks(e){if(!e||typeof e!="object")throw Error(Os+"Object expected");var t,n,a,s=["precision",1,Qp,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<s.length;t+=3)if((a=e[n=s[t]])!==void 0)if(Xp(a)===a&&a>=s[t+1]&&a<=s[t+2])this[n]=a;else throw Error(zd+n+": "+a);if((a=e[n="LN10"])!==void 0)if(a==Math.LN10)this[n]=new this(a);else throw Error(zd+n+": "+a);return this}var i2=nY(Hks);Wo=new i2(1);const At=i2;function aY(e){var t;return e===0?t=1:t=Math.floor(new At(e).abs().log(10).toNumber())+1,t}function oY(e,t,n){for(var a=new At(e),s=0,r=[];a.lt(t)&&s<1e5;)r.push(a.toNumber()),a=a.add(n),s++;return r}var sY=e=>{var[t,n]=e,[a,s]=[t,n];return t>n&&([a,s]=[n,t]),[a,s]},l2=(e,t,n)=>{if(e.lte(0))return new At(0);
953var a=aY(e.toNumber()),s=new At(10).pow(a),r=e.div(s),i=a!==1?.05:.1,c=new At(Math.ceil(r.div(i).toNumber())).add(n).mul(i),d=c.mul(s);return t?new At(d.toNumber()):new At(Math.ceil(d.toNumber()))},rY=(e,t,n)=>{var a;if(e.lte(0))return new At(0);var s=[1,2,2.5,5],r=e.toNumber(),i=Math.floor(new At(r).abs().log(10).toNumber()),c=new At(10).pow(i),d=e.div(c).toNumber(),m=s.findIndex(v=>v>=d-1e-10);if(m===-1&&(c=c.mul(10),m=0),m+=n,m>=s.length){var f=Math.floor(m/s.length);m%=s.length,c=c.mul(new At(10).pow(f))}var p=(a=s[m])!==null&&a!==void 0?a:1,y=new At(p).mul(c);return t?y:new At(Math.ceil(y.toNumber()))},Gks=(e,t,n)=>{var a=new At(1),s=new At(e);if(!s.isint()&&n){var r=Math.abs(e);r<1?(a=new At(10).pow(aY(e)-1),s=new At(Math.floor(s.div(a).toNumber())).mul(a)):r>1&&(s=new At(Math.floor(e)))}else e===0?s=new At(Math.floor((t-1)/2)):n||(s=new At(Math.floor(e)));for(var i=Math.floor((t-1)/2),c=[],d=0;d<t;d++)c.push(s.add(new At(d-i).mul(a)).toNumber());return c},iY=function(t,n,a,s){var r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:l2;if(!Number.isFinite((n-t)/(a-1)))return{step:new At(0),tickMin:new At(0),tickMax:new At(0)};var c=i(new At(n).sub(t).div(a-1),s,r),d;t<=0&&n>=0?d=new At(0):(d=new At(t).add(n).div(2),d=d.sub(new At(d).mod(c)));var m=Math.ceil(d.sub(t).div(c).toNumber()),f=Math.ceil(new At(n).sub(d).div(c).toNumber()),p=m+f+1;return p>a?iY(t,n,a,s,r+1,i):(p<a&&(f=n>0?f+(a-p):f,m=n>0?m:m+(a-p)),{step:c,tickMin:d.sub(new At(m).mul(c)),tickMax:d.add(new At(f).mul(c))})},uU=function(t){var[n,a]=t,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",c=Math.max(s,2),[d,m]=sY([n,a]);if(d===-1/0||m===1/0){var f=m===1/0?[d,...Array(s-1).fill(1/0)]:[...Array(s-1).fill(-1/0),m];return n>a?f.reverse():f}if(d===m)return Gks(d,s,r);var p=i==="snap125"?rY:l2,{step:y,tickMin:v,tickMax:$}=iY(d,m,c,r,0,p),x=oY(v,$.add(new At(.1).mul(y)),y);return n>a?x.reverse():x},mU=function(t,n){var[a,s]=t,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",[c,d]=sY([a,s]);if(c===-1/0||d===1/0)return[a,s];if(c===d)return[c];var m=i==="snap125"?rY:l2,f=Math.max(n,2),p=m(new At(d).sub(c).div(f-1),r,0),y=[...oY(new At(c),new At(d),p),d];return r===!1&&(y=y.map(v=>Math.round(v))),a>s?y.reverse():y},lY=e=>e.rootProps.maxBarSize,Wks=e=>e.rootProps.barGap,cY=e=>e.rootProps.barCategoryGap,Yks=e=>e.rootProps.barSize,w0=e=>e.rootProps.stackOffset,dY=e=>e.rootProps.reverseStackOrder,c2=e=>e.options.chartName,d2=e=>e.rootProps.syncId,uY=e=>e.rootProps.syncMethod,u2=e=>e.options.eventEmitter,Qks=e=>e.rootProps.baseValue,la={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},gd={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},Or={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},k0=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function C0(e,t,n){if(n!=="auto")return n;if(e!=null)return pi(e,t)?"category":"number"}function pU(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function v$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?pU(Object(n),!0).forEach(function(a){Xks(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pU(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Xks(e,t,n){return(t=Zks(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zks(e){var t=Jks(e,"string");return typeof t=="symbol"?t:t+""}function Jks(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var fU={allowDataOverflow:gd.allowDataOverflow,allowDecimals:gd.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:gd.angleAxisId,includeHidden:!1,name:void 0,reversed:gd.reversed,scale:gd.scale,tick:gd.tick,tickCount:void 0,ticks:void 0,type:gd.type,unit:void 0,niceTicks:"auto"},gU={allowDataOverflow:Or.allowDataOverflow,allowDecimals:Or.allowDecimals,allowDuplicatedCategory:Or.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Or.radiusAxisId,includeHidden:Or.includeHidden,name:void 0,reversed:Or.reversed,scale:Or.scale,tick:Or.tick,tickCount:Or.tickCount,ticks:void 0,type:Or.type,unit:void 0,niceTicks:"auto"},eCs=(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},m2=ce([eCs,jW],(e,t)=>{var n;if(e!=null)return e;var a=(n=C0(t,"angleAxis",fU.type))!==null&&n!==void 0?n:"category";return v$(v$({},fU),{},{type:a})}),tCs=(e,t)=>e.polarAxis.radiusAxis[t],p2=ce([tCs,jW],(e,t)=>{var n;if(e!=null)return e;var a=(n=C0(t,"radiusAxis",gU.type))!==null&&n!==void 0?n:"category";return v$(v$({},gU),{},{type:a})}),S0=e=>e.polarOptions,f2=ce([ml,pl,ma],Aks),mY=ce([S0,f2],(e,t)=>{if(e!=null)return yr(e.innerRadius,t,0)}),pY=ce([S0,f2],(e,t)=>{if(e!=null)return yr(e.outerRadius,t,t*.8)}),nCs=e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:n}=e;return[t,n]},fY=ce([S0],nCs);ce([m2,fY],k0);var gY=ce([f2,mY,pY],(e,t,n)=>{if(!(e==null||t==null||n==null))return[t,n]});ce([p2,gY],k0);var hY=ce([Ut,S0,mY,pY,ml,pl],(e,t,n,a,s,r)=>{if(!(e!=="centric"&&e!=="radial"||t==null||n==null||a==null)){var{cx:i,cy:c,startAngle:d,endAngle:m}=t;return{cx:yr(i,s,s/2),cy:yr(c,r,r/2),innerRadius:n,outerRadius:a,startAngle:d,endAngle:m,clockWise:!1}}}),pa=(e,t)=>t,A0=(e,t,n)=>n;function T0(e){return e?.id}function yY(e,t,n){var{chartData:a=[]}=t,{allowDuplicatedCategory:s,dataKey:r}=n,i=new Map;return e.forEach(c=>{var d,m=(d=c.data)!==null&&d!==void 0?d:a;if(!(m==null||m.length===0)){var f=T0(c);m.forEach((p,y)=>{var v=r==null||s?y:String(jn(p,r,null)),$=jn(p,c.dataKey,0),x;i.has(v)?x=i.get(v):x={},Object.assign(x,{[f]:$}),i.set(v,x)})}}),Array.from(i.values())}function R0(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var P0=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function _0(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function aCs(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}var fa=e=>{var t=Ut(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Zp=e=>e.tooltip.settings.axisId;function g2(e){if(e!=null){var t=e.ticks,n=e.bandwidth,a=e.range(),s=[Math.min(...a),Math.max(...a)];return{domain:()=>e.domain(),range:(function(r){function i(){return r.apply(this,arguments)}return i.toString=function(){return r.toString()},i})(()=>s),rangeMin:()=>s[0],rangeMax:()=>s[1],isInRange(r){var i=s[0],c=s[1];return i<=c?r>=i&&r<=c:r>=c&&r<=i},bandwidth:n?()=>n.call(e):void 0,ticks:t?r=>t.call(e,r):void 0,map:(r,i)=>{var c=e(r);
953if(c!=null){if(e.bandwidth&&i!==null&&i!==void 0&&i.position){var d=e.bandwidth();switch(i.position){case"middle":c+=d/2;break;case"end":c+=d;break}}return c}}}}}var oCs=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!ni(t)){for(var n,a,s=0;s<t.length;s++){var r=t[s];ht(r)&&((n===void 0||r<n)&&(n=r),(a===void 0||r>a)&&(a=r))}return n!==void 0&&a!==void 0?[n,a]:void 0}return t}default:return t}};function xc(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function sCs(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function h2(e){let t,n,a;e.length!==2?(t=xc,n=(c,d)=>xc(e(c),d),a=(c,d)=>e(c)-d):(t=e===xc||e===sCs?e:rCs,n=e,a=e);function s(c,d,m=0,f=c.length){if(m<f){if(t(d,d)!==0)return f;do{const p=m+f>>>1;n(c[p],d)<0?m=p+1:f=p}while(m<f)}return m}function r(c,d,m=0,f=c.length){if(m<f){if(t(d,d)!==0)return f;do{const p=m+f>>>1;n(c[p],d)<=0?m=p+1:f=p}while(m<f)}return m}function i(c,d,m=0,f=c.length){const p=s(c,d,m,f-1);return p>m&&a(c[p-1],d)>-a(c[p],d)?p-1:p}return{left:s,center:i,right:r}}function rCs(){return 0}function vY(e){return e===null?NaN:+e}function*iCs(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const lCs=h2(xc),ky=lCs.right;h2(vY).center;class hU extends Map{constructor(t,n=uCs){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[a,s]of t)this.set(a,s)}get(t){return super.get(yU(this,t))}has(t){return super.has(yU(this,t))}set(t,n){return super.set(cCs(this,t),n)}delete(t){return super.delete(dCs(this,t))}}function yU({_intern:e,_key:t},n){const a=t(n);return e.has(a)?e.get(a):n}function cCs({_intern:e,_key:t},n){const a=t(n);return e.has(a)?e.get(a):(e.set(a,n),n)}function dCs({_intern:e,_key:t},n){const a=t(n);return e.has(a)&&(n=e.get(a),e.delete(a)),n}function uCs(e){return e!==null&&typeof e=="object"?e.valueOf():e}function mCs(e=xc){if(e===xc)return bY;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const a=e(t,n);return a||a===0?a:(e(n,n)===0)-(e(t,t)===0)}}function bY(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const pCs=Math.sqrt(50),fCs=Math.sqrt(10),gCs=Math.sqrt(2);function b$(e,t,n){const a=(t-e)/Math.max(0,n),s=Math.floor(Math.log10(a)),r=a/Math.pow(10,s),i=r>=pCs?10:r>=fCs?5:r>=gCs?2:1;let c,d,m;return s<0?(m=Math.pow(10,-s)/i,c=Math.round(e*m),d=Math.round(t*m),c/m<e&&++c,d/m>t&&--d,m=-m):(m=Math.pow(10,s)*i,c=Math.round(e/m),d=Math.round(t/m),c*m<e&&++c,d*m>t&&--d),d<c&&.5<=n&&n<2?b$(e,t,n*2):[c,d,m]}function hP(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const a=t<e,[s,r,i]=a?b$(t,e,n):b$(e,t,n);if(!(r>=s))return[];const c=r-s+1,d=new Array(c);if(a)if(i<0)for(let m=0;m<c;++m)d[m]=(r-m)/-i;else for(let m=0;m<c;++m)d[m]=(r-m)*i;else if(i<0)for(let m=0;m<c;++m)d[m]=(s+m)/-i;else for(let m=0;m<c;++m)d[m]=(s+m)*i;return d}function yP(e,t,n){return t=+t,e=+e,n=+n,b$(e,t,n)[2]}function vP(e,t,n){t=+t,e=+e,n=+n;const a=t<e,s=a?yP(t,e,n):yP(e,t,n);return(a?-1:1)*(s<0?1/-s:s)}function vU(e,t){let n;if(t===void 0)for(const a of e)a!=null&&(n<a||n===void 0&&a>=a)&&(n=a);else{let a=-1;for(let s of e)(s=t(s,++a,e))!=null&&(n<s||n===void 0&&s>=s)&&(n=s)}return n}function bU(e,t){let n;if(t===void 0)for(const a of e)a!=null&&(n>a||n===void 0&&a>=a)&&(n=a);else{let a=-1;for(let s of e)(s=t(s,++a,e))!=null&&(n>s||n===void 0&&s>=s)&&(n=s)}return n}function xY(e,t,n=0,a=1/0,s){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),a=Math.floor(Math.min(e.length-1,a)),!(n<=t&&t<=a))return e;for(s=s===void 0?bY:mCs(s);a>n;){if(a-n>600){const d=a-n+1,m=t-n+1,f=Math.log(d),p=.5*Math.exp(2*f/3),y=.5*Math.sqrt(f*p*(d-p)/d)*(m-d/2<0?-1:1),v=Math.max(n,Math.floor(t-m*p/d+y)),$=Math.min(a,Math.floor(t+(d-m)*p/d+y));xY(e,t,v,$,s)}const r=e[t];let i=n,c=a;for(lg(e,n,t),s(e[a],r)>0&&lg(e,n,a);i<c;){for(lg(e,i,c),++i,--c;s(e[i],r)<0;)++i;for(;s(e[c],r)>0;)--c}s(e[n],r)===0?lg(e,n,c):(++c,lg(e,c,a)),c<=t&&(n=c+1),t<=c&&(a=c-1)}return e}function lg(e,t,n){const a=e[t];e[t]=e[n],e[n]=a}function hCs(e,t,n){if(e=Float64Array.from(iCs(e)),!(!(a=e.length)||isNaN(t=+t))){if(t<=0||a<2)return bU(e);if(t>=1)return vU(e);var a,s=(a-1)*t,r=Math.floor(s),i=vU(xY(e,r).subarray(0,r+1)),c=bU(e.subarray(r+1));return i+(c-i)*(s-r)}}function yCs(e,t,n=vY){if(!(!(a=e.length)||isNaN(t=+t))){if(t<=0||a<2)return+n(e[0],0,e);if(t>=1)return+n(e[a-1],a-1,e);var a,s=(a-1)*t,r=Math.floor(s),i=+n(e[r],r,e),c=+n(e[r+1],r+1,e);return i+(c-i)*(s-r)}}function vCs(e,t,n){e=+e,t=+t,n=(s=arguments.length)<2?(t=e,e=0,1):s<3?1:+n;for(var a=-1,s=Math.max(0,Math.ceil((t-e)/n))|0,r=new Array(s);++a<s;)r[a]=e+a*n;return r}function Bs(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function fl(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}
vendor: 7,813 bytes, line 953
953const bP=Symbol("implicit");function y2(){var e=new hU,t=[],n=[],a=bP;function s(r){let i=e.get(r);if(i===void 0){if(a!==bP)return a;e.set(r,i=t.push(r)-1)}return n[i%n.length]}return s.domain=function(r){if(!arguments.length)return t.slice();t=[],e=new hU;for(const i of r)e.has(i)||e.set(i,t.push(i)-1);return s},s.range=function(r){return arguments.length?(n=Array.from(r),s):n.slice()},s.unknown=function(r){return arguments.length?(a=r,s):a},s.copy=function(){return y2(t,n).unknown(a)},Bs.apply(s,arguments),s}function v2(){var e=y2().unknown(void 0),t=e.domain,n=e.range,a=0,s=1,r,i,c=!1,d=0,m=0,f=.5;delete e.unknown;function p(){var y=t().length,v=s<a,$=v?s:a,x=v?a:s;r=(x-$)/Math.max(1,y-d+m*2),c&&(r=Math.floor(r)),$+=(x-$-r*(y-d))*f,i=r*(1-d),c&&($=Math.round($),i=Math.round(i));var w=vCs(y).map(function(S){return $+r*S});return n(v?w.reverse():w)}return e.domain=function(y){return arguments.length?(t(y),p()):t()},e.range=function(y){return arguments.length?([a,s]=y,a=+a,s=+s,p()):[a,s]},e.rangeRound=function(y){return[a,s]=y,a=+a,s=+s,c=!0,p()},e.bandwidth=function(){return i},e.step=function(){return r},e.round=function(y){return arguments.length?(c=!!y,p()):c},e.padding=function(y){return arguments.length?(d=Math.min(1,m=+y),p()):d},e.paddingInner=function(y){return arguments.length?(d=Math.min(1,y),p()):d},e.paddingOuter=function(y){return arguments.length?(m=+y,p()):m},e.align=function(y){return arguments.length?(f=Math.max(0,Math.min(1,y)),p()):f},e.copy=function(){return v2(t(),[a,s]).round(c).paddingInner(d).paddingOuter(m).align(f)},Bs.apply(p(),arguments)}function $Y(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return $Y(t())},e}function bCs(){return $Y(v2.apply(null,arguments).paddingInner(1))}function b2(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wY(e,t){var n=Object.create(e.prototype);for(var a in t)n[a]=t[a];return n}function Cy(){}var Sh=.7,x$=1/Sh,Gm="\\s*([+-]?\\d+)\\s*",Ah="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ai="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",xCs=/^#([0-9a-f]{3,8})$/,$Cs=new RegExp(`^rgb\\(${Gm},${Gm},${Gm}\\)$`),wCs=new RegExp(`^rgb\\(${ai},${ai},${ai}\\)$`),kCs=new RegExp(`^rgba\\(${Gm},${Gm},${Gm},${Ah}\\)$`),CCs=new RegExp(`^rgba\\(${ai},${ai},${ai},${Ah}\\)$`),SCs=new RegExp(`^hsl\\(${Ah},${ai},${ai}\\)$`),ACs=new RegExp(`^hsla\\(${Ah},${ai},${ai},${Ah}\\)$`),xU={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};b2(Cy,Th,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$U,formatHex:$U,formatHex8:TCs,formatHsl:RCs,formatRgb:wU,toString:wU});function $U(){return this.rgb().formatHex()}function TCs(){return this.rgb().formatHex8()}function RCs(){return kY(this).formatHsl()}function wU(){return this.rgb().formatRgb()}function Th(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=xCs.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?kU(t):n===3?new Ao(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?_b(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?_b(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=$Cs.exec(e))?new Ao(t[1],t[2],t[3],1):(t=wCs.exec(e))?new Ao(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kCs.exec(e))?_b(t[1],t[2],t[3],t[4]):(t=CCs.exec(e))?_b(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=SCs.exec(e))?AU(t[1],t[2]/100,t[3]/100,1):(t=ACs.exec(e))?AU(t[1],t[2]/100,t[3]/100,t[4]):xU.hasOwnProperty(e)?kU(xU[e]):e==="transparent"?new Ao(NaN,NaN,NaN,0):null}function kU(e){return new Ao(e>>16&255,e>>8&255,e&255,1)}function _b(e,t,n,a){return a<=0&&(e=t=n=NaN),new Ao(e,t,n,a)}function PCs(e){return e instanceof Cy||(e=Th(e)),e?(e=e.rgb(),new Ao(e.r,e.g,e.b,e.opacity)):new Ao}function xP(e,t,n,a){return arguments.length===1?PCs(e):new Ao(e,t,n,a??1)}function Ao(e,t,n,a){this.r=+e,this.g=+t,this.b=+n,this.opacity=+a}b2(Ao,xP,wY(Cy,{brighter(e){return e=e==null?x$:Math.pow(x$,e),new Ao(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Sh:Math.pow(Sh,e),new Ao(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ao(qd(this.r),qd(this.g),qd(this.b),$$(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:CU,formatHex:CU,formatHex8:_Cs,formatRgb:SU,toString:SU}));function CU(){return`#${Rd(this.r)}${Rd(this.g)}${Rd(this.b)}`}function _Cs(){return`#${Rd(this.r)}${Rd(this.g)}${Rd(this.b)}${Rd((isNaN(this.opacity)?1:this.opacity)*255)}`}function SU(){const e=$$(this.opacity);return`${e===1?"rgb(":"rgba("}${qd(this.r)}, ${qd(this.g)}, ${qd(this.b)}${e===1?")":`, ${e})`}`}function $$(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function qd(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Rd(e){return e=qd(e),(e<16?"0":"")+e.toString(16)}function AU(e,t,n,a){return a<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ir(e,t,n,a)}function kY(e){if(e instanceof ir)return new ir(e.h,e.s,e.l,e.opacity);if(e instanceof Cy||(e=Th(e)),!e)return new ir;if(e instanceof ir)return e;e=e.rgb();
vendor: 5,513 bytes, line 953
953var t=e.r/255,n=e.g/255,a=e.b/255,s=Math.min(t,n,a),r=Math.max(t,n,a),i=NaN,c=r-s,d=(r+s)/2;return c?(t===r?i=(n-a)/c+(n<a)*6:n===r?i=(a-t)/c+2:i=(t-n)/c+4,c/=d<.5?r+s:2-r-s,i*=60):c=d>0&&d<1?0:i,new ir(i,c,d,e.opacity)}function jCs(e,t,n,a){return arguments.length===1?kY(e):new ir(e,t,n,a??1)}function ir(e,t,n,a){this.h=+e,this.s=+t,this.l=+n,this.opacity=+a}b2(ir,jCs,wY(Cy,{brighter(e){return e=e==null?x$:Math.pow(x$,e),new ir(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Sh:Math.pow(Sh,e),new ir(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,a=n+(n<.5?n:1-n)*t,s=2*n-a;return new Ao(OA(e>=240?e-240:e+120,s,a),OA(e,s,a),OA(e<120?e+240:e-120,s,a),this.opacity)},clamp(){return new ir(TU(this.h),jb(this.s),jb(this.l),$$(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=$$(this.opacity);return`${e===1?"hsl(":"hsla("}${TU(this.h)}, ${jb(this.s)*100}%, ${jb(this.l)*100}%${e===1?")":`, ${e})`}`}}));function TU(e){return e=(e||0)%360,e<0?e+360:e}function jb(e){return Math.max(0,Math.min(1,e||0))}function OA(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const j0=e=>()=>e;function CY(e,t){return function(n){return e+n*t}}function NCs(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(a){return Math.pow(e+a*t,n)}}function r6s(e,t){var n=t-e;return n?CY(e,n>180||n<-180?n-360*Math.round(n/360):n):j0(isNaN(e)?t:e)}function DCs(e){return(e=+e)==1?SY:function(t,n){return n-t?NCs(t,n,e):j0(isNaN(t)?n:t)}}function SY(e,t){var n=t-e;return n?CY(e,n):j0(isNaN(e)?t:e)}const RU=(function e(t){var n=DCs(t);function a(s,r){var i=n((s=xP(s)).r,(r=xP(r)).r),c=n(s.g,r.g),d=n(s.b,r.b),m=SY(s.opacity,r.opacity);return function(f){return s.r=i(f),s.g=c(f),s.b=d(f),s.opacity=m(f),s+""}}return a.gamma=e,a})(1);function MCs(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,a=t.slice(),s;return function(r){for(s=0;s<n;++s)a[s]=e[s]*(1-r)+t[s]*r;return a}}function ECs(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ICs(e,t){var n=t?t.length:0,a=e?Math.min(n,e.length):0,s=new Array(a),r=new Array(n),i;for(i=0;i<a;++i)s[i]=Jp(e[i],t[i]);for(;i<n;++i)r[i]=t[i];return function(c){for(i=0;i<a;++i)r[i]=s[i](c);return r}}function OCs(e,t){var n=new Date;return e=+e,t=+t,function(a){return n.setTime(e*(1-a)+t*a),n}}function w$(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function LCs(e,t){var n={},a={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=Jp(e[s],t[s]):a[s]=t[s];return function(r){for(s in n)a[s]=n[s](r);return a}}var $P=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,LA=new RegExp($P.source,"g");function UCs(e){return function(){return e}}function BCs(e){return function(t){return e(t)+""}}function FCs(e,t){var n=$P.lastIndex=LA.lastIndex=0,a,s,r,i=-1,c=[],d=[];for(e=e+"",t=t+"";(a=$P.exec(e))&&(s=LA.exec(t));)(r=s.index)>n&&(r=t.slice(n,r),c[i]?c[i]+=r:c[++i]=r),(a=a[0])===(s=s[0])?c[i]?c[i]+=s:c[++i]=s:(c[++i]=null,d.push({i,x:w$(a,s)})),n=LA.lastIndex;return n<t.length&&(r=t.slice(n),c[i]?c[i]+=r:c[++i]=r),c.length<2?d[0]?BCs(d[0].x):UCs(t):(t=d.length,function(m){for(var f=0,p;f<t;++f)c[(p=d[f]).i]=p.x(m);return c.join("")})}function Jp(e,t){var n=typeof t,a;return t==null||n==="boolean"?j0(t):(n==="number"?w$:n==="string"?(a=Th(t))?(t=a,RU):FCs:t instanceof Th?RU:t instanceof Date?OCs:ECs(t)?MCs:Array.isArray(t)?ICs:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?LCs:w$)(e,t)}function x2(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function zCs(e,t){t===void 0&&(t=e,e=Jp);for(var n=0,a=t.length-1,s=t[0],r=new Array(a<0?0:a);n<a;)r[n]=e(s,s=t[++n]);return function(i){var c=Math.max(0,Math.min(a-1,Math.floor(i*=a)));return r[c](i-c)}}function qCs(e){return function(){return e}}function k$(e){return+e}var PU=[0,1];function to(e){return e}function wP(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:qCs(isNaN(t)?NaN:.5)}function HCs(e,t){var n;return e>t&&(n=e,e=t,t=n),function(a){return Math.max(e,Math.min(t,a))}}function VCs(e,t,n){var a=e[0],s=e[1],r=t[0],i=t[1];return s<a?(a=wP(s,a),r=n(i,r)):(a=wP(a,s),r=n(r,i)),function(c){return r(a(c))}}function KCs(e,t,n){var a=Math.min(e.length,t.length)-1,s=new Array(a),r=new Array(a),i=-1;for(e[a]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<a;)s[i]=wP(e[i],e[i+1]),r[i]=n(t[i],t[i+1]);return function(c){var d=ky(e,c,1,a)-1;return r[d](s[d](c))}}function Sy(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function N0(){var e=PU,t=PU,n=Jp,a,s,r,i=to,c,d,m;function f(){var y=Math.min(e.length,t.length);return i!==to&&(i=HCs(e[0],e[y-1])),c=y>2?KCs:VCs,d=m=null,p}function p(y){return y==null||isNaN(y=+y)?r:(d||(d=c(e.map(a),t,n)))(a(i(y)))}return p.invert=function(y){return i(s((m||(m=c(t,e.map(a),w$)))(y)))},p.domain=function(y){return arguments.length?(e=Array.from(y,k$),f()):e.slice()},p.range=function(y){return arguments.length?(t=Array.from(y),f()):t.slice()},p.rangeRound=function(y){return t=Array.from(y),n=x2,f()},p.clamp=function(y){return arguments.length?(i=y?!0:to,f()):i!==to},p.interpolate=function(y){return arguments.length?(n=y,f()):n},p.unknown=function(y){return arguments.length?(r=y,p):r},function(y,v){return a=y,s=v,f()}}function $2(){return N0()(to,to)}
vendor: 4,293 bytes, line 953
953function GCs(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function C$(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),a=e.slice(0,n);return[a.length>1?a[0]+a.slice(2):a,+e.slice(n+1)]}function Cp(e){return e=C$(Math.abs(e)),e?e[1]:NaN}function WCs(e,t){return function(n,a){for(var s=n.length,r=[],i=0,c=e[0],d=0;s>0&&c>0&&(d+c+1>a&&(c=Math.max(1,a-d)),r.push(n.substring(s-=c,s+c)),!((d+=c+1)>a));)c=e[i=(i+1)%e.length];return r.reverse().join(t)}}function YCs(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var QCs=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Rh(e){if(!(t=QCs.exec(e)))throw new Error("invalid format: "+e);var t;return new w2({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Rh.prototype=w2.prototype;function w2(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}w2.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function XCs(e){e:for(var t=e.length,n=1,a=-1,s;n<t;++n)switch(e[n]){case".":a=s=n;break;case"0":a===0&&(a=n),s=n;break;default:if(!+e[n])break e;a>0&&(a=0);break}return a>0?e.slice(0,a)+e.slice(s+1):e}var S$;function ZCs(e,t){var n=C$(e,t);if(!n)return S$=void 0,e.toPrecision(t);var a=n[0],s=n[1],r=s-(S$=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,i=a.length;return r===i?a:r>i?a+new Array(r-i+1).join("0"):r>0?a.slice(0,r)+"."+a.slice(r):"0."+new Array(1-r).join("0")+C$(e,Math.max(0,t+r-1))[0]}function _U(e,t){var n=C$(e,t);if(!n)return e+"";var a=n[0],s=n[1];return s<0?"0."+new Array(-s).join("0")+a:a.length>s+1?a.slice(0,s+1)+"."+a.slice(s+1):a+new Array(s-a.length+2).join("0")}const jU={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:GCs,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>_U(e*100,t),r:_U,s:ZCs,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function NU(e){return e}var DU=Array.prototype.map,MU=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function JCs(e){var t=e.grouping===void 0||e.thousands===void 0?NU:WCs(DU.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",a=e.currency===void 0?"":e.currency[1]+"",s=e.decimal===void 0?".":e.decimal+"",r=e.numerals===void 0?NU:YCs(DU.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",c=e.minus===void 0?"â":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function m(p,y){p=Rh(p);var v=p.fill,$=p.align,x=p.sign,w=p.symbol,S=p.zero,k=p.width,T=p.comma,R=p.precision,_=p.trim,P=p.type;P==="n"?(T=!0,P="g"):jU[P]||(R===void 0&&(R=12),_=!0,P="g"),(S||v==="0"&&$==="=")&&(S=!0,v="0",$="=");var j=(y&&y.prefix!==void 0?y.prefix:"")+(w==="$"?n:w==="#"&&/[boxX]/.test(P)?"0"+P.toLowerCase():""),N=(w==="$"?a:/[%p]/.test(P)?i:"")+(y&&y.suffix!==void 0?y.suffix:""),I=jU[P],z=/[defgprs%]/.test(P);R=R===void 0?6:/[gprs]/.test(P)?Math.max(1,Math.min(21,R)):Math.max(0,Math.min(20,R));function E(L){var O=j,V=N,ne,q,M;if(P==="c")V=I(L)+V,L="";else{L=+L;var F=L<0||1/L<0;if(L=isNaN(L)?d:I(Math.abs(L),R),_&&(L=XCs(L)),F&&+L==0&&x!=="+"&&(F=!1),O=(F?x==="("?x:c:x==="-"||x==="("?"":x)+O,V=(P==="s"&&!isNaN(L)&&S$!==void 0?MU[8+S$/3]:"")+V+(F&&x==="("?")":""),z){for(ne=-1,q=L.length;++ne<q;)if(M=L.charCodeAt(ne),48>M||M>57){V=(M===46?s+L.slice(ne+1):L.slice(ne))+V,L=L.slice(0,ne);break}}}T&&!S&&(L=t(L,1/0));var H=O.length+L.length+V.length,ee=H<k?new Array(k-H+1).join(v):"";switch(T&&S&&(L=t(ee+L,ee.length?k-V.length:1/0),ee=""),$){case"<":L=O+L+V+ee;break;case"=":L=O+ee+L+V;break;case"^":L=ee.slice(0,H=ee.length>>
9531)+O+L+V+ee.slice(H);break;default:L=ee+O+L+V;break}return r(L)}return E.toString=function(){return p+""},E}function f(p,y){var v=Math.max(-8,Math.min(8,Math.floor(Cp(y)/3)))*3,$=Math.pow(10,-v),x=m((p=Rh(p),p.type="f",p),{suffix:MU[8+v/3]});return function(w){return x($*w)}}return{format:m,formatPrefix:f}}var Nb,k2,AY;e1s({thousands:",",grouping:[3],currency:["$",""]});function e1s(e){return Nb=JCs(e),k2=Nb.format,AY=Nb.formatPrefix,Nb}function t1s(e){return Math.max(0,-Cp(Math.abs(e)))}function n1s(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Cp(t)/3)))*3-Cp(Math.abs(e)))}function a1s(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Cp(t)-Cp(e))+1}function TY(e,t,n,a){var s=vP(e,t,n),r;switch(a=Rh(a??",f"),a.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return a.precision==null&&!isNaN(r=n1s(s,i))&&(a.precision=r),AY(a,i)}case"":case"e":case"g":case"p":case"r":{a.precision==null&&!isNaN(r=a1s(s,Math.max(Math.abs(e),Math.abs(t))))&&(a.precision=r-(a.type==="e"));break}case"f":case"%":{a.precision==null&&!isNaN(r=t1s(s))&&(a.precision=r-(a.type==="%")*2);break}}return k2(a)}function qc(e){var t=e.domain;return e.ticks=function(n){var a=t();return hP(a[0],a[a.length-1],n??10)},e.tickFormat=function(n,a){var s=t();return TY(s[0],s[s.length-1],n??10,a)},e.nice=function(n){n==null&&(n=10);var a=t(),s=0,r=a.length-1,i=a[s],c=a[r],d,m,f=10;for(c<i&&(m=i,i=c,c=m,m=s,s=r,r=m);f-- >0;){if(m=yP(i,c,n),m===d)return a[s]=i,a[r]=c,t(a);if(m>0)i=Math.floor(i/m)*m,c=Math.ceil(c/m)*m;else if(m<0)i=Math.ceil(i*m)/m,c=Math.floor(c*m)/m;else break;d=m}return e},e}function RY(){var e=$2();return e.copy=function(){return Sy(e,RY())},Bs.apply(e,arguments),qc(e)}function PY(e){var t;function n(a){return a==null||isNaN(a=+a)?t:a}return n.invert=n,n.domain=n.range=function(a){return arguments.length?(e=Array.from(a,k$),n):e.slice()},n.unknown=function(a){return arguments.length?(t=a,n):t},n.copy=function(){return PY(e).unknown(t)},e=arguments.length?Array.from(e,k$):[0,1],qc(n)}function _Y(e,t){e=e.slice();var n=0,a=e.length-1,s=e[n],r=e[a],i;return r<s&&(i=n,n=a,a=i,i=s,s=r,r=i),e[n]=t.floor(s),e[a]=t.ceil(r),e}function EU(e){return Math.log(e)}function IU(e){return Math.exp(e)}function o1s(e){return-Math.log(-e)}function s1s(e){return-Math.exp(-e)}function r1s(e){return isFinite(e)?+("1e"+e):e<0?0:e}function i1s(e){return e===10?r1s:e===Math.E?Math.exp:t=>Math.pow(e,t)}function l1s(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function OU(e){return(t,n)=>-e(-t,n)}function C2(e){const t=e(EU,IU),n=t.domain;let a=10,s,r;function i(){return s=l1s(a),r=i1s(a),n()[0]<0?(s=OU(s),r=OU(r),e(o1s,s1s)):e(EU,IU),t}return t.base=function(c){return arguments.length?(a=+c,i()):a},t.domain=function(c){return arguments.length?(n(c),i()):n()},t.ticks=c=>{const d=n();let m=d[0],f=d[d.length-1];const p=f<m;p&&([m,f]=[f,m]);let y=s(m),v=s(f),$,x;const w=c==null?10:+c;let S=[];if(!(a%1)&&v-y<w){if(y=Math.floor(y),v=Math.ceil(v),m>0){for(;y<=v;++y)for($=1;$<a;++$)if(x=y<0?$/r(-y):$*r(y),!(x<m)){if(x>f)break;S.push(x)}}else for(;y<=v;++y)for($=a-1;$>=1;--$)if(x=y>0?$/r(-y):$*r(y),!(x<m)){if(x>f)break;S.push(x)}S.length*2<w&&(S=hP(m,f,w))}else S=hP(y,v,Math.min(v-y,w)).map(r);return p?S.reverse():S},t.tickFormat=(c,d)=>{if(c==null&&(c=10),d==null&&(d=a===10?"s":","),typeof d!="function"&&(!(a%1)&&(d=Rh(d)).precision==null&&(d.trim=!0),d=k2(d)),c===1/0)return d;const m=Math.max(1,a*c/t.ticks().length);return f=>{let p=f/r(Math.round(s(f)));return p*a<a-.5&&(p*=a),p<=m?d(f):""}},t.nice=()=>n(_Y(n(),{floor:c=>r(Math.floor(s(c))),ceil:c=>r(Math.ceil(s(c)))})),t}function jY(){const e=C2(N0()).domain([1,10]);return e.copy=()=>Sy(e,jY()).base(e.base()),Bs.apply(e,arguments),e}function LU(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function UU(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function S2(e){var t=1,n=e(LU(t),UU(t));return n.constant=function(a){return arguments.length?e(LU(t=+a),UU(t)):t},qc(n)}function NY(){var e=S2(N0());return e.copy=function(){return Sy(e,NY()).constant(e.constant())},Bs.apply(e,arguments)}function BU(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function c1s(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function d1s(e){return e<0?-e*e:e*e}function A2(e){var t=e(to,to),n=1;function a(){return n===1?e(to,to):n===.5?e(c1s,d1s):e(BU(n),BU(1/n))}return t.exponent=function(s){return arguments.length?(n=+s,a()):n},qc(t)}function T2(){var e=A2(N0());return e.copy=function(){return Sy(e,T2()).exponent(e.exponent())},Bs.apply(e,arguments),e}function u1s(){return T2.apply(null,arguments).exponent(.5)}function FU(e){return Math.sign(e)*e*e}function m1s(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function DY(){var e=$2(),t=[0,1],n=!1,a;function s(r){var i=m1s(e(r));return isNaN(i)?a:n?Math.round(i):i}return s.invert=function(r){return e.invert(FU(r))},s.domain=function(r){return arguments.length?(e.domain(r),s):e.domain()},s.range=function(r){return arguments.length?(e.range((t=Array.from(r,k$)).map(FU)),s):t.slice()},s.rangeRound=function(r){return s.range(r).round(!0)},s.round=function(r){return arguments.length?(n=!!r,s):n},s.clamp=function(r){return arguments.length?(e.clamp(r),s):e.clamp()},s.unknown=function(r){return arguments.length?(a=r,s):a},s.copy=function(){return DY(e.domain(),t).round(n).clamp(e.clamp()).unknown(a)},Bs.apply(s,arguments),qc(s)}function MY(){var e=[],t=[],n=[],a;function s(){var i=0,c=Math.max(1,t.length);for(n=new Array(c-1);++i<c;)n[i-1]=yCs(e,i/c);return r}function r(i){return i==null||isNaN(i=+i)?a:t[ky(n,i)]}return r.invertExtent=function(i){var c=t.indexOf(i);
953return c<0?[NaN,NaN]:[c>0?n[c-1]:e[0],c<n.length?n[c]:e[e.length-1]]},r.domain=function(i){if(!arguments.length)return e.slice();e=[];for(let c of i)c!=null&&!isNaN(c=+c)&&e.push(c);return e.sort(xc),s()},r.range=function(i){return arguments.length?(t=Array.from(i),s()):t.slice()},r.unknown=function(i){return arguments.length?(a=i,r):a},r.quantiles=function(){return n.slice()},r.copy=function(){return MY().domain(e).range(t).unknown(a)},Bs.apply(r,arguments)}function EY(){var e=0,t=1,n=1,a=[.5],s=[0,1],r;function i(d){return d!=null&&d<=d?s[ky(a,d,0,n)]:r}function c(){var d=-1;for(a=new Array(n);++d<n;)a[d]=((d+1)*t-(d-n)*e)/(n+1);return i}return i.domain=function(d){return arguments.length?([e,t]=d,e=+e,t=+t,c()):[e,t]},i.range=function(d){return arguments.length?(n=(s=Array.from(d)).length-1,c()):s.slice()},i.invertExtent=function(d){var m=s.indexOf(d);return m<0?[NaN,NaN]:m<1?[e,a[0]]:m>=n?[a[n-1],t]:[a[m-1],a[m]]},i.unknown=function(d){return arguments.length&&(r=d),i},i.thresholds=function(){return a.slice()},i.copy=function(){return EY().domain([e,t]).range(s).unknown(r)},Bs.apply(qc(i),arguments)}function IY(){var e=[.5],t=[0,1],n,a=1;function s(r){return r!=null&&r<=r?t[ky(e,r,0,a)]:n}return s.domain=function(r){return arguments.length?(e=Array.from(r),a=Math.min(e.length,t.length-1),s):e.slice()},s.range=function(r){return arguments.length?(t=Array.from(r),a=Math.min(e.length,t.length-1),s):t.slice()},s.invertExtent=function(r){var i=t.indexOf(r);return[e[i-1],e[i]]},s.unknown=function(r){return arguments.length?(n=r,s):n},s.copy=function(){return IY().domain(e).range(t).unknown(n)},Bs.apply(s,arguments)}const UA=new Date,BA=new Date;function Jn(e,t,n,a){function s(r){return e(r=arguments.length===0?new Date:new Date(+r)),r}return s.floor=r=>(e(r=new Date(+r)),r),s.ceil=r=>(e(r=new Date(r-1)),t(r,1),e(r),r),s.round=r=>{const i=s(r),c=s.ceil(r);return r-i<c-r?i:c},s.offset=(r,i)=>(t(r=new Date(+r),i==null?1:Math.floor(i)),r),s.range=(r,i,c)=>{const d=[];if(r=s.ceil(r),c=c==null?1:Math.floor(c),!(r<i)||!(c>0))return d;let m;do d.push(m=new Date(+r)),t(r,c),e(r);while(m<r&&r<i);return d},s.filter=r=>Jn(i=>{if(i>=i)for(;e(i),!r(i);)i.setTime(i-1)},(i,c)=>{if(i>=i)if(c<0)for(;++c<=0;)for(;t(i,-1),!r(i););else for(;--c>=0;)for(;t(i,1),!r(i););}),n&&(s.count=(r,i)=>(UA.setTime(+r),BA.setTime(+i),e(UA),e(BA),Math.floor(n(UA,BA))),s.every=r=>(r=Math.floor(r),!isFinite(r)||!(r>0)?null:r>1?s.filter(a?i=>a(i)%r===0:i=>s.count(0,i)%r===0):s)),s}const A$=Jn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);A$.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Jn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):A$);A$.range;const Ki=1e3,Ps=Ki*60,Gi=Ps*60,al=Gi*24,R2=al*7,zU=al*30,FA=al*365,Pd=Jn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Ki)},(e,t)=>(t-e)/Ki,e=>e.getUTCSeconds());Pd.range;const P2=Jn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ki)},(e,t)=>{e.setTime(+e+t*Ps)},(e,t)=>(t-e)/Ps,e=>e.getMinutes());P2.range;const _2=Jn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ps)},(e,t)=>(t-e)/Ps,e=>e.getUTCMinutes());_2.range;const j2=Jn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ki-e.getMinutes()*Ps)},(e,t)=>{e.setTime(+e+t*Gi)},(e,t)=>(t-e)/Gi,e=>e.getHours());j2.range;const N2=Jn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Gi)},(e,t)=>(t-e)/Gi,e=>e.getUTCHours());N2.range;const Ay=Jn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ps)/al,e=>e.getDate()-1);Ay.range;const D0=Jn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/al,e=>e.getUTCDate()-1);D0.range;const OY=Jn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/al,e=>Math.floor(e/al));OY.range;function Su(e){return Jn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ps)/R2)}const M0=Su(0),T$=Su(1),p1s=Su(2),f1s=Su(3),Sp=Su(4),g1s=Su(5),h1s=Su(6);M0.range;T$.range;p1s.range;f1s.range;Sp.range;g1s.range;h1s.range;function Au(e){return Jn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/R2)}const E0=Au(0),R$=Au(1),y1s=Au(2),v1s=Au(3),Ap=Au(4),b1s=Au(5),x1s=Au(6);E0.range;R$.range;y1s.range;v1s.range;Ap.range;b1s.range;x1s.range;const D2=Jn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());D2.range;const M2=Jn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());M2.range;const ol=Jn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ol.every=e=>
vendor: 9,575 bytes, line 953
953!isFinite(e=Math.floor(e))||!(e>0)?null:Jn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});ol.range;const sl=Jn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());sl.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Jn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});sl.range;function LY(e,t,n,a,s,r){const i=[[Pd,1,Ki],[Pd,5,5*Ki],[Pd,15,15*Ki],[Pd,30,30*Ki],[r,1,Ps],[r,5,5*Ps],[r,15,15*Ps],[r,30,30*Ps],[s,1,Gi],[s,3,3*Gi],[s,6,6*Gi],[s,12,12*Gi],[a,1,al],[a,2,2*al],[n,1,R2],[t,1,zU],[t,3,3*zU],[e,1,FA]];function c(m,f,p){const y=f<m;y&&([m,f]=[f,m]);const v=p&&typeof p.range=="function"?p:d(m,f,p),$=v?v.range(m,+f+1):[];return y?$.reverse():$}function d(m,f,p){const y=Math.abs(f-m)/p,v=h2(([,,w])=>w).right(i,y);if(v===i.length)return e.every(vP(m/FA,f/FA,p));if(v===0)return A$.every(Math.max(vP(m,f,p),1));const[$,x]=i[y/i[v-1][2]<i[v][2]/y?v-1:v];return $.every(x)}return[c,d]}const[$1s,w1s]=LY(sl,M2,E0,OY,N2,_2),[k1s,C1s]=LY(ol,D2,M0,Ay,j2,P2);function zA(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function qA(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function cg(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function S1s(e){var t=e.dateTime,n=e.date,a=e.time,s=e.periods,r=e.days,i=e.shortDays,c=e.months,d=e.shortMonths,m=dg(s),f=ug(s),p=dg(r),y=ug(r),v=dg(i),$=ug(i),x=dg(c),w=ug(c),S=dg(d),k=ug(d),T={a:M,A:F,b:H,B:ee,c:null,d:WU,e:WU,f:W1s,g:oSs,G:rSs,H:V1s,I:K1s,j:G1s,L:UY,m:Y1s,M:Q1s,p:B,q:G,Q:XU,s:ZU,S:X1s,u:Z1s,U:J1s,V:eSs,w:tSs,W:nSs,x:null,X:null,y:aSs,Y:sSs,Z:iSs,"%":QU},R={a:Q,A:de,b:Y,B:pe,c:null,d:YU,e:YU,f:uSs,g:$Ss,G:kSs,H:lSs,I:cSs,j:dSs,L:FY,m:mSs,M:pSs,p:se,q:we,Q:XU,s:ZU,S:fSs,u:gSs,U:hSs,V:ySs,w:vSs,W:bSs,x:null,X:null,y:xSs,Y:wSs,Z:CSs,"%":QU},_={a:z,A:E,b:L,B:O,c:V,d:KU,e:KU,f:F1s,g:VU,G:HU,H:GU,I:GU,j:O1s,L:B1s,m:I1s,M:L1s,p:I,q:E1s,Q:q1s,s:H1s,S:U1s,u:_1s,U:j1s,V:N1s,w:P1s,W:D1s,x:ne,X:q,y:VU,Y:HU,Z:M1s,"%":z1s};T.x=P(n,T),T.X=P(a,T),T.c=P(t,T),R.x=P(n,R),R.X=P(a,R),R.c=P(t,R);function P(me,ye){return function(_e){var ae=[],Je=-1,Ae=0,tt=me.length,Tt,an,ta;for(_e instanceof Date||(_e=new Date(+_e));++Je<tt;)me.charCodeAt(Je)===37&&(ae.push(me.slice(Ae,Je)),(an=qU[Tt=me.charAt(++Je)])!=null?Tt=me.charAt(++Je):an=Tt==="e"?" ":"0",(ta=ye[Tt])&&(Tt=ta(_e,an)),ae.push(Tt),Ae=Je+1);return ae.push(me.slice(Ae,Je)),ae.join("")}}function j(me,ye){return function(_e){var ae=cg(1900,void 0,1),Je=N(ae,me,_e+="",0),Ae,tt;if(Je!=_e.length)return null;if("Q"in ae)return new Date(ae.Q);if("s"in ae)return new Date(ae.s*1e3+("L"in ae?ae.L:0));if(ye&&!("Z"in ae)&&(ae.Z=0),"p"in ae&&(ae.H=ae.H%12+ae.p*12),ae.m===void 0&&(ae.m="q"in ae?ae.q:0),"V"in ae){if(ae.V<1||ae.V>53)return null;"w"in ae||(ae.w=1),"Z"in ae?(Ae=qA(cg(ae.y,0,1)),tt=Ae.getUTCDay(),Ae=tt>4||tt===0?R$.ceil(Ae):R$(Ae),Ae=D0.offset(Ae,(ae.V-1)*7),ae.y=Ae.getUTCFullYear(),ae.m=Ae.getUTCMonth(),ae.d=Ae.getUTCDate()+(ae.w+6)%7):(Ae=zA(cg(ae.y,0,1)),tt=Ae.getDay(),Ae=tt>4||tt===0?T$.ceil(Ae):T$(Ae),Ae=Ay.offset(Ae,(ae.V-1)*7),ae.y=Ae.getFullYear(),ae.m=Ae.getMonth(),ae.d=Ae.getDate()+(ae.w+6)%7)}else("W"in ae||"U"in ae)&&("w"in ae||(ae.w="u"in ae?ae.u%7:"W"in ae?1:0),tt="Z"in ae?qA(cg(ae.y,0,1)).getUTCDay():zA(cg(ae.y,0,1)).getDay(),ae.m=0,ae.d="W"in ae?(ae.w+6)%7+ae.W*7-(tt+5)%7:ae.w+ae.U*7-(tt+6)%7);return"Z"in ae?(ae.H+=ae.Z/100|0,ae.M+=ae.Z%100,qA(ae)):zA(ae)}}function N(me,ye,_e,ae){for(var Je=0,Ae=ye.length,tt=_e.length,Tt,an;Je<Ae;){if(ae>=tt)return-1;if(Tt=ye.charCodeAt(Je++),Tt===37){if(Tt=ye.charAt(Je++),an=_[Tt in qU?ye.charAt(Je++):Tt],!an||(ae=an(me,_e,ae))<0)return-1}else if(Tt!=_e.charCodeAt(ae++))return-1}return ae}function I(me,ye,_e){var ae=m.exec(ye.slice(_e));return ae?(me.p=f.get(ae[0].toLowerCase()),_e+ae[0].length):-1}function z(me,ye,_e){var ae=v.exec(ye.slice(_e));return ae?(me.w=$.get(ae[0].toLowerCase()),_e+ae[0].length):-1}function E(me,ye,_e){var ae=p.exec(ye.slice(_e));return ae?(me.w=y.get(ae[0].toLowerCase()),_e+ae[0].length):-1}function L(me,ye,_e){var ae=S.exec(ye.slice(_e));return ae?(me.m=k.get(ae[0].toLowerCase()),_e+ae[0].length):-1}function O(me,ye,_e){var ae=x.exec(ye.slice(_e));return ae?(me.m=w.get(ae[0].toLowerCase()),_e+ae[0].length):-1}function V(me,ye,_e){return N(me,t,ye,_e)}function ne(me,ye,_e){return N(me,n,ye,_e)}function q(me,ye,_e){return N(me,a,ye,_e)}function M(me){return i[me.getDay()]}function F(me){return r[me.getDay()]}function H(me){return d[me.getMonth()]}function ee(me){return c[me.getMonth()]}function B(me){return s[+(me.getHours()>=12)]}function G(me){return 1+~~(me.getMonth()/3)}function Q(me){return i[me.getUTCDay()]}function de(me){return r[me.getUTCDay()]}function Y(me){return d[me.getUTCMonth()]}function pe(me){return c[me.getUTCMonth()]}function se(me){return s[+(me.getUTCHours()>=12)]}function we(me){return 1+~~(me.getUTCMonth()/3)}return{format:function(me){var ye=P(me+="",T);return ye.toString=function(){return me},ye},parse:function(me){var ye=j(me+="",!1);return ye.toString=function(){return me},ye},utcFormat:function(me){var ye=P(me+="",R);return ye.toString=function(){return me},ye},utcParse:function(me){var ye=j(me+="",!0);return ye.toString=function(){return me},ye}}}var qU={"-":"",_:" ",0:"0"},ga=/^\s*\d+/,A1s=/^%/,T1s=/[\\^$*+?|[\]().{}]/g;function Nt(e,t,n){var a=e<0?"-":"",s=(a?-e:e)+"",r=s.length;return a+(r<n?new Array(n-r+1).join(t)+s:s)}function R1s(e){return e.replace(T1s,"\\$&")}function dg(e){return new RegExp("^(?:"+e.map(R1s).join("|")+")","i")}function ug(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function P1s(e,t,n){var a=ga.exec(t.slice(n,n+1));return a?(e.w=+a[0],n+a[0].length):-1}function _1s(e,t,n){var a=ga.exec(t.slice(n,n+1));return a?(e.u=+a[0],n+a[0].length):-1}function j1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.U=+a[0],n+a[0].length):-1}function N1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.V=+a[0],n+a[0].length):-1}function D1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.W=+a[0],n+a[0].length):-1}function HU(e,t,n){var a=ga.exec(t.slice(n,n+4));return a?(e.y=+a[0],n+a[0].length):-1}function VU(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.y=+a[0]+(+a[0]>68?1900:2e3),n+a[0].length):-1}function M1s(e,t,n){var a=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return a?(e.Z=a[1]?0:-(a[2]+(a[3]||"00")),n+a[0].length):-1}function E1s(e,t,n){var a=ga.exec(t.slice(n,n+1));return a?(e.q=a[0]*3-3,n+a[0].length):-1}function I1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.m=a[0]-1,n+a[0].length):-1}function KU(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.d=+a[0],n+a[0].length):-1}function O1s(e,t,n){var a=ga.exec(t.slice(n,n+3));return a?(e.m=0,e.d=+a[0],n+a[0].length):-1}function GU(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.H=+a[0],n+a[0].length):-1}function L1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.M=+a[0],n+a[0].length):-1}function U1s(e,t,n){var a=ga.exec(t.slice(n,n+2));return a?(e.S=+a[0],n+a[0].length):-1}function B1s(e,t,n){var a=ga.exec(t.slice(n,n+3));return a?(e.L=+a[0],n+a[0].length):-1}function F1s(e,t,n){var a=ga.exec(t.slice(n,n+6));return a?(e.L=Math.floor(a[0]/1e3),n+a[0].length):-1}function z1s(e,t,n){var a=A1s.exec(t.slice(n,n+1));return a?n+a[0].length:-1}function q1s(e,t,n){var a=ga.exec(t.slice(n));return a?(e.Q=+a[0],n+a[0].length):-1}function H1s(e,t,n){var a=ga.exec(t.slice(n));return a?(e.s=+a[0],n+a[0].length):-1}function WU(e,t){return Nt(e.getDate(),t,2)}function V1s(e,t){return Nt(e.getHours(),t,2)}function K1s(e,t){return Nt(e.getHours()%12||12,t,2)}function G1s(e,t){return Nt(1+Ay.count(ol(e),e),t,3)}function UY(e,t){return Nt(e.getMilliseconds(),t,3)}function W1s(e,t){return UY(e,t)+"000"}function Y1s(e,t){return Nt(e.getMonth()+1,t,2)}function Q1s(e,t){return Nt(e.getMinutes(),t,2)}function X1s(e,t){return Nt(e.getSeconds(),t,2)}function Z1s(e){var t=e.getDay();return t===0?7:t}function J1s(e,t){return Nt(M0.count(ol(e)-1,e),t,2)}function BY(e){var t=e.getDay();return t>=4||t===0?Sp(e):Sp.ceil(e)}function eSs(e,t){return e=BY(e),Nt(Sp.count(ol(e),e)+(ol(e).getDay()===4),t,2)}function tSs(e){return e.getDay()}function nSs(e,t){return Nt(T$.count(ol(e)-1,e),t,2)}function aSs(e,t){return Nt(e.getFullYear()%100,t,2)}function oSs(e,t){return e=BY(e),Nt(e.getFullYear()%100,t,2)}function sSs(e,t){return Nt(e.getFullYear()%1e4,t,4)}function rSs(e,t){var n=e.getDay();return e=n>=4||n===0?Sp(e):Sp.ceil(e),Nt(e.getFullYear()%1e4,t,4)}function iSs(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Nt(t/60|0,"0",2)+Nt(t%60,"0",2)}function YU(e,t){return Nt(e.getUTCDate(),t,2)}function lSs(e,t){return Nt(e.getUTCHours(),t,2)}function cSs(e,t){return Nt(e.getUTCHours()%12||12,t,2)}function dSs(e,t){return Nt(1+D0.count(sl(e),e),t,3)}function FY(e,t){return Nt(e.getUTCMilliseconds(),t,3)}function uSs(e,t){return FY(e,t)+"000"}function mSs(e,t){return Nt(e.getUTCMonth()+1,t,2)}function pSs(e,t){return Nt(e.getUTCMinutes(),t,2)}function fSs(e,t){return Nt(e.getUTCSeconds(),t,2)}function gSs(e){var t=e.getUTCDay();return t===0?7:t}function hSs(e,t){return Nt(E0.count(sl(e)-1,e),t,2)}function zY(e){var t=e.getUTCDay();return t>=4||t===0?Ap(e):Ap.ceil(e)}
953function ySs(e,t){return e=zY(e),Nt(Ap.count(sl(e),e)+(sl(e).getUTCDay()===4),t,2)}function vSs(e){return e.getUTCDay()}function bSs(e,t){return Nt(R$.count(sl(e)-1,e),t,2)}function xSs(e,t){return Nt(e.getUTCFullYear()%100,t,2)}function $Ss(e,t){return e=zY(e),Nt(e.getUTCFullYear()%100,t,2)}function wSs(e,t){return Nt(e.getUTCFullYear()%1e4,t,4)}function kSs(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Ap(e):Ap.ceil(e),Nt(e.getUTCFullYear()%1e4,t,4)}function CSs(){return"+0000"}function QU(){return"%"}function XU(e){return+e}function ZU(e){return Math.floor(+e/1e3)}var km,qY,HY;SSs({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function SSs(e){return km=S1s(e),qY=km.format,km.parse,HY=km.utcFormat,km.utcParse,km}function ASs(e){return new Date(e)}function TSs(e){return e instanceof Date?+e:+new Date(+e)}function E2(e,t,n,a,s,r,i,c,d,m){var f=$2(),p=f.invert,y=f.domain,v=m(".%L"),$=m(":%S"),x=m("%I:%M"),w=m("%I %p"),S=m("%a %d"),k=m("%b %d"),T=m("%B"),R=m("%Y");function _(P){return(d(P)<P?v:c(P)<P?$:i(P)<P?x:r(P)<P?w:a(P)<P?s(P)<P?S:k:n(P)<P?T:R)(P)}return f.invert=function(P){return new Date(p(P))},f.domain=function(P){return arguments.length?y(Array.from(P,TSs)):y().map(ASs)},f.ticks=function(P){var j=y();return e(j[0],j[j.length-1],P??10)},f.tickFormat=function(P,j){return j==null?_:m(j)},f.nice=function(P){var j=y();return(!P||typeof P.range!="function")&&(P=t(j[0],j[j.length-1],P??10)),P?y(_Y(j,P)):f},f.copy=function(){return Sy(f,E2(e,t,n,a,s,r,i,c,d,m))},f}function RSs(){return Bs.apply(E2(k1s,C1s,ol,D2,M0,Ay,j2,P2,Pd,qY).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function PSs(){return Bs.apply(E2($1s,w1s,sl,M2,E0,D0,N2,_2,Pd,HY).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function I0(){var e=0,t=1,n,a,s,r,i=to,c=!1,d;function m(p){return p==null||isNaN(p=+p)?d:i(s===0?.5:(p=(r(p)-n)*s,c?Math.max(0,Math.min(1,p)):p))}m.domain=function(p){return arguments.length?([e,t]=p,n=r(e=+e),a=r(t=+t),s=n===a?0:1/(a-n),m):[e,t]},m.clamp=function(p){return arguments.length?(c=!!p,m):c},m.interpolator=function(p){return arguments.length?(i=p,m):i};function f(p){return function(y){var v,$;return arguments.length?([v,$]=y,i=p(v,$),m):[i(0),i(1)]}}return m.range=f(Jp),m.rangeRound=f(x2),m.unknown=function(p){return arguments.length?(d=p,m):d},function(p){return r=p,n=p(e),a=p(t),s=n===a?0:1/(a-n),m}}function Hc(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function VY(){var e=qc(I0()(to));return e.copy=function(){return Hc(e,VY())},fl.apply(e,arguments)}function KY(){var e=C2(I0()).domain([1,10]);return e.copy=function(){return Hc(e,KY()).base(e.base())},fl.apply(e,arguments)}function GY(){var e=S2(I0());return e.copy=function(){return Hc(e,GY()).constant(e.constant())},fl.apply(e,arguments)}function I2(){var e=A2(I0());return e.copy=function(){return Hc(e,I2()).exponent(e.exponent())},fl.apply(e,arguments)}function _Ss(){return I2.apply(null,arguments).exponent(.5)}function WY(){var e=[],t=to;function n(a){if(a!=null&&!isNaN(a=+a))return t((ky(e,a,1)-1)/(e.length-1))}return n.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let s of a)s!=null&&!isNaN(s=+s)&&e.push(s);return e.sort(xc),n},n.interpolator=function(a){return arguments.length?(t=a,n):t},n.range=function(){return e.map((a,s)=>t(s/(e.length-1)))},n.quantiles=function(a){return Array.from({length:a+1},(s,r)=>hCs(e,r/a))},n.copy=function(){return WY(t).domain(e)},fl.apply(n,arguments)}function O0(){var e=0,t=.5,n=1,a=1,s,r,i,c,d,m=to,f,p=!1,y;function v(x){return isNaN(x=+x)?y:(x=.5+((x=+f(x))-r)*(a*x<a*r?c:d),m(p?Math.max(0,Math.min(1,x)):x))}v.domain=function(x){return arguments.length?([e,t,n]=x,s=f(e=+e),r=f
953(t=+t),i=f(n=+n),c=s===r?0:.5/(r-s),d=r===i?0:.5/(i-r),a=r<s?-1:1,v):[e,t,n]},v.clamp=function(x){return arguments.length?(p=!!x,v):p},v.interpolator=function(x){return arguments.length?(m=x,v):m};function $(x){return function(w){var S,k,T;return arguments.length?([S,k,T]=w,m=zCs(x,[S,k,T]),v):[m(0),m(.5),m(1)]}}return v.range=$(Jp),v.rangeRound=$(x2),v.unknown=function(x){return arguments.length?(y=x,v):y},function(x){return f=x,s=x(e),r=x(t),i=x(n),c=s===r?0:.5/(r-s),d=r===i?0:.5/(i-r),a=r<s?-1:1,v}}function YY(){var e=qc(O0()(to));return e.copy=function(){return Hc(e,YY())},fl.apply(e,arguments)}function QY(){var e=C2(O0()).domain([.1,1,10]);return e.copy=function(){return Hc(e,QY()).base(e.base())},fl.apply(e,arguments)}function XY(){var e=S2(O0());return e.copy=function(){return Hc(e,XY()).constant(e.constant())},fl.apply(e,arguments)}function O2(){var e=A2(O0());return e.copy=function(){return Hc(e,O2()).exponent(e.exponent())},fl.apply(e,arguments)}function jSs(){return O2.apply(null,arguments).exponent(.5)}const ZY=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:v2,scaleDiverging:YY,scaleDivergingLog:QY,scaleDivergingPow:O2,scaleDivergingSqrt:jSs,scaleDivergingSymlog:XY,scaleIdentity:PY,scaleImplicit:bP,scaleLinear:RY,scaleLog:jY,scaleOrdinal:y2,scalePoint:bCs,scalePow:T2,scaleQuantile:MY,scaleQuantize:EY,scaleRadial:DY,scaleSequential:VY,scaleSequentialLog:KY,scaleSequentialPow:I2,scaleSequentialQuantile:WY,scaleSequentialSqrt:_Ss,scaleSequentialSymlog:GY,scaleSqrt:u1s,scaleSymlog:NY,scaleThreshold:IY,scaleTime:RSs,scaleUtc:PSs,tickFormat:TY},Symbol.toStringTag,{value:"Module"}));function NSs(e){var t=ZY;if(e in t&&typeof t[e]=="function")return t[e]();var n="scale".concat(hy(e));if(n in t&&typeof t[n]=="function")return t[n]()}function JU(e,t,n){if(typeof e=="function")return e.copy().domain(t).range(n);if(e!=null){var a=NSs(e);if(a!=null)return a.domain(t).range(n),a}}function L2(e,t,n,a){if(!(n==null||a==null))return typeof e.scale=="function"?JU(e.scale,n,a):JU(t,n,a)}function DSs(e){return"scale".concat(hy(e))}function MSs(e){return DSs(e)in ZY}var JY=(e,t,n)=>{if(e!=null){var{scale:a,type:s}=e;if(a==="auto")return s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>
953=0||n.indexOf("ComposedChart")>=0&&!t)?"point":s==="category"?"band":"linear";if(typeof a=="string")return MSs(a)?a:"point"}};function ESs(e,t){for(var n=0,a=e.length,s=e[0]<e[e.length-1];n<a;){var r=Math.floor((n+a)/2);(s?e[r]<t:e[r]>t)?n=r+1:a=r}return n}function eQ(e,t){if(e){var n=t??e.domain(),a=n.map(r=>{var i;return(i=e(r))!==null&&i!==void 0?i:0}),s=e.range();if(!(n.length===0||s.length<2))return r=>{var i,c,d=ESs(a,r);if(d<=0)return n[0];if(d>=n.length)return n[n.length-1];var m=(i=a[d-1])!==null&&i!==void 0?i:0,f=(c=a[d])!==null&&c!==void 0?c:0;return Math.abs(r-m)<=Math.abs(r-f)?n[d-1]:n[d]}}}function ISs(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):eQ(e,void 0)}function eB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function P$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?eB(Object(n),!0).forEach(function(a){OSs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function OSs(e,t,n){return(t=LSs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function LSs(e){var t=USs(e,"string");return typeof t=="symbol"?t:t+""}function USs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var kP=[0,"auto"],Wn={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0,niceTicks:"auto"},tQ=(e,t)=>e.cartesianAxis.xAxis[t],gl=(e,t)=>{var n=tQ(e,t);return n??Wn},Yn={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:kP,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:by},nQ=(e,t)=>e.cartesianAxis.yAxis[t],hl=(e,t)=>{var n=nQ(e,t);return n??Yn},BSs={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},U2=(e,t)=>{var n=e.cartesianAxis.zAxis[t];return n??BSs},io=(e,t,n)=>{switch(t){case"xAxis":return gl(e,n);case"yAxis":return hl(e,n);case"zAxis":return U2(e,n);case"angleAxis":return m2(e,n);case"radiusAxis":return p2(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},FSs=(e,t,n)=>{switch(t){case"xAxis":return gl(e,n);case"yAxis":return hl(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},Ty=(e,t,n)=>{switch(t){case"xAxis":return gl(e,n);case"yAxis":return hl(e,n);case"angleAxis":return m2(e,n);case"radiusAxis":return p2(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},aQ=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function oQ(e,t){return n=>{switch(e){case"xAxis":return"xAxisId"in n&&n.xAxisId===t;case"yAxis":return"yAxisId"in n&&n.yAxisId===t;case"zAxis":return"zAxisId"in n&&n.zAxisId===t;case"angleAxis":return"angleAxisId"in n&&n.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in n&&n.radiusAxisId===t;default:return!1}}}var L0=e=>e.graphicalItems.cartesianItems,zSs=ce([pa,A0],oQ),sQ=(e,t,n)=>e.filter(n).filter(a=>t?.includeHidden===!0?!0:!a.hide),ef=ce([L0,io,zSs],sQ,{memoizeOptions:{resultEqualityCheck:_0}}),rQ=ce([ef],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(R0)),iQ=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),qSs=ce([ef],iQ),lQ=e=>e.map(t=>
953t.data).filter(Boolean).flat(1),HSs=ce([ef],e=>e.some(t=>!t.data)),cQ=ce([ef],lQ,{memoizeOptions:{resultEqualityCheck:_0}}),dQ=(e,t)=>{var{chartData:n=[],dataStartIndex:a,dataEndIndex:s}=t;return e.length>0?e:n.slice(a,s+1)},B2=ce([cQ,$0],dQ),VSs=(e,t,n)=>t?.dataKey!=null?e.map(a=>({value:jn(a,t.dataKey)})):n.length>0?n.map(a=>a.dataKey).flatMap(a=>e.map(s=>({value:jn(s,a)}))):e.map(a=>({value:a})),uQ=(e,t,n,a,s,r)=>{var{chartData:i=[],dataStartIndex:c,dataEndIndex:d}=a,m=VSs(e,t,n);if(s&&t?.dataKey!=null&&r.length>0){var f=i.slice(c,d+1),p=f.map(y=>({value:jn(y,t.dataKey)})).filter(y=>y.value!=null);return[...p,...m]}return m},Ry=ce([B2,io,ef,$0,HSs,cQ],uQ);function Wm(e){if(si(e)||e instanceof Date){var t=Number(e);if(ht(t))return t}}function tB(e){if(Array.isArray(e)){var t=[Wm(e[0]),Wm(e[1])];return ni(t)?t:void 0}var n=Wm(e);if(n!=null)return[n,n]}function ii(e){return e.map(Wm).filter(So)}function KSs(e,t){var n=Wm(e),a=Wm(t);return n==null&&a==null?0:n==null?-1:a==null?1:n-a}var GSs=ce([Ry],e=>e?.map(t=>t.value).sort(KSs));function mQ(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function WSs(e,t,n){if(!n)return[];if(!n.length)return[];var a;if(typeof t=="number"&&!hr(t))a=t;else if(Array.isArray(t)){var s=ii(t);s.length>0&&(a=Math.max(...s))}return a==null?[]:ii(n.flatMap(r=>{var i=jn(e,r.dataKey),c,d;if(Array.isArray(i)?[c,d]=i:c=d=i,!(!ht(c)||!ht(d)))return[a-c,a+d]}))}var ea=e=>{var t=fa(e),n=Zp(e);return Ty(e,t,n)},Tp=ce([ea],e=>e?.dataKey),YSs=ce([rQ,$0,ea],yY),pQ=(e,t,n,a)=>{var s={},r=t.reduce((i,c)=>{if(c.stackId==null)return i;var d=i[c.stackId];return d==null&&(d=[]),d.push(c),i[c.stackId]=d,i},s);return Object.fromEntries(Object.entries(r).map(i=>{var[c,d]=i,m=a?[...d].reverse():d,f=m.map(T0);return[c,{stackedData:Y$s(e,f,n),graphicalItems:m}]}))},_$=ce([YSs,rQ,w0,dY],pQ),fQ=(e,t,n,a)=>{var{dataStartIndex:s,dataEndIndex:r}=t;if(a==null&&n!=="zAxis"){var i=J$s(e,s,r);if(!(i!=null&&i[0]===0&&i[1]===0))return i}},QSs=ce([io],e=>e.allowDataOverflow),F2=e=>{var t;if(e==null||!("domain"in e))return kP;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var n=ii(e.ticks);return[Math.min(...n),Math.max(...n)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:kP},gQ=ce([io],F2),hQ=ce([gQ,QSs],XW),XSs=ce([_$,Ar,pa,hQ],fQ,{memoizeOptions:{resultEqualityCheck:P0}}),z2=e=>e.errorBars,ZSs=(e,t,n)=>e.flatMap(a=>t[a.id]).filter(Boolean).filter(a=>mQ(n,a)),j$=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];
953var s=n.filter(Boolean);if(s.length!==0){var r=s.flat(),i=Math.min(...r),c=Math.max(...r);return[i,c]}},yQ=function(t,n,a,s,r){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],c,d;if(a.length>0&&a.forEach(m=>{var f,p=m.data!=null?[...m.data]:i,y=(f=s[m.id])===null||f===void 0?void 0:f.filter(v=>mQ(r,v));p.forEach(v=>{var $,x=jn(v,($=n.dataKey)!==null&&$!==void 0?$:m.dataKey),w=WSs(v,x,y);if(w.length>=2){var S=Math.min(...w),k=Math.max(...w);(c==null||S<c)&&(c=S),(d==null||k>d)&&(d=k)}var T=tB(x);T!=null&&(c=c==null?T[0]:Math.min(c,T[0]),d=d==null?T[1]:Math.max(d,T[1]))})}),n?.dataKey!=null&&a.length===0&&t.forEach(m=>{var f=tB(jn(m,n.dataKey));f!=null&&(c=c==null?f[0]:Math.min(c,f[0]),d=d==null?f[1]:Math.max(d,f[1]))}),ht(c)&&ht(d))return[c,d]},JSs=ce([B2,io,qSs,z2,pa,Fks],yQ,{memoizeOptions:{resultEqualityCheck:P0}});function eAs(e){var{value:t}=e;if(si(t)||t instanceof Date)return t}var tAs=(e,t,n)=>{var a=e.map(eAs).filter(s=>s!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&PG(a))?YW(0,e.length):t.allowDuplicatedCategory?a:Array.from(new Set(a))},vQ=e=>e.referenceElements.dots,tf=(e,t,n)=>e.filter(a=>a.ifOverflow==="extendDomain").filter(a=>t==="xAxis"?a.xAxisId===n:a.yAxisId===n),nAs=ce([vQ,pa,A0],tf),bQ=e=>e.referenceElements.areas,aAs=ce([bQ,pa,A0],tf),xQ=e=>e.referenceElements.lines,oAs=ce([xQ,pa,A0],tf),$Q=(e,t)=>{if(e!=null){var n=ii(e.map(a=>t==="xAxis"?a.x:a.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},sAs=ce(nAs,pa,$Q),wQ=(e,t)=>{if(e!=null){var n=ii(e.flatMap(a=>[t==="xAxis"?a.x1:a.y1,t==="xAxis"?a.x2:a.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},rAs=ce([aAs,pa],wQ);function iAs(e){var t;if(e.x!=null)return ii([e.x]);var n=(t=e.segment)===null||t===void 0?void 0:t.map(a=>a.x);return n==null||n.length===0?[]:ii(n)}function lAs(e){var t;if(e.y!=null)return ii([e.y]);var n=(t=e.segment)===null||t===void 0?void 0:t.map(a=>a.y);return n==null||n.length===0?[]:ii(n)}var kQ=(e,t)=>{if(e!=null){var n=e.flatMap(a=>t==="xAxis"?iAs(a):lAs(a));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},cAs=ce([oAs,pa],kQ),dAs=ce(sAs,cAs,rAs,(e,t,n)=>j$(e,n,t)),CQ=(e,t,n,a,s,r,i,c)=>{if(n!=null)return n;var d=i==="vertical"&&c==="xAxis"||i==="horizontal"&&c==="yAxis",m=d?j$(a,r,s):j$(r,s);return qks(t,m,e.allowDataOverflow)},uAs=ce([io,gQ,hQ,XSs,JSs,dAs,Ut,pa],CQ,{memoizeOptions:{resultEqualityCheck:P0}}),mAs=[0,1],SQ=(e,t,n,a,s,r,i)=>{if(!((e==null||n==null||n.length===0)&&i===void 0)){var{dataKey:c,type:d}=e,m=pi(t,r);if(m&&c==null){var f;return YW(0,(f=n?.length)!==null&&f!==void 0?f:0)}return d==="category"?tAs(a,e,m):s==="expand"&&!m?mAs:i}},q2=ce([io,Ut,B2,Ry,w0,pa,uAs],SQ),nf=ce([io,aQ,c2],JY),AQ=(e,t,n)=>{var{niceTicks:a}=t;if(a!=="none"){var s=F2(t),r=Array.isArray(s)&&(s[0]==="auto"||s[1]==="auto");if((a==="snap125"||a==="adaptive")&&t!=null&&t.tickCount&&ni(e)){if(r)return uU(e,t.tickCount,t.allowDecimals,a);if(t.type==="number")return mU(e,t.tickCount,t.allowDecimals,a)}if(a==="auto"&&n==="linear"&&t!=null&&t.tickCount){if(r&&ni(e))return uU(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&ni(e))return mU(e,t.tickCount,t.allowDecimals,"adaptive")}}},H2=ce([q2,Ty,nf],AQ),TQ=(e,t,n,a)=>{if(a!=="angleAxis"&&e?.type==="number"&&ni(t)&&Array.isArray(n)&&n.length>0){var s,r,i=t[0],c=(s=n[0])!==null&&s!==void 0?s:0,d=t[1],m=(r=n[n.length-1])!==null&&r!==void 0?r:0;return[Math.min(i,c),Math.max(d,m)]}return t},pAs=ce([io,q2,H2,pa],TQ),fAs=ce(Ry,io,(e,t)=>{if(!(!t||t.type!=="number")){var n=1/0,a=Array.from(ii(e.map(p=>p.value))).sort((p,y)=>p-y),s=a[0],r=a[a.length-1];if(s==null||r==null)return 1/0;var i=r-s;if(i===0)return 1/0;for(var c=0;c<a.length-1;c++){var d=a[c],m=a[c+1];if(!(d==null||m==null)){var f=m-d;n=Math.min(n,f)}}return n/i}}),RQ=ce(fAs,Ut,cY,ma,(e,t,n,a,s)=>s,(e,t,n,a,s)=>{if(!ht(e))return 0;var r=t==="vertical"?a.height:a.width;if(s==="gap")return e*r/2;if(s==="no-gap"){var i=yr(n,e*r),c=e*r/2;return c-i-(c-i)/r*i}return 0}),gAs=(e,t,n)=>{var a=gl(e,t);return a==null||typeof a.padding!="string"?0:RQ(e,"xAxis",t,n,a.padding)},hAs=(e,t,n)=>{var a=hl(e,t);return a==null||typeof a.padding!="string"?0:RQ(e,"yAxis",t,n,a.padding)},yAs=ce(gl,gAs,(e,t)=>{var n,a;if(e==null)return{left:0,right:0};var{padding:s}=e;return typeof s=="string"?{left:t,right:t}:{left:((n=s.left)!==null&&n!==void 0?n:0)+t,right:((a=s.right)!==null&&a!==void 0?a:0)+t}}),vAs=ce(hl,hAs,(e,t)=>{var n,a;if(e==null)return{top:0,bottom:0};var{padding:s}=e;return typeof s=="string"?{top:t,bottom:t}:{top:((n=s.top)!==null&&n!==void 0?n:0)+t,bottom:((a=s.bottom)!==null&&a!==void 0?a:0)+t}}),bAs=ce([ma,yAs,f0,p0,(e,t,n)=>n],(e,t,n,a,s)=>{var{padding:r}=a;return s?[r.left,n.width-r.right]:[e.left+t.left,e.left+e.width-t.right]}),xAs=ce([ma,Ut,vAs,f0,p0,(e,t,n)=>n],(e,t,n,a,s,r)=>{var{padding:i}=s;return r?[a.height-i.bottom,i.top]:t==="horizontal"?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),Py=(e,t,n,a)=>{var s;switch(t){case"xAxis":return bAs(e,n,a);case"yAxis":return xAs(e,n,a);case"zAxis":return(s=U2(e,n))===null||s===void 0?void 0:s.range;case"angleAxis":return fY(e);case"radiusAxis":return gY(e,n);default:return}},PQ=ce([io,Py],k0),$As=ce([nf,pAs],oCs),V2=ce([io,nf,$As,PQ],L2),_Q=(e,t,n,a)=>
953{if(!(n==null||n.dataKey==null)){var{type:s,scale:r}=n,i=pi(e,a);if(i&&(s==="number"||r!=="auto"))return t.map(c=>c.value)}},K2=ce([Ut,Ry,Ty,pa],_Q),U0=ce([V2],g2);ce([V2],ISs);ce([V2,GSs],eQ);ce([ef,z2,pa],ZSs);function jQ(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var B0=(e,t)=>t,F0=(e,t,n)=>n,wAs=ce(u0,B0,F0,(e,t,n)=>e.filter(a=>a.orientation===t).filter(a=>a.mirror===n).sort(jQ)),kAs=ce(m0,B0,F0,(e,t,n)=>e.filter(a=>a.orientation===t).filter(a=>a.mirror===n).sort(jQ)),NQ=(e,t)=>({width:e.width,height:t.height}),CAs=(e,t)=>{var n=typeof t.width=="number"?t.width:by;return{width:n,height:e.height}},DQ=ce(ma,gl,NQ),SAs=(e,t,n)=>{switch(t){case"top":return e.top;case"bottom":return n-e.bottom;default:return 0}},AAs=(e,t,n)=>{switch(t){case"left":return e.left;case"right":return n-e.right;default:return 0}},TAs=ce(pl,ma,wAs,B0,F0,(e,t,n,a,s)=>{var r={},i;return n.forEach(c=>{var d=NQ(t,c);i==null&&(i=SAs(t,a,e));var m=a==="top"&&!s||a==="bottom"&&s;r[c.id]=i-Number(m)*d.height,i+=(m?-1:1)*d.height}),r}),RAs=ce(ml,ma,kAs,B0,F0,(e,t,n,a,s)=>{var r={},i;return n.forEach(c=>{var d=CAs(t,c);i==null&&(i=AAs(t,a,e));var m=a==="left"&&!s||a==="right"&&s;r[c.id]=i-Number(m)*d.width,i+=(m?-1:1)*d.width}),r}),PAs=(e,t)=>{var n=gl(e,t);if(n!=null)return TAs(e,n.orientation,n.mirror)},_As=ce([ma,gl,PAs,(e,t)=>t],(e,t,n,a)=>{if(t!=null){var s=n?.[a];return s==null?{x:e.left,y:0}:{x:e.left,y:s}}}),jAs=(e,t)=>{var n=hl(e,t);if(n!=null)return RAs(e,n.orientation,n.mirror)},NAs=ce([ma,hl,jAs,(e,t)=>t],(e,t,n,a)=>{if(t!=null){var s=n?.[a];return s==null?{x:0,y:e.top}:{x:s,y:e.top}}}),MQ=ce(ma,hl,(e,t)=>{var n=typeof t.width=="number"?t.width:by;return{width:n,height:e.height}}),nB=(e,t,n)=>{switch(t){case"xAxis":return DQ(e,n).width;case"yAxis":return MQ(e,n).height;default:return}},EQ=(e,t,n,a)=>{if(n!=null){var{allowDuplicatedCategory:s,type:r,dataKey:i}=n,c=pi(e,a),d=t.map(f=>f.value),m=d.filter(f=>f!=null);if(i&&c&&r==="category"&&s&&PG(m))return d}},G2=ce([Ut,Ry,io,pa],EQ),aB=ce([Ut,FSs,nf,U0,G2,K2,Py,H2,pa],(e,t,n,a,s,r,i,c,d)=>{if(t!=null){var m=pi(e,d);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:d,categoricalDomain:r,duplicateDomain:s,isCategorical:m,niceTicks:c,range:i,realScaleType:n,scale:a}}}),DAs=(e,t,n,a,s,r,i,c,d)=>{if(!(t==null||a==null)){var m=pi(e,d),{type:f,ticks:p,tickCount:y}=t,v=n==="scaleBand"&&typeof a.bandwidth=="function"?a.bandwidth()/2:2,$=f==="category"&&a.bandwidth?a.bandwidth()/v:0;$=d==="angleAxis"&&r!=null&&r.length>=2?Co(r[0]-r[1])*2*$:$;var x=p||s;return x?x.map((w,S)=>{var k=i?i.indexOf(w):w,T=a.map(k);return ht(T)?{index:S,coordinate:T+$,value:w,offset:$}:null}).filter(So):m&&c?c.map((w,S)=>{var k=a.map(w);return ht(k)?{coordinate:k+$,value:w,index:S,offset:$}:null}).filter(So):a.ticks?a.ticks(y).map((w,S)=>{var k=a.map(w);return ht(k)?{coordinate:k+$,value:w,index:S,offset:$}:null}).filter(So):a.domain().map((w,S)=>{var k=a.map(w);return ht(k)?{coordinate:k+$,value:i?i[w]:w,index:S,offset:$}:null}).filter(So)}},IQ=ce([Ut,Ty,nf,U0,H2,Py,G2,K2,pa],DAs),MAs=(e,t,n,a,s,r,i)=>{if(!(t==null||n==null||a==null||a[0]===a[1])){var c=pi(e,i),{tickCount:d}=t,m=0;return m=i==="angleAxis"&&a?.length>=2?Co(a[0]-a[1])*2*m:m,c&&r?r.map((f,p)=>{var y=n.map(f);return ht(y)?{coordinate:y+m,value:f,index:p,offset:m}:null}).filter(So):n.ticks?n.ticks(d).map((f,p)=>{var y=n.map(f);return ht(y)?{coordinate:y+m,value:f,index:p,offset:m}:null}).filter(So):n.domain().map((f,p)=>{var y=n.map(f);return ht(y)?{coordinate:y+m,value:s?s[f]:f,index:p,offset:m}:null}).filter(So)}},Pc=ce([Ut,Ty,U0,Py,G2,K2,pa],MAs),_c=ce(io,U0,(e,t)=>{if(!(e==null||t==null))return P$(P$({},e),{},{scale:t})}),EAs=ce([io,nf,q2,PQ],L2),IAs=ce([EAs],g2);ce((e,t,n)=>U2(e,n),IAs,(e,t)=>{if(!(e==null||t==null))return P$(P$({},e),{},{scale:t})});var OAs=ce([Ut,u0,m0],(e,t,n)=>{switch(e){case"horizontal":return t.some(a=>a.reversed)?"right-to-left":"left-to-right";case"vertical":return n.some(a=>a.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),LAs=(e,t,n)=>{var a;return(a=e.renderedTicks[t])===null||a===void 0?void 0:a[n]};ce([LAs],e=>{if(!(!e||e.length===0))return t=>{var n,a=1/0,s=e[0];for(var r of e){var i=Math.abs(r.coordinate-t);i<a&&(a=i,s=r)}return(n=s)===null||n===void 0?void 0:n.value}});var OQ=e=>e.options.defaultTooltipEventType,LQ=e=>e.options.validateTooltipEventTypes;
953function UQ(e,t,n){if(e==null)return t;var a=e?"axis":"item";return n==null?t:n.includes(a)?a:t}function _y(e,t){var n=OQ(e),a=LQ(e);return UQ(t,n,a)}function UAs(e){return Ge(t=>_y(t,e))}var BQ=(e,t)=>{var n,a=Number(t);if(!(hr(a)||t==null))return a>=0?e==null||(n=e[a])===null||n===void 0?void 0:n.value:void 0},BAs=e=>e.tooltip.settings,oc={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},FAs={itemInteraction:{click:oc,hover:oc},axisInteraction:{click:oc,hover:oc},keyboardInteraction:oc,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},FQ=Ka({name:"tooltip",initialState:FAs,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:pn()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:n,next:a}=t.payload,s=Rs(e).tooltipItemPayloads.indexOf(n);s>-1&&(e.tooltipItemPayloads[s]=a)},prepare:pn()},removeTooltipEntrySettings:{reducer(e,t){var n=Rs(e).tooltipItemPayloads.indexOf(t.payload);n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:pn()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:zAs,replaceTooltipEntrySettings:qAs,removeTooltipEntrySettings:HAs,setTooltipSettingsState:VAs,setActiveMouseOverItemIndex:zQ,mouseLeaveItem:KAs,mouseLeaveChart:qQ,setActiveClickItemIndex:GAs,setMouseOverAxisIndex:HQ,setMouseClickAxisIndex:WAs,setSyncInteraction:jg,setKeyboardInteraction:N$}=FQ.actions,YAs=FQ.reducer;function oB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Db(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?oB(Object(n),!0).forEach(function(a){QAs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function QAs(e,t,n){return(t=XAs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function XAs(e){var t=ZAs(e,"string");return typeof t=="symbol"?t:t+""}function ZAs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}
953function JAs(e,t,n){return t==="axis"?n==="click"?e.axisInteraction.click:e.axisInteraction.hover:n==="click"?e.itemInteraction.click:e.itemInteraction.hover}function eTs(e){return e.index!=null}var VQ=(e,t,n,a)=>{if(t==null)return oc;var s=JAs(e,t,n);if(s==null)return oc;if(s.active)return s;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var r=e.settings.active===!0;if(eTs(s)){if(r)return Db(Db({},s),{},{active:!0})}else if(a!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:a,graphicalItemId:void 0};return Db(Db({},oc),{},{coordinate:s.coordinate})};function tTs(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function nTs(e,t){var n=tTs(e),a=t[0],s=t[1];if(n===void 0)return!1;var r=Math.min(a,s),i=Math.max(a,s);return n>=r&&n<=i}function aTs(e,t,n){if(n==null||t==null)return!0;var a=jn(e,t);return a==null||!ni(n)?!0:nTs(a,n)}var zg=(e,t,n,a)=>{var s=e?.index;if(s==null)return null;var r=Number(s);if(!ht(r))return s;var i=0,c=1/0;t.length>0&&(c=t.length-1);var d=Math.max(i,Math.min(r,c)),m=t[d];return m==null||aTs(m,n,a)?String(d):null},KQ=(e,t,n,a,s,r,i)=>{if(r!=null){var c=i[0],d=c?.getPosition(r);if(d!=null)return d;var m=s?.[Number(r)];if(m)switch(n){case"horizontal":return{x:m.coordinate,y:(a.top+t)/2};default:return{x:(a.left+e)/2,y:m.coordinate}}}},GQ=(e,t,n,a)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var s;if(n==="hover"?s=e.itemInteraction.hover.graphicalItemId:s=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&s==null)return e.tooltipItemPayloads;if(s==null&&(a!=null||e.keyboardInteraction.active)){var r=e.tooltipItemPayloads[0];return r!=null?[r]:[]}return e.tooltipItemPayloads.filter(i=>{var c;return((c=i.settings)===null||c===void 0?void 0:c.graphicalItemId)===s})},WQ=e=>e.options.tooltipPayloadSearcher,af=e=>e.tooltip;function sB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function rB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?sB(Object(n),!0).forEach(function(a){oTs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function oTs(e,t,n){return(t=sTs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sTs(e){var t=rTs(e,"string");return typeof t=="symbol"?t:t+""}function rTs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function iTs(e){if(typeof e=="string"||typeof e=="number")return e}function lTs(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e}function cTs(e){if(typeof e=="string"||typeof e=="number")return e;if(typeof e=="function")return t=>e(t)}function iB(e){if(typeof e=="string")return e}function dTs(e){if(!(e==null||typeof e!="object")){var t="name"in e?iTs(e.name):void 0,n="unit"in e?lTs(e.unit):void 0,a="dataKey"in e?cTs(e.dataKey):void 0,s="payload"in e?e.payload:void 0,r="color"in e?iB(e.color):void 0,i="fill"in e?iB(e.fill):void 0;return{name:t,unit:n,dataKey:a,payload:s,color:r,fill:i}}}function uTs(e,t){return e??t}var YQ=(e,t,n,a,s,r,i)=>{if(!(t==null||r==null)){var{chartData:c,computedData:d,dataStartIndex:m,dataEndIndex:f}=n,p=[];return e.reduce((y,v)=>{var $,{dataDefinedOnItem:x,settings:w}=v,S=uTs(x,c),k=Array.isArray(S)?CW(S,m,f):S,T=($=w?.dataKey)!==null&&$!==void 0?$:a,R=w?.nameKey,_;if(a&&Array.isArray(k)&&!Array.isArray(k[0])&&i==="axis"?_=_G(k,a,s):_=r(k,t,d,R),Array.isArray(_))_.forEach(j=>{var N,I,z=dTs(j),E=z?.name,L=z?.dataKey,O=z?.payload,V=rB(rB({},w),{},{name:E,unit:z?.unit,color:(N=z?.color)!==null&&N!==void 0?N:w?.color,fill:(I=z?.fill)!==null&&I!==void 0?I:w?.fill});y.push(o5({tooltipEntrySettings:V,dataKey:L,payload:O,value:jn(O,L),name:E==null?void 0:String(E)}))});else{var P;y.push(o5({tooltipEntrySettings:w,dataKey:T,payload:_,value:jn(_,T),name:(P=jn(_,R))!==null&&P!==void 0?P:w?.name}))}return y},p)}},W2=ce([ea,aQ,c2],JY),mTs=ce([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),pTs=ce([fa,Zp],oQ),Tu=ce([mTs,ea,pTs],sQ,{memoizeOptions:{resultEqualityCheck:_0}}),fTs=ce([Tu],e=>e.filter(R0)),QQ=ce([Tu],lQ,{memoizeOptions:{resultEqualityCheck:_0}}),gTs=ce([Tu],e=>e.some(t=>!t.data)),ru=ce([QQ,Ar],dQ),hTs=ce([fTs,Ar,ea],yY),Y2=ce([ru,ea,Tu,Ar,gTs,QQ],uQ),XQ=ce([ea],F2),yTs=ce([ea],e=>e.allowDataOverflow),ZQ=ce([XQ,yTs],XW),vTs=ce([Tu],e=>e.filter(R0)),bTs=ce([hTs,vTs,w0,dY],pQ),xTs=ce([bTs,Ar,fa,ZQ],fQ),$Ts=ce([Tu],iQ),wTs=ce([ru,ea,$Ts,z2,fa,zks],yQ,{memoizeOptions:{resultEqualityCheck:P0}}),kTs=ce([vQ,fa,Zp],tf),CTs=ce([kTs,fa],$Q),STs=ce([bQ,fa,Zp],tf),ATs=ce([STs,fa],wQ),TTs=ce([xQ,fa,Zp],tf),RTs=ce([TTs,fa],kQ),PTs=ce([CTs,RTs,ATs],j$),_Ts=ce([ea,XQ,ZQ,xTs,wTs,PTs,Ut,fa],CQ),Rp=ce([ea,Ut,ru,Y2,w0,fa,_Ts],SQ),jTs=ce([Rp,ea,W2],AQ),NTs=ce([ea,Rp,jTs,fa],TQ),JQ=e=>{var t=fa(e),n=Zp(e),a=!1;return Py(e,t,n,a)},eX=ce([ea,JQ],k0),DTs=ce([ea,W2,NTs,eX],L2),tX=ce([DTs],g2),MTs=ce([Ut,Y2,ea,fa],EQ),ETs=ce([Ut,Y2,ea,fa],_Q),ITs=(e,t,n,a,s,r,i,c)=>{if(t){var{type:d}=t,m=pi(e,c);if(a){var f=n==="scaleBand"&&a.bandwidth?a.bandwidth()/2:2,p=d==="category"&&a.bandwidth?a.bandwidth()/f:0;return p=c==="angleAxis"&&s!=null&&s?.length>=2?Co(s[0]-s[1])*2*p:p,m&&i?i.map((y,v)=>{var $=a.map(y);return ht($)?{coordinate:$+p,value:y,index:v,offset:p}:null}).filter(So):a.domain().map((y,v)=>{var $=a.map(y);return ht($)?{coordinate:$+p,value:r?r[y]:y,index:v,offset:p}:null}).filter(So)}}},yl=ce([Ut,ea,W2,tX,JQ,MTs,ETs,fa],ITs),Q2=ce([OQ,LQ,BAs],(e,t,n)=>UQ(n.shared,e,t)),nX=e=>e.tooltip.settings.trigger,X2=e=>e.tooltip.settings.defaultIndex,jy=ce([af,Q2,nX,X2],VQ),iu=ce([jy,ru,Tp,Rp],zg),aX=ce([yl,iu],BQ),oX=ce([jy],e=>{if(e)return e.dataKey}),OTs=ce([jy],e=>{if(e)return e.graphicalItemId}),sX=ce([af,Q2,nX,X2],GQ),LTs=ce([ml,pl,Ut,ma,yl,X2,sX],KQ),UTs=ce([jy,LTs],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),BTs=ce([jy],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),FTs=ce([sX,iu,Ar,Tp,aX,WQ,Q2],YQ),zTs=ce([FTs],e=>{if(e!=null){var t=e.map(n=>n.payload).filter(n=>n!=null);return Array.from(new Set(t))}});function lB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function cB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
953t%2?lB(Object(n),!0).forEach(function(a){qTs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function qTs(e,t,n){return(t=HTs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function HTs(e){var t=VTs(e,"string");return typeof t=="symbol"?t:t+""}function VTs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var KTs=()=>Ge(ea),GTs=()=>{var e=KTs(),t=Ge(yl),n=Ge(tX);return $p(!e||!n?void 0:cB(cB({},e),{},{scale:n}),t)};function dB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Cm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?dB(Object(n),!0).forEach(function(a){WTs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function WTs(e,t,n){return(t=YTs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YTs(e){var t=QTs(e,"string");return typeof t=="symbol"?t:t+""}function QTs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var XTs=(e,t,n,a)=>{var s=t.find(r=>r&&r.index===n);if(s){if(e==="horizontal")return{x:s.coordinate,y:a.relativeY};if(e==="vertical")return{x:a.relativeX,y:s.coordinate}}return{x:0,y:0}},ZTs=(e,t,n,a)=>{var s=t.find(m=>m&&m.index===n);if(s){if(e==="centric"){var r=s.coordinate,{radius:i}=a;return Cm(Cm(Cm({},a),Sa(a.cx,a.cy,i,r)),{},{angle:r,radius:i})}var c=s.coordinate,{angle:d}=a;return Cm(Cm(Cm({},a),Sa(a.cx,a.cy,c,d)),{},{angle:d,radius:c})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function JTs(e,t){var{relativeX:n,relativeY:a}=e;return n>=t.left&&n<=t.left+t.width&&a>=t.top&&a<=t.top+t.height}var rX=(e,t,n,a,s)=>{var r,i=(r=t?.length)!==null&&r!==void 0?r:0;if(i<=1||e==null)return 0;if(a==="angleAxis"&&s!=null&&Math.abs(Math.abs(s[1]-s[0])-360)<=1e-6)for(var c=0;c<i;c++){var d,m,f,p,y,v=c>0?(d=n[c-1])===null||d===void 0?void 0:d.coordinate:(m=n[i-1])===null||m===void 0?void 0:m.coordinate,$=(f=n[c])===null||f===void 0?void 0:f.coordinate,x=c>=i-1?(p=n[0])===null||p===void 0?void 0:p.coordinate:(y=n[c+1])===null||y===void 0?void 0:y.coordinate,w=void 0;if(!(v==null||$==null||x==null))if(Co($-v)!==Co(x-$)){var S=[];if(Co(x-$)===Co(s[1]-s[0])){w=x;var k=$+s[1]-s[0];S[0]=Math.min(k,(k+v)/2),S[1]=Math.max(k,(k+v)/2)}else{w=v;var T=x+s[1]-s[0];S[0]=Math.min($,(T+$)/2),S[1]=Math.max($,(T+$)/2)}var R=[Math.min($,(w+$)/2),Math.max($,(w+$)/2)];if(e>R[0]&&e<=R[1]||e>=S[0]&&e<=S[1]){var _;return(_=n[c])===null||_===void 0?void 0:_.index}}else{var P=Math.min(v,x),j=Math.max(v,x);if(e>(P+$)/2&&e<=(j+$)/2){var N;return(N=n[c])===null||N===void 0?void 0:N.index}}}else if(t)for(var I=0;I<i;I++){var z=t[I];if(z!=null){var E=t[I+1],L=t[I-1];if(I===0&&E!=null&&e<=(z.coordinate+E.coordinate)/2||I===i-1&&L!=null&&e>(z.coordinate+L.coordinate)/2||I>0&&I<i-1&&L!=null&&E!=null&&e>(z.coordinate+L.coordinate)/2&&e<=(z.coordinate+E.coordinate)/2)return z.index}}return-1},iX=()=>Ge(c2),Z2=(e,t)=>t,lX=(e,t,n)=>n,J2=(e,t,n,a)=>a,eRs=ce(yl,e=>e0(e,t=>t.coordinate)),eN=ce([af,Z2,lX,J2],VQ),tN=ce([eN,ru,Tp,Rp],zg),tRs=(e,t,n)=>{if(t!=null){var a=af(e);return t==="axis"?n==="hover"?a.axisInteraction.hover.dataKey:a.axisInteraction.click.dataKey:n==="hover"?a.itemInteraction.hover.dataKey:a.itemInteraction.click.dataKey}},cX=ce([af,Z2,lX,J2],GQ),D$=ce([ml,pl,Ut,ma,yl,J2,cX],KQ),nRs=ce([eN,D$],(e,t)=>{var n;return(n=e.coordinate)!==null&&n!==void 0?n:t}),dX=ce([yl,tN],BQ),aRs=ce([cX,tN,Ar,Tp,dX,WQ,Z2],YQ),oRs=ce([eN,tN],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),sRs=(e,t,n,a,s,r,i)=>{if(!(!e||!n||!a||!s)&&JTs(e,i)){var c=ews(e,t),d=rX(c,r,s,n,a),m=XTs(t,s,d,e);return{activeIndex:String(d),activeCoordinate:m}}},rRs=(e,t,n,a,s,r,i)=>{if(!(!e||!a||!s||!r||!n)){var c=jks(e,n);if(c){var d=tws(c,t),m=rX(d,i,r,a,s),f=ZTs(t,r,m,c);return{activeIndex:String(m),activeCoordinate:f}}}},iRs=(e,t,n,a,s,r,i,c)=>{if(!(!e||!t||!a||!s||!r))return t==="horizontal"||t==="vertical"?sRs(e,t,a,s,r,i,c):rRs(e,t,n,a,s,r,i)},lRs=ce(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var a=e[t];if(a!=null)return n?a.panoramaElement:a.element}}),cRs=ce(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(a=>parseInt(a,10)).concat(Object.values(la)),n=Array.from(new Set(t));return n.sort((a,s)=>a-s)},{memoizeOptions:{resultEqualityCheck:aCs}});function uB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function mB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
953t%2?uB(Object(n),!0).forEach(function(a){dRs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function dRs(e,t,n){return(t=uRs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uRs(e){var t=mRs(e,"string");return typeof t=="symbol"?t:t+""}function mRs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var pRs={},fRs={zIndexMap:Object.values(la).reduce((e,t)=>mB(mB({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),pRs)},gRs=new Set(Object.values(la));function hRs(e){return gRs.has(e)}var uX=Ka({name:"zIndex",initialState:fRs,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:pn()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(e.zIndexMap[n].consumers-=1,e.zIndexMap[n].consumers<=0&&!hRs(n)&&delete e.zIndexMap[n])},prepare:pn()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n,element:a,isPanorama:s}=t.payload;e.zIndexMap[n]?s?e.zIndexMap[n].panoramaElement=a:e.zIndexMap[n].element=a:e.zIndexMap[n]={consumers:0,element:s?void 0:a,panoramaElement:s?a:void 0}},prepare:pn()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:pn()}}}),{registerZIndexPortal:yRs,unregisterZIndexPortal:HA,registerZIndexPortalElement:vRs,unregisterZIndexPortalElement:bRs}=uX.actions,xRs=uX.reducer;function Fs(e){var{zIndex:t,children:n}=e,a=bws(),s=a&&t!==void 0&&t!==0,r=Ga(),i=h.useRef(void 0),c=h.useRef(new Set),d=gn(),m=Ge(p=>lRs(p,t,r));if(h.useLayoutEffect(()=>{if(!s){var p=c.current;p.forEach(v=>{d(HA({zIndex:v}))}),p.clear(),i.current=void 0;return}if(c.current.has(t)||(d(yRs({zIndex:t})),c.current.add(t)),m){i.current=m;var y=c.current;y.forEach(v=>{v!==t&&(d(HA({zIndex:v})),y.delete(v))})}},[d,t,s,m]),h.useLayoutEffect(()=>{var p=c.current;return()=>{p.forEach(y=>{d(HA({zIndex:y}))}),p.clear()}},[d]),!s)return n;var f=m??i.current;return f?li.createPortal(n,f):null}function CP(){return CP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},CP.apply(null,arguments)}function pB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Mb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?pB(Object(n),!0).forEach(function(a){$Rs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function $Rs(e,t,n){return(t=wRs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wRs(e){var t=kRs(e,"string");return typeof t=="symbol"?t:t+""}function kRs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function CRs(e){var{cursor:t,cursorComp:n,cursorProps:a}=e;return h.isValidElement(t)?h.cloneElement(t,a):h.createElement(n,a)}function SRs(e){var t,{coordinate:n,payload:a,index:s,offset:r,tooltipAxisBandSize:i,layout:c,cursor:d,tooltipEventType:m,chartName:f}=e,p=n,y=a,v=s;if(!d||!p||f!=="ScatterChart"&&m!=="axis")return null;var $,x,w;if(f==="ScatterChart")$=p,x=V0s,w=la.cursorLine;else if(f==="BarChart")$=K0s(c,p,r,i),x=VW,w=la.cursorRectangle;else if(c==="radial"&&NG(p)){var{cx:S,cy:k,radius:T,startAngle:R,endAngle:_}=KW(p);$={cx:S,cy:k,startAngle:R,endAngle:_,innerRadius:T,outerRadius:T},x=WW,w=la.cursorLine}else $={points:Eks(c,p,r)},x=Fg,w=la.cursorLine;var P=typeof d=="object"&&"className"in d?d.className:void 0,j=Mb(Mb(Mb(Mb({stroke:"#ccc",pointerEvents:"none"},r),$),gy(d)),{},{payload:y,payloadIndex:v,className:Lt("recharts-tooltip-cursor",P)});return h.createElement(Fs,{zIndex:(t=e.zIndex)!==null&&t!==void 0?t:w},h.createElement(CRs,{cursor:d,cursorComp:x,cursorProps:j}))}function ARs(e){var t=GTs(),n=_W(),a=Cu(),s=iX();return t==null||n==null||a==null||s==null?null:h.createElement(SRs,CP({}
953,e,{offset:n,layout:a,tooltipAxisBandSize:t,chartName:s}))}var mX=h.createContext(null),TRs=()=>h.useContext(mX),VA={exports:{}},fB;function RRs(){return fB||(fB=1,(function(e){var t=Object.prototype.hasOwnProperty,n="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(n=!1));function s(d,m,f){this.fn=d,this.context=m,this.once=f||!1}function r(d,m,f,p,y){if(typeof f!="function")throw new TypeError("The listener must be a function");var v=new s(f,p||d,y),$=n?n+m:m;return d._events[$]?d._events[$].fn?d._events[$]=[d._events[$],v]:d._events[$].push(v):(d._events[$]=v,d._eventsCount++),d}function i(d,m){--d._eventsCount===0?d._events=new a:delete d._events[m]}function c(){this._events=new a,this._eventsCount=0}c.prototype.eventNames=function(){var m=[],f,p;if(this._eventsCount===0)return m;for(p in f=this._events)t.call(f,p)&&m.push(n?p.slice(1):p);return Object.getOwnPropertySymbols?m.concat(Object.getOwnPropertySymbols(f)):m},c.prototype.listeners=function(m){var f=n?n+m:m,p=this._events[f];if(!p)return[];if(p.fn)return[p.fn];for(var y=0,v=p.length,$=new Array(v);y<v;y++)$[y]=p[y].fn;return $},c.prototype.listenerCount=function(m){var f=n?n+m:m,p=this._events[f];return p?p.fn?1:p.length:0},c.prototype.emit=function(m,f,p,y,v,$){var x=n?n+m:m;if(!this._events[x])return!1;var w=this._events[x],S=arguments.length,k,T;if(w.fn){switch(w.once&&this.removeListener(m,w.fn,void 0,!0),S){case 1:return w.fn.call(w.context),!0;case 2:return w.fn.call(w.context,f),!0;case 3:return w.fn.call(w.context,f,p),!0;case 4:return w.fn.call(w.context,f,p,y),!0;case 5:return w.fn.call(w.context,f,p,y,v),!0;case 6:return w.fn.call(w.context,f,p,y,v,$),!0}for(T=1,k=new Array(S-1);T<S;T++)k[T-1]=arguments[T];w.fn.apply(w.context,k)}else{var R=w.length,_;for(T=0;T<R;T++)switch(w[T].once&&this.removeListener(m,w[T].fn,void 0,!0),S){case 1:w[T].fn.call(w[T].context);break;case 2:w[T].fn.call(w[T].context,f);break;case 3:w[T].fn.call(w[T].context,f,p);break;case 4:w[T].fn.call(w[T].context,f,p,y);break;default:if(!k)for(_=1,k=new Array(S-1);_<S;_++)k[_-1]=arguments[_];w[T].fn.apply(w[T].context,k)}}return!0},c.prototype.on=function(m,f,p){return r(this,m,f,p,!1)},c.prototype.once=function(m,f,p){return r(this,m,f,p,!0)},c.prototype.removeListener=function(m,f,p,y){var v=n?n+m:m;if(!this._events[v])return this;if(!f)return i(this,v),this;var $=this._events[v];if($.fn)$.fn===f&&(!y||$.once)&&(!p||$.context===p)&&i(this,v);else{for(var x=0,w=[],S=$.length;x<S;x++)($[x].fn!==f||y&&!$[x].once||p&&$[x].context!==p)&&w.push($[x]);w.length?this._events[v]=w.length===1?w[0]:w:i(this,v)}return this},c.prototype.removeAllListeners=function(m){var f;return m?(f=n?n+m:m,this._events[f]&&i(this,f)):(this._events=new a,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,e.exports=c})(VA)),VA.exports}var PRs=RRs();const _Rs=il(PRs);var Ph=new _Rs,SP="recharts.syncEvent.tooltip",gB="recharts.syncEvent.brush",pX=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!hr(n))return e[n]}},jRs={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},fX=Ka({name:"options",initialState:jRs,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),NRs=fX.reducer,{createEventEmitter:DRs}=fX.actions;function MRs(e){return e.tooltip.syncInteraction}var ERs={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},gX=Ka({name:"chartData",initialState:ERs,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:n,endIndex:a}=t.payload;n!=null&&(e.dataStartIndex=n),a!=null&&(e.dataEndIndex=a)}}}),{setChartData:hB,setDataStartEndIndexes:IRs,setComputedData:i6s}=gX.actions,ORs=gX.reducer,LRs=["x","y"];function yB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Sm(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
953t%2?yB(Object(n),!0).forEach(function(a){URs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function URs(e,t,n){return(t=BRs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BRs(e){var t=FRs(e,"string");return typeof t=="symbol"?t:t+""}function FRs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function zRs(e,t){if(e==null)return{};var n,a,s=qRs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function qRs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function HRs(){var e=Ge(d2),t=Ge(u2),n=gn(),a=Ge(uY),s=Ge(yl),r=Cu(),i=g0(),c=Ge(d=>d.rootProps.className);h.useEffect(()=>{if(e==null)return Wp;var d=(m,f,p)=>{if(t!==p&&e===m){if(f.payload.active===!1){n(jg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(a==="index"){var y;if(i&&f!==null&&f!==void 0&&(y=f.payload)!==null&&y!==void 0&&y.coordinate&&f.payload.sourceViewBox){var v=f.payload.coordinate,{x:$,y:x}=v,w=zRs(v,LRs),{x:S,y:k,width:T,height:R}=f.payload.sourceViewBox,_=Sm(Sm({},w),{},{x:i.x+(T?($-S)/T:0)*i.width,y:i.y+(R?(x-k)/R:0)*i.height});n(Sm(Sm({},f),{},{payload:Sm(Sm({},f.payload),{},{coordinate:_})}))}else n(f);return}if(s!=null){var P;if(typeof a=="function"){var j={activeTooltipIndex:f.payload.index==null?void 0:Number(f.payload.index),isTooltipActive:f.payload.active,activeIndex:f.payload.index==null?void 0:Number(f.payload.index),activeLabel:f.payload.label,activeDataKey:f.payload.dataKey,activeCoordinate:f.payload.coordinate},N=a(s,j);P=s[N]}else a==="value"&&(P=s.find(q=>String(q.value)===f.payload.label));var{coordinate:I}=f.payload;if(I==null||i==null){n(jg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(P==null){n(jg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:f.payload.sourceViewBox,graphicalItemId:void 0}));return}var{x:z,y:E}=I,L=Math.min(z,i.x+i.width),O=Math.min(E,i.y+i.height),V={x:r==="horizontal"?P.coordinate:L,y:r==="horizontal"?O:P.coordinate},ne=jg({active:f.payload.active,coordinate:V,dataKey:f.payload.dataKey,index:String(P.index),label:f.payload.label,sourceViewBox:f.payload.sourceViewBox,graphicalItemId:f.payload.graphicalItemId});n(ne)}}};return Ph.on(SP,d),()=>{Ph.off(SP,d)}},[c,n,t,e,a,s,r,i])}function VRs(){var e=Ge(d2),t=Ge(u2),n=gn();h.useEffect(()=>{if(e==null)return Wp;var a=(s,r,i)=>{t!==i&&e===s&&n(IRs(r))};return Ph.on(gB,a),()=>{Ph.off(gB,a)}},[n,t,e])}function KRs(){var e=gn();h.useEffect(()=>{e(DRs())},[e]),HRs(),VRs()}function GRs(e,t,n,a,s,r){var i=Ge($=>tRs($,e,t)),c=Ge(OTs),d=Ge(u2),m=Ge(d2),f=Ge(uY),p=Ge(MRs),y=p?.sourceViewBox!=null,v=g0();h.useEffect(()=>{if(!y&&m!=null&&d!=null){var $=jg({active:r,coordinate:n,dataKey:i,index:s,label:typeof a=="number"?String(a):a,sourceViewBox:v,graphicalItemId:c});Ph.emit(SP,m,$,d)}},[y,n,i,c,s,a,d,m,f,r,v])}function vB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function bB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?vB(Object(n),!0).forEach(function(a){WRs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function WRs(e,t,n){return(t=YRs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function YRs(e){var t=QRs(e,"string");return typeof t=="symbol"?t:t+""}function QRs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function XRs(e){return e.dataKey}function ZRs(e,t){return h.isValidElement(e)?h.cloneElement(e,t):typeof e=="function"?h.createElement(e,t):
953h.createElement(x0s,t)}var xB=[],JRs={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function hX(e){var t,n,a=Va(e,JRs),{active:s,allowEscapeViewBox:r,animationDuration:i,animationEasing:c,content:d,filterNull:m,isAnimationActive:f,offset:p,payloadUniqBy:y,position:v,reverseDirection:$,useTranslate3d:x,wrapperStyle:w,cursor:S,shared:k,trigger:T,defaultIndex:R,portal:_,axisId:P}=a,j=gn(),N=typeof R=="number"?String(R):R;h.useEffect(()=>{j(VAs({shared:k,trigger:T,axisId:P,active:s,defaultIndex:N}))},[j,k,T,P,s,N]);var I=g0(),z=BW(),E=UAs(k),{activeIndex:L,isActive:O}=(t=Ge(we=>oRs(we,E,T,N)))!==null&&t!==void 0?t:{},V=Ge(we=>aRs(we,E,T,N)),ne=Ge(we=>dX(we,E,T,N)),q=Ge(we=>nRs(we,E,T,N)),M=V,F=TRs(),H=(n=s??O)!==null&&n!==void 0?n:!1,[ee,B]=WG([M,H]),G=E==="axis"?ne:void 0;GRs(E,T,q,G,L,H);var Q=_??F;if(Q==null||I==null||E==null)return null;var de=M??xB;H||(de=xB),m&&de.length&&(de=qG(de.filter(we=>we.value!=null&&(we.hide!==!0||a.includeHidden)),y,XRs));var Y=de.length>0,pe=bB(bB({},a),{},{payload:de,label:G,active:H,activeIndex:L,coordinate:q,accessibilityLayer:z}),se=h.createElement(j0s,{allowEscapeViewBox:r,animationDuration:i,animationEasing:c,isAnimationActive:f,active:H,coordinate:q,hasPayload:Y,offset:p,position:v,reverseDirection:$,useTranslate3d:x,viewB
953ox:I,wrapperStyle:w,lastBoundingBox:ee,innerRef:B,hasPortalFromProps:!!_},ZRs(d,pe));return h.createElement(h.Fragment,null,li.createPortal(se,Q),H&&h.createElement(ARs,{cursor:S,tooltipEventType:E,coordinate:q,payload:de,index:L}))}var yX=e=>null;yX.displayName="Cell";function ePs(e,t,n){return(t=tPs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tPs(e){var t=nPs(e,"string");return typeof t=="symbol"?t:t+""}function nPs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class aPs{constructor(t){ePs(this,"cache",new Map),this.maxSize=t}get(t){var n=this.cache.get(t);return n!==void 0&&(this.cache.delete(t),this.cache.set(t,n)),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var a=this.cache.keys().next().value;a!=null&&this.cache.delete(a)}this.cache.set(t,n)}clear(){this.cache.clear()}size(){return this.cache.size}}function $B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function oPs(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?$B(Object(n),!0).forEach(function(a){sPs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$B(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function sPs(e,t,n){return(t=rPs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rPs(e){var t=iPs(e,"string");return typeof t=="symbol"?t:t+""}function iPs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var lPs={cacheSize:2e3,enableCache:!0},vX=oPs({},lPs),wB=new aPs(vX.cacheSize),cPs={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},kB="recharts_measurement_span";function dPs(e,t){var n=t.fontSize||"",a=t.fontFamily||"",s=t.fontWeight||"",r=t.fontStyle||"",i=t.letterSpacing||"",c=t.textTransform||"";return"".concat(e,"|").concat(n,"|").concat(a,"|").concat(s,"|").concat(r,"|").concat(i,"|").concat(c)}var CB=(e,t)=>{try{var n=document.getElementById(kB);n||(n=document.createElement("span"),n.setAttribute("id",kB),n.setAttribute("aria-hidden","true"),document.body.appendChild(n)),Object.assign(n.style,cPs,t),n.textContent="".concat(e);var a=n.getBoundingClientRect();return{width:a.width,height:a.height}}catch{return{width:0,height:0}}},qg=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||wy.isSsr)return{width:0,height:0};if(!vX.enableCache)return CB(t,n);var a=dPs(t,n),s=wB.get(a);if(s)return s;var r=CB(t,n);return wB.set(a,r),r},bX;function uPs(e,t,n){return(t=mPs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mPs(e){var t=pPs(e,"string");return typeof t=="symbol"?t:t+""}function pPs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var SB=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,AB=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,fPs=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,gPs=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,hPs={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},yPs=["cm","mm","pt","pc","in","Q","px"];function vPs(e){return yPs.includes(e)}var Lm="NaN";function bPs(e,t){return e*hPs[t]}class Ca{static parse(t){var n,[,a,s]=(n=gPs.exec(t))!==null&&n!==void 0?n:[];return a==null?Ca.NaN:new Ca(parseFloat(a),s??"")}constructor(t,n){this.num=t,this.unit=n,this.num=t,this.unit=n,hr(t)&&(this.unit=""),n!==""&&!fPs.test(n)&&(this.num=NaN,this.unit=""),vPs(n)&&(this.num=bPs(t,n),this.unit="px")}add(t){return this.unit!==t.unit?new Ca(NaN,""):new Ca(this.num+t.num,this.unit)}subtract(t){return this.unit!==t.unit?new Ca(NaN,""):new Ca(this.num-t.num,this.unit)}multiply(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ca(NaN,""):new Ca(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new Ca(NaN,""):new Ca(this.num/t.num,this.unit||t.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return hr(this.num)}}
953bX=Ca;uPs(Ca,"NaN",new bX(NaN,""));function xX(e){if(e==null||e.includes(Lm))return Lm;for(var t=e;t.includes("*")||t.includes("/");){var n,[,a,s,r]=(n=SB.exec(t))!==null&&n!==void 0?n:[],i=Ca.parse(a??""),c=Ca.parse(r??""),d=s==="*"?i.multiply(c):i.divide(c);if(d.isNaN())return Lm;t=t.replace(SB,d.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var m,[,f,p,y]=(m=AB.exec(t))!==null&&m!==void 0?m:[],v=Ca.parse(f??""),$=Ca.parse(y??""),x=p==="+"?v.add($):v.subtract($);if(x.isNaN())return Lm;t=t.replace(AB,x.toString())}return t}var TB=/\(([^()]*)\)/;function xPs(e){for(var t=e,n;(n=TB.exec(t))!=null;){var[,a]=n;t=t.replace(TB,xX(a))}return t}function $Ps(e){var t=e.replace(/\s+/g,"");return t=xPs(t),t=xX(t),t}function wPs(e){try{return $Ps(e)}catch{return Lm}}function KA(e){var t=wPs(e.slice(5,-1));return t===Lm?"":t}var kPs=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],CPs=["dx","dy","angle","className","breakAll"];function AP(){return AP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},AP.apply(null,arguments)}function RB(e,t){if(e==null)return{};var n,a,s=SPs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function SPs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var $X=/[ \f\n\r\t\v\u2028\u2029]+/,wX=e=>{var{children:t,breakAll:n,style:a}=e;try{var s=[];$n(t)||(n?s=t.toString().split(""):s=t.toString().split($X));var r=s.map(c=>({word:c,width:qg(c,a).width})),i=n?0:qg(" ",a).width;return{wordsWithComputedWidth:r,spaceWidth:i}}catch{return null}};function kX(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function APs(e){return $n(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var CX=(e,t,n,a)=>e.reduce((s,r)=>{var{word:i,width:c}=r,d=s[s.length-1];if(d&&c!=null&&(t==null||a||d.width+c+n<Number(t)))d.words.push(i),d.width+=c+n;else{var m={words:[i],width:c};s.push(m)}return s},[]),SX=e=>e.reduce((t,n)=>t.width>n.width?t:n),TPs="â¦",PB=(e,t,n,a,s,r,i,c)=>{var d=e.slice(0,t),m=wX({breakAll:n,style:a,children:d+TPs});if(!m)return[!1,[]];var f=CX(m.wordsWithComputedWidth,r,i,c),p=f.length>s||SX(f).width>Number(r);return[p,f]},RPs=(e,t,n,a,s)=>{var{maxLines:r,children:i,style:c,breakAll:d}=e,m=Fe(r),f=String(i),p=CX(t,a,n,s);if(!m||s)return p;var y=p.length>r||SX(p).width>Number(a);if(!y)return p;for(var v=0,$=f.length-1,x=0,w;v<=$&&x<=f.length-1;){var S=Math.floor((v+$)/2),k=S-1,[T,R]=PB(f,k,d,c,r,a,n,s),[_]=PB(f,S,d,c,r,a,n,s);if(!T&&!_&&(v=S+1),T&&_&&($=S-1),!T&&_){w=R;break}x++}return w||p},_B=e=>{var t=$n(e)?[]:e.toString().split($X);return[{words:t,width:void 0}]},PPs=e=>{var{width:t,scaleToFit:n,children:a,style:s,breakAll:r,maxLines:i}=e;if((t||n)&&!wy.isSsr){var c,d,m=wX({breakAll:r,children:a,style:s});if(m){var{wordsWithComputedWidth:f,spaceWidth:p}=m;c=f,d=p}else return _B(a);return RPs({breakAll:r,children:a,maxLines:i,style:s},c,d,t,!!n)}return _B(a)},AX="#808080",_Ps={angle:0,breakAll:!1,capHeight:"0.71em",fill:AX,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},nN=h.forwardRef((e,t)=>{var n=Va(e,_Ps),{x:a,y:s,lineHeight:r,capHeight:i,fill:c,scaleToFit:d,textAnchor:m,verticalAnchor:f}=n,p=RB(n,kPs),y=h.useMemo(()=>PPs({breakAll:p.breakAll,children:p.children,maxLines:p.maxLines,scaleToFit:d,style:p.style,width:p.width}),[p.breakAll,p.children,p.maxLines,d,p.style,p.width]),{dx:v,dy:$,angle:x,className:w,breakAll:S}=p,k=RB(p,CPs);if(!si(a)||!si(s)||y.length===0)return null;var T=Number(a)+(Fe(v)?v:0),R=Number(s)+(Fe($)?$:0);if(!ht(T)||!ht(R))return null;var _;switch(f){case"start":_=KA("calc(".concat(i,")"));break;case"middle":_=KA("calc(".concat((y.length-1)/2," * -").concat(r," + (").concat(i," / 2))"));break;default:_=KA("calc(".concat(y.length-1," * -").concat(r,")"));break}var P=[],j=y[0];if(d&&j!=null){var N=j.width,{width:I}=p;P.push("scale(".concat(Fe(I)&&Fe(N)?I/N:1,")"))}
953return x&&P.push("rotate(".concat(x,", ").concat(T,", ").concat(R,")")),P.length&&(k.transform=P.join(" ")),h.createElement("text",AP({},no(k),{ref:t,x:T,y:R,className:Lt("recharts-text",w),textAnchor:m,fill:c.includes("url")?AX:c}),y.map((z,E)=>{var L=z.words.join(S?"":" ");return h.createElement("tspan",{x:T,dy:E===0?_:r,key:"".concat(L,"-").concat(E)},L)}))});nN.displayName="Text";function jB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Lr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?jB(Object(n),!0).forEach(function(a){jPs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function jPs(e,t,n){return(t=NPs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NPs(e){var t=DPs(e,"string");return typeof t=="symbol"?t:t+""}function DPs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var MPs=e=>{var{viewBox:t,position:n,offset:a=0,parentViewBox:s}=e,{x:r,y:i,height:c,upperWidth:d,lowerWidth:m}=Zj(t),f=r,p=r+(d-m)/2,y=(f+p)/2,v=(d+m)/2,$=f+d/2,x=c>=0?1:-1,w=x*a,S=x>0?"end":"start",k=x>0?"start":"end",T=d>=0?1:-1,R=T*a,_=T>0?"end":"start",P=T>0?"start":"end",j=s;if(n==="top"){var N={x:f+d/2,y:i-w,horizontalAnchor:"middle",verticalAnchor:S};return j&&(N.height=Math.max(i-j.y,0),N.width=d),N}if(n==="bottom"){var I={x:p+m/2,y:i+c+w,horizontalAnchor:"middle",verticalAnchor:k};return j&&(I.height=Math.max(j.y+j.height-(i+c),0),I.width=m),I}if(n==="left"){var z={x:y-R,y:i+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return j&&(z.width=Math.max(z.x-j.x,0),z.height=c),z}if(n==="right"){var E={x:y+v+R,y:i+c/2,horizontalAnchor:P,verticalAnchor:"middle"};return j&&(E.width=Math.max(j.x+j.width-E.x,0),E.height=c),E}var L=j?{width:v,height:c}:{};return n==="insideLeft"?Lr({x:y+R,y:i+c/2,horizontalAnchor:P,verticalAnchor:"middle"},L):n==="insideRight"?Lr({x:y+v-R,y:i+c/2,horizontalAnchor:_,verticalAnchor:"middle"},L):n==="insideTop"?Lr({x:f+d/2,y:i+w,horizontalAnchor:"middle",verticalAnchor:k},L):n==="insideBottom"?Lr({x:p+m/2,y:i+c-w,horizontalAnchor:"middle",verticalAnchor:S},L):n==="insideTopLeft"?Lr({x:f+R,y:i+w,horizontalAnchor:P,verticalAnchor:k},L):n==="insideTopRight"?Lr({x:f+d-R,y:i+w,horizontalAnchor:_,verticalAnchor:k},L):n==="insideBottomLeft"?Lr({x:p+R,y:i+c-w,horizontalAnchor:P,verticalAnchor:S},L):n==="insideBottomRight"?Lr({x:p+m-R,y:i+c-w,horizontalAnchor:_,verticalAnchor:S},L):n&&typeof n=="object"&&(Fe(n.x)||KR(n.x))&&(Fe(n.y)||KR(n.y))?Lr({x:r+yr(n.x,v),y:i+yr(n.y,c),horizontalAnchor:"end",verticalAnchor:"end"},L):Lr({x:$,y:i+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},L)},EPs=["labelRef"],IPs=["content"];function NB(e,t){if(e==null)return{};var n,a,s=OPs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function OPs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function DB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Ng(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?DB(Object(n),!0).forEach(function(a){LPs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):DB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}
953function LPs(e,t,n){return(t=UPs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function UPs(e){var t=BPs(e,"string");return typeof t=="symbol"?t:t+""}function BPs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Hi(){return Hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Hi.apply(null,arguments)}var TX=h.createContext(null),FPs=e=>{var{x:t,y:n,upperWidth:a,lowerWidth:s,width:r,height:i,children:c}=e,d=h.useMemo(()=>({x:t,y:n,upperWidth:a,lowerWidth:s,width:r,height:i}),[t,n,a,s,r,i]);return h.createElement(TX.Provider,{value:d},c)},RX=()=>{var e=h.useContext(TX),t=g0();return e||(t?Zj(t):void 0)},zPs=h.createContext(null),qPs=()=>{var e=h.useContext(zPs),t=Ge(hY);return e||t},HPs=e=>{var{value:t,formatter:n}=e,a=$n(e.children)?t:e.children;return typeof n=="function"?n(a):a},aN=e=>e!=null&&typeof e=="function",VPs=(e,t)=>{var n=Co(t-e),a=Math.min(Math.abs(t-e),360);return n*a},KPs=(e,t,n,a,s)=>{var{offset:r,className:i}=e,{cx:c,cy:d,innerRadius:m,outerRadius:f,startAngle:p,endAngle:y,clockWise:v}=s,$=(m+f)/2,x=VPs(p,y),w=x>=0?1:-1,S,k;switch(t){case"insideStart":S=p+w*r,k=v;break;case"insideEnd":S=y-w*r,k=!v;break;case"end":S=y+w*r,k=v;break;default:throw new Error("Unsupported position ".concat(t))}k=x<=0?k:!k;var T=Sa(c,d,$,S),R=Sa(c,d,$,S+(k?1:-1)*359),_="M".concat(T.x,",").concat(T.y,` 954 A`).concat($,",").concat($,",0,1,").concat(k?0:1,`, 955 `).concat(R.x,",").concat(R.y),P=$n(e.id)?hh("recharts-radial-line-"):e.id;return h.createElement("text",Hi({},a,{dominantBaseline:"central",className:Lt("recharts-radial-bar-label",i)}),h.createElement("defs",null,h.createElement("path",{id:P,d:_})),h.createElement("textPath",{xlinkHref:"#".concat(P)},n))},GPs=(e,t,n)=>{var{cx:a,cy:s,innerRadius:r,outerRadius:i,startAngle:c,endAngle:d}=e,m=(c+d)/2;if(n==="outside"){var{x:f,y:p}=Sa(a,s,i+t,m);return{x:f,y:p,textAnchor:f>=a?"start":"end",verticalAnchor:"middle"}}if(n==="center")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"middle"};if(n==="centerTop")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"start"};if(n==="centerBottom")return{x:a,y:s,textAnchor:"middle",verticalAnchor:"end"};var y=(r+i)/2,{x:v,y:$}=Sa(a,s,y,m);return{x:v,y:$,textAnchor:"middle",verticalAnchor:"middle"}},gx=e=>e!=null&&"cx"in e&&Fe(e.cx),WPs={angle:0,offset:5,zIndex:la.label,position:"middle",textBreakAll:!1};function YPs(e){if(!gx(e))return e;var{cx:t,cy:n,outerRadius:a}=e,s=a*2;return{x:t-a,y:n-a,width:s,upperWidth:s,lowerWidth:s,height:s}}function Jl(e){var t=Va(e,WPs),{viewBox:n,parentViewBox:a,position:s,value:r,children:i,content:c,className:d="",textBreakAll:m,labelRef:f}=t,p=qPs(),y=RX(),v=s==="center"?y:p??y,$,x,w;n==null?$=v:gx(n)?$=n:$=Zj(n);var S=YPs($);if(!$||$n(r)&&$n(i)&&!h.isValidElement(c)&&typeof c!="function")return null;var k=Ng(Ng({},t),{},{viewBox:$});if(h.isValidElement(c)){var{labelRef:T}=k,R=NB(k,EPs);return h.cloneElement(c,R)}if(typeof c=="function"){var{content:_}=k,P=NB(k,IPs);if(x=h.createElement(c,P),h.isValidElement(x))return x}else x=HPs(t);var j=no(t);if(gx($)){if(s==="insideStart"||s==="insideEnd"||s==="end")return KPs(t,s,x,j,$);w=GPs($,t.offset,t.position)}else{if(!S)return null;var N=MPs({viewBox:S,position:s,offset:t.offset,parentViewBox:gx(a)?void 0:a});w=Ng(Ng({x:N.x,y:N.y,textAnchor:N.horizontalAnchor,verticalAnchor:N.verticalAnchor},N.width!==void 0?{width:N.width}:{}),N.height!==void 0?{height:N.height}:{})}return h.createElement(Fs,{zIndex:t.zIndex},h.createElement(nN,Hi({ref:f,className:Lt("recharts-label",d)},j,w,{textAnchor:kX(j.textAnchor)?j.textAnchor:w.textAnchor,breakAll:m}),x))}Jl.displayName="Label";var QPs=(e,t,n)=>{if(!e)return null;var a={viewBox:t,labelRef:n};return e===!0?h.createElement(Jl,Hi({key:"label-implicit"},a)):si(e)?h.createElement(Jl,Hi({key:"label-implicit",value:e},a)):h.isValidElement(e)?e.type===Jl?h.cloneElement(e,Ng({key:"label-implicit"},a)):h.createElement(Jl,Hi({key:"label-implicit",content:e},a)):aN(e)?h.createElement(Jl,Hi({key:"label-implicit",content:e},a)):e&&typeof e=="object"?h.createElement(Jl,Hi({},e,{key:"label-implicit"},a)):null};function XPs(e){var{label:t,labelRef:n}=e,a=RX();return QPs(t,a,n)||null}var ZPs=["valueAccessor"],JPs=["dataKey","clockWise","id","textBreakAll","zIndex"];function M$(){return M$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},M$.apply(null,arguments)}function MB(e,t){if(e==null)return{};var n,a,s=e_s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function e_s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var t_s=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(APs(t))return t},PX=h.createContext(void 0),_X=PX.Provider,jX=h.createContext(void 0);jX.Provider;function n_s(){return h.useContext(PX)}function a_s(){return h.useContext(jX)}function hx(e){var{valueAccessor:t=t_s}=e,n=MB(e,ZPs),{dataKey:a,clockWise:s,id:r,textBreakAll:i,zIndex:c}=n,d=MB(n,JPs),m=n_s(),f=a_s(),p=m||f;
955return!p||!p.length?null:h.createElement(Fs,{zIndex:c??la.label},h.createElement(Fa,{className:"recharts-label-list"},p.map((y,v)=>{var $,x=$n(a)?t(y,v):jn(y.payload,a),w=$n(r)?{}:{id:"".concat(r,"-").concat(v)};return h.createElement(Jl,M$({key:"label-".concat(v)},no(y),d,w,{fill:($=n.fill)!==null&&$!==void 0?$:y.fill,parentViewBox:y.parentViewBox,value:x,textBreakAll:i,viewBox:y.viewBox,index:v,zIndex:0}))})))}hx.displayName="LabelList";function NX(e){var{label:t}=e;return t?t===!0?h.createElement(hx,{key:"labelList-implicit"}):h.isValidElement(t)||aN(t)?h.createElement(hx,{key:"labelList-implicit",content:t}):typeof t=="object"?h.createElement(hx,M$({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function TP(){return TP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},TP.apply(null,arguments)}var DX=e=>{var{cx:t,cy:n,r:a,className:s}=e,r=Lt("recharts-dot",s);return Fe(t)&&Fe(n)&&Fe(a)?h.createElement("circle",TP({},Is(e),zj(e),{className:r,cx:t,cy:n,r:a})):null},o_s={radiusAxis:{},angleAxis:{}},MX=Ka({name:"polarAxis",initialState:o_s,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:l6s,removeRadiusAxis:c6s,addAngleAxis:d6s,removeAngleAxis:u6s}=MX.actions,s_s=MX.reducer;function r_s(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var GA={exports:{}},Yt={};/** @license React v17.0.2 956 * react-is.production.min.js 957 * 958 * Copyright (c) Facebook, Inc. and its affiliates. 959 * 960 * This source code is licensed under the MIT license found in the 961 * LICENSE file in the root directory of this source tree. 962 */var EB;function i_s(){if(EB)return Yt;EB=1;var e=60103,t=60106,n=60107,a=60108,s=60114,r=60109,i=60110,c=60112,d=60113,m=60120,f=60115,p=60116,y=60121,v=60122,$=60117,x=60129,w=60131;if(typeof Symbol=="function"&&Symbol.for){var S=Symbol.for;e=S("react.element"),t=S("react.portal"),n=S("react.fragment"),a=S("react.strict_mode"),s=S("react.profiler"),r=S("react.provider"),i=S("react.context"),c=S("react.forward_ref"),d=S("react.suspense"),m=S("react.suspense_list"),f=S("react.memo"),p=S("react.lazy"),y=S("react.block"),v=S("react.server.block"),$=S("react.fundamental"),x=S("react.debug_trace_mode"),w=S("react.legacy_hidden")}function k(O){if(typeof O=="object"&&O!==null){var V=O.$$typeof;switch(V){case e:switch(O=O.type,O){case n:case s:case a:case d:case m:return O;default:switch(O=O&&O.$$typeof,O){case i:case c:case p:case f:case r:return O;default:return V}}case t:return V}}}var T=r,R=e,_=c,P=n,j=p,N=f,I=t,z=s,E=a,L=d;return Yt.ContextConsumer=i,Yt.ContextProvider=T,Yt.Element=R,Yt.ForwardRef=_,Yt.Fragment=P,Yt.Lazy=j,Yt.Memo=N,Yt.Portal=I,Yt.Profiler=z,Yt.StrictMode=E,Yt.Suspense=L,Yt.isAsyncMode=function(){return!1},Yt.isConcurrentMode=function(){return!1},Yt.isContextConsumer=function(O){return k(O)===i},Yt.isContextProvider=function(O){return k(O)===r},Yt.isElement=function(O){return typeof O=="object"&&O!==null&&O.$$typeof===e},Yt.isForwardRef=function(O){return k(O)===c},Yt.isFragment=function(O){return k(O)===n},Yt.isLazy=function(O){return k(O)===p},Yt.isMemo=function(O){return k(O)===f},Yt.isPortal=function(O){return k(O)===t},Yt.isProfiler=function(O){return k(O)===s},Yt.isStrictMode=function(O){return k(O)===a},Yt.isSuspense=function(O){return k(O)===d},Yt.isValidElementType=function(O){return typeof O=="string"||typeof O=="function"||O===n||O===s||O===x||O===a||O===d||O===m||O===w||typeof O=="object"&&O!==null&&(O.$$typeof===p||O.$$typeof===f||O.$$typeof===r||O.$$typeof===i||O.$$typeof===c||O.$$typeof===$||O.$$typeof===y||O[0]===v)},Yt.typeOf=k,Yt}var IB;function l_s(){return IB||(IB=1,GA.exports=i_s()),GA.exports}var c_s=l_s(),OB=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",LB=null,WA=null,EX=e=>{if(e===LB&&Array.isArray(WA))return WA;var t=[];
962return h.Children.forEach(e,n=>{$n(n)||(c_s.isFragment(n)?t=t.concat(EX(n.props.children)):t.push(n))}),WA=t,LB=e,t};function d_s(e,t){var n=[],a=[];return Array.isArray(t)?a=t.map(s=>OB(s)):a=[OB(t)],EX(e).forEach(s=>{var r=vp(s,"type.displayName")||vp(s,"type.name");r&&a.indexOf(r)!==-1&&n.push(s)}),n}var IX=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,YA={},UB;function u_s(){return UB||(UB=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const s=n[Symbol.toStringTag];return s==null||!Object.getOwnPropertyDescriptor(n,Symbol.toStringTag)?.writable?!1:n.toString()===`[object ${s}]`}let a=n;for(;Object.getPrototypeOf(a)!==null;)a=Object.getPrototypeOf(a);return Object.getPrototypeOf(n)===a}e.isPlainObject=t})(YA)),YA}var QA,BB;function m_s(){return BB||(BB=1,QA=u_s().isPlainObject),QA}var p_s=m_s();const f_s=il(p_s);var FB,zB,qB,HB,VB;function KB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function GB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?KB(Object(n),!0).forEach(function(a){g_s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function g_s(e,t,n){return(t=h_s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h_s(e){var t=y_s(e,"string");return typeof t=="symbol"?t:t+""}function y_s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function E$(){return E$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},E$.apply(null,arguments)}function mg(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var WB=(e,t,n,a,s)=>{var r=n-a,i;return i=An(FB||(FB=mg(["M ",",",""])),e,t),i+=An(zB||(zB=mg(["L ",",",""])),e+n,t),i+=An(qB||(qB=mg(["L ",",",""])),e+n-r/2,t+s),i+=An(HB||(HB=mg(["L ",",",""])),e+n-r/2-a,t+s),i+=An(VB||(VB=mg(["L ",","," Z"])),e,t),i},v_s={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},b_s=e=>{var t=Va(e,v_s),{x:n,y:a,upperWidth:s,lowerWidth:r,height:i,className:c}=t,{animationEasing:d,animationDuration:m,animationBegin:f,isUpdateAnimationActive:p}=t,y=h.useRef(null),[v,$]=h.useState(-1),x=h.useRef(s),w=h.useRef(r),S=h.useRef(i),k=h.useRef(n),T=h.useRef(a),R=x0(e,"trapezoid-");if(h.useEffect(()=>{if(y.current&&y.current.getTotalLength)try{var V=y.current.getTotalLength();V&&$(V)}catch{}},[]),n!==+n||a!==+a||s!==+s||r!==+r||i!==+i||s===0&&r===0||i===0)return null;var _=Lt("recharts-trapezoid",c);if(!p)return h.createElement("g",null,h.createElement("path",E$({},no(t),{className:_,d:WB(n,a,s,r,i)})));var P=x.current,j=w.current,N=S.current,I=k.current,z=T.current,E="0px ".concat(v===-1?1:v,"px"),L="".concat(v,"px ").concat(v,"px"),O=FW(["strokeDasharray"],m,d);return h.createElement(b0,{animationId:R,key:R,canBegin:v>0,duration:m,easing:d,isActive:p,begin:f},V=>{var ne=bn(P,s,V),q=bn(j,r,V),M=bn(N,i,V),F=bn(I,n,V),H=bn(z,a,V);y.current&&(x.current=ne,w.current=q,S.current=M,k.current=F,T.current=H);var ee=V>0?{transition:O,strokeDasharray:L}:{strokeDasharray:E};return h.createElement("path",E$({},no(t),{className:_,d:WB(F,H,ne,q,M),ref:y,style:GB(GB({},ee),t.style)}))})},x_s=["option","shapeType","activeClassName","inActiveClassName"];function $_s(e,t){if(e==null)return{};var n,a,s=w_s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function w_s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function YB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function I$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
962t%2?YB(Object(n),!0).forEach(function(a){k_s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):YB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function k_s(e,t,n){return(t=C_s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C_s(e){var t=S_s(e,"string");return typeof t=="symbol"?t:t+""}function S_s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function A_s(e,t){return I$(I$({},t),e)}function T_s(e,t){return e==="symbols"}function QB(e){var{shapeType:t,elementProps:n}=e;switch(t){case"rectangle":return h.createElement(VW,n);case"trapezoid":return h.createElement(b_s,n);case"sector":return h.createElement(WW,n);case"symbols":if(T_s(t))return h.createElement(Fj,n);break;case"curve":return h.createElement(Fg,n);default:return null}}function R_s(e){return h.isValidElement(e)?e.props:e}function P_s(e){var{option:t,shapeType:n,activeClassName:a="recharts-active-shape",inActiveClassName:s="recharts-shape"}=e,r=$_s(e,x_s),i;if(h.isValidElement(t))i=h.cloneElement(t,I$(I$({},r),R_s(t)));else if(typeof t=="function")i=t(r,r.index);else if(f_s(t)&&typeof t!="boolean"){var c=A_s(t,r);i=h.createElement(QB,{shapeType:n,elementProps:c})}else{var d=r;i=h.createElement(QB,{shapeType:n,elementProps:d})}return r.isActive?h.createElement(Fa,{className:a},i):h.createElement(Fa,{className:s},i)}var OX=(e,t,n)=>{var a=gn();return(s,r)=>i=>{e?.(s,r,i),a(zQ({activeIndex:String(r),activeDataKey:t,activeCoordinate:s.tooltipPosition,activeGraphicalItemId:n}))}},LX=e=>{var t=gn();return(n,a)=>s=>{e?.(n,a,s),t(KAs())}},UX=(e,t,n)=>{var a=gn();return(s,r)=>i=>{e?.(s,r,i),a(GAs({activeIndex:String(r),activeDataKey:t,activeCoordinate:s.tooltipPosition,activeGraphicalItemId:n}))}};function BX(e){var{tooltipEntrySettings:t}=e,n=gn(),a=Ga(),s=h.useRef(null);return h.useLayoutEffect(()=>{a||(s.current===null?n(zAs(t)):s.current!==t&&n(qAs({prev:s.current,next:t})),s.current=t)},[t,n,a]),h.useLayoutEffect(()=>()=>{s.current&&(n(HAs(s.current)),s.current=null)},[n]),null}function FX(e){var{legendPayload:t}=e,n=gn(),a=Ga(),s=h.useRef(null);return h.useLayoutEffect(()=>{a||(s.current===null?n(Dws(t)):s.current!==t&&n(Mws({prev:s.current,next:t})),s.current=t)},[n,a,t]),h.useLayoutEffect(()=>()=>{s.current&&(n(Ews(s.current)),s.current=null)},[n]),null}var XA,__s=()=>{var[e]=h.useState(()=>hh("uid-"));return e},j_s=(XA=Lh.useId)!==null&&XA!==void 0?XA:__s;function N_s(e,t){var n=j_s();return t||(e?"".concat(e,"-").concat(n):n)}var D_s=h.createContext(void 0),zX=e=>{var{id:t,type:n,children:a}=e,s=N_s("recharts-".concat(n),t);return h.createElement(D_s.Provider,{value:s},a(s))},M_s={cartesianItems:[],polarItems:[]},qX=Ka({name:"graphicalItems",initialState:M_s,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:pn()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:a}=t.payload,s=Rs(e).cartesianItems.indexOf(n);s>-1&&(e.cartesianItems[s]=a)},prepare:pn()},removeCartesianGraphicalItem:{reducer(e,t){var n=Rs(e).cartesianItems.indexOf(t.payload);n>-1&&e.cartesianItems.splice(n,1)},prepare:pn()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:pn()},removePolarGraphicalItem:{reducer(e,t){var n=Rs(e).polarItems.indexOf(t.payload);n>-1&&e.polarItems.splice(n,1)},prepare:pn()},replacePolarGraphicalItem:{reducer(e,t){var{prev:n,next:a}=t.payload,s=Rs(e).polarItems.indexOf(n);s>-1&&(e.polarItems[s]=a)},prepare:pn()}}}),{addCartesianGraphicalItem:E_s,replaceCartesianGraphicalItem:I_s,removeCartesianGraphicalItem:O_s,addPolarGraphicalItem:m6s,removePolarGraphicalItem:p6s,replacePolarGraphicalItem:f6s}=qX.actions,L_s=qX.reducer,U_s=e=>{var t=gn(),n=h.useRef(null);return h.useLayoutEffect(()=>{n.current===null?t(E_s(e)):n.current!==e&&t(I_s({prev:n.current,next:e})),n.current=e},[t,e]),h.useLayoutEffect(()=>()=>{n.current&&(t(O_s(n.current)),n.current=null)},[t]),null},HX=h.memo(U_s),B_s=["points"];function XB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function ZA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
962t%2?XB(Object(n),!0).forEach(function(a){F_s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function F_s(e,t,n){return(t=z_s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z_s(e){var t=q_s(e,"string");return typeof t=="symbol"?t:t+""}function q_s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function O$(){return O$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},O$.apply(null,arguments)}function H_s(e,t){if(e==null)return{};var n,a,s=V_s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function V_s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function K_s(e){var{option:t,dotProps:n,className:a}=e;if(h.isValidElement(t))return h.cloneElement(t,n);if(typeof t=="function")return t(n);var s=Lt(a,typeof t!="boolean"?t.className:""),r=n??{},{points:i}=r,c=H_s(r,B_s);return h.createElement(DX,O$({},c,{className:s}))}function G_s(e,t){return e==null?!1:t?!0:e.length===1}function W_s(e){var{points:t,dot:n,className:a,dotClassName:s,dataKey:r,baseProps:i,needClip:c,clipPathId:d,zIndex:m=la.scatter}=e;if(!G_s(t,n))return null;var f=IX(n),p=Pvs(n),y=t.map(($,x)=>{var w,S,k=ZA(ZA(ZA({r:3},i),p),{},{index:x,cx:(w=$.x)!==null&&w!==void 0?w:void 0,cy:(S=$.y)!==null&&S!==void 0?S:void 0,dataKey:r,value:$.value,payload:$.payload,points:t});return h.createElement(K_s,{key:"dot-".concat(x),option:n,dotProps:k,className:s})}),v={};return c&&d!=null&&(v.clipPath="url(#clipPath-".concat(f?"":"dots-").concat(d,")")),h.createElement(Fs,{zIndex:m},h.createElement(Fa,O$({className:a},v),y))}function ZB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function JB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZB(Object(n),!0).forEach(function(a){Y_s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZB(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Y_s(e,t,n){return(t=Q_s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q_s(e){var t=X_s(e,"string");return typeof t=="symbol"?t:t+""}function X_s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var VX=0,Z_s={xAxis:{},yAxis:{},zAxis:{}},KX=Ka({name:"cartesianAxis",initialState:Z_s,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:pn()},replaceXAxis:{reducer(e,t){var{prev:n,next:a}=t.payload;e.xAxis[n.id]!==void 0&&(n.id!==a.id&&delete e.xAxis[n.id],e.xAxis[a.id]=a)},prepare:pn()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:pn()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:pn()},replaceYAxis:{reducer(e,t){var{prev:n,next:a}=t.payload;e.yAxis[n.id]!==void 0&&(n.id!==a.id&&delete e.yAxis[n.id],e.yAxis[a.id]=a)},prepare:pn()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:pn()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:pn()},replaceZAxis:{reducer(e,t){var{prev:n,next:a}=t.payload;e.zAxis[n.id]!==void 0&&(n.id!==a.id&&delete e.zAxis[n.id],e.zAxis[a.id]=a)},prepare:pn()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:pn()},updateYAxisWidth(e,t){var{id:n,width:a}=t.payload,s=e.yAxis[n];if(s){var r,i=s.widthHistory||[];if(i.length===3&&i[0]===i[2]&&a===i[1]&&a!==s.width&&Math.abs(a-((r=i[0])!==null&&r!==void 0?r:0))<=1)return;var c=[...i,a].slice(-3);e.yAxis[n]=JB(JB({},s),{},{width:a,widthHistory:c})}}}}),{addXAxis:J_s,replaceXAxis:ejs,removeXAxis:tjs,addYAxis:njs,replaceYAxis:ajs,removeYAxis:ojs,addZAxis:g6s,replaceZAxis:h6s,removeZAxis:y6s,updateYAxisWidth:sjs}=KX.actions,rjs=KX.reducer,ijs=ce([ma],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),ljs=ce([ijs,ml,pl],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),oN=()=>Ge(ljs),cjs=()=>Ge(zTs);function e6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function JA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
962t%2?e6(Object(n),!0).forEach(function(a){djs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):e6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function djs(e,t,n){return(t=ujs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ujs(e){var t=mjs(e,"string");return typeof t=="symbol"?t:t+""}function mjs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var pjs=e=>{var{point:t,childIndex:n,mainColor:a,activeDot:s,dataKey:r,clipPath:i}=e;if(s===!1||t.x==null||t.y==null)return null;var c={index:n,dataKey:r,cx:t.x,cy:t.y,r:4,fill:a??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=JA(JA(JA({},c),gy(s)),zj(s)),m;return h.isValidElement(s)?m=h.cloneElement(s,d):typeof s=="function"?m=s(d):m=h.createElement(DX,d),h.createElement(Fa,{className:"recharts-active-dot",clipPath:i},m)};function t6(e){var{points:t,mainColor:n,activeDot:a,itemDataKey:s,clipPath:r,zIndex:i=la.activeDot}=e,c=Ge(iu),d=cjs();if(t==null||d==null)return null;var m=t.find(f=>d.includes(f.payload));return $n(m)?null:h.createElement(Fs,{zIndex:i},h.createElement(pjs,{point:m,childIndex:Number(c),mainColor:n,dataKey:s,activeDot:a,clipPath:r}))}var n6=(e,t,n)=>{var a=n??e;if(!$n(a))return yr(a,t,0)},fjs=(e,t,n)=>{var a={},s=e.filter(R0),r=e.filter(m=>m.stackId==null),i=s.reduce((m,f)=>{var p=m[f.stackId];return p==null&&(p=[]),p.push(f),m[f.stackId]=p,m},a),c=Object.entries(i).map(m=>{var f,[p,y]=m,v=y.map(x=>x.dataKey),$=n6(t,n,(f=y[0])===null||f===void 0?void 0:f.barSize);return{stackId:p,dataKeys:v,barSize:$}}),d=r.map(m=>{var f=[m.dataKey].filter(y=>y!=null),p=n6(t,n,m.barSize);return{stackId:void 0,dataKeys:f,barSize:p}});return[...c,...d]};function a6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Eb(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?a6(Object(n),!0).forEach(function(a){gjs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function gjs(e,t,n){return(t=hjs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hjs(e){var t=yjs(e,"string");return typeof t=="symbol"?t:t+""}function yjs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vjs(e,t,n,a,s){var r,i=a.length;if(!(i<1)){var c=yr(e,n,0,!0),d,m=[];if(ht((r=a[0])===null||r===void 0?void 0:r.barSize)){var f=!1,p=n/i,y=a.reduce((k,T)=>k+(T.barSize||0),0);y+=(i-1)*c,y>=n&&(y-=(i-1)*c,c=0),y>=n&&p>0&&(f=!0,p*=.9,y=i*p);var v=(n-y)/2>>0,$={offset:v-c,size:0};d=a.reduce((k,T)=>{var R,_={stackId:T.stackId,dataKeys:T.dataKeys,position:{offset:$.offset+$.size+c,size:f?p:(R=T.barSize)!==null&&R!==void 0?R:0}},P=[...k,_];return $=_.position,P},m)}else{var x=yr(t,n,0,!0);n-2*x-(i-1)*c<=0&&(c=0);var w=(n-2*x-(i-1)*c)/i;w>1&&(w>>=0);var S=ht(s)?Math.min(w,s):w;d=a.reduce((k,T,R)=>[...k,{stackId:T.stackId,dataKeys:T.dataKeys,position:{offset:x+(w+c)*R+(w-S)/2,size:S}}],m)}return d}}var bjs=(e,t,n,a,s,r,i)=>{var c=$n(i)?t:i,d=vjs(n,a,s!==r?s:r,e,c);return s!==r&&d!=null&&(d=d.map(m=>Eb(Eb({},m),{},{position:Eb(Eb({},m.position),{},{offset:m.position.offset-s/2})}))),d},xjs=(e,t)=>{var n=T0(t);if(!(!e||n==null||t==null)){var{stackId:a}=t;if(a!=null){var s=e[a];if(s){var{stackedData:r}=s;if(r)return r.find(i=>i.key===n)}}}},$js=(e,t)=>{if(!(e==null||t==null)){var n=e.find(a=>a.stackId===t.stackId&&t.dataKey!=null&&a.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function wjs(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&ht(e.zIndex)?e.zIndex:t}var kjs=e=>{var{chartData:t}=e,n=gn(),a=Ga();return h.useEffect(()=>a?()=>{}:(n(hB(t)),()=>{n(hB(void 0))}),[t,n,a]),null},o6={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},GX=Ka({name:"brush",initialState:o6,reducers:{setBrushSettings(e,t){return t.payload==null?o6:t.payload}}}),{setBrushSettings:v6s}=GX.actions,Cjs=GX.reducer;function Sjs(e){return(e%180+180)%180}var Ajs=function(t){var{width:n,height:a}=t,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=Sjs(s),i=r*Math.PI/180,c=Math.atan(a/n),d=i>c&&i<Math.PI-c?a/Math.sin(i):n/Math.cos(i);return Math.abs(d)},Tjs={dots:[],areas:[],lines:[]},WX=Ka({name:"referenceElements",initialState:Tjs,reducers:{addDot:(e,t)=>
962{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=Rs(e).dots.findIndex(a=>a===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=Rs(e).areas.findIndex(a=>a===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var n=Rs(e).lines.findIndex(a=>a===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:b6s,removeDot:x6s,addArea:$6s,removeArea:w6s,addLine:k6s,removeLine:C6s}=WX.actions,Rjs=WX.reducer,Pjs=h.createContext(void 0),_js=e=>{var{children:t}=e,[n]=h.useState("".concat(hh("recharts"),"-clip")),a=oN();if(a==null)return null;var{x:s,y:r,width:i,height:c}=a;return h.createElement(Pjs.Provider,{value:n},h.createElement("defs",null,h.createElement("clipPath",{id:n},h.createElement("rect",{x:s,y:r,height:c,width:i}))),t)};function YX(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],a=0;a<e.length;a+=t){var s=e[a];s!==void 0&&n.push(s)}return n}function jjs(e,t,n){var a={width:e.width+t.width,height:e.height+t.height};return Ajs(a,n)}function Njs(e,t,n){var a=n==="width",{x:s,y:r,width:i,height:c}=e;return t===1?{start:a?s:r,end:a?s+i:r+c}:{start:a?s+i:r+c,end:a?s:r}}function _h(e,t,n,a,s){if(e*t<e*a||e*t>e*s)return!1;var r=n();return e*(t-e*r/2-a)>=0&&e*(t+e*r/2-s)<=0}function Djs(e,t){return YX(e,t+1)}function Mjs(e,t,n,a,s){for(var r=(a||[]).slice(),{start:i,end:c}=t,d=0,m=1,f=i,p=function(){var $=a?.[d];if($===void 0)return{v:YX(a,m)};var x=d,w,S=()=>(w===void 0&&(w=n($,x)),w),k=$.coordinate,T=d===0||_h(e,k,S,f,c);T||(d=0,f=i,m+=1),T&&(f=k+e*(S()/2+s),d+=m)},y;m<=r.length;)if(y=p(),y)return y.v;return[]}function Ejs(e,t,n,a,s){var r=(a||[]).slice(),i=r.length;if(i===0)return[];for(var{start:c,end:d}=t,m=1;m<=i;m++){for(var f=(i-1)%m,p=c,y=!0,v=function(){var R=a[x];if(R==null)return 0;var _=x,P,j=()=>(P===void 0&&(P=n(R,_)),P),N=R.coordinate,I=x===f||_h(e,N,j,p,d);if(!I)return y=!1,1;I&&(p=N+e*(j()/2+s))},$,x=f;x<i&&($=v(),!($!==0&&$===1));x+=m);if(y){for(var w=[],S=f;S<i;S+=m){var k=a[S];k!=null&&w.push(k)}return w}}return[]}function s6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Ea(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?s6(Object(n),!0).forEach(function(a){Ijs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Ijs(e,t,n){return(t=Ojs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ojs(e){var t=Ljs(e,"string");return typeof t=="symbol"?t:t+""}function Ljs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ujs(e,t,n,a,s){for(var r=(a||[]).slice(),i=r.length,{start:c}=t,{end:d}=t,m=function(y){var v=r[y];if(v==null)return 1;var $=v,x,w=()=>(x===void 0&&(x=n(v,y)),x);if(y===i-1){var S=e*($.coordinate+e*w()/2-d);r[y]=$=Ea(Ea({},$),{},{tickCoord:S>0?$.coordinate-S*e:$.coordinate})}else r[y]=$=Ea(Ea({},$),{},{tickCoord:$.coordinate});if($.tickCoord!=null){var k=_h(e,$.tickCoord,w,c,d);k&&(d=$.tickCoord-e*(w()/2+s),r[y]=Ea(Ea({},$),{},{isShow:!0}))}},f=i-1;f>=0;f--)m(f);return r}function Bjs(e,t,n,a,s,r){var i=(a||[]).slice(),c=i.length,{start:d,end:m}=t;if(r){var f=a[c-1];if(f!=null){var p=n(f,c-1),y=e*(f.coordinate+e*p/2-m);if(i[c-1]=f=Ea(Ea({},f),{},{tickCoord:y>0?f.coordinate-y*e:f.coordinate}),f.tickCoord!=null){var v=_h(e,f.tickCoord,()=>p,d,m);v&&(m=f.tickCoord-e*(p/2+s),i[c-1]=Ea(Ea({},f),{},{isShow:!0}))}}}for(var $=r?c-1:c,x=function(k){var T=i[k];if(T==null)return 1;var R=T,_,P=()=>(_===void 0&&(_=n(T,k)),_);if(k===0){var j=e*(R.coordinate-e*P()/2-d);i[k]=R=Ea(Ea({},R),{},{tickCoord:j<0?R.coordinate-j*e:R.coordinate})}else i[k]=R=Ea(Ea({},R),{},{tickCoord:R.coordinate});if(R.tickCoord!=null){var N=_h(e,R.tickCoord,P,d,m);N&&(d=R.tickCoord+e*(P()/2+s),i[k]=Ea(Ea({},R),{},{isShow:!0}
962))}},w=0;w<$;w++)x(w);return i}function sN(e,t,n){var{tick:a,ticks:s,viewBox:r,minTickGap:i,orientation:c,interval:d,tickFormatter:m,unit:f,angle:p}=e;if(!s||!s.length||!a)return[];if(Fe(d)||wy.isSsr){var y;return(y=Djs(s,Fe(d)?d:0))!==null&&y!==void 0?y:[]}var v=[],$=c==="top"||c==="bottom"?"width":"height",x=f&&$==="width"?qg(f,{fontSize:t,letterSpacing:n}):{width:0,height:0},w=(_,P)=>{var j=typeof m=="function"?m(_.value,P):_.value;return $==="width"?jjs(qg(j,{fontSize:t,letterSpacing:n}),x,p):qg(j,{fontSize:t,letterSpacing:n})[$]},S=s[0],k=s[1],T=s.length>=2&&S!=null&&k!=null?Co(k.coordinate-S.coordinate):1,R=Njs(r,T,$);return d==="equidistantPreserveStart"?Mjs(T,R,w,s,i):d==="equidistantPreserveEnd"?Ejs(T,R,w,s,i):(d==="preserveStart"||d==="preserveStartEnd"?v=Bjs(T,R,w,s,i,d==="preserveStartEnd"):v=Ujs(T,R,w,s,i),v.filter(_=>_.isShow))}var Fjs=e=>{var{ticks:t,label:n,labelGapWithTick:a=5,tickSize:s=0,tickMargin:r=0}=e,i=0;if(t){Array.from(t).forEach(f=>{if(f){var p=f.getBoundingClientRect();p.width>i&&(i=p.width)}});var c=n?n.getBoundingClientRect().width:0,d=s+r,m=i+d+c+(n?a:0);return Math.round(m)}return 0},zjs={xAxis:{},yAxis:{}},QX=Ka({name:"renderedTicks",initialState:zjs,reducers:{setRenderedTicks:(e,t)=>{var{axisType:n,axisId:a,ticks:s}=t.payload;e[n][a]=s},removeRenderedTicks:(e,t)=>{var{axisType:n,axisId:a}=t.payload;delete e[n][a]}}}),{setRenderedTicks:qjs,removeRenderedTicks:Hjs}=QX.actions,Vjs=QX.reducer,Kjs=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function Gjs(e,t){if(e==null)return{};var n,a,s=Wjs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function Wjs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function lu(){return lu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},lu.apply(null,arguments)}function r6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Sn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r6(Object(n),!0).forEach(function(a){Yjs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Yjs(e,t,n){return(t=Qjs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qjs(e){var t=Xjs(e,"string");return typeof t=="symbol"?t:t+""}function Xjs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Yi={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:la.axis};function Zjs(e){var{x:t,y:n,width:a,height:s,orientation:r,mirror:i,axisLine:c,otherSvgProps:d}=e;if(!c)return null;var m=Sn(Sn(Sn({},d),Is(c)),{},{fill:"none"});if(r==="top"||r==="bottom"){var f=+(r==="top"&&!i||r==="bottom"&&i);m=Sn(Sn({},m),{},{x1:t,y1:n+f*s,x2:t+a,y2:n+f*s})}else{var p=+(r==="left"&&!i||r==="right"&&i);m=Sn(Sn({},m),{},{x1:t+p*a,y1:n,x2:t+p*a,y2:n+s})}return h.createElement("line",lu({},m,{className:Lt("recharts-cartesian-axis-line",vp(c,"className"))}))}function Jjs(e,t,n,a,s,r,i,c,d){var m,f,p,y,v,$,x=c?-1:1,w=e.tickSize||i,S=Fe(e.tickCoord)?e.tickCoord:e.coordinate;switch(r){case"top":m=f=e.coordinate,y=n+ +!c*s,p=y-x*w,$=p-x*d,v=S;break;case"left":p=y=e.coordinate,f=t+ +!c*a,m=f-x*w,v=m-x*d,$=S;break;case"right":p=y=e.coordinate,f=t+ +c*a,m=f+x*w,v=m+x*d,$=S;break;default:m=f=e.coordinate,y=n+ +c*s,p=y+x*w,$=p+x*d,v=S;break}return{line:{x1:m,y1:p,x2:f,y2:y},tick:{x:v,y:$}}}function e2s(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function t2s(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function n2s(e){var{option:t,tickProps:n,value:a}=e,s,r=Lt(n.className,"recharts-cartesian-axis-tick-value");if(h.isValidElement(t))s=h.cloneElement(t,Sn(Sn({},n),{},{className:r}));else if(typeof t=="function")s=t(Sn(Sn({},n),{},{className:r}));else{var i="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(i=Lt(i,r_s(t))),s=h.createElement(nN,lu({},n,{className:i}),a)}return s}function a2s(e){var{ticks:t,axisType:n,axisId:a}=e,s=gn();return h.useEffect(()=>{if(a==null||n==null)return Wp;var r=t.map(i=>({value:i.value,coordinate:i.coordinate,offset:i.offset,index:i.index}));return s(qjs({ticks:r,axisId:a,axisType:n})),()=>{s(Hjs({axisId:a,axisType:n}))}},[s,t,a,n]),null}var o2s=h.forwardRef((e,t)=>
962{var{ticks:n=[],tick:a,tickLine:s,stroke:r,tickFormatter:i,unit:c,padding:d,tickTextProps:m,orientation:f,mirror:p,x:y,y:v,width:$,height:x,tickSize:w,tickMargin:S,fontSize:k,letterSpacing:T,getTicksConfig:R,events:_,axisType:P,axisId:j}=e,N=sN(Sn(Sn({},R),{},{ticks:n}),k,T),I=Is(R),z=gy(a),E=kX(I.textAnchor)?I.textAnchor:e2s(f,p),L=t2s(f,p),O={};typeof s=="object"&&(O=s);var V=Sn(Sn({},I),{},{fill:"none"},O),ne=N.map(F=>Sn({entry:F},Jjs(F,y,v,$,x,f,w,p,S))),q=ne.map(F=>{var{entry:H,line:ee}=F;return h.createElement(Fa,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(H.value,"-").concat(H.coordinate,"-").concat(H.tickCoord)},s&&h.createElement("line",lu({},V,ee,{className:Lt("recharts-cartesian-axis-tick-line",vp(s,"className"))})))}),M=ne.map((F,H)=>{var ee,B,{entry:G,tick:Q}=F,de=Sn(Sn(Sn(Sn({verticalAnchor:L},I),{},{textAnchor:E,stroke:"none",fill:r},Q),{},{index:H,payload:G,visibleTicksCount:N.length,tickFormatter:i,padding:d},m),{},{angle:(ee=(B=m?.angle)!==null&&B!==void 0?B:I.angle)!==null&&ee!==void 0?ee:0}),Y=Sn(Sn({},de),z);return h.createElement(Fa,lu({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(G.value,"-").concat(G.coordinate,"-").concat(G.tickCoord)},Jw(_,G,H)),a&&h.createElement(n2s,{option:a,tickProps:Y,value:"".concat(typeof i=="function"?i(G.value,H):G.value).concat(c||"")}))});return h.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(P,"-ticks")},h.createElement(a2s,{ticks:N,axisId:j,axisType:P}),M.length>0&&h.createElement(Fs,{zIndex:la.label},h.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(P,"-tick-labels"),ref:t},M)),q.length>0&&h.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(P,"-tick-lines")},q))}),s2s=h.forwardRef((e,t)=>{var{axisLine:n,width:a,height:s,className:r,hide:i,ticks:c,axisType:d,axisId:m}=e,f=Gjs(e,Kjs),[p,y]=h.useState(""),[v,$]=h.useState(""),x=h.useRef(null);h.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var S;return Fjs({ticks:x.current,label:(S=e.labelRef)===null||S===void 0?void 0:S.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var w=h.useCallback(S=>{if(S){var k=S.getElementsByClassName("recharts-cartesian-axis-tick-value");x.current=k;var T=k[0];if(T){var R=window.getComputedStyle(T),_=R.fontSize,P=R.letterSpacing;(_!==p||P!==v)&&(y(_),$(P))}}},[p,v]);return i||a!=null&&a<=0||s!=null&&s<=0?null:h.createElement(Fs,{zIndex:e.zIndex},h.createElement(Fa,{className:Lt("recharts-cartesian-axis",r)},h.createElement(Zjs,{x:e.x,y:e.y,width:a,height:s,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:Is(e)}),h.createElement(o2s,{ref:w,axisType:d,events:f,fontSize:p,getTicksConfig:e,height:e.height,letterSpacing:v,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:c,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:m}),h.createElement(FPs,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},h.createElement(XPs,{label:e.label,labelRef:e.labelRef}),e.children)))}),rN=h.forwardRef((e,t)=>{var n=Va(e,Yi);return h.createElement(s2s,lu({},n,{ref:t}))});rN.displayName="CartesianAxis";var r2s=["x1","y1","x2","y2","key"],i2s=["offset"],l2s=["xAxisId","yAxisId"],c2s=["xAxisId","yAxisId"];function i6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Oa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?i6(Object(n),!0).forEach(function(a){d2s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function d2s(e,t,n){return(t=u2s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u2s(e){var t=m2s(e,"string");return typeof t=="symbol"?t:t+""}function m2s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _d(){return _d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_d.apply(null,arguments)}function L$(e,t){if(e==null)return{};var n,a,s=p2s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function p2s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var f2s=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:n,x:a,y:s,width:r,height:i,ry:c}=e;return h.createElement("rect",{x:a,y:s,ry:c,width:r,height:i,stroke:"none",fill:t,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function XX(e){var{option:t,lineItemProps:n}=e,a;
962if(h.isValidElement(t))a=h.cloneElement(t,n);else if(typeof t=="function")a=t(n);else{var s,{x1:r,y1:i,x2:c,y2:d,key:m}=n,f=L$(n,r2s),p=(s=Is(f))!==null&&s!==void 0?s:{},{offset:y}=p,v=L$(p,i2s);a=h.createElement("line",_d({},v,{x1:r,y1:i,x2:c,y2:d,fill:"none",key:m}))}return a}function g2s(e){var{x:t,width:n,horizontal:a=!0,horizontalPoints:s}=e;if(!a||!s||!s.length)return null;var{xAxisId:r,yAxisId:i}=e,c=L$(e,l2s),d=s.map((m,f)=>{var p=Oa(Oa({},c),{},{x1:t,y1:m,x2:t+n,y2:m,key:"line-".concat(f),index:f});return h.createElement(XX,{key:"line-".concat(f),option:a,lineItemProps:p})});return h.createElement("g",{className:"recharts-cartesian-grid-horizontal"},d)}function h2s(e){var{y:t,height:n,vertical:a=!0,verticalPoints:s}=e;if(!a||!s||!s.length)return null;var{xAxisId:r,yAxisId:i}=e,c=L$(e,c2s),d=s.map((m,f)=>{var p=Oa(Oa({},c),{},{x1:m,y1:t,x2:m,y2:t+n,key:"line-".concat(f),index:f});return h.createElement(XX,{option:a,lineItemProps:p,key:"line-".concat(f)})});return h.createElement("g",{className:"recharts-cartesian-grid-vertical"},d)}function y2s(e){var{horizontalFill:t,fillOpacity:n,x:a,y:s,width:r,height:i,horizontalPoints:c,horizontal:d=!0}=e;if(!d||!t||!t.length||c==null)return null;var m=c.map(p=>Math.round(p+s-s)).sort((p,y)=>p-y);s!==m[0]&&m.unshift(0);var f=m.map((p,y)=>{var v=m[y+1],$=v==null,x=$?s+i-p:v-p;if(x<=0)return null;var w=y%t.length;return h.createElement("rect",{key:"react-".concat(y),y:p,x:a,height:x,width:r,stroke:"none",fill:t[w],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return h.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function v2s(e){var{vertical:t=!0,verticalFill:n,fillOpacity:a,x:s,y:r,width:i,height:c,verticalPoints:d}=e;if(!t||!n||!n.length)return null;var m=d.map(p=>Math.round(p+s-s)).sort((p,y)=>p-y);s!==m[0]&&m.unshift(0);var f=m.map((p,y)=>{var v=m[y+1],$=v==null,x=$?s+i-p:v-p;if(x<=0)return null;var w=y%n.length;return h.createElement("rect",{key:"react-".concat(y),x:p,y:r,width:x,height:c,stroke:"none",fill:n[w],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return h.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var b2s=(e,t)=>{var{xAxis:n,width:a,height:s,offset:r}=e;return SW(sN(Oa(Oa(Oa({},Yi),n),{},{ticks:AW(n),viewBox:{x:0,y:0,width:a,height:s}})),r.left,r.left+r.width,t)},x2s=(e,t)=>{var{yAxis:n,width:a,height:s,offset:r}=e;return SW(sN(Oa(Oa(Oa({},Yi),n),{},{ticks:AW(n),viewBox:{x:0,y:0,width:a,height:s}})),r.top,r.top+r.height,t)},$2s={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:la.grid};function iN(e){var t=Jj(),n=e2(),a=_W(),s=Oa(Oa({},Va(e,$2s)),{},{x:Fe(e.x)?e.x:a.left,y:Fe(e.y)?e.y:a.top,width:Fe(e.width)?e.width:a.width,height:Fe(e.height)?e.height:a.height}),{xAxisId:r,yAxisId:i,x:c,y:d,width:m,height:f,syncWithTicks:p,horizontalValues:y,verticalValues:v}=s,$=Ga(),x=Ge(I=>aB(I,"xAxis",r,$)),w=Ge(I=>aB(I,"yAxis",i,$));if(!xp(m)||!xp(f)||!Fe(c)||!Fe(d))return null;var S=s.verticalCoordinatesGenerator||b2s,k=s.horizontalCoordinatesGenerator||x2s,{horizontalPoints:T,verticalPoints:R}=s;if((!T||!T.length)&&typeof k=="function"){var _=y&&y.length,P=k({yAxis:w?Oa(Oa({},w),{},{ticks:_?y:w.ticks}):void 0,width:t??m,height:n??f,offset:a},_?!0:p);r5(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof P,"]")),Array.isArray(P)&&(T=P)}if((!R||!R.length)&&typeof S=="function"){var j=v&&v.length,N=S({xAxis:x?Oa(Oa({},x),{},{ticks:j?v:x.ticks}):void 0,width:t??m,height:n??f,offset:a},j?!0:p);r5(Array.isArray(N),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof N,"]")),Array.isArray(N)&&(R=N)}return h.createElement(Fs,{zIndex:s.zIndex},h.createElement("g",{className:"recharts-cartesian-grid"},h.createElement(f2s,{fill:s.fill,fillOpacity:s.fillOpacity,x:s.x,y:s.y,width:s.width,height:s.height,ry:s.ry}),h.createElement(y2s,_d({},s,{horizontalPoints:T})),h.createElement(v2s,_d({},s,{verticalPoints:R})),h.createElement(g2s,_d({},s,{offset:a,horizontalPoints:T,xAxis:x,yAxis:w})),h.createElement(h2s,_d({},s,{offset:a,verticalPoints:R,xAxis:x,yAxis:w}))))}
962iN.displayName="CartesianGrid";var w2s={},ZX=Ka({name:"errorBars",initialState:w2s,reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:a}=t.payload;e[n]||(e[n]=[]),e[n].push(a)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:a,next:s}=t.payload;e[n]&&(e[n]=e[n].map(r=>r.dataKey===a.dataKey&&r.direction===a.direction?s:r))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:a}=t.payload;e[n]&&(e[n]=e[n].filter(s=>s.dataKey!==a.dataKey||s.direction!==a.direction))}}}),{addErrorBar:S6s,replaceErrorBar:A6s,removeErrorBar:T6s}=ZX.actions,k2s=ZX.reducer,C2s=["children"];function S2s(e,t){if(e==null)return{};var n,a,s=A2s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function A2s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var T2s={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},R2s=h.createContext(T2s);function P2s(e){var{children:t}=e,n=S2s(e,C2s);return h.createElement(R2s.Provider,{value:n},t)}function lN(e,t){var n,a,s=Ge(m=>gl(m,e)),r=Ge(m=>hl(m,t)),i=(n=s?.allowDataOverflow)!==null&&n!==void 0?n:Wn.allowDataOverflow,c=(a=r?.allowDataOverflow)!==null&&a!==void 0?a:Yn.allowDataOverflow,d=i||c;return{needClip:d,needClipX:i,needClipY:c}}function JX(e){var{xAxisId:t,yAxisId:n,clipPathId:a}=e,s=oN(),{needClipX:r,needClipY:i,needClip:c}=lN(t,n);if(!c||!s)return null;var{x:d,y:m,width:f,height:p}=s;return h.createElement("clipPath",{id:"clipPath-".concat(a)},h.createElement("rect",{x:r?d:d-f/2,y:i?m:m-p/2,width:r?f:f*2,height:i?p:p*2}))}function _2s(e){var t=gy(e),n=3,a=2;if(t!=null){var{r:s,strokeWidth:r}=t,i=Number(s),c=Number(r);return(Number.isNaN(i)||i<0)&&(i=n),(Number.isNaN(c)||c<0)&&(c=a),{r:i,strokeWidth:c}}return{r:n,strokeWidth:a}}function fi(e,t){var n,a;return(n=(a=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||a===void 0?void 0:a.xAxisId)!==null&&n!==void 0?n:VX}function gi(e,t){var n,a;return(n=(a=e.graphicalItems.cartesianItems.find(s=>s.id===t))===null||a===void 0?void 0:a.yAxisId)!==null&&n!==void 0?n:VX}var eZ=(e,t,n)=>_c(e,"xAxis",fi(e,t),n),tZ=(e,t,n)=>Pc(e,"xAxis",fi(e,t),n),nZ=(e,t,n)=>_c(e,"yAxis",gi(e,t),n),aZ=(e,t,n)=>Pc(e,"yAxis",gi(e,t),n),j2s=ce([Ut,eZ,nZ,tZ,aZ],(e,t,n,a,s)=>pi(e,"xAxis")?$p(t,a,!1):$p(n,s,!1)),N2s=(e,t)=>t,oZ=ce([L0,N2s],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),sZ=e=>{var t=Ut(e),n=pi(t,"xAxis");return n?"yAxis":"xAxis"},D2s=(e,t)=>{var n=sZ(e);return n==="yAxis"?gi(e,t):fi(e,t)},M2s=(e,t,n)=>_$(e,sZ(e),D2s(e,t),n),E2s=ce([oZ,M2s],(e,t)=>{var n;if(!(e==null||t==null)){var{stackId:a}=e,s=T0(e);if(!(a==null||s==null)){var r=(n=t[a])===null||n===void 0?void 0:n.stackedData,i=r?.find(c=>c.key===s);if(i!=null)return i.map(c=>[c[0],c[1]])}}}),I2s=ce([Ut,eZ,nZ,tZ,aZ,E2s,QW,j2s,oZ,Qks],(e,t,n,a,s,r,i,c,d,m)=>{var{chartData:f,dataStartIndex:p,dataEndIndex:y}=i;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||a==null||s==null||a.length===0||s.length===0||c==null)){var{data:v}=d,$;if(v&&v.length>0?$=v:$=f?.slice(p,y+1),$!=null)return nNs({layout:e,xAxis:t,yAxis:n,xAxisTicks:a,yAxisTicks:s,dataStartIndex:p,areaSettings:d,stackedData:r,displayedData:$,chartBaseValue:m,bandSize:c})}}),O2s=["id"],L2s=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function Hd(){return Hd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Hd.apply(null,arguments)}function rZ(e,t){if(e==null)return{};var n,a,s=U2s(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function U2s(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function l6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function Um(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
962t%2?l6(Object(n),!0).forEach(function(a){B2s(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function B2s(e,t,n){return(t=F2s(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F2s(e){var t=z2s(e,"string");return typeof t=="symbol"?t:t+""}function z2s(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function U$(e,t){return e&&e!=="none"?e:t}var q2s=e=>{var{dataKey:t,name:n,stroke:a,fill:s,legendType:r,hide:i}=e;return[{inactive:i,dataKey:t,type:r,color:U$(a,s),value:d0(n,t),payload:e}]},H2s=h.memo(e=>{var{dataKey:t,data:n,stroke:a,strokeWidth:s,fill:r,name:i,hide:c,unit:d,tooltipType:m,id:f}=e,p={dataDefinedOnItem:n,getPosition:Wp,settings:{stroke:a,strokeWidth:s,fill:r,dataKey:t,nameKey:void 0,name:d0(i,t),hide:c,type:m,color:U$(a,r),unit:d,graphicalItemId:f}};return h.createElement(BX,{tooltipEntrySettings:p})});function V2s(e){var{clipPathId:t,points:n,props:a}=e,{needClip:s,dot:r,dataKey:i}=a,c=Is(a);return h.createElement(W_s,{points:n,dot:r,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:i,baseProps:c,needClip:s,clipPathId:t})}function K2s(e){var{showLabels:t,children:n,points:a}=e,s=a.map(r=>{var i,c,d={x:(i=r.x)!==null&&i!==void 0?i:0,y:(c=r.y)!==null&&c!==void 0?c:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Um(Um({},d),{},{value:r.value,payload:r.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return h.createElement(_X,{value:t?s:void 0},n)}function c6(e){var{points:t,baseLine:n,needClip:a,clipPathId:s,props:r}=e,{layout:i,type:c,stroke:d,connectNulls:m,isRange:f}=r,{id:p}=r,y=rZ(r,O2s),v=Is(y),$=no(y);return h.createElement(h.Fragment,null,t?.length>1&&h.createElement(Fa,{clipPath:a?"url(#clipPath-".concat(s,")"):void 0},h.createElement(Fg,Hd({},$,{id:p,points:t,connectNulls:m,type:c,baseLine:n,layout:i,stroke:"none",className:"recharts-area-area"})),d!=="none"&&h.createElement(Fg,Hd({},v,{className:"recharts-area-curve",layout:i,type:c,connectNulls:m,fill:"none",points:t})),d!=="none"&&f&&Array.isArray(n)&&h.createElement(Fg,Hd({},v,{className:"recharts-area-curve",layout:i,type:c,connectNulls:m,fill:"none",points:n}))),h.createElement(V2s,{points:t,props:y,clipPathId:s}))}function G2s(e){var t,n,{alpha:a,baseLine:s,points:r,strokeWidth:i}=e,c=(t=r[0])===null||t===void 0?void 0:t.y,d=(n=r[r.length-1])===null||n===void 0?void 0:n.y;if(!ht(c)||!ht(d))return null;var m=a*Math.abs(c-d),f=Math.max(...r.map(p=>p.x||0));return Fe(s)?f=Math.max(s,f):s&&Array.isArray(s)&&s.length&&(f=Math.max(...s.map(p=>p.x||0),f)),Fe(f)?h.createElement("rect",{x:0,y:c<d?c:c-m,width:f+(i?parseInt("".concat(i),10):1),height:Math.floor(m)}):null}function W2s(e){var t,n,{alpha:a,baseLine:s,points:r,strokeWidth:i}=e,c=(t=r[0])===null||t===void 0?void 0:t.x,d=(n=r[r.length-1])===null||n===void 0?void 0:n.x;if(!ht(c)||!ht(d))return null;var m=a*Math.abs(c-d),f=Math.max(...r.map(p=>p.y||0));return Fe(s)?f=Math.max(s,f):s&&Array.isArray(s)&&s.length&&(f=Math.max(...s.map(p=>p.y||0),f)),Fe(f)?h.createElement("rect",{x:c<d?c:c-m,y:0,width:m,height:Math.floor(f+(i?parseInt("".concat(i),10):1))}):null}function Y2s(e){var{alpha:t,layout:n,points:a,baseLine:s,strokeWidth:r}=e;return n==="vertical"?h.createElement(G2s,{alpha:t,points:a,baseLine:s,strokeWidth:r}):h.createElement(W2s,{alpha:t,points:a,baseLine:s,strokeWidth:r})}function Q2s(e){var{needClip:t,clipPathId:n,props:a,previousPointsRef:s,previousBaselineRef:r}=e,{points:i,baseLine:c,isAnimationActive:d,animationBegin:m,animationDuration:f,animationEasing:p,onAnimationStart:y,onAnimationEnd:v}=a,$=h.useMemo(()=>({points:i,baseLine:c}),[i,c]),x=x0($,"recharts-area-"),w=t2(),[S,k]=h.useState(!1),T=!S,R=h.useCallback(()=>{typeof v=="function"&&v(),k(!1)},[v]),_=h.useCallback(()=>{typeof y=="function"&&y(),k(!0)},[y]);if(w==null)return null;var P=s.current,j=r.current;return h.createElement(K2s,{showLabels:T,points:i},a.children,h.createElement(b0,{animationId:x,begin:m,duration:f,isActive:d,easing:p,onAnimationEnd:R,onAnimationStart:_,key:x},N=>
962{if(P){var I=P.length/i.length,z=N===1?i:i.map((L,O)=>{var V=Math.floor(O*I);if(P[V]){var ne=P[V];return Um(Um({},L),{},{x:bn(ne.x,L.x,N),y:bn(ne.y,L.y,N)})}return L}),E;return Fe(c)?E=bn(j,c,N):$n(c)||hr(c)?E=bn(j,0,N):E=c.map((L,O)=>{var V=Math.floor(O*I);if(Array.isArray(j)&&j[V]){var ne=j[V];return Um(Um({},L),{},{x:bn(ne.x,L.x,N),y:bn(ne.y,L.y,N)})}return L}),N>0&&(s.current=z,r.current=E),h.createElement(c6,{points:z,baseLine:E,needClip:t,clipPathId:n,props:a})}return N>0&&(s.current=i,r.current=c),h.createElement(Fa,null,d&&h.createElement("defs",null,h.createElement("clipPath",{id:"animationClipPath-".concat(n)},h.createElement(Y2s,{alpha:N,points:i,baseLine:c,layout:w,strokeWidth:a.strokeWidth}))),h.createElement(Fa,{clipPath:"url(#animationClipPath-".concat(n,")")},h.createElement(c6,{points:i,baseLine:c,needClip:t,clipPathId:n,props:a})))}),h.createElement(NX,{label:a.label}))}function X2s(e){var{needClip:t,clipPathId:n,props:a}=e,s=h.useRef(null),r=h.useRef();return h.createElement(Q2s,{needClip:t,clipPathId:n,props:a,previousPointsRef:s,previousBaselineRef:r})}class Z2s extends h.PureComponent{render(){var{hide:t,dot:n,points:a,className:s,top:r,left:i,needClip:c,xAxisId:d,yAxisId:m,width:f,height:p,id:y,baseLine:v,zIndex:$}=this.props;if(t)return null;var x=Lt("recharts-area",s),w=y,{r:S,strokeWidth:k}=_2s(n),T=IX(n),R=S*2+k,_=c?"url(#clipPath-".concat(T?"":"dots-").concat(w,")"):void 0;return h.createElement(Fs,{zIndex:$},h.createElement(Fa,{className:x},c&&h.createElement("defs",null,h.createElement(JX,{clipPathId:w,xAxisId:d,yAxisId:m}),!T&&h.createElement("clipPath",{id:"clipPath-dots-".concat(w)},h.createElement("rect",{x:i-R/2,y:r-R/2,width:f+R,height:p+R}))),h.createElement(X2s,{needClip:c,clipPathId:w,props:this.props})),h.createElement(t6,{points:a,mainColor:U$(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:_}),this.props.isRange&&Array.isArray(v)&&h.createElement(t6,{points:v,mainColor:U$(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:_}))}}var J2s={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:la.area};function eNs(e){var t,{activeDot:n,animationBegin:a,animationDuration:s,animationEasing:r,connectNulls:i,dot:c,fill:d,fillOpacity:m,hide:f,isAnimationActive:p,legendType:y,stroke:v,xAxisId:$,yAxisId:x}=e,w=rZ(e,L2s),S=Cu(),k=iX(),{needClip:T}=lN($,x),R=Ga(),{points:_,isRange:P,baseLine:j}=(t=Ge(O=>I2s(O,e.id,R)))!==null&&t!==void 0?t:{},N=oN();if(S!=="horizontal"&&S!=="vertical"||N==null||k!=="AreaChart"&&k!=="ComposedChart")return null;var{height:I,width:z,x:E,y:L}=N;return!_||!_.length?null:h.createElement(Z2s,Hd({},w,{activeDot:n,animationBegin:a,animationDuration:s,animationEasing:r,baseLine:j,connectNulls:i,dot:c,fill:d,fillOpacity:m,height:I,hide:f,layout:S,isAnimationActive:p,isRange:P,legendType:y,needClip:T,points:_,stroke:v,width:z,left:E,top:L,xAxisId:$,yAxisId:x}))}var tNs=(e,t,n,a,s)=>{var r=n??t;if(Fe(r))return r;var i=e==="horizontal"?s:a,c=i.scale.domain();if(i.type==="number"){var d=Math.max(c[0],c[1]),m=Math.min(c[0],c[1]);return r==="dataMin"?m:r==="dataMax"||d<0?d:Math.max(Math.min(c[0],c[1]),0)}return r==="dataMin"?c[0]:r==="dataMax"?c[1]:c[0]};function nNs(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:a},stackedData:s,layout:r,chartBaseValue:i,xAxis:c,yAxis:d,displayedData:m,dataStartIndex:f,xAxisTicks:p,yAxisTicks:y,bandSize:v}=e,$=s&&s.length,x=tNs(r,i,n,c,d),w=r==="horizontal",S=!1,k=m.map((R,_)=>{var P,j,N,I;if($)I=s[f+_];else{var z=jn(R,a);Array.isArray(z)?(I=z,S=!0):I=[x,z]}var E=(P=(j=I)===null||j===void 0?void 0:j[1])!==null&&P!==void 0?P:null,L=E==null||$&&!t&&jn(R,a)==null;if(w){var O;return{x:e5({axis:c,ticks:p,bandSize:v,entry:R,index:_}),y:L?null:(O=d.scale.map(E))!==null&&O!==void 0?O:null,value:I,payload:R}}return{x:L?null:(N=c.scale.map(E))!==null&&N!==void 0?N:null,y:e5({axis:d,ticks:y,bandSize:v,entry:R,index:_}),value:I,payload:R}}),T;return $||S?T=k.map(R=>{var _,P=Array.isArray(R.value)?R.value[0]:null;if(w){var j;return{x:R.x,y:P!=null&&R.y!=null&&(j=d.scale.map(P))!==null&&j!==void 0?j:null,payload:R.payload}}return{x:P!=null&&(_=c.scale.map(P))!==null&&_!==void 0?_:null,y:R.y,payload:R.payload}}):T=w?d.scale.map(x):c.scale.map(x),{points:k,baseLine:T??0,isRange:S}}function aNs(e){var t=Va(e,J2s),n=Ga();return h.createElement(zX,{id:t.id,type:"area"},a=>h.createElement(h.Fragment,null,h.createElement(FX,{legendPayload:q2s(t)}),h.createElement(H2s,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:a}),h.createElement(HX,{type:"area",id:a,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:TW(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),h.createElement(eNs,Hd({},t,{id:a}))))}var iZ=h.memo(aNs,Yp);iZ.displayName="Area";var oNs="Invariant failed";function sNs(e,t){throw new Error(oNs)}function RP(){return RP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},RP.apply(null,arguments)}function cN(e){return h.createElement(P_s,RP({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},e))}var rNs=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(a,s)=>{if(Fe(t))return t;var r=Fe(a)||$n(a);return r?t(a,s):(r||sNs(),n)}},iNs=(e,t,n)=>n,lNs=(e,t)=>t,Ny=ce([L0,lNs],(e,t)=>e.filter(n=>n.type==="bar").find(n=>n.id===t)),cNs=ce([Ny],e=>e?.maxBarSize),dNs=(e,t,n,a)=>a,uNs=ce([Ut,L0,fi,gi,iNs],(e,t,n,a,s)=>t.filter(r=>e==="horizontal"?r.xAxisId===n:r.yAxisId===a).filter(r=>r.isPanorama===s).filter(r=>r.hide===!1).filter(r=>r.type==="bar")),mNs=(e,t,n)=>{var a=Ut(e),s=fi(e,t),r=gi(e,t);if(!(s==null||r==null))return a==="horizontal"?_$(e,"yAxis",r,n):_$(e,"xAxis",s,n)},pNs=(e,t)=>{var n=Ut(e),a=fi(e,t),s=gi(e,t);if(!(a==null||s==null))return n==="horizontal"?nB(e,"xAxis",a):nB(e,"yAxis",s)},fNs=ce([uNs,Yks,pNs],fjs),gNs=(e,t,n)=>{var a,s,r=Ny(e,t);if(r==null)return 0;var i=fi(e,t),c=gi(e,t);if(i==null||c==null)return 0;var d=Ut(e),m=lY(e),{maxBarSize:f}=r,p=$n(f)?m:f,y,v;return d==="horizontal"?(y=_c(e,"xAxis",i,n),v=Pc(e,"xAxis",i,n)):(y=_c(e,"yAxis",c,n),v=Pc(e,"yAxis",c,n)),(a=(s=$p(y,v,!0))!==null&&s!==void 0?s:p
962)!==null&&a!==void 0?a:0},lZ=(e,t,n)=>{var a=Ut(e),s=fi(e,t),r=gi(e,t);if(!(s==null||r==null)){var i,c;return a==="horizontal"?(i=_c(e,"xAxis",s,n),c=Pc(e,"xAxis",s,n)):(i=_c(e,"yAxis",r,n),c=Pc(e,"yAxis",r,n)),$p(i,c)}},hNs=ce([fNs,lY,Wks,cY,gNs,lZ,cNs],bjs),yNs=(e,t,n)=>{var a=fi(e,t);if(a!=null)return _c(e,"xAxis",a,n)},vNs=(e,t,n)=>{var a=gi(e,t);if(a!=null)return _c(e,"yAxis",a,n)},bNs=(e,t,n)=>{var a=fi(e,t);if(a!=null)return Pc(e,"xAxis",a,n)},xNs=(e,t,n)=>{var a=gi(e,t);if(a!=null)return Pc(e,"yAxis",a,n)},$Ns=ce([hNs,Ny],$js),wNs=ce([mNs,Ny],xjs),kNs=ce([ma,Xj,yNs,vNs,bNs,xNs,$Ns,Ut,QW,lZ,wNs,Ny,dNs],(e,t,n,a,s,r,i,c,d,m,f,p,y)=>{var{chartData:v,dataStartIndex:$,dataEndIndex:x}=d;if(!(p==null||i==null||t==null||c!=="horizontal"&&c!=="vertical"||n==null||a==null||s==null||r==null||m==null)){var{data:w}=p,S;if(w!=null&&w.length>0?S=w:S=v?.slice($,x+1),S!=null)return XNs({layout:c,barSettings:p,pos:i,parentViewBox:t,bandSize:m,xAxis:n,yAxis:a,xAxisTicks:s,yAxisTicks:r,stackedData:f,displayedData:S,offset:e,cells:y,dataStartIndex:$})}}),CNs=["index"];function PP(){return PP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},PP.apply(null,arguments)}function SNs(e,t){if(e==null)return{};var n,a,s=ANs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function ANs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var cZ=h.createContext(void 0),TNs=e=>{var t=h.useContext(cZ);if(t!=null)return t.stackId;if(e!=null)return TW(e)},RNs=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),PNs=e=>{var t=h.useContext(cZ);if(t!=null){var{stackId:n}=t;return"url(#".concat(RNs(n,e),")")}},dZ=e=>{var{index:t}=e,n=SNs(e,CNs),a=PNs(t);return h.createElement(Fa,PP({className:"recharts-bar-stack-layer",clipPath:a},n))},_Ns=["onMouseEnter","onMouseLeave","onClick"],jNs=["value","background","tooltipPosition"],NNs=["id"],DNs=["onMouseEnter","onClick","onMouseLeave"];function jc(){return jc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},jc.apply(null,arguments)}function d6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function eo(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?d6(Object(n),!0).forEach(function(a){MNs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function MNs(e,t,n){return(t=ENs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ENs(e){var t=INs(e,"string");return typeof t=="symbol"?t:t+""}function INs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function B$(e,t){if(e==null)return{};var n,a,s=ONs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function ONs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var LNs=e=>{var{dataKey:t,name:n,fill:a,legendType:s,hide:r}=e;return[{inactive:r,dataKey:t,type:s,color:a,value:d0(n,t),payload:e}]},UNs=h.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:a,fill:s,name:r,hide:i,unit:c,tooltipType:d,id:m}=e,f={dataDefinedOnItem:void 0,getPosition:Wp,settings:{stroke:n,strokeWidth:a,fill:s,dataKey:t,nameKey:void 0,name:d0(r,t),hide:i,type:d,color:s,unit:c,graphicalItemId:m}};return h.createElement(BX,{tooltipEntrySettings:f})});function BNs(e){var t=Ge(iu),{data:n,dataKey:a,background:s,allOtherBarProps:r}=e,{onMouseEnter:i,onMouseLeave:c,onClick:d}=r,m=B$(r,_Ns),f=OX(i,a,r.id),p=LX(c),y=UX(d,a,r.id);if(!s||n==null)return null;var v=gy(s);
962return h.createElement(Fs,{zIndex:wjs(s,la.barBackground)},n.map(($,x)=>{var{value:w,background:S,tooltipPosition:k}=$,T=B$($,jNs);if(!S)return null;var R=f($,x),_=p($,x),P=y($,x),j=eo(eo(eo(eo(eo({option:s,isActive:String(x)===t},T),{},{fill:"#eee"},S),v),Jw(m,$,x)),{},{onMouseEnter:R,onMouseLeave:_,onClick:P,dataKey:a,index:x,className:"recharts-bar-background-rectangle"});return h.createElement(cN,jc({key:"background-bar-".concat(x)},j))}))}function FNs(e){var{showLabels:t,children:n,rects:a}=e,s=a?.map(r=>{var i={x:r.x,y:r.y,width:r.width,lowerWidth:r.width,upperWidth:r.width,height:r.height};return eo(eo({},i),{},{value:r.value,payload:r.payload,parentViewBox:r.parentViewBox,viewBox:i,fill:r.fill})});return h.createElement(_X,{value:t?s:void 0},n)}function zNs(e){var{shape:t,activeBar:n,baseProps:a,entry:s,index:r,dataKey:i}=e,c=Ge(iu),d=Ge(oX),m=n&&String(s.originalDataIndex)===c&&(d==null||i===d),[f,p]=h.useState(!1),[y,v]=h.useState(!1);h.useEffect(()=>{var T;return m?(p(!0),T=requestAnimationFrame(()=>{v(!0)})):v(!1),()=>{cancelAnimationFrame(T)}},[m]);var $=h.useCallback(()=>{m||p(!1)},[m]),x=m&&y,w=m||f,S;m?n===!0?S=t:S=n:S=t;var k=h.createElement(cN,jc({},a,{name:String(a.name)},s,{isActive:x,option:S,index:r,dataKey:i,onTransitionEnd:$}));return w?h.createElement(Fs,{zIndex:la.activeBar},h.createElement(dZ,{index:s.originalDataIndex},k)):k}function qNs(e){var{shape:t,baseProps:n,entry:a,index:s,dataKey:r}=e;return h.createElement(cN,jc({},n,{name:String(n.name)},a,{isActive:!1,option:t,index:s,dataKey:r}))}function HNs(e){var t,{data:n,props:a}=e,s=(t=Is(a))!==null&&t!==void 0?t:{},{id:r}=s,i=B$(s,NNs),{shape:c,dataKey:d,activeBar:m}=a,{onMouseEnter:f,onClick:p,onMouseLeave:y}=a,v=B$(a,DNs),$=OX(f,d,r),x=LX(y),w=UX(p,d,r);return n?h.createElement(h.Fragment,null,n.map((S,k)=>h.createElement(dZ,jc({index:S.originalDataIndex,key:"rectangle-".concat(S?.x,"-").concat(S?.y,"-").concat(S?.value,"-").concat(k),className:"recharts-bar-rectangle"},Jw(v,S,k),{onMouseEnter:$(S,k),onMouseLeave:x(S,k),onClick:w(S,k)}),m?h.createElement(zNs,{shape:c,activeBar:m,baseProps:i,entry:S,index:k,dataKey:d}):h.createElement(qNs,{shape:c,baseProps:i,entry:S,index:k,dataKey:d})))):null}function VNs(e){var{props:t,previousRectanglesRef:n}=e,{data:a,layout:s,isAnimationActive:r,animationBegin:i,animationDuration:c,animationEasing:d,onAnimationEnd:m,onAnimationStart:f}=t,p=n.current,y=x0(t,"recharts-bar-"),[v,$]=h.useState(!1),x=!v,w=h.useCallback(()=>{typeof m=="function"&&m(),$(!1)},[m]),S=h.useCallback(()=>{typeof f=="function"&&f(),$(!0)},[f]);return h.createElement(FNs,{showLabels:x,rects:a},h.createElement(b0,{animationId:y,begin:i,duration:c,isActive:r,easing:d,onAnimationEnd:w,onAnimationStart:S,key:y},k=>{var T=k===1?a:a?.map((R,_)=>{var P=p&&p[_];if(P)return eo(eo({},R),{},{x:bn(P.x,R.x,k),y:bn(P.y,R.y,k),width:bn(P.width,R.width,k),height:bn(P.height,R.height,k)});if(s==="horizontal"){var j=bn(0,R.height,k),N=bn(R.stackedBarStart,R.y,k);return eo(eo({},R),{},{y:N,height:j})}var I=bn(0,R.width,k),z=bn(R.stackedBarStart,R.x,k);return eo(eo({},R),{},{width:I,x:z})});return k>0&&(n.current=T??null),T==null?null:h.createElement(Fa,null,h.createElement(HNs,{props:t,data:T}))}),h.createElement(NX,{label:t.label}),t.children)}function KNs(e){var t=h.useRef(null);return h.createElement(VNs,{previousRectanglesRef:t,props:e})}var uZ=0,GNs=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:jn(e,t)}};class WNs extends h.PureComponent{render(){var{hide:t,data:n,dataKey:a,className:s,xAxisId:r,yAxisId:i,needClip:c,background:d,id:m}=this.props;if(t||n==null)return null;var f=Lt("recharts-bar",s),p=m;return h.createElement(Fa,{className:f,id:m},c&&h.createElement("defs",null,h.createElement(JX,{clipPathId:p,xAxisId:r,yAxisId:i})),h.createElement(Fa,{className:"recharts-bar-rectangles",clipPath:c?"url(#clipPath-".concat(p,")"):void 0},h.createElement(BNs,{data:n,dataKey:a,background:d,allOtherBarProps:this.props}),h.createElement(KNs,this.props)))}}var YNs={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendT
962ype:"rect",minPointSize:uZ,xAxisId:0,yAxisId:0,zIndex:la.bar};function QNs(e){var{xAxisId:t,yAxisId:n,hide:a,legendType:s,minPointSize:r,activeBar:i,animationBegin:c,animationDuration:d,animationEasing:m,isAnimationActive:f}=e,{needClip:p}=lN(t,n),y=Cu(),v=Ga(),$=d_s(e.children,yX),x=Ge(k=>kNs(k,e.id,v,$));if(y!=="vertical"&&y!=="horizontal")return null;var w,S=x?.[0];return S==null||S.height==null||S.width==null?w=0:w=y==="vertical"?S.height/2:S.width/2,h.createElement(P2s,{xAxisId:t,yAxisId:n,data:x,dataPointFormatter:GNs,errorBarOffset:w},h.createElement(WNs,jc({},e,{layout:y,needClip:p,data:x,xAxisId:t,yAxisId:n,hide:a,legendType:s,minPointSize:r,activeBar:i,animationBegin:c,animationDuration:d,animationEasing:m,isAnimationActive:f})))}function XNs(e){var{layout:t,barSettings:{dataKey:n,minPointSize:a,hasCustomShape:s},pos:r,bandSize:i,xAxis:c,yAxis:d,xAxisTicks:m,yAxisTicks:f,stackedData:p,displayedData:y,offset:v,cells:$,parentViewBox:x,dataStartIndex:w}=e,S=t==="horizontal"?d:c,k=p?S.scale.domain():null,T=Q$s({numericAxis:S}),R=S.scale.map(T);return y.map((_,P)=>{var j,N,I,z,E,L;if(p){var O=p[P+w];if(O==null)return null;j=V$s(O,k)}else j=jn(_,n),Array.isArray(j)||(j=[T,j]);var V=rNs(a,uZ)(j[1],P);if(t==="horizontal"){var ne,q=d.scale.map(j[0]),M=d.scale.map(j[1]);if(q==null||M==null)return null;N=t5({axis:c,ticks:m,bandSize:i,offset:r.offset,entry:_,index:P}),I=(ne=M??q)!==null&&ne!==void 0?ne:void 0,z=r.size;var F=q-M;if(E=hr(F)?0:F,L={x:N,y:v.top,width:z,height:v.height},Math.abs(V)>0&&Math.abs(E)<Math.abs(V)){var H=Co(E||V)*(Math.abs(V)-Math.abs(E));I-=H,E+=H}}else{var ee=c.scale.map(j[0]),B=c.scale.map(j[1]);if(ee==null||B==null)return null;if(N=ee,I=t5({axis:d,ticks:f,bandSize:i,offset:r.offset,entry:_,index:P}),z=B-ee,E=r.size,L={x:v.left,y:I,width:v.width,height:E},Math.abs(V)>0&&Math.abs(z)<Math.abs(V)){var G=Co(z||V)*(Math.abs(V)-Math.abs(z));z+=G}}if(N==null||I==null||z==null||E==null||!s&&(z===0||E===0))return null;var Q=eo(eo({},_),{},{stackedBarStart:R,x:N,y:I,width:z,height:E,value:p?j:j[1],payload:_,background:L,tooltipPosition:{x:N+z/2,y:I+E/2},parentViewBox:x,originalDataIndex:P},$&&$[P]&&$[P].props);return Q}).filter(Boolean)}function ZNs(e){var t=Va(e,YNs),n=TNs(t.stackId),a=Ga();return h.createElement(zX,{id:t.id,type:"bar"},s=>h.createElement(h.Fragment,null,h.createElement(FX,{legendPayload:LNs(t)}),h.createElement(UNs,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:s}),h.createElement(HX,{type:"bar",id:s,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:a,hasCustomShape:t.shape!=null}),h.createElement(Fs,{zIndex:t.zIndex},h.createElement(QNs,jc({},t,{id:s})))))}var mZ=h.memo(ZNs,Yp);mZ.displayName="Bar";var JNs=["domain","range"],eDs=["domain","range"];function u6(e,t){if(e==null)return{};var n,a,s=tDs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function tDs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function m6(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function pZ(e,t){if(e===t)return!0;var{domain:n,range:a}=e,s=u6(e,JNs),{domain:r,range:i}=t,c=u6(t,eDs);return!m6(n,r)||!m6(a,i)?!1:Yp(s,c)}var nDs=["type"],aDs=["dangerouslySetInnerHTML","ticks","scale"],oDs=["id","scale"];function _P(){return _P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_P.apply(null,arguments)}function p6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function f6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
962t%2?p6(Object(n),!0).forEach(function(a){sDs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function sDs(e,t,n){return(t=rDs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rDs(e){var t=iDs(e,"string");return typeof t=="symbol"?t:t+""}function iDs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function jP(e,t){if(e==null)return{};var n,a,s=lDs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function lDs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function cDs(e){var t=gn(),n=h.useRef(null),a=t2(),{type:s}=e,r=jP(e,nDs),i=C0(a,"xAxis",s),c=h.useMemo(()=>{if(i!=null)return f6(f6({},r),{},{type:i})},[r,i]);return h.useLayoutEffect(()=>{c!=null&&(n.current===null?t(J_s(c)):n.current!==c&&t(ejs({prev:n.current,next:c})),n.current=c)},[c,t]),h.useLayoutEffect(()=>()=>{n.current&&(t(tjs(n.current)),n.current=null)},[t]),null}var dDs=e=>{var{xAxisId:t,className:n}=e,a=Ge(Xj),s=Ga(),r="xAxis",i=Ge(S=>IQ(S,r,t,s)),c=Ge(S=>DQ(S,t)),d=Ge(S=>_As(S,t)),m=Ge(S=>tQ(S,t));if(c==null||d==null||m==null)return null;var{dangerouslySetInnerHTML:f,ticks:p,scale:y}=e,v=jP(e,aDs),{id:$,scale:x}=m,w=jP(m,oDs);return h.createElement(rN,_P({},v,w,{x:d.x,y:d.y,width:c.width,height:c.height,className:Lt("recharts-".concat(r," ").concat(r),n),viewBox:a,ticks:i,axisType:r,axisId:t}))},uDs={allowDataOverflow:Wn.allowDataOverflow,allowDecimals:Wn.allowDecimals,allowDuplicatedCategory:Wn.allowDuplicatedCategory,angle:Wn.angle,axisLine:Yi.axisLine,height:Wn.height,hide:!1,includeHidden:Wn.includeHidden,interval:Wn.interval,label:!1,minTickGap:Wn.minTickGap,mirror:Wn.mirror,orientation:Wn.orientation,padding:Wn.padding,reversed:Wn.reversed,scale:Wn.scale,tick:Wn.tick,tickCount:Wn.tickCount,tickLine:Y
962i.tickLine,tickSize:Yi.tickSize,type:Wn.type,niceTicks:Wn.niceTicks,xAxisId:0},mDs=e=>{var t=Va(e,uDs);return h.createElement(h.Fragment,null,h.createElement(cDs,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),h.createElement(dDs,t))},dN=h.memo(mDs,pZ);dN.displayName="XAxis";var pDs=["type"],fDs=["dangerouslySetInnerHTML","ticks","scale"],gDs=["id","scale"];function NP(){return NP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},NP.apply(null,arguments)}function g6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function h6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?g6(Object(n),!0).forEach(function(a){hDs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function hDs(e,t,n){return(t=yDs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yDs(e){var t=vDs(e,"string");return typeof t=="symbol"?t:t+""}function vDs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function DP(e,t){if(e==null)return{};var n,a,s=bDs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function bDs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function xDs(e){var t=gn(),n=h.useRef(null),a=t2(),{type:s}=e,r=DP(e,pDs),i=C0(a,"yAxis",s),c=h.useMemo(()=>{if(i!=null)return h6(h6({},r),{},{type:i})},[i,r]);return h.useLayoutEffect(()=>{c!=null&&(n.current===null?t(njs(c)):n.current!==c&&t(ajs({prev:n.current,next:c})),n.current=c)},[c,t]),h.useLayoutEffect(()=>()=>{n.current&&(t(ojs(n.current)),n.current=null)},[t]),null}function $Ds(e){var{yAxisId:t,className:n,width:a,label:s}=e,r=h.useRef(null),i=h.useRef(null),c=Ge(Xj),d=Ga(),m=gn(),f="yAxis",p=Ge(P=>MQ(P,t)),y=Ge(P=>NAs(P,t)),v=Ge(P=>IQ(P,f,t,d)),$=Ge(P=>nQ(P,t));if(h.useLayoutEffect(()=>{if(!(a!=="auto"||!p||aN(s)||h.isValidElement(s)||$==null)){var P=r.current;if(P){var j=P.getCalculatedWidth();Math.round(p.width)!==Math.round(j)&&m(sjs({id:t,width:j}))}}},[v,p,m,s,t,a,$]),p==null||y==null||$==null)return null;var{dangerouslySetInnerHTML:x,ticks:w,scale:S}=e,k=DP(e,fDs),{id:T,scale:R}=$,_=DP($,gDs);return h.createElement(rN,NP({},k,_,{ref:r,labelRef:i,x:y.x,y:y.y,tickTextProps:a==="auto"?{width:void 0}:{width:a},width:p.width,height:p.height,className:Lt("recharts-".concat(f," ").concat(f),n),viewBox:c,ticks:v,axisType:f,axisId:t}))}var wDs={allowDataOverflow:Yn.allowDataOverflow,allowDecimals:Yn.allowDecimals,allowDuplicatedCategory:Yn.allowDuplicatedCategory,angle:Yn.angle,axisLine:Yi.axisLine,hide:!1,includeHidden:Yn.includeHidden,interval:Yn.interval,label:!1,minTickGap:Yn.minTickGap,mirror:Yn.mirror,orientation:Yn.orientation,padding:Yn.padding,reversed:Yn.reversed,scale:Yn.scale,tick:Yn.tick,tickCount:Yn.tickCount,tickLine:Y
962i.tickLine,tickSize:Yi.tickSize,type:Yn.type,niceTicks:Yn.niceTicks,width:Yn.width,yAxisId:0},kDs=e=>{var t=Va(e,wDs);return h.createElement(h.Fragment,null,h.createElement(xDs,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),h.createElement($Ds,t))},uN=h.memo(kDs,pZ);uN.displayName="YAxis";var CDs=(e,t)=>t,mN=ce([CDs,Ut,hY,fa,eX,yl,eRs,ma],iRs);function SDs(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function pN(e){var t=e.currentTarget.getBoundingClientRect(),n,a;if(SDs(e)){var s=e.currentTarget.getBBox();n=s.width>0?t.width/s.width:1,a=s.height>0?t.height/s.height:1}else{var r=e.currentTarget;n=r.offsetWidth>0?t.width/r.offsetWidth:1,a=r.offsetHeight>0?t.height/r.offsetHeight:1}var i=(c,d)=>({relativeX:Math.round((c-t.left)/n),relativeY:Math.round((d-t.top)/a)});return"touches"in e?Array.from(e.touches).map(c=>i(c.clientX,c.clientY)):i(e.clientX,e.clientY)}var fZ=rs("mouseClick"),gZ=vy();gZ.startListening({actionCreator:fZ,effect:(e,t)=>{var n=e.payload,a=mN(t.getState(),pN(n));a?.activeIndex!=null&&t.dispatch(WAs({activeIndex:a.activeIndex,activeDataKey:void 0,activeCoordinate:a.activeCoordinate}))}});var MP=rs("mouseMove"),hZ=vy(),Am=null,hd=null,eT=null;hZ.startListening({actionCreator:MP,effect:(e,t)=>{var n=e.payload,a=t.getState(),{throttleDelay:s,throttledEvents:r}=a.eventSettings,i=r==="all"||r?.includes("mousemove");Am!==null&&(cancelAnimationFrame(Am),Am=null),hd!==null&&(typeof s!="number"||!i)&&(clearTimeout(hd),hd=null),eT=pN(n);var c=()=>{var d=t.getState(),m=_y(d,d.tooltip.settings.shared);if(!eT){Am=null,hd=null;return}if(m==="axis"){var f=mN(d,eT);f?.activeIndex!=null?t.dispatch(HQ({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate})):t.dispatch(qQ())}Am=null,hd=null};if(!i){c();return}s==="raf"?Am=requestAnimationFrame(c):typeof s=="number"&&hd===null&&(hd=setTimeout(c,s))}});function ADs(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var y6={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},yZ=Ka({name:"rootProps",initialState:y6,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:y6.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),TDs=yZ.reducer,{updateOptions:RDs}=yZ.actions,PDs=null,_Ds={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},vZ=Ka({name:"polarOptions",initialState:PDs,reducers:_Ds}),{updatePolarOptions:R6s}=vZ.actions,jDs=vZ.reducer,bZ=rs("keyDown"),xZ=rs("focus"),$Z=rs("blur"),z0=vy(),Tm=null,yd=null,Ib=null;z0.startListening({actionCreator:bZ,effect:(e,t)=>{Ib=e.payload,Tm!==null&&(cancelAnimationFrame(Tm),Tm=null);var n=t.getState(),{throttleDelay:a,throttledEvents:s}=n.eventSettings,r=s==="all"||s.includes("keydown");yd!==null&&(typeof a!="number"||!r)&&(clearTimeout(yd),yd=null);var i=()=>{try{var c=t.getState(),d=c.rootProps.accessibilityLayer!==!1;if(!d)return;var{keyboardInteraction:m}=c.tooltip,f=Ib;if(f!=="ArrowRight"&&f!=="ArrowLeft"&&f!=="Enter")return;var p=zg(m,ru(c),Tp(c),Rp(c)),y=p==null?-1:Number(p),v=!Number.isFinite(y)||y<0,$=yl(c),x=ru(c),w=_y(c,c.tooltip.settings.shared);if(f==="Enter"){if(v)return;var S=D$(c,w,"hover",String(m.index));t.dispatch(N$({active:!m.active,activeIndex:m.index,activeCoordinate:S}));return}var k=OAs(c),T=k==="left-to-right"?1:-1,R=f==="ArrowRight"?1:-1,_;if(v){var P=Tp(c),j=Rp(c),N=R*T,I=V=>({active:!1,index:String(V),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(_=-1,N>0){for(var z=0;z<x.length;z++)if(zg(I(z),x,P,j)!=null){_=z;break}}else for(var E=x.length-1;E>=0;E--)if(zg(I(E),x,P,j)!=null){_=E;break}if(_<0)return}else{_=y+R*T;var L=$?.length||x.length;if(L===0||_>=L||_<0)return}var O=D$(c,w,"hover",String(_));t.dispatch(N$({active:!0,activeIndex:_.toString(),activeCoordinate:O}))}finally{Tm=null,yd=null}};if(!r){i();return}a==="raf"?Tm=requestAnimationFrame(i):typeof a=="number"&&yd===null&&(i(),Ib=null,yd=setTimeout(()=>{Ib?i():(yd=null,Tm=null)},a))}});z0.startListening({actionCreator:xZ,effect:(e,t)=>
962{var n=t.getState(),a=n.rootProps.accessibilityLayer!==!1;if(a){var{keyboardInteraction:s}=n.tooltip;if(!s.active&&s.index==null){var r="0",i=_y(n,n.tooltip.settings.shared),c=D$(n,i,"hover",String(r));t.dispatch(N$({active:!0,activeIndex:r,activeCoordinate:c}))}}}});z0.startListening({actionCreator:$Z,effect:(e,t)=>{var n=t.getState(),a=n.rootProps.accessibilityLayer!==!1;if(a){var{keyboardInteraction:s}=n.tooltip;s.active&&t.dispatch(N$({active:!1,activeIndex:s.index,activeCoordinate:s.coordinate}))}}});function wZ(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(n,a)=>{if(a==="currentTarget")return t;var s=Reflect.get(n,a);return typeof s=="function"?s.bind(n):s}})}var Cs=rs("externalEvent"),kZ=vy(),Ob=new Map,pg=new Map,tT=new Map;kZ.startListening({actionCreator:Cs,effect:(e,t)=>{var{handler:n,reactEvent:a}=e.payload;if(n!=null){var s=a.type,r=wZ(a);tT.set(s,{handler:n,reactEvent:r});var i=Ob.get(s);i!==void 0&&(cancelAnimationFrame(i),Ob.delete(s));var c=t.getState(),{throttleDelay:d,throttledEvents:m}=c.eventSettings,f=m,p=f==="all"||f?.includes(s),y=pg.get(s);y!==void 0&&(typeof d!="number"||!p)&&(clearTimeout(y),pg.delete(s));var v=()=>{var w=tT.get(s);try{if(!w)return;var{handler:S,reactEvent:k}=w,T=t.getState(),R={activeCoordinate:UTs(T),activeDataKey:oX(T),activeIndex:iu(T),activeLabel:aX(T),activeTooltipIndex:iu(T),isTooltipActive:BTs(T)};S&&S(R,k)}finally{Ob.delete(s),pg.delete(s),tT.delete(s)}};if(!p){v();return}if(d==="raf"){var $=requestAnimationFrame(v);Ob.set(s,$)}else if(typeof d=="number"){if(!pg.has(s)){v();var x=setTimeout(v,d);pg.set(s,x)}}else v()}}});var NDs=ce([af],e=>e.tooltipItemPayloads),DDs=ce([NDs,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var a=e.find(r=>r.settings.graphicalItemId===n);if(a!=null){var{getPosition:s}=a;if(s!=null)return s(t)}}}),CZ=rs("touchMove"),SZ=vy(),vd=null,Kl=null,v6=null,fg=null;SZ.startListening({actionCreator:CZ,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){fg=wZ(n);var a=t.getState(),{throttleDelay:s,throttledEvents:r}=a.eventSettings,i=r==="all"||r.includes("touchmove");vd!==null&&(cancelAnimationFrame(vd),vd=null),Kl!==null&&(typeof s!="number"||!i)&&(clearTimeout(Kl),Kl=null),v6=Array.from(n.touches).map(d=>pN({clientX:d.clientX,clientY:d.clientY,currentTarget:n.currentTarget}));var c=()=>{if(fg!=null){var d=t.getState(),m=_y(d,d.tooltip.settings.shared);if(m==="axis"){var f,p=(f=v6)===null||f===void 0?void 0:f[0];if(p==null){vd=null,Kl=null;return}var y=mN(d,p);y?.activeIndex!=null&&t.dispatch(HQ({activeIndex:y.activeIndex,activeDataKey:void 0,activeCoordinate:y.activeCoordinate}))}else if(m==="item"){var v,$=fg.touches[0];if(document.elementFromPoint==null||$==null)return;var x=document.elementFromPoint($.clientX,$.clientY);if(!x||!x.getAttribute)return;var w=x.getAttribute(aws),S=(v=x.getAttribute(ows))!==null&&v!==void 0?v:void 0,k=Tu(d).find(_=>_.id===S);if(w==null||k==null||S==null)return;var{dataKey:T}=k,R=DDs(d,w,S);t.dispatch(zQ({activeDataKey:T,activeIndex:w,activeCoordinate:R,activeGraphicalItemId:S}))}vd=null,Kl=null}};if(!i){c();return}s==="raf"?vd=requestAnimationFrame(c):typeof s=="number"&&Kl===null&&(c(),fg=null,Kl=setTimeout(()=>{fg?c():(Kl=null,vd=null)},s))}}});var AZ={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},TZ=Ka({name:"eventSettings",initialState:AZ,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),{setEventSettings:MDs}=TZ.actions,EDs=TZ.reducer,IDs=QG({brush:Cjs,cartesianAxis:rjs,chartData:ORs,errorBars:k2s,eventSettings:EDs,graphicalItems:L_s,layout:B$s,legend:Iws,options:NRs,polarAxis:s_s,polarOptions:jDs,referenceElements:Rjs,renderedTicks:Vjs,rootProps:TDs,tooltip:YAs,zIndex:xRs}),ODs=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return u$s({reducer:IDs,preloadedState:t,middleware:a=>{var s;return a({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((s="es6")!==null&&s!==void 0?s:"")}).concat([gZ.middleware,hZ.middleware,z0.middleware,kZ.middleware,SZ.middleware])},enhancers:a=>{var s=a;return typeof a=="function"&&(s=a()),s.concat(uW({type:"raf"}))},devTools:{serialize:{replacer:ADs},name:"recharts-".concat(n)}})};function LDs(e){var{preloadedState:t,children:n,reduxStoreName:a}=e,s=Ga(),r=h.useRef(null);if(s)return n;r.current==null&&(r.current=ODs(t,a));var i=Hj;return h.createElement(Zws,{context:i,store:r.current},n)}function UDs(e){var{layout:t,margin:n}=e,a=gn(),s=Ga();return h.useEffect(()=>{s||(a(O$s(t)),a(I$s(n)))},[a,s,t,n]),null}var BDs=h.memo(UDs,Yp);function FDs(e){var t=gn();return h.useEffect(()=>{t(RDs(e))},[t,e]),null}var zDs=e=>{var t=gn();return h.useEffect(()=>{t(MDs(e))},[t,e]),null},qDs=h.memo(zDs,Yp);function b6(e){var{zIndex:t,isPanorama:n}=e,a=h.useRef(null),s=gn();return h.useLayoutEffect(()=>(a.current&&s(vRs({zIndex:t,element:a.current,isPanorama:n})),()=>{s(bRs({zIndex:t,isPanorama:n}))}),[s,t,n]),h.createElement("g",{tabIndex:-1,ref:a,className:"recharts-zIndex-layer_".concat(t)})}function x6(e){var{children:t,isPanorama:n}=e,a=Ge(cRs);if(!a||a.length===0)return t;var s=a.filter(i=>i<0),r=a.filter(i=>i>0);return h.createElement(h.Fragment,null,s.map(i=>h.createElement(b6,{key:i,zIndex:i,isPanorama:n})),t,r.map(i=>h.createElement(b6,{key:i,zIndex:i,isPanorama:n})))}var HDs=["children"];function VDs(e,t){if(e==null)return{};var n,a,s=KDs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function KDs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function F$(){return F$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},F$.apply(null,arguments)}var GDs={width:"100%",height:"100%",display:"block"},WDs=h.forwardRef((e,t)=>
962{var n=Jj(),a=e2(),s=BW();if(!xp(n)||!xp(a))return null;var{children:r,otherAttributes:i,title:c,desc:d}=e,m,f;return i!=null&&(typeof i.tabIndex=="number"?m=i.tabIndex:m=s?0:void 0,typeof i.role=="string"?f=i.role:f=s?"application":void 0),h.createElement(Mj,F$({},i,{title:c,desc:d,role:f,tabIndex:m,width:n,height:a,style:GDs,ref:t}),r)}),YDs=e=>{var{children:t}=e,n=Ge(f0);if(!n)return null;var{width:a,height:s,y:r,x:i}=n;return h.createElement(Mj,{width:a,height:s,x:i,y:r},t)},$6=h.forwardRef((e,t)=>{var{children:n}=e,a=VDs(e,HDs),s=Ga();return s?h.createElement(YDs,null,h.createElement(x6,{isPanorama:!0},n)):h.createElement(WDs,F$({ref:t},a),h.createElement(x6,{isPanorama:!1},n))});function QDs(){var e=gn(),[t,n]=h.useState(null),a=Ge(nws);return h.useEffect(()=>{if(t!=null){var s=t.getBoundingClientRect(),r=s.width/t.offsetWidth;ht(r)&&r!==a&&e(U$s(r))}},[t,e,a]),n}function w6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function XDs(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w6(Object(n),!0).forEach(function(a){ZDs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function ZDs(e,t,n){return(t=JDs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function JDs(e){var t=eMs(e,"string");return typeof t=="symbol"?t:t+""}function eMs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function $c(){return $c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},$c.apply(null,arguments)}var tMs=()=>(KRs(),null);function z$(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var nMs=h.forwardRef((e,t)=>{var n,a,s=h.useRef(null),[r,i]=h.useState({containerWidth:z$((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:z$((a=e.style)===null||a===void 0?void 0:a.height)}),c=h.useCallback((m,f)=>{i(p=>{var y=Math.round(m),v=Math.round(f);return p.containerWidth===y&&p.containerHeight===v?p:{containerWidth:y,containerHeight:v}})},[]),d=h.useCallback(m=>{if(typeof t=="function"&&t(m),s.current!=null&&(s.current.disconnect(),s.current=null),m!=null&&typeof ResizeObserver<"u"){var{width:f,height:p}=m.getBoundingClientRect();c(f,p);var y=$=>{var x=$[0];if(x!=null){var{width:w,height:S}=x.contentRect;c(w,S)}},v=new ResizeObserver(y);v.observe(m),s.current=v}},[t,c]);return h.useEffect(()=>()=>{var m=s.current;m?.disconnect()},[c]),h.createElement(h.Fragment,null,h.createElement(xy,{width:r.containerWidth,height:r.containerHeight}),h.createElement("div",$c({ref:d},e)))}),aMs=h.forwardRef((e,t)=>{var{width:n,height:a}=e,[s,r]=h.useState({containerWidth:z$(n),containerHeight:z$(a)}),i=h.useCallback((d,m)=>{r(f=>{var p=Math.round(d),y=Math.round(m);return f.containerWidth===p&&f.containerHeight===y?f:{containerWidth:p,containerHeight:y}})},[]),c=h.useCallback(d=>{if(typeof t=="function"&&t(d),d!=null){var{width:m,height:f}=d.getBoundingClientRect();i(m,f)}},[t,i]);return h.createElement(h.Fragment,null,h.createElement(xy,{width:s.containerWidth,height:s.containerHeight}),h.createElement("div",$c({ref:c},e)))}),oMs=h.forwardRef((e,t)=>{var{width:n,height:a}=e;return h.createElement(h.Fragment,null,h.createElement(xy,{width:n,height:a}),h.createElement("div",$c({ref:t},e)))}),sMs=h.forwardRef((e,t)=>{var{width:n,height:a}=e;return typeof n=="string"||typeof a=="string"?h.createElement(aMs,$c({},e,{ref:t})):typeof n=="number"&&typeof a=="number"?h.createElement(oMs,$c({},e,{width:n,height:a,ref:t})):h.createElement(h.Fragment,null,h.createElement(xy,{width:n,height:a}),h.createElement("div",$c({ref:t},e)))});function rMs(e){return e?nMs:sMs}var iMs=h.forwardRef((e,t)=>
962{var{children:n,className:a,height:s,onClick:r,onContextMenu:i,onDoubleClick:c,onMouseDown:d,onMouseEnter:m,onMouseLeave:f,onMouseMove:p,onMouseUp:y,onTouchEnd:v,onTouchMove:$,onTouchStart:x,style:w,width:S,responsive:k,dispatchTouchEvents:T=!0}=e,R=h.useRef(null),_=gn(),[P,j]=h.useState(null),[N,I]=h.useState(null),z=QDs(),E=PW(),L=E?.width>0?E.width:S,O=E?.height>0?E.height:s,V=h.useCallback(ye=>{z(ye),typeof t=="function"&&t(ye),j(ye),I(ye),ye!=null&&(R.current=ye)},[z,t,j,I]),ne=h.useCallback(ye=>{_(fZ(ye)),_(Cs({handler:r,reactEvent:ye}))},[_,r]),q=h.useCallback(ye=>{_(MP(ye)),_(Cs({handler:m,reactEvent:ye}))},[_,m]),M=h.useCallback(ye=>{_(qQ()),_(Cs({handler:f,reactEvent:ye}))},[_,f]),F=h.useCallback(ye=>{_(MP(ye)),_(Cs({handler:p,reactEvent:ye}))},[_,p]),H=h.useCallback(()=>{_(xZ())},[_]),ee=h.useCallback(()=>{_($Z())},[_]),B=h.useCallback(ye=>{_(bZ(ye.key))},[_]),G=h.useCallback(ye=>{_(Cs({handler:i,reactEvent:ye}))},[_,i]),Q=h.useCallback(ye=>{_(Cs({handler:c,reactEvent:ye}))},[_,c]),de=h.useCallback(ye=>{_(Cs({handler:d,reactEvent:ye}))},[_,d]),Y=h.useCallback(ye=>{_(Cs({handler:y,reactEvent:ye}))},[_,y]),pe=h.useCallback(ye=>{_(Cs({handler:x,reactEvent:ye}))},[_,x]),se=h.useCallback(ye=>{T&&_(CZ(ye)),_(Cs({handler:$,reactEvent:ye}))},[_,T,$]),we=h.useCallback(ye=>{_(Cs({handler:v,reactEvent:ye}))},[_,v]),me=rMs(k);return h.createElement(mX.Provider,{value:P},h.createElement(uG.Provider,{value:N},h.createElement(me,{width:L??w?.width,height:O??w?.height,className:Lt("recharts-wrapper",a),style:XDs({position:"relative",cursor:"default",width:L,height:O},w),onClick:ne,onContextMenu:G,onDoubleClick:Q,onFocus:H,onBlur:ee,onKeyDown:B,onMouseDown:de,onMouseEnter:q,onMouseLeave:M,onMouseMove:F,onMouseUp:Y,onTouchEnd:we,onTouchMove:se,onTouchStart:pe,ref:V},h.createElement(tMs,null),n)))}),lMs=["width","height","responsive","children","className","style","compact","title","desc"];function cMs(e,t){if(e==null)return{};var n,a,s=dMs(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function dMs(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var uMs=h.forwardRef((e,t)=>{var{width:n,height:a,responsive:s,children:r,className:i,style:c,compact:d,title:m,desc:f}=e,p=cMs(e,lMs),y=Is(p);return d?h.createElement(h.Fragment,null,h.createElement(xy,{width:n,height:a}),h.createElement($6,{otherAttributes:y,title:m,desc:f},r)):h.createElement(iMs,{className:i,style:c,width:n,height:a,responsive:s??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},h.createElement($6,{otherAttributes:y,title:m,desc:f,ref:t},h.createElement(_js,null,r)))});function EP(){return EP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},EP.apply(null,arguments)}function k6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,a)}return n}function mMs(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?k6(Object(n),!0).forEach(function(a){pMs(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function pMs(e,t,n){return(t=fMs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fMs(e){var t=gMs(e,"string");return typeof t=="symbol"?t:t+""}function gMs(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var hMs={top:5,right:5,bottom:5,left:5},yMs=mMs({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:hMs,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},AZ),RZ=h.forwardRef(function(t,n){var a,s=Va(t.categoricalChartProps,yMs),{chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:c,tooltipPayloadSearcher:d,categoricalChartProps:m}=t,f={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:c,tooltipPayloadSearcher:d,eventEmitter:void 0};return h.createElement(LDs,{preloadedState:{options:f},reduxStoreName:(a=m.id)!==null&&a!==void 0?a:r},h.createElement(kjs,{chartData:m.data}),h.createElement(BDs,{layout:s.layout,margin:s.margin}),h.createElement(qDs,{throttleDelay:s.throttleDelay,throttledEvents:s.throttledEvents}),h.createElement(FDs,{baseValue:s.baseValue,accessibilityLayer:s.accessibilityLayer,barCategoryGap:s.barCategoryGap,maxBarSize:s.maxBarSize,stackOffset:s.stackOffset,barGap:s.barGap,barSize:s.barSize,syncId:s.syncId,syncMethod:s.syncMethod,className:s.className,reverseStackOrder:s.reverseStackOrder}),h.createElement(uMs,EP({},s,{ref:n})))}),vMs=["axis","item"],bMs=h.forwardRef((e,t)=>
962h.createElement(RZ,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:vMs,tooltipPayloadSearcher:pX,categoricalChartProps:e,ref:t})),xMs=["axis"],$Ms=h.forwardRef((e,t)=>h.createElement(RZ,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:xMs,tooltipPayloadSearcher:pX,categoricalChartProps:e,ref:t}));function wMs({active:e,payload:t,label:n,valueFormatter:a,labelFormatter:s}){const{t:r}=W();if(!e||!t?.length)return null;const i=Svs(t.filter(f=>f?.value!=null));if(!i.length)return null;const c=i.reduce((f,p)=>f+(Number(p.value)||0),0),d=a??(f=>String(f)),m=s?s(n):String(n??"");return o.jsxs("div",{className:"min-w-56 rounded-lg border border-[color:var(--border)] bg-[color:var(--popover)] px-3 py-2.5 text-xs text-[color:var(--popover-foreground)] shadow-[0_18px_60px_rgba(13,17,23,0.14)]",children:[m?o.jsx("div",{className:"mb-2 font-medium text-[color:var(--muted-foreground)]",children:m}):null,o.jsx("div",{className:"space-y-1.5",children:i.map(f=>{const p=Number(f.value)||0,y=c>0?p/c*100:0;return o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"size-2 shrink-0 rounded-full",style:{backgroundColor:f.color??f.fill}}),o.jsx("span",{className:"mr-4 max-w-44 truncate text-[color:var(--foreground)]",children:f.name}),o.jsx("span",{className:"ml-auto tabular-nums text-[color:var(--foreground)]",children:d(p)}),o.jsxs("span",{className:"w-16 text-right tabular-nums text-[color:var(--muted-foreground)]",children:[y.toFixed(2),"%"]})]},String(f.dataKey))})}),i.length>1?o.jsxs("div",{className:"mt-2 flex items-center gap-2 border-t border-[color:var(--border)] pt-2",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:r("common.total")}),o.jsx("span",{className:"ml-auto font-semibold tabular-nums text-[color:var(--foreground)]",children:d(c)})]}):null]})}function PZ({data:e,xAxisKey:t,series:n,valueFormatter:a,xTickFormatter:s,layout:r="horizontal",maxBarSize:i=32,...c}){return o.jsx(Nj,{...c,hasData:e.length>0,children:o.jsxs(bMs,{data:e,layout:r,margin:{top:8,right:8,left:8,bottom:8},children:[o.jsx(iN,{strokeDasharray:"3 3",stroke:"var(--border)"}),o.jsx(dN,{dataKey:r==="horizontal"?t:void 0,type:r==="horizontal"?"category":"number",tick:{fontSize:11},stroke:"var(--muted-foreground)",tickFormatter:s}),o.jsx(uN,{dataKey:r==="vertical"?t:void 0,type:r==="vertical"?"category":"number",tick:{fontSize:11},stroke:"var(--muted-foreground)",tickFormatter:r==="horizontal"?a:void 0}),o.jsx(hX,{...iG,cursor:{fill:"var(--muted)",opacity:.4},content:o.jsx(wMs,{valueFormatter:a,labelFormatter:s})}),o.jsx(o2,{iconType:"circle",wrapperStyle:lG}),n.map((d,m)=>o.jsx(mZ,{dataKey:d.dataKey,name:d.name??d.dataKey,fill:Yw(d.colorIndex??m+1),stackId:d.stackId},d.dataKey))]})})}function _Z({data:e,xAxisKey:t,series:n,valueFormatter:a,xTickFormatter:s,...r}){return o.jsx(Nj,{...r,hasData:e.length>0,children:o.jsxs($Ms,{data:e,margin:{top:8,right:8,left:8,bottom:8},children:[o.jsx(iN,{strokeDasharray:"3 3",stroke:"var(--border)"}),o.jsx(dN,{dataKey:t,tick:{fontSize:11},stroke:"var(--muted-foreground)",tickFormatter:s}),o.jsx(uN,{tick:{fontSize:11},stroke:"var(--muted-foreground)",tickFormatter:a}),o.jsx(hX,{...iG,formatter:a}),n.length>1?o.jsx(o2,{iconType:"circle",wrapperStyle:lG}):null,n.map((i,c)=>{const d=Yw(i.colorIndex??c+1);return o.jsx(iZ,{type:"monotone",dataKey:i.dataKey,name:i.name??i.dataKey,stroke:d,fill:d,fillOpacity:.15,stackId:i.stackId},i.dataKey)})]})})}const C6=[1,10,50,100,300,500,1e3,1500,3e3];function kMs(e,t,n=new Date,a="en"){const s=new Map(e.map(v=>[v.day.slice(0,10),v])),r=TMs(n),i=new Date(r);i.setDate(r.getDate()-t+1),i.setDate(i.getDate()-i.getDay());const c=[];for(const v=new Date(i);v<=r;v.setDate(v.getDate()+1)){const $=RMs(v),x=s.get($),w=Number(x?.billedCredit??0);c.push({date:$,label:new Intl.DateTimeFormat(a,{month:"short",day:"numeric"}).format(v),credit:w,requests:x?.requestCount??0,tokens:(x?.inputTokens??0)+(x?.outputTokens??0),level:0})}const d=c.reduce((v,$)=>Math.max(v,$.credit),0),m=c.filter(q$).length;let f=null;for(const v of c)v.level=AMs(v),v.tokens>0&&(!f||v.tokens>f.tokens)&&(f=v);const p=[];for(let v=0;v<c.length;v+=7)p.push(c.slice(v,v+7));const y=c.reduce((v,$)=>
962v+$.credit,0);return{weeks:p,activeDays:m,totalCredit:y,averageDailyCredit:m>0?y/m:0,maxCredit:d,peakDay:f}}function CMs(e){const t=e.flat();let n=0,a=0;for(const r of t)q$(r)?(a+=1,a>n&&(n=a)):a=0;let s=0;for(let r=t.length-1;r>=0&&q$(t[r]);r-=1)s+=1;return{current:s,longest:n}}function SMs(e){if(e<=0)return 0;let t=1;for(let n=1;n<C6.length&&!(e<C6[n]);n+=1)t+=1;return t}function AMs(e){const t=SMs(e.requests);return t>0||!q$(e)?t:1}function q$(e){return e.requests>0||e.tokens>0||e.credit>0}function TMs(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function RMs(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function jZ(e,t){const n=new Map,a=new Map;for(const d of e){let m=n.get(d.bucket);m||(m={bucket:d.bucket},n.set(d.bucket,m)),m[d.series]=(Number(m[d.series])||0)+d.value,a.set(d.series,(a.get(d.series)??0)+d.value)}const s=[...a.keys()].sort((d,m)=>d==="(other)"?1:m==="(other)"?-1:(a.get(m)??0)-(a.get(d)??0)),r=(d,m)=>d<m?-1:d>m?1:0,c=(t&&t.length?[...new Set([...t,...n.keys()])].sort(r):[...n.keys()].sort(r)).map(d=>n.get(d)??{bucket:d});for(const d of c)for(const m of s)d[m]==null&&(d[m]=0);return{rows:c,series:s}}function NZ(e,t,n){if(!e||!t)return[];const a=new Date(e),s=new Date(t);if(Number.isNaN(a.getTime())||Number.isNaN(s.getTime())||s.getTime()<a.getTime())return[];const r=PMs(a,n),i=s.getTime(),c=[];for(let d=0;r.getTime()<=i&&d<9e3;d++)c.push(r.toISOString()),_Ms(r,n);return c}function PMs(e,t){if(t==="hour")return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours());if(t==="day")return new Date(e.getFullYear(),e.getMonth(),e.getDate());const n=(e.getDay()+6)%7;return new Date(e.getFullYear(),e.getMonth(),e.getDate()-n)}function _Ms(e,t){t==="hour"?e.setHours(e.getHours()+1):t==="day"?e.setDate(e.getDate()+1):e.setDate(e.getDate()+7)}function Zr(e){if(!Number.isFinite(e))return"0";const t=Math.abs(e);return t>=1e9?`${nT(e/1e9)}B`:t>=1e6?`${nT(e/1e6)}M`:t>=1e3?`${nT(e/1e3)}K`:new Intl.NumberFormat("en").format(e)}function nT(e){return e.toFixed(2).replace(/\.?0+$/,"")}function jMs(e,t){if(!e||!t)return"week";const n=new Date(e).getTime(),a=new Date(t).getTime();if(!Number.isFinite(n)||!Number.isFinite(a)||a<=n)return"day";const s=(a-n)/864e5;return s<=2.05?"hour":s<=31?"day":"week"}function S6(e){if(!e)return;const t=new Date(e);if(!Number.isNaN(t.getTime()))return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}const yx=864e5;function H$(e){return Date.parse(`${e}T00:00:00Z`)}function A6(e){return new Date(e).toISOString().slice(0,10)}function NMs(e,t){if(!e||!t)return null;const n=H$(e),a=H$(t);if(!Number.isFinite(n)||!Number.isFinite(a)||a<n)return null;const s=Math.round((a-n)/yx)+1,r=n-yx;return{startDate:A6(r-(s-1)*yx),endDate:A6(r)}}function DMs(e,t){return t==null||t===0||!Number.isFinite(t)?null:(e-t)/t*100}function MMs(e,t,n){if(!t||!n)return null;const a=H$(t),s=H$(n);if(!Number.isFinite(a)||!Number.isFinite(s)||s<a)return null;const r=Math.round((s-a)/yx)+1;return r<=0?null:e/r*30}const EMs=["last1h","today","yesterday","last7d","last30d","thisMonth","byMonth","custom","all"],IMs={preset:"last30d"},T6=["preset","from","to"];function OMs(){const{t:e,i18n:t}=W(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>qw(n,IMs),[n]);function i(O){a({...Hw(O)})}const c=S6(r.from),d=S6(r.to),m=jMs(r.from,r.to),f=oys({startDate:c,endDate:d,granularity:m}),p=BK(365),y=kj(),v=qa(),[$,x]=h.useState("tokens"),w=kS({groupBy:"model",metric:$,granularity:m,startDate:c,endDate:d}),S=kS({groupBy:"tokenType",metric:"tokens",granularity:m,startDate:c,endDate:d}),k=kS({groupBy:"apiKey",metric:$,granularity:m,startDate:c,endDate:d}),T=h.useMemo(()=>NZ(r.from,r.to,m),[r.from,r.to,m]),R=f.data,_=R?.summary,P=y.data?.items?.length??0;_?.requestCount;const j=h.useMemo(()=>NMs(c,d),[c,d]),N=OK(j??{},{enabled:j!=null}),I=j?N.data:void 0,z=h.useMemo(()=>{const O=new Map;for(const V of R?.topApiKeys??[])O.set(V.key,V.displayName);return O},[R?.topApiKeys]);if(!f.isPending&&!y.isPending&&P===0)return o.jsx(QMs,{});const L=f.isFetching&&!f.isPending;return o.jsxs(Vt,{title:e("usage.title",{defaultValue:"Usage"}),description:e("usage.description",{defaultValue:"Balance, burn rate, and where your spend goes."}),action:o.jsxs("div",{className:"grid w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] gap-2 sm:flex sm:w-auto
962sm:items-center",children:[o.jsx(uh,{value:r,onChange:i,presets:EMs,locale:t.language,labels:fh(e,LMs(e)),minDate:v.data?.user.createdAt,className:"w-full justify-start"}),o.jsx(nn,{show:Zt(n,T6),onReset:()=>s(T6),labelKey:"common.reset",className:"col-span-2 justify-self-start sm:col-span-1 sm:justify-self-auto"}),o.jsxs(K,{variant:"outline",size:"icon",onClick:()=>f.refetch(),disabled:L,"aria-busy":L,className:"sm:h-9 sm:w-auto sm:px-3","aria-label":e("usage.refresh",{defaultValue:"Refresh"}),children:[o.jsx(Vp,{className:X("size-3.5",L&&"animate-spin")}),o.jsx("span",{className:"hidden sm:inline",children:e("usage.refresh",{defaultValue:"Refresh"})})]})]}),children:[f.isError?o.jsx(Qt,{title:e("usage.error.title",{defaultValue:"Could not load usage"}),description:f.error instanceof Error?f.error.message:void 0,action:o.jsx(K,{size:"sm",variant:"outline",onClick:()=>f.refetch(),children:e("common.retry",{defaultValue:"Retry"})})}):null,o.jsx(BMs,{availableCredit:Number(v.data?.wallet.availableCredit??0),spend30dUsd:Number(_?.totalBilledCredit??0)}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[o.jsx(zMs,{summary:_,prev:I,loading:f.isPending,refreshing:L}),o.jsx(qMs,{summary:_,prev:I,loading:f.isPending,refreshing:L}),o.jsx(HMs,{summary:_,prev:I,loading:f.isPending,refreshing:L}),o.jsx(VMs,{summary:_,prev:I,startDate:c,endDate:d,loading:f.isPending,refreshing:L})]}),o.jsx(WMs,{trend:p.data?.byDate??[],days:365,loading:p.isPending}),o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("usage.breakdown",{defaultValue:"Usage breakdown"})}),o.jsx(YMs,{value:$,onChange:x})]}),o.jsx(sT,{title:e("usage.byModel",{defaultValue:"By model"}),points:w.data?.points??[],metric:$,bucketAxis:T,granularity:m,loading:w.isPending,error:w.isError?w.error:null}),o.jsx(sT,{title:e("usage.byApiKey",{defaultValue:"By API key"}),points:k.data?.points??[],metric:$,bucketAxis:T,granularity:m,loading:k.isPending,error:k.isError?k.error:null,seriesLabel:O=>O==="(other)"?e("usage.other",{defaultValue:"Other"}):z.get(O)??O}),o.jsx(sT,{title:e("usage.byTokenType",{defaultValue:"By token type"}),points:S.data?.points??[],metric:"tokens",bucketAxis:T,granularity:m,loading:S.isPending,error:S.isError?S.error:null,seriesLabel:O=>UMs(O,e)}),o.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[o.jsx(P6,{title:e("usage.topModels",{defaultValue:"Top models"}),rows:R?.topModels??[],loading:f.isPending,linkFor:O=>R6({model:O.key,from:c,to:d})}),o.jsx(P6,{title:e("usage.topKeys",{defaultValue:"Top API keys"}),rows:R?.topApiKeys??[],loading:f.isPending,linkFor:O=>R6({apiKey:O.key,from:c,to:d})})]})]})}function R6(e){const t=new URLSearchParams;e.model&&t.set("model",e.model),e.apiKey&&t.set("apiKey",e.apiKey),e.from&&t.set("from",e.from),e.to&&t.set("to",e.to);const n=t.toString();return`${Be.logs}${n?`?${n}`:""}`}function aT(e){if(e==null||!Number.isFinite(e))return"â";if(e<1e3)return`${Math.round(e)} ms`;if(e<6e4)return`${(e/1e3).toFixed(2)} s`;const t=Math.round(e/1e3);return`${Math.floor(t/60)}m ${t%60}s`}function LMs(e){return{last1h:e("usage.range.last1h",{defaultValue:"Last 1 hour"}),today:e("usage.range.today",{defaultValue:"Today"}),yesterday:e("usage.range.yesterday",{defaultValue:"Yesterday"}),last7d:e("usage.range.last7d",{defaultValue:"Last 7 days"}),last30d:e("usage.range.last30d",{defaultValue:"Last 30 days"}),thisMonth:e("usage.range.thisMonth",{defaultValue:"This month"}),byMonth:e("usage.range.byMonth",{defaultValue:"By month"}),custom:e("usage.range.custom",{defaultValue:"Custom"}),all:e("usage.range.all",{defaultValue:"All time"})}}function UMs(e,t){switch(e){case"prompt":return t("usage.tokenType.prompt",{defaultValue:"Input"});case"completion":return t("usage.tokenType.completion",{defaultValue:"Output"});case"cache_read":return t("usage.tokenType.cacheRead",{defaultValue:"Cache read"});case"cache_write":return t("usage.tokenType.cacheWrite",{defaultValue:"Cache write"});case"cache_write_5m":return t("usage.tokenType.cacheWrite5m",{defaultValue:"Cache write 5m"});case"cache_write_1h":return t("usage.tokenType.cacheWrite1h",{defaultValue:"Cache write 1h"});default:return e}}function BMs({availableCredit:e,spend30dUsd:t}){const{t:n}=W(),a=Te(),{daysRemaining:s,avgDailyUsd:r}=FV(e,t);if(s==null||s>=30)return null;const i=s<3?"error":s<7?"warning":"normal",c=i==="error"?"var(--destructive)":i==="warning"?"var(--warning, #9a6700)":"var(--muted-foreground)";return o.jsxs(Ee,{className:"flex flex-wrap items-center justify-between gap-3 p-3",style:{borderColor:i==="normal"?void 0:c},children:[o.jsx("p",{className:"text-sm",style:{color:i==="normal"?void 0:c},children:n("usage.burnRate",{defaultValue:"Estimated {{days}} days remaining at {{rate}}/day current rate.",days:Math.floor(s),rate:a.currency(r,"USD",2)})}),o.jsx(Ta,{to:Be.billing,className:ur({size:"sm"}),children:n("usage.topUp",{defaultValue:"Top up"})})]})}function FMs({value:e,previous:t,title:n}){const a=e==null?null:DMs(e,t);if(a==null)return null;const s=Math.round(a);return s===0?null:o.jsxs("span",{title:n,className:"text-11 tabular-nums text-[color:var(--muted-foreground)]",children:[s>0?"â":"â",Math.min(Math.abs(s),999),"%"]})}function q0({label:e,value:t,format:n,sub:a,loading:s,refreshing:r,breakdown:i,note:c,previousValue:d}){const{t:m}=W(),f=o.jsxs(Ee,{className:X("p-5 transition-opacity duration-150 motion-reduce:transition-none",r&&"opacity-80"),"aria-busy":r?!0:void 0,children:[o.jsxs("div",{className:"flex items-center justify-between gap-2 text-11 font-medium text-[color:var(--muted-foreground)]",children:[o.jsx("span",{children:e}),c&&!s?o.jsx("span",{className:"truncate tabular-nums",children:c}):null]}),o.jsxs("div",{className:"mt-1 flex min-h-8 items-baseline gap-2",children:[o.jsx("span",{className:"text-[22px] font-semibold tabular-nums tracking-tight text-[color:var(--foreground)]",children:s?"â":o.jsx(Ho,{value:t,format:n})}),s?null:o.jsx(FMs,{value:t,previous:d,title:m("usage.kpi.vsPrevious",{defaultValue:"vs previous period"})})]}),s?o.jsx(Rt,{className:"mt-1.5 h-3 w-24"}):o.jsx("div",{className:"mt-1 truncate text-11 text-[color:var(--muted-foreground)]",children:a})]});return!i||s?f:o.jsxs(Ns,{children:[o.jsx(Ds,{asChild:!0,children:o.jsx("div",{className:"cursor-default",children:f})}),o.jsx(ns,{className:"w-64 text-xs",children:i})]})}function Bm({label:e,value:t}){return o.jsxs("div",{className:"flex items-center justify-between py-0.5",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:"tabular-nums",children:t})]})}function zMs({summary:e,prev:t,loading:n,refreshing:a}){const{t:s}=W(),r=Te(),i=e?.totalInputTokens??0,c=e?.totalOutputTokens??0,d=e?.totalCacheReadTokens??0,m=d+(e?.totalCacheWriteTokens??0),f=[`${Zr(i)} ${s("usage.in",{defaultValue:"in"})}`,...m>0?[`${Zr(m)} ${s("usage.cache",{defaultValue:"cache"})}`]:[],`${Zr(c)} ${s("usage.out",{defaultValue:"out"})}`],p=i+d,y=p>0?s("usage.kpi.cacheHit",{defaultValue:"{{rate}}% cached",rate:Math.round(d/p*100)}):void 0;return o.jsx(q0,{label:s("usage.kpi.tokens",{defaultValue:"Tokens"}),value:e?.totalTokens??0,format:v=>Zr(Math.round(v)),loading:n,refreshing:a,note:y,previousValue:t?t.totalTokens??0:void 0,sub:f.join(" · "),breakdown:o.jsxs("div",{children:[o.jsx(Bm,{label:s("usage.tokenType.prompt",{defaultValue:"Input"}),value:r.number(i)}),o.jsx(Bm,{label:s("usage.tokenType.completion",{defaultValue:"Output"}),value:r.number(c)}),o.jsx(Bm,{label:s("usage.tokenType.cacheRead",{defaultValue:"Cache read"}),value:r.number(e?.totalCacheReadTokens??0)}),o.jsx(Bm,{label:s("usage.tokenType.cacheWrite",{defaultValue:"Cache write"}),value:r.number(e?.totalCacheWriteTokens??0)})]})})}function qMs({summary:e,prev:t,loading:n,refreshing:a}){const{t:s}=W(),r=Te(),i=e?.requestCount??0,c=e?.successCount??0,d=i>0?Math.round(c/i*1e3)/10:0;return o.jsx(q0,{label:s("usage.kpi.requests",{defaultValue:"Requests"}),value:i,format:m=>r.number(Math.round(m)),loading:n,refreshing:a,previousValue:t?t.requestCount??0:void 0,sub:s("usage.kpi.successRate",{defaultValue:"{{rate}}% success",rate:d}),breakdown:o.jsxs("div",{children:[o.jsx(Bm,{label:s("usage.requests.success",{defaultValue:"Success"}),value:r.number(c)}),o.jsx(Bm,{label:s("usage.requests.failed",{defaultValue:"Failed"}),value:r.number(Math.max(0,i-c))})]})})}function HMs({summary:e,prev:t,loading:n,refreshing:a}){const{t:s}=W(),r=e?.averageTextDurationMs??null,i=e?.averageMediaDurationMs??null,c=[`${s("usage.kpi.textDuration",{defaultValue:"text"})} ${aT(r)}`];return i!=null&&i>0&&c.push(`${s("usage.kpi.mediaDuration",{defaultValue:"image/video"})} ${aT(i)}`),o.jsx(q0,{label:s("usage.kpi.latency",{defaultValue:"Avg latency"}),value:e?.averageFirstTokenMs??null,format:aT,loading:n,refreshing:a,previousValue:t?t.averageFirstTokenMs:void 0,sub:c.join(" · ")})}
962function VMs({summary:e,prev:t,startDate:n,endDate:a,loading:s,refreshing:r}){const{t:i}=W(),c=Te(),d=Number(e?.totalBilledCredit??0),m=MMs(d,n,a),f=m!=null?i("usage.kpi.projected",{defaultValue:"â {{amount}}/mo",amount:c.currency(m,"USD",2)}):void 0;return o.jsx(q0,{label:i("usage.kpi.spend",{defaultValue:"Spend"}),value:d,format:p=>c.currency(p,"USD",4),loading:s,refreshing:r,note:f,previousValue:t?Number(t.totalBilledCredit):void 0,sub:i("usage.kpi.spendSub",{defaultValue:"billed this period"})})}const oT=3,V$=30,IP=14,KMs=24;function GMs(e,t){const n=Math.max(8,Math.floor((e-V$+oT)/(IP+oT))),a=Math.min(t,n),s=Math.min(KMs,Math.max(IP,Math.floor((e-V$-(a-1)*oT)/a)));return{cols:a,cell:s}}function WMs({trend:e,days:t,loading:n}){const{t:a}=W(),s=Te(),r=h.useMemo(()=>kMs(e,t,void 0,s.locale),[e,t,s.locale]),i=r.weeks.length,c=h.useRef(i);c.current=i;const[d,m]=h.useState(()=>({cols:i,cell:IP})),f=h.useRef(null),p=["var(--muted)","var(--heat-1)","var(--heat-2)","var(--heat-3)","var(--heat-4)","var(--heat-5)","var(--heat-6)","var(--heat-7)","var(--heat-8)","var(--heat-9)"],y=h.useMemo(()=>CMs(r.weeks),[r.weeks]),v=h.useCallback(k=>{if(f.current?.disconnect(),!k)return;const T=_=>m(GMs(_,c.current));T(k.clientWidth);const R=new ResizeObserver(([_])=>T(_.contentRect.width));R.observe(k),f.current=R},[]),$=d.cell,x=h.useMemo(()=>i>d.cols?r.weeks.slice(-d.cols):r.weeks,[r.weeks,i,d.cols]),w=h.useMemo(()=>{const k=new Map;if(!x.length)return k;let T=new Date(x[0][0].date).getMonth(),R=-10;for(let _=1;_<x.length;_+=1){const P=new Date(x[_][0].date),j=P.getMonth();j!==T&&(T=j,_-R>=3&&(k.set(_,s.monthShort(P)),R=_))}return k},[x]),S=["",a("usage.weekday.mon",{defaultValue:"Mon"}),"",a("usage.weekday.wed",{defaultValue:"Wed"}),"",a("usage.weekday.fri",{defaultValue:"Fri"}),""];return o.jsxs(Ee,{className:"p-4",children:[o.jsx("h3",{className:"mb-3 text-sm font-semibold",children:a("usage.activity",{defaultValue:"Activity"})}),n?o.jsx(Rt,{className:"h-24 w-full"}):r.activeDays===0?o.jsx("div",{className:"grid h-24 place-items-center text-xs text-[color:var(--muted-foreground)]",children:a("usage.activityEmpty",{defaultValue:"No activity in this range"})}):o.jsxs("div",{className:"flex flex-col gap-6 lg:flex-row lg:items-center lg:gap-8",children:[o.jsxs("div",{ref:v,className:"min-w-0 lg:flex-1",children:[o.jsx("div",{className:"mb-3 flex gap-[3px] text-2xs leading-none text-[color:var(--muted-foreground)]",style:{paddingLeft:V$},children:x.map((k,T)=>o.jsx("div",{className:"relative flex-1",children:w.has(T)?o.jsx("span",{className:"absolute left-0 top-0 whitespace-nowrap",children:w.get(T)}):null},T))}),o.jsxs("div",{className:"flex gap-1.5",children:[o.jsx("div",{className:"flex w-6 shrink-0 flex-col gap-[3px] text-2xs text-[color:var(--muted-foreground)]",children:S.map((k,T)=>o.jsx("div",{style:{height:$,lineHeight:`${$}px`},children:k},T))}),o.jsx("div",{className:"flex min-w-0 flex-1 gap-[3px] overflow-hidden",role:"grid","aria-label":a("usage.activity",{defaultValue:"Activity"}),children:x.map((k,T)=>o.jsx("div",{className:"flex min-w-0 flex-1 flex-col gap-[3px]",children:k.map(R=>o.jsxs(Ns,{openDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsx("div",{role:"gridcell","aria-label":`${R.label}: ${s.currency(R.credit,"USD",4)}`,className:"w-full rounded-[3px]",style:{height:$,backgroundColor:p[R.level]}})}),o.jsxs(ns,{className:"w-auto text-xs",children:[o.jsx("div",{className:"font-medium",children:R.label}),o.jsxs("div",{className:"mt-0.5 tabular-nums text-[color:var(--muted-foreground)]",children:[s.currency(R.credit,"USD",4)," · ",s.number(R.requests)," ",a("usage.req",{defaultValue:"req"})," · ",Zr(R.tokens)," ",a("usage.tok",{defaultValue:"tok"})]})]})]},R.date))},T))})]}),o.jsxs("div",{className:"mt-2 flex items-center gap-1 text-2xs text-[color:var(--muted-foreground)]",style:{paddingLeft:V$},children:[o.jsx("span",{children:a("usage.activityLess",{defaultValue:"Less"})}),p.map((k,T)=>o.jsx("div",{className:"size-[14px] rounded-[3px]",style:{backgroundColor:k}},T)),o.jsx("span",{children:a("usage.activityMore",{defaultValue:"More"})})]})]}),o.jsxs("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4 lg:w-[360
962px] lg:shrink-0 lg:grid-cols-2",children:[o.jsx(Lb,{label:a("usage.stat.activeDays",{defaultValue:"Active days"}),value:s.number(r.activeDays)}),o.jsx(Lb,{label:a("usage.stat.longestStreak",{defaultValue:"Longest streak"}),value:a("usage.stat.daysValue",{defaultValue:"{{n}} days",n:s.number(y.longest)})}),o.jsx(Lb,{label:a("usage.stat.totalSpend",{defaultValue:"Total this period"}),value:s.currency(r.totalCredit,"USD",r.totalCredit<1?4:2)}),o.jsx(Lb,{label:a("usage.stat.peakDay",{defaultValue:"Busiest day"}),value:r.peakDay?r.peakDay.label:"â",sub:r.peakDay?`${Zr(r.peakDay.tokens)} ${a("usage.tok",{defaultValue:"tok"})} · ${s.currency(r.peakDay.credit,"USD",r.peakDay.credit<1?4:2)}`:void 0})]})]})]})}function Lb({label:e,value:t,sub:n}){return o.jsxs("div",{className:"min-w-0 rounded-md border border-[color:var(--border)] bg-[color:var(--background)] px-3.5 py-2.5",children:[o.jsx("div",{className:"truncate whitespace-nowrap text-11 font-medium text-[color:var(--muted-foreground)]",children:e}),o.jsxs("div",{className:"mt-0.5 min-w-0 whitespace-nowrap",children:[o.jsx("span",{className:"block truncate text-lg font-semibold tabular-nums text-[color:var(--foreground)]",children:t}),n?o.jsx("div",{className:"mt-0.5 truncate text-11 tabular-nums text-[color:var(--muted-foreground)]",children:n}):null]})]})}function YMs({value:e,onChange:t}){const{t:n}=W(),a=["tokens","requests","cost"];return o.jsx("div",{className:"grid w-full grid-cols-3 gap-1 rounded-md border border-[color:var(--border)] p-0.5 text-11 sm:w-auto sm:flex",children:a.map(s=>o.jsx(K,{variant:"ghost",onClick:()=>t(s),className:X("h-auto min-w-0 rounded px-2 py-1 text-11 font-normal sm:px-3",e===s?"bg-[color:var(--foreground)] font-medium text-[color:var(--background)] hover:bg-[color:var(--foreground)] hover:text-[color:var(--background)]":"text-[color:var(--muted-foreground)] hover:bg-transparent hover:text-[color:var(--foreground)]"),children:n(`usage.metric.${s}`,{defaultValue:s})},s))})}function sT({title:e,points:t,metric:n,bucketAxis:a,granularity:s,loading:r,error:i,seriesLabel:c}){const{t:d,i18n:m}=W(),{rows:f,series:p}=h.useMemo(()=>jZ(t,t.length?a:void 0),[t,a]),y=n==="cost"?x=>lr(x,m.language,"USD",4):x=>Zr(x),v=h.useMemo(()=>s==="hour"?new Intl.DateTimeFormat(m.language,{hour:"2-digit",minute:"2-digit",hour12:!1}):new Intl.DateTimeFormat(m.language,{month:"short",day:"numeric"}),[m.language,s]),$=x=>{const w=new Date(String(x));return Number.isNaN(w.getTime())?String(x):v.format(w)};return o.jsx(PZ,{title:e,height:220,loading:r,error:i,data:f,xAxisKey:"bucket",valueFormatter:y,xTickFormatter:$,series:p.map((x,w)=>({dataKey:x,name:c?c(x):x,stackId:"stack",colorIndex:w+1})),emptyState:o.jsx(Ot,{title:d("usage.chartEmpty",{defaultValue:"No data"}),description:d("usage.chartEmptyHint",{defaultValue:"No usage in this range yet."}),className:"h-full"})})}function P6({title:e,rows:t,loading:n,linkFor:a}){const{t:s}=W(),r=Te(),i=t.reduce((c,d)=>Math.max(c,Number(d.billedCredit)||0),0);return o.jsxs(Ee,{className:"overflow-hidden p-0",children:[o.jsx("div",{className:"border-b border-[color:var(--border)] px-4 py-3",children:o.jsx("h3",{className:"text-sm font-semibold",children:e})}),n?o.jsxs("div",{className:"space-y-3 p-4",children:[o.jsx(Rt,{className:"h-8 w-full"}),o.jsx(Rt,{className:"h-8 w-full"}),o.jsx(Rt,{className:"h-8 w-full"})]}):t.length===0?o.jsx("div",{className:"p-6",children:o.jsx(Ot,{title:s("usage.topEmpty",{defaultValue:"No data"}),description:s("usage.topEmptyHint",{defaultValue:"Make a request to start populating this."})})}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)]",children:t.map((c,d)=>{const m=Number(c.billedCredit)||0,f=i>0?m/i*100:0;return o.jsx("li",{children:o.jsxs(Ta,{to:a(c),className:"block px-4 py-2.5 transition-colors hover:bg-[color:var(--muted)]",children:[o.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-baseline sm:justify-between sm:gap-3",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"break-words text-sm font-medium [overflow-wrap:anywhere] sm:truncate",children:c.displayName}),c.extra?o.jsx("div",{className:"break-all font-mono text-11 text-[color:var(--muted-foreground)] sm:truncate",children:c.extra}):null]}),o.jsxs("div",{className:"min-w-0 text-left text-sm tabular-nums sm:shrink-0 sm:text-right",children:[r.currency(m,"USD",4),o.jsxs("div",{className:"break-words text-11 text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:[r.number(c.requestCount)," ",s("usage.req",{defaultValue:"req"})," · ",Zr(c.totalTokens)," ",s("usage.tok",{defaultValue:"tok"})]})]})]}),o.jsx("div",{className:"mt-1.5 h-1 overflow-hidden rounded bg-[color:var(--muted)]",children:o.jsx("div",{className:"h-full",style:{width:`${f}%`,backgroundColor:Yw(d+1)}})})]})},c.key)})})]})}function QMs(){const{t:e}=W();return o.jsx(Vt,{title:e("usage.title",{defaultValue:"Usage"}),children:o.jsx("div",{className:"mx-auto max-w-md py-16",children:o.jsx(Ot,{title:e("usage.wel
962come.title",{defaultValue:"Welcome to OneHop"}),description:e("usage.welcome.body",{defaultValue:"Create your first API key to route requests through one URL, then watch your usage land here."}),action:o.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[o.jsxs(Ta,{to:Be.apiKeys,className:ur({size:"sm"}),children:[o.jsx(wr,{className:"size-3.5"})," ",e("usage.welcome.createKey",{defaultValue:"Create API key"})]}),o.jsxs(Ta,{to:Be.chat,className:ur({size:"sm",variant:"outline"}),children:[o.jsx(ybe,{className:"size-3.5"})," ",e("usage.welcome.tryPlayground",{defaultValue:"Try playground"})]})]})})})})}function fN(e){if(!e||!XMs(e))throw new Error("Payment provider returned an unusable checkout URL");window.location.assign(e)}function XMs(e){try{const t=new URL(e);return t.protocol==="https:"?!!t.hostname:!1}catch{return!1}}function H0(e){return Ue({queryKey:Ht.billingSummary,queryFn:()=>Ye.request("/console/billing/summary"),retry:1,staleTime:4500,refetchInterval:e?.pollEnabled?e.pollIntervalMs??5e3:!1})}function ZMs(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/billing/redeem",{method:"POST",body:{code:t},idempotent:!0,timeoutMs:15e3}),onSuccess:()=>{e.invalidateQueries({queryKey:Ht.billingSummary}),e.invalidateQueries({queryKey:["console","billing","ledger"]}),e.invalidateQueries({queryKey:Ht.billingTopups}),e.invalidateQueries({queryKey:Ht.me})}})}function JMs(){return ke({mutationFn:async e=>{const t=await Ye.request("/console/billing/topups/checkout",{method:"POST",body:{amountUsd:e.amountUsd,couponCode:e.couponCode??void 0,paymentMethod:e.paymentMethod},idempotent:!0,timeoutMs:2e4});return fN(t.checkoutUrl),t}})}function eEs(){return ke({mutationFn:e=>Ye.request("/console/billing/topups/preview-coupon",{method:"POST",body:e,timeoutMs:15e3})})}function tEs(e,t){return Ue({queryKey:Ht.topupBonusPreview(e),queryFn:()=>Ye.request("/console/billing/topups/preview-bonus",{method:"POST",body:{amountUsd:e},timeoutMs:15e3}),enabled:t,retry:!1,staleTime:6e4})}function nEs(){return ke({mutationFn:e=>Ye.request("/console/billing/refunds",{method:"POST",body:e,idempotent:!0,timeoutMs:2e4})})}function gN(){return Ue({queryKey:Ht.billingAlertConfig,queryFn:()=>Ye.request("/console/billing/alert-config"),retry:1})}function DZ(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/billing/alert-config",{method:"PATCH",body:t}),onSuccess:t=>{e.setQueryData(Ht.billingAlertConfig,t)}})}function aEs(){return ke({mutationFn:()=>Ye.request("/console/billing/alert-config/webhook-test",{method:"POST",body:{},timeoutMs:15e3})})}function oEs(){return ke({mutationFn:async()=>{const e=await Ye.request("/console/billing/payment-method/setup-checkout",{method:"POST",body:{returnUrl:window.location.href},timeoutMs:2e4});return fN(e.checkoutUrl),e}})}function sEs(){const e=Re();return ke({mutationFn:()=>Ye.request("/console/billing/payment-method",{method:"DELETE",body:{}}),onSuccess:()=>{e.invalidateQueries({queryKey:Ht.billingAlertConfig})}})}function rEs(){const e=Re();return ke({mutationFn:()=>Ye.request("/console/billing/alert-config/rotate-secret",{method:"POST",body:{}}),onSuccess:t=>{e.setQueryData(Ht.billingAlertConfig,t)}})}function iEs(){return ke({mutationFn:async()=>{const e=await Ye.request("/console/billing/portal-session",{method:"POST",body:{returnUrl:window.location.href},idempotent:!0,timeoutMs:15e3});return fN(e.url),e}})}function MZ(e={}){return Ue({queryKey:Ht.ledger(e),queryFn:()=>Ye.request(`/console/billing/ledger${$r(e)}`),retry:1})}function lEs(){const{t:e}=W(),t=qa(),n=H0(),a=n.data?.supportsSavedPaymentMethods??!0,s=n.data?.paymentsDisabled??!1,r=e("billing.alerts.autorechargeUnsupported",{defaultValue:"Automatic top-up is unavailable with the active payment provider."}),i=gN(),c=DZ(),d=aEs(),m=rEs(),f=oEs(),p=sEs(),[y,v]=h.useState(!1),[$,x]=h.useState(!1),[w,S]=h.useState(""),[k,T]=h.useState(""),[R,_]=h.useState(!1),[P,j]=h.useState(""),[N,I]=h.useState(""),z=i.data?.alertThreshold?Pm(i.data.alertThreshold):"",E=i.data?.emailEnabled??!1,L=i.data?.webhookEnabled??!1,O=i.data?.webhookUrl??"",V=i.data?.webhookSecret??null,ne=i.data?.autorechargeEnabled??!1,q=i.data?.autorechargeThreshold?Pm(i.data.autorechargeThreshold):"",M=i.data?.autorechargeAmountUsd?Pm(i.data.autorechargeAmountUsd):"",F=i.data?.hasPaymentMethod??!1,H=i.data?.cardBrand??null,ee=i.data?.cardLast4??null,B=a&&F&&!ne&&(i.data?.autorechargeConsecutiveFailures??0)>=3;h.useEffect(()=>{i.data&&(v(i.data.emailEnabled),x(i.data.webhookEnabled),S(i.data.webhookUrl??""),T(i.data.alertThreshold?Pm(i.data.alertThreshold):""),_(i.data.autorechargeEnabled),j(i.data.autorechargeThreshold?Pm(i.data.autorechargeThreshold):""),I(i.data.autorechargeAmountUsd?Pm(i.data.autorechargeAmountUsd):""))},[i.data]);const G=k.trim()===""?null:Number(k),Q=G===null||Number.isFinite(G)&&G>0,Y=(y||$)&&(G===null||!Q),pe=$&&!cEs(w),se=P.trim()===""?null:Number(P),we=N.trim()===""?null:Number(N),me=a&&R&&(!F||se===null||se<=0||we===null||we<=0),ye=a&&G!==null&&se!==null&&G<se,_e=y!==E||$!==L||w.trim()!==O||k!==z||a&&(R!==ne||P!==q||N!==M),ae=_e&&Q&&!Y&&!pe&&!me&&!ye&&!c.isPending,Je=t.data?.user?.email??"",Ae=L&&!!O&&!_e;async function tt(){try{await f.mutateAsync()}catch(yt){ie.error(yt instanceof Error?yt.message:e("billing.alerts.cardSetupFailed",{defaultValue:"Failed to start card setup"}))}}function Tt(yt){if(!a){ie.error(r);return}
962if(yt&&!F){if(s){ie.error(e("billing.topup.maintenanceDescription",{defaultValue:"Payments are temporarily unavailable. Contact us on Telegram if you need to pay."}));return}tt();return}_(yt)}async function an(){try{await p.mutateAsync(),_(!1),ie.success(e("billing.alerts.cardRemoved",{defaultValue:"Card removed"}))}catch(yt){ie.error(yt instanceof Error?yt.message:e("billing.alerts.cardRemoveFailed",{defaultValue:"Failed to remove card"}))}}async function ta(){try{await c.mutateAsync({emailEnabled:y,webhookEnabled:$,webhookUrl:w.trim()===""?null:w.trim(),alertThreshold:k.trim()===""?null:k.trim(),autorechargeEnabled:a&&R,autorechargeThreshold:a&&P.trim()!==""?P.trim():null,autorechargeAmountUsd:a&&N.trim()!==""?N.trim():null}),ie.success(e("billing.alerts.saved",{defaultValue:"Alert settings saved"}))}catch(yt){ie.error(yt instanceof Error?yt.message:e("billing.alerts.saveFailed",{defaultValue:"Failed to save alert settings"}))}}async function lo(){try{await d.mutateAsync(),ie.success(e("billing.alerts.testQueued",{defaultValue:"Test delivery queued â check your endpoint"}))}catch(yt){ie.error(yt instanceof Error?yt.message:e("billing.alerts.testFailed",{defaultValue:"Failed to queue test delivery"}))}}async function qs(){try{await m.mutateAsync(),ie.success(e("billing.alerts.secretRotated",{defaultValue:"Signing secret rotated"}))}catch(yt){ie.error(yt instanceof Error?yt.message:e("billing.alerts.rotateFailed",{defaultValue:"Failed to rotate secret"}))}}return i.isError?o.jsx(Ee,{className:"p-5",children:o.jsx(Qt,{title:e("billing.alerts.loadFailed",{defaultValue:"Could not load alert settings"}),description:i.error instanceof Error?i.error.message:""})}):o.jsxs(Ee,{className:X("p-5",i.isFetching&&!i.isPending&&"opacity-80 transition-opacity duration-150 motion-reduce:transition-none"),children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(rj,{className:"size-4 text-[color:var(--muted-foreground)]"}),o.jsx("h2",{className:"text-sm font-semibold",children:e("billing.alerts.title",{defaultValue:"Balance alerts"})})]}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("billing.alerts.description",{defaultValue:"Get notified when your balance runs low."})}),o.jsxs("div",{className:"mt-4 grid gap-x-8 gap-y-5 border-t border-[color:var(--border)] pt-4 lg:grid-cols-2",children:[o.jsxs("div",{className:"flex flex-col gap-3 lg:border-r lg:border-[color:var(--border)] lg:pr-8",children:[o.jsx("h3",{className:"text-sm font-semibold",children:e("billing.alerts.lowBalanceGroup",{defaultValue:"Low-balance alerts"})}),o.jsx(Rm,{htmlFor:"alert-threshold",label:e("billing.alerts.thresholdLabel",{defaultValue:"Alert threshold"}),children:o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"$"}),o.jsx(ge,{id:"alert-threshold",type:"number",inputMode:"decimal",min:"0",step:"0.01",className:"w-24 tabular-nums",placeholder:"10",value:k,"aria-describedby":"alert-threshold-hint",onChange:yt=>T(yt.target.value),disabled:i.isPending})]})}),Y?o.jsx(rT,{children:e("billing.alerts.thresholdRequired",{defaultValue:"Set a threshold above $0 to enable alerts."})}):null,o.jsx(Rm,{htmlFor:"alert-email-toggle",label:e("billing.alerts.emailLabel",{defaultValue:"Email me"}),sub:Je||void 0,children:o.jsx(js,{id:"alert-email-toggle",checked:y,onCheckedChange:v,disabled:i.isPending,"aria-label":e("billing.alerts.emailLabel",{defaultValue:"Email me"})})}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx(Rm,{htmlFor:"alert-webhook-toggle",label:e("billing.alerts.webhookLabel",{defaultValue:"Webhook"}),children:o.jsx(js,{id:"alert-webhook-toggle",checked:$,onCheckedChange:x,disabled:i.isPending,"aria-label":e("billing.alerts.webhookLabel",{defaultValue:"Webhook"})})}),$?o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center",children:[o.jsx(ge,{id:"alert-webhook-url",type:"url",inputMode:"url",className:"w-full",placeholder:"https://example.com/webhooks/onehop",value:w,onChange:yt=>S(yt.target.value),disabled:i.isPending}),o.jsx(K,{variant:"secondary",className:"shrink-0",onClick:lo,disabled:!Ae||d.isPending,children:d.isPending?e("billing.alerts.testing",{defaultValue:"Testingâ¦"}):e("billing.alerts.test",{defaultValue:"Test"})})]}),pe?o.jsx(rT,{children:e("billing.alerts.webhookUrlRequired",{defaultValue:"Enter an https:// URL for the webhook."})}):null,V?o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm text-[color:var(--muted-foreground)]",children:[o.jsx("span",{children:e("billing.alerts.signingSecret",{defaultValue:"Signing secret"})}),o.jsx("code",{className:"rounded bg-[color:var(--muted)] px-1.5 py-0.5 font-mono text-xs",children:dEs(V)}),o.jsx(py,{value:V,variant:"ghost",iconClassName:"size-3.5"}),o.jsx(Aa,{variant:"ghost",size:"sm",onClick:qs,disabled:m.isPending,"aria-label":e("billing.alerts.rotate",{defaultValue:"Rotate"}),children:o.jsx(Kp,{className:X("size-3.5",m.isPending&&"animate-spin")})})]}):o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("billing.alerts.secretOnSave",{defaultValue:"A signing secret is generated
962when you save."})})]}):null]})]}),o.jsx("div",{className:"flex flex-col gap-3 border-t border-[color:var(--border)] pt-5 lg:border-t-0 lg:pl-0 lg:pt-0",children:a?o.jsxs(o.Fragment,{children:[o.jsx(Rm,{htmlFor:"alert-autorecharge-toggle",strong:!0,label:e("billing.alerts.autorechargeLabel",{defaultValue:"Auto top-up"}),children:o.jsx(js,{id:"alert-autorecharge-toggle",checked:R,onCheckedChange:Tt,disabled:i.isPending||f.isPending||s&&!F,"aria-label":e("billing.alerts.autorechargeLabel",{defaultValue:"Auto top-up"})})}),F?null:o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("billing.alerts.autorechargeAddCardHint",{defaultValue:"adds a card to keep your balance topped up"})}),B?o.jsxs("div",{className:"flex items-center gap-2 text-sm text-[color:var(--warning)]",children:[o.jsx(dj,{className:"size-4 shrink-0"}),o.jsx("span",{children:e("billing.alerts.autorechargeDisabledFailures",{defaultValue:"Auto top-up was disabled after repeated failures. Update your card and re-enable."})})]}):null,R&&F?o.jsxs(o.Fragment,{children:[o.jsx(Rm,{htmlFor:"ar-amount",label:e("billing.alerts.autorechargeTopUp",{defaultValue:"Top up"}),children:o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"$"}),o.jsx(ge,{id:"ar-amount",type:"number",inputMode:"decimal",min:"0",step:"0.01",className:"w-24 tabular-nums",placeholder:"20",value:N,onChange:yt=>I(yt.target.value),disabled:i.isPending,"aria-label":e("billing.alerts.autorechargeAmount",{defaultValue:"Auto top-up amount"})})]})}),o.jsx(Rm,{htmlFor:"ar-threshold",label:e("billing.alerts.autorechargeWhenBelow",{defaultValue:"when balance falls below"}),children:o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"$"}),o.jsx(ge,{id:"ar-threshold",type:"number",inputMode:"decimal",min:"0",step:"0.01",className:"w-24 tabular-nums",placeholder:"5",value:P,onChange:yt=>j(yt.target.value),disabled:i.isPending,"aria-label":e("billing.alerts.autorechargeThreshold",{defaultValue:"Auto top-up threshold"})})]})}),me?o.jsx(rT,{children:e("billing.alerts.autorechargeIncomplete",{defaultValue:"Set an auto top-up amount and threshold above $0."})}):null]}):null,F?o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm text-[color:var(--muted-foreground)]",children:[o.jsx(Lw,{className:"size-4"}),o.jsx("span",{className:"capitalize",children:H??e("billing.alerts.card",{defaultValue:"Card"})}),o.jsxs("span",{className:"font-mono tabular-nums",children:["â¢â¢â¢â¢ ",ee??"â¢â¢â¢â¢"]}),o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>void tt(),disabled:f.isPending||s,children:e("billing.alerts.changeCard",{defaultValue:"Change"})}),o.jsx(K,{variant:"ghost",size:"sm",onClick:an,disabled:p.isPending,children:e("billing.alerts.removeCard",{defaultValue:"Remove"})})]}):null]}):o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("h3",{className:"text-sm font-semibold",children:e("billing.alerts.autorechargeLabel",{defaultValue:"Auto top-up"})}),o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:r})]})})]}),o.jsxs("div",{className:"mt-4 flex flex-col gap-2 border-t border-[color:var(--border)] pt-4 sm:flex-row sm:items-center sm:justify-end sm:gap-4",children:[ye?o.jsx("span",{id:"alert-threshold-hint",className:"text-xs text-[color:var(--warning)] sm:mr-auto",children:e("billing.alerts.thresholdOrderBad",{defaultValue:"Alert threshold must be ⥠the auto top-up threshold."})}):null,o.jsx(K,{onClick:ta,disabled:!ae,children:c.isPending?e("common.saving",{defaultValue:"Savingâ¦"}):e("common.save",{defaultValue:"Save"})})]})]})}function Rm({htmlFor:e,label:t,sub:n,strong:a,children:s}){return o.jsxs("div",{className:"flex flex-col gap-1.5 sm:flex-row sm:items-center sm:justify-between sm:gap-3",children:[o.jsxs("label",{htmlFor:e,className:X("text-sm",a?"font-semibold":"font-medium"),children:[t,n?o.jsx("span",{className:"block min-w-0 break-words font-normal text-[color:var(--muted-foreground)] sm:ml-2 sm:inline",children:n}):null]}),o.jsx("div",{className:"shrink-0",children:s})]})}function rT({children:e}){return o.jsx("p",{className:"text-xs text-[color:var(--destructive)]",children:e})}function Pm(e){const t=Number(e);return Number.isFinite(t)?String(t):e}function cEs(e){try{return new URL(e.trim()).protocol==="https:"}catch{return!1}}function dEs(e){return e.length>10?`${e.slice(0,6)}â¢â¢â¢â¢${e.slice(-4)}`:e}function uEs({credits:e}){const{t}=W(),n=Te();return!e||e.length===0?null:o.jsxs(Ee,{className:"p-6","data-testid":"earmarked-credits",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(rbe,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("h2",{className:"text-sm font-medium text-[color:var(--foreground)]",children:t("billing.earmarked.title",{defaultValue:"Earmarked credit"})})]}),o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:t("billing.earmarked.subtitle",{defaultValue:"Restricted to specific models, separate from your available balance."})}),o.jsx("ul",{className:"mt-4 divide-y divide-[color:var(--border)]",children:e.map(a=>o.jsx(mEs,{credit:a,t,f:n},a.scopeId))})]})}function mEs({credit:e,t,f:n}){const a=e.models??[],s=a.length>
9620?t("billing.earmarked.onlyModels",{defaultValue:"Only {{models}}",models:a.join(", ")}):t("billing.earmarked.onlyModelsGeneric",{defaultValue:"Restricted models"}),r=e.expiresAt?t("billing.earmarked.validUntil",{defaultValue:"Valid until {{date}}",date:n.dateTime(e.expiresAt)}):t("billing.earmarked.noExpiry",{defaultValue:"No expiry"});return o.jsxs("li",{className:"flex items-start justify-between gap-4 py-3 first:pt-0 last:pb-0",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"truncate text-sm font-medium text-[color:var(--foreground)]",children:e.scopeName}),o.jsx("p",{className:"mt-0.5 truncate text-xs text-[color:var(--muted-foreground)]",children:s}),o.jsx("p",{className:"mt-0.5 text-xs text-[color:var(--muted-foreground)] tabular-nums",children:r})]}),o.jsxs("div",{className:"flex shrink-0 flex-col items-end gap-1",children:[o.jsx("span",{className:"text-lg font-medium tabular-nums text-[color:var(--foreground)]",children:n.currency(Number(e.amount))}),a.length>0?o.jsx(K,{asChild:!0,size:"sm",variant:"link",className:"h-auto p-0",children:o.jsx(Ta,{to:`${Be.chat}?model=${encodeURIComponent(a[0])}`,children:t("billing.earmarked.useInChat",{defaultValue:"Use in chat"})})}):null]})]})}function pEs(){return Ue({queryKey:Ht.freeTokens,queryFn:()=>Ye.request("/console/free-tokens"),retry:1,refetchInterval:6e4})}function fEs(){const{t:e}=W(),t=Te(),n=pEs(),a=gN(),s=DZ(),r=xEs(),i=n.data;if(!i)return null;const c=i.allowances??[];return c.length===0&&!i.paused?null:o.jsxs(Ee,{className:"p-6","data-testid":"free-tokens",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(uy,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("h2",{className:"text-sm font-medium text-[color:var(--foreground)]",children:e("freeTokens.title")})]}),o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:e("freeTokens.description")}),i.paused&&i.warning?o.jsx(gEs,{contact:i.warning.contact,t:e}):null,c.length>0?o.jsx("ul",{className:"mt-4 divide-y divide-[color:var(--border)]",children:c.map(d=>o.jsx(hEs,{allowance:d,now:r,t:e,f:t},d.campaignPublicId))}):null,c.length>0?o.jsxs("div",{className:"mt-5 flex items-center justify-between gap-3 border-t border-[color:var(--border)] pt-4",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("label",{htmlFor:"free-tokens-email",className:"text-sm font-medium text-[color:var(--foreground)]",children:e("freeTokens.emailToggle.label")}),o.jsx("p",{className:"mt-0.5 text-xs text-[color:var(--muted-foreground)]",children:e("freeTokens.emailToggle.hint")})]}),o.jsx(js,{id:"free-tokens-email",checked:a.data?.freeTokenEmailEnabled??!0,onCheckedChange:d=>s.mutate({freeTokenEmailEnabled:d}),disabled:a.isLoading||s.isPending,"aria-label":e("freeTokens.emailToggle.label")})]}):null]})}function gEs({contact:e,t}){return o.jsxs("div",{className:"mt-4 flex items-start gap-3 rounded-xl bg-[color:var(--primary)] px-4 py-3 text-[color:var(--primary-foreground)]",children:[o.jsx(_9,{className:"mt-0.5 size-5 shrink-0","aria-hidden":!0}),o.jsxs("div",{className:"min-w-0 text-sm",children:[o.jsx("p",{className:"font-medium",children:t("freeTokens.paused.title")}),o.jsxs("p",{className:"mt-1 text-[color:var(--primary-foreground)]/80",children:[t("freeTokens.paused.body")," ",o.jsx("a",{href:`mailto:${e}`,className:"font-medium underline underline-offset-2",children:e})]})]})]})}function hEs({allowance:e,now:t,t:n,f:a}){const{grantedTokens:s,consumedTokens:r,remainingTokens:i}=e,c=s>0?Math.max(0,Math.min(100,r/s*100)):0,d=c>=90?"bg-[color:var(--warning)]":void 0;return o.jsxs("li",{className:"py-5 first:pt-0 last:pb-0",children:[o.jsxs("div",{className:"flex items-start justify-between gap-4",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h3",{className:"truncate text-sm font-medium text-[color:var(--foreground)]",children:n(`freeTokens.campaigns.${e.campaignPublicId}`,{defaultValue:e.campaignName})}),o.jsx(yEs,{models:e.models,t:n})]}),o.jsx("span",{className:"shrink-0 rounded-full bg-[color:var(--accent)] px-2.5 py-1 text-2xs font-medium uppercase tracking-wide text-[color:var(--muted-foreground)]",children:n(e.cadence==="weekly"?"freeTokens.cadence.weekly":"freeTokens.cadence.daily")})]}),o.jsxs("div",{className:"mt-5",children:[o.jsxs("div",{className:"flex items-baseline gap-2",children:[o.jsx("span",{className:"text-base font-semibold tabular-nums text-[color:var(--foreground)]",children:a.number(r)}),o.jsxs("span",{className:"text-13 tabular-nums text-[color:var(--muted-foreground)]",children:["/ ",a.number(s)," ",n("freeTokens.tokensUnit")]}),o.jsxs("span",{className:"ml-auto text-11 tabular-nums text-[color:var(--muted-foreground)]",children:[_6(r,a.locale)," / ",_6(s,a.locale)]})]}),o.jsx(iy,{value:c,className:"mt-2",indicatorClassName:d}),o.jsx("p",{className:"mt-2 text-11 tabular-nums text-[color:var(--muted-foreground)]",children:n("freeTokens.remainingToday",{value:a.number(i)})})]}
962),o.jsx(vEs,{allowance:e,now:t,t:n,f:a}),e.campaignEndsAt?o.jsx("p",{className:"mt-3 text-xs text-[color:var(--muted-foreground)]",children:n("freeTokens.campaignEnds",{date:a.dateTime(e.campaignEndsAt)})}):null]})}function yEs({models:e,t}){return e.length===0?o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:t("freeTokens.allModels")}):o.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.map(n=>{const{authorSlug:a}=yK(n);return o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-md border border-[color:var(--border)] bg-[color:var(--background)] px-2 py-1 text-xs text-[color:var(--foreground)]",children:[o.jsx(Xo,{authorSlug:a,size:14,className:"shrink-0 text-foreground/80"}),vK({fullSlug:n})]},n)})})}function vEs({allowance:e,now:t,t:n,f:a}){const s=new Date(e.nextRefreshAt).getTime(),r=new Date(e.nextRefreshAt).toLocaleTimeString(a.locale,{hour:"2-digit",minute:"2-digit"}),i=n(e.cadence==="weekly"?"freeTokens.refresh.weekly":"freeTokens.refresh.daily"),c=n("freeTokens.refresh.localTime",{time:r}),d=s-t,m=d>0?n("freeTokens.refresh.countdown",{duration:bEs(d)}):n("freeTokens.refresh.refreshingSoon");return o.jsxs("div",{className:"mt-4 flex items-start gap-2 rounded-lg bg-[color:var(--muted)]/40 px-3 py-2 text-xs text-[color:var(--muted-foreground)]",children:[o.jsx(j9,{className:"mt-0.5 size-3.5 shrink-0","aria-hidden":!0}),o.jsxs("p",{className:"tabular-nums",children:[i," · ",c," · ",o.jsx("span",{className:"font-medium text-[color:var(--foreground)]",children:m})]})]})}function _6(e,t){return new Intl.NumberFormat(t,{notation:"compact",maximumFractionDigits:2}).format(e)}function bEs(e){const t=Math.floor(e/6e4),n=Math.floor(t/60),a=t%60;return n>0?`${n}h ${a}m`:a>0?`${a}m`:"<1m"}function xEs(){const[e,t]=h.useState(()=>Date.now());return h.useEffect(()=>{const n=setInterval(()=>t(Date.now()),1e3);return()=>clearInterval(n)},[]),e}const $Es={REDEEM_NOT_FOUND:"billing.redeemCard.errors.invalid",REDEEM_DISABLED:"billing.redeemCard.errors.invalid",REDEEM_RISKY:"billing.redeemCard.errors.invalid",REDEEM_EXPIRED:"billing.redeemCard.errors.expired",REDEEM_ALREADY_REDEEMED:"billing.redeemCard.errors.alreadyRedeemed",REDEEM_PER_USER_LIMIT:"billing.redeemCard.errors.perUserLimit"};function wEs(){const{t:e}=W(),t=Te(),n=ZMs(),[a,s]=h.useState("");async function r(){const i=a.trim();if(i)try{const c=await n.mutateAsync(i),d=c.restrictedModels?.length?e("billing.redeemCard.successRestricted",{defaultValue:"Redeemed {{amount}} â usable with {{models}} only",amount:t.currency(Number(c.creditedUsd)),models:c.restrictedModels.join(", ")}):e("billing.redeemCard.success",{defaultValue:"Redeemed {{amount}} to your balance",amount:t.currency(Number(c.creditedUsd))}),m=c.creditExpiresAt?` ${e("billing.redeemCard.successValidity",{defaultValue:"Valid until {{date}}.",date:t.dateTime(c.creditExpiresAt)})}`:"";ie.success(`${d}${m}`),s("")}catch(c){const d=$Es[c.code??""];ie.error(d?e(d):c.message)}}return o.jsxs(Ee,{className:"p-6","data-testid":"redeem-code",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(sxe,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":!0}),o.jsx("h2",{className:"text-sm font-medium text-[color:var(--foreground)]",children:e("billing.redeemCard.title",{defaultValue:"Redeem a code"})})]}),o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:e("billing.redeemCard.description",{defaultValue:"Have a redeem code? Enter it to credit the amount to your balance."})}),o.jsxs("form",{className:"mt-4 flex flex-col gap-2 sm:flex-row",onSubmit:i=>{i.preventDefault(),r()},children:[o.jsx(ge,{value:a,onChange:i=>s(i.target.value.toUpperCase()),placeholder:e("billing.redeemCard.placeholder",{defaultValue:"e.g. OHR-XXXXXXXX"}),"aria-label":e("billing.redeemCard.title",{defaultValue:"Redeem a code"}),autoComplete:"off",spellCheck:!1}),o.jsx(K,{type:"submit",className:"sm:w-auto",disabled:n.isPending||!a.trim(),children:n.isPending?e("billing.redeemCard.redeeming",{defaultValue:"Redeemingâ¦"}):e("billing.redeemCard.redeem",{defaultValue:"Redeem"})})]})]})}function kEs(){return Ue({queryKey:["console","referrals","banner"],queryFn:()=>Ye.request("/console/referrals/banner").then(e=>e.banner),retry:1,staleTime:6e4})}function EZ(){return Ue({queryKey:["console","referrals","dashboard"],queryFn:()=>Ye.request("/console/referrals"),retry:1})}function CEs(e={}){return Ue({queryKey:["console","referrals","events",e],queryFn:()=>Ye.request(`/console/referrals/events${$r(e)}`),retry:1})}function SEs(e){return e==="credit_purchase"||e==="credit_purchase_refund"||e==="credit_purchase_chargeback"?"topups":e.startsWith("bonus_")||e==="manual_adjustment"||e==="reconciliation_adjustment"?"bonuses":null}function AEs(e,t=0){const n={topups:0,bonuses:0,usage:0};for(const s of e){const r=Number(s.amount);if(!Number.isFinite(r))continue;const i=SEs(s.entryType);i&&(n[i]+=r)}const a=Math.abs(Number.isFinite(t)?t:0);return n.usage=a===0?0:-a,n}function TEs(e){const t=n=>Number.isFinite(Number(n))?Number(n):0;return{available:t(e.availableEarned)+t(e.availableReceived),frozen:t(e.frozenEarned)+t(e.frozenReceived)}}function REs(e){return e.reduce((t,n)=>{const a=Number(n.billedCredit);return Number.isFinite(a)?t+a:t},0)}function PEs(){const{t:e}=W(),t=Te(),{data:n}=EZ();if(!n)return null;const{available:a,frozen:s}=TEs(n);if(a+s<=0)return null;const r=n.policy?.releasePolicy?.delay_days,i=r?e("billing.referralRewards.frozenHint",{defaultValue:"Vests in ~{{days}} days",days:r}):e("billing.referralRewards.frozenHintGeneric",{defaultValue:"Vests after the holding period"});return o.jsxs(Ee,{className:"p-6","data-testid":"referral-rewards",children:[o.jsx("h2",{className:"text-sm font-medium text-[color:var(--foreground)]",children:e("billing.referralRewards.title",{defaultValue:"Referral rewards"})}),o.jsxs("dl",{className:"mt-4 grid grid-cols-2 gap-4",children:[o.jsx(j6,{label:e("billing.referralRewards.frozen",{defaultValue:"Pending (frozen)"}),value:`+${t.currency(s)}`,hint:i}),o.jsx(j6,{label:e("billing.referralRewards.available",{defaultValue:"Credited"}),value:`+${t.currency(a)}`,hint:e("billing.referralRewards.availableHint",{defaultValue:"Already in your available balance"}),credited:!0})]}),o.jsxs(Ta,{to:Be.referrals,className:"mt-4 inline-flex items-center gap-1 text-sm text-[color:var(--link)] hover:underline",children:[e("billing.referralRewards.viewDetails",{defaultValue:"View referral details"}),o.jsx(p9,{className:"size-3.5"})]})]})}function j6({label:e,value:t,hint:n,credited:a}){return o.jsxs("div",{children:[o.jsx("dt",{className:"text-xs uppercase tracking-wide text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:X("mt-1 text-lg font-medium tabular-nums",a?"text-[color:var(--success)]":"text-[color:var(--foreground)]"),children:t}),o.jsx("p",{className:"mt-0.5 text-xs text-[color:var(--muted-foreground)]",children:n})]})}const _Es=[10,20,50,100];function hN(e,t={}){const n=typeof t=="number"?{initialPageSize:t}:t,a=n.page!=null,[s,r]=h.useState(1),[i,c]=h.useState(n.initialPageSize??20),d=Math.max(1,Math.ceil(e.length/i)),m=Math.min(a?n.page:s,d),f=y=>a?n.onPageChange?.(y):r(y);return{pageRows:h.useMemo(()=>e.slice((m-1)*i,m*i),[e,m,i]),page:m,pageSize:i,total:e.length,onPageChange:f,onPageSizeChange:y=>{c(y),f(1)}}}function V0(e){const{t}=W();return o.jsx("div",{className:"border-t border-[color:var(--border)] px-3 py-2.5 sm:px-4 sm:py-3",children:o.jsx(A_,{total:e.total,page:e.page,pageSize:e.pageSize,pageSizeOptions:e.pageSizeOptions??_Es,onPageChange:e.onPageChange,onPageSizeChange:e.onPageSizeChange,labels:{total:n=>t("pagination.total",{count:n,defaultValue:"Total {{count}}"}),perPage:n=>t("pagination.perPage",{count:n,defaultValue:"{{count}} / page"})}})})}function jh({children:e,className:t,onClick:n}){return o.jsx("article",{onClick:n?a=>{eu(a)||n()}:void 0,onKeyDown:n?a=>{eu(a)||(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),n())}:void 0,role:n?"button":void 0,tabIndex:n?0:void 0,className:X("min-w-0 max-w-full overflow-hidden rounded-md border border-[color:var(--border)] bg-[color:var(--card)] p-2.5 text-sm shadow-[var(--shadow-control)]",n&&"cursor-pointer transition-colors hover:bg-[color:var(--muted)]/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",t),children:e})}function Nh({title:e,meta:t,trailing:n}){return o.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"min-w-0 break-words font-medium",children:e}),t?o.jsx("div",{className:"mt-1 min-w-0 break-words text-xs text-[color:var(--muted-foreground)]",children:t}):null]}),n?o.jsx("div",{className:"shrink-0",children:n}):null]})}function K$({children:e,className:t}){return o.jsx("dl",{className:X("mt-2 grid grid-cols-2 gap-x-3 gap-y-1.5",t),children:e})}function nr({label:e,children:t,align:n="left"}){return o.jsxs("div",{className:X("grid min-w-0 gap-1",n==="right"&&"text-right"),children:[o.jsx("dt",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:X("min-w-0 break-words [&>*]:max-w-full [&>*]:min-w-0",n==="right"&&"tabular-nums"),children:t})]})}const iT=["preset","from","to","entryType","sourceType","idSearch","amountMin","amountMax","page","size"],jEs={preset:"last30d"},IZ=!1,NEs={"Stripe credit purchase":"billing.ledgerDesc.creditPurchase","Waffo credit purchase":"billing.ledgerDesc.creditPurchase","Credit purchase":"billing.ledgerDesc.creditPurchase","Test fixture purchased credit":"billing.ledgerDesc.creditPurchase","Topup bonus grant":"billing.ledgerDesc.topupBonus","Coupon bonus grant":"billing.ledgerDesc.couponBonus","Signup bonus":"billing.ledgerDesc.signupBonus","Test fixture signup bonus":"billing.ledgerDesc.signupBonus","Referral cashback clawback (refund)":"billing.ledgerDesc.referralClawback","Referral cashback":"billing.ledgerDesc.referralCashback","Referral invitee cashback":"billing.ledgerDesc.referralInviteeCashback","Redeem code reversal (clawback)":"billing.ledgerDesc.redeemCodeReversal"};function OP(e,t){if(e.description){const n=NEs[e.description];return n?t(n):e.description.startsWith("Redeem code ")?t("billing.ledgerDesc.redeemCode",{defaultValue:"Redeem code {{code}}",code:e.description.slice(12)}):e.description.startsWith("Stripe refund ")||e.description.startsWith("Stripe Dashboard refund ")?t("billing.ledgerDesc.stripeRefund",{defaultValue:"Stripe refund"}):e.description.startsWith("Bonus reversal for ")?t("billing.ledgerDesc.bonus
962Reversal",{defaultValue:"Bonus reversal (refund)"}):e.description}return t(`optionLabels.${e.sourceType}`,{defaultValue:ct(e.sourceType)})}function OZ({method:e}){const{t}=W();if(e!=="card"&&e!=="alipay"&&e!=="wechat_pay")return null;const n=e==="card"?o.jsx(Lw,{className:"size-3.5"}):o.jsx(kg,{brand:e==="alipay"?"alipay":"wechat-pay",size:13}),a=e==="card"?t("billing.paymentMethod.card",{defaultValue:"Card"}):e==="alipay"?t("billing.paymentMethod.alipay",{defaultValue:"Alipay"}):t("billing.paymentMethod.wechatPay",{defaultValue:"WeChat Pay"});return o.jsxs("span",{className:"inline-flex items-center gap-1 whitespace-nowrap text-xs text-[color:var(--muted-foreground)]",children:[n,a]})}function LZ(e){return e==="credit_purchase"||e.startsWith("bonus_")?"text-[color:var(--success)]":e==="manual_adjustment"?"text-[color:var(--warning)]":"text-[color:var(--muted-foreground)]"}function DEs({onTopUp:e}){const{t,i18n:n}=W(),{params:a,patch:s,remove:r}=Mt(),i=iEs(),c=h.useMemo(()=>({range:qw(a,jEs),entryType:Pe(a,"entryType"),sourceType:Pe(a,"sourceType"),idSearch:Pe(a,"idSearch"),amountMin:Pe(a,"amountMin"),amountMax:Pe(a,"amountMax"),page:ln(a,"page",1),size:ln(a,"size",20)}),[a]),d=c.range,m=H0(),f=m.data!==void 0&&m.data.supportsBillingPortal!==!1,p=T=>s({...Hw(T),page:void 0}),y=h.useDeferredValue(c.idSearch),v=h.useDeferredValue(c.amountMin),$=h.useDeferredValue(c.amountMax),x=MZ({kinds:"funding",page:String(c.page),limit:String(c.size),...c.entryType?{entryType:c.entryType}:{},...c.sourceType?{sourceType:c.sourceType}:{},...d.from?{from:d.from}:{},...d.to?{to:d.to}:{},...v?{amountMin:v}:{},...$?{amountMax:$}:{},...y?{idSearch:y}:{}}),w=x.data?.items??[],S=x.data?.total??0,k=Zt(a,iT,["page","size"]);return o.jsxs(Ee,{className:X(x.isFetching&&!x.isLoading&&"opacity-80 transition-opacity duration-150 motion-reduce:transition-none"),children:[o.jsxs("div",{className:"flex min-w-0 flex-col gap-3 border-b border-[color:var(--border)] px-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:px-5 sm:py-4",children:[o.jsx("h2",{className:"text-sm font-semibold",children:t("billing.history.title",{defaultValue:"Transaction history"})}),o.jsxs("div",{className:"grid min-w-0 grid-cols-1 gap-2 min-[360px]:grid-cols-[minmax(0,1fr)_auto] sm:flex sm:items-center",children:[f?o.jsxs(K,{variant:"secondary",size:"sm",className:"w-full min-[360px]:w-auto",onClick:()=>i.mutate(void 0,{onError:()=>ie.error(t("billing.portalFailed"))}),disabled:i.isPending,children:[o.jsx(Nbe,{className:"size-3.5"}),o.jsx("span",{className:"min-w-0 truncate",children:i.isPending?t("billing.openingPortal"):t("billing.history.viewInvoices",{defaultValue:"View invoices"})})]}):null,o.jsx(IEs,{range:d,onChange:p}),o.jsx(uh,{value:d,onChange:p,defaultPreset:"last30d",locale:n.language,labels:fh(t,OEs(t)),presets:["last1h","today","yesterday","last7d","last30d","thisMonth","custom","all"],className:"w-full justify-between min-[360px]:w-auto"})]})]}),o.jsxs("div",{className:"grid min-w-0 gap-3 border-b border-[color:var(--border)] px-3 py-3 sm:px-5 sm:py-4 md:grid-cols-2 lg:grid-cols-[200px_200px_1fr_auto]",children:[o.jsx(Ze,{label:t("billing.transactionType"),value:c.entryType,options:TK,onChange:T=>s({entryType:T,page:void 0})}),o.jsx(Ze,{label:t("billing.source"),value:c.sourceType,options:RK,onChange:T=>s({sourceType:T,page:void 0})}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[t("billing.history.idSearch",{defaultValue:"Transaction ID"}),o.jsx(ge,{value:c.idSearch,onChange:T=>s({idSearch:T.target.value,page:void 0}),placeholder:"led_...","aria-label":t("billing.history.idSearch",{defaultValue:"Transaction ID"})})]}),o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[t("billing.history.amountRange",{defaultValue:"Amount range (USD)"}),o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-1.5 sm:flex",children:[o.jsx(ge,{value:c.amountMin,inputMode:"decimal",onChange:T=>s({amountMin:T.target.value,page:void 0}),placeholder:t("billing.history.min",{defaultValue:"Min"}),"aria-label":t("billing.history.min",{defaultValue:"Min"}),className:"min-w-0 sm:w-24"}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"}),o.jsx(ge,{value:c.amountMax,inputMode:"decimal",onChange:T=>s({amountMax:T.target.value,page:void 0}),placeholder:t("billing.history.max",{defaultValue:"Max"}),"aria-label":t("billing.history.max",{defaultValue:"Max"}),className:"min-w-0 sm:w-24"}),o.jsx(nn,{show:k,onReset:()=>r(iT),labelKey:"common.reset",className:"col-span-3 w-full justify-self-end min-[360px]:w-auto sm:col-span-1"})]})]})]}),x.isLoading?o.jsx("div",{className:"space-y-2 p-5",children:Array.from({length:4}).map((T,R)=>o.jsx(Rt,{className:"h-10 w-full"},R))}):x.error?o.jsxs("div",{className:"p-5",children:[o.jsx(Qt,{title:t("billing.summaryFailed"),description:x.error.message}),o.jsx(K,{variant:"secondary",size:"sm",className:"mt-3",onClick:()=>x.refetch(),children:t("billing.history.retry",{defaultValue:"Retry"})})]}):w.length===0?o.jsx("div",{className:"p-6",children:k?o.jsx(Ot,{title:t("billing.history.emptyFiltered",{defaultValue:"No transactions match these filters"}),description:t("billing.history.emptyFilteredDesc",{defaultValue:"Try clearing filters or widening the date range."}),action:o.jsx(K,{variant:"secondary",size:"sm",onClick:()=>r(iT),children:t("billing.history.clearFilters",{defaultValue:"Clear filters"})})}):o.jsx(Ot,{icon:o.jsx(N9,{className:"size-4"}),title:t("billing.history.emptyNew",{defaultValue:"No transactions yet"}),description:t("billing.history.emptyNewDesc",{defaultValue:"Once you top up, your top-ups, bonuses and refunds will appear here."}),action:e?o.jsx(K,{size:"sm",onClick:e,children:t("billing.history.topUpCta",{defaultValue:"Top up"})}):void 0})}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":t("billing.ledgerEntries"),children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{sticky:"left",children:t("billing.history.date",{defaultValue:"Date"})}),o.jsx(Ie,{className:"text-right",children:t("billing.amount")}),o.jsx(Ie,{children:t("billing.history.typeMethod",{defaultValue:"Type / method"})}),o.jsx(Ie,{children:t("billing.history.description",{defaultValue:"Description"})}),o.jsx(Ie,{className:"text-right",children:t("billing.balance")}),IZ]})}),o.jsx(Ba,{children:w.map(T=>o.jsx(EEs,{entry:T},T.publicId))})]})}),o.jsx("div",{className:"grid gap-2 p-2 sm:p-3 md:hidden",children:w.map(T=>o.jsx(MEs,{entry:T},T.publicId))}),o.jsx(V0,{total:S,page:c.page,pageSize:c.size,onPageChange:T=>s({page:T===1?void 0:String(T)},{replace:!1}),onPageSizeChange:T=>s({size:T===20?void 0:String(T),page:void 0})})]})]})}function MEs({entry:e}){const{t}=W(),n=Te();return o.jsxs(jh,{className:"p-2",children:[o.jsx(Nh,{title:o.jsx("span",{className:X("tabular-nums",LZ(e.entryType)),children:n.currency(Number(e.amount),"USD",4)}),meta:n.dateTime(e.createdAt),trailing:o.jsx(Oe,{value:e.entryType})}),o.jsxs(K$,{className:"grid-cols-1 min-[360px]:grid-cols-2",children:[o.jsx(nr,{label:t("billing.history.typeMethod",{defaultValue:"Type / method"}),children:o.jsx("span",{className:"block min-h-5",children:o.jsx(OZ,{method:e.paymentMethod})})}),o.jsx(nr,{label:t("billing.history.description",{defaultValue:"Description"}),align:"left",children:o.jsx("span",{className:"break-words text-[color:var(--muted-foreground)]",children:OP(e,t)})}),o.jsx(nr,{label:t("billing.balance"),align:"left",children:n.currency(Number(e.balanceAfter),"USD",4)})]})]})}function EEs({entry:e}){const{t}=W(),n=Te();Re(),nEs();const[a,s]=h.useState(!1);e.paymentTransactionPublicId;const r=Number(e.paidAmount??0),i=Number(e.alreadyRefunded??0),c=Math.max(0,r-i);e.paymentStatus==="refunded"||c<=0;const[d,m]=h.useState(c.toFixed(2));return o.jsxs(qt,{className:"group/row",children:[o.jsx(Me,{sticky:"left",className:"whitespace-nowrap",children:n.dateTime(e.createdAt)}),o.jsx(Me,{className:X("text-right tabular-nums",LZ(e.entryType)),children:n.currency(Number(e.amount),"USD",4)}),o.jsx(Me,{children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Oe,{value:e.entryType}),o.jsx(OZ,{method:e.paymentMethod})]})}),o.jsx(Me,{className:"max-w-[280px] truncate text-[color:var(--muted-foreground)]",title:OP(e,t),children:OP(e,t)}),o.jsx(Me,{className:"text-right tabular-nums",children:n.currency(Number(e.balanceAfter),"USD",4)}),IZ]})}
962function IEs({range:e,onChange:t}){const{t:n}=W(),a=Te(),s=e.from?new Date(e.from):new Date,r=new Intl.DateTimeFormat(a.locale,{year:"numeric",month:"long"}).format(s),i=d=>{const m=new Date(s.getFullYear(),s.getMonth()+d,1),f=new Date(s.getFullYear(),s.getMonth()+d+1,0,23,59,59,999);t({preset:"custom",from:m.toISOString(),to:f.toISOString()})},c=s.getFullYear()===new Date().getFullYear()&&s.getMonth()===new Date().getMonth();return o.jsxs("div",{className:"hidden items-center gap-1 sm:flex",children:[o.jsx(K,{variant:"ghost",size:"icon","aria-label":n("billing.history.prevMonth",{defaultValue:"Previous month"}),onClick:()=>i(-1),children:o.jsx(v9,{className:"size-4"})}),o.jsx("span",{className:"min-w-[7rem] text-center text-sm tabular-nums",children:r}),o.jsx(K,{variant:"ghost",size:"icon","aria-label":n("billing.history.nextMonth",{defaultValue:"Next month"}),disabled:c,onClick:()=>i(1),children:o.jsx(gR,{className:"size-4"})})]})}function OEs(e){return{last1h:e("dateRange.last1h",{defaultValue:"Last 1 hour"}),today:e("dateRange.today",{defaultValue:"Today"}),yesterday:e("dateRange.yesterday",{defaultValue:"Yesterday"}),last7d:e("dateRange.last7d",{defaultValue:"Last 7 days"}),last30d:e("dateRange.last30d",{defaultValue:"Last 30 days"}),thisMonth:e("dateRange.thisMonth",{defaultValue:"This month"}),byMonth:e("dateRange.byMonth",{defaultValue:"By month"}),custom:e("dateRange.custom",{defaultValue:"Custom"}),all:e("dateRange.all",{defaultValue:"All time"})}}function LEs(){const e=kEs(),[t,n]=h.useState("");return h.useEffect(()=>{if(!e.data)return;const a=new Date(e.data.endsAt).getTime(),s=()=>{const i=a-Date.now();if(i<=0){n("");return}const c=Math.floor(i/864e5),d=Math.floor(i%864e5/36e5),m=Math.floor(i%36e5/6e4);n(c>0?`${c}d ${d}h`:`${d}h ${m}m`)};s();const r=setInterval(s,6e4);return()=>clearInterval(r)},[e.data]),!e.data||!t?null:o.jsxs(Ee,{className:"flex items-center gap-3 border-[color:var(--primary)]/30 bg-[color:var(--primary)]/5 p-4",children:[o.jsx(j9,{className:"size-5 shrink-0 text-[color:var(--primary)]"}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:"text-sm font-medium",children:e.data.title}),e.data.subtitle?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e.data.subtitle}):null]}),o.jsx("span",{className:"shrink-0 rounded-md bg-[color:var(--primary)]/10 px-2.5 py-1 text-sm font-semibold tabular-nums text-[color:var(--primary)]",children:t})]})}const UEs=["10","25","50","100"],BEs={COUPON_BELOW_MIN_PAYABLE:"billing.topup.couponBelowMin",PROMOTION_LIMIT_REACHED:"billing.topup.couponErrors.limitReached",COUPON_INVALID:"billing.topup.couponErrors.invalid",COUPON_EXPIRED:"billing.topup.couponErrors.expired",COUPON_EXHAUSTED:"billing.topup.couponErrors.exhausted",COUPON_UNAVAILABLE:"billing.topup.couponErrors.unavailable"};function N6(e,t){const n=BEs[e.code??""];return n?t(n):e.message}function FEs({open:e,onOpenChange:t}){const{t:n}=W(),a=Te(),[s,r]=h.useState("10"),[i,c]=h.useState(""),d=JMs(),m=eEs(),f=H0(),p=f.data?.paymentsDisabled??!1,y=f.data?.paymentProvider,v=f.data?.providerDisplayName,$=v?n("billing.topup.payOnProvider",{defaultValue:"Payment is completed on the secure {{provider}} checkout page.",provider:v}):n("billing.topup.payOnHostedCheckout",{defaultValue:"Payment is completed on the secure hosted checkout page."}),x=f.data?.taxExclusivePricing??!1,w=f.data?.paymentMethods??["card"],S=["alipay","wechat_pay"].filter(G=>w.includes(G)),k=w.includes("crypto"),T=d.isPending?d.variables?.paymentMethod??"card":null,R=Number(s),_=Number.isFinite(R)&&R>=QI&&R<=foe,P=m.data&&m.data.ok?m.data:null,j=P?.effect==="bonus_percent",N=P&&!j?Number(P.discountUsd):0,I=j?Number(P?.bonusUsd??0):0,z=_?R:0,E=P?.payableUsd??s,L=P?Number(P.payableUsd):z,O=f.data?.maxAmountDecimals??null,V=O!==null&&_&&!zEs(E,O),ne=h.useDeferredValue(s),q=tEs(ne,e&&_&&!j),M=!j&&q.data?q.data:null,F=Number(M?.bonusUsd??0),H=ne!==s,ee=()=>{(m.data||m.error)&&m.reset()},B=G=>d.mutate({amountUsd:s,couponCode:P?i.trim():null,paymentMethod:G});return o.jsx(Up,{open:e,onOpenChange:t,children:o.jsxs(fu,{className:"max-w-md",children:[o.jsxs(Xh,{children:[o.jsx(gu,{children:n("billing.to
962pup.title",{defaultValue:"Top up credit"})}),o.jsxs(hu,{className:"flex items-center gap-1",children:[y==="stripe"?o.jsx(Ace,{size:14}):o.jsx(yR,{className:"size-3.5"}),v?n("billing.topup.poweredBy",{defaultValue:"Secured by {{provider}}",provider:v}):n("billing.topup.secureCheckout",{defaultValue:"Secure hosted checkout"})]})]}),o.jsxs("div",{className:"space-y-4",children:[p?o.jsx(Qt,{title:n("billing.topup.maintenanceTitle",{defaultValue:"Payments temporarily unavailable"}),description:n("billing.topup.maintenanceDescription",{defaultValue:"Payments are temporarily unavailable. Contact us on Telegram if you need to pay."}),action:o.jsx("a",{href:Mg.telegram,target:"_blank",rel:"noreferrer",className:"text-sm font-medium underline",children:n("billing.topup.contactTelegram",{defaultValue:"Contact us on Telegram"})})}):null,o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[n("billing.topup.amountUsd",{defaultValue:"Amount (USD)"}),o.jsx(ge,{value:s,inputMode:"decimal",onChange:G=>{r(G.target.value),ee()}})]}),o.jsx("div",{className:"flex flex-wrap gap-2","aria-label":n("billing.topup.presets",{defaultValue:"Preset amounts"}),children:UEs.map(G=>o.jsx(K,{type:"button",size:"sm",variant:s===G?"secondary":"outline","aria-pressed":s===G,className:"tabular-nums",onClick:()=>{r(G),ee()},children:a.currency(Number(G))},G))}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("billing.topup.minAmountHint",{defaultValue:"Minimum top-up is {{amount}}.",amount:a.currency(QI)})}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[n("billing.topup.promoCode",{defaultValue:"Promotion code"}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(ge,{value:i,onChange:G=>{c(G.target.value.toUpperCase()),ee()},placeholder:n("billing.topup.promoCodePlaceholder",{defaultValue:"Enter code"}),"aria-label":n("billing.topup.promoCode",{defaultValue:"Promotion code"})}),o.jsx(K,{variant:"secondary",onClick:()=>m.mutate({amountUsd:s,couponCode:i.trim()}),disabled:m.isPending||!i.trim()||!_,children:m.isPending?n("billing.topup.previewing",{defaultValue:"Checkingâ¦"}):n("billing.topup.apply",{defaultValue:"Apply"})})]})]}),m.data&&!m.data.ok?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:m.data.effect==="bonus_percent"?n("billing.topup.couponInvalid",{defaultValue:"This code cannot be applied â try another code."}):n("billing.topup.couponBelowMin",{defaultValue:"Discounted total is too low â raise the amount or try another code."})}):null,m.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:N6(m.error,n)}):null,V?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:n("billing.topup.amountPrecision",{defaultValue:"{{provider}} accepts USD amounts with no more than 2 decimal places. Adjust the amount or promotion code.",provider:v??n("billing.topup.secureCheckoutShort",{defaultValue:"Secure checkout"})})}):null,o.jsxs("dl",{className:"grid gap-1.5 rounded-md bg-[color:var(--muted)] p-3 text-sm",children:[o.jsx("p",{className:"text-xs font-medium uppercase tracking-wider text-[color:var(--muted-foreground)]",children:n("billing.topup.pay",{defaultValue:"Pay"})}),o.jsx(bd,{label:n("billing.topup.topupAmount",{defaultValue:"Top-up amount"}),value:a.currency(z)}),P&&!j?o.jsx(bd,{label:n("billing.topup.discount",{defaultValue:"Coupon discount"}),value:`-${a.currency(N)}`}):null,o.jsx(bd,{label:n("billing.topup.serviceFee",{defaultValue:"Service fee"}),value:a.currency(0)}),o.jsx(bd,{label:n("billing.topup.totalDue",{defaultValue:"Total due"}),value:a.currency(L),emphasize:!0}),o.jsx("p",{className:"mt-2 text-xs font-medium uppercase tracking-wider text-[color:var(--muted-foreground)]",children:n("billing.topup.get",{defaultValue:"Get"})}),o.jsx(bd,{label:n("billing.topup.onehopCredits",{defaultValue:"OneHop credits"}),value:a.currency(z)}),j&&I>0?o.jsx(bd,{label:n("billing.topup.couponBonus",{defaultValue:"Coupon bonus"}),value:`+${a.currency(I)}`,tone:"positive"}):null,j&&I>0&&P?.bonusExpiryDays?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("billing.to
962pup.couponBonusExpiry",{defaultValue:"Bonus credits expire {{days}} days after payment.",days:P.bonusExpiryDays})}):null,M&&!H?o.jsxs(o.Fragment,{children:[F>0?o.jsx(bd,{label:n("billing.topup.tierBonus",{defaultValue:"Promotion bonus"}),value:`+${a.currency(F)}`,tone:"positive"}):null,F>0&&M.expiryDays?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("billing.topup.tierBonusExpiry",{defaultValue:"Bonus credits expire {{days}} days after payment.",days:M.expiryDays})}):null,F>0&&M.restrictedModels?.length?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("billing.topup.tierBonusRestricted",{defaultValue:"Bonus credits can only be spent on: {{models}}.",models:M.restrictedModels.join(", ")})}):null,M.nextTier?o.jsx("p",{className:"text-xs font-medium text-[color:var(--success)]",children:M.nextTier.percent!=null?n("billing.topup.nextTierPercent",{defaultValue:"Top up {{amount}} more to earn {{percent}}% in bonus credits.",amount:a.currency(Math.max(0,M.nextTier.minUsd-R)),percent:M.nextTier.percent}):n("billing.topup.nextTierBonus",{defaultValue:"Top up {{amount}} more to earn {{bonus}} in bonus credits.",amount:a.currency(Math.max(0,M.nextTier.minUsd-R)),bonus:a.currency(M.nextTier.bonus??0)})}):null,M.cappedByLimit?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("billing.topup.tierCapReached",{defaultValue:"You've already earned the maximum bonus for this promotion."})}):null]}):null]}),d.error?o.jsx(Qt,{title:n("billing.topupFailed"),description:N6(d.error,n),action:d.error?.code==="PAYMENTS_MAINTENANCE"?o.jsx("a",{href:Mg.telegram,target:"_blank",rel:"noreferrer",className:"text-sm font-medium underline",children:n("billing.topup.contactTelegram",{defaultValue:"Contact us on Telegram"})}):void 0}):null,o.jsxs(K,{className:"w-full",disabled:!_||V||d.isPending||p,onClick:()=>B("card"),children:[o.jsx(Lw,{className:"size-4"}),T==="card"?n("billing.creating"):n("billing.topup.payCta",{defaultValue:"Pay {{amount}}",amount:a.currency(L)}),o.jsx("span",{className:"ml-1 flex items-center gap-1.5 opacity-60",children:y==="stripe"?o.jsxs(o.Fragment,{children:[o.jsx(kg,{brand:"visa",size:22}),o.jsx(kg,{brand:"mastercard",size:17}),o.jsx(kg,{brand:"unionpay",size:17})]}):o.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium",children:[o.jsx(yR,{className:"size-3.5"}),v??n("billing.topup.secureCheckoutShort",{defaultValue:"Secure checkout"})]})})]}),k?o.jsxs(K,{variant:"outline",className:"w-full",disabled:!_||V||d.isPending||p,onClick:()=>B("crypto"),children:[o.jsx($9,{className:"size-4"}),T==="crypto"?n("billing.creating"):n("billing.topup.crypto",{defaultValue:"Pay with crypto (USDC / USDT)"})]}):null,S.length>0?o.jsx("div",{className:X("grid gap-2",S.length>1&&"grid-cols-2"),children:S.map(G=>o.jsxs(K,{variant:"outline",disabled:!_||V||d.isPending||p,onClick:()=>B(G),children:[o.jsx(kg,{brand:G==="alipay"?"alipay":"wechat-pay",size:16}),T===G?n("billing.creating"):G==="alipay"?n("billing.topup.alipay",{defaultValue:"Alipay"}):n("billing.topup.wechatPay",{defaultValue:"WeChat Pay"})]},G))}):null,o.jsx("p",{className:"text-center text-xs text-[color:var(--muted-foreground)]",children:x?`${n("billing.topup.taxExclusiveNotice",{defaultValue:"Applicable taxes are calculated at checkout and added to this amount."})} ${$}`:$})]})]})})}function bd({label:e,value:t,emphasize:n,tone:a}){return o.jsxs("div",{className:X("flex justify-between gap-3",n&&"border-t border-[color:var(--border)] pt-1.5 font-medium"),children:[o.jsx("dt",{className:n?"":"text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:X("tabular-nums",a==="positive"&&"font-medium text-[color:var(--success)]"),children:t})]})}function zEs(e,t){const n=e.trim();return/^\d+(?:\.\d+)?$/.test(n)?(n.split(".")[1]?.replace(/0+$/,"")??"").length<=t:!1}function qEs(){const{t:e}=W(),t=Te(),[n,a]=s_(),s=n.get("topup"),r=s==="success"||s==="failed"||s==="cancelled"?s:null,[i,c]=h.useState(r!==null),[d,m]=h.useState(r==="success"),f=h.useRef(r==="success"?Date.now():0);h.useEffect(()=>{if(!d)return;const ne=setInterval(()=>{Date.now()-f.current>25e3&&m(!1)},1e3);return()=>clearInterval(ne)},[d]);const p=()=>{c(!1);const ne=new URLSearchParams(n);ne.delete("topup"),a(ne,{replace:!0})},[y,v]=h.useState(!1),$=H0({pollEnabled:d,pollIntervalMs:5e3}),x=BK(30),w=MZ({kinds:"funding",limit:"100"}),S=OK(),k=$.data?.wallet,T=gN(),R=Number(k?.availableCredit??0),_=REs(x.data?.byDate??[]),P=FV(R,_),j=AEs(w.data?.items??[],Number(S.data?.totalBilledCredit??0)),N=T.data?.alertThreshold?Number(T.data.alertThreshold):null,z=!$.isPending&&!T.isPending&&(N!=null&&Number.isFinite(N)?R<N:R<=0),E=[];P.daysRemaining!=null&&E.push(e("billing.burnRate.daysLeft",{defaultValue:"â {{days}} days left at current rate",days:Math.floor(P.daysRemaining)})),P.avgDailyUsd>0&&E.push(e("billing.burnRate.perDay",{defaultValue:"{{amount}} avg/day",amount:t.currency(P.avgDailyUsd,"USD",4)}));const L=E.length?E.join(" · "):e("billing.burnRate.noUsage",{defaultValue:"No usage in the last 30 days"}),O=ne=>ne>0?`+${t.currency(ne)}`:t.currency(ne),V=ne=>ne>0?"text-[color:var(--success)]":"text-[color:var(--muted-foreground)]";return o.jsxs(Vt,{title:e("billing.title"),description:e("billing.description"),children:[o.jsx(LEs,{}),i?o.jsx(HEs,{kind:r??"cancelled",polling:d,onDismiss:p,t:e}):null,o.jsxs(Ee,{className:"min-w-0 p-3 sm:p-6","data-tour":"balance",children:[z?o.jsxs("div",{className:"mb-4 flex min-w-0 items-start gap-2 rounded-md border border-[color:var(--warning-border)] bg-[color:var(--warning-surface)] px-3 py-2 text-sm sm:mb-5 sm:items-center",children:[o.jsx(dj,{className:"size-4 shrink-0 text-[color:var(--warning)]"}),o.jsx("span",{className:"min-w-0 break-words",children:$.data?.supportsSavedPaymentMethods===!1?e("billing.lowBalanceWarningNoAutoTopup",{defaultValue:"Your balance is low and may interrupt requests. Top up to continue."}):e("billing.lowBalanceWarning",{defaultValue:"Your balance is low and may interrupt requests. Top up or enable auto top-up."})})]}):null,o.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"text-xs font-medium text-[color:var(--muted-foreground)] sm:text-sm",children:e("billing.availableCredit")}),o.jsx("p",{"data-clarity-mask":"true",className:X("mt-1 break-all text-2xl font-semibold tabular-nums sm:text-5xl",z&&"text-[color:var(--warning)]"),children:o.jsx(Ho,{value:R,format:ne=>t.currency(ne)})}),o.jsx("p",{className:"mt-1.5 text-xs text-[color:var(--muted-foreground)] tabular-nums sm:mt-2 sm:text-sm",children:L})]}),o.jsxs(K,{size:"lg",className:"h-10 w-full sm:h-11 sm:w-auto",onClick:()=>v(!0),children:[o.jsx(wr,{className:"size-4"}
962),e("billing.topup.title",{defaultValue:"Top up"})]})]}),o.jsxs("dl",{className:"mt-4 grid grid-cols-1 gap-x-3 gap-y-2 border-t border-[color:var(--border)] pt-3 text-xs min-[360px]:grid-cols-3 sm:mt-5 sm:flex sm:gap-0 sm:divide-x sm:divide-[color:var(--border)] sm:pt-4 sm:text-sm",children:[o.jsx(lT,{label:e("billing.breakdown.topups",{defaultValue:"Top-ups"}),value:O(j.topups),className:V(j.topups)}),o.jsx(lT,{label:e("billing.breakdown.bonuses",{defaultValue:"Bonuses"}),value:O(j.bonuses),className:V(j.bonuses)}),o.jsx(lT,{label:e("billing.breakdown.usage",{defaultValue:"Usage"}),value:t.currency(j.usage),className:"text-[color:var(--muted-foreground)]"})]}),$.error?o.jsx(Qt,{className:"mt-4",title:e("billing.summaryFailed"),description:$.error.message}):null]}),o.jsx(uEs,{credits:k?.earmarkedCredits}),o.jsx(fEs,{}),o.jsx(wEs,{}),o.jsx(lEs,{}),o.jsx(PEs,{}),o.jsx(DEs,{onTopUp:()=>v(!0)}),o.jsx(Mce,{text:e("billing.compliance.text"),tosHref:"/terms",tosLabel:e("billing.compliance.tosLink")}),o.jsx(FEs,{open:y,onOpenChange:v})]})}function lT({label:e,value:t,className:n}){return o.jsxs("div",{className:"min-w-0 sm:flex-1 sm:px-5 sm:first:pl-0 sm:last:pr-0",children:[o.jsx("dt",{className:"break-words text-2xs font-semibold uppercase text-[color:var(--muted-foreground)] sm:text-xs",children:e}),o.jsx("dd",{className:X("mt-1 break-words text-sm font-medium tabular-nums",n),children:t})]})}function HEs({kind:e,polling:t,onDismiss:n,t:a}){return e==="failed"?o.jsxs(Hm,{variant:"destructive",role:"status",className:"mb-4 flex items-start gap-3 text-sm [&>svg]:static [&>svg]:size-5 [&>svg~*]:pl-0",children:[o.jsx(P3,{className:"mt-0.5 size-5 shrink-0"}),o.jsxs("div",{className:"flex-1",children:[o.jsx("p",{className:"font-medium",children:a("billing.topupBanner.failedTitle")}),o.jsx("p",{className:"mt-1 text-[color:var(--muted-foreground)]",children:a("billing.topupBanner.failedBody")})]}),o.jsx(Aa,{variant:"ghost",size:"sm",onClick:n,"aria-label":a("common.dismiss"),children:"â"})]}):e==="cancelled"?o.jsxs(Hm,{role:"status",className:"mb-4 flex items-start gap-3 text-sm [&>svg]:static [&>svg]:size-5 [&>svg~*]:pl-0",children:[o.jsx(P3,{className:"mt-0.5 size-5 shrink-0 text-[color:var(--muted-foreground)]"}),o.jsxs("div",{className:"flex-1",children:[o.jsx("p",{className:"font-medium",children:a("billing.topupBanner.cancelledTitle")}),o.jsx("p",{className:"mt-1 text-[color:var(--muted-foreground)]",children:a("billing.topupBanner.cancelledBody")})]}),o.jsx(Aa,{variant:"ghost",size:"sm",onClick:n,"aria-label":a("common.dismiss"),children:"â"})]}):o.jsxs(Hm,{variant:"success",role:"status","aria-live":"polite",className:"mb-4 flex items-start gap-3 text-sm text-[color:var(--foreground)] [&>svg]:static [&>svg]:size-5 [&>svg~*]:pl-0",children:[o.jsx(bve,{className:"mt-0.5 size-5 shrink-0 text-[color:var(--success)]"}),o.jsxs("div",{className:"flex-1",children:[o.jsx("p",{className:"font-medium",children:a("billing.topupBanner.successTitle")}),o.jsx("p",{className:"mt-1 text-[color:var(--muted-foreground)]",children:a(t?"billing.topupBanner.polling":"billing.topupBanner.delayed")})]}),o.jsx(Aa,{variant:"ghost",size:"sm",onClick:n,"aria-label":a("common.dismiss"),children:"â"})]})}function D6(e){return`${e.title} 963${e.body} 964${e.inviteUrl}`.trim()}function VEs(e,t){const n=`${t.title} 965${t.body}`.trim();switch(e){case"x":return`https://twitter.com/intent/tweet?${new URLSearchParams({text:n,url:t.inviteUrl})}`;case"telegram":return`https://t.me/share/url?${new URLSearchParams({url:t.inviteUrl,text:n})}`;case"reddit":return`https://www.reddit.com/submit?${new URLSearchParams({url:t.inviteUrl,title:t.title})}`;case"linkedin":return`https://www.linkedin.com/sharing/share-offsite/?${new URLSearchParams({url:t.inviteUrl})}`;case"whatsapp":return`https://wa.me/?${new URLSearchParams({text:`${n} 966${t.inviteUrl}`.trim()})}`;case"facebook":return`https://www.facebook.com/sharer/sharer.php?${new URLSearchParams({u:t.inviteUrl})}`;case"email":return`mailto:?subject=${encodeURIComponent(t.title)}&body=${encodeURIComponent(`${t.body} 967 968${t.inviteUrl}`)}`}}function KEs(e){const t=Array.isArray(e.rewardTiers)?e.rewardTiers:[],n=t.filter(d=>d.from_day===0).map(d=>d.percent),a=n.length?Math.max(...n):t.length?Math.max(...t.map(d=>d.percent)):0,r=[...t].sort((d,m)=>d.from_day-m.from_day)[0]?.until_day??0,i=t.map(d=>d.until_day).filter(d=>d!=null),c=i.length?Math.max(...i):0;return{percent:a,firstWindowDays:r,totalWindowDays:c,capUsd:e.perTopupCapUsd??null,expiryDays:e.bonusExpiryDays??null}}function M6(e){return e==="referrer"?0:1}function UZ(e){return e>0?e+1:e}const BZ={dayRange:(e,t)=>
968`days ${e}-${t}`,dayOpenEnded:e=>`day ${e}+`};function E6(e,t,n=BZ,a=" · "){return[...e.rewardTiers].filter(s=>s.recipient_role===t).sort((s,r)=>s.from_day-r.from_day).map(s=>{const r=UZ(s.from_day);return`${s.until_day==null?n.dayOpenEnded(r):n.dayRange(r,s.until_day)} ${s.percent}%`}).join(a)}function GEs(e,t,n=BZ){return[...e.rewardTiers].sort((s,r)=>s.from_day!==r.from_day?s.from_day-r.from_day:(s.until_day??Number.POSITIVE_INFINITY)!==(r.until_day??Number.POSITIVE_INFINITY)?(s.until_day??Number.POSITIVE_INFINITY)-(r.until_day??Number.POSITIVE_INFINITY):M6(s.recipient_role)-M6(r.recipient_role)).map(s=>{const r=UZ(s.from_day);return`${s.until_day==null?n.dayOpenEnded(r):n.dayRange(r,s.until_day)}: ${t[s.recipient_role]} ${s.percent}%`}).join(" · ")}const WEs=[{channel:"x",labelKey:"referrals.x",defaultLabel:"X"},{channel:"telegram",labelKey:"referrals.telegram",defaultLabel:"Telegram"},{channel:"reddit",labelKey:"referrals.reddit",defaultLabel:"Reddit"},{channel:"linkedin",labelKey:"referrals.linkedin",defaultLabel:"LinkedIn"},{channel:"whatsapp",labelKey:"referrals.whatsapp",defaultLabel:"WhatsApp"},{channel:"email",labelKey:"referrals.email",defaultLabel:"Email"},{channel:"facebook",labelKey:"referrals.facebook",defaultLabel:"Facebook"},{channel:"wechat",labelKey:"referrals.wechat",defaultLabel:"WeChat"}];function YEs(e){return e==="email"?o.jsx(lj,{className:"size-4"}):o.jsx(Xb,{brand:e,size:16})}function QEs(){const{t:e}=W(),t=Te(),n=EZ(),a=CEs(),s=`https://${BT}`,r=n.data?`${s}/invite/${n.data.referralCode}`:"",i={referrer:e("referrals.role.referrer",{defaultValue:"Inviter"}),referee:e("referrals.role.referee",{defaultValue:"Invitee"})},c={dayRange:(x,w)=>e("referrals.policy.dayRange",{defaultValue:"days {{fromDay}}-{{untilDay}}",fromDay:x,untilDay:w}),dayOpenEnded:x=>e("referrals.policy.dayOpenEnded",{defaultValue:"day {{fromDay}}+",fromDay:x})},d=n.data?GEs(n.data.policy,i,c):"",m=n.data?E6(n.data.policy,"referrer",c):"",f=n.data?E6(n.data.policy,"referee",c):"",p=n.data?KEs(n.data.policy):{percent:0,firstWindowDays:0,totalWindowDays:0,capUsd:null,expiryDays:null},y={percent:p.percent,firstWindowDays:p.firstWindowDays,totalWindowDays:p.totalWindowDays,capUsd:p.capUsd??0,expiryDays:p.expiryDays??0,tiers:d},v=x=>({inviteUrl:r,title:e(["referrals.share."+x+".title","referrals.share.default.title"],{...y,defaultValue:"Build with every AI model through one OneHop API"}),body:e(["referrals.share."+x+".body","referrals.share.default.body"],{...y,defaultValue:"Use my invite link â after your first top-up, referral credits are tracked automatically."})}),$=async x=>{if(!r)return;const w=v(x);try{await navigator.clipboard.writeText(D6(w))}catch{}if(x==="copy")return;if(x==="wechat"){ie.success(e("referrals.wechatCopied",{defaultValue:"Invite copied. Paste it into WeChat to share."}));return}const S=VEs(x,w);x==="email"?window.location.href=S:window.open(S,"_blank","noopener,noreferrer")};return o.jsx(Vt,{title:e("referrals.title",{defaultValue:"Invite & Earn"}),description:e("referrals.description",{defaultValue:"Share your link. When someone you invite tops up, you earn cashback credit."}),children:n.isError?o.jsx(Qt,{title:e("referrals.error",{defaultValue:"Could not load your referrals"}),action:o.jsx(K,{variant:"outline",onClick:()=>n.refetch(),children:e("common.retry",{defaultValue:"Retry"})})}):o.jsxs("div",{className:"flex flex-col gap-4 sm:gap-6",children:[o.jsxs(Ee,{className:"flex min-w-0 flex-col gap-4 p-3 sm:p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:e("referrals.yourLink",{defaultValue:"Your invite link"})}),o.jsxs("div",{className:"grid min-w-0 gap-2 sm:flex sm:items-center",children:[o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx(xj,{value:r||"â",copyValue:r?D6(v("copy")):"",mono:!0,className:"min-w-0 pr-10 text-xs"}),r?o.jsx("p",{className:"mt-1.5 max-h-16 overflow-y-auto break-all rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/35 px-2.5 py-2 font-[family-name:var(--font-mono)] text-xs leading-relaxed text-[color:var(--muted-foreground)] sm:hidden",children:r}):null]}),o.jsxs(zp,{modal:!1,children:[o.jsx(qp,{asChild:!0,children:o.jsxs(K,{variant:"outline",disabled:!r,className:"w-full justify-center sm:w-auto
968sm:shrink-0",children:[o.jsx(Gbe,{className:"size-4"}),e("referrals.shareVia",{defaultValue:"Share"}),o.jsx(zc,{className:"size-3.5 opacity-60"})]})}),o.jsx(xu,{align:"end",collisionPadding:8,className:"max-h-[min(22rem,calc(100dvh-1rem))] w-[var(--radix-dropdown-menu-trigger-width)] min-w-44 max-w-[calc(100vw-1rem)] overflow-y-auto",children:WEs.map(({channel:x,labelKey:w,defaultLabel:S})=>o.jsxs(La,{onSelect:()=>$(x),className:"min-w-0 gap-2",children:[YEs(x),o.jsx("span",{className:"min-w-0 truncate",children:e(w,{defaultValue:S})})]},x))})]})]}),o.jsxs("div",{className:"flex flex-col gap-1.5 text-sm text-muted-foreground",children:[o.jsxs("p",{children:[o.jsx("strong",{className:"font-medium text-foreground",children:i.referrer}),e("referrals.roleOffer.referrer",{defaultValue:": earn referral credit when someone you invite tops up â {{tiers}}.",tiers:m})]}),o.jsxs("p",{children:[o.jsx("strong",{className:"font-medium text-foreground",children:i.referee}),e("referrals.roleOffer.referee",{defaultValue:": sign up with the link, then top up to earn too â {{tiers}}.",tiers:f})]})]}),o.jsxs("p",{className:"text-sm text-muted-foreground",children:[e("referrals.offer",{defaultValue:"Rewards are visible immediately after payment, frozen during the refund window, then released as OneHop referral credit."}),n.data?` ${e("referrals.releaseDelay",{defaultValue:"Released after {{days}} days.",days:n.data.policy.releasePolicy.delay_days??30})}`:""]})]}),o.jsxs("div",{className:"grid grid-cols-1 gap-3 min-[360px]:grid-cols-2 sm:gap-4 lg:grid-cols-4",children:[o.jsx(Gl,{label:e("referrals.totalEarned",{defaultValue:"Total earned"}),value:n.data?t.currency(Number(n.data.totalEarned)):"â"}),o.jsx(Gl,{label:e("referrals.availableEarned",{defaultValue:"Available earned"}),value:n.data?t.currency(Number(n.data.availableEarned)):"â"}),o.jsx(Gl,{label:e("referrals.frozenEarned",{defaultValue:"Frozen earned"}),value:n.data?t.currency(Number(n.data.frozenEarned)):"â"}),o.jsx(Gl,{label:e("referrals.active",{defaultValue:"Active"}),value:n.data?t.number(n.data.activeCount):"â"}),o.jsx(Gl,{label:e("referrals.invited",{defaultValue:"Invited"}),value:n.data?t.number(n.data.refereeCount):"â"}),o.jsx(Gl,{label:e("referrals.availableReceived",{defaultValue:"Available received"}),value:n.data?t.currency(Number(n.data.availableReceived)):"â"}),o.jsx(Gl,{label:e("referrals.frozenReceived",{defaultValue:"Frozen received"}),value:n.data?t.currency(Number(n.data.frozenReceived)):"â"}),o.jsx(Gl,{label:e("referrals.cancelledReversed",{defaultValue:"Cancelled / reversed"}),value:n.data?`${t.currency(Number(n.data.totalCancelled))} / ${t.currency(Number(n.data.totalReversed))}`:"â"})]})]}),o.jsxs(Ee,{className:"p-3 sm:p-5",children:[o.jsx("h2",{className:"mb-3 text-sm font-medium",children:e("referrals.peopleYouInvited",{defaultValue:"People you invited"})}),n.data&&n.data.referees.length>0?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden overflow-x-auto md:block",children:o.jsxs("table",{className:"min-w-[720px] w-full text-sm",children:[o.jsx("thead",{className:"text-left text-muted-foreground",children:o.jsxs("tr",{children:[o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.user",{defaultValue:"User"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.joined",{defaultValue:"Joined"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.topups",{defaultValue:"Topups"})}),o.jsx("th",{className:"py-2 text-right font-normal",children:e("referrals.col.earned",{defaultValue:"You earned"})}),o.jsx("th",{className:"py-2 text-right font-normal",children:e("referrals.col.frozen",{defaultValue:"Frozen"})})]})}),o.jsx("tbody",{children:n.data.referees.map(x=>o.jsxs("tr",{className:"border-t border-border",children:[o.jsx("td",{className:"max-w-[260px] break-all py-2",children:x.email}),o.jsx("td",{className:"py-2 text-muted-foreground",children:t.dateTime(x.boundAt)}),o.jsx("td",{className:"py-2 tabular-nums",children:t.number(x.topups)}),o.jsx("td",{className:"py-2 text-right tabular-nums",children:t.currency(Number(x.earned))}),o.jsx("td",{className:"py-2 text-right tabular-nums",children:t.currency(Number(x.frozen))})]},x.refereePublicId))})]})}),o.jsx("div",{className:"grid gap-2 md:hidden",children:n.data.referees.map(x=>o.jsxs(jh,{className:"p-2",children:[o.jsx(Nh,{title:o.jsx("span",{className:"break-all",children:x.email}),meta:t.dateTime(x.boundAt)}),o.jsxs(K$,{className:"mt-1.5 grid-cols-1 gap-x-2 min-[360px]:grid-cols-2",children:[o.jsx(nr,{label:e("referrals.col.topups",{defaultValue:"Topups"}),children:t.number(x.topups)}),o.jsx(nr,{label:e("referrals.col.earned",{defaultValue:"You earned"}),align:"right",children:t.currency(Number(x.earned))}),o.jsx(nr,{label:e("referrals.col.frozen",{defaultValue:"Frozen"}
968),align:"right",children:t.currency(Number(x.frozen))})]})]},x.refereePublicId))})]}):o.jsx(Ot,{icon:o.jsx(uy,{className:"size-6"}),title:e("referrals.empty.title",{defaultValue:"No invites yet"}),description:e("referrals.empty.description",{defaultValue:"Share your link to start earning."})})]}),a.data&&a.data.items.length>0&&o.jsxs(Ee,{className:"p-3 sm:p-5",children:[o.jsx("h2",{className:"mb-3 text-sm font-medium",children:e("referrals.history",{defaultValue:"Cashback history"})}),o.jsx("div",{className:"hidden overflow-x-auto md:block",children:o.jsxs("table",{className:"min-w-[860px] w-full text-sm",children:[o.jsx("thead",{className:"text-left text-muted-foreground",children:o.jsxs("tr",{children:[o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.date",{defaultValue:"Date"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.event",{defaultValue:"Event"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.topupAmount",{defaultValue:"Their topup"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.rate",{defaultValue:"Rate"})}),o.jsx("th",{className:"py-2 font-normal",children:e("referrals.col.releaseAt",{defaultValue:"Release"})}),o.jsx("th",{className:"py-2 text-right font-normal",children:e("referrals.col.cashback",{defaultValue:"Cashback"})}),o.jsx("th",{className:"py-2 text-right font-normal",children:e("referrals.col.status",{defaultValue:"Status"})})]})}),o.jsx("tbody",{children:a.data.items.map(x=>o.jsxs("tr",{className:"border-t border-border",children:[o.jsx("td",{className:"py-2 text-muted-foreground",children:t.dateTime(x.createdAt)}),o.jsx("td",{className:"py-2",children:o.jsxs("div",{className:"flex flex-col",children:[o.jsx("span",{children:I6(x.eventType,x.recipientRole,e)}),x.counterpartyEmail?o.jsx("span",{className:"break-all text-xs text-muted-foreground",children:x.counterpartyEmail}):null]})}),o.jsx("td",{className:"py-2 tabular-nums",children:x.refereeTopupUsd?t.currency(Number(x.refereeTopupUsd)):"â"}),o.jsx("td",{className:"max-w-[140px] break-words py-2 tabular-nums",children:x.ratePercent?`${Number(x.ratePercent)}%${x.tierLabel?` · ${x.tierLabel}`:""}`:"â"}),o.jsx("td",{className:"py-2 text-muted-foreground",children:x.releaseAt?t.dateTime(x.releaseAt):"â"}),o.jsx("td",{className:"py-2 text-right tabular-nums",children:o.jsxs("div",{className:"flex flex-col",children:[o.jsx("span",{children:x.grantAmount?t.currency(Math.max(Number(x.grantAmount)-Number(x.cancelled)-Number(x.reversed)-Number(x.forfeited),0)):"â"}),Number(x.cancelled)>0||Number(x.reversed)>0||Number(x.forfeited)>0?o.jsxs("span",{className:"text-xs text-muted-foreground",children:["-",t.currency(Number(x.cancelled)+Number(x.reversed)+Number(x.forfeited))]}):null]})}),o.jsx("td",{className:"py-2 text-right",children:o.jsx(jo,{tone:x.status==="released"?"primary":x.status==="reversed"||x.status==="cancelled"?"destructive":"muted",children:e(`referrals.status.${x.status}`,{defaultValue:x.status})})})]},x.publicId))})]})}),o.jsx("div",{className:"grid gap-2 md:hidden",children:a.data.items.map(x=>{const w=x.grantAmount?Math.max(Number(x.grantAmount)-Number(x.cancelled)-Number(x.reversed)-Number(x.forfeited),0):null,S=Number(x.cancelled)+Number(x.reversed)+Number(x.forfeited);return o.jsxs(jh,{className:"p-2",children:[o.jsx(Nh,{title:o.jsx("span",{className:"text-sm",children:I6(x.eventType,x.recipientRole,e)}),meta:o.jsxs(o.Fragment,{children:[t.dateTime(x.createdAt),x.counterpartyEmail?o.jsx("span",{className:"block break-all",children:x.counterpartyEmail}):null]}),trailing:o.jsx(jo,{tone:x.status==="released"?"primary":x.status==="reversed"||x.status==="cancelled"?"destructive":"muted",children:e(`referrals.status.${x.status}`,{defaultValue:x.status})})}),o.jsxs(K$,{className:"mt-1.5 grid-cols-1 gap-x-2 min-[360px]:grid-cols-2",children:[o.jsx(nr,{label:e("referrals.col.topupAmount",{defaultValue:"Their topup"}),children:x.refereeTopupUsd?t.currency(Number(x.refereeTopupUsd)):"â"}),o.jsx(nr,{label:e("referrals.col.rate",{defaultValue:"Rate"}),align:"right",children:x.ratePercent?`${Number(x.ratePercent)}%${x.tierLabel?` · ${x.tierLabel}`:""}`:"â"}),o.jsx(nr,{label:e("referrals.col.releaseAt",{defaultValue:"Release"}),children:x.releaseAt?t.dateTime(x.releaseAt):"â"}),o.jsxs(nr,{label:e("referrals.col.cashback",{defaultValue:"Cashback"}),align:"right",children:[o.jsx("span",{children:w!=null?t.currency(w):"â"}),S>0?o.jsxs("span",{className:"block text-xs text-[color:var(--muted-foreground)]",children:["-",t.currency(S)]}):null]})]})]},x.publicId)})})]})]})})}function I6(e,t,n){return e==="signup"?t==="referrer"?n("referrals.event.inviteeSignedUp",{defaultValue:"Invitee signed up"}):n("referrals.event.youSignedUp",{defaultValue:"You signed up by invite"}):t==="referrer"?n("referrals.event.inviteePaid",{defaultValue:"Invitee paid"}
968):n("referrals.event.youPaid",{defaultValue:"Your invited payment"})}function Gl({label:e,value:t}){return o.jsxs("div",{className:"flex min-w-0 flex-col gap-1",children:[o.jsx("span",{className:"min-w-0 break-words text-2xs font-semibold uppercase text-muted-foreground sm:text-xs sm:normal-case",children:e}),o.jsx("span",{className:"min-w-0 break-words text-base font-medium tabular-nums sm:text-xl",children:t})]})}const FZ=["console","tasks"];function XEs(){return Ue({queryKey:FZ,queryFn:()=>Ye.request("/console/tasks")})}function ZEs(){const e=Re();return ke({mutationFn:t=>Ye.request("/console/tasks/submissions",{method:"POST",body:t}),onSuccess:()=>{e.invalidateQueries({queryKey:FZ})}})}const JEs={pending:"warning",approved:"success",rejected:"destructive"},eIs={TASK_URL_REQUIRED:"tasks.error.urlRequired",TASK_URL_TOO_LONG:"tasks.error.urlTooLong",TASK_URL_MALFORMED:"tasks.error.urlMalformed",TASK_URL_HOST_NOT_ALLOWED:"tasks.error.hostNotAllowed",TASK_URL_NOT_A_POST:"tasks.error.notAPost",TASK_ALREADY_SUBMITTED:"tasks.error.alreadySubmitted",TASK_NOT_AVAILABLE:"tasks.error.notAvailable",TASK_WALL_BUSY:"tasks.error.busy",TASK_INELIGIBLE_EMAIL_UNVERIFIED:"tasks.error.emailUnverified",TASK_INELIGIBLE_ACCOUNT_TOO_NEW:"tasks.error.accountTooNew",TASK_INELIGIBLE_RISK_FLAGGED:"tasks.error.riskFlagged",TASK_INELIGIBLE_ACCOUNT_INACTIVE:"tasks.error.accountInactive",TASK_INELIGIBLE_DEVICE_ALREADY_CLAIMED:"tasks.error.deviceAlreadyClaimed"};function tIs({task:e,submission:t,onSubmit:n,submitting:a}){const{t:s}=W(),r=Te(),[i,c]=h.useState(""),d=s("tasks.sponsorBlurb",{defaultValue:"",url:`https://${BT}`,domain:BT,interpolation:{escapeValue:!1}}),m=t!=null&&t.status!=="rejected",f=e.rewardType==="topup_percent"?`+${e.amountUsd}%`:r.currency(e.amountUsd);return o.jsxs(Ee,{className:"flex min-w-0 flex-col gap-4 p-3 sm:p-5",children:[o.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h3",{className:"text-sm font-medium text-foreground",children:s(`tasks.item.${e.taskKey}.title`,{defaultValue:e.taskKey})}),o.jsx("p",{className:"mt-1 text-13 text-muted-foreground",children:s(`tasks.item.${e.taskKey}.description`,{defaultValue:""})})]}),o.jsx("span",{className:"shrink-0 font-[family-name:var(--font-mono)] text-sm font-medium tabular-nums text-[color:var(--primary)]",children:f})]}),e.rewardType==="topup_percent"?o.jsxs("div",{className:"flex flex-col gap-2 rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/35 p-3",children:[o.jsx("p",{className:"whitespace-pre-wrap break-words font-[family-name:var(--font-mono)] text-2xs leading-relaxed text-muted-foreground",children:d}),o.jsx(S_,{value:d,copyLabel:s("tasks.copyBlurb",{defaultValue:"Copy this text"}),className:"self-start"})]}):null,o.jsx("ul",{className:"flex flex-col gap-1 text-13 text-muted-foreground",children:s(`tasks.item.${e.taskKey}.rules`,{returnObjects:!0,defaultValue:[]}).map(p=>o.jsxs("li",{className:"flex gap-2",children:[o.jsx("span",{"aria-hidden":!0,className:"text-[color:var(--muted-foreground)]",children:"·"}),o.jsx("span",{className:"min-w-0",children:p})]},p))}),m?o.jsxs("div",{className:"flex flex-col gap-2 border-t border-[color:var(--border)] pt-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(jo,{tone:JEs[t.status],children:s(t.status==="approved"&&e.rewardType==="topup_percent"?"tasks.status.active":`tasks.status.${t.status}`,{defaultValue:t.status})}),o.jsx("span",{className:"text-2xs text-muted-foreground",children:r.dateTime(t.createdAt)})]}),o.jsx("p",{className:"break-all text-2xs text-muted-foreground",children:t.submittedUrl})]}):o.jsxs("form",{className:"flex flex-col gap-2 border-t border-[color:var(--border)] pt-3",onSubmit:p=>{p.preventDefault(),i.trim()&&n(e.taskKey,i.trim())},children:[t?.status==="rejected"?o.jsx("p",{className:"text-13 text-[color:var(--destructive)]",children:s("tasks.rejectedHint",{defaultValue:"Previously rejected: {{reason}}. Fix it and submit again.",reason:t.rejectReason??""})}):null,o.jsx("label",{className:ti,htmlFor:`task-url-${e.taskKey}`,children:s("tasks.urlLabel",{defaultValue:"Link to your post"})}),o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center",children:[o.jsx(ge,{id:`task-url-${e.taskKey}`,value:i,onChange:p=>c(p.target.value),placeholder:s("tasks.urlPlaceholder",{defaultValue:"https://â¦"}),className:"min-w-0 flex-1",inputMode:"url"}),o.jsx(K,{type:"submit",disabled:!i.trim()||a,className:"w-full justify-center sm:w-auto
968sm:shrink-0",children:s("tasks.submit",{defaultValue:"Submit"})})]}),o.jsx("p",{className:"text-2xs text-muted-foreground",children:s("tasks.allowedHosts",{defaultValue:"Accepted links: {{hosts}}",hosts:e.allowedHosts.join(", ")})})]})]})}function nIs(){const{t:e}=W(),t=XEs(),n=ZEs(),a=new Map((t.data?.submissions??[]).map(r=>[r.taskKey,r])),s=(r,i)=>{n.mutate({taskKey:r,url:i},{onSuccess:()=>ie.success(e("tasks.submitted",{defaultValue:"Submitted â we will review it shortly."})),onError:c=>{const d=c instanceof rn?c.code:"";ie.error(e(eIs[d]??"tasks.error.generic",{defaultValue:c instanceof Error?c.message:"Could not submit"}))}})};return o.jsx(Vt,{title:e("tasks.title",{defaultValue:"Task Wall"}),description:e("tasks.description",{defaultValue:"Share OneHop with your audience and earn trial credit. We review each submission by hand."}),children:t.isError?o.jsx(Qt,{title:e("tasks.error.load",{defaultValue:"Could not load the task wall"}),action:o.jsx(K,{variant:"outline",onClick:()=>t.refetch(),children:e("common.retry",{defaultValue:"Retry"})})}):t.isLoading?null:(t.data?.tasks.length??0)===0?o.jsx(Ot,{icon:o.jsx(uy,{className:"size-5"}),title:e("tasks.empty.title",{defaultValue:"No tasks right now"}),description:e("tasks.empty.description",{defaultValue:"Check back soon â we run these campaigns periodically."})}):o.jsx("div",{className:"flex flex-col gap-4 sm:gap-6",children:t.data.tasks.map(r=>o.jsx(tIs,{task:r,submission:a.get(r.taskKey),onSubmit:s,submitting:n.isPending},r.taskKey))})})}const aIs={open:"secondary",pending:"warning",resolved:"success",closed:"outline"};function Pp({status:e}){const{t}=W();return o.jsx(Xt,{variant:aIs[e],children:t(`support.status.${e}`)})}function oIs(){const{t:e}=W(),t=Te(),n=No(),{params:a,patch:s}=Mt(),r=Pe(a,"status"),i=h.useMemo(()=>{const p={};return r&&(p.status=r),p},[r]),c=Mxe(i),d=c.data?.pages.flatMap(p=>p.items)??[],[m,f]=h.useState(!1);return o.jsxs(Vt,{title:e("support.title"),description:e("support.subtitle"),action:o.jsxs(K,{className:"w-full sm:w-auto",onClick:()=>f(!0),children:[o.jsx(ij,{className:"size-4"}),e("support.newTicket")]}),children:[o.jsx("div",{className:"mb-4 w-full min-w-0 sm:w-48",children:o.jsxs(Ms,{value:r||"all",onValueChange:p=>s({status:p==="all"?void 0:p}),children:[o.jsx(as,{children:o.jsx(Es,{placeholder:e("support.filters.allStatuses")})}),o.jsxs(os,{children:[o.jsx(zn,{value:"all",children:e("support.filters.allStatuses")}),$F.map(p=>o.jsx(zn,{value:p,children:e(`support.status.${p}`)},p))]})]})}),c.isLoading?o.jsx("div",{className:"space-y-2",children:Array.from({length:4}).map((p,y)=>o.jsx(Rt,{className:"h-12 w-full"},y))}):d.length?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{className:"min-w-[680px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{sticky:"left",children:e("support.columns.subject")}),o.jsx(Ie,{children:e("support.columns.category")}),o.jsx(Ie,{children:e("support.columns.status")}),o.jsx(Ie,{children:e("support.columns.updated")})]})}),o.jsx(Ba,{children:d.map(p=>o.jsxs(qt,{className:"cursor-pointer",onClick:()=>n(FT(p.publicId)),children:[o.jsxs(Me,{sticky:"left",className:X("max-w-[34rem] truncate",p.unread&&"font-semibold"),children:[p.unread?o.jsx("span",{className:"mr-2 inline-block size-2 rounded-full bg-[color:var(--primary)]"}):null,o.jsx("span",{className:"align-middle",children:p.subject})]}),o.jsx(Me,{children:o.jsx(Xt,{variant:"outline",children:e(`support.category.${p.category}`)})}),o.jsx(Me,{children:o.jsx(Pp,{status:p.status})}),o.jsx(Me,{className:"text-[color:var(--muted-foreground)]",children:p.lastMessageAt?t.relativeTime(p.lastMessageAt):t.relativeTime(p.createdAt)})]},p.publicId))})]})}),o.jsx("div",{className:"grid min-w-0 gap-2 md:hidden",children:d.map(p=>o.jsxs(jh,{className:"shadow-none",onClick:()=>n(FT(p.publicId)),children:[o.jsx(Nh,{title:o.jsxs("span",{className:X("flex min-w-0 items-start gap-2 leading-5",p.unread&&"font-semibold"),children:[p.unread?o.jsx("span",{className:"size-2 shrink-0 rounded-full bg-[color:var(--primary)]"}):null,o.jsx("span",{className:"line-clamp-2 min-w-0 overflow-hidden break-words [overflow-wrap:anywhere]",children:p.subject})]}),meta:o.jsxs("span",{className:"inline-flex min-w-0 max-w-full flex-wrap items-center gap-2",children:[o.jsx("span",{className:"shrink-0",children:p.lastMessageAt?t.relativeTime(p.lastMessageAt):t.relativeTime(p.createdAt)}),o.jsx(Pp,{status:p.status})]})}),o.jsx(K$,{children:o.jsx(nr,{label:e("support.columns.category"),children:o.jsx(Xt,{variant:"outline",className:"max-w-full whitespace-normal leading-4",children:e(`support.category.${p.category}`)})})})]},p.publicId))})]}):o.jsx(Ot,{icon:o.jsx("span",{className:"text-3xl",children:"ð«"}),title:e("support.empty.title"),description:e("support.empty.body"),action:o.jsx(K,{onClick:()=>f(!0),children:e("support.empty.cta")})}),c.hasNextPage?o.jsx("div",{className:"mt-4 flex justify-center",children:o.jsx(K,{variant:"outline",onClick:()=>c.fetchNextPage(),disabled:c.isFetchingNextPage,children:e("support.loadMore")})}):null,m?o.jsx(sIs,{onClose:()=>f(!1)}):null]})}function sIs({onClose:e}){const{t}=W(),n=No(),a=Ixe(),[s,r]=h.useState(""),[i,c]=h.useState("technical"),[d,m]=h.useState(""),[f,p]=h.useState([]),[y,v]=h.useState(!1);async function $(w){if(w?.length){v(!0);try{for(const S of Array.from(w)){const k=await L9("user",S);p(T=>[...T,k])}}catch{ie.error(t("support.toast.error"))}finally{v(!1)}}}async function x(){if(!(!s.trim()||!d.trim()))try{const w=await a.mutateAsync({subject:s.trim(),category:i,body:d.trim(),attachments:f});ie.success(t("support.toast.created")),e(),n(FT(w.publicId))}catch{ie.error(t("support.toast.error"))}}return o.jsx(Up,{open:!0,onOpenChange:w=>!w&&e(),children:o.jsxs(fu,{className:"flex max-h-[min(720px,calc(100dvh-1rem))] max-w-lg flex-col overflow-hidden !p-0",children:[o.jsx(Xh,{className:"mb-0 shrink-0 px-4 pt-4 pr-12 sm:px-6 sm:pt-6",children:o.jsx(gu,{children:t("support.newTicket")})}),o.jsxs("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto px-4 py-4 sm:px-6",children:[o.jsxs("div",{className:ti,children:[o.jsx("label",{children:t("support.form.subject")}),o.jsx(ge,{value:s,onChange:w=>r(w.target.value),placeholder:t("support.form.subjectPlaceholder"),maxLength:200})]}),o.jsxs("div",{className:ti,children:[o.jsx("label",{children:t("support.form.category")}),o.jsxs(Ms,{value:i,onValueChange:c,children:[o.jsx(as,{children:o.jsx(Es,{})}),o.jsx(os,{children:xF.map(w=>o.jsx(zn,{value:w,children:t(`support.category.${w}`)}
968,w))})]})]}),o.jsxs("div",{className:ti,children:[o.jsx("label",{children:t("support.form.message")}),o.jsx(_o,{value:d,onChange:w=>m(w.target.value),placeholder:t("support.form.messagePlaceholder"),rows:5,className:"max-h-[38dvh] resize-y [overflow-wrap:anywhere]"})]}),o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[o.jsxs("label",{className:"inline-flex max-w-full cursor-pointer items-center gap-1 rounded-md border border-[color:var(--border)] px-2 py-1 text-sm",children:[o.jsx(cj,{className:"size-4"}),o.jsx("span",{className:"min-w-0 truncate",children:t("support.form.addAttachment")}),o.jsx("input",{type:"file",multiple:!0,className:"hidden",onChange:w=>$(w.target.files)})]}),f.map(w=>o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-1 rounded-md bg-[color:var(--gray-a3)] px-2 py-1 text-xs",children:[o.jsx("span",{className:"min-w-0 truncate [overflow-wrap:anywhere]",children:w.fileName}),o.jsx(Aa,{type:"button","aria-label":"remove",variant:"ghost",size:"sm",className:"-mr-1 size-5 shrink-0",onClick:()=>p(S=>S.filter(k=>k.key!==w.key)),children:o.jsx(my,{className:"size-3"})})]},w.key))]})]}),o.jsxs(Xde,{className:"mt-0 shrink-0 border-t border-[color:var(--border)] px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] sm:px-6",children:[o.jsx(K,{variant:"outline",onClick:e,className:"w-full sm:w-auto",children:t("support.form.cancel")}),o.jsx(K,{className:"w-full sm:w-auto",onClick:()=>void x(),disabled:a.isPending||y||!s.trim()||!d.trim(),children:t("support.form.submit")})]})]})})}const O6={éæ°æå¼äºå·¥å:"support.thread.systemStatus.open",å°å·¥åæ 记为çå¾
ç¨æ·:"support.thread.systemStatus.pending",å°å·¥åæ 记为已解å³:"support.thread.systemStatus.resolved",å
³éäºå·¥å:"support.thread.systemStatus.closed"};function zZ({detail:e,scope:t,canReply:n,onReply:a,sending:s}){const{t:r}=W(),[i,c]=h.useState(""),[d,m]=h.useState([]),[f,p]=h.useState(!1),y=h.useRef(null);async function v(x){if(x?.length){p(!0);try{for(const w of Array.from(x)){const S=await L9(t,w);m(k=>[...k,S])}}catch{ie.error(r("support.toast.error"))}finally{p(!1),y.current&&(y.current.value="")}}}async function $(){!i.trim()||s||(await a(i.trim(),d),c(""),m([]))}return o.jsxs("div",{className:"flex h-full min-h-0 min-w-0 flex-col overflow-hidden rounded-md border border-[color:var(--border)] bg-[color:var(--card)]",children:[o.jsx("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto overscroll-contain px-2 py-3 sm:space-y-4 sm:px-3 sm:py-4",role:"log","aria-live":"polite",children:e.messages.map(x=>o.jsx(rIs,{message:x,scope:t},x.publicId))}),n?o.jsxs("div",{className:"shrink-0 border-t border-[color:var(--border)] bg-[color:var(--background)] px-2 py-2 pb-[max(0.5rem,env(safe-area-inset-bottom))] sm:px-3 sm:py-3",children:[d.length>0?o.jsx("div",{className:"mb-2 flex max-h-20 min-w-0 flex-wrap gap-2 overflow-y-auto overscroll-contain pr-1",children:d.map(x=>o.jsxs("span",{className:"inline-flex max-w-full min-w-0 items-center gap-1 rounded-md bg-[color:var(--gray-a3)] px-2 py-1 text-xs",children:[o.jsx("span",{className:"min-w-0 truncate [overflow-wrap:anywhere]",children:x.fileName}),o.jsx(Aa,{type:"button","aria-label":"remove",variant:"ghost",size:"sm",className:"-mr-1 size-5 shrink-0",onClick:()=>m(w=>w.filter(S=>S.key!==x.key)),children:o.jsx(my,{className:"size-3"})})]},x.key))}):null,o.jsx(_o,{value:i,onChange:x=>c(x.target.value),onKeyDown:x=>{(x.metaKey||x.ctrlKey)&&x.key==="Enter"&&(x.preventDefault(),$())},placeholder:r("support.thread.replyPlaceholder"),rows:3,className:"max-h-28 min-h-16 resize-y [overflow-wrap:anywhere] sm:max-h-32 sm:min-h-20"}),o.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[o.jsx("input",{ref:y,type:"file",multiple:!0,className:"hidden",onChange:x=>v(x.target.files)}),o.jsxs(K,{className:"min-w-0",variant:"outline",size:"sm",onClick:()=>y.current?.click(),disabled:f,children:[o.jsx(cj,{className:"size-4"}),o.jsx("span",{className:"min-w-0 truncate",children:r("support.form.addAttachment")})]}),o.jsx("span",{className:"hidden text-xs text-[color:var(--muted-foreground)] sm:inline",children:r("support.thread.sendHint")})]}),o.jsx(K,{className:"w-full sm:w-auto",onClick:()=>void $(),disabled:s||f||!i.trim(),children:r("support.thread.send")})]})]}):o.jsx("div",{className:"shrink-0 border-t border-[color:var(--border)] bg-[color:var(--background)] px-3 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] text-sm text-[color:var(--muted-foreground)]",children:r("support.thread.closedNotice")})]})}function rIs({message:e,scope:t}){const{t:n}=W(),a=Te();if(e.authorKind==="system"){const i=O6[e.body]?n(O6[e.body]):e.body;return o.jsxs("div",{className:"px-2 text-center text-xs text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:[i," · ",a.dateTime(e.createdAt)]})}const s=t===e.authorKind,r=e.authorKind==="admin"?n("support.thread.support"):n("support.thread.you");return o.jsxs("div",{className:X("flex min-w-0 flex-col gap-1",s?"items-end":"items-start"),children:[o.jsxs("div",{className:"max-w-full text-xs text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:[r," · ",a.dateTime(e.createdAt)]}),o.jsx("div",{className:X("max-w-full whitespace-pre-wrap break-words rounded-lg px-2.5 py-2 text-sm [overflow-wrap:anywhere] sm:max-w-[80%] sm:px-3",s?"bg-[color:var(--primary)] text-[color:var(--primary-foreground)]":"bg-[color:var(--gray-a3)] text-[color:var(--foreground)]"),children:e.body}),e.attachments.length>0?o.jsx("div",{className:X("flex min-w-0 max-w-full flex-wrap gap-2",s?"justify-end":"justify-start"),children:e.attachments.map((i,c)=>i.contentType.startsWith("image/")?o.jsx("a",{href:i.url,target:"_blank",rel:"noreferrer",title:i.fileName,className:"max-w-full",children:o.jsx("img",{src:i.url,alt:i.fileName,loading:"lazy",className:"max-h-48 max-w-full rounded-md border border-[color:var(--border)] object-cover sm:max-w-[260px]"})},c):o.jsxs("a",{href:i.url,target:"_blank",rel:"noreferrer",className:"inline-flex max-w-full min-w-0 items-center gap-1 rounded-md bg-[color:var(--gray-a3)] px-2 py-1 text-xs underline",children:[o.jsx(cj,{className:"size-3 shrink-0"}),o.jsx("span",{className:"min-w-0 break-all",children:i.fileName})]}
968,c))}):null]})}function iIs(){const{t:e}=W(),t=No(),{publicId:n=""}=o_(),a=Exe(n),s=Oxe(n),r=Re();h.useEffect(()=>{a.isSuccess&&r.invalidateQueries({queryKey:Bw})},[a.isSuccess,n,r]);async function i(c,d){try{await s.mutateAsync({body:c,attachments:d}),ie.success(e("support.toast.replied"))}catch{ie.error(e("support.toast.error"))}}return o.jsx(Vt,{title:a.data?.subject??e("support.title"),description:void 0,fill:!0,action:o.jsxs(K,{variant:"outline",className:"w-full sm:w-auto",onClick:()=>t(Be.support),children:[o.jsx(Iw,{className:"size-4"}),e("support.thread.back")]}),children:a.isLoading?o.jsx("div",{className:"space-y-3",children:Array.from({length:3}).map((c,d)=>o.jsx(Rt,{className:"h-16 w-2/3"},d))}):a.data?o.jsxs("div",{className:"flex h-[calc(100dvh-9.5rem)] min-h-[420px] min-w-0 flex-col overflow-hidden md:h-auto md:min-h-0 md:flex-1",children:[o.jsxs("div",{className:"mb-3 flex min-w-0 shrink-0 items-center justify-between gap-2",children:[o.jsx("div",{className:"min-w-0 text-sm font-medium leading-5 text-[color:var(--heading)] [overflow-wrap:anywhere] md:hidden",children:a.data.subject}),o.jsx(Pp,{status:a.data.status})]}),o.jsx(zZ,{detail:a.data,scope:"user",canReply:a.data.status!=="closed",onReply:i,sending:s.isPending})]}):o.jsx(Ot,{icon:o.jsx("span",{className:"text-3xl",children:"ð"}),title:e("support.notFound")})})}const lIs=i_(Z$);function qZ({onDirtyChange:e,onSaved:t}){const{t:n}=W(),a=qa(),s=qxe(),r=Vxe(),[i,c]=h.useState(""),[d,m]=h.useState("en"),[f,p]=h.useState("UTC"),y=cL.some(x=>x.value===f),v=s.data&&Yd(s.data.locale)?s.data.locale:Xi;h.useEffect(()=>{s.data&&(c(s.data.displayName??""),m(Yd(s.data.locale)?s.data.locale:Xi),p(s.data.timezone))},[s.data]);const $=!!s.data&&(i!==(s.data.displayName??"")||d!==v||f!==s.data.timezone);return h.useEffect(()=>{e?.($)},[$,e]),o.jsx("form",{className:"min-w-0 max-w-2xl space-y-5",onSubmit:x=>{x.preventDefault(),r.mutate({displayName:i,locale:d,timezone:f},{onSuccess:()=>{ie.success(n("common.saved")),t?.()}})},children:o.jsxs(Ee,{className:"min-w-0 space-y-5 p-3 sm:p-5",children:[o.jsx("div",{"data-clarity-mask":"true",className:"break-all text-sm text-[color:var(--muted-foreground)]",children:n("settings.signedInAs",{email:a.data?.user?.email??"â"})}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[n("settings.displayName"),o.jsx(ge,{value:i,onChange:x=>c(x.target.value)})]}),o.jsx(ca,{label:n("settings.locale"),value:d,onChange:x=>m(x.target.value),children:lIs.map(x=>o.jsx("option",{value:x,children:Uh[x]},x))}),o.jsxs(ca,{label:n("settings.timezone"),value:f,onChange:x=>p(x.target.value),children:[y?null:o.jsx("option",{value:f,children:f}),cL.map(x=>o.jsx("option",{value:x.value,children:x.label},x.value))]}),o.jsx("div",{className:"flex items-center gap-3",children:o.jsx(K,{type:"submit",disabled:r.isPending||s.isLoading,className:"w-full sm:w-auto",children:r.isPending?n("common.saving"):n("common.saveChanges")})}),s.error?o.jsx(Qt,{title:n("settings.failedLoad"),description:s.error.message}):null,r.error?o.jsx(Qt,{title:n("settings.failedSave"),description:r.error.message}):null]})})}async function cIs(e,t,n){t&&!await zt({title:e("settings.discardTitle"),message:e("settings.discardMessage"),confirmText:e("settings.discardConfirm"),cancelText:e("settings.keepEditing"),variant:"destructive"})||n()}function dIs(){const{t:e}=W(),t=No(),[n,a]=h.useState(!1);function s(){t(-1)}function r(i){i||cIs(e,n,s)}return o.jsx(Vn,{open:!0,onOpenChange:r,children:o.jsxs(Nn,{side:"auto","aria-label":e("settings.title"),className:"max-h-[100dvh] min-w-0 overflow-y-auto px-3 pb-[calc(1rem+env(safe-area-inset-bottom))] sm:px-6",children:[o.jsxs(Pa,{className:"mb-3 min-w-0",children:[o.jsx(Rn,{children:e("settings.title")}),o.jsx(ua,{className:"break-words",children:e("settings.description")})]}),o.jsx(qZ,{onDirtyChange:a,onSaved:s})]})})}function uIs(){const{t:e}=W();return o.jsx(Vt,{title:e("settings.title"),description:e("settings.description"),maxWidth:"max-w-3xl",children:o.jsx(qZ,{})})}const ve=Ye;function zs(e,t,n={}){const a=new URLSearchParams(Object.entries(n).filter(([,s])=>s)).toString();return Ue({queryKey:["ops",e,n],queryFn:()=>ve.request(`${t}${a?`?${a}`:""}`),retry:1})}const mIs=e=>zs("users","/ops/users",e),pIs=e=>Ue({queryKey:["ops","user",e],queryFn:()=>ve.request(`/ops/users/${e}`).then(t=>t.user),enabled:!!e}
968),fIs=e=>zs("wallets","/ops/billing/wallets",e),HZ=e=>zs("payments","/ops/billing/payments",e),VZ=e=>zs("refunds","/ops/billing/refunds",e),gIs=(e,t)=>{const n=new URLSearchParams(Object.entries(t??{}).filter(([,a])=>a)).toString();return Ue({queryKey:["ops","user",e,"credit-buckets",t??{}],queryFn:()=>ve.request(`/ops/users/${e}/credit-buckets${n?`?${n}`:""}`),enabled:!!e,retry:1})},hIs=(e,t)=>{const n=new URLSearchParams(Object.entries(t??{}).filter(([,a])=>a)).toString();return Ue({queryKey:["ops","user",e,"api-keys",t??{}],queryFn:()=>ve.request(`/ops/users/${e}/api-keys${n?`?${n}`:""}`),enabled:!!e,retry:1})},K0=e=>{const t=new URLSearchParams(Object.entries(e??{}).filter(([,n])=>n)).toString();return Ue({queryKey:["ops","usage",e??{}],queryFn:()=>ve.request(`/ops/usage${t?`?${t}`:""}`),retry:1})},yIs=e=>{const t=new URLSearchParams(Object.entries(e??{}).filter(([,n])=>n)).toString();return Ue({queryKey:["ops","usage","trend",e??{}],queryFn:()=>ve.request(`/ops/usage/trend${t?`?${t}`:""}`),retry:1})},vIs=e=>{const t=new URLSearchParams(Object.entries(e??{}).filter(([,n])=>n)).toString();return Ue({queryKey:["ops","usage","stacked",e??{}],queryFn:()=>ve.request(`/ops/usage/stacked${t?`?${t}`:""}`),retry:1})},cT=e=>{const t=new URLSearchParams(Object.entries(e??{}).filter(([,n])=>n)).toString();return Ue({queryKey:["ops","usage","breakdown",e??{}],queryFn:()=>ve.request(`/ops/usage/breakdown${t?`?${t}`:""}`),retry:1})},bIs=e=>Ue({queryKey:["ops","usage","detail",e],queryFn:()=>ve.request(`/ops/usage/${e}`),enabled:!!e,retry:1});async function xIs(e={}){const t=[];let n="";do{const a=new URLSearchParams(Object.entries({...e,limit:"100",cursor:n}).filter(([,r])=>r)).toString(),s=await ve.request(`/ops/usage${a?`?${a}`:""}`);t.push(...s.items),n=s.nextCursor??""}while(n);return t}const KZ=()=>zs("rate-limits","/ops/rate-limits");function $Is(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/rate-limit-policies",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","rate-limits"]})})}function wIs(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/rate-limit-policies/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","rate-limits"]})})}function kIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/rate-limit-policies/${t}`,{method:"DELETE",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","rate-limits"]})})}const CIs=e=>zs("signup-allowlist","/ops/signup-allowlist",e);function SIs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/signup-allowlist",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}function AIs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/signup-allowlist/bulk",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}function TIs(){return ke({mutationFn:e=>ve.request("/ops/signup-allowlist/check",{method:"POST",body:{email:e}})})}function RIs(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/signup-allowlist/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}function PIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/signup-allowlist/${t}/restore`,{method:"POST",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}function _Is(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/signup-allowlist/${t}/invite`,{method:"POST",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}function jIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/signup-allowlist/${t}`,{method:"DELETE",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","signup-allowlist"]})})}const NIs=e=>zs("email-domain-rules","/ops/email-domain-rules",e);function DIs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/email-domain-rules",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","email-domain-rules"]})})}function MIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/email-domain-rules/${t}/restore`,{method:"POST",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","email-domain-rules"]})})}function EIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/email-domain-rules/${t}`,{method:"DELETE",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","email-domain-rules"]})})}const IIs=()=>zs("admin-users","/ops/admin-users");function OIs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/admin-users",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","admin-users"]})})}function LIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/admin-users/${t.publicId}/role`,{method:"PATCH",body:{role:t.role},idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","admin-users"]})})}function UIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/admin-users/${t.publicId}/status`,{method:"PATCH",body:{status:t.status},idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","admin-users"]})})}function BIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/admin-users/${t}`,{method:"DELETE",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","admin-users"]})})}function FIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/users/${t.publicId}/rate-limit-policy`,{method:"PATCH",body:{code:t.code},idempotent:!0}),onSuccess:(t,n)=>
968{e.invalidateQueries({queryKey:["ops","users"]}),e.invalidateQueries({queryKey:["ops","user",n.publicId]})}})}const zIs=e=>zs("models","/ops/models",e),Ru=()=>zs("models","/ops/models",{limit:"100"}),qIs=e=>Ue({queryKey:["ops","model",e],queryFn:()=>ve.request(`/ops/models/${e}`).then(t=>t.model),enabled:!!e});function HIs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/models",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","models"]})})}function VIs(){const e=Re();return ke({mutationFn:t=>{const{publicId:n,...a}=t;return ve.request(`/ops/models/${n}`,{method:"PATCH",body:a})},onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","models"]}),e.invalidateQueries({queryKey:["ops","model",n.publicId]})}})}const KIs=(e,t=!0)=>Ue({queryKey:["ops","model",e,"pricing-factors",t],queryFn:()=>ve.request(`/ops/models/${e}/pricing-factors?includeHistory=${t}`),enabled:!!e});function GZ(){const e=Re();return ke({mutationFn:t=>{const{modelPublicId:n,...a}=t;return ve.request(`/ops/models/${n}/pricing-factors`,{method:"POST",body:a})},onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","model",n.modelPublicId,"pricing-factors"]}),e.invalidateQueries({queryKey:["ops","models"]})}})}function GIs(){const e=Re();return ke({mutationFn:t=>{const{modelPublicId:n,...a}=t;return ve.request(`/ops/models/${n}/pricing-factors/apply-discount`,{method:"POST",body:a})},onSuccess:(t,n)=>{n.dryRun||(e.invalidateQueries({queryKey:["ops","model",n.modelPublicId,"pricing-factors"]}),e.invalidateQueries({queryKey:["ops","models"]}))}})}function WIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/models/${t.modelPublicId}/pricing-factors/${t.factorPublicId}/expire`,{method:"POST",body:{}}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","model",n.modelPublicId,"pricing-factors"]}),e.invalidateQueries({queryKey:["ops","models"]})}})}const YIs=e=>Ue({queryKey:["ops","servable-models"],queryFn:()=>ve.request("/ops/sub2api/servable-models"),enabled:e,staleTime:6e4}),WZ=e=>zs("audit-logs","/ops/audit-logs",e);function QIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/users/${t.publicId}/status`,{method:"PATCH",body:{status:t.status,riskStatus:t.riskStatus},idempotent:!0}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","users"]}),e.invalidateQueries({queryKey:["ops","user",n.publicId]})}})}function XIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/users/${t.publicId}/source`,{method:"PATCH",body:{source:t.source},idempotent:!0}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","users"]}),e.invalidateQueries({queryKey:["ops","user",n.publicId]})}})}function ZIs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/users/${t.publicId}/note`,{method:"PATCH",body:{note:t.note},idempotent:!0}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","users"]}),e.invalidateQueries({queryKey:["ops","user",n.publicId]})}})}function JIs(e){const t=new URLSearchParams,n=t.toString()?`?${t.toString()}`:"";return Ue({queryKey:["ops","acquisition","",""],queryFn:()=>ve.request(`/ops/users/acquisition${n}`).then(a=>a.items)})}function eOs(){return ke({mutationFn:e=>ve.request("/ops/content/announcements/translate",{method:"POST",body:e,timeoutMs:6e4})})}function tOs(){return ke({mutationFn:e=>{const t=new FormData;return t.append("file",e,e.name),ve.request("/ops/content/announcements/image",{method:"POST",body:t,timeoutMs:6e4})}})}const nOs=e=>zs("announcements","/ops/content/announcements",e);function aOs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/content/announcements",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","announcements"]})})}function oOs(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/content/announcements/${t}`,{method:"PATCH",body:n}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","announcements"]})})}function sOs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/content/announcements/${t}`,{method:"DELETE"}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","announcements"]})})}const rOs=()=>Ue({queryKey:["ops","dashboard"],queryFn:()=>ve.request("/ops/dashboard"),refetchInterval:6e4,retry:1}),iOs=["today","3d","7d","30d"],lOs="7d",cOs=["invites","revenue"],dOs="invites",uOs=(e,t)=>Ue({queryKey:["ops","leaderboard",e,t],queryFn:()=>ve.request(`/ops/dashboard/leaderboard?board=${e}&range=${t}`),staleTime:6e4,retry:1}),mOs=()=>Ue({queryKey:["ops","alert-settings"],queryFn:()=>ve.request("/ops/alert-settings"),retry:1});function pOs(){const e=Re();return ke({mutationFn:({alertType:t,...n})=>ve.request(`/ops/alert-settings/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","alert-settings"]})})}function fOs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/models/${t.publicId}/status`,{method:"PATCH",body:{status:t.status,visibility:t.visibility,available:t.available,requiresPaidAccount:t.requiresPaidAccount},idempotent:!0}),onSuccess:(t,n)=>
968{e.invalidateQueries({queryKey:["ops","models"]}),e.invalidateQueries({queryKey:["ops","model",n.publicId]})}})}const L6=["action","page","size"],gOs=new Map(_K.map(e=>[e.value,e.label]));function hOs(e){return e.replaceAll(".","_")}function YZ(e,t){const n=gOs.get(e)??e.replaceAll("."," / ").replaceAll("_"," ");return t(`auditLogs.actions.${hOs(e)}`,{defaultValue:n})}function yOs({log:e}){const{t}=W();return o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{children:t(`auditLogs.targetTypes.${e.targetType}`,{defaultValue:e.targetType.replaceAll("_"," ")})}),e.targetPublicId?o.jsx("code",{className:"mt-1 block truncate text-xs text-[color:var(--muted-foreground)]",children:e.targetPublicId}):null]})}function vOs({log:e}){const{t}=W(),n=Te(),a=t(`auditLogs.targetTypes.${e.targetType}`,{defaultValue:e.targetType.replaceAll("_"," ")});return o.jsxs(Dn,{children:[o.jsx(kr,{title:o.jsx("span",{className:"break-words",children:YZ(e.action,t)}),meta:n.dateTime(e.createdAt),trailing:o.jsx(Oe,{value:e.severity})}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[o.jsx(Qe,{label:t("auditLogs.targetType",{defaultValue:"Target type"}),children:a}),o.jsx(Qe,{label:t("auditLogs.severity"),align:"right",children:e.severity}),o.jsx(Qe,{label:t("auditLogs.target"),className:e.requestId?void 0:"col-span-2",children:e.targetPublicId?o.jsx("code",{className:"block max-w-full truncate font-mono text-11",children:e.targetPublicId}):"-"}),e.requestId?o.jsx(Qe,{label:t("auditLogs.requestId",{defaultValue:"Request ID"}
968),align:"right",children:o.jsx("code",{className:"block max-w-full truncate font-mono text-11",children:e.requestId})}):null]})]})}const U6=20;function bOs(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({action:Pe(n,"action"),page:ln(n,"page",1),size:ln(n,"size",U6)}),[n]),i=h.useDeferredValue(r.action),c=WZ({...i?{action:i}:{},page:String(r.page),limit:String(r.size)});return o.jsxs(Vt,{title:e("auditLogs.title"),description:e("auditLogs.description"),children:[o.jsxs("div",{className:"mb-4 grid gap-3 sm:max-w-xl sm:grid-cols-[minmax(0,1fr)_auto]",children:[o.jsx(Ze,{label:e("auditLogs.action"),value:r.action,options:_K,onChange:d=>a({action:d,page:void 0})}),o.jsx(nn,{show:Zt(n,L6,["page","size"]),onReset:()=>s(L6),className:"self-end"})]}),o.jsx(Pt,{label:e("auditLogs.label"),rows:c.data?.items,isLoading:c.isLoading,error:c.error,emptyTitle:e("auditLogs.empty"),pagination:{total:c.data?.total??0,page:r.page,pageSize:r.size,pageSizeOptions:[10,20,50,100],onPageChange:d=>a({page:d===1?void 0:String(d)},{replace:!1}),onPageSizeChange:d=>a({size:d===U6?void 0:String(d),page:void 0})},columns:[{header:e("auditLogs.time"),cell:d=>t.dateTime(d.createdAt)},{header:e("auditLogs.action"),cell:d=>YZ(d.action,e)},{header:e("auditLogs.severity"),cell:d=>o.jsx(Oe,{value:d.severity})},{header:e("auditLogs.target"),cell:d=>o.jsx(yOs,{log:d})}],mobileCard:d=>o.jsx(vOs,{log:d})})]})}function xOs(){return ke({mutationFn:e=>ve.request("/ops/billing/refunds",{method:"POST",body:e,idempotent:!0,timeoutMs:2e4})})}function $Os(){return ke({mutationFn:e=>ve.request("/ops/billing/refunds/preview",{method:"POST",body:e,timeoutMs:15e3})})}function QZ(e){const t=new URLSearchParams;e?.status&&t.set("status",e.status),e?.eventType&&t.set("eventType",e.eventType),e?.limit&&t.set("limit",String(e.limit));const n=t.toString();return Ue({queryKey:["ops","webhooks",e??{}],queryFn:()=>ve.request(`/ops/billing/webhooks${n?`?${n}`:""}`),retry:1,refetchInterval:15e3})}function wOs(e){return Ue({queryKey:["ops","webhook-detail",e],queryFn:()=>ve.request(`/ops/billing/webhooks/${e}`),enabled:!!e,staleTime:6e4})}function kOs(){return ke({mutationFn:e=>ve.request(`/ops/billing/webhooks/${e}/retry`,{method:"POST",body:{},idempotent:!0,timeoutMs:1e4})})}const COs=400,B6=`${goe/100}% + $${hoe.toFixed(2)}`;function SOs(e,t){switch(e.errorCode){case"REFUND_INSUFFICIENT_PURCHASED":return t("adminBilling.refundInsufficientCredit",{value:e.maxRefundableUsd});case"REFUND_AMOUNT_EXCEEDS":return t("adminBilling.refundExceedsMax",{value:e.maxRefundableUsd});case"REFUND_ALREADY_FULL":return t("adminBilling.refundAlreadyFull");case"REFUND_BELOW_MIN":return t("adminBilling.refundBelowMin",{value:e.minRefundableUsd??"â"});case"REFUND_AMOUNT_INVALID":return t("adminBilling.refundAmountInvalid");default:return e.errorMessage??t("adminBilling.refundPreviewFailed")}}function XZ({payment:e,open:t,onOpenChange:n,userEmail:a}){const{t:s}=W(),r=Te(),i=Re(),c=xOs(),d=$Os(),[m,f]=h.useState(""),[p,y]=h.useState("requested_by_customer"),[v,$]=h.useState(!0),x=!v,w=h.useRef(null),S=d.mutate,k=d.reset,T=c.reset;h.useEffect(()=>{if(!t){k(),T(),f(""),$(!0),w.current=null;return}S({paymentIntentPublicId:e.publicId},{onSuccess:E=>{w.current=`${E.maxRefundableUsd}|charge`,f(E.maxRefundableUsd)}})},[t,e.publicId,S,k,T]),h.useEffect(()=>{if(!t)return;const E=x?"waive":"charge";if(m===""||`${m}|${E}`===w.current)return;const L=Number(m);if(!Number.isFinite(L)||L<=0)return;const O=setTimeout(()=>{w.current=`${m}|${E}`,S({paymentIntentPublicId:e.publicId,amount:m,waiveFee:x})},COs);return()=>clearTimeout(O)},[m,x,t,e.publicId,S]);const R=d.data,_=Number(m),P=Number.isFinite(_)&&_>0,j=R!=null&&P&&_>Number(R.maxRefundableUsd),N=c.isPending||d.isPending||!R?.ok||!P||j,I=R?.ok&&R.plan?Math.max(0,Number(R.plan.purchasedReverse)-Number(R.plan.refundUsd)):0,z=()=>{c.mutate({paymentIntentPublicId:e.publicId,amount:m,reason:p,waiveFee:x},{onSuccess:()=>{ie.success(s("adminBilling.refundSubmittedTitle"),{description:s("adminBilling.refundSubmittedBody")}),i.invalidateQueries({queryKey:["ops"]}),n(!1)},onError:E=>{ie.error(s("adminBilling.refundFailedTitle"),{description:E instanceof rn?`${E.code}: ${E.message}`:E.message})}})};return o.jsx(Cw,{open:t,onOpenChange:n,children:o.jsxs(ay,{className:"w-[calc(100vw-1rem)] max-w-md p-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))] sm:p-6",children:[o.jsxs(Sw,{children:[o.jsx(oy,{className:"break-words",children:s("adminBilling.refundConfirmTitle",{id:e.publicId})}),o.jsx(sy,{className:"break-words",children:s("adminBilling.refundConfirmBody",{user:a??e.userEmail??"â"})})]}),o.jsxs("div",{className:"max-h-[52dvh] space-y-3 overflow-y-auto pr-1 sm:max-h-none sm:overflow-visible sm:pr-0",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm",children:[o.jsx("span",{className:"font-medium",children:s("adminBilling.refundAmountLabel")}),o.jsx(ge,{value:m,onChange:E=>f(E.target.value),inputMode:"decimal",className:"min-w-0"}),o.jsx("span",{className:"break-words text-xs text-[color:var(--muted-foreground)]",children:s("adminBilling.refundMaxHint",{value:R?.maxRefundableUsd??e.amount})})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm",children:[o.jsx("span",{className:"font-medium",children:s("adminBilling.refundReasonLabel")}),o.jsxs(HF,{value:p,onChange:E=>y(E.target.value),children:[o.jsx("option",{value:"requested_by_customer",children:"requested_by_customer"}),o.jsx("option",{value:"duplicate",children:"duplicate"}),o.jsx("option",{value:"fraudulent",children:"fraudulent"}),o.jsx("option",{value:"admin_refund",children:"admin_refund"})]})]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[o.jsx(Zn,{checked:v,onChange:E=>$(E.target.checked),"data-testid":"refund-fee-toggle"}),o.jsx("span",{children:s("adminBilling.refundFeeToggle",{fee:B6})})]}),d.isPending?o.jsx("p",{className:"rounded-md bg-[color:var(--muted)] p-3 text-xs text-[color:var(--muted-foreground)]",children:s("adminBilling.refundPreviewLoading")}):d.isError?o.jsx("p",{className:"rounded-md bg-[color:var(--warning-surface)] p-3 text-xs","data-testid":"refund-preview-error",children:d.error instanceof rn&&d.error.code==="REFUND_TX_NOT_FOUND"?s("adminBilling.refundNoRefundableTx"):s("adminBilling.refundPreviewFailed")}):R&&!R.ok?o.jsx("p",{className:"rounded-md bg-[color:var(--warning-surface)] p-3 text-xs","data-testid":"refund-preview-error",children:SOs(R,s)}):R?.ok&&R.plan?o.jsxs("div",{className:"space-y-2",children:[o.jsxs("dl",{className:"grid gap-1 rounded-md bg-[color:var(--muted)] p-3 text-xs","data-testid":"refund-preview",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundPaidRow")}),o.jsx("dd",{className:"tabular-nums",children:r.currency(Number(R.paidAmount))})]}),Number(R.alreadyRefunded)>0?o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundAlreadyRefundedRow")}),o.jsxs("dd",{className:"tabular-nums",children:["-",r.currency(Number(R.alreadyRefunded))]})]}):null,o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundThisRefundRow")}),o.jsx("dd",{className:"tabular-nums",children:r.currency(Number(R.plan.refundUsd))})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundCreditReclaimRow")}),o.jsx("dd",{className:"tabular-nums",children:r.currency(Number(R.plan.purchasedReverse),"USD",4)})]}),I>0?o.jsx("p",{className:"text-[color:var(--muted-foreground)]","data-testid":"refund-reclaim-note",children:R.discountAmount!=null?s("adminBilling.refundCreditCouponNote",{amount:r.currency(I,"USD",4)}):s("adminBilling.refundCreditExtraNote",{amount:r.currency(I,"USD",4)})}):null,R.plan.hasBonusForfeiture?o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundBonusReverseRow")}),o.jsxs("dd",{className:"tabular-nums",children:["-",r.currency(Number(R.plan.bonus
968Reverse),"USD",4)]})]}):null,Number(R.platformFee??0)>0?o.jsxs("div",{className:"flex justify-between","data-testid":"refund-fee-row",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:s("adminBilling.refundPlatformFeeRow",{fee:B6})}),o.jsxs("dd",{className:"tabular-nums",children:["-",r.currency(Number(R.platformFee))]})]}):null,o.jsxs("div",{className:"flex justify-between border-t border-[color:var(--border)] pt-1 font-medium",children:[o.jsx("dt",{children:s("adminBilling.refundStripeReturnRow")}),o.jsx("dd",{className:"tabular-nums",children:r.currency(Number(R.stripeRefundAmount??R.plan.refundUsd))})]})]}),R.plan.hasBonusForfeiture?o.jsx("div",{className:"rounded-md bg-[color:var(--warning-surface)] p-2.5 text-xs","data-testid":"refund-bonus-warning",children:s("adminBilling.refundBonusForfeitWarning",{amount:r.currency(Number(R.plan.bonusReverse),"USD",4)})}):null,j?o.jsx("p",{className:"rounded-md bg-[color:var(--warning-surface)] p-2.5 text-xs","data-testid":"refund-over-max",children:s("adminBilling.refundExceedsMax",{value:R.maxRefundableUsd})}):null]}):null]}),o.jsxs(Aw,{className:"gap-2 sm:gap-2",children:[o.jsx(ry,{className:"mt-0 w-full sm:w-auto",disabled:c.isPending,children:s("adminBilling.cancel")}),o.jsx(K,{className:"w-full sm:w-auto",onClick:z,disabled:N,children:c.isPending?s("adminBilling.submitting"):s("adminBilling.confirmRefund")})]})]})})}function Vd({email:e,publicId:t}){return e?t?o.jsx(Ta,{to:Be.adminUserDetail.replace(":publicId",t),className:"text-[color:var(--primary)] hover:underline",children:e}):o.jsx(o.Fragment,{children:e}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}const F6=["paymentStatus","payEmail","preset","from","to","payAmountMin","payAmountMax","payPage","paySize"],AOs={preset:"all"},TOs=["today","yesterday","last7d","last30d","thisMonth","custom","all"];function ROs(e){return{today:e("dateRange.today",{defaultValue:"Today"}),yesterday:e("dateRange.yesterday",{defaultValue:"Yesterday"}),last7d:e("dateRange.last7d",{defaultValue:"Last 7 days"}),last30d:e("dateRange.last30d",{defaultValue:"Last 30 days"}),thisMonth:e("dateRange.thisMonth",{defaultValue:"This month"}),custom:e("dateRange.custom",{defaultValue:"Custom"}),all:e("dateRange.all",{defaultValue:"All time"})}}function POs(){const{t:e,i18n:t}=W(),n=Te(),{params:a,patch:s,remove:r}=Mt(),i=h.useMemo(()=>({status:Pe(a,"paymentStatus","paid"),email:Pe(a,"payEmail"),range:qw(a,AOs),amountMin:Pe(a,"payAmountMin"),amountMax:Pe(a,"payAmountMax"),page:ln(a,"payPage",1),size:ln(a,"paySize",20)}),[a]),[c,d]=h.useState(i.email);h.useEffect(()=>{d(i.email)},[i.email]);const m=h.useRef(null),f=h.useCallback(w=>{d(w),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{s({payEmail:w,payPage:void 0})},300)},[s]),p=h.useDeferredValue(i.email),y=h.useDeferredValue(i.amountMin),v=h.useDeferredValue(i.amountMax),$=i.range,x=HZ({...i.status&&i.status!=="all"?{status:i.status}:{},...p?{email:p}:{},...$.from?{from:$.from}:{},...$.to?{to:$.to}:{},...y?{amountMin:y}:{},...v?{amountMax:v}:{},page:String(i.page),limit:String(i.size)});return o.jsxs("div",{children:[o.jsxs("div",{className:"mb-3 grid min-w-0 gap-2 md:grid-cols-2 lg:grid-cols-[180px_minmax(0,1fr)_auto_auto_auto] lg:items-end lg:gap-3",children:[o.jsx(Ze,{label:e("adminBilling.paymentStatus"),value:i.status,options:AK,onChange:w=>s({paymentStatus:w,payPage:void 0})}),o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:e("adminBilling.emailFilter")}),o.jsx(ge,{value:c,onChange:w=>f(w.target.value),placeholder:e("adminBilling.emailPlaceholder"),"aria-label":e("adminBilling.emailFilter")})]}),o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:e("adminBilling.createdRange")}),o.jsx(uh,{value:$,onChange:w=>s({...Hw(w),payPage:void 0}),defaultPreset:"all",locale:t.language,labels:fh(e,ROs(e)),presets:[...TOs],className:"w-full justify-between lg:w-auto"})]}),o.jsxs("div",{className:Qo,children:[o.jsx("span",{children:e("adminBilling.amountRange")}),o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-1.5",children:[o.jsx(ge,{value:i.amountMin,inputMode:"decimal",onChange:w=>s({payAmountMin:w.target.value,payPage:void 0}),placeholder:e("adminBilling.amountMin"),"aria-label":e("adminBilling.amountMin"),className:"min-w-0 lg:w-20"}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"}),o.jsx(ge,{value:i.amountMax,inputMode:"decimal",onChange:w=>s({payAmountMax:w.target.value,payPage:void 0}),placeholder:e("adminBilling.amountMax"),"aria-label":e("adminBilling.amountMax"),className:"min-w-0 lg:w-20"})]})]}),o.jsx(nn,{show:Zt(a,F6,["payPage","paySize"]),onReset:()=>r(F6),className:"self-end"})]}),o.jsx(Pt,{label:e("adminBilling.payments"),rows:x.data?.items,isLoading:x.isLoading,error:x.error,emptyTitle:e("adminBilling.noPayments"),pagination:{total:x.data?.total??0,page:i.page,pageSize:i.size,pageSizeOptions:[10,20,50,100],onPageChange:w=>s({payPage:w===1?void 0:String(w)},{replace:!1}),onPageSizeChange:w=>s({paySize:w===20?void 0:String(w),payPage:void 0})},columns:[{header:e("adminBilling.payment"),mobileValue:"break-all",cell:w=>w.publicId},{header:e("adminBilling.user"),mobileValue:"break-all",cell:w=>o.jsx(Vd,{email:w.userEmail,publicId:w.userPublicId})},{header:e("adminBilling.status"),cell:w=>o.jsx(Oe,{value:w.status})},{header:e("adminBilling.amount"),cell:w=>`${n.currency(Number(w.amount))} ${w.currency}`,align:"right"}
968,{header:e("adminBilling.created"),cell:w=>n.dateTime(w.createdAt)},{header:e("adminBilling.paid"),cell:w=>w.paidAt?n.dateTime(w.paidAt):"â"},{header:"",align:"right",sticky:"right",cell:w=>o.jsx(_Os,{payment:w})}]})]})}function _Os({payment:e}){const{t}=W(),[n,a]=h.useState(!1),s=e.status==="paid";return o.jsxs("div",{className:"grid w-full grid-cols-[minmax(0,1fr)_auto] gap-1.5 min-[360px]:flex min-[360px]:w-auto min-[360px]:flex-wrap min-[360px]:justify-end",children:[o.jsxs(K,{variant:"secondary",size:"sm",className:"min-w-0 px-2",disabled:!s,onClick:()=>a(!0),title:s?void 0:t("adminBilling.notRefundable"),children:[o.jsx(Kp,{className:"size-3.5"}),o.jsx("span",{className:"min-w-0 truncate",children:t("adminBilling.refund")})]}),o.jsx(XZ,{payment:e,open:n,onOpenChange:a}),o.jsx("a",{href:`https://dashboard.stripe.com/test/payments/${e.publicId}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex h-8 items-center justify-center gap-1 rounded-md border border-[color:var(--border)] px-2 text-xs text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]",title:t("adminBilling.viewInStripe"),children:o.jsx(dy,{className:"size-3"})})]})}const z6=["refEmail","refPage","refSize"];function jOs(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({email:Pe(n,"refEmail"),page:ln(n,"refPage",1),size:ln(n,"refSize",20)}),[n]),[i,c]=h.useState(r.email);h.useEffect(()=>{c(r.email)},[r.email]);const d=h.useRef(null),m=h.useCallback(y=>{c(y),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{a({refEmail:y,refPage:void 0})},300)},[a]),f=h.useDeferredValue(r.email),p=VZ({...f?{email:f}:{},page:String(r.page),limit:String(r.size)});return o.jsxs("div",{children:[o.jsxs("div",{className:"mb-3 grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-end gap-2 sm:w-96",children:[o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:e("adminBilling.emailFilter")}),o.jsx(ge,{value:i,onChange:y=>m(y.target.value),placeholder:e("adminBilling.emailPlaceholder"),"aria-label":e("adminBilling.emailFilter")})]}),o.jsx(nn,{show:Zt(n,z6,["refPage","refSize"]),onReset:()=>s(z6),className:"self-end"})]}),o.jsx(Pt,{label:e("adminBilling.refunds"),rows:p.data?.items,isLoading:p.isLoading,error:p.error,emptyTitle:e("adminBilling.noRefunds"),pagination:{total:p.data?.total??0,page:r.page,pageSize:r.size,pageSizeOptions:[10,20,50,100],onPageChange:y=>a({refPage:y===1?void 0:String(y)},{replace:!1}),onPageSizeChange:y=>a({refSize:y===20?void 0:String(y),refPage:void 0})},columns:[{header:e("adminBilling.refundId"),mobileValue:"break-all",cell:y=>y.publicId},{header:e("adminBilling.user"),mobileValue:"break-all",cell:y=>o.jsx(Vd,{email:y.userEmail,publicId:y.userPublicId})},{header:e("adminBilling.refundType"),cell:y=>y.type==="partial_refund"?e("adminBilling.typePartialRefund"):e("adminBilling.typeRefund")},{header:e("adminBilling.status"),cell:y=>o.jsx(Oe,{value:y.status})},{header:e("adminBilling.amount"),cell:y=>`${t.currency(Math.abs(Number(y.amount)))} ${y.currency}`,align:"right"},{header:e("adminBilling.originalPayment"),mobileValue:"break-all",cell:y=>y.originalTxPublicId??"â"},{header:e("adminBilling.created"),cell:y=>t.dateTime(y.createdAt)}]})]})}const q6=["walletEmail","walletPage","walletSize"];function NOs(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({email:Pe(n,"walletEmail"),page:ln(n,"walletPage",1),size:ln(n,"walletSize",20)}),[n]),[i,c]=h.useState(r.email);h.useEffect(()=>{c(r.email)},[r.email]);const d=h.useRef(null),m=h.useCallback(y=>{c(y),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{a({walletEmail:y,walletPage:void 0})},300)},[a]),f=h.useDeferredValue(r.email),p=fIs({...f?{email:f}:{},page:String(r.page),limit:String(r.size)});return o.jsxs("div",{children:[o.jsxs("div",{className:"mb-3 grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-end gap-2 sm:w-96",children:[o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:e("adminBilling.emailFilter")}),o.jsx(ge,{value:i,onChange:y=>m(y.target.value),placeholder:e("adminBilling.emailPlaceholder"),"aria-label":e("adminBilling.emailFilter")})]}),o.jsx(nn,{show:Zt(n,q6,["walletPage","walletSize"]),onReset:()=>s(q6),className:"self-end"})]}),o.jsx(Pt,{label:e("adminBilling.wallets"),rows:p.data?.items,isLoading:p.isLoading,error:p.error,emptyTitle:e("adminBilling.noWallets"),pagination:{total:p.data?.total??0,page:r.page,pageSize:r.size,pageSizeOptions:[10,20,50,100],onPageChange:y=>a({walletPage:y===1?void 0:String(y)},{replace:!1}),onPageSizeChange:y=>a({walletSize:y===20?void 0:String(y),walletPage:void 0})},columns:[{header:e("adminBilling.wallet"),mobileValue:"break-all",cell:y=>y.publicId},{header:e("adminBilling.user"),mobileValue:"break-all",cell:y=>o.jsx(Vd,{email:y.userEmail,publicId:y.userPublicId})},{header:e("adminBilling.total"),cell:y=>t.currency(Number(y.totalCredit)),align:"right"},{header:e("adminBilling.purchased"),cell:y=>t.currency(Number(y.purchasedCredit)),align:"right"},{header:e("adminBilling.bonus"),cell:y=>t.currency(Number(y.bonusCredit)),align:"right"}]})]})}const DOs=["payments","wallets","refunds"];function H6(e){return DOs.includes(e)?e:null}function MOs(){const{t:e}=W(),{params:t,patch:n}=Mt(),[a,s]=gh("admin_billing_tab","payments",H6),r=H6(Pe(t,"tab",a))??"payments",c=QZ({limit:1}).data?.statusCounts??[],d=Number(c.find(p=>p.status==="failed")?.count??0)+Number(c.find(p=>p.status==="dead_letter")?.count??0),m=d===0?"success":d<10?"warning":"destructive",f=`${d} ${e("adminBilling.unhealthyWebhooks")}`;return o.jsx(Vt,{title:e("adminBilling.title"),description:e("adminBilling.description"),action:o.jsxs("span",{title:e("adminBilling.webhookHealthHint"),className:"inline-flex max-w-full items-center gap-2 rounded-md border border-[color:var(--border)] px-2.5 py-1.5 text-xs sm:px-3",children:[o.jsx("span",{className:`size-2 roun
968ded-full bg-[color:var(--${m})]`,"aria-hidden":!0}),o.jsx("span",{className:"min-w-0 truncate",children:f})]}),children:o.jsxs(Cc,{value:r,onValueChange:p=>{s(p),n({tab:p==="payments"?void 0:p})},children:[o.jsx("div",{className:"min-w-0 overflow-x-auto pb-0.5",children:o.jsxs(tl,{children:[o.jsx(ia,{value:"payments",className:"h-9 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:e("adminBilling.tabs.payments")}),o.jsx(ia,{value:"wallets",className:"h-9 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:e("adminBilling.tabs.wallets")}),o.jsx(ia,{value:"refunds",className:"h-9 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:e("adminBilling.tabs.refunds")})]})}),o.jsx(Tn,{value:"payments",children:o.jsx(POs,{})}),o.jsx(Tn,{value:"wallets",children:o.jsx(NOs,{})}),o.jsx(Tn,{value:"refunds",children:o.jsx(jOs,{})})]})})}function sn({title:e,hint:t,contentClassName:n,children:a}){return o.jsxs("section",{className:"grid gap-3",children:[o.jsxs("header",{className:"grid gap-1",children:[o.jsx("h3",{className:"text-sm font-semibold text-[color:var(--foreground)]",children:e}),t?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t}):null]}),o.jsx("div",{className:X("grid gap-4",n),children:a})]})}function De({label:e,hint:t,error:n,className:a,children:s}){return o.jsxs("label",{className:X(ti,a),children:[o.jsx("span",{children:e}),s,t?o.jsx("span",{className:"text-xs font-normal text-[color:var(--muted-foreground)]",children:t}):null,n?o.jsx("span",{className:"text-xs font-normal text-[color:var(--destructive)]",children:n}):null]})}const EOs=["payment_success_rate_low","gateway_error_rate_high","model_error_spike","webhook_dead_letter","system_component_down","negative_balance_exposure"],LP={payment_success_rate_low:"lower",gateway_error_rate_high:"higher",model_error_spike:"higher",webhook_dead_letter:"higher",system_component_down:"higher",negative_balance_exposure:"higher"},ZZ=new Set(["payment_success_rate_low","gateway_error_rate_high","model_error_spike"]);function IOs(e){return{enabled:e.enabled,warn:String(e.warnThreshold),crit:String(e.critThreshold),cooldown:String(e.cooldownMinutes)}}function OOs(e,t){if(t.warn.trim()===""||t.crit.trim()===""||t.cooldown.trim()==="")return"required";const n=Number(t.warn),a=Number(t.crit),s=Number(t.cooldown);if(!Number.isFinite(n)||!Number.isFinite(a)||!Number.isFinite(s))return"required";if(s<0)return"cooldownNonNegative";if(ZZ.has(e)){if(n<0||n>1||a<0||a>1)return"rateRange"}else if(n<0||a<0)return"nonNegative";return LP[e]==="higher"&&n>a?"directionHigher":LP[e]==="lower"&&n<a?"directionLower":null}function LOs(e,t){return e.enabled!==t.enabled||Number(e.warn)!==t.warnThreshold||Number(e.crit)!==t.critThreshold||Number(e.cooldown)!==t.cooldownMinutes}function UOs(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function BOs({open:e,onOpenChange:t}){const{t:n}=W(void 0,{keyPrefix:"adminDashboard"}),a=Te(),s=qa(),r=Go(s.data?.admin??null,"ops.dashboard.write"),i=mOs(),c=pOs(),d=h.useMemo(()=>{const T=new Map((i.data?.items??[]).map(R=>[R.alertType,R]));return EOs.map(R=>T.get(R)).filter(R=>R!=null)},[i.data]),[m,f]=h.useState({}),[p,y]=h.useState(!1);e&&!p&&d.length>0&&(y(!0),f(Object.fromEntries(d.map(T=>[T.alertType,IOs(T)])))),!e&&p&&y(!1);const v=(T,R,_)=>f(P=>({...P,[T]:{...P[T],[R]:_}})),$=h.useMemo(()=>{const T={};for(const R of d){const _=m[R.alertType];if(!_)continue;const P=OOs(R.alertType,_);P&&(T[R.alertType]=P)}return T},[m,d]),x=h.useMemo(()=>d.filter(T=>m[T.alertType]&&LOs(m[T.alertType],T)),[m,d]),w=Object.keys($).length>0,S=r&&x.length>0&&!w&&!c.isPending,k=async()=>{try{for(const T of x){const R=m[T.alertType];await c.mutateAsync({alertType:T.alertType,enabled:R.enabled,warnThreshold:Number(R.warn),critThreshold:Number(R.crit),cooldownMinutes:Number(R.cooldown)})}ie.success(n("alertSettings.saved"))}catch(T){ie.error(`${n("alertSettings.saveError")}: ${UOs(T)}`)}};return o.jsx(Vn,{open:e,onOpenChange:t,children:o.jsxs(Nn,{side:"auto",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:n("alertSettings.title")}),o.jsx(ua,{children:n("alertSettings.description")})]}),r?null:o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("alertSettings.readonlyHint")}),i.isLoading?o.jsx("p",{className:"text-13 text-[color:var(--muted-foreground)]",children:n("loading")}):i.error?o.jsx("p",{className:"text-13 text-[color:var(--destructive)]",children:n("failedLoad")}):d.length===0?o.jsx("p",{className:"text-13 text-[color:var(--muted-foreground)]",children:n("alertSettings.noD
968ata")}):o.jsxs("div",{className:"grid gap-5",children:[d.map(T=>{const R=m[T.alertType];if(!R)return null;const _=LP[T.alertType],P=ZZ.has(T.alertType),j=$[T.alertType],N=n(P?"alertSettings.rateHint":"alertSettings.countHint")+" "+n(_==="higher"?"alertSettings.directionHigher":"alertSettings.directionLower");return o.jsxs(sn,{title:n(`alertSettings.types.${T.alertType}`),hint:N,children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx("span",{className:"text-13 text-[color:var(--muted-foreground)]",children:T.lastFiredAt?n("alertSettings.lastFired",{time:a.relativeTime(T.lastFiredAt)}):n("alertSettings.neverFired")}),o.jsxs("label",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-13 text-[color:var(--foreground)]",children:n("alertSettings.enabled")}),o.jsx(js,{checked:R.enabled,onCheckedChange:I=>v(T.alertType,"enabled",I),disabled:!r})]})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:n("alertSettings.warnThreshold"),children:o.jsx(ge,{type:"number",inputMode:"decimal",step:P?.01:1,min:0,max:P?1:void 0,value:R.warn,onChange:I=>v(T.alertType,"warn",I.target.value),disabled:!r,className:"tabular-nums"})}),o.jsx(De,{label:n("alertSettings.critThreshold"),children:o.jsx(ge,{type:"number",inputMode:"decimal",step:P?.01:1,min:0,max:P?1:void 0,value:R.crit,onChange:I=>v(T.alertType,"crit",I.target.value),disabled:!r,className:"tabular-nums"})})]}),o.jsx(De,{label:n("alertSettings.cooldown"),hint:n("alertSettings.cooldownHint"),error:j?n(`alertSettings.errors.${j}`):void 0,children:o.jsx(ge,{type:"number",inputMode:"numeric",step:1,min:0,value:R.cooldown,onChange:I=>v(T.alertType,"cooldown",I.target.value),disabled:!r,className:"tabular-nums"})})]},T.alertType)}),r?o.jsx("div",{className:"flex justify-end",children:o.jsx(K,{onClick:k,disabled:!S,children:c.isPending?n("alertSettings.saving"):n("alertSettings.save")})}):null]})]})})}function FOs(){const{t:e}=W(void 0,{keyPrefix:"adminDashboard.leaderboard"}),[t,n]=h.useState(dOs),[a,s]=h.useState(lOs),r=uOs(t,a),i=r.data?.items??[];return o.jsxs(Ee,{className:"overflow-hidden p-0",children:[o.jsxs("div",{className:"space-y-2 border-b border-[color:var(--border)] px-4 py-3",children:[o.jsx("h3",{className:"text-sm font-semibold",children:e("title",{defaultValue:"Referral leaderboard"})}),o.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[o.jsx(el,{value:t,onValueChange:c=>n(c),ariaLabel:e("boardAria",{defaultValue:"Select leaderboard"}),options:cOs.map(c=>({value:c,label:e(`boards.${c}`,{defaultValue:c})}))}),o.jsx(el,{value:a,onValueChange:c=>s(c),ariaLabel:e("rangeAria",{defaultValue:"Select time range"}),options:iOs.map(c=>({value:c,label:e(`ranges.${c}`,{defaultValue:c})}))})]})]}),r.isLoading?o.jsx("div",{className:"space-y-2.5 p-4",children:Array.from({length:3}).map((c,d)=>o.jsx(Rt,{className:"h-5 w-full"},d))}):r.isError?o.jsx(V6,{label:e("failedLoad",{defaultValue:"Failed to load leaderboard"})}):i.length===0?o.jsx(V6,{label:e("empty",{defaultValue:"No referrals in this window"})}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)]",children:i.map((c,d)=>o.jsx(zOs,{row:c,rank:d+1,board:t},c.publicId))}),o.jsx("div",{className:"border-t border-[color:var(--border)] px-4 py-2 text-11 text-[color:var(--muted-foreground)]",children:e("validHint",{defaultValue:"Valid = normal risk status + active binding"})})]})}function zOs({row:e,rank:t,board:n}){const{t:a}=W(void 0,{keyPrefix:"adminDashboard.leaderboard"}),s=Te(),r=n==="revenue"?s.currency(e.revenueUsd,"USD",2):s.number(e.validCount),i=n==="revenue"?a("countPair",{defaultValue:"{{valid}} / {{total}} valid",valid:e.validCount,total:e.totalCount}):a("ofTotal",{defaultValue:"of {{total}}",total:e.totalCount});return o.jsx("li",{children:o.jsxs(Ta,{to:Bh(e.publicId),className:"flex items-baseline gap-3 px-4 py-2.5 transition-colors hover:bg-[color:var(--muted)]/40",children:[o.jsx("span",{className:"w-4 shrink-0 text-11 tabular-nums text-[color:var(--muted-foreground)]",children:t}),o.jsx("span",{className:"min-w-0 flex-1 truncate text-13",children:e.email}),o.jsxs("span",{className:"shrink-0 text-sm font-semibold tabular-nums",children:[r,o.jsx("span",{className:"ml-1.5 text-11 font-normal text-[color:var(--muted-foreground)]",children:i})]})]})})}function V6({label:e}){return o.jsx("div",{className:"p-5 text-xs text-[color:var(--muted-foreground)]",children:e})}function of(e){switch(e){case"watch":return"var(--alert-watch)";case"warning":return"var(--warning)";case"critical":return"var(--destructive)";default:return}}function yN(e){switch(e){case"watch":return"color-mix(in srgb, var(--alert-watch) 10%, transparent)";case"warning":return"var(--warning-surface)";case"critical":return"var(--destructive-surface)";default:return}}const Nc=e=>`${(e*100).toFixed(1)}%`;function qOs(e){switch(e){case"healthy":return"success";case"degraded":return"warning";case"down":return"destructive";default:return"muted"}}function K6(e){if(e==null||!Number.isFinite(e))return null;const t=Math.round(e*100);return t===0?null:`${t>0?"â":"â"}${Math.min(Math.abs(t),999)}
968%`}function HOs(e){if(e==null||!Number.isFinite(e))return null;const t=Math.abs(e);return t<.05?null:`${e>0?"â":"â"}${t.toFixed(1)}`}function VOs(){const{t:e}=W(void 0,{keyPrefix:"adminDashboard"}),t=Te(),n=rOs(),[a,s]=h.useState(!1),r=n.data,i=n.isFetching&&!n.isLoading;return o.jsxs(Vt,{title:e("title",{defaultValue:"Operations dashboard"}),description:e("description",{defaultValue:"Real-time overview of platform health, usage, and alerts."}),action:o.jsxs("div",{className:"grid w-full gap-2 sm:flex sm:w-auto sm:items-center",children:[o.jsxs(K,{variant:"outline",size:"sm",onClick:()=>n.refetch(),disabled:i,"aria-busy":i,children:[o.jsx(Vp,{className:X("size-3.5",i&&"animate-spin")}),e("refresh",{defaultValue:"Refresh"})]}),o.jsxs(K,{variant:"outline",size:"sm",onClick:()=>s(!0),children:[o.jsx(rj,{className:"size-3.5"}),e("alertSettings.title",{defaultValue:"Alert settings"})]})]}),children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{children:r?e("lastUpdated",{defaultValue:"Updated {{time}}",time:t.dateTime(r.generatedAt)}):e("loading",{defaultValue:"Loading dashboard"})}),o.jsx("span",{className:"tabular-nums",children:mK()})]}),n.isLoading?o.jsx(o3s,{}):n.isError||!r?o.jsx(Nj,{height:120,error:n.error instanceof Error?n.error:new Error(e("failedLoad",{defaultValue:"Failed to load dashboard"})),children:o.jsx("div",{})}):o.jsx(KOs,{snapshot:r,refreshing:i}),o.jsx(BOs,{open:a,onOpenChange:s})]})}function KOs({snapshot:e,refreshing:t}){return o.jsxs(o.Fragment,{children:[o.jsx(WOs,{alerts:e.activeAlerts}),o.jsx(QOs,{snapshot:e}),o.jsx(ZOs,{block:e.systemHealth,refreshing:t}),o.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[o.jsx(n3s,{block:e.payment,revenue:e.revenue,refreshing:t}),o.jsx(a3s,{revenue:e.revenue,conversion:e.conversion,refreshing:t})]}),o.jsx(GOs,{})]})}function GOs(){const{t:e}=W(void 0,{keyPrefix:"adminDashboard"});return o.jsx(G0,{title:e("sections.leaderboard",{defaultValue:"Growth leaderboards"}),children:o.jsx("div",{className:"grid gap-3 lg:grid-cols-2",children:o.jsx(FOs,{})})})}function WOs({alerts:e}){const{t}=W(void 0,{keyPrefix:"adminDashboard"}),n=e.some(r=>r.tier==="critical"),a=n?"critical":e.length?"warning":"ok";if(e.length===0)return o.jsxs(Ee,{className:"flex items-center gap-2 p-3 text-sm text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"size-2 shrink-0 rounded-full bg-[color:var(--success)]","aria-hidden":!0}),t("alerts.empty",{defaultValue:"All systems operational"})]});const s=of(a);return o.jsxs(Ee,{role:n?"alert":void 0,"aria-live":n?"assertive":"polite",className:"flex flex-wrap items-center gap-3 p-3",style:{backgroundColor:yN(a),borderColor:s},children:[o.jsx(jo,{tone:n?"destructive":"warning",children:t(`severity.${a}`,{defaultValue:a})}),o.jsx("span",{className:"text-sm font-medium",style:{color:s},children:t("alerts.activeCount",{defaultValue:"{{count}} active alerts",count:e.length})}),o.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.map(r=>o.jsx(YOs,{alert:r},r.alertType))})]})}function YOs({alert:e}){const{t}=W(void 0,{keyPrefix:"adminDashboard"}),n=of(e.tier);return o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded px-2 py-0.5 text-11 font-medium tabular-nums",style:{backgroundColor:yN(e.tier),color:n},children:[o.jsx("span",{className:"size-1.5 shrink-0 rounded-full",style:{backgroundColor:n},"aria-hidden":!0}),t(`alertSettings.types.${e.alertType}`)]})}function QOs({snapshot:e}){const{t}=W(void 0,{keyPrefix:"adminDashboard"}),n=Te(),a=e.systemHealth.data,s=e.payment.data,r=e.revenue.data,i=[{label:t("kpi.requests",{defaultValue:"Requests"}),value:a?n.number(a.totalRequests):"â",failed:e.systemHealth.status==="error"},{label:t("kpi.errorRate",{defaultValue:"Error rate"}),value:a?Nc(a.gatewayErrorRate.value):"â",tier:a?.gatewayErrorRate.tier,failed:e.systemHealth.status==="error"},{label:t("kpi.successRate",{defaultValue:"Payment success"}),value:s?Nc(s.successRate.value):"â",tier:s?.successRate.tier,failed:e.payment.status==="error"},{label:t("revenue.today",{defaultValue:"Revenue today"}),value:r?n.currency(r.today,"USD",2):"â",failed:e.revenue.status==="error"},{label:t("kpi.newSignups",{defaultValue:"New signups"}),value:r?n.number(r.newSignups):"â",failed:e.revenue.status==="error"},{label:t("kpi.activeUsers",{defaultValue:"Active users"}),value:r?n.number(r.activeUsers):"â",failed:e.revenue.status==="error"}];return o.jsx(Ee,{className:"grid grid-cols-2 divide-x divide-y divide-[color:var(--border)] p-0 sm:grid-cols-3 lg:grid-cols-6 lg:divide-y-0",children:i.map(c=>o.jsxs("div",{className:"px-4 py-3",children:[o.jsx("div",{className:"truncate text-11 font-medium text-[color:var(--muted-foreground)]",children:c.label}),o.jsx("div",{className:"mt-0.5 text-base font-semibold tabular-nums",style:{color:c.failed?"var(--muted-foreground)":of(c.tier??"ok")},children:c.value})]},c.label))})}function G0({title:e,failed:t,children:n}){const{t:a}=W(void 0,{keyPrefix:"adminDashboard"});return o.jsxs("section",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e}),t?o.jsx(jo,{tone:"destructive",children:a("failedLoad",{defaultValue:"load failed"})}):null]}),n]})}function Yo({label:e,value:t,format:n,tier:a="ok",spark:s,sub:r,ksub2:i,error:c,refreshing:d}){const{t:m}=W(void 0,{keyPrefix:"adminDashboard"});return o.jsxs(Ee,{className:X("p-3 transition-opacity duration-150 motion-reduce:transition-none sm:p-4",d&&"opacity-80"),"aria-busy":d?!0:void 0,children:[o.jsx("p",{className:"text-11 font-medium text-[color:var(--muted-foreground)]",children:e}),c?o.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[o.jsx("span",{className:"text-xl font-semibold tabular-nums text-[color:var(--muted-foreground)] sm:text-2xl",children:"â"}),o.jsx(jo,{tone:"destructive",children:m("failedLoad",{defaultValue:"load failed"})})]}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"mt-1.5 text-xl font-semibold tabular-nums sm:mt-2 sm:text-2xl",style:{color:of(a)},children:o.jsx(Ho,{value:t,format:n})}),s!=null?o.jsx("div",{className:"mt-1.5",children:s}):null]}),r!=null?o.jsx("div",{className:"mt-1 text-11 leading-4 text-[color:var(--muted-foreground)] sm:truncate",children:r}):null,i!=null&&!c?o.jsx("div",{className:"mt-2 border-t border-[color:var(--border)] pt-2 text-11 text-[color:var(--muted-foreground)]",children:i}):null]})}function XOs({values:e,color:t}){const s=Math.max(...e,0),r=Math.min(...e,0),i=s-r||1,c=e.map((d,m)=>{const f=e.length>1?m/(e.length-1)*100:50,p=28-(d-r)/i*28;return`${f.toFixed(1)},${p.toFixed(1)}`}).join(" ");return o.jsx("svg",{viewBox:"0 0 100 28",preserveAspectRatio:"none",className:"h-7 w-full","aria-hidden":!0,
968children:o.jsx("polyline",{points:c,fill:"none",stroke:t??"var(--muted-foreground)",strokeWidth:1.5,vectorEffect:"non-scaling-stroke",strokeLinejoin:"round",strokeLinecap:"round"})})}function ZOs({block:e,refreshing:t}){const{t:n}=W(void 0,{keyPrefix:"adminDashboard"}),a=Te(),s=e.status==="error",r=e.data,i=!s&&r!=null&&r.totalRequests===0,c=r?n("kpi.successFailed",{defaultValue:"{{success}} ok · {{failed}} fail",success:a.number(r.successRequests),failed:a.number(r.failedRequests)}):void 0,d=r?.gatewayErrorRate.tier??"ok",m=n(`health.tierReason.${d}`,{defaultValue:""}),f=r?HOs(r.errorRateDeltaPt):null,p=r&&!i?o.jsxs("span",{className:"tabular-nums",children:[m,f?` · ${n("vsYesterdayPt",{defaultValue:"{{delta}}pt vs yesterday",delta:f})}`:""]}):void 0,y=r&&r.errorTrend.length>=2?o.jsx(XOs,{values:r.errorTrend.map(v=>v.value),color:of(d)}):void 0;return o.jsxs(G0,{title:n("sections.health",{defaultValue:"System health"}),failed:s,children:[o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[o.jsx(Yo,{label:n("kpi.errorRate",{defaultValue:"Error rate"}),value:r?r.gatewayErrorRate.value:null,format:Nc,tier:r?.gatewayErrorRate.tier,spark:y,sub:i?n("noTraffic",{defaultValue:"No traffic yet"}):c,ksub2:p,error:s,refreshing:t}),o.jsx(Yo,{label:n("kpi.requests",{defaultValue:"Requests"}),value:r?r.totalRequests:null,format:v=>a.number(Math.round(v)),sub:c,error:s,refreshing:t}),o.jsx(Yo,{label:n("videoFailRate",{defaultValue:"Video fail rate"}),value:r?r.videoJobFailRate.value:null,format:Nc,tier:r?.videoJobFailRate.tier,sub:r?n("videoJobsDetail",{defaultValue:"{{failed}}/{{total}} jobs",failed:a.number(r.videoJobsFailed),total:a.number(r.videoJobsTotal)}):void 0,error:s,refreshing:t}),o.jsx(Yo,{label:n("avgLatency",{defaultValue:"Avg latency"}),value:r?r.avgLatencyMs:null,format:v=>`${Math.round(v)} ms`,error:s,refreshing:t}),o.jsx(Yo,{label:n("videoUnbilled",{defaultValue:"Video unbilled"}),value:r?r.videoCompletionUsageMismatch.value:null,format:v=>a.number(Math.round(v)),tier:r?.videoCompletionUsageMismatch.tier,sub:n("videoUnbilledHint",{defaultValue:"completed but not settled"}),error:s,refreshing:t})]}),o.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[o.jsx(JOs,{block:e}),o.jsx(e3s,{block:e})]}),o.jsx(t3s,{components:r?.components??[],failed:s})]})}function JOs({block:e}){const{t}=W(void 0,{keyPrefix:"adminDashboard"}),n=Te(),a=e.data?.errorTypes??[],s=a.reduce((r,i)=>Math.max(r,i.count),0);return o.jsx(vN,{title:t("errorTypes",{defaultValue:"Error types"}),children:e.status==="error"?o.jsx(_p,{label:t("failedLoad",{defaultValue:"load failed"})}):a.length===0?o.jsx(_p,{label:t("noErrors",{defaultValue:"No errors"})}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)]",children:a.slice(0,5).map(r=>o.jsxs("li",{className:"px-4 py-2.5",children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[o.jsx("span",{className:"truncate font-mono text-13",children:r.code}),o.jsxs("span",{className:"shrink-0 text-sm tabular-nums",children:[n.number(r.count),o.jsxs("span",{className:"ml-1.5 text-11 text-[color:var(--muted-foreground)]",children:[(r.pct*100).toFixed(0),"%"]})]})]}),o.jsx("div",{className:"mt-1.5 h-1 overflow-hidden rounded bg-[color:var(--muted)]",children:o.jsx("div",{className:"h-full bg-[color:var(--muted-foreground)]",style:{width:`${s>0?r.count/s*100:0}%`}})})]},r.code))})})}function e3s({block:e}){const{t}=W(void 0,{keyPrefix:"adminDashboard"}),n=Te(),a=h.useMemo(()=>[...e.data?.modelErrors??[]].filter(s=>s.errorRate>0).sort((s,r)=>r.errorRate-s.errorRate).slice(0,5),[e.data?.modelErrors]);return o.jsx(vN,{title:t("modelAnomalies",{defaultValue:"Model anomalies"}),children:e.status==="error"?o.jsx(_p,{label:t("failedLoad",{defaultValue:"load failed"})}):a.length===0?o.jsx(_p,{label:t("noAnomalies",{defaultValue:"All models healthy"})}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)]",children:a.map(s=>{const r=of(s.tier);return o.jsxs("li",{className:"flex items-baseline justify-between gap-3 px-4 py-2.5",style:{backgroundColor:yN(s.tier)},children:[o.jsx("span",{className:"truncate text-sm font-medium",style:{color:r},children:s.model}),o.jsxs("span",{className:"shrink-0 text-right text-sm tabular-nums",style:{color:r},children:[Nc(s.errorRate),o.jsxs("span",{className:"ml-1.5 text-11 text-[color:var(--muted-foreground)]",children:[n.number(s.errors)," ",t("errors",{defaultValue:"err"})]})]})]},s.model)})})})}function t3s({components:e,failed:t}){const{t:n}=W(void 0,{keyPrefix:"adminDashboard"});return o.jsx(vN,{title:n("components",{defaultValue:"Components"}),children:t?o.jsx(_p,{label:n("failedLoad",{defaultValue:"load failed"})}):e.length===0?o.jsx(_p,{label:n("empty",{defaultValue:"No data"})}):o.jsx("ul",{className:"flex flex-wrap gap-2 p-4",children:e.map(a=>o.jsxs("li",{className:"inline-flex items-center gap-2 rounded-md border border-[color:var(--border)] px-3 py-1.5",children:[o.jsx("span",{className:"text-13 text-[color:var(--foreground)]",children:a.name}),o.jsx(jo,{tone:qOs(a.status),children:n(`componentStatus.${a.status}`,{defaultValue:a.status})})]},a.name))})})}function n3s({block:e,revenue:t,refreshing:n}){const{t:a}=W(void 0,{keyPrefix:"adminDashboard"}),s=Te(),r=e.status==="error",i=e.data,c=y=>o.jsx("span",{children:a(`health.tierReason.${y??"ok"}`,{defaultValue:""})}),d=i?i.orders.paid+i.orders.failed:0,m=i!=null?d<5?o.jsx("span",{className:"tabular-nums",children:a("lowSample",{defaultValue:"Low sample ({{n}})",n:d})}):c(i.successRate.tier):void 0,f=t.data?.today,p=i!=null&&f!=null&&f>0?i.refunds/f*100:null;return o.jsx(G0,{title:a("sections.payment",{defaultValue:"Payment health"}),failed:r,children:o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(Yo,{label:a("kpi.successRate",{defaultValue:"Payment success"}),value:i?i.successRate.value:null,format:Nc,tier:i?.successRate.tier,sub:i?a("orders.summary",{defaultValue:"{{paid}} paid · {{failed}} failed · {{pending}} pending",paid:s.number(i.orders.paid),failed:s.number(i.orders.failed),pending:s.number(i.orders.pending)}):void 0,ksub2:m,error:r,refreshing:n}),o.jsx(Yo,{label:a("abandonRate",{defaultValue:"Checkout abandon"}),value:i?i.abandonRate.value:null,format:Nc,tier:i?.abandonRate.tier,sub:i?a("checkout.funnel",{defaultValue:"opened {{opened}} · paid {{paid}}",opened:s.number(i.checkoutOpened),paid:s.number(i.orders.paid)}):void 0,ksub2:i?c(i.abandonRate.tier):void 0,error:r,refreshing:n}),o.jsx(Yo,{label:a("refunds",{defaultValue:"Refunds"}),value:i?i.refunds:null,format:y=>s.number(Math.round(y)),sub:p!=null?a("refundRate",{defaultValue:"Refund rate {{rate}}%",rate:p.toFixed(1)}):void 0,error:r,refreshing:n}),o.jsx(Yo,{label:a("chargebacks",{defaultValue:"Chargebacks"}),value:i?i.chargebacks:null,format:y=>s.number(Math.round(y)),tier:i&&i.chargebacks>0?"warning":"ok",error:r,refreshing:n})]})})}
968function a3s({revenue:e,conversion:t,refreshing:n}){const{t:a}=W(void 0,{keyPrefix:"adminDashboard"}),s=Te(),r=e.status==="error",i=e.data,c=t.data,d=i?K6(i.pctChange):null,m=h.useMemo(()=>(i?.trend??[]).map(y=>({at:y.at,value:y.value})),[i?.trend]),f=h.useMemo(()=>new Intl.DateTimeFormat(s.locale,{hour:"2-digit",minute:"2-digit",hour12:!1}),[s.locale]),p=y=>{const v=new Date(String(y));return Number.isNaN(v.getTime())?String(y):f.format(v)};return o.jsxs(G0,{title:a("sections.revenue",{defaultValue:"Revenue & growth"}),failed:r,children:[o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(Yo,{label:a("revenue.today",{defaultValue:"Revenue today"}),value:i?i.today:null,format:y=>s.currency(y,"USD",2),sub:d!=null?o.jsxs("span",{className:"tabular-nums",children:[d," ",a("kpi.vsYesterday",{defaultValue:"vs yesterday"})]}):void 0,ksub2:i?o.jsx("span",{className:"tabular-nums",children:a("revenue.monthDetail",{defaultValue:"{{count}} charges · MTD {{mtd}}",count:s.number(i.paidCount),mtd:s.currency(i.monthToDateUsd,"USD",0)})}):void 0,error:r,refreshing:n}),o.jsx(Yo,{label:a("kpi.newSignups",{defaultValue:"New signups"}),value:i?i.newSignups:null,format:y=>s.number(Math.round(y)),sub:(()=>{const y=i?K6(i.signupDeltaPct):null;return y!=null?o.jsxs("span",{className:"tabular-nums",children:[y," ",a("kpi.vsYesterday",{defaultValue:"vs yesterday"})]}):void 0})(),ksub2:i?a("kpi.newSignupsHint",{defaultValue:"Normal users only (excludes flagged)"}):void 0,error:r,refreshing:n}),o.jsx(Yo,{label:a("kpi.activeUsers",{defaultValue:"Active users"}),value:i?i.activeUsers:null,format:y=>s.number(Math.round(y)),sub:i?a("activeUsersHint",{defaultValue:"Had gateway calls"}):void 0,error:r,refreshing:n}),o.jsx(Yo,{label:a("firstChargeConversion",{defaultValue:"First-charge conversion"}),value:c?c.firstChargeConversion.value:null,format:Nc,tier:c?.firstChargeConversion.tier,sub:c?a("conversion.paidOfSignups",{defaultValue:"{{paid}} first-charged / {{signups}} signups",paid:s.number(c.firstChargers),signups:s.number(c.newSignups)}):void 0,ksub2:c?a("conversionCohortHint",{defaultValue:"Last 7d cohort · normal users only"}):void 0,error:t.status==="error",refreshing:n})]}),!r&&m.length>0?o.jsx(_Z,{title:a("revenue.trendTitle",{defaultValue:"Revenue today vs yesterday"}),height:160,data:m,xAxisKey:"at",xTickFormatter:p,series:[{dataKey:"value",name:a("revenue.today",{defaultValue:"Revenue today"}),colorIndex:1}],valueFormatter:y=>s.currency(y,"USD",0)}):null]})}function vN({title:e,children:t}){return o.jsxs(Ee,{className:"overflow-hidden p-0",children:[o.jsx("div",{className:"border-b border-[color:var(--border)] px-4 py-3",children:o.jsx("h3",{className:"text-sm font-semibold",children:e})}),t]})}function _p({label:e}){return o.jsx("div",{className:"p-5 text-xs text-[color:var(--muted-foreground)]",children:e})}function o3s(){return o.jsxs("div",{className:"space-y-3",children:[o.jsx(Rt,{className:"h-12 w-full"}),o.jsx(Rt,{className:"h-16 w-full"}),o.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:Array.from({length:4}).map((e,t)=>o.jsx(Rt,{className:"h-24 w-full"},t))}),o.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[o.jsx(Rt,{className:"h-48 w-full"}),o.jsx(Rt,{className:"h-48 w-full"})]})]})}const G6=["annStatus"],s3s=4,W6=new Set(["image/png","image/jpeg","image/webp","image/gif"]),r3s=5*1024*1024,Jr=noe,JZ=r_.filter(e=>e!==Jr),Ub=()=>({message:""});function bN(e){return(e??[]).filter(t=>t.label.trim()&&t.url.trim())}function vx(e,t){if(!e.message.trim())return e;if(t){const n=bN(e.actions).map(a=>({label:a.label.trim(),url:a.url.trim(),...a.variant?{variant:a.variant}:{}}));return{message:e.message.trim(),...e.title?.trim()?{title:e.title.trim()}:{},...n.length?{actions:n}:{}}}return{message:e.message.trim(),...e.ctaText?.trim()?{ctaText:e.ctaText.trim()}:{},...e.ctaUrl?.trim()?{ctaUrl:e.ctaUrl.trim()}:{}}}function i3s(e,t,n){if(n){const s=bN(e.actions).map((r,i)=>({label:t.actions?.[i]?.label?.trim()||r.label.trim(),url:r.url.trim(),...r.variant?{variant:r.variant}:{}}));return{message:t.message.trim(),...t.title?.trim()?{title:t.title.trim()}:{},...s.length?{actions:s}:{}}}return{message:t.message.trim(),...t.ctaText?.trim()?{ctaText:t.ctaText.trim()}:{},...e.ctaUrl?.trim()?{ctaUrl:e.ctaUrl.trim()}:{}}}function l3s(e,t){const n=e[Jr];if(!n?.message.trim())return{};const a={[Jr]:vx(n,t)};for(const s of JZ){const r=e[s];r?.message.trim()&&(a[s]=i3s(n,r,t))}return a}function c3s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=Pe(n,"annStatus"),i=[{value:"",label:e("common.all",{defaultValue:"All"})},{value:"active",label:e("adminContent.annStatusActive")},{value:"draft",label:e("adminContent.annStatusDraft")},{value:"archived",label:e("adminContent.annArchive")}],c=nOs(r?{status:r}:{}),d=aOs(),m=oOs(),f=sOs(),[p,y]=h.useState(null),v=k=>e(`adminContent.annSev${k.charAt(0).toUpperCase()}${k.slice(1)}`,{defaultValue:k}),$=k=>({console:e("adminContent.annAudConsole"),public_site:e("adminContent.annAudPublic"),all:e("adminContent.annAudAll")})[k]??k,x=k=>({draft:e("adminContent.annStatusDraft"),active:e("adminContent.annStatusActive"),archived:e("adminContent.annArchive")})[k]??k;async function w(k){await zt({message:e("adminContent.annArchiveConfirm")})&&await f.mutateAsync(k.publicId)}async function S(k){p==="new"?await d.mutateAsync(k):p&&await m.mutateAsync({publicId:p.publicId,...k}),y(null)}return o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mb-4 flex items-center justify-between gap-3",children:[o.jsxs("div",{className:"grid min-w-0 flex-1 gap-2 sm:flex sm:gap-3",children:[o.jsx(Ze,{label:e("adminContent.annStatus"),value:r,options:i,onChange:k=>a({annStatus:k})}),o.jsx(nn,{show:Zt(n,G6),onReset:()=>s(G6),labelKey:"common.reset",className:"self-end"})]}),o.jsx(K,{size:"sm",onClick:()=>y("new"),children:e("adminContent.annNewButton")})]}),o.jsx(Pt,{label:e("adminContent.annTitle"),rows:c.data?.items,isLoading:c.isLoading,error:c.error,emptyTitle:e("adminContent.annEmpty"),pagination:{},columns:[{header:e("adminContent.annColTitle"),cell:k=>{const T=k.i18n?.[Jr]??k.i18n?.en;return o.jsx("span",{className:"max-w-[10rem] truncate block",children:T?.title||"â"})}},{header:e("adminContent.annColContent"),cell:k=>{const T=k.i18n?.[Jr]??k.i18n?.en;return o.jsx("span",{className:"max-w-[16rem] truncate block text-[color:var(--muted-foreground)]",children:T?.message??"â"})}},{header:e("adminContent.annColType"),cell:k=>o.jsx(Oe,{value:k.displayType,label:e(k.displayType==="modal"?"adminContent.annTypeModal":"adminContent.annTypeBanner")})},{header:e("adminContent.annSeverity"),cell:k=>o.jsx(Oe,{value:k.severity,label:v(k.severity)})},{header:e("adminContent.annAudience"),cell:k=>o.jsx(Oe,{value:k.audience,label:$(k.audience)})},{header:e("adminContent.annStatus"),cell:k=>o.jsx(Oe,{value:k.status,label:x(k.status)})},{header:e("adminContent.annStartsAt"),cell:k=>k.startsAt?t.dateTime(k.startsAt):"â"},{header:e("adminContent.annEndsAt"),cell:k=>k.endsAt?t.dateTime(k.endsAt):"â"},{header:"",sticky:"right",cell:k=>o.jsxs("div",{className:"flex gap-2",children:[o.jsx(K,{size:"sm",variant:"ghost",onClick:()=>y(k),children:e("adminContent.annEditTitle")}),k.status!=="archived"&&o.jsx(K,{size:"sm",variant:"ghost",className:"text-[color:var(--destructive)]",onClick:()=>w(k),children:e("adminContent.annArchive")})]})}],mobileCard:k=>o.jsx(d3s,{announcement:k,onEdit:()=>y(k),onArchive:()=>void w(k)})}),o.jsx(Vn,{open:p!==null,onOpenChange:k=>{k||y(null)},children:o.jsxs(Nn,{side:"auto",className:"!p-0",children:[o.jsx(Pa,{className:"mb-0 shrink-0 px-4 pb-3 pt-4 sm:px-6 sm:pt-6",children:o.jsx(Rn,{className:"break-words",children:e(p==="new"?"adminContent.annCreateTitle":"adminContent.annEditTitle")})}),p!==null&&o.jsx(u3s,{initial:p==="new"?void 0:p,onSave:S,onCancel:()=>y(null),isSaving:d.isPending||m.isPending})]})})]})}function d3s({announcement:e,onEdit:t,onArchive:n}){const{t:a}=W(),s=Te(),r=e.i18n?.[Jr]??e.i18n?.en,i={draft:a("adminContent.annStatusDraft"),active:a("adminContent.annStatusActive"),archived:a("adminContent.annArchive")}[e.status]??e.status;return o.jsxs(Dn,{className:"py-2.5",children:[o.jsx(kr,{title:o.jsx("span",{className:"block min-w-0 break-words text-sm leading-5 [overflow-wrap:anywhere]",children:r?.title||r?.message||e.publicId}),meta:o.jsx("span",{className:"line-clamp-2 break-words [overflow-wrap:anywhere]",children:r?.message??"â"}),truncateTitle:!1,trailing:o.jsx(Oe,{value:e.status,label:i})}),o.jsxs(Ha,{className:"gap-y-1.5",children:[o.jsx(Qe,{label:a("adminContent.annColType"),children:o.jsx(Oe,{value:e.displayType,label:a(e.displayType==="modal"?"adminContent.annTypeModal":"adminContent.annTypeBanner")})}),o.jsx(Qe,{label:a("adminContent.annSeverity"),align:"right",children:o.jsx(Oe,{value:e.severity})}),o.jsx(Qe,{label:a("adminContent.annStartsAt"),truncate:!1,children:e.startsAt?s.relativeTime(e.startsAt):"â"}),o.jsx(Qe,{label:a("adminContent.annEndsAt"),align:"right",truncate:!1,children:e.endsAt?s.relativeTime(e.endsAt):"â"})]}),o.jsxs(Cr,{className:"mt-2 border-t border-[color:var(--border)] pt-2",children:[o.jsx(K,{size:"sm",variant:"secondary",onClick:t,children:a("adminContent.annEditTitle")}),e.status!=="archived"?o.jsx(K,{size:"sm",variant:"ghost",className:"text-[color:var(--destructive)]",onClick:n,children:a("adminContent.annArchive")}):null]})]})}function u3s({initial:e,onSave:t,onCancel:n,isSaving:a}){const{t:s}=W(),r=eOs(),[i,c]=h.useState(e?.displayType??"banner"),[d,m]=h.useState(e?.status??"draft"),[f,p]=h.useState(e?.severity??"info"),[y,v]=h.useState(e?.audie
968nce??"console"),[$,x]=h.useState(e?.dismissible??!0),[w,S]=h.useState(e?.startsAt?.slice(0,16)??""),[k,T]=h.useState(e?.endsAt?.slice(0,16)??""),[R,_]=h.useState(e?.imageUrl??""),[P,j]=h.useState(""),N=h.useRef(null),I=tOs(),[z,E]=h.useState(()=>e?.i18n??{}),[L,O]=h.useState(""),[V,ne]=h.useState(()=>{const Ae=e?.i18n?.[Jr];return Ae?JSON.stringify(vx(Ae,(e?.displayType??"banner")==="modal")):""}),[q,M]=h.useState(!1),F=i==="modal",H=z[Jr]??Ub(),ee=JZ.filter(Ae=>z[Ae]?.message?.trim()),B=JSON.stringify(vx(H,F)),G=ee.length>0&&B!==V,Q=h.useMemo(()=>[{value:"banner",label:s("adminContent.annTypeBanner")},{value:"modal",label:s("adminContent.annTypeModal")}],[s]),de=h.useMemo(()=>[{value:"draft",label:s("adminContent.annStatusDraft")},{value:"active",label:s("adminContent.annStatusActive")}],[s]),Y=h.useMemo(()=>[{value:"info",label:s("adminContent.annSevInfo")},{value:"warning",label:s("adminContent.annSevWarning")},{value:"critical",label:s("adminContent.annSevCritical")}],[s]),pe=h.useMemo(()=>[{value:"console",label:s("adminContent.annAudConsole")},{value:"public_site",label:s("adminContent.annAudPublic")},{value:"all",label:s("adminContent.annAudAll")}],[s]),se=h.useMemo(()=>[{value:"primary",label:s("adminContent.annVariantPrimary")},{value:"secondary",label:s("adminContent.annVariantSecondary")},{value:"link",label:s("adminContent.annVariantLink")}],[s]);function we(Ae){E(tt=>({...tt,[Jr]:{...Ub(),...tt[Jr],...Ae}}))}function me(Ae,tt){E(Tt=>({...Tt,[Ae]:{...Ub(),...Tt[Ae],...tt}}))}async function ye(Ae){if(j(""),!W6.has(Ae.type))return j(s("adminContent.annHeroImageBadType"));if(Ae.size>r3s)return j(s("adminContent.annHeroImageTooLarge"));try{const{url:tt}=await I.mutateAsync(Ae);_(tt)}catch(tt){j(tt instanceof Error?tt.message:s("adminContent.annHeroImageUploadFailed"))}}async function _e(){O("");const Ae=vx(H,F);if(!Ae.message.trim()){O(s("adminContent.annTranslateNeedSource"));return}const{results:tt}=await r.mutateAsync({source:Ae,displayType:i});E(an=>{const ta={...an};for(const lo of tt)lo.ok&&(ta[lo.locale]=lo.entry);return ta}),ne(JSON.stringify(Ae));const Tt=tt.filter(an=>!an.ok).map(an=>an.locale);
968Tt.length&&O(s("adminContent.annTranslatePartial",{failed:Tt.length}))}async function ae(Ae){Ae.preventDefault(),await t({displayType:i,status:d,severity:f,audience:y,dismissible:$,imageUrl:F&&R.trim()?R.trim():null,startsAt:w?new Date(w).toISOString():null,endsAt:k?new Date(k).toISOString():null,i18n:l3s(z,F),...F&&e&&q?{bumpRevision:!0}:{}})}const Je=ee.length;return o.jsxs("form",{onSubmit:ae,className:"flex min-h-0 flex-1 flex-col",children:[o.jsxs("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto overscroll-contain px-4 pb-4 sm:px-6",children:[o.jsx(Ja,{label:s("adminContent.annDisplayType"),children:o.jsx(ft,{fullWidth:!0,value:i,options:Q,onValueChange:c})}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(Ja,{label:s("adminContent.annStatus"),children:o.jsx(ft,{fullWidth:!0,value:d,options:de,onValueChange:m})}),o.jsx(Ja,{label:s("adminContent.annSeverity"),children:o.jsx(ft,{fullWidth:!0,value:f,options:Y,onValueChange:p})})]}),o.jsx(Ja,{label:s("adminContent.annAudience"),children:o.jsx(ft,{fullWidth:!0,value:y,options:pe,onValueChange:v})}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(Ja,{label:s("adminContent.annStartsAt"),children:o.jsx(ge,{type:"datetime-local",value:w,onChange:Ae=>S(Ae.target.value)})}),o.jsx(Ja,{label:s("adminContent.annEndsAt"),children:o.jsx(ge,{type:"datetime-local",value:k,onChange:Ae=>T(Ae.target.value)})})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Zn,{checked:$,onChange:Ae=>x(Ae.target.checked),id:"ann-dismissible"}),o.jsx(lh,{htmlFor:"ann-dismissible",className:"text-sm leading-5",children:s("adminContent.annDismissible")})]}),F&&o.jsxs(Ja,{label:s("adminContent.annHeroImage"),children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[o.jsx(ge,{value:R,onChange:Ae=>_(Ae.target.value),placeholder:"https://cdn.onehop.ai/...",className:"min-w-0 flex-1 font-[family-name:var(--font-mono)] text-xs"}),o.jsx(K,{type:"button",variant:"outline",size:"sm",className:"shrink-0",onClick:()=>N.current?.click(),disabled:I.isPending,children:I.isPending?s("adminContent.annHeroImageUploading"):s("adminContent.annHeroImageUpload")})]}),o.jsx("input",{ref:N,type:"file",accept:[...W6].join(","),className:"hidden",onChange:Ae=>{const tt=Ae.target.files?.[0];Ae.target.value="",tt&&ye(tt)}}),P&&o.jsx("p",{className:"text-2xs text-[color:var(--destructive)]",children:P}),R.trim()&&o.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[o.jsx("img",{src:R,alt:s("adminContent.annHeroImage"),className:"h-12 w-20 rounded-[length:var(--radius-sm)] border border-[color:var(--border)] object-cover"}),o.jsx(K,{type:"button",variant:"ghost",size:"sm",onClick:()=>_(""),children:s("adminContent.annHeroImageRemove")})]}),o.jsx("p",{className:"break-words text-2xs text-[color:var(--muted-foreground)]",children:s("adminContent.annHeroImageHint")})]}),F&&e&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Zn,{checked:q,onChange:Ae=>M(Ae.target.checked),id:"ann-bump"}),o.jsx(lh,{htmlFor:"ann-bump",className:"text-sm leading-5",children:s("adminContent.annBumpRevision")})]}),o.jsx("hr",{className:"border-[color:var(--border)]"}),o.jsxs("div",{className:"space-y-3",children:[o.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-[color:var(--muted-foreground)]",children:s("adminContent.annSourceLocale")}),o.jsx(m3s,{isModal:F,entry:H,onChange:we,variantOptions:se,t:s}),o.jsxs("div",{className:"grid gap-2 pt-1 sm:flex sm:items-center sm:gap-3",children:[o.jsx(K,{type:"button",variant:"outline",size:"sm",className:"w-full sm:w-auto",onClick:_e,disabled:r.isPending,children:r.isPending?s("adminContent.annTranslating"):s("adminContent.annTranslate")}),Je>0&&!r.isPending&&o.jsx("span",{className:"text-2xs text-[color:var(--muted-foreground)]",children:s("adminContent.annTranslateDone",{ok:Je})})]}),L&&o.jsx("p",{className:"text-2xs text-[color:var(--destructive)]",children:L}),G&&o.jsx("p",{className:"break-words text-2xs text-[color:var(--color-warning,#b45309)]",children:s("adminContent.annTranslateStale")}),o.jsx("p",{className:"text-2xs text-[color:var(--muted-foreground)]",children:s("adminContent.annSourceHint")})]}),ee.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("hr",{className:"border-[color:var(--border)]"}),o.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-[color:var(--muted-foreground)]",children:s("adminContent.annOtherLocales")}),o.jsx("div",{className:"space-y-2",children:ee.map(Ae=>o.jsxs("details",{className:"rounded-md border border-[color:var(--border)] p-3",children:[o.jsx("summary",{className:"cursor-pointer text-sm font-medium",children:Uh[Ae]}),o.jsx("div",{className:"mt-3",children:o.jsx(p3s,{isModal:F,source:H,entry:z[Ae]??Ub(),onChange:tt=>me(Ae,tt),t:s})})]},Ae))})]})]}),o.jsxs("div",{className:"grid shrink-0 gap-2 border-t border-[color:var(--border)] bg-[color:var(--background)] px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] sm:flex sm:justify-end sm:px-6",children:[o.jsx(K,{type:"button",variant:"ghost",className:"w-full sm:w-auto",onClick:n,children:s("common.cancel",{defaultValue:"Cancel"})}),o.jsx(K,{type:"submit",className:"w-full sm:w-auto",disabled:a,children:a?s("common.saving",{defaultValue:"Saving..."}):s("common.save",{defaultValue:"Save"})})]})]})}function Ja({label:e,children:t}){return o.jsxs("div",{className:"grid min-w-0 gap-1",children:[o.jsx(lh,{className:"text-sm font-medium",children:e}),t]})}function m3s({isModal:e,entry:t,onChange:n,variantOptions:a,t:s}){const r=t.actions??[];function i(d){n({actions:d})}function c(d,m){i(r.map((f,p)=>p===d?{...f,...m}:f))}return o.jsxs(o.Fragment,{children:[e&&o.jsx(Ja,{label:s("adminContent.annModalTitle"),children:o.jsx(ge,{value:t.title??"",onChange:d=>n({title:d.target.value}),maxLength:120})}),o.jsxs(Ja,{label:s(e?"adminContent.annBody":"adminContent.annMessage"),children:[o.jsx(_o,{value:t.message,onChange:d=>n({message:d.target.value}),rows:e?4:2,maxLength:e?1e3:300}
968),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:s("adminContent.annInlineLinkHint")})]}),e?o.jsxs("div",{className:"space-y-2",children:[o.jsx(lh,{children:s("adminContent.annActions")}),r.map((d,m)=>o.jsxs("div",{className:"grid min-w-0 items-center gap-2 rounded-md border border-[color:var(--border)] p-2 sm:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[o.jsx(ge,{value:d.label,onChange:f=>c(m,{label:f.target.value}),placeholder:s("adminContent.annActionLabel"),maxLength:50}),o.jsx(ge,{value:d.url,onChange:f=>c(m,{url:f.target.value}),placeholder:"/pricing or https://...",className:"font-[family-name:var(--font-mono)] text-xs"}),o.jsx(ft,{fullWidth:!0,value:d.variant??"primary",options:a,onValueChange:f=>c(m,{variant:f})}),o.jsx(K,{type:"button",size:"sm",variant:"ghost",className:"justify-self-start text-[color:var(--destructive)]",onClick:()=>i(r.filter((f,p)=>p!==m)),children:s("adminContent.annActionRemove")})]},m)),r.length<s3s&&o.jsx(K,{type:"button",size:"sm",variant:"ghost",onClick:()=>i([...r,{label:"",url:"",variant:r.length===0?"primary":"secondary"}]),children:s("adminContent.annActionAdd")})]}):o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(Ja,{label:s("adminContent.annCtaText"),children:o.jsx(ge,{value:t.ctaText??"",onChange:d=>n({ctaText:d.target.value}),maxLength:50})}),o.jsx(Ja,{label:s("adminContent.annCtaUrl"),children:o.jsx(ge,{value:t.ctaUrl??"",onChange:d=>n({ctaUrl:d.target.value}),placeholder:"/pricing"})})]})]})}function p3s({isModal:e,source:t,entry:n,onChange:a,t:s}){const r=bN(t.actions);function i(c,d){const m=[...n.actions??r.map(f=>({...f}))];m[c]={...m[c]??r[c],label:d},a({actions:m})}return o.jsxs("div",{className:"space-y-3",children:[e&&o.jsx(Ja,{label:s("adminContent.annModalTitle"),children:o.jsx(ge,{value:n.title??"",onChange:c=>a({title:c.target.value}),maxLength:120})}),o.jsx(Ja,{label:s(e?"adminContent.annBody":"adminContent.annMessage"),children:o.jsx(_o,{value:n.message,onChange:c=>a({message:c.target.value}),rows:e?3:2,maxLength:e?1e3:300})}),e?r.map((c,d)=>o.jsx(Ja,{label:`${s("adminContent.annActionLabel")} · ${c.label}`,children:o.jsx(ge,{value:n.actions?.[d]?.label??"",onChange:m=>i(d,m.target.value),maxLength:50})},d)):t.ctaText?.trim()&&o.jsx(Ja,{label:s("adminContent.annCtaText"),children:o.jsx(ge,{value:n.ctaText??"",onChange:c=>a({ctaText:c.target.value}),maxLength:50})})]})}function f3s(){const{t:e}=W();return o.jsx(Vt,{title:e("adminContent.title"),description:e("adminContent.description"),children:o.jsx(c3s,{})})}function g3s(){return Ue({queryKey:["ops","growth","signup-bonus-rule"],queryFn:()=>ve.request("/ops/growth/rules/signup-bonus").then(e=>e.rule),retry:1})}function h3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/rules/signup-bonus",{method:"PATCH",body:t,idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","signup-bonus-rule"]})}})}const eJ=["ops","platform","default-low-balance-threshold"];function y3s(){return Ue({queryKey:eJ,queryFn:()=>ve.request("/ops/platform-settings/default-low-balance-threshold").then(e=>e.value),retry:1})}function v3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/platform-settings/default-low-balance-threshold",{method:"PATCH",body:{value:t},idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:eJ})}})}function b3s(){return Ue({queryKey:["ops","growth","discount-rule"],queryFn:()=>ve.request("/ops/growth/rules/discount").then(e=>e.rule),retry:1})}function x3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/rules/discount",{method:"PATCH",body:t,idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","discount-rule"]})}})}function $3s(){return Ue({queryKey:["ops","growth","topup-bonus-rule"],queryFn:()=>ve.request("/ops/growth/rules/topup-bonus").then(e=>e.rule),retry:1})}function w3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/rules/topup-bonus",{method:"PATCH",body:t,idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","topup-bonus-rule"]})}})}function k3s(e={}){const t=new URLSearchParams(Object.entries(e).filter(([,n])=>n)).toString();return Ue({queryKey:["ops","grants",e],queryFn:()=>ve.request(`/ops/growth/grants${t?`?${t}`:""}`),retry:1})}function C3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/coupon-batches",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>
968{e.invalidateQueries({queryKey:["ops","growth","coupon-batches"]})}})}function S3s(){return Ue({queryKey:["ops","growth","coupon-batches"],queryFn:()=>ve.request("/ops/growth/coupon-batches"),retry:1})}function A3s(e,t={}){return ll({queryKey:["ops","growth","coupon-codes",e,t],queryFn:({pageParam:n})=>{const a=new URLSearchParams;return e&&a.set("batchCode",e),t.status&&a.set("status",t.status),t.email&&a.set("email",t.email),n&&a.set("cursor",n),ve.request(`/ops/growth/coupon-codes?${a.toString()}`)},initialPageParam:null,getNextPageParam:n=>n.nextCursor,enabled:!!e,retry:1})}function T3s(e={}){return ll({queryKey:["ops","growth","shared-codes",e],queryFn:({pageParam:t})=>{const n=new URLSearchParams;e.status&&n.set("status",e.status),t&&n.set("cursor",t);const a=n.toString();return ve.request(`/ops/growth/shared-codes${a?`?${a}`:""}`)},initialPageParam:null,getNextPageParam:t=>t.nextCursor,retry:1})}function R3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/shared-codes",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","shared-codes"]})}})}function P3s(e){return ll({queryKey:["ops","growth","shared-code-payments",e],queryFn:({pageParam:t})=>{const n=new URLSearchParams;t&&n.set("cursor",t);const a=n.toString();return ve.request(`/ops/growth/shared-codes/${encodeURIComponent(e??"")}/payments${a?`?${a}`:""}`)},initialPageParam:null,getNextPageParam:t=>t.nextCursor,enabled:!!e,retry:1})}function tJ(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/growth/coupon-codes/${encodeURIComponent(t)}/disable`,{method:"POST",idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","shared-codes"]}),e.invalidateQueries({queryKey:["ops","growth","coupon-codes"]}),e.invalidateQueries({queryKey:["ops","growth","coupon-batches"]})}})}function _3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/redeem-batches",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","redeem-batches"]})}})}function j3s(){return ll({queryKey:["ops","growth","redeem-batches"],queryFn:({pageParam:e})=>{const t=new URLSearchParams;e&&t.set("cursor",e);const n=t.toString();return ve.request(`/ops/growth/redeem-batches${n?`?${n}`:""}`)},initialPageParam:null,getNextPageParam:e=>e.nextCursor,retry:1})}function N3s(e,t={}){return ll({queryKey:["ops","growth","redeem-codes",e,t],queryFn:({pageParam:n})=>{const a=new URLSearchParams;return e&&a.set("batchCode",e),t.status&&a.set("status",t.status),n&&a.set("cursor",n),ve.request(`/ops/growth/redeem-codes?${a.toString()}`)},initialPageParam:null,getNextPageParam:n=>n.nextCursor,enabled:!!e,retry:1})}function D3s(){return ke({mutationFn:e=>ve.request(`/ops/growth/redeem-batches/${encodeURIComponent(e)}/reveal`)})}function M3s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/growth/redeem-batches/${encodeURIComponent(t)}/disable`,{method:"POST",idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","redeem-batches"]}),e.invalidateQueries({queryKey:["ops","growth","redeem-codes"]})}})}function E3s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/growth/redeem-codes/${encodeURIComponent(t)}/reverse`,{method:"POST",idempotent:!0}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","growth","redeem-codes"]}),e.invalidateQueries({queryKey:["ops","growth","redeem-batches"]})}})}function I3s(){return Ue({queryKey:["ops","growth","referral-rule"],queryFn:()=>ve.request("/ops/growth/rules/referral").then(e=>e.rule),retry:1})}function O3s(){return Ue({queryKey:["ops","growth","referral-rule-versions"],queryFn:()=>ve.request("/ops/growth/rules/referral/versions").then(e=>e.versions),retry:1})}function nJ(e,t,n){const a=`/ops/growth/rules/referral/versions/${e}/${t}`;return n?`${a}?cursor=${encodeURIComponent(n)}`:a}function L3s(e){return ll({queryKey:["ops","growth","referral-version",e,"bindings"],queryFn:({pageParam:t})=>ve.request(nJ(e,"bindings",t)),initialPageParam:null,getNextPageParam:t=>t.nextCursor,enabled:e!=null,retry:1})}function U3s(e){return ll({queryKey:["ops","growth","referral-version",e,"cashback"],queryFn:({pageParam:t})=>ve.request(nJ(e,"cashback",t)),initialPageParam:null,getNextPageParam:t=>t.nextCursor,enabled:e!=null,retry:1})}function B3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/rules/referral",{method:"PATCH",body:t,idempotent:!0}),onSuccess:()=>
968{e.invalidateQueries({queryKey:["ops","growth","referral-rule"]}),e.invalidateQueries({queryKey:["ops","growth","referral-rule-versions"]})}})}function F3s(e){return Ue({queryKey:["ops","user",e,"referrals"],queryFn:()=>ve.request(`/ops/growth/users/${e}/referrals`),enabled:!!e,retry:1})}function z3s(e){return Ue({queryKey:["ops","user",e,"referral-events"],queryFn:()=>ve.request(`/ops/growth/users/${e}/referral-events`),enabled:!!e,retry:1})}const q3s=6e4;function H3s(e){const t=Math.floor(Date.now()/q3s);return["manual_grant",e.userPublicId,e.amount,e.kind??"bonus",e.referenceNo??"",t].join(":")}function V3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/grants/manual",{method:"POST",body:t,idempotencyKey:H3s(t)}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","user",n.userPublicId]}),e.invalidateQueries({queryKey:["ops","users"]}),e.invalidateQueries({queryKey:["ops","grants"]})}})}function K3s(){const{t:e}=W(),t=Te(),n=g3s(),a=h3s(),s=y3s(),r=v3s(),[i,c]=h.useState(!0),[d,m]=h.useState("5.0000"),[f,p]=h.useState("1");return h.useEffect(()=>{n.data&&(c(n.data.enabled),m(n.data.creditAmount))},[n.data]),h.useEffect(()=>{s.data!=null&&p(s.data)},[s.data]),o.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.signupBonus")}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.signupBonusDescription")})]}),n.data?o.jsx(Oe,{value:n.data.status,label:ct(n.data.status)}):null]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[o.jsx(Zn,{checked:i,onChange:y=>c(y.target.checked)}),o.jsx("span",{children:e("adminGrowth.signupBonusEnabled")})]}),o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.signupBonusAmount")}),o.jsx(ge,{type:"number",min:"0",step:"0.0001",inputMode:"decimal",value:d,onChange:y=>m(y.target.value)})]}),o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:()=>a.mutate({enabled:i,creditAmount:d.trim()||"0"}),disabled:n.isLoading||a.isPending||i&&!d.trim(),children:a.isPending?e("adminGrowth.saving"):e("adminGrowth.saveSignupBonus")}),n.data?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.currentSignupBonus",{amount:t.currency(Number(n.data.creditAmount))})}):null]}),n.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:n.error.message}):null,a.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:a.error.message}):null]}),o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.defaultLowBalanceThreshold",{defaultValue:"Default low-balance alert"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.defaultLowBalanceThresholdDescription",{defaultValue:"New users get an email low-balance alert at this threshold by default. Changing it only affects future signups, not existing wallets."})})]}),o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.defaultLowBalanceThresholdAmount",{defaultValue:"Threshold (USD)"})}),o.jsx(ge,{type:"number",min:"0",step:"0.0001",inputMode:"decimal",value:f,onChange:y=>p(y.target.value)})]}),o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:()=>r.mutate(f.trim()),disabled:s.isLoading||r.isPending||!f.trim(),children:r.isPending?e("adminGrowth.saving"):e("adminGrowth.saveDefaultLowBalanceThreshold",{defaultValue:"Save threshold"})}),s.data?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.currentDefaultLowBalanceThreshold",{defaultValue:"Current: {{amount}}",amount:t.currency(Number(s.data))})}):null]}),s.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:s.error.message}):null,r.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:r.error.message}):null]})]})}function bx({label:e,hint:t,options:n,selected:a,onToggle:s}){return o.jsxs("fieldset",{className:"grid gap-1.5",children:[o.jsx("legend",{className:"text-sm font-medium text-[color:var(--foreground)]",children:e}),o.jsx("div",{className:"flex flex-wrap gap-3",children:n.map(r=>o.jsxs("label",{className:"flex items-center gap-1.5 text-sm",children:[o.jsx(Zn,{checked:a.has(r.value),onChange:()=>s(r.value)}),r.label]},r.value))}),t?o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:t}):null]})}function Pu(e){const t=Object.entries(e).filter(([,a])=>a!==void 0&&a!==""),n=new URLSearchParams(t.map(([a,s])=>
968[a,String(s)])).toString();return n?`?${n}`:""}function Dy(e={}){return Ue({queryKey:["ops","campaigns","segments",e],queryFn:()=>ve.request(`/ops/campaigns/segments${Pu({limit:100,kind:e.kind,status:e.status})}`),retry:1})}function G3s(e){return Ue({queryKey:["ops","campaigns","segment-members",e],queryFn:()=>ve.request(`/ops/campaigns/segments/${e}/members${Pu({limit:100})}`),enabled:!!e,retry:1})}function W3s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/segments",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","segments"]})})}function Y3s(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/campaigns/segments/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","segments"]})})}function Q3s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/campaigns/segments/${t}`,{method:"DELETE"}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","segments"]})})}function X3s(){const e=Re();return ke({mutationFn:({publicId:t,userPublicIds:n})=>ve.request(`/ops/campaigns/segments/${t}/members`,{method:"POST",body:{userPublicIds:n},idempotent:!0}),onSuccess:(t,{publicId:n})=>{e.invalidateQueries({queryKey:["ops","campaigns","segment-members",n]}),e.invalidateQueries({queryKey:["ops","campaigns","segments"]})}})}function Z3s(){const e=Re();return ke({mutationFn:({publicId:t,userPublicId:n})=>ve.request(`/ops/campaigns/segments/${t}/members`,{method:"DELETE",body:{userPublicId:n}}),onSuccess:(t,{publicId:n})=>{e.invalidateQueries({queryKey:["ops","campaigns","segment-members",n]}),e.invalidateQueries({queryKey:["ops","campaigns","segments"]})}})}function J3s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/campaigns/segments/${t}/materialize`,{method:"POST",idempotent:!0}),onSuccess:(t,n)=>{e.invalidateQueries({queryKey:["ops","campaigns","segment-members",n]}),e.invalidateQueries({queryKey:["ops","campaigns","segments"]})}})}function eLs(){return ke({mutationFn:e=>ve.request("/ops/campaigns/segments/preview",{method:"POST",body:{rule:e}})})}function tLs(){return Ue({queryKey:["ops","campaigns","scopes"],queryFn:()=>ve.request(`/ops/campaigns/scopes${Pu({limit:100})}`),retry:1})}function nLs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/scopes",{method:"POST",body:{scopeType:"model_set",...t},idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","scopes"]})})}function aLs(e={}){return Ue({queryKey:["ops","campaigns","model-access",e],queryFn:()=>ve.request(`/ops/campaigns/model-access${Pu({limit:100,status:e.status})}`),retry:1})}function oLs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/model-access",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","model-access"]})})}function sLs(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/campaigns/model-access/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","model-access"]})})}function rLs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/campaigns/model-access/${t}`,{method:"DELETE"}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","model-access"]})})}function iLs(e={}){return Ue({queryKey:["ops","campaigns","discounts",e],queryFn:()=>ve.request(`/ops/campaigns/discounts${Pu({limit:100,status:e.status})}`),retry:1})}function lLs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/discounts",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","discounts"]})})}function aJ(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/campaigns/discounts/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","discounts"]})})}function cLs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/campaigns/discounts/${t}`,{method:"DELETE"}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","discounts"]})})}function dLs(e={}){return Ue({queryKey:["ops","campaigns","targeted-grants",e],queryFn:()=>ve.request(`/ops/campaigns/targeted-grants${Pu({limit:100,kind:e.kind,status:e.status})}`),retry:1})}function uLs(e){return Ue({queryKey:["ops","campaigns","targeted-grants","detail",e],queryFn:()=>ve.request(`/ops/campaigns/targeted-grants/${e}`).then(t=>t.batch),enabled:!!e,refetchInterval:t=>{const n=t.state.data?.status;return n==="pending"||n==="processing"?2e3:!1},retry:1})}function mLs(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/targeted-grants",{method:"POST",body:t}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","targeted-grants"]})})}function pLs(){const e=Re();return ke({mutationFn:({batchId:t,note:n})=>ve.request(`/ops/campaigns/targeted-grants/${t}/revoke`,{method:"POST",body:{note:n},idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","targeted-grants"]})})}function oJ(e){return e.trim().length<2?Promise.resolve([]):ve.request(`/ops/campaigns/users/search${Pu({q:e})}`).then(t=>t.items)}function fLs(e){return e.length===0?Promise.resolve({matched:[],unmatchedEmails:[]}):ve.request("/ops/campaigns/users/lookup",{method:"POST",body:{emails:e}})}const Ym="__all__";function da(e){return e instanceof rn?`${e.code}: ${e.message}`:e instanceof Error?e.message:String(e)}function xN({label:e,value:t,onChange:n,hint:a,includeBlank:s,blankLabel:r}){const i=Ru(),c=h.useMemo(()=>[...i.data?.items??[]].sort((d,m)=>d.fullSlug.localeCompare(m.fullSlug)),[i.data]);return o.jsx(De,{label:e,hint:a,children:o.jsxs(Ms,{value:t===""&&s?Ym:t,onValueChange:d=>n(d===Ym?"":d),children:[o.jsx(as,{className:"min-w-0",children:o.jsx(Es,{placeholder:r??""})}),o.jsxs(os,{children:[s?o.jsx(zn,{value:Ym,children:r??" "}):null,c.map(d=>o.jsx(zn,{value:d.publicId,textClassName:"whitespace-normal [overflow-wrap:anywhere] [word-break:break-all]",children:d.fullSlug},d.publicId))]})]})})}function W0({label:e,value:t,onChange:n,allowAll:a,allLabel:s,hint:r}){const{t:i}=W(),d=Dy({status:"active"}).data?.items??[],m=s??i("adminCampaigns.allUsers");return o.jsx(De,{label:e,hint:r,children:o.jsxs(Ms,{value:t===""&&a?Ym:t,onValueChange:f=>n(f===Ym?"":f),children:[o.jsx(as,{className:"min-w-0",children:o.jsx(Es,{placeholder:a?m:""})}),o.jsxs(os,{children:[a?o.jsx(zn,{value:Ym,children:m}):null,d.map(f=>o.jsx(zn,{value:f.publicId,children:gLs(f)},f.publicId))]})]})})}function gLs(e){return`${e.name} (${e.memberCount})`}const dT="__general__";function hLs(e){const t=e.percent!=null;return{min:String(e.min??""),rewardType:t?"percent":"bonus",rewardValue:String((t?e.percent:e.bonus)??""),scopePublicId:e.scopePublicId??"",expiryDays:e.expiryDays!=null?String(e.expiryDays):""}}function yLs(e){const t=Number(e.rewardValue);return{min:Number(e.min),...e.rewardType==="percent"?{percent:t}:{bonus:t},...e.scopePublicId?{scopePublicId:e.scopePublicId}:{},...e.expiryDays.trim()?{expiryDays:Number(e.expiryDays)}:{}}}function vLs(){return{min:"",rewardType:"bonus",rewardValue:"",scopePublicId:"",expiryDays:""}}function bLs(){const{t:e}=W(),t=$3s(),n=w3s(),a=tLs(),[s,r]=h.useState(!1),[i,c]=h.useState([]),[d,m]=h.useState(""),[f,p]=h.useState(""),[y,v]=h.useState(!0),[$,x]=h.useState(null);if(t.data&&t.data.updatedAt!==$){x(t.data.updatedAt),r(t.data.status==="active");const R=t.data.conditions??{};c((R.tiers??[]).map(hLs)),m(R.min_topup_usd!=null?String(R.min_topup_usd):""),p(R.max_bonus_per_user_usd!=null?String(R.max_bonus_per_user_usd):""),v(R.exclude_risky??!0)}const w=h.useMemo(()=>(a.data?.items??[]).filter(R=>R.scopeType==="model_set"&&R.status==="active"),[a.data]);function S(R,_){c(P=>P.map((j,N)=>N===R?{...j,..._}:j))}function k(R){c(_=>_.filter((P,j)=>j!==R))}async function T(){try{await n.mutateAsync({enabled:s,tiers:i.map(yLs),minTopupUsd:d.trim()?Number(d):null,maxBonusPerUserUsd:f.trim()?Number(f):null,excludeRisky:y}),ie.success(e("adminGrowth.topup.saved",{defaultValue:"Top-up bonus saved"}))}catch(R){ie.error(da(R))}}return o.jsxs("div",{className:"grid gap-4",children:[o.jsxs(Ee,{className:"space-y-4 p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.topup.title",{defaultValue:"Top-up bonus"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.topup.description",{defaultValue:"Reward bigger top-ups with bonus credit. Each tier can grant general credit or credit restricted to a model group."})})]}),t.data?o.jsx(Oe,{value:t.data.status,label:ct(t.data.status)}):null]}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.topup.enabled",{defaultValue:"Enable top-up bonus"})}),o.jsx(js,{checked:s,onCheckedChange:r})]}),o.jsxs(sn,{title:e("adminGrowth.topup.tiers",{defaultValue:"Bonus tiers"}),hint:e("adminGrowth.topup.tiersHint",{defaultValue:"Top-up matches the highest tier whose threshold it reaches. Restricted credit only applies to synchronous text/image calls â not video or async image jobs."}),children:[i.length===0?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.topup.noTiers",{defaultValue:"No tiers yet. Add one to start rewarding top-ups."})}):null,i.map((R,_)=>o.jsx(Ee,{className:"grid gap-4 bg-[color:var(--muted)] p-4",children:o.jsxs("div",{className:"flex items-start justify-between gap-3",children:[o.jsxs("div",{className:"grid flex-1 gap-4 md:grid-cols-2",children:[o.jsx(De,{label:e("adminGrowth.topup.min",{defaultValue:"Min top-up (USD)"}),children:o.jsx(ge,{type:"number",min:"0",step:"0.01",inputMode:"decimal",value:R.min,onChange:P=>S(_,{min:P.target.value}),placeholder:"50"})}),o.jsx(De,{label:e("adminGrowth.topup.rewardType",{defaultValue:"Reward"}),children:o.jsx(el,{value:R.rewardType,onValueChange:P=>S(_,{rewardType:P}),options:[{value:"bonus",label:e("adminGrowth.topup.bonus",{defaultValue:"Fixed (USD)"})},{value:"percent",label:e("adminGrowth.topup.percent",{defaultValue:"Percent (%)"})}]})}),o.jsx(De,{label:R.rewardType==="percent"?e("adminGrowth.topup.rewardPercent",{defaultValue:"Percent of top-up (%)"}):e("adminGrowth.topup.rewardBonus",{defaultValue:"Bonus amount (USD)"}),children:o.jsx(ge,{type:"number",min:"0",step:R.rewardType==="percent"?"1":"0.01",inputMode:"decimal",value:R.rewardValue,onChange:P=>S(_,{rewardValue:P.target.value}),placeholder:R.rewardType==="percent"?"25":"5"})}),o.jsx(De,{label:e("adminGrowth.topup.expiryDays",{defaultValue:"Expiry (days, blank = never)"}),children:o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:R.expiryDays,onChange:P=>S(_,{expiryDays:P.target.value}),placeholder:e("adminGrowth.topup.noExpiry",{defaultValue:"Never"})})}),o.jsx(De,{label:e("adminGrowth.topup.scope",{defaultValue:"Credit scope"}),hint:e("adminGrowth.topup.scopeHint",{defaultValue:"General credit works on any model; a model group restricts the bonus to those models."}),className:"md:col-span-2",children:o.jsxs(Ms,{value:R.scopePublicId===""?dT:R.scopePublicId,onValueChange:P=>S(_,{scopePublicId:P===dT?"":P}),children:[o.jsx(as,{children:o.jsx(Es,{})}),o.jsxs(os,{children:[o.jsx(zn,{value:dT,children:e("adminGrowth.topup.scopeGeneral",{defaultValue:"General (any model)"})}),w.map(P=>o.jsx(zn,{value:P.publicId,children:xLs(P)},P.publicId))]})]})})]}),o.jsx(Aa,{"aria-label":e("adminGrowth.topup.removeTier",{defaultValue:"Remove tier"}),variant:"ghost",onClick:()=>k(_),children:o.jsx(Sc,{className:"size-4"})})]})},_)),o.jsx("div",{children:o.jsxs(K,{variant:"outline",onClick:()=>c(R=>[...R,vLs()]),children:[o.jsx(wr,{className:"size-4"}),e("adminGrowth.topup.addTier",{defaultValue:"Add tier"})]})})]}),o.jsxs(sn,{title:e("adminGrowth.topup.antifraud",{defaultValue:"Abuse guards"}),contentClassName:"md:grid-cols-2",children:[o.jsx(De,{label:e("adminGrowth.topup.minTopup",{defaultValue:"Min top-up to qualify (USD, blank = none)"}),children:o.jsx(ge,{type:"number",min:"0",step:"0.01",inputMode:"decimal",value:d,onChange:R=>m(R.target.value),placeholder:e("adminGrowth.topup.none",{defaultValue:"None"})})}),o.jsx(De,{label:e("adminGrowth.topup.maxBonusPerUser",{defaultValue:"Max bonus per user (USD, blank = none)"}),children:o.jsx(ge,{type:"number",min:"0",step:"0.01",inputMode:"decimal",value:f,onChange:R=>p(R.target.value),placeholder:e("adminGrowth.topup.none",{defaultValue:"None"})})}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium md:col-span-2",children:[o.jsx("span",{children:e("adminGrowth.topup.excludeRisky",{defaultValue:"Exclude watchlisted / blocked users"})}),o.jsx(js,{checked:y,onCheckedChange:v})]})]}),o.jsx("div",{className:"flex items-center gap-2 pt-1",children:o.jsx(K,{onClick:T,disabled:t.isLoading||n.isPending,children:n.isPending?e("adminGrowth.saving"):e("adminGrowth.topup.save",{defaultValue:"Save top-up bonus"})})}),t.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:t.error.message}):null,n.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:n.error.message}):null]}),o.jsx($Ls,{})]})}function xLs(e){const t=e.definition?.model_ids,n=Array.isArray(t)?t.length:0,a=e.name?.trim()||e.publicId;return n>0?`${a} (${n})`:a}function $Ls(){const{t:e}=W(),t=Ru(),n=nLs(),[a,s]=h.useState(""),[r,i]=h.useState([]),c=h.useMemo(()=>[...t.data?.items??[]].sort((m,f)=>m.fullSlug.localeCompare(f.fullSlug)).map(m=>({value:m.publicId,label:m.fullSlug})),[t.data]);async function d(){try{await n.mutateAsync({modelPublicIds:r,name:a.trim()||void 0}),ie.success(e("adminGrowth.topup.scopeCreated",{defaultValue:"Model group created"})),s(""),i([])}catch(m){ie.error(da(m))}}return o.jsxs(Ee,{className:"space-y-4 p-5",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.topup.createScope",{defaultValue:"New restricted model group"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.topup.createScopeDescription",{defaultValue:"Pick the models a restricted bonus may be spent on, then reference this group from a tier above."})})]}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:e("adminGrowth.topup.scopeName",{defaultValue:"Group name"}),children:o.jsx(ge,{value:a,onChange:m=>s(m.target.value),placeholder:e("adminGrowth.topup.scopeNamePlaceholder",{defaultValue:"High-margin models"})})}),o.jsx(De,{label:e("adminGrowth.topup.scopeModels",{defaultValue:"Models"}),children:o.jsx(ly,{value:r,onChange:i,options:c,allLabel:e("adminGrowth.topup.pickModels",{defaultValue:"Pick models"}),placeholder:e("adminGrowth.topup.pickModels",{defaultValue:"Pick models"}),triggerLabel:m=>m.length===0?e("adminGrowth.topup.pickModels",{defaultValue:"Pick models"}):e("adminGrowth.topup.nModels",{defaultValue:"{{count}} models",count:m.length})})})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(K,{onClick:d,disabled:r.length===0||n.isPending,children:n.isPending?e("adminGrowth.saving"):e("adminGrowth.topup.createScopeButton",{defaultValue:"Create group"})}),r.length>0?o.jsx(Xt,{variant:"outline",children:e("adminGrowth.topup.nModels",{defaultValue:"{{count}} models",count:r.length})}):null]})]})}function wLs(e){if(e==null)return"";const t=String(e),n=/^[=+\-@\t\r]/.test(t)?`'${t}`:t;return/[",\n\r]/.test(n)?`"${n.replaceAll('"','""')}"`:n}function My(e,t){const n=t.map(i=>i.map(wLs).join(",")).join(` 969`),a=new Blob([n],{type:"text/csv;charset=utf-8"}),s=URL.createObjectURL(a),r=document.createElement("a");r.href=s,r.download=e,r.click(),URL.revokeObjectURL(s)}function kLs(e,t){return!e||t==null?"":e==="bonus_percent"?`+${t}%`:e==="percent"?`${t}%`:`$${t}`}function CLs(e,t){const n=[t("adminGrowth.csv.code"),t("adminGrowth.csv.discount"),t("adminGrowth.csv.redeemed"),t("adminGrowth.csv.cap"),t("adminGrowth.csv.perUser"),t("adminGrowth.csv.status"),t("adminGrowth.csv.expiresAt"),t("adminGrowth.csv.batch"),t("adminGrowth.csv.createdAt")],a=e.map(s=>[`····${s.codeSuffix??""}`,kLs(s.discountType,s.di
969scountValue),s.redeemed,s.maxRedemptions,s.maxRedemptionsPerUser,s.status,s.expiresAt??"",s.batchCode??"",s.createdAt]);My(`onehop-shared-codes-${new Date().toISOString().slice(0,10)}.csv`,[n,...a])}function SLs(e,t,n){const a=[n("adminGrowth.csv.email"),n("adminGrowth.csv.paid"),n("adminGrowth.csv.credited"),n("adminGrowth.csv.bonus"),n("adminGrowth.csv.paidAt")],s=t.map(r=>[r.email??"",r.paidUsd,r.creditedUsd,r.bonusUsd??"",r.paidAt]);My(`onehop-shared-code-payments-${e}-${new Date().toISOString().slice(0,10)}.csv`,[a,...s])}function ALs(e,t,n){const a=[n("adminGrowth.csv.code"),n("adminGrowth.csv.status"),n("adminGrowth.csv.redeemedBy"),n("adminGrowth.csv.redeemedAt"),n("adminGrowth.csv.paid"),n("adminGrowth.csv.discountAmount")],s=t.map(r=>[`····${r.codeSuffix??""}`,r.status,r.redeemedByEmail??"",r.redeemedAt??"",r.paymentAmount??"",r.discountAmount??""]);My(`onehop-coupon-codes-${e}-${new Date().toISOString().slice(0,10)}.csv`,[a,...s])}const TLs="discount_default";function sJ(e,t,n){return!e||t==null?"â":e==="bonus_percent"?`+${t}%`:e==="percent"?`${t}%`:n.currency(Number(t))}function RLs(e){return e.status==="disabled"||e.disabledAt?"disabled":e.expiresAt&&new Date(e.expiresAt).getTime()<Date.now()?"expired":e.redeemed>=e.maxRedemptions?"exhausted":e.status}function PLs(){return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[o.jsx(_Ls,{}),o.jsx(jLs,{})]}),o.jsx(MLs,{}),o.jsx(ILs,{})]})}function _Ls(){const{t:e}=W(),t=Te(),n=b3s(),a=x3s(),[s,r]=h.useState(!0),[i,c]=h.useState("fixed_usd"),[d,m]=h.useState("2");h.useEffect(()=>{n.data&&(r(n.data.status==="active"),n.data.discountType&&c(n.data.discountType),n.data.discountValue!=null&&m(n.data.discountValue))},[n.data]);const f=n.data&&n.data.discountValue!=null?sJ(n.data.discountType,n.data.discountValue,t):null;return o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.discountRule")}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.discountRuleDescription")})]}),n.data?o.jsx(Oe,{value:n.data.status,label:ct(n.data.status)}):null]}),f?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.discountEffective",{defaultValue:"In effect: {{state}} · {{value}} off",state:n.data?.status==="active"?e("adminGrowth.stateEnabled"):e("adminGrowth.stateDisabled"),value:f})}):null,o.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[o.jsx(Zn,{checked:s,onChange:p=>r(p.target.checked)}),o.jsx("span",{children:e("adminGrowth.discountEnabled")})]}),o.jsxs(ca,{label:e("adminGrowth.discountType"),value:i,onChange:p=>c(p.target.value),children:[o.jsx("option",{value:"fixed_usd",children:e("adminGrowth.discountFixed")}),o.jsx("option",{value:"percent",children:e("adminGrowth.discountPercent")})]}),o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e(i==="percent"?"adminGrowth.discountValuePercent":"adminGrowth.discountValueFixed")}),o.jsx(ge,{type:"number",min:"0",step:"0.0001",inputMode:"decimal",value:d,onChange:p=>m(p.target.value)})]}),o.jsx(K,{className:"w-full sm:w-auto",onClick:()=>a.mutate({enabled:s,discountType:i,discountValue:d.trim()||"0"}),disabled:n.isLoading||a.isPending||s&&!d.trim(),children:a.isPending?e("adminGrowth.saving"):e("adminGrowth.saveDiscount")}),n.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:n.error.message}):null,a.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:a.error.message}):null]})}function jLs(){const{t:e}=W(),[t,n]=h.useState("shared");return o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.createIssuance",{defaultValue:"Create codes"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.createIssuanceDescription",{defaultValue:"A shared code is one code many users can redeem up to N times; a unique batch is N one-time codes."})})]}),o.jsxs(ca,{label:e("adminGrowth.formLabel",{defaultValue:"Code type"}),value:t,onChange:a=>n(a.target.value),children:[o.jsx("option",{value:"shared",children:e("adminGrowth.formShared",{defaultValue:"Single shared code"})}),o.jsx("option",{value:"unique",children:e("adminGrowth.formUniqueBatch",{defaultValue:"Unique code batch"})})]}),t==="shared"?o.jsx(NLs,{}):o.jsx(DLs,{})]})}function NLs(){const{t:e}=W(),t=R3s(),[n,a]=h.useState(""),[s,r]=h.useState("percent"),[i,c]=h.useState("10"),[d,m]=h.useState("100"),[f,p]=h.useState("1"),[y,v]=h.useState(""),[$,x]=h.useState(""),[w,S]=h.useState(""),[k,T]=h.useState(!1),R=t.data?.code??null;async function _(){if(R)try{await navigator.clipboard.writeText(R),T(!0),setTimeout(()=>T(!1),2e3),ie.success(e("common.copied",{defaultValue:"Copied"}))}catch{ie.error(e("common.copyFailed",{defaultValue:"Failed to copy"}))}}function P(){T(!1),t.mutate({code:n.trim()||null,discountType:s,discountValue:i.trim()||"0",maxRedemptions:Number(d)||0,maxRedemptionsPerUser:Number(f)||1,expiresAt:y?new Date(y).toISOString():null,batchCode:$.trim()||null,bonusExpiryDays:s==="bonus_percent"&&w.trim()?Number(w):null})}return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.sharedCodeText",{defaultValue:"Code text (leave blank for random)"})}),o.jsx(ge,{value:n,onChange:j=>a(j.target.value.toUpperCase()),placeholder:e("adminGrowth.sharedCodeRandomHint",{defaultValue:"e.g. WELCOME100"})})]}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsxs(ca,{label:e("adminGrowth.discountType"),value:s,onChange:j=>r(j.target.value),children:[o.jsx("option",{value:"fixed_usd",children:e("adminGrowth.discountFixed")}),o.jsx("option",{value:"percent",children:e("adminGrowth.discountPercent")}),o.jsx("option",{value:"bonus_percent",children:e("adminGrowth.discountTypeBonusPercent",{defaultValue:"Bonus % on top-up"})})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:s==="fixed_usd"?e("adminGrowth.discountValueFixed"):s==="percent"?e("adminGrowth.discountValuePercent"):e("adminGrowth.discountValueBonusPercent",{defaultValue:"Bonus (%)"})}),o.jsx(ge,{type:"number",min:"0",step:"0.0001",inputMode:"decimal",value:i,onChange:j=>c(j.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.sharedMaxRedemptions",{defaultValue:"Total redemptions (N)"})}),o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:d,onChange:j=>m(j.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.sharedPerUser",{defaultValue:"Per user"})}),o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:f,onChange:j=>p(j.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.expiresAt",{defaultValue:"Expires at (optional)"})}),o.jsx(ge,{type:"datetime-local",value:y,onChange:j=>v(j.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.batchCode")}),o.jsx(ge,{value:$,onChange:j=>x(j.target.value),placeholder:e("adminGrowth.batchCodeOptional",{defaultValue:"optional group"})})]}),s==="bonus_percent"?o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.bonusExpiryDays",{defaultValue:"Bonus validity (days, optional)"})}),o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:w,onChange:j=>S(j.target.value),placeholder:e("adminGrowth.bonusExpiryDaysHint",{defaultValue:"blank = never expires"})})]}):null]}),o.jsx(K,{variant:"secondary",className:"w-full sm:w-auto",onClick:P,disabled:t.isPending||!i.trim()||!d.trim(),children:t.isPending?e("adminGrowth.creating"):e("adminGrowth.createSharedCode",{defaultValue:"Create shared code"})}),R?o.jsxs("div",{className:"rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/30 p-3",children:[o.jsx("p",{className:"text-sm font-medium",children:e("adminGrowth.sharedCodeCreated",{defaultValue:"Shared code created"})}),o.jsxs("div",{className:"mt-2 flex items-center justify-between gap-3",children:[o.jsx("code",{className:"break-all font-mono text-sm font-semibold",children:R}),o.jsxs(K,{variant:"outline",size:"sm",onClick:_,children:[k?o.jsx(cy,{className:"size-4"}):o.jsx(Ow,{className:"size-4"}),e(k?"adminGrowth.copied":"adminGrowth.copyAll")]})]})]}):null,t.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:t.error.message}):null]})}function DLs(){const{t:e}=W(),t=C3s(),[n,a]=h.useState("10"),[s,r]=h.useState("ops-batch"),[i,c]=h.useState(!1),[d,m]=h.useState("fixed_usd"),[f,p]=h.useState("2"),[y,v]=h.useState(!1),$=t.data?.codes??[];async function x(){if($.length!==0)try{await navigator.clipboard.writeText($.join(` 970`)),v(!0),setTimeout(()=>v(!1),2e3),ie.success(e("common.copied",{defaultValue:"Copied"}))}catch{ie.error(e("common.copyFailed",{defaultValue:"Failed to copy"}))}}function w(){v(!1),t.mutate({ruleCode:TLs,batchCode:s,count:Number(n),...i?{discountType:d,discountValue:f.trim()||"0"}:{}})}return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(ca,{label:e("adminGrowth.count"),value:n,onChange:S=>a(S.target.value),children:$hs.map(S=>o.jsx("option",{value:S.value,children:S.label},S.value))}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.batchCode")}),o.jsx(ge,{"aria-label":e("adminGrowth.batchCode"),value:s,onChange:S=>r(S.target.value)})]})]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[o.jsx(Zn,{checked:i,onChange:S=>c(S.target.checked)}),o.jsx("span",{children:e("adminGrowth.batchOwnDiscount",{defaultValue:"Use a discount for this batch (else the rule above)"})})]}),i?o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsxs(ca,{label:e("adminGrowth.discountType"),value:d,onChange:S=>m(S.target.value),children:[o.jsx("option",{value:"fixed_usd",children:e("adminGrowth.discountFixed")}),o.jsx("option",{value:"percent",children:e("adminGrowth.discountPercent")})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e(d==="percent"?"adminGrowth.discountValuePercent":"adminGrowth.discountValueFixed")}),o.jsx(ge,{type:"number",min:"0",step:"0.0001",inputMode:"decimal",value:f,onChange:S=>p(S.target.value)})]})]}):null,o.jsx(K,{variant:"secondary",className:"w-full sm:w-auto",onClick:w,disabled:t.isPending||!s.trim(),children:t.isPending?e("adminGrowth.creating"):e("adminGrowth.createBatch")}),$.length>0?o.jsxs("div",{className:"rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/30 p-3",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium",children:e("adminGrowth.codesCreated",{count:$.length})}),o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.batch",{code:s})})]}),o.jsxs(K,{variant:"outline",size:"sm",onClick:x,children:[y?o.jsx(cy,{className:"size-4"}):o.jsx(Ow,{className:"size-4"}),e(y?"adminGrowth.copied":"adminGrowth.copyAll")]})]}),o.jsx("div",{className:"mt-3 grid max-h-56 gap-1 overflow-auto rounded border border-[color:var(--border)] bg-[color:var(--background)] p-2",children:$.map(S=>o.jsx("code",{className:"break-all text-xs",children:S},S))})]}):null,t.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:t.error.message}):null]})}function MLs(){const{t:e}=W(),t=Te(),{params:n,patch:a}=Mt(),s=Pe(n,"scStatus"),r=Pe(n,"scPay"),i=T3s({status:s||void 0}),c=tJ(),d=h.useMemo(()=>i.data?.pages.flatMap(y=>y.items)??[],[i.data]),m=d.find(y=>y.publicId===r)??null;async function f(y){if(await zt({title:e("adminGrowth.disableCodeConfirmTitle",{defaultValue:"Disable this code?"}),message:e("adminGrowth.disableCodeConfirmMessage",{defaultValue:"New checkouts are blocked immediately. Orders already in checkout can still complete."}),confirmText:e("adminGrowth.disableCode",{defaultValue:"Disable"}),variant:"destructive"}))try{await c.mutateAsync(y.publicId),ie.success(e("adminGrowth.codeDisabled",{defaultValue:"Code disabled"}))}catch($){ie.error($.message)}}const p=[{header:e("adminGrowth.code"),cell:y=>o.jsxs("code",{className:"font-mono text-xs",children:["····",y.codeSuffix??""]}),mobileValue:"break-all"},{header:e("adminGrowth.discount"),cell:y=>sJ(y.discountType,y.discountValue,t)},{header:e("adminGrowth.colRedeemedTotal",{defaultValue:"Used / cap"}
970),align:"right",cell:y=>o.jsxs("span",{className:"tabular-nums",children:[y.redeemed,"/",y.maxRedemptions]})},{header:e("adminGrowth.colPerUser",{defaultValue:"Per user"}),align:"right",cell:y=>o.jsx("span",{className:"tabular-nums",children:y.maxRedemptionsPerUser})},{header:e("adminGrowth.colExpiry",{defaultValue:"Expires"}),cell:y=>y.expiresAt?t.dateTime(y.expiresAt):"â"},{header:e("adminGrowth.status"),cell:y=>o.jsx(Oe,{value:RLs(y)})},{header:"",sticky:"right",cell:y=>o.jsxs("div",{className:"flex items-center justify-end gap-1",children:[o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>a({scPay:r===y.publicId?void 0:y.publicId}),children:e("adminGrowth.sharedPayments.view",{defaultValue:"Payments"})}),y.status==="disabled"?null:o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>f(y),children:e("adminGrowth.disableCode",{defaultValue:"Disable"})})]})}];return o.jsxs(Ee,{children:[o.jsxs("div",{className:"flex flex-col gap-3 border-b border-[color:var(--border)] px-5 py-4 sm:flex-row sm:items-end sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.sharedCodesList",{defaultValue:"Shared codes"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.sharedCodesListDescription",{defaultValue:"One code, many users. Used count tracks paid redemptions."})})]}),o.jsxs("div",{className:"flex items-end gap-2",children:[o.jsx(Ze,{label:e("adminGrowth.statusFilter",{defaultValue:"Status"}),value:s,options:whs,onChange:y=>a({scStatus:y||void 0})}),o.jsxs(K,{variant:"outline",size:"sm",disabled:d.length===0,onClick:()=>CLs(d,e),children:[o.jsx($u,{className:"size-4"}),e("adminGrowth.exportCsv",{defaultValue:"CSV"})]})]})]}),o.jsxs("div",{className:"p-3",children:[o.jsx(Pt,{label:e("adminGrowth.sharedCodesList",{defaultValue:"Shared codes"}),rows:d,columns:p,isLoading:i.isLoading,error:i.error,emptyTitle:e("adminGrowth.noSharedCodes",{defaultValue:"No shared codes yet"})}),i.hasNextPage?o.jsx("div",{className:"mt-3 text-center",children:o.jsx(K,{variant:"outline",size:"sm",onClick:()=>i.fetchNextPage(),disabled:i.isFetchingNextPage,children:e("adminGrowth.loadMore")})}):null]}),m?o.jsx(ELs,{code:m}):null]})}function ELs({code:e}){const{t}=W(),n=Te(),a=P3s(e.publicId),s=h.useMemo(()=>a.data?.pages.flatMap(c=>c.items)??[],[a.data]),r=a.data?.pages[0]?.summary??null,i=[{header:t("adminGrowth.sharedPayments.email",{defaultValue:"User"}),cell:c=>c.email??"â",mobileValue:"break-all"},{header:t("adminGrowth.paid"),align:"right",cell:c=>o.jsx("span",{className:"tabular-nums",children:n.currency(Number(c.paidUsd))})},{header:t("adminGrowth.sharedPayments.credited",{defaultValue:"Credited"}),align:"right",cell:c=>o.jsx("span",{className:"tabular-nums",children:n.currency(Number(c.creditedUsd))})},{header:t("adminGrowth.sharedPayments.bonus",{defaultValue:"Bonus"}),align:"right",cell:c=>o.jsx("span",{className:"tabular-nums",children:c.bonusUsd!=null&&Number(c.bonusUsd)>0?`+${n.currency(Number(c.bonusUsd))}`:"â"})},{header:t("adminGrowth.time"),cell:c=>n.dateTime(c.paidAt)}];return o.jsxs("div",{className:"border-t border-[color:var(--border)] bg-[color:var(--muted)]/20 p-3",children:[o.jsxs("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("p",{className:"text-sm font-medium",children:t("adminGrowth.sharedPayments.title",{defaultValue:"Payments via ····{{code}}",code:e.codeSuffix??""})}),r?o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:t("adminGrowth.sharedPayments.summary",{defaultValue:"{{count}} payments · {{users}} users · {{paid}} paid · {{bonus}} bonus granted",count:r.paidCount,users:r.uniqueUsers,paid:n.currency(Number(r.totalPaidUsd)),bonus:n.currency(Number(r.totalBonusUsd))})}):null]}),o.jsxs(K,{variant:"outline",size:"sm",disabled:s.length===0,onClick:()=>SLs(e.codeSuffix??e.publicId,s,t),children:[o.jsx($u,{className:"size-4"}),t("adminGrowth.exportCsv",{defaultValue:"CSV"})]})]}),o.jsx(Pt,{label:t("adminGrowth.sharedPayments.title",{defaultValue:"Payments via ····{{code}}",code:e.codeSuffix??""}),rows:s.map(c=>({...c,publicId:c.intentPublicId})),columns:i,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminGrowth.sharedPayments.empty",{defaultValue:"No payments through this code yet"})}),a.hasNextPage?o.jsx("div",{className:"mt-3 text-center",children:o.jsx(K,{variant:"outline",size:"sm",onClick:()=>a.fetchNextPage(),disabled:a.isFetchingNextPage,children:t("adminGrowth.loadMore")})}):null]})}function ILs(){const{t:e}=W(),t=Te(),{params:n,patch:a}=Mt(),s=Pe(n,"batchCode"),r=S3s(),i=h.useMemo(()=>(r.data?.items??[]).map(d=>({...d,publicId:d.batchCode})),[r.data]),c=[{header:e("adminGrowth.batchCode"),cell:d=>o.jsx("span",{className:"font-medium",children:d.batchCode}),mobileValue:"break-all"},{header:e("adminGrowth.batchTotal"),align:"right",cell:d=>o.jsx("span",{className:"tabular-nums",children:d.total})},{header:e("adminGrowth.batchRedeemed"),align:"right",cell:d=>o.jsx("span",{className:"tabular-nums",children:d.redeemed})},{header:e("adminGrowth.batchReserved"),align:"right",cell:d=>o.jsx("span",{className:"tabular-nums",children:d.reserved})},{header:e("adminGrowth.batchActive"),align:"right",cell:d=>o.jsx("span",{className:"tabular-nums",children:d.active})},{header:e("adminGrowth.time"),cell:d=>t.dateTime(d.createdAt)}];return o.jsxs(Ee,{children:[o.jsxs("div",{className:"border-b border-[color:var(--border)] px-5 py-4",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.couponTrace")}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.couponTraceDescription")})]}),o.jsx("div",{className:"p-3",children:o.jsx(Pt,{label:e("adminGrowth.couponTrace"),rows:i,columns:c,isLoading:r.isLoading,error:r.error,emptyTitle:e("adminGrowth.noBatches"),onRowClick:d=>a({batchCode:s===d.batchCode?void 0:d.batchCode})})}),s?o.jsx(OLs,{batchCode:s}):null]})}function OLs({batchCode:e}){const{t}=W(),n=Te(),{params:a,patch:s}=Mt(),r=Pe(a,"ccStatus"),i=Pe(a,"ccEmail"),c=A3s(e,{status:r||void 0,email:i||void 0}),d=tJ(),m=h.useMemo(()=>c.data?.pages.flatMap(y=>y.items)??[],[c.data]);async function f(y){if(await zt({title:t("adminGrowth.disableCodeConfirmTitle",{defaultValue:"Disable this code?"}),message:t("adminGrowth.disableCodeConfirmMessage",{defaultValue:"New checkouts are blocked immediately. Orders already in checkout can still complete."}),confirmText:t("adminGrowth.disableCode",{defaultValue:"Disable"}),variant:"destructive"}))try{await d.mutateAsync(y.publicId),ie.success(t("adminGrowth.codeDisabled",{defaultValue:"Code disabled"}))}catch($){ie.error($.message)}}const p=[{header:t("adminGrowth.code"),cell:y=>o.jsxs("code",{className:"font-mono text-xs",children:["····",y.codeSuffix??""]}),mobileValue:"break-all"},{header:t("adminGrowth.status"),cell:y=>o.jsx(Oe,{value:y.status,label:ct(y.status)})},{header:t("adminGrowth.redeemedBy"),cell:y=>y.redeemedByEmail??"â",mobileValue:"break-all"},{header:t("adminGrowth.redeemedAt"),cell:y=>y.redeemedAt?n.dateTime(y.redeemedAt):"â"},{header:t("adminGrowth.paid"),align:"right",cell:y=>y.paymentAmount!=null?n.currency(Number(y.paymentAmount)):"â"},{header:t("adminGrowth.discount"),align:"right",cell:y=>y.discountAmount!=null?n.currency(Number(y.discountAmount)):"â"},{header:"",sticky:"right",cell:y=>y.status==="disabled"||y.status==="redeemed"?null:o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>f(y),children:t("adminGrowth.disableCode",{defaultValue:"Disable"})})}];return o.jsxs("div",{className:"border-t border-[color:var(--border)] bg-[color:var(--muted)]/20 p-3",children:[o.jsxs("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between",children:[o.jsx("p",{className:"text-sm font-medium",children:t("adminGrowth.codesInBatch",{code:e})}),o.jsxs("div",{className:"flex items-end gap-2",children:[o.jsx(Ze,{label:t("adminGrowth.statusFilter",{defaultValue:"Status"}),value:r,options:khs,onChange:y=>s({ccStatus:y||void 0})}),o.jsxs("label",{className:"grid gap-1.5",children:[o.jsx("span",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:t("adminGrowth.filterByEmail",{defaultValue:"Email"})}),o.jsx(ge,{className:"h-9 w-40",value:i,onChange:y=>s({ccEmail:y.target.value||void 0}),placeholder:t("adminGrowth.filterByEmail",{defaultValue:"Email"})})]}),o.jsxs(K,{variant:"outline",size:"sm",disabled:m.length===0,onClick:()=>ALs(e,m,t),children:[o.jsx($u,{className:"size-4"}),t("adminGrowth.exportCsv",{defaultValue:"CSV"})]})]})]}),o.jsx(Pt,{label:t("adminGrowth.codesInBatch",{code:e}),rows:m,columns:p,isLoading:c.isLoading,error:c.error,emptyTitle:t("adminGrowth.noCodes")}),c.hasNextPage?o.jsx("div",{className:"mt-3 text-center",children:o.jsx(K,{variant:"outline",size:"sm",onClick:()=>c.fetchNextPage(),disabled:c.isFetchingNextPage,children:t("adminGrowth.loadMore")})}):null]})}function rJ(e,t,n){const a=[n("adminGrowth.csv.code"),n("adminGrowth.csv.status")],s=t.map(r=>[r.code,r.status??"active"]);My(`onehop-redeem-codes-${e}-${new Date().toISOString().slice(0,10)}.csv`,[a,...s])}function Y6(){return(globalThis.crypto?.randomUUID?.()??`idem-${Date.now()}-${Math.random().toString(36).slice(2)}`).slice(0,64)}function LLs(){return o.jsxs("div",{className:"space-y-4",children:[o.jsx(ULs,{}),o.jsx(FLs,{})]})}function ULs(){const{t:e}=W(),t=_3s(),n=Ru(),[a,s]=h.useState(""),[r,i]=h.useState("100"),[c,d]=h.useState("10"),[m,f]=h.useState("1"),[p,y]=h.useState(""),[v,$]=h.useState([]),[x,w]=h.useState(""),[S,k]=h.useState(Y6),[T,R]=h.useState(!1),_=h.useMemo(()=>[...n.data?.items??[]].sort((E,L)=>E.fullSlug.localeCompare(L.fullSlug)).map(E=>({value:E.publicId,label:E.fullSlug})),[n.data]),P=h.useMemo(()=>{const E=new Map;for(const L of n.data?.items??[])E.set(L.publicId,L.fullSlug);return E},[n.data]),j=t.data?.codes??[],N=t.data?.batchCode??null;async function I(){if(j.length!==0)try{await navigator.clipboard.writeText(j.join(` 971`)),R(!0),setTimeout(()=>R(!1),2e3),ie.success(e("common.copied",{defaultValue:"Copied"}))}catch{ie.error(e("common.copyFailed",{defaultValue:"Failed to copy"}))}}async function z(){R(!1);try{await t.mutateAsync({batchName:a.trim()||null,count:Number(r)||0,faceValueUsd:c.trim()||"0",perUserLimit:m.trim()?Number(m):null,expiresAt:p?new Date(p).toISOString():null,modelPublicIds:v.length>0?v:null,creditValidityDays:x.trim()?Number(x):null,idempotencyKey:S}),k(Y6())}
971catch(E){ie.error(E.message)}}return o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.redeemCreate",{defaultValue:"Create redeem codes"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.redeemCreateDescription",{defaultValue:"Gift-card style codes. Users enter a code on the billing page and get the face value credited directly (bonus credit, no payment)."})})]}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemBatchName",{defaultValue:"Batch name (optional)"})}),o.jsx(ge,{value:a,onChange:E=>s(E.target.value),placeholder:e("adminGrowth.redeemBatchNameHint",{defaultValue:"e.g. Conf-2026 giveaway"})})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemCount",{defaultValue:"How many codes"})}),o.jsx(ge,{type:"number",min:"1",max:"10000",step:"1",inputMode:"numeric",value:r,onChange:E=>i(E.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemFaceValue",{defaultValue:"Face value (USD each)"})}),o.jsx(ge,{type:"number",min:"0.01",step:"0.01",inputMode:"decimal",value:c,onChange:E=>d(E.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemPerUserLimit",{defaultValue:"Per account in this batch (blank = unlimited)"})}),o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:m,onChange:E=>f(E.target.value),placeholder:e("adminGrowth.redeemUnlimited",{defaultValue:"unlimited"})})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium sm:col-span-2",children:[o.jsx("span",{children:e("adminGrowth.redeemExpiresAt",{defaultValue:"Redeem-by deadline (optional)"})}),o.jsx(ge,{type:"datetime-local",value:p,onChange:E=>y(E.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemModels",{defaultValue:"Restrict to models (optional)"})}),o.jsx(ly,{value:v,onChange:$,options:_,allLabel:e("adminGrowth.redeemModelsAll",{defaultValue:"General balance (no restriction)"}),placeholder:e("adminGrowth.redeemModelsAll",{defaultValue:"General balance (no restriction)"}),triggerLabel:E=>E.length===0?e("adminGrowth.redeemModelsAll",{defaultValue:"General balance (no restriction)"}):E.length<=2?E.map(L=>P.get(L)??L).join(", "):e("adminGrowth.redeemModelsCount",{defaultValue:"{{count}} models selected",count:E.length})}),o.jsx("span",{className:"text-xs font-normal text-[color:var(--muted-foreground)]",children:e("adminGrowth.redeemModelsHint",{defaultValue:"Blank = general balance. Selected models share one earmarked pool."})})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.redeemValidityDays",{defaultValue:"Credit validity after redemption (days, blank = never expires)"})}),o.jsx(ge,{type:"number",min:"1",max:"3650",step:"1",inputMode:"numeric",value:x,onChange:E=>w(E.target.value),placeholder:e("adminGrowth.redeemValidityForever",{defaultValue:"never expires"})})]})]}),o.jsx(K,{variant:"secondary",className:"w-full sm:w-auto",onClick:z,disabled:t.isPending||!r.trim()||!c.trim(),children:t.isPending?e("adminGrowth.creating"):e("adminGrowth.redeemCreateBtn",{defaultValue:"Generate codes"})}),j.length>0&&N?o.jsxs("div",{className:"rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/30 p-3",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsxs("div",{children:[o.jsx("p",{className:"text-sm font-medium",children:e("adminGrowth.codesCreated",{count:j.length})}),o.jsx("p",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.batch",{code:N})})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs(K,{variant:"outline",size:"sm",onClick:I,children:[T?o.jsx(cy,{className:"size-4"}):o.jsx(Ow,{className:"size-4"}),e(T?"adminGrowth.copied":"adminGrowth.copyAll")]}),o.jsxs(K,{variant:"outline",size:"sm",onClick:()=>rJ(N,j.map(E=>({code:E})),e),children:[o.jsx($u,{className:"size-4"}),e("adminGrowth.exportCsv",{defaultValue:"CSV"})]})]})]}),o.jsx("p",{className:"mt-2 text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.redeemRevealHint",{defaultValue:"Save these now. You can also re-export plaintext later via Reveal in the batch list."})}),o.jsx("div",{className:"mt-3 grid max-h-56 gap-1 overflow-auto rounded border border-[color:var(--border)] bg-[color:var(--background)] p-2",children:j.map(E=>o.jsx("code",{className:"break-all text-xs",children:E},E))})]}):null,t.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:t.error.message}):null]})}function BLs(e){return e.expiresAt&&new Date(e.expiresAt).getTime()<Date.now()?"expired":e.active>0?"active":"exhausted"}function FLs(){const{t:e}=W(),t=Te(),{params:n,patch:a}=Mt(),s=Pe(n,"rbBatch"),r=j3s(),i=D3s(),c=M3s(),d=h.useMemo(()=>(r.data?.pages.flatMap(y=>y.items)??[]).map(y=>({...y,publicId:y.batchCode})),[r.data]);async function m(y){try{const v=await i.mutateAsync(y);rJ(y,v.codes,e),ie.success(e("adminGrowth.redeemRevealed",{defaultValue:"Codes exported"}))}catch(v){ie.error(v.message)}}async function f(y){if(await zt({title:e("adminGrowth.redeemDisableBatchTitle",{defaultValue:"Disable unredeemed codes in this batch?"}),message:e("adminGrowth.redeemDisableBatchMessage",{defaultValue:"All not-yet-redeemed codes become unusable. Already-redeemed codes are not affected."}),confirmText:e("adminGrowth.disableCode",{defaultValue:"Disable"}),variant:"destructive"}))try{const $=await c.mutateAsync(y);ie.success(e("adminGrowth.redeemBatchDisabled",{defaultValue:"{{n}} codes disabled",n:$.disabled}))}catch($){ie.error($.message)}}const p=[{header:e("adminGrowth.redeemBatchCol",{defaultValue:"Batch"}),cell:y=>o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"font-medium",children:y.batchName||y.batchCode}),y.batchName?o.jsx("div",{className:"font-mono text-2xs text-[color:var(--muted-foreground)]",children:y.batchCode}):null]}),mobileValue:"break-all"},{header:e("adminGrowth.redeemFace",{defaultValue:"Face"}),align:"right",cell:y=>t.currency(Number(y.faceValueUsd))},{header:e("adminGrowth.colRedeemedTotal",{defaultValue:"Used / total"}),align:"right",cell:y=>o.jsxs("span",{className:"tabular-nums",children:[y.redeemed,"/",y.total]})},{header:e("adminGrowth.colPerUser",{defaultValue:"Per user"}),align:"right",cell:y=>o.jsx("span",{className:"tabular-nums",children:y.perUserLimit??"â"})},{header:e("adminGrowth.redeemColModels",{defaultValue:"Models"}),mobileValue:"break-all",cell:y=>y.modelFullSlugs?.length?y.modelFullSlugs.join(", "):e("adminGrowth.redeemGeneralBalance",{defaultValue:"General balance"})},{header:e("adminGrowth.redeemColValidity",{defaultValue:"Validity"}
971),align:"right",cell:y=>y.creditValidityDays!=null?e("adminGrowth.redeemValidityDaysValue",{defaultValue:"{{n}} d",n:y.creditValidityDays}):e("adminGrowth.redeemValidityForever",{defaultValue:"never expires"})},{header:e("adminGrowth.colExpiry",{defaultValue:"Expires"}),cell:y=>y.expiresAt?t.dateTime(y.expiresAt):"â"},{header:e("adminGrowth.status"),cell:y=>o.jsx(Oe,{value:BLs(y)})},{header:"",sticky:"right",cell:y=>o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(K,{variant:"ghost",size:"sm",disabled:i.isPending,onClick:()=>m(y.batchCode),children:e("adminGrowth.redeemReveal",{defaultValue:"Reveal CSV"})}),y.active>0?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>f(y.batchCode),children:e("adminGrowth.disableCode",{defaultValue:"Disable"})}):null]})}];return o.jsxs(Ee,{children:[o.jsxs("div",{className:"border-b border-[color:var(--border)] px-5 py-4",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.redeemBatches",{defaultValue:"Redeem code batches"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.redeemBatchesDescription",{defaultValue:"Click a batch to drill into individual codes. Reveal re-exports plaintext."})})]}),o.jsxs("div",{className:"p-3",children:[o.jsx(Pt,{label:e("adminGrowth.redeemBatches",{defaultValue:"Redeem code batches"}),rows:d,columns:p,isLoading:r.isLoading,error:r.error,emptyTitle:e("adminGrowth.redeemNoBatches",{defaultValue:"No redeem code batches yet"}),onRowClick:y=>a({rbBatch:s===y.batchCode?void 0:y.batchCode})}),r.hasNextPage?o.jsx("div",{className:"mt-3 text-center",children:o.jsx(K,{variant:"outline",size:"sm",onClick:()=>r.fetchNextPage(),disabled:r.isFetchingNextPage,children:e("adminGrowth.loadMore")})}):null]}),s?o.jsx(zLs,{batchCode:s}):null]})}function zLs({batchCode:e}){const{t}=W(),n=Te(),a=N3s(e),s=E3s(),r=h.useMemo(()=>a.data?.pages.flatMap(d=>d.items)??[],[a.data]);async function i(d){if(await zt({title:t("adminGrowth.redeemReverseTitle",{defaultValue:"Reverse this redeemed code?"}),message:t("adminGrowth.redeemReverseMessage",{defaultValue:"Claws back the unspent portion of the credited amount from the user. Already-spent credit cannot be recovered."}),confirmText:t("adminGrowth.redeemReverseBtn",{defaultValue:"Reverse"}),variant:"destructive"}))try{const f=await s.mutateAsync(d.publicId);ie.success(t("adminGrowth.redeemReversed",{defaultValue:"Reversed {{amount}}",amount:n.currency(Number(f.reversedUsd))}))}catch(f){ie.error(f.message)}}const c=[{header:t("adminGrowth.code"),cell:d=>o.jsxs("code",{className:"font-mono text-xs",children:["····",d.codeSuffix??""]}),mobileValue:"break-all"},{header:t("adminGrowth.redeemFace",{defaultValue:"Face"}),align:"right",cell:d=>n.currency(Number(d.faceValueUsd))},{header:t("adminGrowth.status"),cell:d=>o.jsx(Oe,{value:d.status,label:ct(d.status)})},{header:t("adminGrowth.redeemedBy"),cell:d=>d.redeemedByEmail??"â",mobileValue:"break-all"},{header:t("adminGrowth.redeemedAt"),cell:d=>d.redeemedAt?n.dateTime(d.redeemedAt):"â"},{header:"",sticky:"right",cell:d=>d.status==="redeemed"?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>i(d),children:t("adminGrowth.redeemReverseBtn",{defaultValue:"Reverse"})}):null}];return o.jsxs("div",{className:"border-t border-[color:var(--border)] bg-[color:var(--muted)]/20 p-3",children:[o.jsx("p",{className:"mb-3 text-sm font-medium",children:t("adminGrowth.codesInBatch",{code:e})}),o.jsx(Pt,{label:t("adminGrowth.codesInBatch",{code:e}),rows:r,columns:c,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminGrowth.noCodes")}),a.hasNextPage?o.jsx("div",{className:"mt-3 text-center",children:o.jsx(K,{variant:"outline",size:"sm",onClick:()=>a.fetchNextPage(),disabled:a.isFetchingNextPage,children:t("adminGrowth.loadMore")})}):null]})}function qLs({version:e,onClose:t}){const{t:n}=W(),a=Te(),s=e?.version??null,r=L3s(s),i=U3s(s),c=r.data?.pages.flatMap(p=>p.items),d=i.data?.pages.flatMap(p=>p.items),m=[{header:n("adminGrowth.colInviter",{defaultValue:"Inviter"}),cell:p=>o.jsx(Vd,{email:p.referrerEmail,publicId:p.referrerPublicId})},{header:n("adminGrowth.colInvitee",{defaultValue:"Invitee"}),cell:p=>
971o.jsx(Vd,{email:p.refereeEmail,publicId:p.refereePublicId})},{header:n("adminGrowth.versionStatus",{defaultValue:"Status"}),cell:p=>o.jsx(Oe,{value:p.status,label:ct(p.status)})},{header:n("adminGrowth.colBoundAt",{defaultValue:"Bound at"}),cell:p=>a.dateTime(p.boundAt)}],f=[{header:n("adminGrowth.colRole",{defaultValue:"Role"}),cell:p=>ct(p.recipientRole)},{header:n("adminGrowth.colCounterparty",{defaultValue:"Counterparty"}),cell:p=>o.jsx(Vd,{email:p.counterpartyEmail,publicId:p.counterpartyPublicId})},{header:n("adminGrowth.colTopup",{defaultValue:"Top-up"}),align:"right",cell:p=>p.refereeTopupUsd?a.currency(Number(p.refereeTopupUsd)):"â"},{header:n("adminGrowth.colRate",{defaultValue:"Rate"}),align:"right",cell:p=>p.ratePercent?`${Number(p.ratePercent)}%`:"â"},{header:n("adminGrowth.colAmount",{defaultValue:"Amount"}),align:"right",cell:p=>p.grantAmount?a.currency(Number(p.grantAmount)):"â"},{header:n("adminGrowth.colTier",{defaultValue:"Tier"}),cell:p=>p.tierLabel??"â"},{header:n("adminGrowth.versionStatus",{defaultValue:"Status"}),cell:p=>o.jsx(Oe,{value:p.status,label:ct(p.status)})},{header:n("adminGrowth.colReleasedAt",{defaultValue:"Released"}),cell:p=>p.releasedAt?a.dateTime(p.releasedAt):"â"}];return o.jsx(Vn,{open:e!=null,onOpenChange:p=>{p||t()},children:o.jsxs(Nn,{side:"auto",className:"overflow-y-auto !p-0 md:w-[min(880px,94vw)] md:!max-w-none",children:[o.jsxs(Rn,{className:"sr-only",children:[n("adminGrowth.versionDetail",{defaultValue:"Version detail"}),e?` · v${e.version}`:""]}),o.jsxs("header",{className:"border-b border-[color:var(--border)] px-5 py-4",children:[o.jsxs("div",{className:"text-sm font-semibold",children:[n("adminGrowth.versionDetail",{defaultValue:"Version detail"}),e?` · v${e.version}`:""]}),e?o.jsxs("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-2 text-xs text-[color:var(--muted-foreground)]",children:[o.jsx(Oe,{value:e.status,label:ct(e.status)}),o.jsxs("span",{className:"tabular-nums",children:[n("adminGrowth.versionBindings",{defaultValue:"Referrals"}),": ",a.number(e.bindingCount)]}),o.jsxs("span",{className:"break-words",children:["· ",a.dateTime(e.createdAt)]})]}):null]}),o.jsxs("div",{className:"space-y-6 p-3 sm:p-5",children:[o.jsxs("section",{className:"space-y-2",children:[o.jsx("h3",{className:"text-sm font-medium",children:n("adminGrowth.versionBindingsSection",{defaultValue:"Referral records"})}),o.jsx(Pt,{rows:c,columns:m,isLoading:r.isLoading,error:r.error,emptyTitle:n("adminGrowth.noBindings",{defaultValue:"No referrals under this version"})}),r.hasNextPage?o.jsx(K,{variant:"outline",size:"sm",onClick:()=>r.fetchNextPage(),disabled:r.isFetchingNextPage,children:n("adminGrowth.loadMore",{defaultValue:"Load more"})}):null]}),o.jsxs("section",{className:"space-y-2",children:[o.jsx("h3",{className:"text-sm font-medium",children:n("adminGrowth.versionCashbackSection",{defaultValue:"Cashback records"})}),o.jsx(Pt,{rows:d,columns:f,isLoading:i.isLoading,error:i.error,emptyTitle:n("adminGrowth.noCashback",{defaultValue:"No cashback under this version"})}),i.hasNextPage?o.jsx(K,{variant:"outline",size:"sm",onClick:()=>i.fetchNextPage(),disabled:i.isFetchingNextPage,children:n("adminGrowth.loadMore",{defaultValue:"Load more"})}):null]})]})]})})}const Q6=[{recipientRole:"referrer",fromDay:"0",untilDay:"30",percent:"20",label:"intro"},{recipientRole:"referee",fromDay:"0",untilDay:"30",percent:"20",label:"intro"},{recipientRole:"referrer",fromDay:"30",untilDay:"365",percent:"5",label:"year_residual"}];function HLs(e){return{recipientRole:e.recipient_role,fromDay:String(e.from_day),untilDay:e.until_day==null?"":String(e.until_day),percent:String(e.percent),label:e.label??""}}function VLs(e){return{recipient_role:e.recipientRole,from_day:Number(e.fromDay)||0,until_day:e.untilDay.trim()===""?null:Number(e.untilDay),percent:Number(e.percent)||0,label:e.label.trim()||void 0}}function KLs({tier:e,index:t,updateTier:n}){const{t:a}=W();return o.jsxs("div",{className:"grid gap-3",children:[o.jsx(iJ,{tier:e,index:t,updateTier:n}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[o.jsx(Qm,{label:a("adminGrowth.tierFromDay",{defaultValue:"From day"}),value:e.fromDay,onChange:s=>n(t,{fromDay:s})}),o.jsx(Qm,{label:a("adminGrowth.tierUntilDay",{defaultValue:"Until day"}),value:e.untilDay,onChange:s=>n(t,{untilDay:s}),placeholder:a("adminGrowth.noEndDay",{defaultValue:"No end"})}),o.jsx(Qm,{label:a("adminGrowth.tierPercent",{defaultValue:"Percent"}),value:e.percent,onChange:s=>n(t,{percent:s}),step:"0.5",inputMode:"decimal"})]}),o.jsx(lJ,{label:a("adminGrowth.tierLabel",{defaultValue:"Label"}),value:e.label,onChange:s=>n(t,{label:s})})]})}function iJ({tier:e,index:t,updateTier:n,srOnlyLabel:a=!1}){const{t:s}=W();return o.jsxs(ca,{className:"min-w-32",label:a?o.jsx("span",{className:"sr-only",children:s("adminGrowth.tierRole",{defaultValue:"Recipient"})}):s("adminGrowth.tierRole",{defaultValue:"Recipient"}),value:e.recipientRole,onChange:r=>n(t,{recipientRole:r.target.value==="referee"?"referee":"referrer"}),children:[o.jsx("option",{value:"referrer",children:s("adminGrowth.roleReferrer",{defaultValue:"Inviter"})}),o.jsx("option",{value:"referee",children:s("adminGrowth.roleReferee",{defaultValue:"Invitee"})})]})}function Qm({label:e,value:t,onChange:n,placeholder:a,step:s="1",inputMode:r="numeric",srOnlyLabel:i=!1}){return o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{className:i?"sr-only":void 0,children:e}),o.jsx(ge,{className:"min-w-0 md:min-w-24",type:"number",min:"0",step:s,inputMode:r,placeholder:a,value:t,onChange:c=>n(c.target.value)})]})}function lJ({label:e,value:t,onChange:n,srOnlyLabel:a=!1}){return o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{className:a?"sr-only":void 0,children:e}),o.jsx(ge,{className:"min-w-0 md:min-w-36",value:t,onChange:s=>n(s.target.value)})]})}function GLs(){const{t:e}=W(),t=Te(),n=I3s(),a=O3s(),s=B3s(),[r,i]=h.useState(!0),[c,d]=h.useState(Q6),[m,f]=h.useState("30"),[p,y]=h.useState("100"),[v,$]=h.useState(""),[x,w]=h.useState(""),[S,k]=h.useState(!1),[T,R]=h.useState(""),[_,P]=h.useState(""),[j,N]=h.useState("global"),[I,z]=h.useState(""),[E,L]=h.useState(null);h.useEffect(()=>{const M=n.data;if(!M)return;i(M.enabled),d(M.rewardTiers.length>0?M.rewardTiers.map(HLs):Q6),f(String(M.releasePolicy?.delay_days??30)),y(M.perTopupCapUsd==null?"":String(M.perTopupCapUsd)),$(M.minTopupUsd==null?"":String(M.minTopupUsd)),w(M.bonusExpiryDays==null?"":String(M.bonusExpiryDays));const F=M.banner;k(!!F?.enabled),R(F?.title??""),P(F?.subtitle??""),N(F?.mode??"global"),z(F?.ends_at?F.ends_at.slice(0,16):"")},[n.data]);function O(){const M=F=>F.trim()===""?null:Number(F);s.mutate({enabled:r,rewardTiers:c.map(VLs),releasePolicy:{type:"delay_days",delay_days:Number(m)||0},perTopupCapUsd:M(p),minTopupUsd:M(v),bonusExpiryDays:M(x),banner:{enabled:S,title:T,subtitle:_,mode:j==="per_user_window"?"per_user_window":"global",ends_at:I?new Date(I).toISOString():null}})}function V(M,F){d(H=>H.map((ee,B)=>B===M?{...ee,...F}:ee))}function ne(){d(M=>[...M,{recipientRole:"referrer",fromDay:"0",untilDay:"",percent:"0",label:""}])}function q(M){d(F=>F.filter((H,ee)=>ee!==M))}return o.jsxs(Ee,{className:"space-y-3 p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.referral",{defaultValue:"Referral cashback"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.referralDescription",{defaultValue:"Configure double-sided referral rewards, release delay, caps, and billing-page messaging."})})]}),n.data?o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[o.jsx("span",{className:"rounded-md border border-border px-2 py-0.5 text-xs font-medium tabular-nums text-[color:var(--muted-foreground)]",children:e("adminGrowth.referralVersion",{defaultValue:"v{{version}}",version:n.data.version})}),o.jsx(Oe,{value:r?"active":"paused",label:ct(r?"active":"paused")})]}):null]}),o.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[o.jsx(Zn,{checked:r,onChange:M=>i(M.target.checked)}),o.jsx("span",{children:e("adminGrowth.referralEnabled",{defaultValue:"Enable referral cashback"})})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsx("h3",{className:"text-sm font-medium",children:e("adminGrowth.referralRewardTiers",{defaultValue:"Reward tiers"})}),o.jsxs(K,{className:"w-full sm:w-auto",type:"button",variant:"outline",size:"sm",onClick:ne,children:[o.jsx(wr,{className:"size-4"}),e("adminGrowth.addTier",{defaultValue:"Add tier"})]})]}),o.jsx("div",{className:"grid gap-2 md:hidden",children:c.map((M,F)=>
971o.jsxs("article",{className:"rounded-lg border border-border bg-[color:var(--card)] p-3",children:[o.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[o.jsx("h4",{className:"text-sm font-medium",children:e("adminGrowth.tierNumber",{defaultValue:"Tier {{number}}",number:F+1})}),o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:()=>q(F),"aria-label":e("adminGrowth.removeTier",{defaultValue:"Remove tier"}),children:o.jsx(Sc,{className:"size-4"})})]}),o.jsx(KLs,{tier:M,index:F,updateTier:V})]},`${M.recipientRole}-${F}`))}),o.jsx("div",{className:"hidden rounded-md border border-border md:block",children:o.jsxs(Ua,{"aria-label":e("adminGrowth.referralRewardTiers",{defaultValue:"Reward tiers"}),children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminGrowth.tierRole",{defaultValue:"Recipient"})}),o.jsx(Ie,{children:e("adminGrowth.tierFromDay",{defaultValue:"From day"})}),o.jsx(Ie,{children:e("adminGrowth.tierUntilDay",{defaultValue:"Until day"})}),o.jsx(Ie,{children:e("adminGrowth.tierPercent",{defaultValue:"Percent"})}),o.jsx(Ie,{children:e("adminGrowth.tierLabel",{defaultValue:"Label"})}),o.jsx(Ie,{className:"w-12 text-right",children:e("adminGrowth.tierAction",{defaultValue:"Action"})})]})}),o.jsx(Ba,{children:c.map((M,F)=>o.jsxs(qt,{children:[o.jsx(Me,{children:o.jsx(iJ,{tier:M,index:F,updateTier:V,srOnlyLabel:!0})}),o.jsx(Me,{children:o.jsx(Qm,{label:e("adminGrowth.tierFromDay",{defaultValue:"From day"}),value:M.fromDay,onChange:H=>V(F,{fromDay:H}),srOnlyLabel:!0})}),o.jsx(Me,{children:o.jsx(Qm,{label:e("adminGrowth.tierUntilDay",{defaultValue:"Until day"}),value:M.untilDay,onChange:H=>V(F,{untilDay:H}),placeholder:e("adminGrowth.noEndDay",{defaultValue:"No end"}),srOnlyLabel:!0})}),o.jsx(Me,{children:o.jsx(Qm,{label:e("adminGrowth.tierPercent",{defaultValue:"Percent"}),value:M.percent,onChange:H=>V(F,{percent:H}),step:"0.5",inputMode:"decimal",srOnlyLabel:!0})}),o.jsx(Me,{children:o.jsx(lJ,{label:e("adminGrowth.tierLabel",{defaultValue:"Label"}),value:M.label,onChange:H=>V(F,{label:H}),srOnlyLabel:!0})}),o.jsx(Me,{className:"text-right",children:o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:()=>q(F),"aria-label":e("adminGrowth.removeTier",{defaultValue:"Remove tier"}),children:o.jsx(Sc,{className:"size-4"})})})]},`${M.recipientRole}-${F}`))})]})})]}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.releaseDelayDays",{defaultValue:"Release delay (days)"})}),o.jsx(ge,{type:"number",min:"0",step:"1",inputMode:"numeric",value:m,onChange:M=>f(M.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.referralCap",{defaultValue:"Per-topup cap (USD)"})}),o.jsx(ge,{type:"number",min:"0",step:"1",inputMode:"decimal",value:p,onChange:M=>y(M.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.referralMinTopup",{defaultValue:"Min topup (USD, blank = none)"})}),o.jsx(ge,{type:"number",min:"0",step:"1",inputMode:"decimal",value:v,onChange:M=>$(M.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.referralExpiryDays",{defaultValue:"Cashback expiry (days, blank = never)"})}),o.jsx(ge,{type:"number",min:"0",step:"1",inputMode:"numeric",value:x,onChange:M=>w(M.target.value)})]})]}),o.jsxs("div",{className:"mt-2 space-y-2 border-t border-border pt-3",children:[o.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[o.jsx(Zn,{checked:S,onChange:M=>k(M.target.checked)}),o.jsx("span",{children:e("adminGrowth.bannerEnabled",{defaultValue:"Billing-page countdown banner"})})]}),S?o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium sm:col-span-2",children:[o.jsx("span",{children:e("adminGrowth.bannerTitle",{defaultValue:"Banner title"})}),o.jsx(ge,{value:T,onChange:M=>R(M.target.value)})]}),o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium sm:col-span-2",children:[o.jsx("span",{children:e("adminGrowth.bannerSubtitle",{defaultValue:"Subtitle"})}
971),o.jsx(ge,{value:_,onChange:M=>P(M.target.value)})]}),o.jsxs(ca,{label:e("adminGrowth.bannerMode",{defaultValue:"Countdown mode"}),value:j,onChange:M=>N(M.target.value),children:[o.jsx("option",{value:"global",children:e("adminGrowth.bannerModeGlobal",{defaultValue:"Global deadline"})}),o.jsx("option",{value:"per_user_window",children:e("adminGrowth.bannerModeWindow",{defaultValue:"Each invitee's 30-day window"})})]}),j==="global"?o.jsxs("label",{className:"grid gap-1.5 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.bannerEndsAt",{defaultValue:"Ends at"})}),o.jsx(ge,{type:"datetime-local",value:I,onChange:M=>z(M.target.value)})]}):null]}):null]}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:e("adminGrowth.referralPublishHint",{defaultValue:"Saving reward tiers, release delay, caps, or expiry publishes a NEW version. Existing referral relationships keep the version they were bound under â only new signups get the new terms. Pausing only affects new signups."})}),o.jsx(K,{className:"w-full sm:w-auto",onClick:O,disabled:n.isLoading||s.isPending,children:s.isPending?e("adminGrowth.saving"):e("adminGrowth.saveReferral",{defaultValue:"Save referral settings"})}),n.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:n.error.message}):null,s.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:s.error.message}):null,a.data&&a.data.length>0?o.jsxs("div",{className:"mt-2 space-y-2 border-t border-border pt-3",children:[o.jsxs("h3",{className:"text-sm font-medium",children:[e("adminGrowth.referralVersionHistory",{defaultValue:"Version history"})," (",a.data.length,")"]}),o.jsx("div",{className:"grid gap-2 md:hidden",children:a.data.map(M=>o.jsxs("article",{onClick:()=>L(M),className:"rounded-lg border border-border bg-[color:var(--card)] p-3 text-sm",children:[o.jsxs("div",{className:"flex items-start justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0 break-words font-medium tabular-nums",children:["v",M.version,M.current?o.jsxs("span",{className:"ml-1 text-[color:var(--muted-foreground)]",children:["(",e("adminGrowth.versionCurrent",{defaultValue:"current"}),")"]}):null]}),o.jsx(Oe,{value:M.status,label:ct(M.status)})]}),o.jsxs("dl",{className:"mt-3 grid gap-2",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx("dt",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:e("adminGrowth.versionBindings",{defaultValue:"Referrals"})}),o.jsx("dd",{className:"tabular-nums",children:t.number(M.bindingCount)})]}),o.jsxs("div",{className:"grid gap-1",children:[o.jsx("dt",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:e("adminGrowth.versionTiers",{defaultValue:"Reward tiers"})}),o.jsx("dd",{className:"break-words text-xs",children:M.rewardTiers.length===0?"â":M.rewardTiers.map(F=>`${F.recipient_role==="referee"?"invitee":"inviter"} ${F.from_day}-${F.until_day??"â"}d ${F.percent}%`).join("; ")})]}),o.jsxs("div",{className:"grid gap-1",children:[o.jsx("dt",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:e("adminGrowth.versionPublished",{defaultValue:"Published"})}),o.jsx("dd",{className:"text-xs",children:t.dateTime(M.createdAt)})]}),o.jsxs("div",{className:"grid gap-1",children:[o.jsx("dt",{className:"text-2xs font-semibold uppercase text-[color:var(--muted-foreground)]",children:e("adminGrowth.versionSuperseded",{defaultValue:"Superseded"})}),o.jsx("dd",{className:"text-xs",children:M.supersededAt?t.dateTime(M.supersededAt):"â"})]})]})]},M.version))}),o.jsx("div",{className:"hidden rounded-md border border-border md:block",children:o.jsxs(Ua,{"aria-label":e("adminGrowth.referralVersionHistory",{defaultValue:"Version history"}),children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminGrowth.versionCol",{defaultValue:"Version"})}),o.jsx(Ie,{children:e("adminGrowth.versionStatus",{defaultValue:"Status"})}),o.jsx(Ie,{className:"text-right",children:e("adminGrowth.versionBindings",{defaultValue:"Referrals"})}),o.jsx(Ie,{children:e("adminGrowth.versionTiers",{defaultValue:"Reward tiers"})}),o.jsx(Ie,{children:e("adminGrowth.versionPublished",{defaultValue:"Published"})}),o.jsx(Ie,{children:e("adminGrowth.versionSuperseded",{defaultValue:"Superseded"})})]})}),o.jsx(Ba,{children:a.data.map(M=>o.jsxs(qt,{onClick:()=>L(M),className:"cursor-pointer hover:bg-[color:var(--muted)]",children:[o.jsxs(Me,{className:"tabular-nums",children:["v",M.version,M.current?o.jsxs("span",{className:"ml-1 text-[color:var(--muted-foreground)]",children:["(",e("adminGrowth.versionCurrent",{defaultValue:"current"}),")"]}):null]}),o.jsx(Me,{children:o.jsx(Oe,{value:M.status,label:ct(M.status)})}),o.jsx(Me,{className:"text-right tabular-nums",children:t.number(M.bindingCount)}),o.jsx(Me,{className:"text-xs",children:M.rewardTiers.length===0?"â":M.rewardTiers.map(F=>`${F.recipient_role==="referee"?"invitee":"inviter"} ${F.from_day}-${F.until_day??"â"}d ${F.percent}%`).join("; ")}),o.jsx(Me,{className:"text-xs",children:t.dateTime(M.createdAt)}),o.jsx(Me,{className:"text-xs",children:M.supersededAt?t.dateTime(M.supersededAt):"â"})]},M.version))})]})})]}):null,o.jsx(qLs,{version:E,onClose:()=>L(null)})]})}const X6=["source","status","page"];function WLs(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({source:Pe(n,"source"),status:Pe(n,"status"),page:ln(n,"page",1)}),[n]),i={...r.source?{source:r.source}:{},...r.status?{status:r.status}:{}},c=k3s(i).data?.items??[],d=hN(c,{page:r.page,onPageChange:f=>a({page:f===1?void 0:String(f)},{replace:!1})}),m=[{header:e("adminGrowth.time"),cell:f=>t.dateTime(f.createdAt)},{header:e("adminGrowth.user"),mobileValue:"break-all",cell:f=>f.userEmail},{header:e("adminGrowth.source"),cell:f=>o.jsx(Oe,{value:f.source,label:ct(f.source)})},{header:e("adminGrowth.status"),cell:f=>o.jsx(Oe,{value:f.status,label:ct(f.status)})},{header:e("adminGrowth.amount"),align:"right",cell:f=>t.currency(Number(f.creditAmount))}];return o.jsxs(Ee,{children:[o.jsxs("div",{className:"flex flex-col gap-3 border-b border-[color:var(--border)] px-5 py-4 md:flex-row md:items-end md:justify-between",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.creditGrants")}),o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 md:w-[460px]",children:[o.jsx(Ze,{label:e("adminGrowth.source"),value:r.source,options:jK,onChange:f=>a({source:f,page:void 0})}),o.jsx(Ze,{label:e("adminGrowth.status"),value:r.status,options:NK,onChange:f=>a({status:f,page:void 0})})]}),o.jsx(nn,{show:Zt(n,X6),onReset:()=>s(X6)})]}),c.length===0?o.jsx("div",{className:"p-6",children:o.jsx(Ot,{title:e("adminGrowth.noGrants"),description:e("adminGrowth.noGrantsDescription")})}):o.jsx(Pt,{label:e("adminGrowth.creditGrants"),rows:d.pageRows,columns:m,isLoading:!1,error:null,emptyTitle:e("adminGrowth.noGrants"),pagination:{total:d.total,page:d.page,pageSize:d.pageSize,onPageChange:d.onPageChange,onPageSizeChange:d.onPageSizeChange}})]})}const YLs=(e,t)=>["ops","tasks","submissions",e,t??""],cJ=["ops","tasks","rule"];function QLs(e,t){return Ue({queryKey:YLs(e,t),queryFn:()=>ve.request(`/ops/tasks/submissions${$r({status:e,cursor:t})}`)})}function XLs(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/tasks/submissions/${t}/approve`,{method:"POST"}),onSuccess:()=>
971{e.invalidateQueries({queryKey:["ops","tasks","submissions"]}),e.invalidateQueries({queryKey:["ops","grants"]})}})}function ZLs(){const e=Re();return ke({mutationFn:({publicId:t,reason:n})=>ve.request(`/ops/tasks/submissions/${t}/reject`,{method:"POST",body:{reason:n}}),onSuccess:()=>{e.invalidateQueries({queryKey:["ops","tasks","submissions"]})}})}function JLs(){return Ue({queryKey:cJ,queryFn:()=>ve.request("/ops/growth/rules/task-wall")})}function e4s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/growth/rules/task-wall",{method:"PATCH",body:t}),onSuccess:()=>{e.invalidateQueries({queryKey:cJ}),e.invalidateQueries({queryKey:["console","tasks"]})}})}const t4s={pending:"warning",approved:"success",rejected:"destructive"};function n4s(e){return{taskKey:e.task_key,amount:String(e.amount??""),rewardType:e.reward_type==="topup_percent"?"topup_percent":"credit",enabled:e.enabled===!0,allowedHosts:e.allowed_hosts??[]}}function a4s(e){return{task_key:e.taskKey.trim(),amount:Number(e.amount),reward_type:e.rewardType,enabled:e.enabled,allowed_hosts:e.allowedHosts}}function o4s({item:e}){const{t}=W(),n=Te(),a=XLs(),s=ZLs(),[r,i]=h.useState(""),[c,d]=h.useState(!1);async function m(f,p,y){try{await f(),ie.success(t(p,{defaultValue:y}))}catch(v){ie.error(da(v))}}return o.jsxs(Ee,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[o.jsx(jo,{tone:t4s[e.status],children:t(`adminGrowth.tasks.status.${e.status}`,{defaultValue:e.status})}),o.jsx(Xt,{variant:"outline",children:e.taskKey}),o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-13 tabular-nums text-[color:var(--primary)]",children:n.currency(Number(e.amountUsd))}),e.duplicateAccounts>0?o.jsx(jo,{tone:"destructive",children:t("adminGrowth.tasks.duplicate",{defaultValue:"Same link from {{count}} other account(s)",count:e.duplicateAccounts})}):null,o.jsx("span",{className:"ml-auto text-2xs text-[color:var(--muted-foreground)]",children:n.dateTime(e.createdAt)})]}),o.jsxs("div",{className:"grid gap-1 text-13",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e.userEmail}),o.jsx("a",{href:e.submittedUrl,target:"_blank",rel:"noopener noreferrer",className:"break-all text-[color:var(--primary)] underline-offset-2 hover:underline",children:e.submittedUrl}),o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-2xs text-[color:var(--muted-foreground)]",children:e.canonicalRef})]}),e.status==="pending"?c?o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center",children:[o.jsx(ge,{value:r,onChange:f=>i(f.target.value),placeholder:t("adminGrowth.tasks.reasonPlaceholder",{defaultValue:"Why is this rejected?"}),className:"min-w-0 flex-1"}),o.jsxs("div",{className:"flex gap-2",children:[o.jsx(K,{variant:"destructive",disabled:!r.trim()||s.isPending,onClick:()=>m(()=>s.mutateAsync({publicId:e.publicId,reason:r.trim()}),"adminGrowth.tasks.rejected","Rejected"),children:t("adminGrowth.tasks.confirmReject",{defaultValue:"Confirm reject"})}),o.jsx(K,{variant:"outline",onClick:()=>d(!1),children:t("common.cancel",{defaultValue:"Cancel"})})]})]}):o.jsxs("div",{className:"flex flex-wrap gap-2",children:[o.jsx(K,{disabled:a.isPending,onClick:()=>m(()=>a.mutateAsync(e.publicId),"adminGrowth.tasks.approved","Approved â credit granted"),children:t("adminGrowth.tasks.approve",{defaultValue:"Approve & pay"})}),o.jsx(K,{variant:"outline",onClick:()=>d(!0),children:t("adminGrowth.tasks.reject",{defaultValue:"Reject"})})]}):e.rejectReason?o.jsx("p",{className:"text-13 text-[color:var(--muted-foreground)]",children:e.rejectReason}):null]})}function s4s(){const{t:e}=W(),t=JLs(),n=e4s(),[a,s]=h.useState(!1),[r,i]=h.useState([]),[c,d]=h.useState(""),[m,f]=h.useState(""),[p,y]=h.useState(null),v=t.data?.rule;if(v&&v.publicId!==p){y(v.publicId),s(v.status==="active");const w=v.conditions??{};i((w.tasks??[]).map(n4s)),d(w.daily_pending_cap!=null?String(w.daily_pending_cap):""),f(w.min_account_age_days!=null?String(w.min_account_age_days):"")}function $(w,S){i(k=>k.map((T,R)=>R===w?{...T,...S}:T))}async function x(){try{await n.mutateAsync({enabled:a,tasks:r.map(a4s),dailyPendingCap:c.trim()?Number(c):null,minAccountAgeDays:m.trim()?Number(m):null}),ie.success(e("adminGrowth.tasks.saved",{defaultValue:"Task wall saved"}))}catch(w){ie.error(da(w))}}return o.jsxs(Ee,{className:"space-y-4 p-5",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.tasks.
971configTitle",{defaultValue:"Task wall config"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.tasks.configDescription",{defaultValue:"Amounts, switches and accepted hosts. Task copy lives in the translation files, not here. Changes take effect on the next page load â no deploy."})})]}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[o.jsx("span",{children:e("adminGrowth.tasks.enabled",{defaultValue:"Enable the task wall"})}),o.jsx(js,{checked:a,onCheckedChange:s})]}),o.jsx(sn,{title:e("adminGrowth.tasks.tasksTitle",{defaultValue:"Tasks"}),children:o.jsxs("div",{className:"grid gap-3",children:[r.map((w,S)=>o.jsxs("div",{className:"grid gap-2 rounded-md border border-[color:var(--border)] p-3 sm:grid-cols-[1fr_auto]",children:[o.jsxs("div",{className:"grid gap-2",children:[o.jsx(De,{label:e("adminGrowth.tasks.taskKey",{defaultValue:"Task key"}),children:o.jsx(ge,{value:w.taskKey,onChange:k=>$(S,{taskKey:k.target.value})})}),o.jsx(De,{label:e("adminGrowth.tasks.rewardType",{defaultValue:"Reward type"}),hint:e("adminGrowth.tasks.rewardTypeHint",{defaultValue:"One-off credit pays once on approval. Top-up bonus is permanent: every later top-up pays max(standard tier, this percent)."}),children:o.jsx(ft,{value:w.rewardType,onChange:k=>$(S,{rewardType:k.target.value}),options:[{value:"credit",label:e("adminGrowth.tasks.rewardCredit",{defaultValue:"One-off credit"})},{value:"topup_percent",label:e("adminGrowth.tasks.rewardTopup",{defaultValue:"Permanent top-up bonus"})}]})}),o.jsx(De,{label:w.rewardType==="topup_percent"?e("adminGrowth.tasks.amountPercent",{defaultValue:"Bonus percent (0-100)"}):e("adminGrowth.tasks.amount",{defaultValue:"Amount (USD)"}),children:o.jsx(ge,{value:w.amount,inputMode:"decimal",onChange:k=>$(S,{amount:k.target.value})})}),o.jsx(De,{label:e("adminGrowth.tasks.hosts",{defaultValue:"Accepted hosts"}),hint:e("adminGrowth.tasks.hostsHint",{defaultValue:"Links outside this list are rejected at submission time."}),children:o.jsx(K_,{value:w.allowedHosts,onChange:k=>$(S,{allowedHosts:k})})}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm",children:[o.jsx("span",{children:e("adminGrowth.tasks.taskEnabled",{defaultValue:"Visible to users"})}),o.jsx(js,{checked:w.enabled,onCheckedChange:k=>$(S,{enabled:k})})]})]}),o.jsx(Aa,{"aria-label":e("common.remove",{defaultValue:"Remove"}),onClick:()=>i(k=>k.filter((T,R)=>R!==S)),children:o.jsx(Sc,{className:"size-4"})})]},S)),o.jsxs(K,{variant:"outline",onClick:()=>i(w=>[...w,{taskKey:"",amount:"",rewardType:"credit",enabled:!1,allowedHosts:[]}]),children:[o.jsx(wr,{className:"size-4"}),e("adminGrowth.tasks.addTask",{defaultValue:"Add task"})]})]})}),o.jsx(sn,{title:e("adminGrowth.tasks.guardsTitle",{defaultValue:"Abuse guards"}),children:o.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[o.jsx(De,{label:e("adminGrowth.tasks.dailyCap",{defaultValue:"Daily pending cap"}),hint:e("adminGrowth.tasks.dailyCapHint",{defaultValue:"0 = no cap. Fail-open if Redis is down."}),children:o.jsx(ge,{value:c,inputMode:"numeric",onChange:w=>d(w.target.value)})}),o.jsx(De,{label:e("adminGrowth.tasks.minAge",{defaultValue:"Minimum account age (days)"}),hint:e("adminGrowth.tasks.minAgeHint",{defaultValue:"0 = no age gate."}),children:o.jsx(ge,{value:m,inputMode:"numeric",onChange:w=>f(w.target.value)})})]})}),o.jsx(K,{onClick:x,disabled:n.isPending,children:e("common.save",{defaultValue:"Save"})})]})}function r4s(){const{t:e}=W(),[t,n]=h.useState("pending"),a=QLs(t);return o.jsxs("div",{className:"grid gap-4",children:[o.jsx(s4s,{}),o.jsxs(Ee,{className:"space-y-4 p-5",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminGrowth.tasks.queueTitle",{defaultValue:"Submissions"})}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.tasks.queueCount",{defaultValue:"{{count}} shown",count:a.data?.items.length??0})})]}),o.jsx(el,{value:t,onValueChange:s=>n(s),options:["pending","approved","rejected"].map(s=>({value:s,label:e(`adminGrowth.tasks.status.${s}`,{defaultValue:s})}
971))})]}),a.isLoading?null:(a.data?.items.length??0)===0?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("adminGrowth.tasks.empty",{defaultValue:"Nothing here."})}):o.jsx("div",{className:"grid gap-3",children:a.data.items.map(s=>o.jsx(o4s,{item:s},s.publicId))})]})]})}const Z6="onboarding",dJ=[{value:"onboarding",labelKey:"adminGrowth.tabs.onboarding",defaultLabel:"Signup & new users"},{value:"topup",labelKey:"adminGrowth.tabs.topup",defaultLabel:"Top-up bonus"},{value:"discount",labelKey:"adminGrowth.tabs.discount",defaultLabel:"Discount codes"},{value:"redeem",labelKey:"adminGrowth.tabs.redeem",defaultLabel:"Redeem codes"},{value:"referral",labelKey:"adminGrowth.tabs.referral",defaultLabel:"Referral cashback"},{value:"tasks",labelKey:"adminGrowth.tabs.tasks",defaultLabel:"Task wall"},{value:"grants",labelKey:"adminGrowth.tabs.grants",defaultLabel:"Credit grants"}];function J6(e){return dJ.some(t=>t.value===e)}function i4s(){const{t:e}=W(),{params:t,patch:n}=Mt(),a=Pe(t,"tab"),s=J6(a)?a:Z6,r=dJ.map(c=>({value:c.value,label:e(c.labelKey,{defaultValue:c.defaultLabel})}));function i(c){if(!J6(c))return;const d={tab:c===Z6?void 0:c};s==="discount"&&(d.batchCode=void 0,d.scStatus=void 0,d.ccStatus=void 0,d.ccEmail=void 0),s==="redeem"&&(d.rbBatch=void 0),s==="grants"&&(d.source=void 0,d.status=void 0,d.page=void 0),n(d)}return o.jsx(Vt,{title:e("adminGrowth.title"),description:e("adminGrowth.description"),children:o.jsxs(Cc,{value:s,onValueChange:i,children:[o.jsx("div",{className:"min-w-0 md:hidden",children:o.jsx(ft,{value:s,options:r,onValueChange:i,"aria-label":e("adminGrowth.tabs.mobileLabel",{defaultValue:"Growth section"})})}),o.jsx(tl,{className:"hidden md:inline-flex",children:r.map(c=>o.jsx(ia,{value:c.value,children:c.label},c.value))}),o.jsx(Tn,{value:"onboarding",className:"mt-4",children:o.jsx(K3s,{})}),o.jsx(Tn,{value:"topup",className:"mt-4",children:o.jsx(bLs,{})}),o.jsx(Tn,{value:"discount",className:"mt-4",children:o.jsx(PLs,{})}),o.jsx(Tn,{value:"redeem",className:"mt-4",children:o.jsx(LLs,{})}),o.jsx(Tn,{value:"referral",className:"mt-4",children:o.jsx(GLs,{})}),o.jsx(Tn,{value:"tasks",className:"mt-4",children:o.jsx(r4s,{})}),o.jsx(Tn,{value:"grants",className:"mt-4",children:o.jsx(WLs,{})})]})})}const e8=["kind","status","segment"],uJ={countryIn:"",signupAfter:"",signupBefore:"",minCumulativeSpendUsd:""};function l4s(e){return e?{countryIn:(e.countryIn??[]).join(", "),signupAfter:e.signupAfter?e.signupAfter.slice(0,10):"",signupBefore:e.signupBefore?e.signupBefore.slice(0,10):"",minCumulativeSpendUsd:e.minCumulativeSpendUsd==null?"":String(e.minCumulativeSpendUsd)}:uJ}function UP(e){const t={},n=e.countryIn.split(",").map(a=>a.trim().toUpperCase()).filter(Boolean);return n.length>0&&(t.countryIn=n),e.signupAfter&&(t.signupAfter=new Date(`${e.signupAfter}T00:00:00Z`).toISOString()),e.signupBefore&&(t.signupBefore=new Date(`${e.signupBefore}T00:00:00Z`).toISOString()),e.minCumulativeSpendUsd.trim()!==""&&(t.minCumulativeSpendUsd=Number(e.minCumulativeSpendUsd)),t}function c4s(e){return!!(e.countryIn.trim()||e.signupAfter||e.signupBefore||e.minCumulativeSpendUsd.trim())}function d4s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({kind:Pe(n,"kind"),status:Pe(n,"status")}),[n]),i=[{value:"",label:e("adminCampaigns.filters.allKinds")},{value:"static",label:e("adminCampaigns.filters.segmentKindStatic")},{value:"dynamic",label:e("adminCampaigns.filters.segmentKindDynamic")}],c=[{value:"",label:e("adminCampaigns.filters.allStatuses")},{value:"active",label:e("adminCampaigns.filters.statusActive")},{value:"archived",label:e("adminCampaigns.filters.statusArchived")}],d=Pe(n,"segment"),m=Dy(r),f=m.data?.items??[],p=()=>a({segment:"new"}),y=x=>a({segment:x.publicId}),v=()=>s(["segment"]),$=[{header:e("adminCampaigns.segments.name"),cell:x=>o.jsx("span",{className:"font-medium",children:x.name})},{header:e("adminCampaigns.segments.kind"),cell:x=>o.jsx(Xt,{variant:"outline",children:e(`adminCampaigns.segments.kind_${x.kind}`)})},{header:e("adminCampaigns.segments.members"),align:"right",cell:x=>t.number(x.memberCount)},{header:e("adminCampaigns.segments.materialized"),cell:x=>x.lastMaterializedAt?t.dateTime(x.lastMaterializedAt):"â"},{header:e("adminCampaigns.status"),cell:x=>o.jsx(Oe,{value:x.status})}];return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[o.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[o.jsx(Ze,{label:e("adminCampaigns.segments.kind"),value:r.kind,options:i,onChange:x=>a({kind:x})}),o.jsx(Ze,{label:e("adminCampaigns.status"),value:r.status,options:c,onChange:x=>a({status:x})}),o.jsx(nn,{show:Zt(n,e8),onReset:()=>s(e8)})]}),o.jsxs(K,{onClick:p,children:[o.jsx(wr,{className:"size-4"}),e("adminCampaigns.segments.create")]})]}),o.jsx(Pt,{label:e("adminCampaigns.segments.title"),rows:f,columns:$,isLoading:m.isLoading,error:m.error,emptyTitle:e("adminCampaigns.segments.empty"),onRowClick:y,pagination:{pageSize:20}}),o.jsx(u4s,{open:!!d,segment:d&&d!=="new"?f.find(x=>x.publicId===d)??null:null,onClose:v})]})}function u4s({open:e,segment:t,onClose:n}){const{t:a}=W(),s=!!t,r=W3s(),i=Y3s(),[c,d]=h.useState(""),[m,f]=h.useState(""),[p,y]=h.useState("static"),[v,$]=h.useState(uJ);h.useEffect(()=>{e&&(d(t?.name??""),f(t?.description??""),y(t?.kind??"static"),$(l4s(t?.rule??null)))},[e,t]);
971async function x(){try{s&&t?(await i.mutateAsync({publicId:t.publicId,name:c,description:m,...t.kind==="dynamic"?{rule:UP(v)}:{}}),ie.success(a("adminCampaigns.segments.saved"))):(await r.mutateAsync({name:c,description:m||void 0,kind:p,...p==="dynamic"?{rule:UP(v)}:{}}),ie.success(a("adminCampaigns.segments.created")),n())}catch(k){ie.error(da(k))}}const w=r.isPending||i.isPending,S=c.trim().length>0&&!w;return o.jsx(Vn,{open:e,onOpenChange:k=>k?void 0:n(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:s?t.name:a("adminCampaigns.segments.create")}),o.jsx(ua,{children:a("adminCampaigns.segments.sheetDescription")})]}),o.jsxs(sn,{title:a("adminCampaigns.segments.basics"),children:[o.jsx(De,{label:a("adminCampaigns.segments.name"),children:o.jsx(ge,{value:c,onChange:k=>d(k.target.value),placeholder:a("adminCampaigns.segments.namePlaceholder")})}),o.jsx(De,{label:a("adminCampaigns.segments.description"),children:o.jsx(_o,{value:m,onChange:k=>f(k.target.value),rows:2})}),s?null:o.jsx(De,{label:a("adminCampaigns.segments.kind"),hint:a("adminCampaigns.segments.kindHint"),children:o.jsx("div",{className:"grid grid-cols-2 gap-2 sm:flex",children:["static","dynamic"].map(k=>o.jsx(K,{type:"button",variant:p===k?"default":"outline",size:"sm",onClick:()=>y(k),children:a(`adminCampaigns.segments.kind_${k}`)},k))})})]}),p==="dynamic"?o.jsx(m4s,{rule:v,onChange:$}):null,o.jsxs("div",{className:"grid gap-2 pt-2 sm:flex sm:items-center",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:x,disabled:!S,children:a(w?"common.saving":s?"common.save":"adminCampaigns.segments.create")}),o.jsx(K,{className:"w-full sm:w-auto",variant:"ghost",onClick:n,children:a("common.cancel")})]}),s&&t?t.kind==="static"?o.jsx(p4s,{segment:t}):o.jsx(f4s,{segment:t}):null]})})}function m4s({rule:e,onChange:t}){const{t:n}=W(),a=Te(),s=eLs(),[r,i]=h.useState(null);h.useEffect(()=>{if(!c4s(e)){i(0);return}const d=setTimeout(()=>{s.mutateAsync(UP(e)).then(m=>i(m.matchCount)).catch(()=>i(null))},500);return()=>clearTimeout(d)},[e.countryIn,e.signupAfter,e.signupBefore,e.minCumulativeSpendUsd]);const c=d=>t({...e,...d});return o.jsxs(sn,{title:n("adminCampaigns.segments.rule"),hint:n("adminCampaigns.segments.ruleHint"),children:[o.jsx(De,{label:n("adminCampaigns.segments.countryIn"),hint:n("adminCampaigns.segments.countryInHint"),children:o.jsx(ge,{value:e.countryIn,onChange:d=>c({countryIn:d.target.value}),placeholder:"CN, US, JP"})}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:n("adminCampaigns.segments.signupAfter"),children:o.jsx(ge,{type:"date",value:e.signupAfter,onChange:d=>c({signupAfter:d.target.value})})}),o.jsx(De,{label:n("adminCampaigns.segments.signupBefore"),children:o.jsx(ge,{type:"date",value:e.signupBefore,onChange:d=>c({signupBefore:d.target.value})})})]}),o.jsx(De,{label:n("adminCampaigns.segments.minSpend"),hint:n("adminCampaigns.segments.minSpendHint"),children:o.jsx(ge,{type:"number",min:"0",step:"1",inputMode:"decimal",value:e.minCumulativeSpendUsd,onChange:d=>c({minCumulativeSpendUsd:d.target.value})})}),o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:s.isPending?n("adminCampaigns.segments.previewing"):n("adminCampaigns.segments.matchCount",{count:r??0,value:a.number(r??0)})})]})}function p4s({segment:e}){const{t}=W(),n=Te(),a=G3s(e.publicId),s=X3s(),r=Z3s(),[i,c]=h.useState([]),d=h.useCallback(async y=>(await oJ(y)).map($=>({id:$.publicId,label:$.email,hint:$.displayName??void 0})),[]);async function m(){if(i.length!==0)try{const y=await s.mutateAsync({publicId:e.publicId,userPublicIds:i.map(v=>v.id)});ie.success(t("adminCampaigns.segments.membersAdded",{count:y.added})),c([])}catch(y){ie.error(da(y))}}async function f(y){try{await r.mutateAsync({publicId:e.publicId,userPublicId:y})}catch(v){ie.error(da(v))}}const p=a.data?.items??[];return o.jsxs(sn,{title:t("adminCampaigns.segments.membersTitle"),hint:t("adminCampaigns.segments.membersHint"),children:[o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-end",children:[o.jsx("div",{className:"min-w-0 flex-1",children:o.jsx(De,{label:t("adminCampaigns.segments.addMembers"),children:o.jsx(yV,{value:i,onChange:c,onSearch:d,placeholder:t("adminCampaigns.segments.searchUsers"),searchPlaceholder:t("adminCampaigns.segments.searchUsers"),emptyText:t("adminCampaigns.segments.noUsers")})})}),o.jsx(K,{className:"w-full sm:w-auto",onClick:m,disabled:i.length===0||s.isPending,children:t("adminCampaigns.actionAdd")})]}),p.length===0?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:t("adminCampaigns.segments.noMembers")}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)] rounded-md border border-[color:var(--border)]",children:p.map(y=>o.jsxs("li",{className:"flex items-center justify-between gap-2 px-3 py-2 text-sm",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("span",{className:"block break-all",children:y.email}),o.jsxs("span",{className:"block break-words text-xs text-[color:var(--muted-foreground)]",children:[t(`adminCampaigns.segments.source_${y.source}`)," · ",n.dateTime(y.addedAt)]})]}),y.source==="manual"?o.jsx(K,{variant:"ghost",size:"icon",onClick:()=>f(y.userPublicId),"aria-label":t("adminCampaigns.actionRemove"),children:o.jsx(Sc,{className:"size-4"})}):null]},y.userPublicId))})]})}function f4s({segment:e}){const{t}=W(),n=Te(),a=J3s(),s=Q3s();async function r(){if(await zt({title:t("adminCampaigns.segments.materialize"),message:t("adminCampaigns.segments.materializeConfirm")}))try{const i=await a.mutateAsync(e.publicId);ie.success(t("adminCampaigns.segments.materializeDone",{count:i.memberCount}))}catch(i){ie.error(da(i))}}return o.jsxs(sn,{title:t("adminCampaigns.segments.materializeTitle"),hint:t("adminCampaigns.segments.materializeHint"),children:[o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsx("span",{className:"min-w-0 break-words text-sm text-[color:var(--muted-foreground)]",children:e.lastMaterializedAt?t("adminCampaigns.segments.lastMaterialized",{value:n.dateTime(e.lastMaterializedAt)}):t("adminCampaigns.segments.neverMaterialized")}),o.jsx(K,{className:"w-full sm:w-auto",onClick:r,disabled:a.isPending,children:a.isPending?t("adminCampaigns.segments.materializing"):t("adminCampaigns.segments.materialize")})]}),o.jsx(K,{variant:"ghost",className:"w-full text-[color:var(--destructive)] sm:w-auto",onClick:async()=>{await zt({message:t("adminCampaigns.segments.deleteConfirm"),variant:"destructive",confirmText:t("adminCampaigns.actionDelete")})&&s.mutate(e.publicId)},children:t("adminCampaigns.segments.deleteSegment")})]})}const t8=["status","segment"],g4s=["active","paused","archived"];function h4s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({status:Pe(n,"status")}),[n]),i=[{value:"",label:e("adminCampaigns.filters.allStatuses")},{value:"active",label:e("adminCampaigns.filters.statusActive")},{value:"paused",label:e("adminCampaigns.filters.statusPaused")},{value:"archived",label:e("adminCampaigns.filters.statusArchived")}],c=Dy({status:"active"}),d=aLs(r),m=d.data?.items??[],[f,p]=h.useState(!1),y=(c.data?.items.length??0)>0,v=sLs(),$=rLs();async function x(k,T){try{await v.mutateAsync({publicId:k.publicId,status:T}),ie.success(e("adminCampaigns.access.statusUpdated"))}catch(R){ie.error(da(R))}}async function w(k){if(await zt({message:e("adminCampaigns.access.deleteConfirm"),variant:"destructive",confirmText:e("adminCampaigns.actionDelete")}))try{await $.mutateAsync(k.publicId)}catch(T){ie.error(da(T))}}const S=[{header:e("adminCampaigns.access.model"),mobileValue:"break-all",cell:k=>o.jsx("span",{className:"font-medium",children:k.modelFullSlug})},{header:e("adminCampaigns.access.segment"),cell:k=>k.segmentName},{header:e("adminCampaigns.access.validFrom"),cell:k=>k.validFrom?t.dateTime(k.validFrom):e("adminCampaigns.always")},{header:e("adminCampaigns.access.validTo"),cell:k=>k.validTo?t.dateTime(k.validTo):e("adminCampaigns.noExpiry")}
971,{header:e("adminCampaigns.status"),cell:k=>o.jsx(Oe,{value:k.status})},{header:e("adminCampaigns.actions"),sticky:"right",cell:k=>o.jsxs("div",{className:"flex items-center justify-end gap-1",onClick:T=>T.stopPropagation(),children:[k.status==="active"?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>x(k,"paused"),children:e("adminCampaigns.pause")}):k.status==="paused"?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>x(k,"active"),children:e("adminCampaigns.resume")}):null,o.jsx(K,{variant:"ghost",size:"sm",className:"text-[color:var(--destructive)]",onClick:()=>w(k),children:e("adminCampaigns.actionDelete")})]})}];return!y&&!c.isLoading?o.jsx(Ee,{className:"p-8",children:o.jsx(Ot,{title:e("adminCampaigns.access.noSegmentsTitle"),description:e("adminCampaigns.access.noSegmentsDescription")})}):o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[o.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[o.jsx(Ze,{label:e("adminCampaigns.status"),value:r.status,options:i,onChange:k=>a({status:k})}),o.jsx(nn,{show:Zt(n,t8),onReset:()=>s(t8)})]}),o.jsxs(K,{onClick:()=>p(!0),children:[o.jsx(wr,{className:"size-4"}),e("adminCampaigns.access.create")]})]}),o.jsx(Pt,{label:e("adminCampaigns.access.title"),rows:m,columns:S,isLoading:d.isLoading,error:d.error,emptyTitle:e("adminCampaigns.access.empty"),pagination:{pageSize:20}}),o.jsx(y4s,{open:f,onClose:()=>p(!1),statuses:g4s})]})}function y4s({open:e,onClose:t}){const{t:n,i18n:a}=W(),s=oLs(),r=Ru(),[i,c]=h.useState(""),[d,m]=h.useState(""),[f,p]=h.useState(""),[y,v]=h.useState("");function $(){c(""),m(""),p(""),v("")}const x=r.data?.items.find(T=>T.publicId===i),w=x?.visibility==="public";async function S(){if(!(!i||!d)&&!(w&&!await zt({title:n("adminCampaigns.access.publicModelTitle"),message:n("adminCampaigns.access.publicModelWarning",{model:x?.fullSlug}),confirmText:n("adminCampaigns.access.createAnyway")})))try{await s.mutateAsync({modelPublicId:i,segmentPublicId:d,validFrom:f?new Date(`${f}T00:00:00Z`).toISOString():null,validTo:y?new Date(`${y}T23:59:59Z`).toISOString():null}),ie.success(n("adminCampaigns.access.created")),$(),t()}catch(T){ie.error(da(T))}}const k=!!(i&&d)&&!s.isPending;return o.jsx(Vn,{open:e,onOpenChange:T=>T?void 0:t(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:n("adminCampaigns.access.create")}),o.jsx(ua,{children:n("adminCampaigns.access.sheetDescription")})]}),o.jsxs(sn,{title:n("adminCampaigns.access.target"),children:[o.jsx(xN,{label:n("adminCampaigns.access.model"),value:i,onChange:c}),w?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:n("adminCampaigns.access.publicHint")}):null,o.jsx(W0,{label:n("adminCampaigns.access.segment"),value:d,onChange:m})]}),o.jsxs(sn,{title:n("adminCampaigns.window"),hint:n("adminCampaigns.windowHint"),contentClassName:"md:grid-cols-2",children:[o.jsx(De,{label:n("adminCampaigns.validFrom"),children:o.jsx(fr,{value:f,onChange:p,placeholder:n("adminCampaigns.always"),locale:a.language,clearLabel:n("adminCampaigns.actionClear"),labels:gr(n,n("adminCampaigns.actionClear"))})}),o.jsx(De,{label:n("adminCampaigns.validTo"),children:o.jsx(fr,{value:y,onChange:v,placeholder:n("adminCampaigns.noExpiry"),locale:a.language,clearLabel:n("adminCampaigns.actionClear"),labels:gr(n,n("adminCampaigns.actionClear"))})})]}),o.jsxs("div",{className:"grid gap-2 pt-2 sm:flex sm:items-center",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:S,disabled:!k,children:s.isPending?n("common.saving"):n("adminCampaigns.access.create")}),o.jsx(K,{className:"w-full sm:w-auto",variant:"ghost",onClick:t,children:n("common.cancel")})]})]})})}const n8=["status"];function BP(e,t=Date.now()){if(e.status!=="active")return!1;const n=new Date(e.validFrom).getTime(),a=e.validTo?new Date(e.validTo).getTime():1/0;return t>=n&&t<a}function v4s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({status:Pe(n,"status")}),[n]),i=[{value:"",label:e("adminCampaigns.filters.allStatuses")},{value:"active",label:e("adminCampaigns.filters.statusActive")},{value:"paused",label:e("adminCampaigns.filters.statusPaused")},{value:"ended",label:e("adminCampaigns.filters.statusEnded")},{value:"archived",label:e("adminCampaigns.filters.statusArchived")}],c=Dy({status:"active"}),d=iLs(r),m=d.data?.items??[],[f,p]=h.useState(null),y=aJ(),v=cLs();async function $(k,T){try{await y.mutateAsync({publicId:k.publicId,status:T}),ie.success(e("adminCampaigns.discounts.statusUpdated"))}catch(R){ie.error(da(R))}}async function x(k){if(await zt({message:e("adminCampaigns.discounts.deleteConfirm"),variant:"destructive",confirmText:e("adminCampaigns.actionDelete")}))try{await v.mutateAsync(k.publicId)}catch(T){ie.error(da(T))}}const w=[{header:e("adminCampaigns.discounts.model"),mobileValue:"break-all",cell:k=>o.jsx("span",{className:"font-medium",children:k.modelFullSlug})},{header:e("adminCampaigns.discounts.audience"),cell:k=>k.segmentName??e("adminCampaigns.allUsers")},{header:e("adminCampaigns.discounts.discount"),align:"right",cell:k=>o.jsxs("span",{className:"tabular-nums",children:["-",t.number(Math.round(k.value*100)),"%"]})},{header:e("adminCampaigns.discounts.window"),cell:k=>`${t.dateTime(k.validFrom)} â ${k.validTo?t.dateTime(k.validTo):e("adminCampaigns.noExpiry")}
971`},{header:e("adminCampaigns.status"),cell:k=>o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(Oe,{value:k.status}),BP(k)?o.jsx(Xt,{variant:"outline",children:e("adminCampaigns.discounts.live")}):null]})},{header:e("adminCampaigns.actions"),sticky:"right",cell:k=>o.jsxs("div",{className:"flex items-center justify-end gap-1",onClick:T=>T.stopPropagation(),children:[BP(k)?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>$(k,"paused"),children:e("adminCampaigns.pause")}):k.status==="paused"?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>$(k,"active"),children:e("adminCampaigns.resume")}):null,k.status==="active"||k.status==="paused"?o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>$(k,"ended"),children:e("adminCampaigns.discounts.end")}):null,o.jsx(K,{variant:"ghost",size:"sm",className:"text-[color:var(--destructive)]",onClick:()=>x(k),children:e("adminCampaigns.actionDelete")})]})}],S=(c.data?.items.length??0)>0;return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[o.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[o.jsx(Ze,{label:e("adminCampaigns.status"),value:r.status,options:i,onChange:k=>a({status:k})}),o.jsx(nn,{show:Zt(n,n8),onReset:()=>s(n8)})]}),o.jsxs(K,{onClick:()=>p({mode:"create"}),children:[o.jsx(wr,{className:"size-4"}),e("adminCampaigns.discounts.create"),o.jsx("span",{className:"sr-only",children:e("adminCampaigns.discounts.createAria",{defaultValue:"Create discount"})})]})]}),o.jsx(Pt,{label:e("adminCampaigns.discounts.title"),rows:m,columns:w,isLoading:d.isLoading,error:d.error,emptyTitle:e("adminCampaigns.discounts.empty"),onRowClick:k=>p({mode:"edit",discount:k}),pagination:{pageSize:20}}),f?o.jsx(b4s,{discount:f.mode==="edit"?f.discount:null,allowAll:S,onClose:()=>p(null)}):null]})}function b4s({discount:e,allowAll:t,onClose:n}){const{t:a,i18n:s}=W(),r=Te(),i=!!e,c=e?BP(e):!1,d=e?.status==="ended"||e?.status==="archived",m=c||d,f=lLs(),p=aJ(),y=Ru(),[v,$]=h.useState(""),[x,w]=h.useState(""),[S,k]=h.useState(e?String(Math.round(e.value*100)):""),[T,R]=h.useState(e?.name??""),[_,P]=h.useState(e?.validFrom?e.validFrom.slice(0,10):""),[j,N]=h.useState(e?.validTo?e.validTo.slice(0,10):""),I=i?y.data?.items.find(ne=>ne.fullSlug===e.modelFullSlug):y.data?.items.find(ne=>ne.publicId===v),z=Number(S)/100,E=h.useMemo(()=>{if(!I||!(z>0&&z<1))return null;const ne=Number(I.inputPricePer1m??0),q=Number(I.officialInputPricePer1m??0);if(!(ne>0))return null;const M=ne*(1-z),F=q>0?1-M/q:null;return{our:ne,official:q,discounted:M,savedVsOfficial:F}},[I,z]);async function L(){const ne=Number(S)/100;try{if(i&&e)await p.mutateAsync({publicId:e.publicId,value:ne,name:T||void 0,validFrom:_?new Date(`${_}T00:00:00Z`).toISOString():void 0,validTo:j?new Date(`${j}T23:59:59Z`).toISOString():null}),ie.success(a("adminCampaigns.discounts.saved"));else{if(!v||!_)return;await f.mutateAsync({modelPublicId:v,segmentPublicId:x||null,value:ne,name:T||void 0,validFrom:new Date(`${_}T00:00:00Z`).toISOString(),validTo:j?new Date(`${j}T23:59:59Z`).toISOString():null}),ie.success(a("adminCampaigns.discounts.created"))}n()}catch(q){ie.error(da(q))}}const O=f.isPending||p.isPending,V=z>0&&z<1&&(i||!!v&&!!_);return o.jsx(Vn,{open:!0,onOpenChange:ne=>ne?void 0:n(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{className:"break-all",children:i?e.modelFullSlug:a("adminCampaigns.discounts.create")}),o.jsx(ua,{children:a("adminCampaigns.discounts.sheetDescription")})]}),m?o.jsx("p",{className:"rounded-md border border-[color:var(--border)] bg-[color:var(--muted)] px-3 py-2 text-sm text-[color:var(--muted-foreground)]",children:a(c?"adminCampaigns.discounts.liveReadonly":"adminCampaigns.discounts.terminalReadonly")}):null,o.jsxs(sn,{title:a("adminCampaigns.discounts.target"),children:[i?o.jsx(De,{label:a("adminCampaigns.discounts.model"),children:o.jsx(ge,{value:e.modelFullSlug,disabled:!0})}):o.jsx(xN,{label:a("adminCampaigns.discounts.model"),value:v,onChange:$}),i?o.jsx(De,{label:a("adminCampaigns.discounts.audience"),children:o.jsx(ge,{value:e.segmentName??a("adminCampaigns.allUsers"),disabled:!0})}):o.jsx(W0,{label:a("adminCampaigns.discounts.audience"),value:x,onChange:w,allowAll:t,allLabel:a("adminCampaigns.allUsers"),hint:a("adminCampaigns.discounts.audienceHint")})]}),o.jsxs(sn,{title:a("adminCampaigns.discounts.amount"),children:[o.jsx(De,{label:a("adminCampaigns.discounts.percentLabel"),hint:a("adminCampaigns.discounts.percentHint"),error:S&&!(z>0&&z<1)?a("adminCampaigns.discounts.percentError"):void 0,children:o.jsx(ge,{type:"number",min:"1",max:"99",step:"1",inputMode:"numeric",value:S,onChange:ne=>k(ne.target.value),disabled:m,placeholder:"20"})}),o.jsx(De,{label:a("adminCampaigns.discounts.name"),hint:a("adminCampaigns.discounts.nameHint"),children:o.jsx(ge,{value:T,onChange:ne=>R(ne.target.value),disabled:m})}),E?o.jsxs("div",{className:"grid gap-1 rounded-md border border-[color:var(--border)] bg-[color:var(--muted)] px-3 py-2 text-sm",children:[o.jsxs("div",{className:"grid gap-1 sm:flex sm:items-center sm:justify-between",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:a("adminCampaigns.discounts.previewPlatform")}),o.jsxs("span",{className:"tabular-nums sm:text-right",children:[o.jsx("span",{className:"line-through opacity-60",children:r.currency(E.our)})," ",o.jsx("span",{className:"font-semibold",children:r.currency(E.discounted)})," /1M"]})]}),E.savedVsOfficial!=null?o.jsxs("div",{className:"grid gap-1 sm:flex sm:items-center sm:justify-between",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:a("adminCampaigns.discounts.previewVsOfficial")}),o.jsxs("span",{className:"tabular-nums font-medium sm:text-right",children:["-",r.number(Math.round(E.savedVsOfficial*100)),"%"]})]}):null]}):null]}),o.jsxs(sn,{title:a("adminCampaigns.window"),contentClassName:"md:grid-cols-2",children:[o.jsx(De,{label:a("adminCampaigns.validFrom"),children:o.jsx(fr,{value:_,onCh
971ange:P,placeholder:a("adminCampaigns.discounts.pickStart"),locale:s.language,clearLabel:a("adminCampaigns.actionClear"),labels:gr(a,a("adminCampaigns.actionClear")),disabled:m})}),o.jsx(De,{label:a("adminCampaigns.validTo"),children:o.jsx(fr,{value:j,onChange:N,placeholder:a("adminCampaigns.noExpiry"),locale:s.language,clearLabel:a("adminCampaigns.actionClear"),labels:gr(a,a("adminCampaigns.actionClear")),disabled:m})})]}),o.jsxs("div",{className:"grid gap-2 pt-2 sm:flex sm:items-center",children:[m?null:o.jsx(K,{className:"w-full sm:w-auto",onClick:L,disabled:!V||O,children:a(O?"common.saving":i?"common.save":"adminCampaigns.discounts.create")}),o.jsx(K,{className:"w-full sm:w-auto",variant:"ghost",onClick:n,children:a(m?"adminCampaigns.actionClose":"common.cancel")})]})]})})}const x4s=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function $4s(e){const t=e.split(/[\n\r,;,;\s]+/).map(r=>r.trim().toLowerCase()).filter(Boolean),n=[],a=[],s=new Set;for(const r of t)s.has(r)||(s.add(r),(x4s.test(r)?n:a).push(r));return{emails:n,invalid:a}}function w4s(e,t=new Date){return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+e)).toISOString().slice(0,10)}const a8=["kind","status"];function k4s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({kind:Pe(n,"kind"),status:Pe(n,"status")}),[n]),i=[{value:"",label:e("adminCampaigns.filters.allKinds")},{value:"grant",label:e("adminCampaigns.filters.grantKindGrant")},{value:"revoke",label:e("adminCampaigns.filters.grantKindRevoke")}],c=[{value:"",label:e("adminCampaigns.filters.allStatuses")},{value:"pending",label:e("adminCampaigns.filters.statusPending")},{value:"processing",label:e("adminCampaigns.filters.statusProcessing")},{value:"completed",label:e("adminCampaigns.filters.statusCompleted")},{value:"failed",label:e("adminCampaigns.filters.statusFailed")}],d=Pe(n,"batch"),m=dLs(r),f=m.data?.items??[],[p,y]=h.useState(!1),v=pLs();async function $(w){if(await zt({title:e("adminCampaigns.grants.revoke"),message:e("adminCampaigns.grants.revokeConfirm",{count:w.recipientCount,model:w.modelFullSlugs.join(", ")}),variant:"destructive",confirmText:e("adminCampaigns.grants.revoke")}))try{await v.mutateAsync({batchId:w.publicId}),ie.success(e("adminCampaigns.grants.revokeQueued"))}catch(k){ie.error(da(k))}}const x=[{header:e("adminCampaigns.grants.model"),mobileValue:"break-all",cell:w=>w.modelFullSlugs.join(", ")},{header:e("adminCampaigns.grants.kind"),cell:w=>o.jsx(Xt,{variant:"outline",children:e(`adminCampaigns.grants.kind_${w.kind}`)})},{header:e("adminCampaigns.grants.time"),cell:w=>t.dateTime(w.createdAt)},{header:e("adminCampaigns.grants.recipients"),align:"right",cell:w=>t.number(w.recipientCount)},{header:e("adminCampaigns.grants.amount"),align:"right",cell:w=>t.currency(Number(w.amountUsd))},{header:e("adminCampaigns.grants.expiry"),cell:w=>w.bucketExpiresAt?t.dateTime(w.bucketExpiresAt):e("adminCampaigns.noExpiry")},{header:e("adminCampaigns.status"),cell:w=>o.jsx(Oe,{value:w.status})},{header:e("adminCampaigns.actions"),sticky:"right",cell:w=>o.jsx("div",{className:"flex items-center justify-end gap-1",onClick:S=>S.stopPropagation(),children:w.kind==="grant"&&w.status==="completed"?o.jsx(K,{variant:"ghost",size:"sm",className:"text-[color:var(--destructive)]",onClick:()=>$(w),children:e("adminCampaigns.grants.revoke")}):null})}];return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[o.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[o.jsx(Ze,{label:e("adminCampaigns.grants.kind"),value:r.kind,options:i,onChange:w=>a({kind:w})}),o.jsx(Ze,{label:e("adminCampaigns.status"),value:r.status,options:c,onChange:w=>a({status:w})}),o.jsx(nn,{show:Zt(n,a8),onReset:()=>s(a8)})]}),o.jsxs(K,{onClick:()=>y(!0),children:[o.jsx(wr,{className:"size-4"}),e("adminCampaigns.grants.create")]})]}),o.jsx(Pt,{label:e("adminCampaigns.grants.title"),rows:f,columns:x,isLoading:m.isLoading,error:m.error,emptyTitle:e("adminCampaigns.grants.empty"),onRowClick:w=>a({batch:w.publicId}),mobileVisibleFieldCount:3,pagination:{pageSize:20}}),o.jsx(C4s,{open:p,onClose:()=>y(!1)}),o.jsx(S4s,{batchId:d||null,onClose:()=>s(["batch"])})]})}function C4s({open:e,onClose:t}){const{t:n,i18n:a}
971=W(),s=Te(),r=mLs(),i=Dy({status:"active"}),c=Ru(),[d,m]=h.useState("segment"),[f,p]=h.useState([]),[y,v]=h.useState(""),[$,x]=h.useState([]),[w,S]=h.useState(""),[k,T]=h.useState(null),[R,_]=h.useState(!1),[P,j]=h.useState(""),[N,I]=h.useState(""),[z,E]=h.useState(!0),[L,O]=h.useState("");function V(){m("segment"),p([]),v(""),x([]),S(""),T(null),j(""),I(""),E(!0),O("")}const ne=h.useMemo(()=>[...c.data?.items??[]].sort((Y,pe)=>Y.fullSlug.localeCompare(pe.fullSlug)).map(Y=>({value:Y.publicId,label:Y.fullSlug})),[c.data]),q=h.useMemo(()=>{const Y=new Map;for(const pe of c.data?.items??[])Y.set(pe.publicId,pe.fullSlug);return Y},[c.data]),M=h.useCallback(async Y=>(await oJ(Y)).map(se=>({id:se.publicId,label:se.email,hint:se.displayName??void 0})),[]);async function F(){const{emails:Y,invalid:pe}=$4s(w);if(!(Y.length===0&&pe.length===0)){_(!0);try{const{matched:se,unmatchedEmails:we}=await fLs(Y),me=se.filter(ye=>ye.status==="active");x(ye=>{const _e=new Map(ye.map(ae=>[ae.id,ae]));for(const ae of me)_e.set(ae.publicId,{id:ae.publicId,label:ae.email,hint:ae.displayName??void 0});return[..._e.values()]}),T({matchedCount:me.length,unmatched:we,invalid:pe,inactive:se.filter(ye=>ye.status!=="active").map(ye=>ye.email)}),S("")}catch(se){ie.error(da(se))}finally{_(!1)}}}const H=i.data?.items.find(Y=>Y.publicId===y),ee=d==="segment"?H?.memberCount??0:$.length,B=Number(P),G=ee*(Number.isFinite(B)?B:0);async function Q(){if(f.length===0||!(B>=.01)||d==="segment"&&!y||d==="users"&&$.length===0)return;const Y=f.map(se=>q.get(se)??se);if(await zt({title:n("adminCampaigns.grants.confirmTitle"),message:n("adminCampaigns.grants.confirmMessage",{count:ee,amount:s.currency(B),total:s.currency(G)}),content:o.jsxs("dl",{className:"grid gap-2 text-sm",children:[o.jsx(wo,{label:n("adminCampaigns.grants.model"),value:Y.join(", ")}),o.jsx(wo,{label:n("adminCampaigns.grants.recipients"),value:s.number(ee)}),o.jsx(wo,{label:n("adminCampaigns.grants.amountEach"),value:s.currency(B)}),o.jsx(wo,{label:n("adminCampaigns.grants.total"),value:s.currency(G)}),o.jsx(wo,{label:n("adminCampaigns.grants.expiry"),value:N||n("adminCampaigns.noExpiry")}),o.jsx(wo,{label:n("adminCampaigns.grants.notifyEmail"),value:n(z?"adminCampaigns.grants.notifyYes":"adminCampaigns.grants.notifyNo")})]}),confirmText:n("adminCampaigns.grants.confirmSend")}))try{await r.mutateAsync({modelPublicIds:f,...d==="segment"?{segmentPublicId:y}:{userPublicIds:$.map(se=>se.id)},amountUsd:B,bucketExpiresAt:N?new Date(`${N}T23:59:59Z`).toISOString():null,notifyEmail:z,note:L||void 0}),ie.success(n("adminCampaigns.grants.queued")),V(),t()}catch(se){ie.error(da(se))}}const de=f.length>0&&B>=.01&&B<=2e3&&(d==="segment"?!!y:$.length>0)&&!r.isPending;return o.jsx(Vn,{open:e,onOpenChange:Y=>Y?void 0:t(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:n("adminCampaigns.grants.create")}),o.jsx(ua,{children:n("adminCampaigns.grants.sheetDescription")})]}),o.jsxs(sn,{title:n("adminCampaigns.grants.audience"),children:[o.jsx(el,{value:d,onValueChange:Y=>m(Y),options:[{value:"segment",label:n("adminCampaigns.grants.bySegment")},{value:"users",label:n("adminCampaigns.grants.byUsers")}]}),d==="segment"?o.jsx(W0,{label:n("adminCampaigns.grants.segment"),value:y,onChange:v}):o.jsxs(o.Fragment,{children:[o.jsx(De,{label:n("adminCampaigns.grants.users"),children:o.jsx(yV,{value:$,onChange:x,onSearch:M,placeholder:n("adminCampaigns.grants.searchUsers"),searchPlaceholder:n("adminCampaigns.grants.searchUsers"),emptyText:n("adminCampaigns.grants.noUsers")})}),o.jsxs(De,{label:n("adminCampaigns.grants.pasteEmails"),children:[o.jsx(_o,{value:w,onChange:Y=>S(Y.target.value),rows:3,placeholder:n("adminCampaigns.grants.pasteEmailsPlaceholder")}),o.jsx("div",{className:"mt-2",children:o.jsx(K,{variant:"outline",size:"sm",onClick:F,disabled:R||!w.trim(),children:n(R?"common.loading":"adminCampaigns.grants.importEmails")})}),k?o.jsxs("div",{className:"mt-2 grid gap-1 text-xs text-[color:var(--muted-foreground)]",children:[o.jsx("p",{children:n("adminCampaigns.grants.importMatched",{count:k.matchedCount})}),k.unmatched.length>0?o.jsxs("p",{className:"break-words",children:[n("adminCampaigns.grants.importUnmatched",{count:k.unmatched.length}
971)," ",k.unmatched.join(", ")]}):null,k.invalid.length>0?o.jsxs("p",{className:"break-words",children:[n("adminCampaigns.grants.importInvalid",{count:k.invalid.length})," ",k.invalid.join(", ")]}):null,k.inactive.length>0?o.jsxs("p",{className:"break-words",children:[n("adminCampaigns.grants.importInactive",{count:k.inactive.length})," ",k.inactive.join(", ")]}):null]}):null]})]})]}),o.jsxs(sn,{title:n("adminCampaigns.grants.grantDetails"),children:[o.jsx(De,{label:n("adminCampaigns.grants.model"),hint:n("adminCampaigns.grants.modelHint"),children:o.jsx(ly,{value:f,onChange:p,options:ne,allLabel:n("adminCampaigns.grants.pickModels"),placeholder:n("adminCampaigns.grants.pickModels"),triggerLabel:Y=>Y.length===0?n("adminCampaigns.grants.pickModels"):Y.length<=2?Y.map(pe=>q.get(pe)??pe).join(", "):n("adminCampaigns.grants.nModels",{count:Y.length})})}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:n("adminCampaigns.grants.amountEach"),hint:n("adminCampaigns.grants.amountHint"),children:o.jsx(ge,{type:"number",min:"0.01",max:"2000",step:"0.01",inputMode:"decimal",value:P,onChange:Y=>j(Y.target.value),placeholder:"5.00"})}),o.jsxs(De,{label:n("adminCampaigns.grants.expiry"),hint:n("adminCampaigns.grants.expiryHint"),children:[o.jsx(fr,{value:N,onChange:I,placeholder:n("adminCampaigns.noExpiry"),locale:a.language,clearLabel:n("adminCampaigns.actionClear"),labels:gr(n,n("adminCampaigns.actionClear"))}),o.jsxs("div",{className:"mt-2 flex flex-wrap gap-2",children:[[7,30,90].map(Y=>o.jsx(K,{variant:"outline",size:"sm",onClick:()=>I(w4s(Y)),children:n(`adminCampaigns.grants.preset${Y}d`)},Y)),o.jsx(K,{variant:"outline",size:"sm",onClick:()=>I(""),children:n("adminCampaigns.noExpiry")})]})]})]}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[o.jsx("span",{children:n("adminCampaigns.grants.notifyEmail")}),o.jsx(js,{checked:z,onCheckedChange:E})]}),o.jsx(De,{label:n("adminCampaigns.grants.note"),children:o.jsx(_o,{value:L,onChange:Y=>O(Y.target.value),rows:2})})]}),ee>0&&B>0?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:n("adminCampaigns.grants.summary",{count:ee,amount:s.currency(B),total:s.currency(G)})}):null,o.jsxs("div",{className:"grid gap-2 pt-2 sm:flex sm:items-center",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:Q,disabled:!de,children:r.isPending?n("adminCampaigns.grants.sending"):n("adminCampaigns.grants.send")}),o.jsx(K,{className:"w-full sm:w-auto",variant:"ghost",onClick:t,children:n("common.cancel")})]})]})})}function S4s({batchId:e,onClose:t}){const{t:n}=W(),a=Te(),r=uLs(e).data;return o.jsx(Vn,{open:!!e,onOpenChange:i=>i?void 0:t(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:n("adminCampaigns.grants.batchTitle")}),o.jsx(ua,{children:r?.modelFullSlugs.join(", ")??""})]}),r?o.jsxs("dl",{className:"grid gap-2 text-sm",children:[o.jsx(wo,{label:n("adminCampaigns.grants.kind"),value:n(`adminCampaigns.grants.kind_${r.kind}`)}),o.jsx(wo,{label:n("adminCampaigns.status"),value:o.jsx(Oe,{value:r.status})}),o.jsx(wo,{label:n("adminCampaigns.grants.recipients"),value:a.number(r.recipientCount)}),o.jsx(wo,{label:n("adminCampaigns.grants.amountEach"),value:a.currency(Number(r.amountUsd))}),o.jsx(wo,{label:n("adminCampaigns.grants.succeeded"),value:a.number(r.succeededCount)}),o.jsx(wo,{label:n("adminCampaigns.grants.failed"),value:a.number(r.failedCount)}),Number(r.revokedAmount)>0?o.jsx(wo,{label:n("adminCampaigns.grants.revokedAmount"),value:a.currency(Number(r.revokedAmount))}):null,r.completedAt?o.jsx(wo,{label:n("adminCampaigns.grants.completedAt"),value:a.dateTime(r.completedAt)}):null]}):o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:n("common.loading")})]})})}function wo({label:e,value:t}){return o.jsxs("div",{className:"grid gap-1 border-b border-[color:var(--border)] pb-2 last:border-0 sm:flex sm:items-center sm:justify-between sm:gap-3",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:"min-w-0 break-words tabular-nums sm:text-right",children:t})]})}function A4s(e){const t=Object.entries(e).filter(([,a])=>a!==void 0&&a!==""),n=new URLSearchParams(t.map(([a,s])=>
971[a,String(s)])).toString();return n?`?${n}`:""}function T4s(e={}){return Ue({queryKey:["ops","campaigns","recurring",e],queryFn:()=>ve.request(`/ops/campaigns/recurring${A4s({limit:100,status:e.status,unit:e.unit})}`),retry:1})}function R4s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/campaigns/recurring",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","recurring"]})})}function P4s(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/campaigns/recurring/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:["ops","campaigns","recurring"]})})}const o8=["rstatus","runit"],_4s=["UTC","Asia/Shanghai","Asia/Tokyo","Asia/Singapore","Europe/London","America/New_York","America/Los_Angeles"];function j4s(){const{t:e}=W(),t=Te(),{params:n,patch:a,remove:s}=Mt(),r=h.useMemo(()=>({status:Pe(n,"rstatus"),unit:Pe(n,"runit")}),[n]),i=T4s(r),c=i.data?.items??[],[d,m]=h.useState(!1),[f,p]=h.useState(null),y=[{value:"",label:e("adminCampaigns.recurring.allStatuses")},{value:"draft",label:e("adminCampaigns.recurring.status_draft")},{value:"active",label:e("adminCampaigns.recurring.status_active")},{value:"paused",label:e("adminCampaigns.recurring.status_paused")},{value:"archived",label:e("adminCampaigns.recurring.status_archived")}],v=[{value:"",label:e("adminCampaigns.recurring.allUnits")},{value:"tokens",label:e("adminCampaigns.recurring.unit_tokens")},{value:"usd",label:e("adminCampaigns.recurring.unit_usd")}];function $(){p(null),m(!0)}function x(S){p(S),m(!0)}const w=[{header:e("adminCampaigns.recurring.name"),cell:S=>S.name},{header:e("adminCampaigns.recurring.unit"),cell:S=>o.jsx(Xt,{variant:"outline",children:e(`adminCampaigns.recurring.unit_${S.unit}`)})},{header:e("adminCampaigns.recurring.perPeriod"),align:"right",cell:S=>S.unit==="tokens"?`${t.number(S.tokensPerPeriod??0)} tok`:t.currency(Number(S.amountUsd??0))},{header:e("adminCampaigns.recurring.cadence"),cell:S=>e(`adminCampaigns.recurring.cadence_${S.cadence}`)},{header:e("adminCampaigns.recurring.audience"),cell:S=>S.segmentName??e("adminCampaigns.allUsers")},{header:e("adminCampaigns.recurring.thisPeriod"),align:"right",cell:S=>o.jsxs("span",{className:"tabular-nums",children:[t.number(S.grantedCount)," · ",t.number(Number(S.consumedTokens)),"/",t.number(Number(S.grantedTokens))]})},{header:e("adminCampaigns.status"),cell:S=>o.jsx(Oe,{value:S.status})}];return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[o.jsxs("div",{className:"flex flex-wrap items-end gap-3",children:[o.jsx(Ze,{label:e("adminCampaigns.status"),value:r.status,options:y,onChange:S=>a({rstatus:S})}),o.jsx(Ze,{label:e("adminCampaigns.recurring.unit"),value:r.unit,options:v,onChange:S=>a({runit:S})}),o.jsx(nn,{show:Zt(n,o8),onReset:()=>s(o8)})]}),o.jsxs(K,{onClick:$,children:[o.jsx(wr,{className:"size-4"}),e("adminCampaigns.recurring.create")]})]}),o.jsx(Pt,{label:e("adminCampaigns.recurring.title"),rows:c,columns:w,isLoading:i.isLoading,error:i.error,emptyTitle:e("adminCampaigns.recurring.empty"),onRowClick:x,mobileVisibleFieldCount:3,pagination:{pageSize:20}}),o.jsx(N4s,{open:d,editing:f,onClose:()=>m(!1)})]})}function N4s({open:e,editing:t,onClose:n}){const{t:a,i18n:s}=W(),r=R4s(),i=P4s(),c=Ru(),d=!!t,m=d&&t.status!=="draft",[f,p]=h.useState(t?.name??""),[y,v]=h.useState(t?.unit??"tokens"),[$,x]=h.useState(t?.tokensPerPeriod!=null?String(t.tokensPerPeriod):""),[w,S]=h.useState(t?.amountUsd??""),[k,T]=h.useState([]),[R,_]=h.useState(""),[P,j]=h.useState(t?.segmentPublicId??""),[N,I]=h.useState(t?.cadence??"daily"),[z,E]=h.useState(t?.anchorTz??"UTC"),[L,O]=h.useState(t?.startsAt?t.startsAt.slice(0,10):""),[V,ne]=h.useState(t?.endsAt?t.endsAt.slice(0,10):""),[q,M]=h.useState(t?.excludeRisky??!0),[F,H]=h.useState(t?.status??"draft"),ee=`${e}:${t?.publicId??"new"}`,[B,G]=h.useState("");ee!==B&&(G(ee),p(t?.name??""),v(t?.unit??"tokens"),x(t?.tokensPerPeriod!=null?String(t.tokensPerPeriod):""),S(t?.amountUsd??""),T([]),_(""),j(t?.segmentPublicId??""),I(t?.cadence??"daily"),E(t?.anchorTz??"UTC"),O(t?.startsAt?t.startsAt.slice(0,10):""),ne(t?.endsAt?t.endsAt.slice(0,10):""),M(t?.excludeRisky??!0),H(t?.status??"draft"));const Q=h.useMemo(()=>[...c.data?.items??[]].sort((ae,Je)=>ae.fullSlug.localeCompare(Je.fullSlug)).map(ae=>({value:ae.publicId,label:ae.fullSlug})),[c.data]),de=h.useMemo(()=>{const ae=new Map;for(const Je of c.data?.items??[])ae.set(Je.publicId,Je.fullSlug);return ae},[c.data]),Y=Number($),pe=Number(w);function se(ae){ae&&ie.warning(ae)}
971async function we(){try{if(d&&t){const ae=await i.mutateAsync({publicId:t.publicId,name:f.trim(),status:F,...t.unit==="tokens"?{tokensPerPeriod:Y}:{amountUsd:pe},cadence:N,anchorTz:z,startsAt:L?new Date(`${L}T00:00:00Z`).toISOString():null,endsAt:V?new Date(`${V}T23:59:59Z`).toISOString():null,excludeRisky:q});se(ae.warning),ie.success(a("adminCampaigns.recurring.saved"))}else{const ae={name:f.trim(),unit:y,...y==="tokens"?{tokensPerPeriod:Y,modelPublicIds:k}:{amountUsd:pe,modelPublicId:R},...P?{segmentPublicId:P}:{},cadence:N,anchorTz:z,startsAt:L?new Date(`${L}T00:00:00Z`).toISOString():null,endsAt:V?new Date(`${V}T23:59:59Z`).toISOString():null,excludeRisky:q},Je=await r.mutateAsync(ae);se(Je.warning),ie.success(a("adminCampaigns.recurring.created"))}n()}catch(ae){ie.error(da(ae))}}const me=y==="tokens"?Number.isInteger(Y)&&Y>0:pe>0,ye=d||(y==="tokens"?k.length>0:!!R),_e=!!f.trim()&&me&&ye&&!r.isPending&&!i.isPending;return o.jsx(Vn,{open:e,onOpenChange:ae=>ae?void 0:n(),children:o.jsxs(Nn,{side:"auto",className:"gap-4",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:a(d?"adminCampaigns.recurring.editTitle":"adminCampaigns.recurring.create")}),o.jsx(ua,{children:a("adminCampaigns.recurring.sheetDescription")})]}),o.jsxs(sn,{title:a("adminCampaigns.recurring.basics"),children:[o.jsx(De,{label:a("adminCampaigns.recurring.name"),children:o.jsx(ge,{value:f,onChange:ae=>p(ae.target.value),placeholder:a("adminCampaigns.recurring.namePlaceholder")})}),o.jsx(De,{label:a("adminCampaigns.recurring.unit"),hint:a(d?"adminCampaigns.recurring.unitLocked":"adminCampaigns.recurring.unitHint"),children:o.jsx(el,{value:y,onValueChange:ae=>v(ae),options:[{value:"tokens",label:a("adminCampaigns.recurring.unit_tokens"),disabled:d},{value:"usd",label:a("adminCampaigns.recurring.unit_usd"),disabled:d}]})})]}),o.jsxs(sn,{title:a("adminCampaigns.recurring.targeting"),children:[y==="tokens"?o.jsx(De,{label:a("adminCampaigns.recurring.models"),hint:a("adminCampaigns.recurring.modelsHint"),children:d?o.jsx("p",{className:"break-words text-sm text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:t.modelIds.map(ae=>de.get(String(ae))??`#${ae}`).join(", ")||"â"}):o.jsx(ly,{value:k,onChange:T,options:Q,allLabel:a("adminCampaigns.recurring.pickModels"),placeholder:a("adminCampaigns.recurring.pickModels"),triggerLabel:ae=>ae.length===0?a("adminCampaigns.recurring.pickModels"):a("adminCampaigns.recurring.nModels",{count:ae.length})})}):d?o.jsx(De,{label:a("adminCampaigns.recurring.model"),hint:a("adminCampaigns.recurring.usdSingleModelHint"),children:o.jsx("p",{className:"break-words text-sm text-[color:var(--muted-foreground)] [overflow-wrap:anywhere]",children:t.modelIds.map(ae=>de.get(String(ae))??`#${ae}`).join(", ")||"â"})}):o.jsx(xN,{label:a("adminCampaigns.recurring.model"),value:R,onChange:_,hint:a("adminCampaigns.recurring.usdSingleModelHint")}),d?o.jsx(De,{label:a("adminCampaigns.recurring.audience"),children:o.jsx("p",{className:"break-words text-sm text-[color:var(--muted-foreground)]",children:t.segmentName??a("adminCampaigns.allUsers")})}):o.jsx(W0,{label:a("adminCampaigns.recurring.audience"),value:P,onChange:j,allowAll:!0,hint:a("adminCampaigns.recurring.audienceHint")})]}),o.jsxs(sn,{title:a("adminCampaigns.recurring.schedule"),children:[o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:a("adminCampaigns.recurring.perPeriod"),hint:a(y==="tokens"?"adminCampaigns.recurring.tokensHint":"adminCampaigns.recurring.usdHint"),children:y==="tokens"?o.jsx(ge,{type:"number",min:"1",step:"1",inputMode:"numeric",value:$,onChange:ae=>x(ae.target.value),placeholder:"100000"}):o.jsx(ge,{type:"number",min:"0.01",max:"2000",step:"0.01",inputMode:"decimal",value:w,onChange:ae=>S(ae.target.value),placeholder:"5.00"})}),o.jsx(De,{label:a("adminCampaigns.recurring.cadence"),hint:m?a("adminCampaigns.recurring.unitLocked"):void 0,children:o.jsx(el,{value:N,onValueChange:ae=>I(ae),options:[{value:"daily",label:a("adminCampaigns.recurring.cadence_daily"),disabled:m},{value:"weekly",label:a("adminCampaigns.recurring.cadence_weekly"),disabled:m}]})})]}),o.jsx(De,{label:a("adminCampaigns.recurring.anchorTz"),hint:a(m?"adminCampaigns.recurring.unitLocked":"adminCampaigns.recurring.anchorTzHint"),children:o.jsxs(Ms,{value:z,onValueChange:E,disabled:m,children:[o.jsx(as,{children:o.jsx(Es,{})}),o.jsx(os,{children:_4s.map(ae=>o.jsx(zn,{value:ae,children:ae},ae))})]})}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:a("adminCampaigns.recurring.startsAt"),hint:a("adminCampaigns.recurring.startsAtHint"),children:o.jsx(fr,{value:L,onChange:O,placeholder:a("adminCampaigns.recurring.immediately"),locale:s.language,clearLabel:a("adminCampaigns.actionClear"),labels:gr(a,a("adminCampaigns.actionClear"))})}),o.jsx(De,{label:a("adminCampaigns.recurring.endsAt"),hint:a("adminCampaigns.recurring.endsAtHint"),children:o.jsx(fr,{value:V,onChange:ne,placeholder:a("adminCampaigns.noExpiry"),locale:s.language,clearLabel:a("adminCampaigns.actionClear"),labels:gr(a,a("adminCampaigns.actionClear"))})})]}),o.jsxs("label",{className:"flex items-center justify-between gap-3 text-sm font-medium",children:[o.jsx("span",{children:a("adminCampaigns.recurring.excludeRisky")}),o.jsx(js,{checked:q,onCheckedChange:M})]})]}),d?o.jsx(sn,{title:a("adminCampaigns.status"),children:o.jsx(De,{label:a("adminCampaigns.status"),children:o.jsxs(Ms,{value:F,onValueChange:ae=>H(ae),children:[o.jsx(as,{children:o.jsx(Es,{})}),o.jsx(os,{children:["draft","active","paused","archived"].map(ae=>o.jsx(zn,{value:ae,children:a(`adminCampaigns.recurring.status_${ae}`)},ae))})]})})}):null,o.jsxs("div",{className:"grid gap-2 pt-2 sm:flex sm:items-center",children:[o.jsx(K,{className:"w-full sm:w-auto",onClick:we,disabled:!_e,children:r.isPending||i.isPending?a("common.saving"):a("common.save")}),o.jsx(K,{className:"w-full sm:w-auto",variant:"ghost",onClick:n,children:a("common.cancel")})]})]})})}const s8="segments",mJ=[{value:"segments",labelKey:"adminCampaigns.tabs.segments"},{value:"access",labelKey:"adminCampaigns.tabs.access"},{value:"discounts",labelKey:"adminCampaigns.tabs.discounts"},{value:"grants",labelKey:"adminCampaigns.tabs.grants"},{value:"recurring",labelKey:"adminCampaigns.tabs.recurring"}];function r8(e){return mJ.some(t=>t.value===e)}function D4s(){const{t:e}=W(),{params:t,patch:n}=Mt(),a=Pe(t,"tab"),s=r8(a)?a:s8,r=mJ.map(c=>({value:c.value,label:e(c.labelKey)}));function i(c){r8(c)&&n({tab:c===s8?void 0:c,status:void 0,kind:void 0,page:void 0,segment:void 0,batch:void 0,rstatus:void 0,runit:void 0})}return o.jsx(Vt,{title:e("adminCampaigns.title"),description:e("adminCampaigns.description"),children:o.jsxs(Cc,{value:s,onValueChange:i,children:[o.jsx("div",{className:"min-w-0 md:hidden",children:o.jsx(ft,{value:s,options:r,onValueChange:i,"aria-label":e("adminCampaigns.tabs.mobileLabel")})}),o.jsx(tl,{className:"hidden md:inline-flex",children:r.map(c=>o.jsx(ia,{value:c.value,children:c.label},c.value))}),o.jsx(Tn,{value:"segments",className:"mt-4",children:o.jsx(d4s,{})}),o.jsx(Tn,{value:"access",className:"mt-4",children:o.jsx(h4s,{})}),o.jsx(Tn,{value:"discounts",className:"mt-4",children:o.jsx(v4s,{})}),o.jsx(Tn,{value:"grants",className:"mt-4",children:o.jsx(k4s,{})}),o.jsx(Tn,{value:"recurring",className:"mt-4",children:o.jsx(j4s,{})})]})})}const M4s=["","openai","anthropic","gemini","antigravity"],E4s=["text","image","audio","video","file"],I4s=["text","image","audio","video","embeddings"],pJ=e=>o.jsx("span",{className:"capitalize",children:e}),O4s=E4s.map(e=>({value:e,label:pJ(e)})),L4s=I4s.map(e=>({value:e,label:pJ(e)}));
971function U4s({value:e,onChange:t,isEdit:n}){const{t:a}=W(),s=YIs(!0),r=f=>t({...e,...f}),i=e.authorSlug&&e.modelSlug?`${e.authorSlug}/${e.modelSlug}`:"",c=f=>{const p=new Set(e.inputModalities);p.has(f)?p.delete(f):p.add(f),r({inputModalities:p})},d=f=>{const p=new Set(e.outputModalities);p.has(f)?p.delete(f):p.add(f),r({outputModalities:p})},m=f=>{const p=new Set(e.badges);p.has(f)?p.delete(f):p.add(f),r({badges:p})};return o.jsxs(sn,{title:a("adminModels.sections.config",{defaultValue:"Configuration"}),hint:a("adminModels.sections.configHint",{defaultValue:"Identity, upstream routing, type and capabilities."}),children:[o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsxs(De,{label:a("adminModels.providerSlug"),hint:a("adminModels.providerSlugHint",{defaultValue:"Pick a known provider or type a custom slug."}),children:[o.jsx(ge,{list:"model-provider-suggestions",value:e.authorSlug,disabled:n,onChange:f=>r({authorSlug:f.target.value}),placeholder:"openai"}),o.jsx("datalist",{id:"model-provider-suggestions",children:kK.map(f=>o.jsx("option",{value:f.value},f.value))})]}),o.jsx(De,{label:a("adminModels.modelSlug"),hint:i?o.jsx("span",{className:"break-all font-[family-name:var(--font-mono)]",children:i}):void 0,children:o.jsx(ge,{value:e.modelSlug,disabled:n,onChange:f=>r({modelSlug:f.target.value}),placeholder:"gpt-5.5"})})]}),o.jsx(ca,{label:a("adminModels.platform",{defaultValue:"Platform (sub2api group.platform)"}),value:e.platform,onChange:f=>r({platform:f.target.value}),children:M4s.map(f=>o.jsx("option",{value:f,children:f||a("adminModels.platformUnset",{defaultValue:"â select platform â"})},f||"unset"))}),o.jsx(De,{label:a("adminModels.sub2apiModelId"),children:o.jsxs("div",{className:"space-y-2",children:[o.jsx(ge,{className:"w-full font-[family-name:var(--font-mono)] text-xs",value:e.sub2apiModelId,onChange:f=>r({sub2apiModelId:f.target.value}),placeholder:"gpt-image-2"}),o.jsxs(ft,{fullWidth:!0,value:"",onChange:f=>f.target.value&&r({sub2apiModelId:f.target.value}),disabled:!s.data?.available,children:[o.jsx("option",{value:"",children:s.data?.available?a("adminModels.chooseSub2api"):a("adminModels.upstreamUnavailable")}),s.data?.items.map(f=>o.jsx("option",{value:f.id,children:f.id},f.id))]})]})}),o.jsx(De,{label:a("adminModels.source",{defaultValue:"Source (customer-visible)"}),hint:a("adminModels.sourceHint",{defaultValue:"Label customers see on the model/logs. Blank = vendor."}),children:o.jsx(ge,{value:e.source,onChange:f=>r({source:f.target.value}),placeholder:e.authorSlug||"official",className:"font-[family-name:var(--font-mono)] text-xs"})}),o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:a("adminModels.contextWindow",{defaultValue:"Context window (tokens)"}),hint:a("adminModels.contextWindowHint",{defaultValue:"Max input the model accepts. Leave blank if unknown."}),children:o.jsx(ge,{type:"number",min:0,value:e.contextWindow,onChange:f=>r({contextWindow:f.target.value}),placeholder:"200000",className:"font-[family-name:var(--font-mono)] tabular-nums"})}),o.jsx(De,{label:a("adminModels.maxOutputTokens",{defaultValue:"Max output tokens"}),hint:a("adminModels.maxOutputTokensHint",{defaultValue:"Max tokens the model can generate per response."}),children:o.jsx(ge,{type:"number",min:0,value:e.maxOutputTokens,onChange:f=>r({maxOutputTokens:f.target.value}),placeholder:"64000",className:"font-[family-name:var(--font-mono)] tabular-nums"})})]}),o.jsx(De,{label:a("adminModels.aliases",{defaultValue:"Aliases"}),hint:a("adminModels.aliasesHint",{defaultValue:"Comma-separated lookup aliases for import and review."}),children:o.jsx(ge,{value:e.aliases,onChange:f=>r({aliases:f.target.value}),placeholder:"gpt-5.5, openai/gpt-5.5-preview",className:"font-[family-name:var(--font-mono)] text-xs"})}),o.jsx(bx,{label:a("adminModels.inputModalities",{defaultValue:"Input modalities"}),hint:a("adminModels.inputModalitiesHint",{defaultValue:"Declares what this model can receive, including vision, audio, video, and file inputs."}),options:O4s,selected:e.inputModalities,onToggle:f=>c(f)}),o.jsx(bx,{label:a("adminModels.outputModalities",{defaultValue:"Output modalities"}),hint:a("adminModels.outputModalitiesHint",{defaultValue:"Drives the publish gate: text requires text in/out pricing, image/video/embeddings require their factors."}),options:L4s,selected:e.outputModalities,onToggle:f=>d(f)}),o.jsx(bx,{label:a("adminModels.badges.label",{defaultValue:"Display badges"}),hint:a("adminModels.badges.hint",{defaultValue:"Hot / Benefit tags shown on the user-facing models & pricing page."}),options:wF.map(f=>({value:f,label:a(`adminModels.badges.${f}`,{defaultValue:f})})),selected:e.badges,onToggle:m})]})}
971function B4s({value:e,onChange:t}){const{t:n}=W(),a=c=>t({...e,...c}),s=c=>{const d=new Set(e.protocols);d.has(c)?d.delete(c):d.add(c),a({protocols:d})},r=e.platform?toe(e.platform):[],i=()=>a({protocols:new Set(r)});return o.jsxs(sn,{title:n("adminModels.sections.protocols",{defaultValue:"Protocols"}),hint:n("adminModels.sections.protocolsHint",{defaultValue:"Which API protocols this model serves."}),children:[e.platform?o.jsxs("div",{className:"grid min-w-0 gap-2 sm:flex sm:items-center",children:[o.jsx(K,{className:"w-full sm:w-auto",type:"button",variant:"outline",size:"sm",onClick:i,children:n("adminModels.prefillProtocols",{defaultValue:`Prefill for ${e.platform}`,platform:e.platform})}),o.jsx("span",{className:"min-w-0 break-words text-13 text-[color:var(--muted-foreground)]",children:n("adminModels.prefillProtocolsHint",{defaultValue:`Suggested max protocols for ${e.platform}: ${r.join(", ")||"none"}. Confirm/adjust below.`})})]}):null,o.jsx(bx,{label:n("adminModels.protocols"),options:Sj,selected:e.protocols,onToggle:s}),e.outputModalities.has("image")&&o.jsx(De,{label:n("adminModels.billingStyleImage",{defaultValue:"Image billing style"}),hint:n("adminModels.billingStyleHint",{defaultValue:"How the upstream charges for this output. Required before publishing â the gate demands the matching price factor."}),children:o.jsxs(ft,{value:e.billingStyleImage,onChange:c=>a({billingStyleImage:c.target.value}),children:[o.jsx("option",{value:"",children:n("adminModels.billingStyleUnset",{defaultValue:"â select billing style â"})}),o.jsx("option",{value:"token",children:n("adminModels.billingStyleToken",{defaultValue:"Per token (image_output_token)"})}),o.jsx("option",{value:"per_call",children:n("adminModels.billingStylePerImage",{defaultValue:"Per image (per_call_image)"})})]})}),e.outputModalities.has("video")&&o.jsx(De,{label:n("adminModels.billingStyleVideo",{defaultValue:"Video billing style"}),hint:n("adminModels.billingStyleHint",{defaultValue:"How the upstream charges for this output. Required before publishing â the gate demands the matching price factor."}),children:o.jsxs(ft,{value:e.billingStyleVideo,onChange:c=>a({billingStyleVideo:c.target.value}),children:[o.jsx("option",{value:"",children:n("adminModels.billingStyleUnset",{defaultValue:"â select billing style â"})}),o.jsx("option",{value:"per_second",children:n("adminModels.billingStylePerSecond",{defaultValue:"Per second (video_per_second)"})}),o.jsx("option",{value:"per_call",children:n("adminModels.billingStylePerCall",{defaultValue:"Per call (video_per_call)"})})]})})]})}const uT=[{value:"text_input",label:"Text input (LLM)",units:["per_1m_tokens"]},{value:"text_output",label:"Text output (LLM)",units:["per_1m_tokens"]},{value:"cache_read",label:"Cache read",units:["per_1m_tokens"]},{value:"cache_write",label:"Cache write",units:["per_1m_tokens"]},{value:"cache_write_5m",label:"Cache write (5m TTL)",units:["per_1m_tokens"]},{value:"cache_write_1h",label:"Cache write (1h TTL)",units:["per_1m_tokens"]},{value:"image_input_token",label:"Image input token",units:["per_1m_tokens"]},{value:"image_output_token",label:"Image output token",units:["per_1m_tokens"]},{value:"per_call_image",label:"Image (per call)",units:["per_image","per_call"]},{value:"video_per_call",label:"Video (per call)",units:["per_call"]},{value:"video_per_second",label:"Video (per second)",units:["per_second"]},{value:"web_search_call",label:"Web search call",units:["per_call"]}];function Hg(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function F4s(e){const t=e.trim();if(!t)return null;const n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))throw new Error("conditions must be a JSON object");return n}const z4s=["","priority","flex","low","medium","high","long"],Ql="grid gap-1 text-xs font-medium";function q4s({modelPublicId:e}){return e?o.jsx(V4s,{modelPublicId:e}):null}function H4s({draft:e,onChange:t}){const{t:n}=W(),[a,s]=h.useState(e.length===0),r=c=>{t([...e,c]),s(!1)},i=c=>t(e.filter((d,m)=>m!==c));return o.jsxs("section",{className:"grid gap-3",children:[o.jsxs("header",{className:"grid gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsx("h3",{className:"text-sm font-semibold",children:n("adminModels.pricing.factors.title",{defaultValue:"Pricing factors"})}),o.jsx(K,{className:"justify-self-start sm:justify-self-auto",variant:"ghost",size:"sm",type:"button",onClick:()=>s(c=>!c),children:a?n("common.cancel",{defaultValue:"Cancel"}):`+ ${n("adminModels.pricing.factors.addFactor",{defaultValue:"Add factor"})}`})]}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("adminModels.pricing.factors.draftEditorHint",{defaultValue:"Set prices now, or leave empty and add them after the model is created."})}),a?o.jsx($N,{initial:null,onSubmit:r,busy:!1}):null,e.length===0?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("adminModels.pricing.factors.draftEmpty",{defaultValue:"No prices added yet."})}):o.jsx("ul",{className:"grid gap-2",children:e.map((c,d)=>o.jsxs("li",{className:"grid min-w-0 gap-2 rounded border border-[color:var(--border)] p-2.5 sm:flex sm:items-center sm:justify-between",children:[o.jsxs("span",{className:"min-w-0 break-all font-[family-name:var
971(--font-mono)] text-xs sm:text-sm",children:[n(`adminModels.pricing.factors.factorOption.${c.atomicFactor}`,{defaultValue:c.atomicFactor}),c.tierKey?o.jsxs("span",{className:"text-[color:var(--muted-foreground)]",children:[" · ",c.tierKey]}):null]}),o.jsxs("span",{className:"flex min-w-0 flex-wrap items-center justify-between gap-2 sm:shrink-0 sm:justify-end sm:gap-3",children:[o.jsxs("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)] text-xs tabular-nums sm:text-sm",children:[cu(c.ourPriceUsd),c.officialPriceUsd&&String(c.officialPriceUsd)!==String(c.ourPriceUsd)?o.jsxs("span",{className:"ml-1 text-xs text-[color:var(--muted-foreground)]",children:[n("adminModels.pricing.factors.officialAbbr",{defaultValue:"official"})," ",cu(c.officialPriceUsd)]}):null]}),o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>i(d),children:n("adminModels.pricing.factors.remove",{defaultValue:"Remove"})})]})]},`${c.atomicFactor}-${c.tierKey??""}-${d}`))})]})}function V4s({modelPublicId:e}){const{t}=W(),n=KIs(e,!0),a=GZ(),s=WIs(),[r,i]=h.useState(!1),[c,d]=h.useState(!1),m=async v=>{try{await a.mutateAsync({modelPublicId:e,...v}),ie.success(t("adminModels.pricing.factors.changeSaved",{defaultValue:"Factor price updated."})),i(!1)}catch($){ie.error(Hg($))}},f=async v=>{if(await zt({message:t("adminModels.pricing.factors.confirmExpire",{defaultValue:"Expire this factor row? It will stop applying immediately and move to history."}),variant:"destructive"}))try{await s.mutateAsync({modelPublicId:e,factorPublicId:v.publicId}),ie.success(t("adminModels.pricing.factors.expired",{defaultValue:"Factor expired."}))}catch(x){ie.error(Hg(x))}},p=n.data?.active??[],y=n.data?.history??[];return o.jsxs("section",{className:"grid gap-3",children:[o.jsxs("header",{className:"grid gap-1",children:[o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsx("h3",{className:"text-sm font-semibold",children:t("adminModels.pricing.factors.title",{defaultValue:"Pricing factors"})}),o.jsxs("span",{className:"relative z-10 flex min-w-0 flex-wrap items-center gap-1",children:[o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>d(v=>!v),children:c?t("common.cancel",{defaultValue:"Cancel"}):t("adminModels.pricing.discount.toggle",{defaultValue:"Apply discount"})}),o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>i(v=>!v),children:r?t("common.cancel",{defaultValue:"Cancel"}):`+ ${t("adminModels.pricing.factors.addFactor",{defaultValue:"Add factor"})}`})]})]}),o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t("adminModels.pricing.factors.hint",{defaultValue:"Each row is an atomic unit (text input/output, cache, image, â¦). Active rows determine billing from their effective date; history rows record past prices."})})]}),o.jsxs(Hm,{className:"px-3 py-2 text-xs",children:["â¡ ",t("adminModels.pricing.factors.liveBanner",{defaultValue:"Changes here apply immediately and are recorded in price history â they are not controlled by the bottom Save button."})]}),c?o.jsx(W4s,{modelPublicId:e}):null,r?o.jsx($N,{initial:null,onSubmit:m,busy:a.isPending}):null,n.error?o.jsx(Qt,{title:t("adminModels.pricing.factors.loadError",{defaultValue:"Could not load pricing factors"}),description:Hg(n.error)}):n.isLoading?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t("common.loading",{defaultValue:"Loadingâ¦"})}):p.length===0?o.jsx(Ot,{title:t("adminModels.pricing.factors.emptyTitle",{defaultValue:"No active factor prices"}),description:t("adminModels.pricing.factors.empty",{defaultValue:'Click "Add factor" to set one.'}),action:o.jsx(K,{variant:"secondary",size:"sm",type:"button",onClick:()=>i(!0),children:`+ ${t("adminModels.pricing.factors.addFactor",{defaultValue:"Add factor"})}`})}):o.jsx("ul",{className:"grid gap-2",children:p.map(v=>o.jsx(K4s,{factor:v,onSubmit:m,onExpire:f,busy:a.isPending||s.isPending},v.publicId))}),y.length>0?o.jsx(IV,{type:"single",collapsible:!0,className:"text-xs",children:o.jsxs(J_,{value:"history",className:"border-b-0",children:[o.jsx(ej,{className:"py-1 text-[color:var(--muted-foreground)] hover:no-underline",children:t("adminModels.pricing.factors.historyLabel",{defaultValue:"History ({{count}})",count:y.length})}),o.jsx(tj,{className:"grid gap-1.5 pt-2",children:y.map(v=>o.jsxs("div",{className:"grid min-w-0 gap-1.5 rounded border border-[color:var(--border)] bg-[color:var(--muted)]/30 p-2 font-[family-name:var
971(--font-mono)] sm:grid-cols-[1fr_auto_auto_auto] sm:items-center sm:gap-3",children:[o.jsxs("span",{className:"min-w-0 break-all",children:[v.atomicFactor,v.tierKey?` · ${v.tierKey}`:""]}),o.jsx("span",{className:"tabular-nums",children:cu(v.ourPriceUsd)}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:v.unit}),o.jsxs("span",{className:"text-[color:var(--muted-foreground)]",children:[i8(v.validFrom)," â ",i8(v.validTo)]})]},v.publicId))})]})}):null]})}function K4s({factor:e,onSubmit:t,onExpire:n,busy:a}){const{t:s}=W(),[r,i]=h.useState(!1);return r?o.jsxs("li",{className:"rounded border border-[color:var(--ring)] bg-[color:var(--background)] p-2",children:[o.jsx($N,{initial:e,onSubmit:c=>{t(c),i(!1)},busy:a,lockIdentity:!0}),o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>i(!1),className:"mt-1",children:s("common.cancel",{defaultValue:"Cancel"})})]}):o.jsxs("li",{className:"grid gap-1.5 rounded border border-[color:var(--border)] p-2.5",children:[o.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-baseline sm:justify-between sm:gap-3",children:[o.jsxs("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)] text-xs sm:text-sm",children:[e.atomicFactor,e.tierKey?o.jsxs("span",{className:"text-[color:var(--muted-foreground)]",children:[" · ",e.tierKey]}):null,Object.keys(e.conditions??{}).length>0?o.jsx("span",{className:"ml-0 block break-all text-xs text-[color:var(--muted-foreground)] sm:ml-2 sm:inline",children:JSON.stringify(e.conditions)}):null]}),o.jsxs("span",{className:"font-[family-name:var(--font-mono)] text-xs tabular-nums sm:shrink-0 sm:text-sm",children:[cu(e.ourPriceUsd),e.officialPriceUsd&&e.officialPriceUsd!==e.ourPriceUsd?o.jsxs("span",{className:"ml-1 text-xs text-[color:var(--muted-foreground)]",children:[s("adminModels.pricing.factors.officialAbbr",{defaultValue:"official"})," ",cu(e.officialPriceUsd)]}):null]})]}),o.jsxs("div",{className:"grid min-w-0 gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsxs("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)] text-xs text-[color:var(--muted-foreground)]",children:[e.unit," · v",e.pricingVersion]}),o.jsxs("span",{className:"flex min-w-0 flex-wrap items-center gap-1 sm:shrink-0 sm:justify-end",children:[o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>i(!0),disabled:a,children:s("adminModels.pricing.factors.changePrice",{defaultValue:"Change price"})}),o.jsx(K,{variant:"ghost",size:"sm",type:"button",onClick:()=>n(e),disabled:a,children:s("adminModels.pricing.factors.expire",{defaultValue:"Expire"})})]})]})]})}function $N({initial:e,onSubmit:t,busy:n,lockIdentity:a}){const{t:s}=W(),[r,i]=h.useState(e?.atomicFactor??"text_input"),[c,d]=h.useState(e?.tierKey??""),[m,f]=h.useState(e?.unit??"per_1m_tokens"),[p,y]=h.useState(e?.ourPriceUsd??""),[v,$]=h.useState(e?.officialPriceUsd??""),[x,w]=h.useState(e?.source??""),[S,k]=h.useState(e?.conditions&&Object.keys(e.conditions).length>0?JSON.stringify(e.conditions):""),[T,R]=h.useState(null),_=uT.find(N=>N.value===r)??uT[0],P=_.units;P.includes(m)||f(P[0]);const j=()=>
971{if(!p.trim())return;let N=null;try{N=F4s(S),R(null)}catch(I){R(I instanceof Error?I.message:String(I));return}t({atomicFactor:r,tierKey:c||null,unit:m,ourPriceUsd:p.trim(),officialPriceUsd:v.trim()||null,source:x.trim()||null,conditions:N})};return o.jsxs("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[o.jsx(ca,{label:s("adminModels.pricing.factors.factor",{defaultValue:"Factor"}),fieldClassName:`${Ql} sm:col-span-2`,value:r,onChange:N=>i(N.target.value),disabled:a,children:uT.map(N=>o.jsx("option",{value:N.value,children:s(`adminModels.pricing.factors.factorOption.${N.value}`,{defaultValue:N.label})},N.value))}),o.jsx(ca,{label:s("adminModels.pricing.factors.tier",{defaultValue:"Tier"}),fieldClassName:Ql,value:c,onChange:N=>d(N.target.value),disabled:a,children:z4s.map(N=>o.jsx("option",{value:N,children:N||s("adminModels.pricing.factors.tierNone",{defaultValue:"(no tier)"})},N||"null"))}),o.jsx(ca,{label:s("adminModels.pricing.factors.unit",{defaultValue:"Unit"}),fieldClassName:Ql,value:m,onChange:N=>f(N.target.value),disabled:a,children:_.units.map(N=>o.jsx("option",{value:N,children:s(`adminModels.pricing.factors.unitOption.${N}`,{defaultValue:N})},N))}),o.jsxs("label",{className:Ql,children:[s("adminModels.pricing.factors.ourPrice",{defaultValue:"Our price (USD)"}),o.jsx(ge,{value:p,onChange:N=>y(N.target.value),placeholder:"3.000000",className:"font-[family-name:var(--font-mono)] tabular-nums"})]}),o.jsxs("label",{className:Ql,children:[s("adminModels.pricing.factors.officialPrice",{defaultValue:"Official (USD)"}),o.jsx(ge,{value:v,onChange:N=>$(N.target.value),placeholder:"3.000000",className:"font-[family-name:var(--font-mono)] tabular-nums"})]}),o.jsxs("label",{className:`${Ql} sm:col-span-2`,children:[s("adminModels.pricing.factors.source",{defaultValue:"Source (optional URL or note, â¤128 chars)"}),o.jsx(ge,{value:x,onChange:N=>w(N.target.value),placeholder:"openai.com/pricing"})]}),o.jsxs("label",{className:`${Ql} sm:col-span-2`,children:[s("adminModels.pricing.factors.conditions",{defaultValue:"Conditions JSON (optional)"}),o.jsx(ge,{value:S,onChange:N=>k(N.target.value),placeholder:'{"prompt_tokens":{"unit":"kTokens","gte":0,"lt":128}}',className:"font-[family-name:var(--font-mono)] text-xs"}),T?o.jsx("span",{className:"text-11 text-[color:var(--destructive)]",children:T}):null]}),o.jsx(K,{type:"button",onClick:j,disabled:n||!p.trim(),className:"w-full justify-self-end sm:col-span-2 sm:w-auto",children:s("common.save",{defaultValue:"Save"})})]})}function G4s(e){return e.map(t=>({factorPublicId:t.factorPublicId,pricingVersion:t.pricingVersion}))}function W4s({modelPublicId:e}){const{t}=W(),n=GIs(),[a,s]=h.useState(""),[r,i]=h.useState(!1),[c,d]=h.useState(null),m=()=>d(null),f=async()=>{if(a.trim())try{const v=await n.mutateAsync({modelPublicId:e,rate:a.trim(),dryRun:!0,allowMarkup:r});d(v)}catch(v){d(null),ie.error(Hg(v))}},p=async()=>{if(!(!c||c.repriced.length===0||!await zt({title:t("adminModels.pricing.discount.confirmTitle",{defaultValue:"Apply discount to all factors?"}),message:t("adminModels.pricing.discount.confirmBody",{defaultValue:"Reprice {{count}} factor(s) to {{rate}}à the official price. This is versioned â historical billing is unaffected.",count:c.repriced.length,rate:String(c.rate)})})))try{await n.mutateAsync({modelPublicId:e,rate:c.rate,allowMarkup:r,expectedVersions:G4s(c.repriced)}),ie.success(t("adminModels.pricing.discount.applied",{defaultValue:"Repriced {{count}} factor(s) at {{rate}}à official.",count:c.repriced.length,rate:String(c.rate)})),d(null),s("")}catch($){if($ instanceof rn&&$.code==="PRICING_STALE"){d(null),ie.error(t("adminModels.pricing.discount.stale",{defaultValue:"Prices changed since the preview â please preview again."}));return}ie.error(Hg($))}},y=n.isPending;return o.jsxs("section",{className:"grid gap-2 rounded border border-[color:var(--border)] bg-[color:var(--muted)]/20 p-3",children:[o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t("adminModels.pricing.discount.hint",{defaultValue:"Set every factor to a fraction of its official price (0.5 = 50% off). Free factors (our price 0) and factors with no official price are skipped."})}),o.jsxs("div",{className:"grid gap-2 sm:flex sm:flex-wrap sm:items-end",children:[o.jsxs("label",{className:`${Ql} min-w-0 sm:w-28`,children:[t("adminModels.pricing.discount.rate",{defaultValue:"Discount rate"}),o.jsx(ge,{value:a,onChange:v=>{s(v.target.value),m()},placeholder:"0.5",inputMode:"decimal",className:"font-[family-name:var
971(--font-mono)] tabular-nums"})]}),o.jsx(K,{className:"w-full sm:w-auto",type:"button",variant:"secondary",size:"sm",onClick:f,disabled:y||!a.trim(),children:t("adminModels.pricing.discount.preview",{defaultValue:"Preview"})}),o.jsx(K,{className:"w-full sm:w-auto",type:"button",size:"sm",onClick:p,disabled:y||!c||c.repriced.length===0,children:t("adminModels.pricing.discount.apply",{defaultValue:"Apply"})})]}),o.jsxs("label",{className:"flex items-center gap-2 text-xs text-[color:var(--muted-foreground)]",children:[o.jsx(Zn,{checked:r,onChange:v=>{i(v.target.checked),m()}}),t("adminModels.pricing.discount.allowMarkup",{defaultValue:"Allow markup (rate above 1 prices above official)"})]}),c?o.jsxs("div",{className:"grid gap-1.5 pt-1",children:[c.repriced.length===0&&c.skipped.length===0?o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t("adminModels.pricing.discount.noFactors",{defaultValue:"No active factors to reprice."})}):null,c.repriced.map(v=>o.jsxs("div",{className:"grid min-w-0 gap-1 rounded border border-[color:var(--border)] bg-[color:var(--background)] p-2 font-[family-name:var(--font-mono)] text-xs sm:flex sm:items-baseline sm:justify-between sm:gap-3",children:[o.jsxs("span",{className:"min-w-0 break-all",children:[t(`adminModels.pricing.factors.factorOption.${v.atomicFactor}`,{defaultValue:v.atomicFactor}),v.tierKey?o.jsxs("span",{className:"text-[color:var(--muted-foreground)]",children:[" · ",v.tierKey]}):null]}),o.jsxs("span",{className:"min-w-0 break-all tabular-nums sm:shrink-0",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:cu(v.officialPriceUsd)})," â ",o.jsx("span",{className:"font-semibold",children:cu(v.newOurPriceUsd)})]})]},v.factorPublicId)),c.skipped.map(v=>o.jsxs("div",{className:"grid min-w-0 gap-1 rounded border border-dashed border-[color:var(--border)] p-2 font-[family-name:var(--font-mono)] text-xs text-[color:var(--muted-foreground)] sm:flex sm:items-baseline sm:justify-between sm:gap-3",children:[o.jsxs("span",{className:"min-w-0 break-all",children:[t(`adminModels.pricing.factors.factorOption.${v.atomicFactor}`,{defaultValue:v.atomicFactor}),v.tierKey?o.jsxs("span",{children:[" · ",v.tierKey]}):null]}),o.jsx("span",{className:"min-w-0 break-words sm:shrink-0",children:t(`adminModels.pricing.discount.skipReason.${v.reason}`,{defaultValue:v.reason})})]},v.factorPublicId))]}):null]})}function i8(e){return e?e.slice(0,19).replace("T"," "):"â"}function cu(e){return e===""?"â":Fn(e)}const Y4s=new Set(r_),Q4s=new Set(wF);function fJ(e){const t=e?.badges;return Array.isArray(t)?t.filter(n=>typeof n=="string"&&Q4s.has(n)):[]}const X4s={authorSlug:"",modelSlug:"",platform:"",sub2apiModelId:"",aliases:"",family:"",source:"",isFamilyDefault:!1,protocols:new Set,inputModalities:new Set(["text"]),outputModalities:new Set(["text"]),billingStyleImage:"",billingStyleVideo:"",contextWindow:"",maxOutputTokens:"",badges:new Set},l8={locale:"en",summary:"",description:"",familyName:"",variantNote:"",upstreamReleaseAt:"",displayOrder:"0"};function Z4s(e){return{authorSlug:e.author_slug,modelSlug:e.model_slug,platform:e.platform??"",sub2apiModelId:e.sub2api_model_id??"",aliases:(e.aliases??[]).join(", "),family:e.family??"",source:e.source??"",isFamilyDefault:e.is_family_default,protocols:new Set(Object.keys(e.supported_protocols??{}).filter(t=>e.supported_protocols[t]?.enabled)),inputModalities:new Set((e.modalities?.input??["text"]).filter(J4s)),outputModalities:new Set((e.modalities?.output??[]).filter(e5s)),billingStyleImage:e.billing_style?.image??"",billingStyleVideo:e.billing_style?.video??"",contextWindow:e.context_window!=null?String(e.context_window):"",maxOutputTokens:e.max_output_tokens!=null?String(e.max_output_tokens):"",badges:new Set(fJ(e.metadata))}}function gJ(e){const t={};return e.outputModalities.has("image")&&e.billingStyleImage&&(t.image=e.billingStyleImage),e.outputModalities.has("video")&&e.billingStyleVideo&&(t.video=e.billingStyleVideo),t}function c8(e,t){const n=e.i18n?.[t]??{};return{locale:t,summary:n.summary??"",description:n.description??"",familyName:n.family_name??"",variantNote:e.variant_note?.[t]??"",upstreamReleaseAt:t5s(e.upstream_release_at),displayOrder:String(e.dis
971play_order??0)}}function J4s(e){return e==="text"||e==="image"||e==="audio"||e==="video"||e==="file"}function e5s(e){return e==="text"||e==="image"||e==="audio"||e==="video"||e==="embeddings"}function t5s(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toISOString().slice(0,10)}function hJ(e){const t=e.trim();if(!t)return null;const n=new Date(`${t}T00:00:00.000Z`);return Number.isNaN(n.getTime())?null:n.toISOString()}function yJ(e){return e.split(/[\n,]/).map(t=>t.trim()).filter(Boolean)}function wN(e){const t=e.trim();return t===""||!/^\d+$/.test(t)?null:Number(t)}function G$(e){const t=e.trim();return t===""||!/^\d+$/.test(t)?null:Number(t)}function FP(e,t){const n={};for(const a of t){const s=e?.[a]?.stream;n[a]={enabled:!0,stream:s??a!=="openai_images"}}return n}function vJ(e,t,n){const a={...e??{}},s={};return n.summary.trim()&&(s.summary=n.summary.trim()),n.description.trim()&&(s.description=n.description.trim()),n.familyName.trim()&&(s.family_name=n.familyName.trim()),Object.keys(s).length>0?a[t]=s:delete a[t],a}function n5s(e,t,n){const a=a5s(e);return n.trim()?a[t]=n.trim():delete a[t],a}function a5s(e){return Object.fromEntries(Object.entries(e??{}).filter(([t])=>Y4s.has(t)))}function Dg(e,t){if(e===t)return!0;if(typeof e!="object"||typeof t!="object"||e===null||t===null)return!1;const n=Object.keys(e),a=Object.keys(t);return n.length!==a.length?!1:n.every(s=>Dg(e[s],t[s]))}function Bb(e,t){if(e.length!==t.length)return!1;const n=new Set(t);return e.every(a=>n.has(a))}function o5s(e,t){const n=`${e.authorSlug}/${e.modelSlug}`;return{provider:e.authorSlug,authorSlug:e.authorSlug,modelSlug:e.modelSlug,fullSlug:n,platform:e.platform||null,sub2apiModelId:e.sub2apiModelId||null,aliases:yJ(e.aliases),family:e.family||null,source:e.source.trim()||null,isFamilyDefault:e.isFamilyDefault,upstreamReleaseAt:hJ(t.upstreamReleaseAt),supportedProtocols:FP(void 0,e.protocols),modalities:{input:[...e.inputModalities],output:[...e.outputModalities]},billingStyle:gJ(e),contextWindow:G$(e.contextWindow),maxOutputTokens:G$(e.maxOutputTokens),variantNote:t.variantNote.trim()?{[t.locale]:t.variantNote.trim()}:null,i18n:vJ(void 0,t.locale,{summary:t.summary,description:t.description,familyName:t.familyName}),badges:[...e.badges]}}function s5s(e,t,n){const a={};t.platform!==(e.platform??"")&&(a.platform=t.platform||null),(t.sub2apiModelId||null)!==(e.sub2api_model_id??null)&&(a.sub2apiModelId=t.sub2apiModelId||null);const s=yJ(t.aliases);Bb(s,e.aliases??[])||(a.aliases=s),(t.family||null)!==(e.family??null)&&(a.family=t.family||null),(t.source.trim()||null)!==(e.source??null)&&(a.source=t.source.trim()||null),t.isFamilyDefault!==e.is_family_default&&(a.isFamilyDefault=t.isFamilyDefault);const r=FP(e.supported_protocols,t.protocols),i=new Set(Object.keys(e.supported_protocols??{}).filter(k=>e.supported_protocols[k]?.enabled)),c=FP(e.supported_protocols,i);Dg(r,c)||(a.supportedProtocols=r);const d=[...t.inputModalities],m=[...t.outputModalities];(!Bb(d,e.modalities?.input??[])||!Bb(m,e.modalities?.output??[]))&&(a.modalities={...e.modalities,input:d,output:m});const f=gJ(t);Dg(f,e.billing_style??{})||(a.billingStyle=f);const p=G$(t.contextWindow);p!==(e.context_window??null)&&(a.contextWindow=p);const y=G$(t.maxOutputTokens);y!==(e.max_output_tokens??null)&&(a.maxOutputTokens=y);const v=vJ(e.i18n,n.locale,{summary:n.summary,description:n.description,familyName:n.familyName});Dg(v,e.i18n??{})||(a.i18n=v);const $=n5s(e.variant_note,n.locale,n.variantNote);Dg($,e.variant_note??{})||(a.variantNote=$);const x=hJ(n.upstreamReleaseAt);x!==(e.upstream_release_at??null)&&(a.upstreamReleaseAt=x);const w=wN(n.displayOrder);w!==null&&w!==e.display_order&&(a.displayOrder=w);const S=[...t.badges];
971return Bb(S,fJ(e.metadata))||(a.badges=S),a}function r5s({value:e,onChange:t}){const{t:n,i18n:a}=W(),s=i=>t({...e,...i}),r=e.displayOrder.trim()!==""&&wN(e.displayOrder)===null;return o.jsxs(sn,{title:n("adminModels.sections.content",{defaultValue:"Content & Display"}),hint:n("adminModels.sections.contentHint",{defaultValue:"i18n summary / description and sort order."}),children:[o.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[o.jsx(De,{label:n("adminModels.displayOrder",{defaultValue:"Display order"}),error:r?n("adminModels.displayOrderInvalid",{defaultValue:"Must be a non-negative integer."}):void 0,children:o.jsx(ge,{type:"number",min:0,value:e.displayOrder,onChange:i=>s({displayOrder:i.target.value}),"aria-invalid":r,className:"font-[family-name:var(--font-mono)] tabular-nums"})}),o.jsx(De,{label:n("adminModels.upstreamReleaseAt",{defaultValue:"Upstream release date"}),children:o.jsx(fr,{value:e.upstreamReleaseAt,onChange:i=>s({upstreamReleaseAt:i}),locale:a.language,clearLabel:n("common.clearAll"),labels:gr(n,n("common.clearAll"))})})]}),o.jsx(ca,{label:n("adminModels.contentLocale",{defaultValue:"Editing locale"}),value:e.locale,onChange:i=>s({locale:i.target.value}),children:r_.map(i=>o.jsx("option",{value:i,children:i},i))}),o.jsx(De,{label:n("adminModels.summary",{defaultValue:"Summary (this locale)"}),children:o.jsx(ge,{value:e.summary,onChange:i=>s({summary:i.target.value}),placeholder:"Flagship reasoning model..."})}),o.jsx(De,{label:n("adminModels.descriptionField",{defaultValue:"Description (Markdown, this locale)"}),children:o.jsx(_o,{value:e.description,onChange:i=>s({description:i.target.value}),rows:4})})]})}const i5s=["draft","published","deprecated","archived"],l5s=["public","hidden"],c5s=["available","unavailable"],d5s=["everyone","paid_only"],Fb=["config","protocols","pricing"];function gg(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function d8(){return o.jsx("span",{className:"ml-1.5 inline-block h-1.5 w-1.5 rounded-full bg-[color:var(--muted-foreground)]","aria-hidden":!0})}function u5s({publicId:e,onDone:t}){const{t:n}=W(),a=!!e,s=qIs(e),r=HIs(),i=VIs(),c=fOs(),d=GZ(),[m,f]=h.useState("config"),[p,y]=h.useState(X4s),[v,$]=h.useState(l8),[x,w]=h.useState([]),[S,k]=h.useState(null),[T,R]=h.useState(!1),[_,P]=h.useState(!1);a&&s.data&&S!==e&&(y(Z4s(s.data)),$(c8(s.data,"en")),k(e),R(!1),P(!1));const j=Q=>{y(Q),R(!0)},N=Q=>{if(Q.locale!==v.locale){$(s.data?c8(s.data,Q.locale):{...l8,locale:Q.locale});return}$(Q),P(!0)},I=h.useMemo(()=>p.authorSlug&&p.modelSlug?`${p.authorSlug}/${p.modelSlug}`:"",[p.authorSlug,p.modelSlug]),z=wN(v.displayOrder)!==null,E=r.isPending||i.isPending||d.isPending,L=T||_,O=!!I&&p.protocols.size>0&&z&&!E&&(!a||L),V=Fb.indexOf(m),ne=V===Fb.length-1,q=async()=>{try{if(a&&s.data){const Q=s5s(s.data,p,v);if(Object.keys(Q).length===0){t();return}await M(Q,!1)}else{const Q=await r.mutateAsync(o5s(p,v));Q.warnings.length&&ie.warning(Q.warnings.join(` 972`));let de=!1;for(const Y of x)try{await d.mutateAsync({modelPublicId:Q.model.publicId,...Y})}catch{de=!0}de&&ie.error(n("adminModels.pricing.createPriceFailed",{defaultValue:"Model created, but some prices were not saved. Add them in the Pricing tab."})),t()}}catch(Q){ie.error(gg(Q))}},M=async(Q,de)=>{if(s.data)try{await i.mutateAsync({publicId:e,...Q,expectedVersion:s.data.version,highRiskConfirmed:de}),R(!1),P(!1),t()}catch(Y){if(Y instanceof rn&&Y.code==="HIGH_RISK_CONFIRM_REQUIRED")return await zt({message:n("adminModels.errors.highRisk",{defaultValue:"This change affects live gateway routing or display semantics on a published model. Continue?"}),variant:"destructive"})?M(Q,!0):void 0;if(Y instanceof rn&&Y.code==="STALE_UPDATE"){ie.error(n("adminModels.errors.stale",{defaultValue:"Stale â reload and retry."}));return}throw Y}},F=async Q=>{if(!(!s.data||Q===s.data.status||!await zt({message:n("adminModels.lifecycle.confirmStatus",{status:Q,defaultValue:`Set status to "${Q}"? Takes effect immediately.`}),variant:Q==="published"?"default":"destructive"})))try{await c.mutateAsync({publicId:e,status:Q}),ie.success(n("adminModels.lifecycle.statusChanged",{status:Q,defaultValue:`Status set to ${Q}.`}))}catch(Y){if(Y instanceof rn&&Y.code==="MODEL_PUBLISH_BLOCKED_MISSING_PRICING"){ie.error(n("adminModels.lifecycle.publishBlocked",{defaultValue:"Cannot publish: core pricing factors are missing. Set them in the Pricing tab first."})),f("pricing");return}ie.error(gg(Y))}},H=async Q=>{if(!(!s.data||Q===s.data.visibility||!await zt({message:n("adminModels.lifecycle.confirmVisibility",{visibility:Q,defaultValue:`Set visibility to "${Q}"? Takes effect immediately.`}),variant:"destructive"})))try{await c.mutateAsync({publicId:e,visibility:Q}),ie.success(n("adminModels.lifecycle.visibilityChanged",{visibility:Q,defaultValue:`Visibility set to ${Q}.`}))}catch(Y){ie.error(gg(Y))}},ee=async Q=>{if(!(!s.data||Q===s.data.available||!await zt({message:Q?n("adminModels.lifecycle.confirmAvailable",{defaultValue:"Mark this model available again? Takes effect immediately."}):n("adminModels.lifecycle.confirmUnavailable",{defaultValue:"Mark this model temporarily unavailable? It stays listed (greyed out) but gateway calls are rejected."}),variant:Q?"default":"destructive"})))try{await c.mutateAsync({publicId:e,available:Q}),ie.success(Q?n("adminModels.lifecycle.availableChanged",{defaultValue:"Model marked available."}):n("adminModels.lifecycle.unavailableChanged",{defaultValue:"Model marked temporarily unavailable."}))}catch(Y){ie.error(gg(Y))}},B=async Q=>{if(!(!s.data||Q===s.data.requires_paid_account||!await zt({message:Q?n("adminModels.lifecycle.confirmPaidOnly",{defaultValue:"Restrict this model to accounts that have topped up? It stays listed, but users who never paid get a 403 telling them to top up."}):n("adminModels.lifecycle.confirmEveryone",{defaultValue:"Open this model to every account? Takes effect immediately."}),variant:Q?"destructive":"default"})))try{await c.mutateAsync({publicId:e,requiresPaidAccount:Q}),ie.success(Q?n("adminModels.lifecycle.paidOnlyChanged",{defaultValue:"Model restricted to accounts that have topped up."}):n("adminModels.lifecycle.everyoneChanged",{defaultValue:"Model opened to every account."}))}catch(Y){ie.error(gg(Y))}},G=async()=>
972{if(!L){t();return}await zt({message:n("adminModels.discardChanges",{defaultValue:"Discard unsaved changes?"}),variant:"destructive"})&&t()};return o.jsxs("div",{className:"grid w-[calc(100vw-2rem)] min-w-0 max-w-full grid-cols-[minmax(0,1fr)] gap-5 overflow-hidden md:w-full",children:[a&&s.data?o.jsxs("div",{className:"min-w-0 max-w-full space-y-3 border-b border-[color:var(--border)] pb-4",children:[o.jsxs("div",{className:"space-y-3 sm:grid sm:min-w-0 sm:grid-cols-2 sm:gap-3 sm:space-y-0 lg:grid-cols-3",children:[o.jsxs("div",{className:"grid min-w-0 gap-1.5",children:[o.jsx("span",{className:"text-xs font-medium text-[color:var(--foreground)] sm:text-sm",children:n("adminModels.lifecycle.status",{defaultValue:"Status"})}),o.jsx(ft,{fullWidth:!0,value:s.data.status,disabled:c.isPending,onChange:Q=>F(Q.target.value),"aria-label":n("adminModels.lifecycle.status",{defaultValue:"Status"}),children:i5s.map(Q=>o.jsx("option",{value:Q,children:n(`adminModels.lifecycle.statusOption.${Q}`,{defaultValue:Q})},Q))})]}),o.jsxs("div",{className:"grid min-w-0 gap-1.5",children:[o.jsx("span",{className:"text-xs font-medium text-[color:var(--foreground)] sm:text-sm",children:n("adminModels.lifecycle.visibility",{defaultValue:"Visibility"})}),o.jsx(ft,{fullWidth:!0,value:s.data.visibility,disabled:c.isPending,onChange:Q=>H(Q.target.value),"aria-label":n("adminModels.lifecycle.visibility",{defaultValue:"Visibility"}),children:l5s.map(Q=>o.jsx("option",{value:Q,children:n(`adminModels.lifecycle.visibilityOption.${Q}`,{defaultValue:Q})},Q))})]}),o.jsxs("div",{className:"grid min-w-0 gap-1.5",children:[o.jsx("span",{className:"text-xs font-medium text-[color:var(--foreground)] sm:text-sm",children:n("adminModels.lifecycle.availability",{defaultValue:"Availability"})}),o.jsx(ft,{fullWidth:!0,value:s.data.available?"available":"unavailable",disabled:c.isPending,onChange:Q=>ee(Q.target.value==="available"),"aria-label":n("adminModels.lifecycle.availability",{defaultValue:"Availability"}),children:c5s.map(Q=>o.jsx("option",{value:Q,children:n(`adminModels.lifecycle.availabilityOption.${Q}`,{defaultValue:Q})},Q))})]}),o.jsxs("div",{className:"grid min-w-0 gap-1.5",children:[o.jsx("span",{className:"text-xs font-medium text-[color:var(--foreground)] sm:text-sm",children:n("adminModels.lifecycle.audience",{defaultValue:"Audience"})}),o.jsx(ft,{fullWidth:!0,value:s.data.requires_paid_account?"paid_only":"everyone",disabled:c.isPending,onChange:Q=>B(Q.target.value==="paid_only"),"aria-label":n("adminModels.lifecycle.audience",{defaultValue:"Audience"}),children:d5s.map(Q=>o.jsx("option",{value:Q,children:n(`adminModels.lifecycle.audienceOption.${Q}`,{defaultValue:Q})},Q))})]})]}),o.jsx("span",{className:"text-11 text-[color:var(--muted-foreground)]",children:n("adminModels.lifecycle.hint",{defaultValue:"Lifecycle changes apply immediately (with confirmation), separate from Save."})})]}):null,o.jsxs(Cc,{value:m,onValueChange:Q=>f(Q),className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-4",children:[o.jsxs(tl,{variant:"segmented",className:"max-w-full overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:[o.jsxs(ia,{value:"config",className:"min-w-max text-xs sm:text-sm",children:[n("adminModels.steps.config",{defaultValue:"1 · Configuration"}),T?o.jsx(d8,{}):null]}),o.jsx(ia,{value:"protocols",className:"min-w-max text-xs sm:text-sm",children:n("adminModels.steps.protocols",{defaultValue:"2 · Protocols"})}),o.jsx(ia,{value:"pricing",className:"min-w-max text-xs sm:text-sm",children:n("adminModels.steps.pricing",{defaultValue:"3 · Pricing"})}),a?o.jsxs(ia,{value:"display",className:"min-w-max text-xs sm:text-sm",children:[n("adminModels.steps.display",{defaultValue:"Content & display"}),_?o.jsx(d8,{}):null]}):null]}),o.jsx(Tn,{value:"config",className:"mt-0",children:o.jsx(U4s,{value:p,onChange:j,isEdit:a})}),o.jsx(Tn,{value:"protocols",className:"mt-0",children:o.jsx(B4s,{value:p,onChange:j})}),o.jsx(Tn,{value:"pricing",className:"mt-0",children:a?o.jsx(q4s,{modelPublicId:e}):o.jsx(H4s,{draft:x,onChange:w})}),a?o.jsx(Tn,{value:"display",className:"mt-0",children:o.jsx(r5s,{value:v,onCh
972ange:N})}):null]}),a?m==="pricing"?o.jsx("p",{className:"text-left text-11 text-[color:var(--muted-foreground)] sm:text-right",children:n("adminModels.pricing.savesImmediately",{defaultValue:"Pricing changes apply immediately and are not controlled by Save."})}):o.jsxs("div",{className:"grid gap-2 sm:flex sm:justify-end",children:[o.jsx(K,{className:"w-full sm:w-auto",variant:"secondary",onClick:G,disabled:E,children:n("adminModels.cancel")}),o.jsx(K,{className:"w-full sm:w-auto",onClick:q,disabled:!O,children:n("adminModels.save")})]}):o.jsxs("div",{className:"grid gap-2 sm:flex sm:items-center sm:justify-between",children:[o.jsx(K,{className:"w-full sm:w-auto",variant:"secondary",onClick:G,disabled:E,children:n("adminModels.cancel")}),o.jsxs("div",{className:"grid gap-2 sm:flex",children:[V>0?o.jsx(K,{className:"w-full sm:w-auto",variant:"secondary",type:"button",onClick:()=>f(Fb[V-1]),disabled:E,children:n("adminModels.steps.back",{defaultValue:"Back"})}):null,ne?o.jsx(K,{className:"w-full sm:w-auto",onClick:q,disabled:!O,children:n("adminModels.steps.create",{defaultValue:"Create model"})}):o.jsx(K,{className:"w-full sm:w-auto",type:"button",onClick:()=>f(Fb[V+1]),children:n("adminModels.steps.next",{defaultValue:"Next"})})]})]})]})}const zb=["provider","status","visibility","search","page"];function m5s(){const{t:e}=W(),t=qa(),n=Go(t.data?.admin??null,"ops.models.write"),[a,s]=h.useState(null),{params:r,patch:i,remove:c}=Mt(),d=h.useMemo(()=>({provider:Pe(r,"provider"),status:Pe(r,"status"),visibility:Pe(r,"visibility"),search:Pe(r,"search"),page:ln(r,"page",1)}),[r]),m=h.useDeferredValue(d.search),f=zIs({page:String(d.page),...d.provider?{provider:d.provider}:{},...d.status?{status:d.status}:{},...d.visibility?{visibility:d.visibility}:{},...m?{search:m}:{}}),p=phs("provider",{includeAll:!0,allLabel:e("adminModels.filters.allProviders",{defaultValue:"All providers"})}),y=[{label:e("adminModels.filters.allStatuses",{defaultValue:"All model statuses"}),value:""},...CK],v=[{label:e("adminModels.filters.allVisibility",{defaultValue:"All visibility"}),value:""},...SK],$=a!==null,w=(a?f.data?.items.find(k=>k.publicId===a):null)?.fullSlug??a??"";function S(k){s(k)}return o.jsxs(Vt,{title:e("adminModels.title"),description:e("adminModels.description"),action:o.jsx(K,{size:"sm",onClick:()=>s(""),disabled:!n,children:e("adminModels.addModel")}),children:[o.jsxs("div",{className:"mb-3 grid gap-3 md:mb-4 md:grid-cols-[1fr_1fr_1fr_2fr_auto]",children:[o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminModels.filters.provider"),value:d.provider,options:p.options,onChange:k=>i({provider:k,page:void 0})})}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminModels.filters.status"),value:d.status,options:y,onChange:k=>i({status:k,page:void 0})})}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminModels.filters.visibility"),value:d.visibility,options:v,onChange:k=>i({visibility:k,page:void 0})})}),o.jsxs("label",{className:"grid gap-1.5 text-xs font-medium",children:[e("adminModels.filters.search",{defaultValue:"Search model slug"}),o.jsx(ge,{value:d.search,onChange:k=>i({search:k.target.value,page:void 0}),placeholder:"claude-opus-4.7",className:"font-[family-name:var(--font-mono)]"})]}),o.jsx(nn,{show:Zt(r,zb),onReset:()=>c(zb),className:"hidden self-end md:inline-flex"})]}),o.jsxs(Gp,{label:e("adminModels.filters.mobileTitle",{defaultValue:"Filters"}),active:Zt(r,["provider","status","visibility"]),className:"mb-4",panelClassName:"gap-3",children:[o.jsx(Ze,{label:e("adminModels.filters.provider"),value:d.provider,options:p.options,onChange:k=>i({provider:k,page:void 0})}),o.jsx(Ze,{label:e("adminModels.filters.status"),value:d.status,options:y,onChange:k=>i({status:k,page:void 0})}),o.jsx(Ze,{label:e("adminModels.filters.visibility"),value:d.visibility,options:v,onChange:k=>i({visibility:k,page:void 0})}),o.jsx(nn,{show:Zt(r,zb),onReset:()=>c(zb),className:"justify-self-end"})]}),o.jsx(Pt,{label:e("adminModels.table.label"),rows:f.data?.items,isLoading:f.isLoading,error:f.error,emptyTitle:e("adminModels.table.empty"),pagination:{total:f.data?.total??0,page:d.page,onPageChange:k=>i({page:k===1?void 0:String(k)},{replace:!1})},columns:[{header:e("adminModels.table.model"),cell:k=>o.jsxs("span",{className:"flex items-center gap-2",children:[o.jsx("span",{"aria-hidden":"true",className:"flex size-[18px] shrink-0 items-center justify-center text-[color:var(--muted-foreground)]",children:o.jsx(Xo,{authorSlug:k.provider,size:18})}
972),o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-sm",children:k.fullSlug})]})},{header:e("adminModels.table.source",{defaultValue:"Source"}),cell:k=>o.jsx(Xt,{variant:"outline",className:"font-[family-name:var(--font-mono)]",children:k.source??k.provider})},{header:e("adminModels.table.sub2api",{defaultValue:"Sub2API mapping"}),cell:k=>k.sub2apiModelId?o.jsxs("span",{className:"font-[family-name:var(--font-mono)] text-xs text-[color:var(--muted-foreground)]",children:["â ",k.sub2apiModelId]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})},{header:e("adminModels.table.textPrice",{defaultValue:"Price (in / out $/M)"}),align:"right",cell:k=>{const T=bJ(k);return T.hasPrice?o.jsxs("div",{className:"text-right leading-tight",children:[o.jsxs("div",{className:"font-[family-name:var(--font-mono)] text-xs tabular-nums",children:[T.ourLabel,T.kind==="image"?o.jsx("span",{className:"ml-1 text-2xs font-sans text-[color:var(--muted-foreground)]",children:e("adminModels.table.imageOutput",{defaultValue:"image out"})}):null]}),T.savedPct!=null?o.jsxs("div",{className:"mt-0.5 text-2xs tabular-nums text-[color:var(--muted-foreground)]",children:[e("adminModels.table.officialPrice",{defaultValue:"List"})," ",T.officialLabel," · ",e("adminModels.table.saved",{pct:T.savedPct,defaultValue:"-{{pct}}%"})]}):null]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}},{header:e("adminModels.table.status"),cell:k=>o.jsx(Oe,{value:k.status,label:ct(k.status)})},{header:e("adminModels.table.visibility"),cell:k=>o.jsx(Oe,{value:k.visibility,label:ct(k.visibility)})},{header:e("adminModels.table.action"),sticky:"right",cell:k=>o.jsx(K,{variant:"secondary",size:"sm",onClick:()=>S(k.publicId),disabled:!n,children:e("adminModels.table.edit")})}],mobileCard:k=>o.jsx(p5s,{model:k,canWrite:n,onEdit:()=>S(k.publicId)})}),o.jsx(Vn,{open:$,onOpenChange:k=>{k||s(null)},children:o.jsxs(Nn,{side:"auto",children:[o.jsxs(Pa,{className:"pointer-events-none pr-10",children:[o.jsxs(Rn,{className:"grid gap-0.5 text-sm leading-5 sm:text-base sm:leading-normal",children:[o.jsx("span",{children:a?e("adminModels.editModelShort",{defaultValue:"Edit model"}):e("adminModels.newModel")}),a?o.jsx("span",{className:"pointer-events-none line-clamp-2 font-[family-name:var(--font-mono)] text-xs font-medium leading-5 text-[color:var(--muted-foreground)] break-all [overflow-wrap:anywhere]",children:w}):null]}),o.jsx(ua,{children:a?e("adminModels.sheetDescription"):e("adminModels.sheetDescriptionNew",{defaultValue:"Create the model draft. Set pricing and publish after it exists."})})]}),$?o.jsx(u5s,{publicId:a||null,onDone:()=>s(null)},a):null]})})]})}function p5s({model:e,canWrite:t,onEdit:n}){const{t:a}=W(),s=bJ(e);return o.jsxs(Dn,{children:[o.jsx(kr,{title:o.jsxs("span",{className:"inline-flex min-w-0 items-start gap-2",children:[o.jsx("span",{"aria-hidden":"true",className:"mt-0.5 flex size-[18px] shrink-0 items-center justify-center text-[color:var(--muted-foreground)]",children:o.jsx(Xo,{authorSlug:e.provider,size:18})}),o.jsx("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)] text-xs",children:e.fullSlug})]}),meta:e.source??e.provider,truncateTitle:!1,trailing:o.jsxs(Cr,{children:[o.jsx(Oe,{value:e.status,label:ct(e.status)}),o.jsx(K,{type:"button",variant:"secondary",size:"sm",onClick:n,disabled:!t,children:a("adminModels.table.edit")})]})}),o.jsxs(Ha,{children:[o.jsx(Qe,{label:a("adminModels.table.visibility"),children:o.jsx(Oe,{value:e.visibility,label:ct(e.visibility)})}),o.jsx(Qe,{label:a("adminModels.table.source",{defaultValue:"Source"}),align:"right",truncate:!1,children:o.jsx(Xt,{variant:"outline",className:"font-[family-name:var(--font-mono)]",children:e.source??e.provider})}),o.jsx(Qe,{label:a("adminModels.table.sub2api",{defaultValue:"Sub2API mapping"}),className:"col-span-2",truncate:!1,children:e.sub2apiModelId?o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-11 break-all text-[color:var(--muted-foreground)]",children:e.sub2apiModelId}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}),o.jsx(Qe,{label:a("adminModels.table.textPrice",{defaultValue:"Price (in / out $/M)"}),className:"col-span-2",truncate:!1,children:s.hasPrice?o.jsxs("span",{className:"block font-[family-name:var
972(--font-mono)] text-xs tabular-nums",children:[s.ourLabel,s.kind==="image"?o.jsx("span",{className:"ml-1 font-sans text-2xs text-[color:var(--muted-foreground)]",children:a("adminModels.table.imageOutput",{defaultValue:"image out"})}):null,s.savedPct!=null?o.jsxs("span",{className:"mt-0.5 block font-sans text-11 text-[color:var(--muted-foreground)]",children:[a("adminModels.table.officialPrice",{defaultValue:"List"})," ",s.officialLabel," · ",a("adminModels.table.saved",{pct:s.savedPct,defaultValue:"-{{pct}}%"})]}):null]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})})]})]})}function bJ(e){const t=e.outputModalities??[],n=(t.includes("image")||t.includes("video"))&&!t.includes("text"),a=n?`${Fn(e.imageOutputPricePer1m)} / 1M`:`${Fn(e.inputPricePer1m)} / ${Fn(e.outputPricePer1m)}`,s=n?`${Fn(e.officialImageOutputPricePer1m)} / 1M`:`${Fn(e.officialInputPricePer1m)} / ${Fn(e.officialOutputPricePer1m)}`,r=!!(n?e.imageOutputPricePer1m:e.inputPricePer1m||e.outputPricePer1m),i=Number(n?e.imageOutputPricePer1m:e.outputPricePer1m),c=Number(n?e.officialImageOutputPricePer1m:e.officialOutputPricePer1m),d=Number.isFinite(i)&&Number.isFinite(c)&&c>i;return{kind:n?"image":"text",ourLabel:a,officialLabel:s,hasPrice:r,savedPct:d?Math.round((1-i/c)*100):null}}const f5s=["api_gateway","auth","console","ops","global"],g5s=["active","disabled","archived"],mT=["rpm_per_key","rpm_per_user","concurrent_streams_per_key","concurrent_streams_per_user"];function h5s(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function y5s({policy:e,onDone:t}){const{t:n}=W(),a=!!e,s=$Is(),r=wIs(),[i,c]=h.useState(e?.code??""),[d,m]=h.useState(e?.name??""),[f,p]=h.useState(e?.description??""),[y,v]=h.useState(e?.scope??"api_gateway"),[$,x]=h.useState(e?.status??"active"),[w,S]=h.useState(()=>{const P={};for(const j of mT)P[j]=e?.limits?.[j]!=null?String(e.limits[j]):"";return P}),k=s.isPending||r.isPending,T=!!d.trim()&&(a||!!i.trim())&&!k,R=()=>{const P={};for(const j of mT){const N=w[j].trim();if(N==="")continue;const I=Number(N);if(!Number.isInteger(I)||I<=0)throw new Error(n("adminRateLimits.form.invalidLimit",{field:n(`adminRateLimits.limitNames.${j}`)}));P[j]=I}return P},_=async()=>{try{const P=R();a?await r.mutateAsync({publicId:e.publicId,name:d,description:f,scope:y,status:$,limits:P}):await s.mutateAsync({code:i.trim(),name:d,description:f,scope:y,status:$,limits:P}),ie.success(n("adminRateLimits.form.saved")),t()}catch(P){ie.error(h5s(P))}};return o.jsxs("div",{className:"grid min-w-0 gap-4 sm:gap-5",children:[o.jsxs(sn,{title:n("adminRateLimits.form.identity"),children:[o.jsx(De,{label:n("adminRateLimits.code"),hint:a?n("adminRateLimits.form.codeImmutable"):void 0,children:o.jsx(ge,{value:i,onChange:P=>c(P.target.value),disabled:a,placeholder:"team_pro",className:"font-[family-name:var(--font-mono)]"})}),o.jsx(De,{label:n("adminRateLimits.name"),children:o.jsx(ge,{value:d,onChange:P=>m(P.target.value),placeholder:"Team Pro"})}),o.jsx(De,{label:n("adminRateLimits.form.description"),children:o.jsx(ge,{value:f,onChange:P=>p(P.target.value)})})]}),o.jsxs(sn,{title:n("adminRateLimits.form.classification"),contentClassName:"md:grid-cols-2",children:[o.jsx(De,{label:n("adminRateLimits.scope"),children:o.jsx(ft,{value:y,onChange:P=>v(P.target.value),children:f5s.map(P=>o.jsx("option",{value:P,children:n(`adminRateLimits.scopes.${P}`)},P))})}),o.jsx(De,{label:n("adminRateLimits.status"),children:o.jsx(ft,{value:$,onChange:P=>x(P.target.value),children:g5s.map(P=>o.jsx("option",{value:P,children:n(`adminRateLimits.statuses.${P}`)},P))})})]}),o.jsx(sn,{title:n("adminRateLimits.limits"),hint:n("adminRateLimits.form.limitsHint"),contentClassName:"md:grid-cols-2",children:mT.map(P=>o.jsx(De,{label:n(`adminRateLimits.limitNames.${P}`),children:o.jsx(ge,{type:"number",min:1,value:w[P],onChange:j=>S(N=>({...N,[P]:j.target.value})),placeholder:n("adminRateLimits.form.default"),className:"tabular-nums"})},P))}),o.jsxs("div",{className:"grid gap-2 pt-1 sm:flex sm:justify-end",children:[o.jsx(K,{variant:"secondary",onClick:t,disabled:k,children:n("adminRateLimits.form.cancel")}),o.jsx(K,{onClick:_,disabled:!T,children:n(a?"adminRateLimits.form.save":"adminRateLimits.form.create")})]})]})}const v5s={auth:"Auth",console:"Console",api_gateway:"API gateway",ops:"Ops",global:"Global"},b5s={rpm_per_key:"RPM / key",rpm_per_user:"RPM / user",concurrent_streams_per_key:"Streams / key",concurrent_streams_per_user:"Streams / user"};function xJ(e,t){return t(`adminRateLimits.scopes.${e}`,{defaultValue:v5s[e]??e.replaceAll("_"," ")})}function $J(e,t){return t(`adminRateLimits.limitNames.${e}`,{defaultValue:b5s[e]??e.replaceAll("_"," ")})}function x5s({limits:e}){const{t}=W(),n=Object.entries(e);return n.length===0?o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminRateLimits.noLimits")}):o.jsx("div",{className:"grid min-w-[220px] gap-1",children:n.map(([a,s])=>o.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:$J(a,t)}),o.jsx("span",{className:"font-medium tabular-nums",children:String(s)})]},a))})}function $5s({policy:e,canWrite:t,deleting:n,onEdit:a,onDelete:s}){const{t:r}=W(),i=Object.entries(e.limits),c=i.slice(0,2),d=Math.max(0,i.length-c.length);return o.jsxs(Dn,{className:"py-2",children:[o.jsx(kr,{title:o.jsx("span",{className:"block max-w-full truncate font-[family-name:var
972(--font-mono)]",children:e.code}),meta:o.jsx("span",{className:"block max-w-full truncate",children:e.name}),trailing:o.jsxs(Cr,{children:[o.jsx(Oe,{value:e.status}),o.jsx(K,{type:"button",variant:"secondary",size:"icon",onClick:a,disabled:!t,"aria-label":r("adminRateLimits.edit"),className:"size-8",children:o.jsx(T9,{className:"size-3.5"})}),o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:s,disabled:!t||n,"aria-label":r("adminRateLimits.delete"),className:"size-8",children:o.jsx(Sc,{className:"size-3.5"})})]})}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_auto]",children:[o.jsx(Qe,{label:r("adminRateLimits.scope"),children:xJ(e.scope,r)}),o.jsx(Qe,{label:r("adminRateLimits.limits"),align:"right",children:i.length?i.length:r("adminRateLimits.noLimits")}),c.length>0?o.jsx(Qe,{label:r("adminRateLimits.limits"),className:"col-span-2",truncate:!1,children:o.jsxs("span",{className:"flex flex-wrap gap-x-2 gap-y-1",children:[c.map(([m,f])=>o.jsxs("span",{className:"inline-flex items-center gap-1 rounded-md bg-[color:var(--muted)] px-1.5 py-0.5 text-11",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:$J(m,r)}),o.jsx("span",{className:"font-medium tabular-nums",children:String(f)})]},m)),d?o.jsxs("span",{className:"inline-flex items-center rounded-md bg-[color:var(--muted)] px-1.5 py-0.5 text-11 text-[color:var(--muted-foreground)]",children:["+",d]}):null]})}):null]})]})}function w5s(){const{t:e}=W(),t=qa(),n=Go(t.data?.admin??null,"ops.rate_limit.write"),a=KZ(),s=kIs(),[r,i]=h.useState(null),c=async d=>{if(await zt({message:e("adminRateLimits.confirmDelete",{name:d.name}),variant:"destructive"}))try{await s.mutateAsync(d.publicId),ie.success(e("adminRateLimits.deleted"))}catch(f){ie.error(f instanceof rn?`${f.code}: ${f.message}`:String(f))}};return o.jsxs(Vt,{title:e("adminRateLimits.title"),description:e("adminRateLimits.description"),action:o.jsx(K,{size:"sm",onClick:()=>i(""),disabled:!n,children:e("adminRateLimits.add")}),children:[o.jsx(Pt,{label:e("adminRateLimits.label"),rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:e("adminRateLimits.empty"),pagination:{},mobileCard:d=>o.jsx($5s,{policy:d,canWrite:n,deleting:s.isPending,onEdit:()=>i(d),onDelete:()=>c(d)}),columns:[{header:e("adminRateLimits.code"),cell:d=>o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-sm",children:d.code})},{header:e("adminRateLimits.name"),cell:d=>d.name},{header:e("adminRateLimits.scope"),cell:d=>xJ(d.scope,e)},{header:e("adminRateLimits.status"),cell:d=>o.jsx(Oe,{value:d.status})},{header:e("adminRateLimits.limits"),cell:d=>o.jsx(x5s,{limits:d.limits})},{header:e("adminRateLimits.action"),sticky:"right",cell:d=>o.jsxs("div",{className:"flex justify-end gap-2",children:[o.jsx(K,{variant:"secondary",size:"sm",onClick:()=>i(d),disabled:!n,children:e("adminRateLimits.edit")}),o.jsx(K,{variant:"ghost",size:"sm",onClick:()=>c(d),disabled:!n||s.isPending,children:e("adminRateLimits.delete")})]})}]}),o.jsx(Vn,{open:r!==null,onOpenChange:d=>{d||i(null)},children:o.jsxs(Nn,{side:"auto",className:"min-w-0",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:r?e("adminRateLimits.editTitle",{name:r.name}):e("adminRateLimits.newTitle")}),o.jsx(ua,{children:e("adminRateLimits.formDescription")})]}),r!==null?o.jsx(y5s,{policy:r===""?null:r,onDone:()=>i(null)},r===""?"new":r.publicId):null]})})]})}const u8=20,m8=["q","status","page","size"];function Xm(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function k5s(e){return e?e.slice(0,10):""}function C5s(e){return Be.adminUserDetail.replace(":publicId",e)}function p8({mode:e,entry:t,onDone:n}){const{t:a,i18n:s}=W(),r=SIs(),i=RIs(),[c,d]=h.useState(t?.email??""),[m,f]=h.useState(t?.note??""),[p,y]=h.useState(k5s(t?.expiresAt)),v=r.isPending||i.isPending,$=async x=>{x.preventDefault();try{e==="edit"&&t?(await i.mutateAsync({publicId:t.publicId,note:m.trim()||null,expiresAt:p||null}),ie.success(a("adminAccess.updated"))):(await r.mutateAsync({email:c.trim(),note:m.trim()||void 0,expiresAt:p||null}),ie.success(a("adminAccess.added"))),n()}catch(w){ie.error(Xm(w))}};return o.jsxs("form",{className:"mt-4 space-y-4",onSubmit:$,children:[o.jsx(De,{label:a("adminAccess.emailLabel"),hint:a("adminAccess.emailHint"),children:o.jsx(ge,{type:"text",autoFocus:!0,value:c,onChange:x=>d(x.target.value),disabled:e==="edit",placeholder:a("adminAccess.emailPlaceholder")})}),o.jsx(De,{label:a("adminAccess.noteLabel"),children:o.jsx(_o,{value:m,onChange:x=>f(x.target.value),rows:3,placeholder:a("adminAccess.notePlaceholder")})}),o.jsx(De,{label:a("adminAccess.expiresAtLabel"),hint:a("adminAccess.expiresAtHint"),children:o.jsx(fr,{value:p,onChange:y,placeholder:a("adminAccess.never"),minDate:new Date,locale:s.language,clearLabel:a("common.clearAll"),labels:gr(a,a("common.clearAll"))})}),o.jsxs("div",{className:"flex flex-col-reverse gap-2 min-[360px]:flex-row min-[360px]:justify-end",children:[o.jsx(K,{type:"button",variant:"ghost",className:"w-full min-[360px]:w-auto",onClick:n,disabled:v,children:a("common.cancel")}),o.jsx(K,{className:"w-full min-[360px]:w-auto",disabled:v||e==="add"&&!c.trim(),children:a(e==="edit"?"adminAccess.save":"adminAccess.add")})]})]})}function S5s({onDone:e}){const{t,i18n:n}=W(),a=AIs(),[s,r]=h.useState(""),[i,c]=h.useState(""),[d,m]=h.useState(""),[f,p]=h.useState([]),y=async v=>{v.preventDefault();const $=s.split(/\r?\n/).map(x=>
972x.trim()).filter(Boolean);try{const x=await a.mutateAsync({entries:$,note:i.trim()||void 0,expiresAt:d||null});p(x.results);const w=x.results.filter(S=>S.status==="added").length;ie.success(t("adminAccess.bulkAdded",{count:w}))}catch(x){ie.error(Xm(x))}};return o.jsxs("form",{className:"mt-4 space-y-4",onSubmit:y,children:[o.jsx(De,{label:t("adminAccess.bulkEntriesLabel"),children:o.jsx(_o,{value:s,onChange:v=>r(v.target.value),rows:8,placeholder:t("adminAccess.bulkEntriesPlaceholder")})}),o.jsx(De,{label:t("adminAccess.noteLabel"),children:o.jsx(_o,{value:i,onChange:v=>c(v.target.value),rows:2,placeholder:t("adminAccess.notePlaceholder")})}),o.jsx(De,{label:t("adminAccess.expiresAtLabel"),children:o.jsx(fr,{value:d,onChange:m,placeholder:t("adminAccess.never"),minDate:new Date,locale:n.language,clearLabel:t("common.clearAll"),labels:gr(t,t("common.clearAll"))})}),f.length?o.jsx("div",{className:"max-h-48 overflow-auto rounded-md border border-[color:var(--border)] text-xs",children:f.map((v,$)=>o.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-2 border-b border-[color:var(--border)] px-3 py-2 last:border-b-0",children:[o.jsx("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)]",children:v.email}),o.jsx(Oe,{value:v.status})]},`${v.email}-${$}`))}):null,o.jsxs("div",{className:"flex flex-col-reverse gap-2 min-[360px]:flex-row min-[360px]:justify-end",children:[o.jsx(K,{type:"button",variant:"ghost",className:"w-full min-[360px]:w-auto",onClick:e,disabled:a.isPending,children:t("common.cancel")}),o.jsx(K,{className:"w-full min-[360px]:w-auto",disabled:a.isPending||!s.trim(),children:t("adminAccess.bulkAdd")})]})]})}function A5s({canRead:e}){const{t}=W(),n=TIs(),[a,s]=h.useState(""),[r,i]=h.useState(null),c=async d=>{d.preventDefault();try{const m=await n.mutateAsync(a.trim());i(m.result)}catch(m){ie.error(Xm(m))}};return o.jsxs("form",{className:"mb-4 grid min-w-0 gap-3 rounded-md border border-[color:var(--border)] bg-[color:var(--card)] p-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:p-4",onSubmit:c,children:[o.jsx(De,{label:t("adminAccess.checkLabel"),children:o.jsx(ge,{value:a,onChange:d=>s(d.target.value),placeholder:t("adminAccess.checkPlaceholder"),disabled:!e})}),o.jsx(K,{className:"self-end",variant:"secondary",disabled:!e||n.isPending||!a.trim(),children:t("adminAccess.check")}),r?o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-sm sm:col-span-2",children:[o.jsx("span",{className:X("font-medium",r.allowed?"text-[color:var(--success)]":"text-[color:var(--destructive)]"),children:r.allowed?t("adminAccess.checkAllowed"):t("adminAccess.checkDenied")}),o.jsx("span",{className:"min-w-0 break-words text-[color:var(--muted-foreground)]",children:t(`adminAccess.checkReasons.${r.reason}`,{defaultValue:r.reason})}),r.matchedEntry?o.jsx("span",{className:"min-w-0 break-all font-[family-name:var(--font-mono)] text-xs",children:r.matchedEntry.email}):null]}):null]})}function f8({entry:e,canWrite:t,onEdit:n}){const{t:a}=W(),s=jIs(),r=PIs(),i=_Is(),c=s.isPending||r.isPending||i.isPending,d=async()=>{if(await zt({message:a("adminAccess.confirmRevoke",{email:e.email}),variant:"destructive"}))try{await s.mutateAsync(e.publicId),ie.success(a("adminAccess.revoked"))}catch(y){ie.error(Xm(y))}},m=async()=>{try{await r.mutateAsync(e.publicId),ie.success(a("adminAccess.restored"))}catch(p){ie.error(Xm(p))}},f=async()=>{try{await i.mutateAsync(e.publicId),ie.success(a("adminAccess.invited"))}catch(p){ie.error(Xm(p))}};return e.status==="revoked"?o.jsx("div",{className:"flex w-full justify-end min-[360px]:w-auto",children:o.jsx(K,{variant:"ghost",size:"sm",className:"w-full min-[360px]:w-auto",onClick:m,disabled:!t||c,children:a("adminAccess.restore")})}):o.jsxs("div",{className:"grid w-full grid-cols-3 gap-1 min-[360px]:flex min-[360px]:w-auto min-[360px]:justify-end",children:[o.jsx(K,{variant:"secondary",size:"sm",className:"h-8 px-2 text-11 min-[360px]:h-9 min-[360px]:text-xs",onClick:()=>n(e),disabled:!t||c,children:a("adminAccess.edit")}),o.jsx(K,{variant:"ghost",size:"sm",className:"h-8 px-2 text-11 min-[360px]:h-9 min-[360px]:text-xs",onClick:f,disabled:!t||c||e.email.startsWith("@")||e.status==="expired",children:a("adminAccess.invite")}),o.jsx(K,{variant:"ghost",size:"sm",className:"h-8 px-2 text-11 min-[360px]:h-9 min-[360px]:text-xs",onClick:d,disabled:!t||c,children:a("adminAccess.revoke")})]})}function T5s(){const{t:e}=W(),t=Te(),n=qa(),a=Go(n.data?.admin??null,"ops.users.read"),s=Go(n.data?.admin??null,"ops.users.write"),{params:r,patch:i,remove:c}=Mt(),d=h.useMemo(()=>({q:Pe(r,"q"),status:Pe(r,"status","active"),page:ln(r,"page",1),size:ln(r,"size",u8)}),[r]),m=h.useDeferredValue(d.q),f=CIs({...m?{q:m}:{},status:d.status,page:String(d.page),limit:String(d.size)}),[p,y]=h.useState(null);return o.jsxs(Vt,{title:e("adminAccess.title"),description:e("adminAccess.description"),action:o.jsxs("div",{className:"grid w-full grid-cols-2 gap-2 sm:flex sm:w-auto
972sm:flex-wrap",children:[o.jsx(K,{size:"sm",variant:"secondary",className:"min-w-0 px-2",onClick:()=>y({mode:"bulk"}),disabled:!s,children:e("adminAccess.bulkAdd")}),o.jsx(K,{size:"sm",className:"min-w-0 px-2",onClick:()=>y({mode:"add"}),disabled:!s,children:e("adminAccess.add")})]}),children:[o.jsx(A5s,{canRead:a}),o.jsxs("div",{className:"mb-4 grid gap-3 sm:grid-cols-[minmax(220px,1fr)_180px_auto]",children:[o.jsxs("label",{className:"grid gap-1.5 text-xs font-medium",children:[e("adminAccess.search"),o.jsx(ge,{value:d.q,onChange:v=>i({q:v.target.value,page:void 0}),placeholder:e("adminAccess.searchPlaceholder")})]}),o.jsx(Ze,{label:e("adminAccess.statusFilter"),value:d.status,options:PK,onChange:v=>i({status:v||"active",page:void 0})}),o.jsx(nn,{show:Zt(r,m8,["page","size"]),onReset:()=>c(m8),className:"self-end"})]}),o.jsx(Pt,{label:e("adminAccess.label"),rows:f.data?.items,isLoading:f.isLoading,error:f.error,emptyTitle:e("adminAccess.empty"),pagination:{total:f.data?.total??0,page:d.page,pageSize:d.size,pageSizeOptions:[10,20,50,100],onPageChange:v=>i({page:v===1?void 0:String(v)},{replace:!1}),onPageSizeChange:v=>i({size:v===u8?void 0:String(v),page:void 0})},columns:[{header:e("adminAccess.email"),mobileValue:"break-all",cell:v=>o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-sm",children:v.email})},{header:e("adminAccess.note"),mobileValue:"wrap",cell:v=>o.jsx("span",{className:"block max-w-[260px] truncate",children:v.note||o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"-"})})},{header:e("adminAccess.status"),cell:v=>o.jsx(Oe,{value:v.status})},{header:e("adminAccess.registration"),cell:v=>v.user?o.jsx(Ta,{to:C5s(v.user.publicId),className:X(ur({variant:"link",size:"sm"}),"h-auto p-0"),children:e("adminAccess.registered")}):v.admin?o.jsx("span",{className:"text-sm",children:e("adminAccess.adminAllowed")}):v.email.startsWith("@")?o.jsx("span",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("adminAccess.domainRule")}):o.jsx("span",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("adminAccess.notRegistered")})},{header:e("adminAccess.expiresAt"),cell:v=>v.expiresAt?t.dateTime(v.expiresAt):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e("adminAccess.never")})},{header:e("adminAccess.invites"),mobileValue:"wrap",cell:v=>o.jsxs("div",{className:"text-sm tabular-nums",children:[v.inviteCount,v.lastInvitedAt?o.jsx("span",{className:"ml-2 text-[color:var(--muted-foreground)]",children:t.dateTime(v.lastInvitedAt)}):null]})},{header:e("adminAccess.updatedAt"),cell:v=>t.dateTime(v.updatedAt)},{header:e("adminAccess.action"),sticky:"right",cell:v=>o.jsx(f8,{entry:v,canWrite:s,onEdit:$=>y({mode:"edit",entry:$})})}],mobileCard:v=>o.jsxs(Dn,{className:"py-1.5",children:[o.jsx("div",{className:"flex min-w-0 items-start justify-between gap-2",children:o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"break-all font-[family-name:var(--font-mono)] text-sm font-medium",children:v.email}),v.note?o.jsx("div",{className:"mt-0.5 line-clamp-1 min-w-0 break-words text-11 text-[color:var(--muted-foreground)]",children:v.note}):null]})}),o.jsxs(Ha,{className:"grid-cols-2",children:[o.jsx(Qe,{label:e("adminAccess.status"),children:o.jsx(Oe,{value:v.status})}),o.jsx(Qe,{label:e("adminAccess.invites"),align:"right",children:o.jsx("span",{className:"tabular-nums",children:v.inviteCount})})]}),o.jsx(Cr,{className:"mt-1",children:o.jsx(f8,{entry:v,canWrite:s,onEdit:$=>y({mode:"edit",entry:$})})})]})}),o.jsx(Vn,{open:p!==null,onOpenChange:v=>{v||y(null)},children:o.jsxs(Nn,{side:"auto",className:"min-w-0 overflow-y-auto",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{className:"break-words",children:p?.mode==="edit"?e("adminAccess.editTitle",{email:p.entry?.email}):p?.mode==="bulk"?e("adminAccess.bulkTitle"):e("adminAccess.newTitle")}),o.jsx(ua,{children:p?.mode==="bulk"?e("adminAccess.bulkDescription"):e("adminAccess.formDescription")})]}),p?.mode==="bulk"?o.jsx(S5s,{onDone:()=>y(null)}):null,p?.mode==="add"?o.jsx(p8,{mode:"add",onDone:()=>y(null)}):null,p?.mode==="edit"&&p.entry?o.jsx(p8,{mode:"edit",entry:p.entry,onDone:()=>y(null)}):null]})})]})}const g8=20,h8=["q","kind","status","page","size"];function zP(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function R5s({kind:e}){const{t}=W(),n=e==="blacklist";return o.jsx("span",{className:"inline-flex items-center rounded-full px-2 py-0.5 text-2xs font-medium "+(n?"bg-[color:var(--destructive)]/10 text-[color:var(--destructive)]":"bg-[color:var(--success)]/10 text-[color:var(--success)]"),children:t(n?"adminAccess.domainRules.badgeBlacklist":"adminAccess.domainRules.badgeMainstream")})}function P5s({onDone:e}){const{t}
972=W(),n=DIs(),[a,s]=h.useState("blacklist"),[r,i]=h.useState(""),[c,d]=h.useState(""),m=async f=>{f.preventDefault();try{await n.mutateAsync({kind:a,domain:r.trim(),note:c.trim()||null}),ie.success(t("adminAccess.domainRules.added")),e()}catch(p){ie.error(zP(p))}};return o.jsxs("form",{className:"mt-4 space-y-4",onSubmit:m,children:[o.jsx(Ze,{label:t("adminAccess.domainRules.kindLabel"),value:a,options:[{value:"blacklist",label:t("adminAccess.domainRules.kindBlacklist")},{value:"mainstream",label:t("adminAccess.domainRules.kindMainstream")}],onChange:f=>s(f==="mainstream"?"mainstream":"blacklist")}),o.jsx(De,{label:t("adminAccess.domainRules.domainLabel"),children:o.jsx(ge,{value:r,onChange:f=>i(f.target.value),placeholder:t("adminAccess.domainRules.domainPlaceholder"),autoFocus:!0})}),o.jsx(De,{label:t("adminAccess.domainRules.noteLabel"),children:o.jsx(_o,{value:c,onChange:f=>d(f.target.value),rows:2,placeholder:t("adminAccess.domainRules.notePlaceholder")})}),o.jsxs("div",{className:"flex flex-col-reverse gap-2 min-[360px]:flex-row min-[360px]:justify-end",children:[o.jsx(K,{type:"button",variant:"ghost",className:"w-full min-[360px]:w-auto",onClick:e,disabled:n.isPending,children:t("common.cancel")}),o.jsx(K,{className:"w-full min-[360px]:w-auto",disabled:n.isPending||!r.trim(),children:t("adminAccess.domainRules.add")})]})]})}function _5s({entry:e,canWrite:t}){const{t:n}=W(),a=EIs(),s=MIs(),r=a.isPending||s.isPending,i=async()=>{if(await zt({message:n("adminAccess.domainRules.confirmRemove",{domain:e.domain}),variant:"destructive"}))try{await a.mutateAsync(e.publicId),ie.success(n("adminAccess.domainRules.removed"))}catch(m){ie.error(zP(m))}},c=async()=>{try{await s.mutateAsync(e.publicId),ie.success(n("adminAccess.domainRules.restored"))}catch(d){ie.error(zP(d))}};return e.status==="revoked"?o.jsx("div",{className:"flex w-full justify-end min-[360px]:w-auto",children:o.jsx(K,{variant:"ghost",size:"sm",className:"w-full min-[360px]:w-auto",onClick:c,disabled:!t||r,children:n("adminAccess.domainRules.restore")})}):o.jsx("div",{className:"flex w-full justify-end min-[360px]:w-auto",children:o.jsx(K,{variant:"ghost",size:"sm",className:"w-full min-[360px]:w-auto",onClick:i,disabled:!t||r,children:n("adminAccess.domainRules.remove")})})}function j5s(){const{t:e}=W(),t=Te(),n=qa(),a=Go(n.data?.admin??null,"ops.users.write"),{params:s,patch:r,remove:i}=Mt(),c=h.useMemo(()=>({q:Pe(s,"q"),kind:Pe(s,"kind","all"),status:Pe(s,"status","active"),page:ln(s,"page",1),size:ln(s,"size",g8)}),[s]),d=h.useDeferredValue(c.q),m=NIs({...d?{q:d}:{},kind:c.kind,status:c.status,page:String(c.page),limit:String(c.size)}),[f,p]=h.useState(!1);return o.jsxs(Vt,{title:e("adminAccess.domainRules.title"),description:e("adminAccess.domainRules.description"),action:o.jsx(K,{size:"sm",onClick:()=>p(!0),disabled:!a,children:e("adminAccess.domainRules.add")}),children:[o.jsxs("div",{className:"mb-4 grid gap-3 sm:grid-cols-[minmax(220px,1fr)_160px_160px_auto]",children:[o.jsxs("label",{className:"grid gap-1.5 text-xs font-medium",children:[e("adminAccess.domainRules.search"),o.jsx(ge,{value:c.q,onChange:y=>r({q:y.target.value,page:void 0}),placeholder:e("adminAccess.domainRules.searchPlaceholder")})]}),o.jsx(Ze,{label:e("adminAccess.domainRules.kindFilter"),value:c.kind,options:[{value:"all",label:e("adminAccess.domainRules.allKinds")},{value:"blacklist",label:e("adminAccess.domainRules.badgeBlacklist")},{value:"mainstream",label:e("adminAccess.domainRules.badgeMainstream")}],onChange:y=>r({kind:y||"all",page:void 0})}),o.jsx(Ze,{label:e("adminAccess.domainRules.statusFilter"),value:c.status,options:[{value:"active",label:e("adminAccess.domainRules.statusActive")},{value:"revoked",label:e("adminAccess.domainRules.statusRevoked")},{value:"all",label:e("adminAccess.domainRules.statusAll")}],onChange:y=>r({status:y||"active",page:void 0})}),o.jsx(nn,{show:Zt(s,h8,["page","size"]),onReset:()=>i(h8),className:"self-end"})]}),o.jsx(Pt,{label:e("adminAccess.domainRules.label"),rows:m.data?.items,isLoading:m.isLoading,error:m.error,emptyTitle:e("adminAccess.domainRules.empty"),pagination:{total:m.data?.total??0,page:c.page,pageSize:c.size,pageSizeOptions:[10,20,50,100],onPageChange:y=>r({page:y===1?void 0:String(y)},{replace:!1}),onPageSizeChange:y=>r({size:y===g8?void 0:String(y),page:void 0})},columns:[{header:e("adminAccess.domainRules.colDomain"),mobileValue:"break-all",cell:y=>
972o.jsx("span",{className:"font-[family-name:var(--font-mono)] text-sm",children:y.domain})},{header:e("adminAccess.domainRules.colNote"),mobileValue:"wrap",cell:y=>o.jsx("span",{className:"block max-w-[260px] whitespace-normal break-words [overflow-wrap:anywhere] md:truncate",children:y.note||o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"-"})})},{header:e("adminAccess.domainRules.colKind"),cell:y=>o.jsx(R5s,{kind:y.kind})},{header:e("adminAccess.domainRules.status"),cell:y=>o.jsx(Oe,{value:y.status})},{header:e("adminAccess.domainRules.colAddedBy"),cell:y=>o.jsx("span",{className:"text-sm text-[color:var(--muted-foreground)]",children:y.createdByEmail||"-"})},{header:e("adminAccess.domainRules.colCreated"),cell:y=>t.dateTime(y.createdAt)},{header:e("adminAccess.domainRules.action"),sticky:"right",cell:y=>o.jsx(_5s,{entry:y,canWrite:a})}]}),o.jsx(Vn,{open:f,onOpenChange:y=>!y&&p(!1),children:o.jsxs(Nn,{side:"auto",className:"min-w-0",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:e("adminAccess.domainRules.addTitle")}),o.jsx(ua,{children:e("adminAccess.domainRules.addDescription")})]}),o.jsx(P5s,{onDone:()=>p(!1)})]})})]})}const qP=["owner","admin","support"];function xx(e){return e instanceof rn?`${e.code}: ${e.message}`:String(e)}function N5s({onDone:e}){const{t}=W(),n=OIs(),[a,s]=h.useState(""),[r,i]=h.useState(""),[c,d]=h.useState("admin"),m=async f=>{f.preventDefault();try{await n.mutateAsync({email:a.trim(),name:r.trim(),role:c}),ie.success(t("adminStaff.added")),e()}catch(p){ie.error(xx(p))}};return o.jsxs("form",{className:"mt-4 space-y-4",onSubmit:m,children:[o.jsxs("label",{className:ti,children:[t("adminStaff.emailLabel"),o.jsx(ge,{type:"text",autoFocus:!0,value:a,onChange:f=>s(f.target.value),placeholder:t("adminStaff.emailPlaceholder")})]}),o.jsxs("label",{className:ti,children:[t("adminStaff.nameLabel"),o.jsx(ge,{type:"text",value:r,onChange:f=>i(f.target.value),placeholder:t("adminStaff.namePlaceholder")})]}),o.jsxs("label",{className:ti,children:[t("adminStaff.roleLabel"),o.jsx(ft,{value:c,onValueChange:f=>d(f),options:qP.map(f=>({value:f,label:t(`adminStaff.roles.${f}`)}))})]}),o.jsxs("div",{className:"flex flex-col-reverse gap-2 min-[360px]:flex-row min-[360px]:justify-end",children:[o.jsx(K,{type:"button",variant:"ghost",className:"w-full min-[360px]:w-auto",onClick:e,disabled:n.isPending,children:t("common.cancel")}),o.jsx(K,{className:"w-full min-[360px]:w-auto",disabled:n.isPending||!a.trim()||!r.trim(),children:t("adminStaff.add")})]})]})}function D5s(){const{t:e}=W(),t=qa(),n=IIs(),a=LIs(),s=UIs(),r=BIs(),[i,c]=h.useState(!1),d=n.data?.items??[],m=t.data?.admin?.publicId,f=d.filter(k=>k.role==="owner"&&k.status==="active").length,p=k=>k.publicId===m,y=k=>k.role==="owner"&&k.status==="active"&&f<=1,v=k=>p(k)||y(k),$=a.isPending||s.isPending||r.isPending,x=async(k,T)=>{if(T!==k.role)try{await a.mutateAsync({publicId:k.publicId,role:T}),ie.success(e("adminStaff.roleChanged"))}catch(R){ie.error(xx(R))}},w=async k=>{const T=k.status==="active"?"suspended":"active";try{await s.mutateAsync({publicId:k.publicId,status:T}),ie.success(e("adminStaff.statusChanged"))}catch(R){ie.error(xx(R))}},S=async k=>{if(await zt({message:e("adminStaff.confirmRemove",{email:k.email}),variant:"destructive"}))try{await r.mutateAsync(k.publicId),ie.success(e("adminStaff.removed"))}catch(R){ie.error(xx(R))}};return o.jsxs(Vt,{title:e("adminStaff.title"),description:e("adminStaff.description"),action:o.jsx(K,{size:"sm",className:"w-full sm:w-auto",onClick:()=>c(!0),children:e("adminStaff.add")}),children:[o.jsx(Pt,{label:e("adminStaff.label"),rows:d,isLoading:n.isLoading,error:n.error,emptyTitle:e("adminStaff.empty"),pagination:{},columns:[{header:e("adminStaff.email"),mobileValue:"break-all",cell:k=>o.jsxs("span",{className:"font-[family-name:var(--font-mono)] text-sm",children:[k.email,p(k)?o.jsxs("span",{className:"ml-1.5 text-xs text-[color:var(--muted-foreground)]",children:["(",e("adminStaff.self"),")"]}):null]})},{header:e("adminStaff.role"),mobileValue:"wrap",cell:k=>o.jsx(ft,{className:"h-9 min-w-0",menuClassName:"max-w-[calc(100vw-1rem)]",value:k.role,disabled:$||v(k),onValueChange:T=>x(k,T),options:qP.map(T=>({value:T,label:e(`adminStaff.roles.${T}`)}))})},{header:e("adminStaff.name"),cell:k=>k.name},{header:e("adminStaff.status"),cell:k=>o.jsx(Oe,{value:k.status})},{header:e("adminStaff.action"),sticky:"right",cell:k=>o.jsxs("div",{className:"grid w-full grid-cols-2 gap-1 min-[360px]:flex min-[360px]:w-auto min-[360px]:justify-end",children:[o.jsx(K,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>w(k),disabled:$||v(k),children:k.status==="active"?e("adminStaff.suspend"):e("adminStaff.activate")}),o.jsx(K,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>S(k),disabled:$||v(k),children:e("adminStaff.remove")})]})}],mobileCard:k=>o.jsxs(Dn,{className:"py-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsxs("div",{className:"min-w-0 break-all font-[family-name:var
972(--font-mono)] text-xs font-medium leading-4",children:[k.email,p(k)?o.jsxs("span",{className:"ml-1.5 font-sans text-11 text-[color:var(--muted-foreground)]",children:["(",e("adminStaff.self"),")"]}):null]}),o.jsxs("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1.5 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"min-w-0 truncate",children:k.name}),o.jsx(Oe,{value:k.status})]})]}),o.jsxs("div",{className:"mt-2 grid min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-1.5",children:[o.jsx(ft,{className:"h-8 min-w-0 text-xs",menuClassName:"max-w-[calc(100vw-1rem)]",value:k.role,disabled:$||v(k),onValueChange:T=>x(k,T),options:qP.map(T=>({value:T,label:e(`adminStaff.roles.${T}`)}))}),o.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[o.jsx(K,{variant:"ghost",size:"sm",className:"h-8 px-2 text-xs",onClick:()=>w(k),disabled:$||v(k),children:k.status==="active"?e("adminStaff.suspend"):e("adminStaff.activate")}),o.jsx(K,{variant:"ghost",size:"sm",className:"h-8 px-2 text-xs",onClick:()=>S(k),disabled:$||v(k),children:e("adminStaff.remove")})]})]})]})}),o.jsx(Vn,{open:i,onOpenChange:c,children:o.jsxs(Nn,{side:"auto",className:"min-w-0",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{children:e("adminStaff.newTitle")}),o.jsx(ua,{children:e("adminStaff.formDescription")})]}),i?o.jsx(N5s,{onDone:()=>c(!1)}):null]})})]})}function qb(e,t){if(!e)return!1;const n=Date.parse(e);return Number.isFinite(n)&&n>t}function M5s(e,t){if(!e)return!1;const n=Date.parse(e);return Number.isFinite(n)&&n<=t}function E5s(e,t=Date.now()){return e.status&&e.status!=="active"?{state:"disabled",tone:"muted"}:e.error_message&&e.error_message.trim()?{state:"error",tone:"destructive"}:M5s(e.expires_at,t)?{state:"expired",tone:"destructive"}:qb(e.overload_until,t)?{state:"overloaded",tone:"warning"}:qb(e.rate_limit_reset_at,t)||qb(e.rate_limited_at,t)?{state:"rate_limited",tone:"warning"}:qb(e.temp_unschedulable_until,t)||e.schedulable===!1?{state:"paused",tone:"warning"}:{state:"serving",tone:"success"}}function I5s(e,t){if(t==null||!(t>0))return null;const n=e/t,a=n>=1?"destructive":n>=.8?"warning":"success";return{pct:n,tone:a}}const Tr={sub2apiKeyPools:["ops","sub2api","key-pools"],sub2apiGroups:["ops","sub2api","groups"],sub2apiChannels:["ops","sub2api","channels"],sub2apiAccounts:["ops","sub2api","accounts"],sub2apiDashboardStats:["ops","sub2api","dashboard-stats"],sub2apiGroupsUsage:["ops","sub2api","groups-usage"]};function y8(e){return e.publicId??e.public_id??""}function Cd(e){return e.healthStatus??e.health_status??"unknown"}function wJ(){return Ue({queryKey:Tr.sub2apiKeyPools,queryFn:()=>ve.request("/ops/sub2api/key-pools")})}function kJ(){return Ue({queryKey:Tr.sub2apiGroups,queryFn:()=>ve.request("/ops/sub2api/groups")})}function CJ(){return Ue({queryKey:Tr.sub2apiChannels,queryFn:()=>ve.request("/ops/sub2api/channels")})}function SJ(){return Ue({queryKey:Tr.sub2apiAccounts,queryFn:()=>ve.request("/ops/sub2api/accounts")})}function O5s(){return Ue({queryKey:Tr.sub2apiDashboardStats,queryFn:()=>ve.request("/ops/sub2api/dashboard/stats")})}function L5s(){return Ue({queryKey:Tr.sub2apiGroupsUsage,queryFn:()=>ve.request("/ops/sub2api/groups/usage")})}function U5s(){const e=Re();return ke({mutationFn:t=>ve.request("/ops/sub2api/key-pools",{method:"POST",body:t,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Tr.sub2apiKeyPools})})}function B5s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/sub2api/key-pools/${t}/test`,{method:"POST",idempotent:!0}),onSettled:()=>e.invalidateQueries({queryKey:Tr.sub2apiKeyPools})})}function F5s(){const e=Re();return ke({mutationFn:({publicId:t,plaintextKey:n})=>ve.request(`/ops/sub2api/key-pools/${t}/rotate`,{method:"POST",body:{plaintextKey:n},idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Tr.sub2apiKeyPools})})}function z5s(){const e=Re();return ke({mutationFn:({publicId:t,...n})=>ve.request(`/ops/sub2api/key-pools/${t}`,{method:"PATCH",body:n,idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Tr.sub2apiKeyPools})})}function q5s(){const e=Re();return ke({mutationFn:t=>ve.request(`/ops/sub2api/key-pools/${t}/resync-platform`,{method:"POST",idempotent:!0}),onSuccess:()=>e.invalidateQueries({queryKey:Tr.sub2apiKeyPools})})}function H5s(){return ke({mutationFn:()=>ve.request("/ops/sub2api/config-audit/run",{method:"POST",idempotent:!0})})}const pT=[["overview","/admin/upstream"],["keyPools","/admin/upstream/key-pools"],["groups","/admin/upstream/groups"],["channels","/admin/upstream/channels"],["accounts","/admin/upstream/accounts"]],AJ="http://localhost:28080/admin/dashboard",V5s=new Map(Sj.map(e=>[e.value,e.label]));function K5s(){const{t:e}=W(),t=No(),n=ls(),a=pT.map(([r,i])=>({value:i,label:e(`adminUpstream.tabs.${r}`)})),s=[...pT].reverse().find(([,r])=>r==="/admin/upstream"?n.pathname===r||n.pathname===`${r}/`:n.pathname.startsWith(r))?.[1]??"/admin/upstream";return o.jsxs(Vt,{title:e("adminUpstream.title"),description:e("adminUpstream.description"),action:o.jsx("a",{href:AJ,target:"_blank",rel:"noreferrer",children:o.jsxs(K,{size:"sm",variant:"outline",className:"w-full justify-center sm:w-auto",children:[o.jsx(dy,{className:"size-4"}),e("adminUpstream.openUpstreamAdmin")]})}),children:[o.jsxs(Ee,{className:"mb-4 p-1",children:[o.jsx("div",{className:"md:hidden",children:o.jsx(ft,{"aria-label":e("adminUpstream.tabsLabel"),value:s,options:a,onValueChange:r=>
972t(r),className:"h-9 text-sm"})}),o.jsx("nav",{"aria-label":e("adminUpstream.tabsLabel"),className:"hidden gap-1 overflow-x-auto md:flex",children:pT.map(([r,i])=>o.jsx(Yg,{to:i,end:i==="/admin/upstream",className:({isActive:c})=>X("shrink-0 rounded-md px-3 py-2 text-sm font-medium",c?"bg-[color:var(--accent)] text-[color:var(--foreground)]":"text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]"),children:e(`adminUpstream.tabs.${r}`)},i))})]}),o.jsxs(IT,{children:[o.jsx(dt,{path:"/",element:o.jsx(G5s,{})}),o.jsx(dt,{path:"key-pools",element:o.jsx(X5s,{})}),o.jsx(dt,{path:"groups",element:o.jsx(Z5s,{})}),o.jsx(dt,{path:"channels",element:o.jsx(J5s,{})}),o.jsx(dt,{path:"accounts",element:o.jsx(tUs,{})}),o.jsx(dt,{path:"*",element:o.jsx(Gd,{to:".",replace:!0})})]})]})}function G5s(){const{t:e}=W(),t=Te(),n=O5s(),a=kJ(),s=CJ(),r=SJ(),i=wJ(),c=H5s(),d=a.data?.items??[],m=s.data?.items??[],f=r.data?.items??[],p=i.data?.items??[],y=d.filter(j=>j.status==="active").length,v=m.filter(j=>j.status==="active").length,$=p.filter(j=>Cd(j)==="down").length,x=n.isFetching&&!n.isPending,w=Number(n.data?.error_accounts??0),S=Number(n.data?.ratelimit_accounts??0),k=Number(n.data?.overload_accounts??0),T=w+S+k,R=T>0?e("adminUpstream.ops.accounts.breakdown",{normal:Vr(n.data?.normal_accounts,t.locale),error:w,ratelimit:S,overload:k}):e("adminUpstream.metrics.total",{value:Vr(n.data?.total_accounts??f.length,t.locale)}),_=e("adminUpstream.ops.freshness.updated",{ago:n.data?.stats_updated_at?cUs(n.data.stats_updated_at):e("adminUpstream.ops.freshness.never")}),P=T>0;return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-4",children:[o.jsx(Hb,{label:e("adminUpstream.metrics.todayRequests"),value:o.jsx(Ho,{value:Number(n.data?.today_requests??0),format:j=>t.number(Math.round(j))}),detail:e("adminUpstream.metrics.total",{value:Vr(n.data?.total_requests,t.locale)}),refreshing:x}),o.jsx(Hb,{label:e("adminUpstream.metrics.upstreamCostToday"),value:o.jsx(Ho,{value:Number(n.data?.today_actual_cost??n.data?.today_cost??0),format:j=>cr(j)}),detail:`${e("adminUpstream.metrics.total",{value:cr(n.data?.total_cost)})} · ${e("adminUpstream.ops.tokensToday",{count:Vr(n.data?.today_tokens,t.locale)})}`,refreshing:x}),o.jsx(Hb,{label:e("adminUpstream.metrics.providerAccounts"),value:o.jsx(Ho,{value:Number(n.data?.normal_accounts??f.filter(j=>j.status==="active").length),format:j=>t.number(Math.round(j))}),detail:R,tone:P?"warning":"default",refreshing:x}),o.jsx(Hb,{label:e("adminUpstream.metrics.health"),value:n.data?.stats_stale?e("adminUpstream.metrics.stale"):$>0?e("adminUpstream.metrics.checkPools"):e("adminUpstream.metrics.online"),detail:`RPM ${Vr(n.data?.rpm,t.locale)} · TPM ${Vr(n.data?.tpm,t.locale)} · ${_}`,tone:n.data?.stats_stale||$>0?"warning":"success",refreshing:x})]}),n.error?o.jsx(Qt,{title:e("adminUpstream.errors.upstreamStatsFailed"),description:n.error.message,action:o.jsx(K,{onClick:()=>n.refetch(),children:e("adminUpstream.errors.retry")})}):null,o.jsxs(Ee,{className:"p-5",children:[o.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminUpstream.audit.title")}),o.jsx("p",{className:"mt-1 max-w-3xl text-sm text-[color:var(--muted-foreground)]",children:e("adminUpstream.audit.description")})]}),o.jsxs(K,{onClick:()=>c.mutate(),disabled:c.isPending,className:"w-full justify-center sm:w-auto",children:[o.jsx(Vp,{className:"size-4"}),c.isPending?e("adminUpstream.audit.running"):e("adminUpstream.audit.run")]})]}),c.data?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"mt-4 grid gap-3 lg:grid-cols-2 xl:grid-cols-4",children:[o.jsx(hg,{label:e("adminUpstream.audit.poolsChecked"),value:c.data.pools?.checkedCount??0}),o.jsx(hg,{label:e("adminUpstream.ops.audit.poolFindings"),value:(c.data.pools?.findings?.length??0)===0?e("adminUpstream.ops.audit.clean"):e("adminUpstream.ops.audit.findingsCount",{count:c.data.pools.findings.length})}),o.jsx(hg,{label:e("adminUpstream.audit.modelAudit"),value:c.data.models?.ok?e("adminUpstream.audit.ok"):e("adminUpstream.audit.needsReview")}),o.jsx(hg,{label:e("adminUpstream.audit.protocolCoverage",{defaultValue:"Protocol coverage"}),value:(c.data.protocolCoverage?.findings?.length??0)===0?c.data.protocolCoverage?.ok?e("adminUpstream.ops.audit.clean"):e("adminUpstream.audit.ring3Unchecked",{defaultValue:"ring3 not checked"}):e("adminUpstream.ops.audit.findingsCount",{count:c.data.protocolCoverage.findings.length})}),o.jsx(hg,{label:e("adminUpstream.audit.upstreamCoverage",{defaultValue:"Upstream coverage"}),value:c.data.upstreamCoverage?.ok?(c.data.upstreamCoverage?.findings?.length??0)===0?e("adminUpstream.ops.audit.clean"):e("adminUpstream.ops.audit.findingsCount",{count:c.data.upstreamCoverage.findings.length}):e("adminUpstream.audit.coverageUnchecked",{defaultValue:"accounts not readable"})})]}),o.jsx(Y5s,{findings:c.data.upstreamCoverage?.findings??[]}),c.data.protocolCoverage?.findings?.length?o.jsx("ul",{className:"mt-3 grid gap-1.5 text-13",children:c.data.protocolCoverage.findings.map((j,N)=>o.jsxs("li",{className:"flex flex-wrap items-baseline gap-2",children:[o.jsx("span",{className:`shrink-0 font-medium ${Q5s(j.kind)}`,children:j.kind}
972),o.jsxs("code",{className:"font-[family-name:var(--font-mono)] text-xs",children:[j.modelSlug," · ",j.protocol]}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:j.detail})]},`${j.modelSlug}-${j.protocol}-${N}`))}):null]}):null,c.error?o.jsx(Qt,{className:"mt-4",title:e("adminUpstream.errors.configAuditFailed"),description:c.error.message}):null]}),o.jsxs("div",{className:"grid gap-4 xl:grid-cols-[1fr_1.35fr]",children:[o.jsxs(Ee,{className:"p-5",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminUpstream.topology.title")}),o.jsxs("dl",{className:"mt-4 grid grid-cols-2 gap-3 text-sm",children:[o.jsx(Vb,{label:e("adminUpstream.topology.keyPools"),value:o.jsx(Ho,{value:p.length,format:j=>t.number(Math.round(j))})}),o.jsx(Vb,{label:e("adminUpstream.topology.activeGroups"),value:o.jsx(Ho,{value:y,format:j=>t.number(Math.round(j))})}),o.jsx(Vb,{label:e("adminUpstream.topology.activeChannels"),value:o.jsx(Ho,{value:v,format:j=>t.number(Math.round(j))})}),o.jsx(Vb,{label:e("adminUpstream.topology.accounts"),value:o.jsx(Ho,{value:f.length,format:j=>t.number(Math.round(j))})})]})]}),o.jsxs(Ee,{className:"p-5",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminUpstream.topology.editingBoundaryTitle")}),o.jsx("p",{className:"mt-2 text-sm leading-6 text-[color:var(--muted-foreground)]",children:e("adminUpstream.topology.editingBoundaryDescription")})]})]})]})}function W5s(e){return e==="no_servable_account"?"text-[color:var(--destructive)]":"text-[color:var(--warning-foreground)]"}function Y5s({findings:e}){const{t}=W();return e.length===0?null:o.jsx("ul",{className:"mt-3 grid gap-1.5 text-13",children:e.map(n=>o.jsxs("li",{className:"flex flex-wrap items-baseline gap-2",children:[o.jsx("span",{className:`shrink-0 font-medium ${W5s(n.kind)}`,children:n.kind}),o.jsxs("code",{className:"font-[family-name:var(--font-mono)] text-xs",children:[n.fullSlug," â ",n.upstreamId," · ",n.poolCode]}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:n.accounts.length?t("adminUpstream.audit.coverageOnlyAccount",{defaultValue:"only {{accounts}}",accounts:n.accounts.join(", ")}):t("adminUpstream.audit.coverageNoAccount",{defaultValue:"no schedulable account maps this upstream id"})})]},`${n.fullSlug}-${n.poolCode}`))})}function Q5s(e){return e==="missing_in_pool"||e==="pool_unavailable"?"text-[color:var(--destructive)]":e==="missing_sub2api_switch"?"text-[color:var(--warning-foreground)]":"text-[color:var(--muted-foreground)]"}function X5s(){const{t:e}=W(),t=Te(),[n,a]=h.useState("default"),[s,r]=h.useState(()=>e("adminUpstream.pools.defaultPool")),[i,c]=h.useState("false"),[d,m]=h.useState(""),[f,p]=h.useState(""),[y,v]=h.useState(""),$=wJ(),x=U5s(),w=hN($.data?.items??[]),S=B5s(),k=F5s(),T=q5s(),R=z5s(),[_,P]=h.useState(null),[j,N]=h.useState([]),I=E=>N(L=>L.includes(E)?L.filter(O=>O!==E):[...L,E]);function z(E){E.preventDefault(),x.mutate({code:n,name:s,plaintextKey:d,isDefault:i==="true"}),m("")}return o.jsxs("div",{className:"space-y-4",children:[o.jsxs(Ee,{className:"p-4",children:[o.jsxs("div",{className:"mb-3",children:[o.jsx("h2",{className:"text-sm font-semibold",children:e("adminUpstream.pools.title")}),o.jsx("p",{className:"mt-1 text-sm text-[color:var(--muted-foreground)]",children:e("adminUpstream.pools.description")})]}),o.jsxs("form",{onSubmit:z,className:"grid gap-3 md:grid-cols-[1fr_1fr_160px_1fr_auto]",children:[o.jsx(ge,{"aria-label":e("adminUpstream.pools.poolCode"),value:n,onChange:E=>a(E.target.value)}),o.jsx(ge,{"aria-label":e("adminUpstream.pools.poolName"),value:s,onChange:E=>r(E.target.value)}),o.jsxs(ft,{"aria-label":e("adminUpstream.pools.defaultPool"),value:i,onChange:E=>c(E.target.value),children:[o.jsx("option",{value:"false",children:e("adminUpstream.pools.notDefault")}),o.jsx("option",{value:"true",children:e("adminUpstream.pools.defaultPool")})]}),o.jsx(ge,{"aria-label":e("adminUpstream.pools.plaintextKey"),type:"password",value:d,onChange:E=>m(E.target.value)}),o.jsxs(K,{disabled:x.isPending||!d,className:"justify-center",children:[o.jsx(wr,{className:"size-4"}),e("adminUpstream.pools.create")]})]})]}),$.error?o.jsx(Qt,{title:e("adminUpstream.errors.keyPoolsLoadFailed"),description:$.error.message,action:o.jsx(K,{onClick:()=>$.refetch(),children:e("adminUpstream.errors.retry")})}):null,x.error?o.jsx(Qt,{title:e("adminUpstream.errors.createKeyPoolFailed"),description:x.error.message}):null,o.jsxs(Ee,{className:"overflow-hidden",children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":e("adminUpstream.pools.label"),className:"min-w-[1160px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminUpstream.pools.pool")}),o.jsx(Ie,{children:e("adminUpstream.pools.protocols")}),o.jsx(Ie,{children:e("adminUpstream.pools.models")}),o.jsx(Ie,{children:e("adminUpstream.pools.routingGroup")}),o.jsx(Ie,{children:e("adminUpstream.pools.status")}),o.jsx(Ie,{children:e("adminUpstream.pools.health")}),o.jsx(Ie,{children:e("adminUpstream.pools.key")}),o.jsx(Ie,{children:e("adminUpstream.pools.lastCheck")}),o.jsx(Ie,{children:e("adminUpstream.pools.action")})]})}),o.jsx(Ba,{children:w.pageRows.map(E=>{const L=y8(E);return o.jsxs(qt,{children:[o.jsxs(Me,{children:[o.jsx("div",{className:"font-medium",children:E.name}),o.jsxs("div",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:[E.code," · ",e("adminUpstream.pools.priority",{value:E.priority??"-"}),E.is_default?` · ${e("adminUpstream.pools.default")}`:""]})]}),o.jsx(Me,{children:o.jsx(yc,{values:_m(E.protocols),formatValue:v8})}),o.jsx(Me,{children:o.jsx(yc,{values:_m(E.model_patterns),max:3})}),o.jsx(Me,{children:E.sub2api_group_name??(E.sub2api_group_id?`#${E.sub2api_group_id}`:"-")}),o.jsx(Me,{children:o.jsx(Oe,{value:E.status??"unknown"})}),o.jsxs(Me,{children:[o.jsx(Oe,{value:Cd(E)}
972),E.last_error_message&&(Cd(E)==="degraded"||Cd(E)==="down")?o.jsxs("div",{className:"mt-1 max-w-[220px] truncate text-xs text-[color:var(--destructive)]",title:E.last_error_message,children:[e("adminUpstream.ops.pools.lastError"),": ",E.last_error_message]}):null]}),o.jsx(Me,{children:o.jsxs("code",{className:"text-xs",children:[E.key_prefix??e("adminUpstream.pools.secret"),"...",E.key_suffix??e("adminUpstream.pools.hidden")]})}),o.jsx(Me,{children:Dc(E.last_health_check_at,t.locale)}),o.jsx(Me,{children:o.jsxs("div",{className:"flex flex-wrap gap-2",children:[o.jsxs(K,{size:"sm",variant:"secondary",onClick:()=>S.mutate(L),children:[o.jsx(R9,{className:"size-3.5"}),e("adminUpstream.pools.test")]}),o.jsxs(K,{size:"sm",variant:"outline",onClick:()=>p(L),children:[o.jsx(P9,{className:"size-3.5"}),e("adminUpstream.pools.rotate")]}),o.jsxs(K,{size:"sm",variant:"ghost",onClick:()=>T.mutate(L),disabled:T.isPending,children:[o.jsx(Kp,{className:"size-3.5"}),e("adminUpstream.ops.pools.resync")]}),o.jsx(K,{size:"sm",variant:"ghost",onClick:()=>{P(L),N(_m(E.protocols))},children:e("adminUpstream.pools.editProtocols",{defaultValue:"Edit protocols"})})]})})]},L)})})]})}),o.jsx("div",{className:"grid md:hidden",children:w.pageRows.map(E=>{const L=y8(E);return o.jsxs(Dn,{children:[o.jsx(kr,{title:E.name,meta:`${E.code} · ${e("adminUpstream.pools.priority",{value:E.priority??"-"})}${E.is_default?` · ${e("adminUpstream.pools.default")}`:""}`,trailing:o.jsxs(o.Fragment,{children:[o.jsx(Oe,{value:E.status??"unknown"}),o.jsx(nUs,{onTest:()=>S.mutate(L),onRotate:()=>p(L),onResync:()=>T.mutate(L),resyncing:T.isPending,onEditProtocols:()=>{P(L),N(_m(E.protocols))}})]})}),o.jsxs(Ha,{children:[o.jsx(Qe,{label:e("adminUpstream.pools.protocols"),children:o.jsx(yc,{values:_m(E.protocols),formatValue:v8})}),o.jsx(Qe,{label:e("adminUpstream.pools.models"),align:"right",children:o.jsx(yc,{values:_m(E.model_patterns),max:3})}),o.jsx(Qe,{label:e("adminUpstream.pools.routingGroup"),children:E.sub2api_group_name??(E.sub2api_group_id?`#${E.sub2api_group_id}`:"-")}),o.jsxs(Qe,{label:e("adminUpstream.pools.health"),align:"right",children:[o.jsx(Oe,{value:Cd(E)}),E.last_error_message&&(Cd(E)==="degraded"||Cd(E)==="down")?o.jsxs("span",{className:"mt-1 block break-words text-xs text-[color:var(--destructive)]",children:[e("adminUpstream.ops.pools.lastError"),": ",E.last_error_message]}):null]}),o.jsx(Qe,{label:e("adminUpstream.pools.key"),children:o.jsxs("code",{className:"text-xs",children:[E.key_prefix??e("adminUpstream.pools.secret"),"...",E.key_suffix??e("adminUpstream.pools.hidden")]})}),o.jsx(Qe,{label:e("adminUpstream.pools.lastCheck"),align:"right",children:Dc(E.last_health_check_at,t.locale)})]})]},L)})}),!$.isLoading&&($.data?.items??[]).length===0?o.jsx(Ot,{title:e("adminUpstream.pools.empty"),description:e("adminUpstream.pools.emptyDescription")}):($.data?.items??[]).length>0?o.jsx(V0,{total:w.total,page:w.page,pageSize:w.pageSize,onPageChange:w.onPageChange,onPageSizeChange:w.onPageSizeChange}):null]}),f?o.jsx(Ee,{className:"p-4",children:o.jsxs("form",{onSubmit:E=>{E.preventDefault(),k.mutate({publicId:f,plaintextKey:y}),v(""),p("")},className:"grid gap-3 sm:grid-cols-[minmax(0,1fr)_auto]",children:[o.jsx(ge,{"aria-label":e("adminUpstream.pools.newPlaintextKey"),type:"password",value:y,onChange:E=>v(E.target.value)}),o.jsx(K,{disabled:k.isPending||!y,children:e("adminUpstream.pools.confirmRotate")})]})}):null,_?o.jsxs(Ee,{className:"p-4",children:[o.jsx("div",{className:"mb-2 text-sm font-medium",children:e("adminUpstream.pools.editProtocolsTitle",{defaultValue:"Edit protocols (replace)"})}),o.jsxs("form",{onSubmit:E=>{E.preventDefault(),R.mutate({publicId:_,protocols:j},{onSuccess:()=>P(null)})},className:"grid gap-3",children:[o.jsx("div",{className:"flex flex-wrap gap-3",children:Sj.map(E=>o.jsxs("label",{className:"flex items-center gap-1.5 text-13",children:[o.jsx("input",{type:"checkbox",checked:j.includes(E.value),onChange:()=>I(E.value)}),E.label]},E.value))}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(K,{type:"submit",size:"sm",disabled:R.isPending,children:e("adminUpstream.pools.confirmEditProtocols",{defaultValue:"Save protocols"})}),o.jsx(K,{type:"button",size:"sm",variant:"ghost",onClick:()=>P(null),children:e("adminUpstream.pools.cancelEditProtocols",{defaultValue:"Cancel"})})]}),R.error?o.jsxs("div",{className:"grid gap-2",children:[o.jsx(Qt,{title:e("adminUpstream.errors.keyPoolPatchFailed",{defaultValue:"Protocol patch failed"}),description:R.error.message}),o.jsx(K,{type:"button",size:"sm",variant:"outline",onClick:()=>R.mutate({publicId:_,protocols:j,force:!0},{onSuccess:()=>P(null)}),children:e("adminUpstream.pools.forceEditProtocols",{defaultValue:"Force save (override routing check)"})})]}):null]})]}):null,S.error?o.jsx(Qt,{title:e("adminUpstream.errors.keyPoolTestFailed"),description:S.error.message}):null,k.error?o.jsx(Qt,{title:e("adminUpstream.errors.keyPoolRotateFailed"),description:k.error.message}):null]})}function Z5s(){const{t:e}=W(),t=Te(),n=kJ(),a=L5s(),s=n.data?.items??[],r=new Map((a.data?.items??[]).map(i=>[i.groupId,i]));return o.jsxs(kN,{title:e("adminUpstream.readonly.groupsTitle"),description:e("adminUpstream.readonly.groupsDescription"),error:n.error,onRetry:()=>n.refetch(),children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":e("adminUpstream.readonly.groupsLabel"),className:"min-w-[1040px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminUpstream.table.group")}),o.jsx(Ie,{children:e("adminUpstream.table.platform")}),o.jsx(Ie,{children:e("adminUpstream.table.rate")}),o.jsx(Ie,{children:e("adminUpstream.table.rpm")}),o.jsx(Ie,{children:e("adminUpstream.table.accounts")}),o.jsx(Ie,{children:e("adminUpstream.table.limits")}),o.jsx(Ie,{children:e("adminUpstream.ops.quota.label")}),o.jsx(Ie,{children:e("adminUpstream.table.status")}),o.jsx(Ie,{children:e("adminUpstream.table.updated")})]})}),o.jsx(Ba,{children:s.map(i=>o.jsxs(qt,{children:[o.jsxs(Me,{children:[o.jsx("div",{className:"font-medium",children:i.name}),o.jsx("div",{className:"mt-1 max-w-[320px] truncate text-xs text-[color:var(--muted-foreground)]",children:i.description||e("adminUpstream.common.noDescription")})]}),o.jsx(Me,{children:ct(i.platform)}),o.jsxs(Me,{children:[i.rate_multiplier??1,"x"]}),o.jsx(Me,{children:i.rpm_limit||e("adminUpstream.common.unlimited")}),o.jsxs(Me,{children:[Vr(i.active_account_count,t.locale)," / ",Vr(i.account_count,t.locale)]}),o.jsx(Me,{children:w8(i,e("adminUpstream.common.none"))}),o.jsx(Me,{children:o.jsx(x8,{usage:r.get(i.id)})}),o.jsx(Me,{children:o.jsx(Oe,{value:i.status??"unknown"})}),o.jsx(Me,{children:Dc(i.updated_at,t.locale)})]},i.id))})]})}),o.jsx("div",{className:"grid md:hidden",children:s.map(i=>o.jsxs(Dn,{children:[o.jsx(kr,{title:i.name,meta:i.description||e("adminUpstream.common.noDescription"),trailing:o.jsx(Oe,{value:i.status??"unknown"})}),o.jsxs(Ha,{children:[o.jsx(Qe,{label:e("adminUpstream.table.platform"),children:ct(i.platform)}),o.jsxs(Qe,{label:e("adminUpstream.table.rate"),align:"right",children:[i.rate_multiplier??1,"x"]}),o.jsx(Qe,{label:e("adminUpstream.table.rpm"),children:i.rpm_limit||e("adminUpstream.common.unlimited")}),o.jsxs(Qe,{label:e("adminUpstream.table.accounts"),align:"right",children:[Vr(i.active_account_count,t.locale)," / ",Vr(i.account_count,t.locale)]}),o.jsx(Qe,{label:e("adminUpstream.table.limits"),children:w8(i,e("adminUpstream.common.none"))}),o.jsx(Qe,{label:e("adminUpstream.ops.quota.label"),align:"right",children:o.jsx(x8,{usage:r.get(i.id)})}),o.jsx(Qe,{label:e("adminUpstream.table.updated"),children:Dc(i.updated_at,t.locale)})]})]},i.id))}),n.isLoading?o.jsx(CN,{}):s.length===0?o.jsx(Ot,{title:e("adminUpstream.readonly.groupsEmpty"),description:e("adminUpstream.readonly.groupsEmptyDescription")}):null]})}function J5s(){const{t:e}=W(),t=Te(),n=CJ(),a=n.data?.items??[];return o.jsxs(kN,{title:e("adminUpstream.readonly.channelsTitle"),description:e("adminUpstream.readonly.channelsDescription"),error:n.error,onRetry:()=>n.refetch(),children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":e("adminUpstream.readonly.channelsLabel"),className:"min-w-[980px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminUpstream.table.channel")}),o.jsx(Ie,{children:e("adminUpstream.table.groups")}),o.jsx(Ie,{children:e("adminUpstream.table.billingSource")}),o.jsx(Ie,{children:e("adminUpstream.table.mappings")}),o.jsx(Ie,{children:e("adminUpstream.table.pricing")}),o.jsx(Ie,{children:e("adminUpstream.table.status")}),o.jsx(Ie,{children:e("adminUpstream.table.updated")})]})}),o.jsx(Ba,{children:a.map(s=>o.jsxs(qt,{children:[o.jsxs(Me,{children:[o.jsx("div",{className:"font-medium",children:s.name}),o.jsx("div",{className:"mt-1 max-w-[320px] truncate text-xs text-[color:var(--muted-foreground)]",children:s.description||e("adminUpstream.common.noDescription")})]}),o.jsx(Me,{children:o.jsx(yc,{values:(s.group_ids??[]).map(r=>`#${r}`)})}),o.jsx(Me,{children:TJ(s.billing_model_source,e)}),o.jsx(Me,{children:o.jsx(iUs,{channel:s})}),o.jsx(Me,{children:o.jsx(lUs,{channel:s})}),o.jsx(Me,{children:o.jsx(Oe,{value:s.status??"unknown"})}),o.jsx(Me,{children:Dc(s.updated_at,t.locale)})]},s.id))})]})}),o.jsx("div",{className:"grid md:hidden",children:a.map(s=>o.jsx(eUs,{channel:s,locale:t.locale},s.id))}),n.isLoading?o.jsx(CN,{}):a.length===0?o.jsx(Ot,{title:e("adminUpstream.readonly.channelsEmpty"),description:e("adminUpstream.readonly.channelsEmptyDescription")}):null]})}function eUs({channel:e,locale:t}){const{t:n}=W(),a=aUs(e),s=oUs(e),r=e.description||n("adminUpstream.common.noDescription"),i=sUs(e),c=rUs(e,n);return o.jsxs(Dn,{children:[o.jsx(kr,{title:e.name,meta:r,trailing:o.jsx(Oe,{value:e.status??"unknown"})}),o.jsxs(Ha,{children:[o.jsx(Qe,{label:n("adminUpstream.table.groups"),children:o.jsx("span",{className:"tabular-nums",children:(e.group_ids??[]).length?(e.group_ids??[]).map(d=>`#${d}`).join(", "):"-"})}),o.jsx(Qe,{label:n("adminUpstream.table.billingSource"),align:"right",children:TJ(e.billing_model_source,n)}),o.jsx(Qe,{label:n("adminUpstream.table.mappings"),className:"col-span-2",children:i?o.jsxs("span",{className:"block min-w-0 break-words font-mono leading-5",children:[i,a>1?o.jsxs("span",{className:"ml-1 font-sans text-[color:var(--muted-foreground)]",children:["+",a-1]}):null]}):"-"}),o.jsx(Qe,{label:n("adminUpstream.table.pricing"),className:"col-span-2",children:c?o.jsxs("span",{className:"block min-w-0 break-words leading-5",children:[c,s>1?o.jsxs("span",{className:"ml-1 text-[color:var(--muted-foreground)]",children:["+",s-1]}):null]}):n("adminUpstream.common.noPricingRules")}),o.jsx(Qe,{label:n("adminUpstream.table.updated"),children:Dc(e.updated_at,t)})]})]})}function tUs(){const{t:e}=W(),t=Te(),n=SJ(),a=n.data?.items??[];return o.jsxs(kN,{title:e("adminUpstream.readonly.accountsTitle"),description:e("adminUpstream.readonly.accountsDescription"),error:n.error,onRetry:()=>n.refetch(),children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":e("adminUpstream.readonly.accountsLabel"),className:"min-w-[1080px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminUpstream.table.account")}
972),o.jsx(Ie,{children:e("adminUpstream.table.platform")}),o.jsx(Ie,{children:e("adminUpstream.table.groups")}),o.jsx(Ie,{children:e("adminUpstream.table.baseUrl")}),o.jsx(Ie,{children:e("adminUpstream.table.capacity")}),o.jsx(Ie,{children:e("adminUpstream.ops.serving.label")}),o.jsx(Ie,{children:e("adminUpstream.table.status")}),o.jsx(Ie,{children:e("adminUpstream.table.lastUsed")})]})}),o.jsx(Ba,{children:a.map(s=>o.jsxs(qt,{children:[o.jsxs(Me,{children:[o.jsx("div",{className:"font-medium",children:s.name}),o.jsxs("div",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:[s.type??e("adminUpstream.common.unknown")," · ",e("adminUpstream.common.priority")," ",s.priority??"-"]}),s.error_message?o.jsx("div",{className:"mt-1 max-w-[320px] truncate text-xs text-[color:var(--destructive)]",children:s.error_message}):null]}),o.jsx(Me,{children:ct(s.platform)}),o.jsx(Me,{children:o.jsx($8,{account:s})}),o.jsx(Me,{children:o.jsx("code",{className:"text-xs",children:s.credentials?.base_url??"-"})}),o.jsxs(Me,{children:[o.jsxs("div",{className:"text-sm",children:["C ",s.concurrency??"-"," · ",s.rate_multiplier??1,"x"]}),o.jsx("div",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:s.schedulable?e("adminUpstream.common.schedulable"):e("adminUpstream.common.notSchedulable")})]}),o.jsx(Me,{children:o.jsx(b8,{account:s})}),o.jsx(Me,{children:o.jsx(Oe,{value:s.status??"unknown"})}),o.jsx(Me,{children:Dc(s.last_used_at,t.locale)})]},s.id))})]})}),o.jsx("div",{className:"grid md:hidden",children:a.map(s=>o.jsxs(Dn,{children:[o.jsx(kr,{title:s.name,meta:`${s.type??e("adminUpstream.common.unknown")} · ${e("adminUpstream.common.priority")} ${s.priority??"-"}`,trailing:o.jsx(Oe,{value:s.status??"unknown"})}),s.error_message?o.jsx("div",{className:"mt-2 break-words text-xs text-[color:var(--destructive)]",children:s.error_message}):null,o.jsxs(Ha,{children:[o.jsx(Qe,{label:e("adminUpstream.table.platform"),children:ct(s.platform)}),o.jsx(Qe,{label:e("adminUpstream.table.groups"),align:"right",children:o.jsx($8,{account:s})}),o.jsxs(Qe,{label:e("adminUpstream.table.capacity"),children:[o.jsxs("div",{children:["C ",s.concurrency??"-"," · ",s.rate_multiplier??1,"x"]}),o.jsx("div",{className:"mt-1 text-xs text-[color:var(--muted-foreground)]",children:s.schedulable?e("adminUpstream.common.schedulable"):e("adminUpstream.common.notSchedulable")})]}),o.jsx(Qe,{label:e("adminUpstream.ops.serving.label"),align:"right",children:o.jsx(b8,{account:s})}),o.jsx(Qe,{label:e("adminUpstream.table.baseUrl"),className:"col-span-2",children:o.jsx("code",{className:"block truncate text-xs",children:s.credentials?.base_url??"-"})}),o.jsx(Qe,{label:e("adminUpstream.table.lastUsed"),align:"right",children:Dc(s.last_used_at,t.locale)})]})]},s.id))}),n.isLoading?o.jsx(CN,{}):a.length===0?o.jsx(Ot,{title:e("adminUpstream.readonly.accountsEmpty"),description:e("adminUpstream.readonly.accountsEmptyDescription")}):null]})}function kN({title:e,description:t,error:n,onRetry:a,children:s}){const{t:r}=W();return o.jsxs("div",{className:"space-y-4",children:[o.jsx(Ee,{className:"p-3 sm:p-5",children:o.jsxs("div",{className:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-sm font-semibold",children:e}),o.jsx("p",{className:"mt-1 line-clamp-1 text-xs text-[color:var(--muted-foreground)] sm:line-clamp-none sm:text-sm",children:t})]}),o.jsx("a",{href:AJ,target:"_blank",rel:"noreferrer",className:"text-sm font-medium text-[color:var(--primary)] hover:underline",children:r("adminUpstream.readonly.editUpstreamConfig")})]})}),n?o.jsx(Qt,{title:r("adminUpstream.errors.failedLoad",{title:e}),description:n.message,action:o.jsx(K,{onClick:a,children:r("adminUpstream.errors.retry")})}):null,o.jsx(Ee,{className:"overflow-hidden",children:s})]})}function Hb({label:e,value:t,detail:n,tone:a="default",refreshing:s}){const r=a==="success"?"text-[color:var(--success)]":a==="warning"?"text-[color:var(--warning)]":"text-[color:var(--foreground)]";return o.jsxs(Ee,{className:X("p-3 transition-opacity duration-150 motion-reduce:transition-none sm:p-4",s&&"opacity-80"),"aria-busy":s?!0:void 0,children:[o.jsx("div",{className:"text-xs font-medium uppercase tracking-normal text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:X("mt-1.5 text-xl font-semibold tabular-nums sm:mt-2 sm:text-2xl",r),children:t??"-"}),n?o.jsx("div",{className:"mt-1 text-11 leading-4 text-[color:var(--muted-foreground)] sm:text-xs",children:n}):null]})}function nUs({onTest:e,onRotate:t,onResync:n,onEditProtocols:a,resyncing:s}){const{t:r}=W();return o.jsxs(zp,{children:[o.jsx(qp,{asChild:!0,children:o.jsx(K,{type:"button",variant:"ghost",size:"icon","aria-label":r("adminUpstream.pools.action"),className:"size-8",children:o.jsx(Mve,{className:"size-4"})})}),o.jsxs(xu,{align:"end",className:"w-44",children:[o.jsxs(La,{onSelect:e,children:[o.jsx(R9,{className:"size-3.5"}),r("adminUpstream.pools.test")]}),o.jsxs(La,{onSelect:t,children:[o.jsx(P9,{className:"size-3.5"}),r("adminUpstream.pools.rotate")]}),o.jsxs(La,{disabled:s,onSelect:n,children:[o.jsx(Kp,{className:"size-3.5"}),r("adminUpstream.ops.pools.resync")]}),o.jsx(La,{onSelect:a,children:r("adminUpstream.pools.editProtocols")})]})]})}function hg({label:e,value:t}){return o.jsxs("div",{className:"rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/40 p-3",children:[o.jsx("div",{className:"text-xs text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:"mt-1 text-sm font-medium tabular-nums",children:t})]})}function Vb({label:e,value:t}){return o.jsxs("div",{className:"rounded-md border border-[color:var(--border)] p-3",children:[o.jsx("dt",{className:"text-xs text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:"mt-1 text-lg font-semibold tabular-nums",children:t})]})}function yc({values:e,max:t=4,formatValue:n=a=>a}){const a=e.slice(0,t),s=e.length-a.length;return e.length===0?o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"-"}):o.jsxs("div",{className:"flex max-w-[280px] flex-wrap gap-1",children:[a.map(r=>o.jsx("span",{className:"inline-flex h-6 items-center rounded border border-[color:var(--border)] px-2 text-xs tabular-nums",children:n(r)},r)),s>0?o.jsxs("span",{className:"inline-flex h-6 items-center rounded border border-[color:var(--border)] px-2 text-xs text-[color:var(--muted-foreground)]",children:["+",s]}):null]})}function aUs(e){return Object.values(e.model_mapping??{}).reduce((t,n)=>t+Object.keys(n??{}).length,0)}function oUs(e){return(e.model_pricing??[]).reduce((t,n)=>t+(n.models?.length??0),0)}function sUs(e){for(const[t,n]of Object.entries(e.model_mapping??{})){const a=Object.entries(n??{})[0];if(a)return`${ct(t)}: ${a[0]} -> ${a[1]}`}return null}function rUs(e,t){const n=e.model_pricing?.[0],a=n?.models?.[0];if(!n||!a)return null;const s=[n.input_price!=null?`in ${cr(n.input_price)}`:"",n.output_price!=null?`out ${cr(n.output_price)}`:"",n.per_request_price!=null?`req ${cr(n.per_request_price)}`:"",n.image_output_price!=null?`img ${cr(n.image_output_price)}
972`:""].filter(Boolean),r=s.length?` · ${s.join(" / ")}`:"";return`${ct(n.platform??"any")} · ${a}${r||` · ${t("adminUpstream.common.modelsCount",{count:n.models?.length??0})}`}`}function v8(e){return V5s.get(e)??ct(e)}function iUs({channel:e}){const t=Object.entries(e.model_mapping??{}).flatMap(([n,a])=>Object.entries(a??{}).map(([s,r])=>`${ct(n)}: ${s} -> ${r}`));return o.jsx(yc,{values:t,max:2})}function lUs({channel:e}){const{t}=W(),n=e.model_pricing??[];if(n.length===0)return o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUpstream.common.noPricingRules")});const a=n.map(s=>`${ct(s.platform??"any")} · ${ct(s.billing_mode??"token")} · ${t("adminUpstream.common.modelsCount",{count:(s.models??[]).length})}`);return o.jsx(yc,{values:a,max:2})}function b8({account:e}){const{t}=W(),{state:n,tone:a}=E5s(e);return o.jsx(jo,{tone:a,children:t(`adminUpstream.ops.serving.${n}`)})}function x8({usage:e}){const{t}=W();if(!e)return o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"-"});const n=I5s(e.todaySpendUsd,e.dailyLimitUsd),a=n?.tone==="destructive"?"text-[color:var(--destructive)]":n?.tone==="warning"?"text-[color:var(--warning)]":"text-[color:var(--muted-foreground)]";return o.jsxs("div",{className:"min-w-[110px]",children:[o.jsx("div",{className:"text-sm tabular-nums",children:cr(e.todaySpendUsd)}),n?o.jsxs(o.Fragment,{children:[o.jsx(iy,{value:Math.min(100,Math.round(n.pct*100)),className:"mt-1 h-1.5"}),o.jsxs("div",{className:X("mt-0.5 text-xs tabular-nums",a),children:[Math.round(n.pct*100),"% · ",cr(e.dailyLimitUsd)]})]}):o.jsx("div",{className:"mt-0.5 text-xs text-[color:var(--muted-foreground)]",children:t("adminUpstream.ops.quota.noLimit")})]})}function $8({account:e}){const t=(e.account_groups??[]).map(n=>n.group?.name??(n.group_id?`#${n.group_id}`:"")).filter(Boolean);return o.jsx(yc,{values:t,max:3})}function CN(){const{t:e}=W();return o.jsx("div",{className:"border-t border-[color:var(--border)] p-4 text-sm text-[color:var(--muted-foreground)]",children:e("adminUpstream.common.loading")})}function _m(e){if(Array.isArray(e))return e.map(String);if(typeof e=="string")try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(String)}catch{return e?[e]:[]}return[]}function Dc(e,t){return e?HV(e,t):"-"}function cUs(e){const t=Date.parse(e);if(!Number.isFinite(t))return"-";const n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`${n}s`;const a=Math.round(n/60);if(a<60)return`${a}m`;const s=Math.round(a/60);return s<24?`${s}h`:`${Math.round(s/24)}d`}function Vr(e,t){const n=Number(e??0);return Number.isFinite(n)?new Intl.NumberFormat(t).format(n):"-"}function cr(e){const t=Number(e??0);return Number.isFinite(t)?`$${t.toFixed(t>10?2:4)}`:"-"}function w8(e,t){const n=[e.daily_limit_usd?`D ${cr(e.daily_limit_usd)}`:"",e.weekly_limit_usd?`W ${cr(e.weekly_limit_usd)}`:"",e.monthly_limit_usd?`M ${cr(e.monthly_limit_usd)}`:""].filter(Boolean);return n.length?n.join(" · "):t}function TJ(e,t){return e==="channel_mapped"?t("adminUpstream.common.channelMapped"):e==="requested"?t("adminUpstream.common.requestedModel"):e==="upstream"?t("adminUpstream.common.upstreamModel"):e??"-"}function dUs(e){return[e("adminUsage.csv.time"),e("adminUsage.csv.user"),e("adminUsage.csv.apiKey"),e("adminUsage.csv.model"),e("adminUsage.csv.logicalUsageId"),e("adminUsage.csv.logicalRequestedModel"),e("adminUsage.csv.logicalModel"),e("adminUsage.csv.actualRequestedModel"),e("adminUsage.csv.actualModel"),e("adminUsage.csv.fallbackHop"),e("adminUsage.csv.userVisible"),e("adminUsage.csv.supersedesUsageRecord"),e("adminUsage.csv.upstreamModel"),e("adminUsage.csv.protocol"),e("adminUsage.csv.endpoint"),e("adminUsage.csv.type"),e("adminUsage.csv.status"),e("adminUsage.csv.inputTokens"),e("adminUsage.csv.outputTokens"),e("adminUsage.csv.cacheRead"),e("adminUsage.csv.cacheWrite"),e("adminUsage.csv.sub2apiCharge"),e("adminUsage.csv.continuityMode"),e("adminUsage.csv.continuityPolicyVersion"),e("adminUsage.csv.continuitySourceModel"),e("adminUsage.csv.continuityTargetModel"),e("adminUsage.csv.continuityRequestedRawQuote"),e("adminUsage.csv.continuityRequestedQuote"),e("adminUsage.csv.continuityActualPricingStatus"),e("adminUsage.csv.continuityActualQuote"),e("adminUsage.csv.continuityChargedQuote"),e("adminUsage.csv.continuityVariance"),e("adminUsage.csv.continuityActualPricingError"),e("adminUsage.csv.firstTokenMs"),e("adminUsage.csv.durationMs"),e("adminUsage.csv.channel"),e("adminUsage.csv.group"),e("adminUsage.csv.onehopRequestId"),e("adminUsage.csv.sub2a
972piRequestId")]}function uUs(e,t){const n=dUs(t),a=e.map(s=>[s.startedAt,s.userEmail??"",s.apiKey?.name??"",s.requestedModel,s.logicalPublicId,s.logicalRequestedModel,s.logicalModelSlug,s.actualRequestedModel,s.actualModelSlug,s.fallbackHop,s.userVisible,s.supersedesUsageRecordId??"",s.upstreamModel??"",s.protocol,s.endpointPath??"",s.requestType??"",s.status,s.inputTokens,s.outputTokens,s.cacheReadTokens,s.cacheWriteTokens,s.billedCost,s.continuityPricing?.mode??"",s.continuityPricing?.policyVersion??"",s.continuityPricing?.sourceModelSlug??"",s.continuityPricing?.targetModelSlug??"",s.continuityPricing?.requestedRawQuote??"",s.continuityPricing?.requestedQuote??"",s.continuityPricing?s.continuityPricing.actualPricingStatus??(s.continuityPricing.actualQuote==null?"unavailable":"available"):"",s.continuityPricing?.actualQuote??"",s.continuityPricing?.chargedQuote??"",s.continuityPricing?.variance??"",s.continuityPricing?.actualPricingError??"",s.firstTokenMs??"",s.durationMs??"",s.channelId??"",s.groupId??"",s.onehopRequestId??s.publicId,s.sub2apiRequestId??""]);return[n,...a]}function mUs(e,t){My(`onehop-admin-usage-${new Date().toISOString().slice(0,10)}.csv`,uUs(e,t))}const pUs=[20,50,100],fUs=["","sync","stream"],gUs=["","tokens","per_request","image"],Kb=3e3,HP="24h",hUs=["24h","7d","30d","all"],k8=["range","email","uid","apiKey","model","status","protocol","type","billing","channel","group","reqId","slow","page","size"],RJ=["userPublicId","email","apiKey","model","channelId","groupId"],yUs=["protocol","requestType","billingMode","channelId","groupId","requestId","minDurationMs"],PJ={range:"range",email:"email",userPublicId:"uid",apiKey:"apiKey",model:"model",status:"status",protocol:"protocol",requestType:"type",billingMode:"billing",channelId:"channel",groupId:"group",requestId:"reqId",minDurationMs:"slow"};function VP(e,t=HP){return e&&hUs.includes(e)?e:t}function vUs(e){const t={page:void 0};for(const[n,a]of Object.entries(e)){const s=PJ[n];t[s]=n==="range"&&a==="24h"?void 0:a}return t}function bUs(e){if(e==="all")return{};const t=new Date,n=new Date(t);e==="30d"?n.setDate(t.getDate()-29):e==="7d"&&n.setDate(t.getDate()-6);const a=s=>`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`;return{startDate:a(n),endDate:a(t)}}function xUs(e){return e==="24h"?"hour":"day"}function du(e){return e==null||!Number.isFinite(e)?"â":e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(e<1e4?2:1)}s`}function Y0(e,t=4){return`$${(e==null||e===""?0:Number(e)).toFixed(t)}`}function ec(e,t){return e>=1e9?`${(e/1e9).toFixed(2)}B`:e>=1e6?`${(e/1e6).toFixed(2)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:or(e,t)}function $Us(e,t){return t==="tokens"?e.totalTokens:t==="requests"?e.requestCount:Number(e.billedCost)||0}function SN(e){const t=e.inputTokens+e.outputTokens+e.cacheReadTokens+e.cacheWriteTokens;return{publicId:e.publicId,createdAt:e.startedAt,completedAt:e.completedAt,protocol:e.protocol,operation:e.operation,endpointPath:e.endpointPath??"",requestedModel:e.requestedModel,modelSlug:e.modelSlug,serviceTier:e.serviceTier,reasoningEffort:e.reasoningEffort,status:e.status,stream:e.stream,requestType:e.requestType??(e.stream?"stream":"sync"),billingMode:e.billingMode,inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheReadTokens:e.cacheReadTokens,cacheWriteTokens:e.cacheWriteTokens,cacheWrite5mTokens:e.cacheWrite5mTokens,cacheWrite1hTokens:e.cacheWrite1hTokens,totalTokens:t,inputCostUsd:null,outputCostUsd:null,cacheReadCostUsd:null,cacheWriteCostUsd:null,billedCredit:e.billedCost,sub2apiCharge:e.sub2apiCharge??e.billedCost,imageCount:e.imageCount,imageSize:e.imageSize,mediaType:e.mediaType,outputImageUrls:e.outputImageUrls??null,outputImageThumbUrls:e.outputImageThumbUrls??null,outputImageDownloadUrls:e.outputImageDownloadUrls??null,outputVideoUrl:e.outputVideoUrl??null,outputVideoDownloadUrl:e.outputVideoDownloadUrl??null,durationMs:e.durationMs,firstTokenMs:e.firstTokenMs,userAgent:e.userAgent,apiKey:e.apiKey,errorCode:e.errorCode,errorMessage:e.errorMessage,cancellable:!1,jobPublicId:null}}function wUs(e,t){switch(e){case"model":case"requestedModel":case"upstreamModel":return{model:t};case"apiKey":return{apiKey:t};case"user":return{userPublicId:t};case"channel":return{channelId:t};case"group":return{groupId:t};case"stream":return{requestType:t};default:return null}}function jm({label:e,value:t,format:n,sub:a,refreshing:s,error:r}){return o.jsxs(Ee,{className:X("min-w-0 p-2.5 transition-opacity duration-150 motion-reduce:transition-none sm:p-4",s&&"opacity-80"),"aria-busy":s?!0:void 0,children:[o.jsx("p",{className:"truncate text-11 font-semibold uppercase leading-4 text-[color:var(--muted-foreground)] sm:font-medium",children:e}),r?o.jsxs("div",{className:"mt-1 flex items-center gap-2 sm:mt-2",children:[o.jsx("span",{className:"text-lg font-semibold tabular-nums text-[color:var(--muted-foreground)] sm:text-2xl",children:"â"}),o.jsx(jo,{tone:"destructive",children:"load failed"})]}):o.jsx("p",{className:"mt-0.5 truncate text-lg font-semibold tabular-nums sm:mt-2 sm:text-2xl",children:o.jsx(Ho,{value:t,format:n})}),o.jsx("p",{className:"mt-0.5 truncate text-11 leading-4 text-[color:var(--muted-foreground)] sm:mt-1 sm:text-xs",children:a})]})}function Bn({label:e,children:t}){return o.jsxs("label",{className:Qo,children:[o.jsx("span",{children:e}),t]})}function KP({value:e,options:t,onChange:n,ariaLabel:a}){return o.jsx("div",{role:"group","aria-label":a,className:"flex min-w-0 gap-1 rounded-md border border-[color:var(--border)] p-0.5 text-11",children:t.map(([s,r])=>o.jsx("button",{type:"button","aria-pressed":e===s,onClick:()=>n(s),className:X("min-w-0 rounded px-2 py-1 transition-colors sm:px-3",e===s?"bg-[color:var(--foreground)] font-medium text-[color:var(--background)]":"text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]"),children:o.jsx("span",{className:"block truncate",children:r})},s))})}function Ko({onDrill:e,children:t,className:n}){return o.jsx("button",{type:"button",onClick:a=>{a.stopPropagation(),e()},title:typeof t=="string"?t:void 0,className:X("inline-block max-w-full cursor-pointer truncate text-left align-bottom underline decoration-dotted decoration-[color:var(--muted-foreground)]/50 underline-offset-2 hover:
972decoration-[color:var(--foreground)] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[color:var(--foreground)]",n),children:t})}function GP({title:e,rows:t,emptyLabel:n,metric:a="cost",action:s,onRowDrill:r}){const i=Te(),c=p=>$Us(p,a),d=[...t].sort((p,y)=>c(y)-c(p)),m=d.reduce((p,y)=>Math.max(p,c(y)),0),f=p=>a==="cost"?Y0(p):ec(p,i.locale);return o.jsxs(Ee,{className:"overflow-hidden",children:[o.jsxs("div",{className:"flex min-w-0 flex-col gap-2 border-b border-[color:var(--border)] px-3 py-2.5 sm:flex-row sm:items-center sm:justify-between sm:px-4 sm:py-3",children:[o.jsx("span",{className:"truncate text-sm font-semibold",children:e}),s?o.jsx("div",{className:"min-w-0 sm:shrink-0",children:s}):null]}),t.length===0?o.jsx("div",{className:"p-5 text-xs text-[color:var(--muted-foreground)]",children:n}):o.jsx("ul",{className:"divide-y divide-[color:var(--border)]",children:d.map((p,y)=>{const v=c(p);return o.jsxs("li",{className:"px-3 py-2.5 sm:px-4",children:[o.jsxs("div",{className:"flex min-w-0 items-baseline justify-between gap-3",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"truncate text-sm font-medium",children:r?o.jsx(Ko,{onDrill:()=>r(p),children:p.label}):p.label}),o.jsx("div",{className:"truncate text-11 text-[color:var(--muted-foreground)]",children:p.extra??`${i.number(p.requestCount)} req · ${i.number(p.totalTokens)} tok`})]}),o.jsx("div",{className:"shrink-0 text-right text-sm tabular-nums",children:f(v)})]}),o.jsx("div",{className:"mt-1.5 h-1 overflow-hidden rounded bg-[color:var(--muted)]",children:o.jsx("div",{className:"h-full",style:{width:`${m>0?v/m*100:0}%`,backgroundColor:Yw(y+1)}})})]},`${e}:${p.key}:${y}`)})})]})}function kUs(){const{t:e}=W();return h.useMemo(()=>[["requests",e("adminUsage.metrics.requests")],["tokens",e("adminUsage.metrics.tokens")],["cost",e("adminUsage.metrics.cost")]],[e])}const CUs={userPublicId:"adminUsage.breakdown.user",email:"adminUsage.userEmail",apiKey:"adminUsage.apiKey",model:"adminUsage.model",channelId:"adminUsage.channel",groupId:"adminUsage.group"};function SUs({filters:e,onClear:t,onClearAll:n}){const{t:a}=W(),s=RJ.filter(r=>e[r]);return s.length===0?null:o.jsxs("div",{className:"-mt-1 flex flex-wrap items-center gap-2",children:[o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:a("adminUsage.viewing",{defaultValue:"Viewing"})}),s.map(r=>o.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-[color:var(--border)] bg-[color:var(--muted)] py-1 pl-2.5 pr-1 text-xs",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:a(CUs[r])}),o.jsx("span",{className:"max-w-[180px] truncate font-medium tabular-nums",title:e[r],children:e[r]}),o.jsx("button",{type:"button",onClick:()=>t(r),"aria-label":a("common.reset"),className:"grid size-4 place-items-center rounded-full text-[color:var(--muted-foreground)] hover:bg-[color:var(--accent)] hover:text-[color:var(--foreground)]",children:o.jsx(my,{className:"size-3"})})]},r)),o.jsx("button",{type:"button",onClick:n,className:"text-xs text-[color:var(--muted-foreground)] underline underline-offset-2 hover:text-[color:var(--foreground)]",children:a("common.clearAll")})]})}function AUs({queryFilters:e,granularity:t,applyFilter:n}){const{t:a}=W(),s=kUs(),[r,i]=h.useState("requests"),[c,d]=h.useState("requests"),[m,f]=h.useState("stacked"),[p,y]=h.useState("user"),v=h.useMemo(()=>{const{fromIso:R,toIso:_}=TUs(e);return NZ(R,_,t)},[e,t]),$=yIs({...e,granularity:t}),x=vIs({...e,granularity:t,metric:c}),w=cT({...e,groupBy:"model",limit:"10"}),S=cT({...e,groupBy:p,limit:"10"}),k=cT({...e,groupBy:"endpoint",limit:"10"}),T=h.useMemo(()=>[{value:"model",label:a("adminUsage.breakdown.model")},{value:"requestedModel",label:a("adminUsage.breakdown.requestedModel")},{value:"upstreamModel",label:a("adminUsage.breakdown.upstreamModel")},{value:"apiKey",label:a("adminUsage.breakdown.apiKey")},{value:"user",label:a("adminUsage.breakdown.user")},{value:"endpoint",label:a("adminUsage.breakdown.endpoint")},{value:"channel",label:a("adminUsage.breakdown.channel")},{value:"group",label:a("adminUsage.breakdown.group")},{value:"stream",label:a("adminUsage.breakdown.stream")}],[a]);return o.jsxs("div",{className:"space-y-3",children:[o.jsx(jUs,{title:a("adminUsage.usageTrend"),caption:a(t==="hour"?"adminUsage.hourly":"adminUsage.daily"),rows:$.data?.items??[],metric:r,bucketAxis:v,granularity:t,loading:$.isLoading,error:$.error,emptyLabel:a("adminUsage.noTrendToday",{defaultValue:"No requests yet â usage will appear here as traffic comes in."}),actions:o.jsx(KP,{value:r,options:s,onChange:R=>i(R),ariaLabel:a("adminUsage.metric")})}),o.jsx(RUs,{view:m,onViewChange:f,metric:c,onMetricChange:d,metricOptions:s,stacked:x.data?.items??[],ranking:w.data?.items??[],bucketAxis:v,granularity:t,loading:m==="stacked"?x.isLoading:w.isLoading,error:m==="stacked"?x.error:w.error,onModelDrill:R=>n({model:R})}),o.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[o.jsx(GP,{title:a("adminUsage.topEndpoints"),rows:k.data?.items??[],emptyLabel:a("adminUsage.noRows"),metric:"cost"}),o.jsx(GP,{title:a("adminUsage.topDimensionRows"),rows:S.data?.items??[],emptyLabel:a("adminUsage.noRows"),metric:"cost",onRowDrill:R=>{const _=wUs(p,R.key);_&&n(_)},action:o.jsx(ft,{value:p,onValueChange:R=>y(R),options:T,className:"h-8 min-w-40 text-xs"})})]})]})}function TUs(e){const t=e.startDate;return t?{fromIso:new Date(`${t}T00:00:00`).toISOString(),toIso:new Date().toISOString()}:{}}function RUs({view:e,onViewChange:t,metric:n,onMetricChange:a,metricOptions:s,stacked:r,ranking:i,bucketAxis:c,granularity:d,loading:m,error:f,onModelDrill:p}){const{t:y}=W(),v=[["stacked",y("adminUsage.modelView.stacked",{defaultValue:"Over time"})],["ranking",y("adminUsage.modelView.ranking",{defaultValue:"Ranking"})]],$=o.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5 sm:justify-end sm:gap-2",children:[o.jsx(KP,{value:e,options:v,onChange:x=>t(x),ariaLabel:y("adminUsage.modelView.label",{defaultValue:"Chart view"})}),o.jsx(KP,{value:n,options:s,onChange:x=>a(x),ariaLabel:y("adminUsage.metric")})]});return e==="ranking"?o.jsx(GP,{title:y("adminUsage.stackedByModel"),rows:f?[]:i,emptyLabel:f?f.message:y("adminUsage.noModelUsage",{defaultValue:"No model usage"}),metric:n,action:$,onRowDrill:x=>p(x.key)}):o.jsx(PUs,{title:y("adminUsage.stackedByModel"),caption:y(d==="hour"?"adminUsage.hourly":"adminUsage.daily"),points:r,metric:n,bucketAxis:c,granularity:d,loading:m,error:f,actions:$})}function PUs({title:e,caption:t,points:n,metric:a,bucketAxis:s,granularity:r,loading:i,error:c,actions:d}){const m=Te(),{rows:f,series:p}=h.useMemo(()=>jZ(n,n.length?s:void 0),[n,s]),y=a==="cost"?x=>lr(x,m.locale,"USD",4):x=>Zr(x),v=h.useMemo(()=>r==="hour"?new Intl.DateTimeFormat(m.locale,{hour:"2-digit",minute:"2-digit",hour12:!1}):new Intl.DateTimeFormat(m.locale,{month:"short",day:"numeric"}),[m.locale,r]),$=x=>{const w=new Date(String(x));return Number.isNaN(w.getTime())?String(x):v.format(w)};return o.jsx(PZ,{title:e,description:t,actions:d,height:220,loading:i,error:c,data:f,xAxisKey:"bucket",valueFormatter:y,xTickFormatter:$,series:p.map((x,w)=>({dataKey:x,name:x,stackId:"stack",colorIndex:w+1}))})}function _Us(e,t){return t==="requests"?e.requestCount:t==="tokens"?e.totalTokens:Number(e.billedCost)}function jUs({title:e,caption:t,rows:n,metric:a,bucketAxis:s,granularity:r,loading:i,error:c,emptyLabel:d,actions:m}){const f=Te(),p=h.useMemo(()=>{const x=new Map(n.map(S=>[S.bucket,_Us(S,a)]));return(s.length&&n.length?[...new Set([...s,...x.keys()])].sort():n.map(S=>S.bucket)).map(S=>({bucket:S,value:x.get(S)??0}))},[n,s,a]),y=a==="cost"?x=>lr(x,f.locale,"USD",4):x=>Zr(x),v=h.useMemo(()=>r==="hour"?new Intl.DateTimeFormat(f.locale,{hour:"2-digit",minute:"2-digit",hour12:!1}):new Intl.DateTimeFormat(f.locale,{month:"short",day:"numeric"}),[f.locale,r]),$=x=>{const w=new Date(String(x));return Number.isNaN(w.getTime())?String(x):v.format(w)};return o.jsx(_Z,{title:e,description:t,actions:m,height:220,loading:i,error:c,data:p,xAxisKey:"bucket",valueFormatter:y,xTickFormatter:$,series:[{dataKey:"value",name:e,colorIndex:1}],emptyState:o.jsx(Ot,{title:d})})}const C8=(e,t=4)=>`$${e.toFixed(t)}`;function S8(e){return e==null||e===""?0:typeof e=="number"?e:Number(e)}function _J({row:e}){const{t}=W(),n=S8(e.billedCost),a=e.pricingFactors,s=a?.length?KK(a,e.billedCost):null;return o.jsxs("div",{className:"text-xs tabular-nums",children:[a?.length?o.jsxs(o.Fragment,{children:[a.map((r,i)=>{const c=qK(r.factor),d=c?t(`logs.userCost.factor.${c}`,{defaultValue:r.factor}):r.factor,m=HK(r.unit),f=m?t(`logs.userCost.unit.${m}`,{defaultValue:r.unit}):r.unit,p=GK(t,r.tierKey),y=p?`${d} · ${p} ($${r.unitPriceUsd} ${f})`:`${d} ($${r.unitPriceUsd} ${f})`;return o.jsx(fT,{label:y,value:C8(S8(r.lineCostUsd),6),indent:!0,dim:!0},`${r.factor}-${i}`)}),s?o.jsx(fT,{label:t("logs.userCost.saved",{defaultValue:"You save"}),value:`${C8(s.saved,6)} (${Math.round(s.pct*100)}%)`,indent:!0,positive:!0}):null]}):null,o.jsx(fT,{label:t("adminUsage.adminCost.billedTotal",{defaultValue:"Billed"}),value:Wr(n),final:!0})]})}function fT({label:e,value:t,indent:n=!1,dim:a=!1,positive:s=!1,final:r=!1}){return o.jsxs("div",{className:"flex items-baseline justify-between py-1 "+(r?"mt-1 border-t border-[color:var(--border)] pt-2 font-medium":"border-t border-[color:var(--border)]/40 first:border-t-0"),children:[o.jsx("span",{className:(n?"pl-3 ":"")+(a?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]"),children:e}),o.jsx("span",{style:s?{color:"var(--success)"}:void 0,className:a?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]",children:t})]})}function NUs({row:e}){const{t}=W();return Number(e.billedCost??0)===0?o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:Wr(0)}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"inline-flex max-w-full cursor-help flex-wrap items-baseline justify-end gap-1 tabular-nums",children:[o.jsx("span",{children:Wr(e.billedCost)}),o.jsx("span",{className:"inline-block size-3 rounded-full border border-[color:var(--muted-foreground)]/30 text-center text-3xs leading-[10px] text-[color:var(--muted-foreground)] md:opacity-0 md:group-hover/row:opacity-100",children:"i"})]})}),o.jsxs(ns,{className:"min-w-[300px]",children:[o.jsx(Rc,{children:t("adminUsage.costBreakdown")}),o.jsx(_J,{row:e})]})]})}function jJ({publicId:e,onClose:t}){const{t:n}=W(),a=Te(),s=bIs(e),r=s.data,i=r?SN(r):null,c=Number(r?.billedCost??0);return o.jsx(Vn,{open:!!e,onOpenChange:d=>{d||t()},children:o.jsxs(Nn,{side:"auto",showClose:!1,className:"!p-0 md:w-[min(1040px,94vw)] md:!max-w-none",children:[o.jsx(Rn,{className:"sr-only",children:n("adminUsage.requestDetail")}),o.jsxs("div",{className:"flex h-full w-full flex-col",children:[o.jsxs("header",{className:"flex min-w-0 items-start gap-3 border-b border-[color:var(--border)] px-3 py-3 sm:px-5",children:[o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"text-sm font-semibold",children:n("adminUsage.requestDetail")}),r?o.jsxs("div",{className:"mt-0.5 flex flex-wrap items-center gap-2 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx("code",{className:"max-w-full break-all rounded border border-[color:var(--border)] bg-[color:var(--muted)] px-1.5 py-0.5 font-mono",children:r.onehopRequestId??r.publicId}),o.jsx("span",{className:"min-w-0 max-w-full break-all",children:r.userEmail??n("adminUsage.unknownUser")}),o.jsx("span",{children:"·"}),o.jsx("span",{children:a.dateTime(r.startedAt)})]}):null]}),o.jsx(h7,{className:"ml-auto grid size-10 place-items-center rounded-md border border-[color:var(--border)] text-[color:var(--muted-foreground)] hover:bg-[color:var(--muted)] hover:text-[color:var(--foreground)]",children:o.jsx(my,{
972className:"size-4"})})]}),!r||!i?o.jsx("div",{className:"p-6 text-sm text-[color:var(--muted-foreground)]",children:s.isLoading?n("adminUsage.loading"):s.error?.message}):o.jsxs("div",{className:"grid min-h-0 flex-1 overflow-y-auto md:grid-cols-[minmax(0,1fr)_340px] md:overflow-hidden",children:[o.jsxs("div",{className:"min-w-0 border-b border-[color:var(--border)] p-3 md:overflow-y-auto md:border-b-0 md:border-r md:p-5",children:[o.jsxs("div",{className:"grid gap-2 sm:grid-cols-3 sm:gap-3",children:[o.jsx(gT,{label:n("adminUsage.userSpend"),value:Y0(c)}),o.jsx(gT,{label:n("adminUsage.groupMultiplier"),value:r.rateMultiplier?`à ${Number(r.rateMultiplier).toFixed(2)}`:"â"}),o.jsx(gT,{label:n("adminUsage.accountMultiplier"),value:r.accountRateMultiplier?`à ${Number(r.accountRateMultiplier).toFixed(2)}`:"â"})]}),Rj(i).hasMedia?o.jsx(vg,{title:n("logs.drawer.response"),className:"mt-4",children:o.jsx(ZK,{record:i})}):null,o.jsx(vg,{title:n("adminUsage.costBreakdown"),className:"mt-4",children:o.jsx(_J,{row:r})}),o.jsxs("div",{className:"mt-4 grid gap-3 lg:grid-cols-2 lg:gap-4",children:[o.jsxs(vg,{title:n("adminUsage.identity"),children:[o.jsx(Ur,{label:n("adminUsage.user"),value:r.userEmail??"â"}),o.jsx(Ur,{label:n("adminUsage.userId"),value:o.jsx(Qa,{children:r.userPublicId??"â"})}),o.jsx(Ur,{label:n("adminUsage.breakdown.apiKey"),value:r.apiKey?r.apiKey.name:"â"}),o.jsx(Ur,{label:n("adminUsage.keySuffix"),value:r.apiKey?o.jsxs(Qa,{children:[r.apiKey.prefix,"â¦",r.apiKey.suffix]}):"â"})]}),o.jsxs(vg,{title:n("adminUsage.tokens"),children:[o.jsx(Ur,{label:n("adminUsage.input"),value:a.number(r.inputTokens)}),o.jsx(Ur,{label:n("adminUsage.output"),value:a.number(r.outputTokens)}),o.jsx(Ur,{label:n("adminUsage.cacheRead"),value:a.number(r.cacheReadTokens)}),o.jsx(Ur,{label:n("adminUsage.cacheWrite"),value:a.number(r.cacheWriteTokens)}),o.jsx(Ur,{label:n("logs.tokensBreakdown.cacheWrite5m"),value:a.number(r.cacheWrite5mTokens)}),o.jsx(Ur,{label:n("logs.tokensBreakdown.cacheWrite1h"),value:a.number(r.cacheWrite1hTokens)})]})]}),o.jsx(vg,{title:n("adminUsage.rawMetadata"),className:"mt-4",children:o.jsx("pre",{className:"max-h-[320px] overflow-auto rounded-md border border-[color:var(--border)] bg-[color:var(--muted)]/35 p-3 font-mono text-11 leading-5 text-[color:var(--foreground)] sm:max-h-[420px] sm:p-4",children:JSON.stringify(r.metadata??{},null,2)})})]}),o.jsxs("div",{className:"bg-[color:var(--muted)]/25 md:overflow-y-auto",children:[o.jsxs(Em,{title:n("adminUsage.request"),children:[o.jsx(St,{label:n("adminUsage.usageId"),value:o.jsx(Qa,{children:r.publicId})}),o.jsx(St,{label:n("adminUsage.onehopId"),value:o.jsx(Qa,{children:r.onehopRequestId??"â"})}),o.jsx(St,{label:n("adminUsage.sub2apiId"),value:o.jsx(Qa,{children:r.sub2apiRequestId??"â"})}),o.jsx(St,{label:n("adminUsage.sub2apiLog"),value:r.sub2apiUsageLogId??"â"}),o.jsx(St,{label:n("adminUsage.started"),value:a.dateTime(r.startedAt)})]}),o.jsxs(Em,{title:n("adminUsage.routing"),children:[o.jsx(St,{label:n("adminUsage.model"),value:r.requestedModel}),o.jsx(St,{label:n("adminUsage.upstream"),value:r.upstreamModel??"â"}),o.jsx(St,{label:n("adminUsage.endpoint"),value:o.jsx(Qa,{children:r.endpointPath??"â"})}),o.jsx(St,{label:n("adminUsage.group"),value:r.groupId??"â"}),o.jsx(St,{label:n("adminUsage.mapping"),value:r.modelMappingChain??"â"})]}),o.jsxs(Em,{title:n("adminUsage.continuity.hopIdentity"),children:[o.jsx(St,{label:n("adminUsage.continuity.logicalUsageId"),value:o.jsx(Qa,{children:r.logicalPublicId})}),o.jsx(St,{label:n("adminUsage.continuity.logicalRequestedModel"),value:o.jsx(Qa,{children:r.logicalRequestedModel})}),o.jsx(St,{label:n("adminUsage.continuity.logicalModel"),value:o.jsx(Qa,{children:r.logicalModelSlug})}),o.jsx(St,{label:n("adminUsage.continuity.actualRequestedModel"),value:o.jsx(Qa,{children:r.actualRequestedModel})}),o.jsx(St,{label:n("adminUsage.continuity.actualModel"),value:o.jsx(Qa,{children:r.actualModelSlug})}),o.jsx(St,{label:n("adminUsage.continuity.fallbackHop"),value:r.fallbackHop}),o.jsx(St,{label:n("adminUsage.continuity.userVisibility"),value:o.jsx(jo,{tone:r.userVisible?"success":"muted",srPrefix:n("adminUsage.continuity.userVisibility"),children:n(r.userVisible?"adminUsage.continuity.visible":"adminUsage.continuity.hidden")})}),o.jsx(St,{label:n("adminUsage.continuity.supersedesUsageRecord"),value:r.supersedesUsageRecordId==null?"â":o.jsx(Qa,{children:r.supersedesUsageRecordId})})]}),r.continuityPricing?o.jsx(DUs,{pricing:r.continuityPricing}):null,o.jsxs(Em,{title:n("adminUsage.performance"),children:[o.jsx(St,{label:n("adminUsage.firstToken"),value:du(r.firstTokenMs)}),o.jsx(St,{label:n("adminUsage.total"),value:du(r.durationMs)}),o.jsx(St,{label:n("adminUsage.type"),value:r.requestType??"â"}),o.jsx(St,{label:n("adminUsage.billing"),value:r.billingMode??"â"})]}),r.errorCode||r.errorMessage?o.jsxs(Em,{title:n("adminUsage.error"),children:[o.jsx(St,{label:n("adminUsage.code"),value:r.errorCode??"â"}),o.jsx(St,{label:n("adminUsage.message"),value:r.errorMessage??"â"})]}):null]})]})]})]})})}function DUs({pricing:e}){const{t}=W(),n=e.actualPricingStatus??(e.actualQuote==null?"unavailable":"available");return o.jsxs(Em,{title:t("adminUsage.continuity.pricingAudit"),children:[o.jsx(St,{label:t("adminUsage.continuity.mode"),value:o.jsx(Qa,{children:e.mode})}),o.jsx(St,{label:t("adminUsage.continuity.policyVersion"),value:`v${e.policyVersion}`}),o.jsx(St,{label:t("adminUsage.continuity.sourceModel"),value:o.jsx(Qa,{children:e.sourceModelSlug})}),o.jsx(St,{label:t("adminUsage.continuity.targetModel"),value:o.jsx(Qa,{children:e.targetModelSlug})}),o.jsx(St,{label:t("adminUsage.continuity.requestedRawQuote"),value:yg(e.requestedRawQuote)}),o.jsx(St,{label:t("adminUsage.continuity.requestedQuote"),value:yg(e.requestedQuote)}),o.jsx(St,{label:t("adminUsage.continuity.actualPricingStatus"),value:o.jsx(jo,{tone:n==="available"?"success":"warning",srPrefix:t("adminUsage.continuity.actualPricingStatus"),children:t(n==="available"?"adminUsage.continuity.actualPricingAvailable":"adminUsage.continuity.actualPricingUnavailable")})}),o.jsx(St,{label:t("adminUsage.continuity.actualQuote"),value:yg(e.actualQuote)}),o.jsx(St,{label:t("adminUsage.continuity.chargedQuote"),value:yg(e.chargedQuote)}),o.jsx(St,{label:t("adminUsage.continuity.variance"),value:yg(e.variance)}),e.actualPricingError?o.jsx(St,{label:t("adminUsage.continuity.actualPricingError"),value:e.actualPricingError}):null]})}function yg(e){return e==null?"â":Y0(e,6)}function gT({label:e,value:t}){return o.jsxs("div",{className:"min-w-0 rounded-md border border-[color:var(--border)] bg-[color:var(--background)] px-3 py-2.5",children:[o.jsx("div",{className:"text-11 font-medium text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:"mt-1 truncate font-mono text-base font-semibold tabular-nums sm:text-lg",children:t})]})}function vg({title:e,children:t,className:n}){return o.jsxs("section",{className:`min-w-0 rounded-md border border-[color:var(--border)] bg-[color:var(--background)] p-3 sm:p-4 ${n??""}`,children:[o.jsx("h3",{className:"mb-3 text-11 font-semibold uppercase text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:"space-y-2",children:t})]})}function Ur({label:e,value:t}){return o.jsxs("div",{className:"grid grid-cols-[82px_minmax(0,1fr)] gap-2 text-sm sm:grid-cols-[100px_minmax(0,1fr)] sm:gap-3",children:[o.jsx("div",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:"min-w-0 break-words tabular-nums text-[color:var(--foreground)]",children:t})]})}function Em({title:e,children:t}){return o.jsxs("section",{className:"border-b border-[color:var(--border)] px-4 py-4 last:border-b-0 sm:px-5",children:[o.jsx("h3",{className:"mb-3 text-11 font-semibold uppercase text-[color:var(--muted-foreground)]",children:e}),o.jsx("dl",{className:"grid grid-cols-[82px_minmax(0,1fr)] gap-x-2 gap-y-2 text-xs sm:grid-cols-[96px_minmax(0,1fr)] sm:gap-x-3 sm:text-13",children:t})]})}function St({label:e,value:t}){return o.jsxs(o.Fragment,{children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("dd",{className:"min-w-0 break-words tabular-nums text-[color:var(--foreground)]",children:t})]})}function Qa({children:e}){return o.jsx("code",{className:"font-mono text-11 break-all text-[color:var(--foreground)]",children:e})}function MUs({filters:e,queryFilters:t,hasFilters:n,applyFilter:a,patch:s,resetFilters:r}){const{t:i}=W(),[c,d]=h.useState(null),m=yUs.some(j=>e[j]),[f,p]=h.useState(m),y=f||m,v=h.useMemo(()=>({...t,limit:String(e.size),page:String(e.page)}),[e.page,e.size,t]),$=K0(v),x=$.data?.items??[],w=$.data?.summary,S=h.useMemo(()=>fUs.map(j=>({value:j,label:j?i(`optionLabels.${j}`,{defaultValue:j}):i("adminUsage.allTypes")})),[i]),k=h.useMemo(()=>gUs.map(j=>({value:j,label:j?i(`optionLabels.${j==="tokens"?"token":j==="per_request"?"request":j}`,{defaultValue:j}):i("adminUsage.allBilling")})),[i]),T=h.useMemo(()=>wK.map(j=>({...j,label:j.value?i(`optionLabels.${j.value}`,{defaultValue:j.label}):i("optionLabels.all")})),[i]),R=h.useMemo(()=>Cj.map(j=>({...j,label:j.value?i(`optionLabels.${j.value}`,{defaultValue:j.label}):i("optionLabels.all")})),[i]),_=e.status==="failed",P=!!e.minDurationMs;return o.jsxs(Ee,{className:"overflow-hidden",children:[o.jsx("div",{className:"hidden border-b border-[color:var(--border)] px-3 py-2.5 sm:block sm:px-4 sm:py-3",children:o.jsx("h2",{className:"text-sm font-semibold",children:i("adminUsage.requestLogs")})}),o.jsxs("div",{className:"border-b border-[color:var(--border)] bg-[color:var(--muted)]/20 p-2 sm:p-3",children:[o.jsxs("div",{className:"mb-1.5 flex flex-wrap items-center gap-1.5 sm:mb-3 sm:gap-2",children:[o.jsx(A8,{active:_,label:i("adminUsage.chip.failedOnly",{defaultValue:"Failed only"}),onClick:()=>a({status:_?"":"failed"})}),o.jsx(A8,{active:P,label:i("adminUsage.chip.slowOnly",{defaultValue:"Slow > {{sec}}s",sec:((Number(e.minDurationMs)||Kb)/1e3).toString()}),onClick:()=>a({minDurationMs:P?"":String(Kb)})})]}),o.jsx("p",{className:"mb-3 hidden text-11 text-[color:var(--muted-foreground)] sm:block",children:i("adminUsage.latencyHint")}),o.jsxs(Gp,{compact:!0,label:i("adminUsage.moreFilters",{defaultValue:"More filters"}),active:n,panelClassName:"gap-3 border-0 bg-transparent p-0",children:[o.jsx(Bn,{label:i("adminUsage.userEmail"),children:o.jsx(ge,{value:e.email,onChange:j=>a({email:j.target.value}),placeholder:i("adminUsage.searchEmail")})}),o.jsx(Bn,{label:i("adminUsage.model"),children:o.jsx(ge,{value:e.model,onChange:j=>a({model:j.target.value}),placeholder:i("adminUsage.searchModel")})}),o.jsx(Bn,{label:i("adminUsage.status"),children:o.jsx(ft,{value:e.status,onValueChange:j=>a({status:j}),options:T})}),o.jsx(Bn,{label:i("adminUsage.protocol"),children:o.jsx(ft,{value:e.protocol,onValueChange:j=>a({protocol:j}),options:R})}),o.jsx(Bn,{label:i("adminUsage.type"),children:o.jsx(ft,{value:e.requestType,onValueChange:j=>a({requestType:j}),options:S})}),o.jsx(Bn,{label:i("adminUsage.billing"),children:o.jsx(ft,{value:e.billingMode,onValueChange:j=>a({billingMode:j}),options:k})}),o.jsx(Bn,{label:i("adminUsage.slowThreshold",{defaultValue:"Slow threshold (ms)"}),children:o.jsx(ge,{value:e.minDurationMs,onChange:j=>a({minDurationMs:j.target.value}),inputMode:"numeric",placeholder:String(Kb)})}),o.jsx(Bn,{label:i("adminUsage.channel"),children:o.jsx(ge,{value:e.channelId,onChange:j=>a({channelId:j.target.value}),inputMode:"numeric"})}),o.jsx(Bn,{label:i("adminUsage.group"),children:o.jsx(ge,{value:e.groupId,onChange:j=>a({groupId:j.target.value}),inputMode:"numeric"})}),o.jsx(Bn,{label:i("adminUsage.requestId"),children:o.jsx(ge,{value:e.requestId,onChange:j=>a({requestId:j.target.value}),placeholder:i("adminUsage.requestIdPlaceholder")})}),o.jsx(nn,{show:n,onReset:r,labelKey:"common.reset",className:"justify-self-end"})]}),o.jsxs("div",{className:"hidden gap-3 md:grid sm:grid-cols-2 lg:grid-cols-[repeat(4,minmax(0,1fr))_auto]",children:[o.jsx(Bn,{label:i("adminUsage.userEmail"),children:o.jsx(ge,{value:e.email,onChange:j=>a({email:j.target.value}),placeholder:i("adminUsage.searchEmail")})}),o.jsx(Bn,{label:i("adminUsage.model"),children:o.jsx(ge,{value:e.model,onChange:j=>a({model:j.target.value}),placeholder:i("adminUsage.searchModel")})}),o.jsx(Bn,{label:i("adminUsage.status"),children:o.jsx(ft,{value:e.status,onValueChange:j=>a({status:j}),options:T})}),o.jsx("div",{className:"flex items-end",children:o.jsxs("button",{type:"button",onClick:()=>p(j=>!j),"aria-expanded":y,className:X("inline-flex h-9 w-full items-center justify-center gap-1 rounded-md border px-3 text-xs font-medium transition-colors lg:w-auto",m?"border-[color:var(--primary)] text-[color:var(--primary)]":"border-[color:var(--border)] text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]"),children:[i("adminUsage.moreFilters",{defaultValue:"More filters"}),o.jsx(zc,{className:X("size-3.5 transition-transform",y&&"rotate-180")}
972)]})}),o.jsx(nn,{show:n,onReset:r,labelKey:"common.reset",className:"self-end"})]}),y?o.jsxs("div",{className:"mt-3 hidden gap-3 md:grid sm:grid-cols-2 lg:grid-cols-4",children:[o.jsx(Bn,{label:i("adminUsage.protocol"),children:o.jsx(ft,{value:e.protocol,onValueChange:j=>a({protocol:j}),options:R})}),o.jsx(Bn,{label:i("adminUsage.type"),children:o.jsx(ft,{value:e.requestType,onValueChange:j=>a({requestType:j}),options:S})}),o.jsx(Bn,{label:i("adminUsage.billing"),children:o.jsx(ft,{value:e.billingMode,onValueChange:j=>a({billingMode:j}),options:k})}),o.jsx(Bn,{label:i("adminUsage.slowThreshold",{defaultValue:"Slow threshold (ms)"}),children:o.jsx(ge,{value:e.minDurationMs,onChange:j=>a({minDurationMs:j.target.value}),inputMode:"numeric",placeholder:String(Kb)})}),o.jsx(Bn,{label:i("adminUsage.channel"),children:o.jsx(ge,{value:e.channelId,onChange:j=>a({channelId:j.target.value}),inputMode:"numeric"})}),o.jsx(Bn,{label:i("adminUsage.group"),children:o.jsx(ge,{value:e.groupId,onChange:j=>a({groupId:j.target.value}),inputMode:"numeric"})}),o.jsx(Bn,{label:i("adminUsage.requestId"),children:o.jsx(ge,{value:e.requestId,onChange:j=>a({requestId:j.target.value}),placeholder:i("adminUsage.requestIdPlaceholder")})})]}):null]}),o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{className:"w-full min-w-[1360px] text-sm",children:[o.jsx(Po,{className:"bg-[color:var(--muted)]/40",children:o.jsxs(qt,{className:"hover:bg-transparent",children:[o.jsx(Ie,{sticky:"left",className:"bg-[color:var(--muted)]/40",children:i("adminUsage.table.user")}),o.jsx(Ie,{children:i("adminUsage.table.time")}),o.jsx(Ie,{children:i("adminUsage.table.model")}),o.jsx(Ie,{children:i("adminUsage.table.tokens")}),o.jsx(Ie,{className:"text-right",children:i("adminUsage.table.cost")}),o.jsx(Ie,{children:i("adminUsage.table.upstream",{defaultValue:"Upstream"})}),o.jsx(Ie,{children:i("adminUsage.table.latency")}),o.jsx(Ie,{children:i("adminUsage.table.duration")}),o.jsx(Ie,{children:i("adminUsage.table.userAgent",{defaultValue:"Client"})}),o.jsx(Ie,{children:i("adminUsage.table.status")})]})}),o.jsx(Ba,{children:x.map(j=>o.jsx(IUs,{row:j,selected:j.publicId===c,onSelect:()=>d(j.publicId),onDrill:a},j.publicId))})]})}),o.jsx("div",{className:"grid p-0 md:hidden",children:x.map(j=>o.jsx(EUs,{row:j,selected:j.publicId===c,onSelect:()=>d(j.publicId),onDrill:a},j.publicId))}),$.error?o.jsx("div",{className:"p-6",children:o.jsx(Ot,{title:i("adminUsage.failedLoad"),description:$.error.message})}):null,!$.error&&x.length===0?o.jsx("div",{className:"p-6",children:o.jsx(Ot,{title:$.isLoading?i("adminUsage.loadingRecords"):i("adminUsage.empty"),description:i("adminUsage.tryDifferentFilters")})}):null,x.length>0?o.jsx(V0,{total:w?.requestCount??0,page:e.page,pageSize:e.size,pageSizeOptions:pUs,onPageChange:j=>s({page:j===1?void 0:String(j)},{replace:!1}),onPageSizeChange:j=>s({size:j===20?void 0:String(j),page:void 0})}):null,o.jsx(jJ,{publicId:c,onClose:()=>d(null)})]})}function A8({active:e,label:t,onClick:n}){return o.jsx("button",{type:"button","aria-pressed":e,onClick:n,className:X("inline-flex items-center rounded-full border px-3 py-1 text-xs font-medium transition-colors",e?"border-[color:var(--primary)] bg-[color:var(--primary)] text-[color:var(--primary-foreground)]":"border-[color:var(--border)] text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)]"),children:t})}function EUs({row:e,selected:t,onSelect:n,onDrill:a}){const{t:s}=W(),r=Te(),i=SN(e),c=e.apiKey,d=e.userPublicId,m=`${ec(e.inputTokens+e.outputTokens+e.cacheReadTokens+e.cacheWriteTokens,r.locale)} tok`;return o.jsxs(Dn,{selected:t,onClick:n,activation:"pointer",className:"py-1.5",children:[o.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-1",onClick:f=>f.stopPropagation(),children:[d?e.userAdminNote?o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{className:"min-w-0 truncate",children:o.jsx(Ko,{onDrill:()=>a({userPublicId:d}),className:"max-w-full truncate text-sm font-medium",children:e.userEmail??d})})}),o.jsx(cs,{side:"top",className:"max-w-xs whitespace-pre-wrap break-words text-xs",children:e.userAdminNote})]}):o.jsx(Ko,{onDrill:()=>a({userPublicId:d}),className:"max-w-full truncate text-sm font-medium",children:e.userEmail??d}):o.jsx("div",{className:"truncate text-sm font-medium",children:e.userEmail??"â"}),d?o.jsx(Ta,{to:Bh(d),onClick:f=>f.stopPropagation(),"aria-label":"open user detail",className:"shrink-0 text-[color:var(--muted-foreground)] hover:text-[color:var(--primary)]",children:o.jsx(dy,{className:"size-3"})}):null]}),o.jsx("div",{className:"mt-0.5 min-w-0 truncate font-mono text-11 text-[color:var(--muted-foreground)]",onClick:f=>f.stopPropagation(),children:c?o.jsx(Ko,{onDrill:()=>a({apiKey:c.publicId}),children:c.name}):d??"â"})]}),o.jsxs(Cr,{className:"shrink-0",children:[o.jsx(Ww,{record:i}),o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:n,"aria-label":s("adminUsage.openRequestDetail",{defaultValue:"Open request detail"}),className:"size-10",children:o.jsx(wu,{className:"size-4"})})]})]}),o.jsxs("div",{className:"mt-1 min-w-0",onClick:f=>f.stopPropagation(),children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsx(Ko,{onDrill:()=>a({model:e.requestedModel}),className:"min-w-0 text-sm font-medium",children:e.requestedModel}),o.jsx(Gw,{serviceTier:e.serviceTier})]}),o.jsxs("div",{className:"mt-0.5 flex min-w-0 flex-nowrap items-center gap-2 overflow-hidden text-11 text-[color:var(--muted-foreground)]",children:[o.jsx(jj,{iso:e.startedAt}),o.jsx("span",{className:"max-w-[12rem] truncate",children:e.endpointPath??e.upstreamEndpoint??"â"})]})]}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1.2fr)_minmax(0,0.8fr)]",children:[o.jsx(Qe,{label:s("adminUsage.table.tokens"),children:o.jsx("span",{className:"tabular-nums",children:m})}),o.jsx(Qe,{label:s("adminUsage.table.cost"),align:"right",children:o.jsx("span",{className:"tabular-nums",children:Y0(e.billedCost)})}),o.jsx(Qe,{label:s("adminUsage.table.upstream",{defaultValue:"Upstream"}),truncate:!1,children:o.jsx("span",{className:"inline-flex max-w-full items-center gap-1 text-11",children:e.poolCode?e.groupId!=null?o.jsx(Ko,{onDrill:()=>a({groupId:String(e.groupId)}),children:e.poolCode}):o.jsx("span",{className:"truncate",children:e.poolCode}):e.groupId!=null?o.jsx(Ko,{onDrill:()=>a({groupId:String(e.groupId)}),children:e.groupId}):o.jsx("span",{children:"â"})})}),o.jsx(Qe,{label:s("adminUsage.table.latency"),align:"right",children:o.jsx("span",{className:"tabular-nums",children:du(e.firstTokenMs)})})]})]})}function IUs({row:e,selected:t,onSelect:n,onDrill:a}){const s=SN(e),r=e.apiKey,i=e.userPublicId,c=e.userEmail??i??"â",d=i?o.jsx(Ko,{onDrill:()=>a({userPublicId:i}),className:"text-xs",children:c}):o.jsx("span",{className:"truncate text-xs",children:c});return o.jsxs(qt,{onClick:m=>{eu(m)||n()},className:X("group/row cursor-pointer hover:bg-[color:var(--muted)]/50",t&&"bg-[color:var(--primary)]/[0.04]"),children:[o.jsxs(Me,{sticky:"left",children:[o.jsxs("div",{className:"flex min-w-0 max-w-[240px] items-center gap-1",children:[e.userAdminNote?o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{className:"min-w-0 truncate",children:d})}),o.jsx(cs,{side:"top",className:"max-w-xs whitespace-pre-wrap break-words text-xs",children:e.userAdminNote})]}):d,i?o.jsx(Ta,{to:Bh(i),onClick:m=>m.stopPropagation(),"aria-label":"open user detail",className:"shrink-0 text-[color:var(--muted-foreground)] hover:text-[color:var(--primary)]",children:o.jsx(dy,{className:"size-3"})}):null]}),o.jsx("div",{className:"max-w-[240px] font-mono text-11 text-[color:var(--muted-foreground)]",children:r?o.jsx(Ko,{onDrill:()=>a({apiKey:r.publicId}),children:r.name}):i??"â"})]}),o.jsx(Me,{className:"text-xs",children:o.jsx(jj,{iso:e.startedAt})}),o.jsxs(Me,{children:[o.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[o.jsx(Xo,{authorSlug:Iz(e.modelSlug),size:14,className:"shrink-0 text-[color:var(--muted-foreground)]"}),o.jsx(Ko,{onDrill:()=>a({model:e.requestedModel}),className:"max-w-[240px] text-sm",children:e.requestedModel}),o.jsx(Gw,{serviceTier:e.serviceTier})]}),o.jsx("div",{className:"max-w-[260px] truncate font-mono text-11 text-[color:var(--muted-foreground)]",children:e.upstreamModel??e.modelSlug})]}),o.jsx(Me,{children:o.jsx(Pj,{record:s,detailPath:"/ops/usage"})}),o.jsx(Me,{className:"text-right",children:o.jsx(NUs,{row:e})}),o.jsxs(Me,{children:[o.jsx("div",{className:"font-mono text-11",children:e.poolCode?e.groupId!=null?o.jsx(Ko,{onDrill:()=>a({groupId:String(e.groupId)}),children:e.poolCode}):o.jsx("span",{children:e.poolCode}):e.groupId!=null?o.jsx(Ko,{onDrill:()=>a({groupId:String(e.groupId)}),children:e.groupId}):"â"}),o.jsxs("div",{className:"flex max-w-[180px] items-center gap-1 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx(Ko,{onDrill:()=>a({protocol:e.protocol}),className:"text-11",children:e.protocol}),o.jsxs("span",{className:"truncate",children:["· ",e.endpointPath??e.upstreamEndpoint??"â"]})]})]}),o.jsx(Me,{className:"text-xs tabular-nums",children:du(e.firstTokenMs)}),o.jsx(Me,{className:"text-xs tabular-nums",children:du(e.durationMs)}),o.jsx(Me,{className:"text-11 text-[color:var(--muted-foreground)]",children:o.jsx("span",{className:"block max-w-[160px] truncate",title:e.userAgent??void 0,children:e.userAgent??"â"})}),o.jsx(Me,{children:o.jsx(Ww,{record:s})})]})}const NJ="onehop.adminUsage.range.v1",DJ=[0,5,10,30,60];function OUs(e){const t=Number(e);return DJ.includes(t)?t:null}function T8(){try{return VP(localStorage.getItem(NJ),HP)}catch{return HP}}function LUs(e){try{localStorage.setItem(NJ,e)}catch{}}function hT({label:e,value:t,sub:n}){return o.jsxs(Ee,{className:"min-w-0 p-2",children:[o.jsx("div",{className:"truncate text-11 font-semibold uppercase leading-4 text-[color:var(--muted-foreground)]",children:e}),o.jsx("div",{className:"mt-0.5 truncate text-sm font-semibold tabular-nums",children:t}),o.jsx("div",{className:"mt-0.5 truncate text-11 leading-4 text-[color:var(--muted-foreground)]",children:n})]})}function UUs(){const{t:e}=W(),t=Te(),n=Re(),{params:a,patch:s,remove:r}=Mt(),i=a.get("range"),[c,d]=h.useState(()=>
972VP(i,T8()));h.useEffect(()=>{d(VP(i,T8()))},[i]);const m=h.useMemo(()=>({range:c,email:Pe(a,"email"),userPublicId:Pe(a,"uid"),apiKey:Pe(a,"apiKey"),model:Pe(a,"model"),status:Pe(a,"status"),protocol:Pe(a,"protocol"),requestType:Pe(a,"type"),billingMode:Pe(a,"billing"),channelId:Pe(a,"channel"),groupId:Pe(a,"group"),requestId:Pe(a,"reqId"),minDurationMs:Pe(a,"slow"),page:ln(a,"page",1),size:ln(a,"size",20)}),[a,c]),[f,p]=gh("admin_usage_tab","analytics",B=>B==="logs"?"logs":B==="analytics"?"analytics":null),y=Pe(a,"tab",f)==="logs"?"logs":"analytics",[v,$]=h.useState(!1),[x,w]=h.useState(null),S=h.useDeferredValue(m.email),k=h.useDeferredValue(m.apiKey),T=h.useDeferredValue(m.model),R=h.useDeferredValue(m.channelId),_=h.useDeferredValue(m.groupId),P=h.useDeferredValue(m.requestId),j=h.useDeferredValue(m.minDurationMs),N=h.useMemo(()=>({...bUs(m.range),tz:uK(),email:S,userPublicId:m.userPublicId,apiKey:k,model:T,status:m.status,protocol:m.protocol,requestType:m.requestType,billingMode:m.billingMode,channelId:R,groupId:_,requestId:P,minDurationMs:j}),[m.range,m.userPublicId,m.status,m.protocol,m.requestType,m.billingMode,S,k,T,R,_,P,j]),I=xUs(m.range),z=K0({...N,limit:"1"}),E=z.data?.summary,L=z.isFetching&&!z.isPending,O=Zt(a,k8,["page","size"]),V=h.useMemo(()=>[{value:"24h",label:e("adminUsage.ranges.today")},{value:"7d",label:e("adminUsage.ranges.days7")},{value:"30d",label:e("adminUsage.ranges.days30")},{value:"all",label:e("adminUsage.ranges.all")}],[e]);function ne(B){s(vUs(B))}function q(B){d(B),LUs(B),ne({range:B})}function M(){n.invalidateQueries({queryKey:["ops","usage"]})}const[F,H]=gh("onehop.adminUsage.autoRefresh.v1",0,OUs);h.useEffect(()=>{if(!F)return;const B=setInterval(()=>{document.hidden||n.invalidateQueries({queryKey:["ops","usage"]})},F*1e3);return()=>clearInterval(B)},[F,n]);async function ee(){$(!0),w(null);try{const B=await xIs(N);mUs(B,e)}catch(B){w(B instanceof Error?B.message:e("adminUsage.exportError"))}finally{$(!1)}}return o.jsxs(Vt,{title:e("adminUsage.title"),description:e("adminUsage.description"),action:o.jsxs("div",{className:"grid w-full grid-cols-[minmax(0,1fr)_auto_auto] gap-1.5 sm:flex sm:w-auto sm:items-center sm:gap-2",children:[o.jsx(ft,{value:m.range,onValueChange:B=>q(B),options:V,className:"h-9 sm:w-32","aria-label":e("adminUsage.range")}),o.jsxs("div",{className:"flex",children:[o.jsxs(K,{variant:"outline",size:"icon",onClick:M,"aria-busy":L,"aria-label":e("adminUsage.refresh"),className:"size-9 rounded-r-none sm:w-auto sm:px-3",children:[o.jsx(Vp,{className:X("size-4",L&&"animate-spin")}),o.jsx("span",{className:"hidden sm:inline",children:F?`${F}s`:e("adminUsage.refresh")})]}),o.jsxs(zp,{children:[o.jsx(qp,{asChild:!0,children:o.jsx(K,{variant:"outline",size:"icon","aria-label":e("adminUsage.autoRefresh.label"),className:"size-9 w-6 rounded-l-none border-l-0 sm:w-7",children:o.jsx(zc,{className:"size-3.5"})})}),o.jsx(xu,{align:"end",children:o.jsx(ppe,{value:String(F),onValueChange:B=>H(Number(B)),children:DJ.map(B=>o.jsx(Jq,{value:String(B),children:B===0?e("adminUsage.autoRefresh.off"):`${B}s`},B))})})]})]}),o.jsxs(K,{variant:"secondary",size:"icon",onClick:ee,disabled:(E?.requestCount??0)===0||v,className:"size-9 sm:w-auto sm:px-3","aria-label":e(v?"adminUsage.exporting":"adminUsage.exportCsv"),children:[o.jsx($u,{className:"size-4"}),o.jsx("span",{className:"hidden sm:inline",children:e(v?"adminUsage.exporting":"adminUsage.exportCsv")})]})]}),children:[o.jsxs("div",{className:"-mt-2 truncate text-11 text-[color:var(--muted-foreground)] sm:-mt-3 sm:text-xs",children:[e("adminUsage.timesShownIn")," ",o.jsx("span",{className:"font-medium text-[color:var(--foreground)]",children:mK()})]}),o.jsx(SUs,{filters:m,onClear:B=>ne({[B]:""}),onClearAll:()=>r([...RJ.map(B=>PJ[B]),"page"])}),o.jsxs("div",{className:"grid grid-cols-3 gap-1.5 sm:hidden",children:[o.jsx(hT,{label:e("adminUsage.requests"),value:t.number(Math.round(E?.requestCount??0)),sub:e("adminUsage.successful",{count:t.number(E?.successCount??0)})}),o.jsx(hT,{label:e("adminUsage.userSpend"),value:t.currency(Number(E?.billedCost??0)),sub:e("adminUsage.userSpendSource")}),o.jsx(hT,{label:e("adminUsage.tokens"),value:ec(E?.totalTokens??0,t.locale),sub:e("adminUsage.inOut",{input
972:ec(E?.inputTokens??0,t.locale),output:ec(E?.outputTokens??0,t.locale)})})]}),o.jsxs("div",{className:"hidden grid-cols-3 gap-1.5 sm:grid sm:grid-cols-2 sm:gap-3 lg:grid-cols-6",children:[o.jsx(jm,{label:e("adminUsage.requests"),value:E?.requestCount??0,format:B=>t.number(Math.round(B)),sub:e("adminUsage.successful",{count:t.number(E?.successCount??0)}),refreshing:L}),o.jsx(jm,{label:e("adminUsage.users"),value:E?.userCount??0,format:B=>t.number(Math.round(B)),sub:e("adminUsage.apiKeys",{count:t.number(E?.apiKeyCount??0)}),refreshing:L}),o.jsx(jm,{label:e("adminUsage.userSpend"),value:Number(E?.billedCost??0),format:B=>t.currency(B),sub:e("adminUsage.userSpendSource"),refreshing:L}),o.jsx(jm,{label:e("adminUsage.tokens"),value:E?.totalTokens??0,format:B=>ec(Math.round(B),t.locale),sub:e("adminUsage.inOut",{input:ec(E?.inputTokens??0,t.locale),output:ec(E?.outputTokens??0,t.locale)}),refreshing:L}),o.jsx(jm,{label:e("adminUsage.avgLatency"),value:E?.averageFirstTokenMs??null,format:du,sub:e("adminUsage.avgLatencySub"),refreshing:L}),o.jsx(jm,{label:e("adminUsage.avgTotalDuration"),value:E?.averageDurationMs??null,format:du,sub:e("adminUsage.settledRequests"),refreshing:L})]}),x?o.jsx(Ee,{className:"border-[color:var(--destructive)]/30 p-3 text-sm text-[color:var(--destructive)]",children:x}):null,o.jsxs(Cc,{value:y,onValueChange:B=>{p(B),s({tab:B==="analytics"?void 0:B})},children:[o.jsx("div",{className:"min-w-0 overflow-x-auto pb-0.5",children:o.jsxs(tl,{children:[o.jsx(ia,{value:"analytics",className:"h-9 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:e("adminUsage.tabs.analytics",{defaultValue:"Usage analytics"})}),o.jsx(ia,{value:"logs",className:"h-9 px-2.5 text-xs sm:h-10 sm:px-3 sm:text-sm",children:e("adminUsage.tabs.logs",{defaultValue:"Request logs"})})]})}),o.jsx(Tn,{value:"analytics",children:o.jsx(AUs,{queryFilters:N,granularity:I,applyFilter:ne})}),o.jsx(Tn,{value:"logs",children:o.jsx(MUs,{filters:m,queryFilters:N,hasFilters:O,applyFilter:ne,patch:s,resetFilters:()=>r(k8)})})]})]})}function BUs(e){const t=e.trim();return t.startsWith("usr_")?{mode:"publicId",value:t}:{mode:"fuzzy",value:t}}function FUs(e,t){const n=t>0?Math.min(Math.max(e/t*100,0),100):0;return n<=0?{pct:0,label:"0%"}:n<1?{pct:n,label:"<1%"}:{pct:n,label:`${n.toFixed(1)}%`}}function zUs({spend:e}){const{t}=W(),n=Te(),a=Number(e.billedCost??0);return a<=0?o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:Wr(e.billedCost)}):o.jsxs(Ns,{openDelay:150,closeDelay:80,children:[o.jsx(Ds,{asChild:!0,children:o.jsxs("span",{className:"inline-flex cursor-help items-baseline gap-1 tabular-nums",children:[o.jsx("span",{children:Wr(e.billedCost)}),o.jsx("span",{className:"inline-block size-3 rounded-full border border-[color:var(--muted-foreground)]/30 text-center text-3xs leading-[10px] text-[color:var(--muted-foreground)] opacity-0 group-hover/row:opacity-100",children:"i"})]})}),o.jsxs(ns,{className:"min-w-[300px]",children:[o.jsx(Rc,{children:t("adminUserDetail.apiKeys.spendTitle")}),o.jsx(Ia,{label:t("adminUserDetail.apiKeys.spend30d"),value:Wr(e.billed30d)}),o.jsx(Ia,{label:t("adminUserDetail.apiKeys.spendAllTime"),value:Wr(e.billedCost),bold:!0}),o.jsx(Ia,{label:t("adminUserDetail.apiKeys.spendRequests"),value:n.number(e.requests)}),o.jsx("div",{className:"mt-1 grid gap-1.5 border-t border-[color:var(--border)] pt-2",children:e.models.map(s=>{const{pct:r,label:i}
972=FUs(Number(s.billedCost),a),c=s.modelSlug==="(unknown)";return o.jsxs("div",{className:"grid gap-0.5",children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-6 text-11",children:[o.jsx("span",{className:c?"text-[color:var(--muted-foreground)]":"text-[color:var(--foreground)]",children:s.modelSlug}),o.jsxs("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:[Wr(s.billedCost)," · ",i," · ",n.number(s.requests),"Ã"]})]}),o.jsx("div",{className:"h-1 rounded-full bg-[color:var(--muted)]",children:o.jsx("div",{className:"h-1 rounded-full bg-[color:var(--foreground)]/70",style:{width:`${r}%`}})})]},s.modelSlug)})})]})]})}function rl(e,t,n){return e==null?"â":lr(Number(e),n,t??"USD")}function vo({label:e,value:t}){return o.jsxs("div",{className:"grid min-w-0 gap-1 py-1.5 text-sm sm:grid-cols-[140px_minmax(0,1fr)] sm:gap-2",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:"min-w-0 break-all",children:t??"â"})]})}function qUs(e){const t=e.filter(Boolean);return t.length?t.join(" · "):"â"}function AN({role:e,status:t}){if(!e)return o.jsx(Oe,{value:"user"});const n=ct(e);return o.jsx("span",{className:"inline-flex items-center gap-2",children:o.jsx(Oe,{value:t??"unknown",label:n})})}const HUs={blue:"text-[color:var(--info)]",purple:"text-purple-500",orange:"text-orange-500"};function Kr({label:e,value:t,format:n,color:a}){const s=a?HUs[a]??"":"";return o.jsxs("div",{className:"grid gap-0.5",children:[o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:`text-base font-semibold tabular-nums${s?` ${s}`:""}`,children:o.jsx(Ho,{value:t,format:n})})]})}function VUs({user:e}){const{t}=W(),[n,a]=h.useState("bonus"),[s,r]=h.useState(""),[i,c]=h.useState(""),[d,m]=h.useState(""),f=V3s(),p=n==="offline_payment",y=Number(s),v=s.trim()!==""&&Number.isFinite(y)&&y>0&&(!p||d.trim()!==""),$=async()=>{v&&(y>1e3&&!await zt({message:t("adminUsers.largeGrantConfirm",{amount:y,email:e.email}),variant:"destructive"})||f.mutate({userPublicId:e.publicId,amount:y.toFixed(4),description:i||void 0,kind:n,referenceNo:p?d.trim():void 0},{onSuccess:()=>{r(""),c(""),m("")}}))};return o.jsxs("div",{className:"grid gap-2",children:[o.jsx("span",{className:"text-sm font-medium",children:t("adminUsers.grantCredit")}),o.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.grantKind"),o.jsxs(Ms,{value:n,onValueChange:x=>a(x),children:[o.jsx(as,{className:"h-9 min-w-0",children:o.jsx(Es,{})}),o.jsxs(os,{className:"max-w-[calc(100vw-1rem)]",children:[o.jsx(zn,{value:"bonus",description:t("adminUsers.grantKindBonusHint"),textClassName:"whitespace-normal break-words",descriptionClassName:"whitespace-normal break-words",children:t("adminUsers.grantKindBonus")}),o.jsx(zn,{value:"offline_payment",description:t("adminUsers.grantKindOfflineHint"),textClassName:"whitespace-normal break-words",descriptionClassName:"whitespace-normal break-words",children:t("adminUsers.grantKindOffline")})]})]})]}),p?o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.referenceNo"),o.jsx(ge,{value:d,onChange:x=>m(x.target.value),placeholder:t("adminUsers.referenceNoPlaceholder")})]}):null]}),o.jsxs("div",{className:"grid gap-2 sm:grid-cols-[120px_1fr_auto] sm:items-end",children:[o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.amountUsd"),o.jsx(ge,{value:s,onChange:x=>r(x.target.value),placeholder:t("adminUsers.amountPlaceholder"),inputMode:"decimal"})]}),o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.reason"),o.jsx(ge,{value:i,onChange:x=>c(x.target.value),placeholder:t("adminUsers.reasonPlaceholder")})]}),o.jsx(K,{type:"button",size:"sm",className:"w-full sm:w-auto","aria-label":t(p?"adminUsers.recordPayment":"adminUsers.grantCredit"),onClick:$,disabled:!v||f.isPending,children:f.isPending?t(p?"adminUsers.recording":"adminUsers.granting"):t(p?"adminUsers.recordPayment":"adminUsers.grant")})]}),f.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:f.error.message}):null]})}function KUs({user:e}){const{t}=W(),n=QIs(),a=async(s,r)=>{!r||r===e[s]||!await zt({message:t("adminUsers.setStatusConfirm",{email:e.email,status:r}),variant:"destructive"})||n.mutate({publicId:e.publicId,[s]:r})};return o.jsxs("div",{className:"grid min-w-0 gap-3 sm:grid-cols-2",children:[o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.status"),e.status==="deleted"?o.jsx(Oe,{value:"deleted"}):o.jsxs(Ms,{value:e.status,disabled:n.isPending,onValueChange:s=>a("status",s),children:[o.jsx(as,{className:"h-9 min-w-0",children:o.jsx(Es,{})}),o.jsx(os,{className:"max-w-[calc(100vw-1rem)]",children:bhs.map(s=>o.jsx(zn,{value:s.value,description:t(`adminUsers.statusEffect.${s.value}
972`),textClassName:"whitespace-normal break-words",descriptionClassName:"whitespace-normal break-words",children:t(`optionLabels.${s.value}`,{defaultValue:s.label})},s.value))})]})]}),o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.risk"),o.jsxs(Ms,{value:e.riskStatus,disabled:n.isPending,onValueChange:s=>a("riskStatus",s),children:[o.jsx(as,{className:"h-9 min-w-0",children:o.jsx(Es,{})}),o.jsx(os,{className:"max-w-[calc(100vw-1rem)]",children:xhs.map(s=>o.jsx(zn,{value:s.value,description:t(`adminUsers.riskEffect.${s.value}`),textClassName:"whitespace-normal break-words",descriptionClassName:"whitespace-normal break-words",children:t(`optionLabels.${s.value}`,{defaultValue:s.label})},s.value))})]})]})]})}function GUs({user:e}){const{t}=W(),n=XIs(),[a,s]=h.useState(""),r=zV,i=e.signupSource,c=i&&r.includes(i)?i:i?"__current__":"",d=m=>n.mutate({publicId:e.publicId,source:m});return o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsxs(ft,{className:"h-9 w-44",value:c,disabled:n.isPending,onChange:m=>{const f=m.target.value;f!=="__current__"&&d(f===""?null:f)},children:[o.jsx("option",{value:"",children:t("adminUsers.sourceDirect")}),i&&!r.includes(i)?o.jsx("option",{value:"__current__",children:i}):null,r.map(m=>o.jsx("option",{value:m,children:ct(m)},m))]}),o.jsx(ge,{className:"h-9 w-40",value:a,placeholder:t("adminUsers.sourceCustomPlaceholder"),onChange:m=>s(m.target.value)}),o.jsx(K,{size:"sm",variant:"secondary",disabled:n.isPending||!a.trim(),onClick:()=>{d(a.trim()),s("")},children:t("adminUsers.sourceSet")})]})}function WUs({user:e}){const{t}=W(),n=ZIs(),[a,s]=h.useState(e.adminNote??""),r=a.trim(),i=r!==(e.adminNote??""),c=async()=>{if(i)try{await n.mutateAsync({publicId:e.publicId,note:r===""?null:r}),ie.success(t("adminUsers.noteSaved"))}catch(d){ie.error(d instanceof rn?`${d.code}: ${d.message}`:String(d))}};return o.jsxs("div",{className:"grid gap-2",children:[o.jsx(_o,{value:a,onChange:d=>s(d.target.value),placeholder:t("adminUsers.notePlaceholder"),disabled:n.isPending,rows:2}),o.jsx(K,{size:"sm",variant:"secondary",className:"justify-self-start",disabled:n.isPending||!i,onClick:c,children:t("adminUsers.noteSave")})]})}function YUs({user:e,canWrite:t}){const{t:n}=W(),a=Object.entries(e.utm??{}).filter(([,s])=>s!=null&&s!=="");return o.jsxs(o.Fragment,{children:[o.jsx(vo,{label:n("adminUsers.acquisitionSource"),value:t?o.jsxs("div",{className:"grid gap-1",children:[o.jsx(GUs,{user:e}),e.capturedSource&&e.capturedSource!==e.signupSource?o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:n("adminUsers.sourceCaptured",{source:e.capturedSource})}):null]}):e.signupSource?o.jsx(Oe,{value:e.signupSource,label:ct(e.signupSource)}):n("adminUsers.sourceDirect")}),a.length?o.jsx(vo,{label:n("adminUsers.utm"),value:o.jsx("span",{className:"font-mono text-xs break-all",children:a.map(([s,r])=>`${s}=${String(r)}`).join(" · ")})}):null,e.referrer?o.jsx(vo,{label:n("adminUsers.referrer"),value:o.jsxs("span",{children:[e.referrer.email," ",o.jsx("span",{className:"font-mono text-xs text-[color:var(--muted-foreground)]",children:e.referrer.publicId})]})}):null]})}function QUs({user:e}){const{t}=W(),n=KZ(),a=FIs(),s=n.data?.items??[],r=e.rateLimitPolicyCode,i=s.some(d=>d.code===r)||!r?s:[{code:r,name:r},...s],c=async d=>{if(!(!d||d===r))try{await a.mutateAsync({publicId:e.publicId,code:d}),ie.success(t("adminUsers.rateLimitPolicyChanged"))}catch(m){ie.error(m instanceof rn?`${m.code}: ${m.message}`:String(m))}};return o.jsxs("label",{className:"grid min-w-0 gap-1 text-xs text-[color:var(--muted-foreground)]",children:[t("adminUsers.rateLimitPolicy"),o.jsx(ft,{className:"h-9 min-w-0",menuClassName:"max-w-[calc(100vw-1rem)]",value:r,disabled:a.isPending||n.isLoading,onChange:d=>c(d.target.value),children:i.map(d=>o.jsxs("option",{value:d.code,children:[d.name," (",d.code,")"]},d.code))})]})}function XUs(e){return e.toUpperCase().split("").map(t=>String.fromCodePoint(127462+t.charCodeAt(0)-65)).join("")}const ZUs={CN:"ä¸å½",US:"ç¾å½",JP:"æ¥æ¬",KR:"é©å½",SG:"æ°å å¡",HK:"馿¸¯",TW:"å°æ¹¾",GB:"è±å½",DE:"å¾·å½",FR:"æ³å½",CA:"å æ¿å¤§",AU:"澳大å©äº",IN:"å°åº¦",BR:"巴西",RU:"ä¿ç½æ¯",NL:"è·å
°",SE:"çå
¸",CH:"ç士",MX:"墨西
972å¥",IT:"æå¤§å©",ES:"西çç",PL:"æ³¢å
°",CZ:"æ·å
",TH:"æ³°å½",MY:"马æ¥è¥¿äº",ID:"å°åº¦å°¼è¥¿äº",PH:"è²å¾å®¾",VN:"è¶å",UA:"ä¹å
å
°",TR:"åè³å
¶",PK:"å·´åºæ¯å¦",NG:"å°¼æ¥å©äº",EG:"åå",AR:"é¿æ ¹å»·",ZA:"åé"};function JUs(e){if(!e)return"â";const t=XUs(e),n=ZUs[e.toUpperCase()]??e.toUpperCase();return`${t} ${n}`}function eBs(e){if(!e)return{browser:"â",os:"â",device:"â"};let t="Unknown";/Edg\//.test(e)?t="Edge":/OPR\/|Opera/.test(e)?t="Opera":/Chrome\//.test(e)?t="Chrome":/Firefox\//.test(e)?t="Firefox":/Safari\//.test(e)&&!/Chrome/.test(e)&&(t="Safari");let n="Unknown";/Windows NT/.test(e)?n="Windows":/Mac OS X/.test(e)&&!/iPhone|iPad/.test(e)?n="macOS":/iPhone/.test(e)?n="iOS (iPhone)":/iPad/.test(e)?n="iOS (iPad)":/Android/.test(e)?n="Android":/Linux/.test(e)&&(n="Linux");let a="Desktop";return/Mobile|iPhone|Android.*Mobile/.test(e)?a="Mobile":/iPad|Tablet|Android(?!.*Mobile)/.test(e)&&(a="Tablet"),{browser:t,os:n,device:a}}function Gb({value:e}){return o.jsx(py,{value:e,className:"size-6",iconClassName:"size-3.5"})}function R8({accounts:e}){return o.jsx("ul",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-1.5",children:e.map(t=>o.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-sm",children:[o.jsxs(Ta,{to:Bh(t.publicId),className:"text-[color:var(--foreground)] hover:underline",children:[t.email,o.jsx("span",{className:"ml-1 font-mono text-xs text-[color:var(--muted-foreground)]",children:t.publicId})]}),o.jsx(Oe,{value:t.riskStatus})]},t.publicId))})}function tBs({user:e}){const{t}=W(),n=eBs(e.signupUserAgent),a=e.lastLoginIp!=null&&e.lastLoginIp!==e.signupIp;return o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-5",children:[o.jsxs(Ee,{className:"p-4",children:[o.jsx("p",{className:"mb-3 text-xs font-semibold text-[color:var(--muted-foreground)] uppercase tracking-wide",children:t("adminUserDetail.network.ipLocationTitle")}),o.jsxs("div",{className:"divide-y divide-[color:var(--border)]",children:[o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.signupIp")}),o.jsxs("span",{className:"flex flex-wrap items-center gap-1 break-all",children:[e.signupIp??"â",e.signupIp?o.jsxs(o.Fragment,{children:[o.jsx(Gb,{value:e.signupIp}),o.jsx("a",{href:`https://ipinfo.io/${e.signupIp}`,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-[color:var(--muted-foreground)] hover:text-[color:var(--foreground)] underline",title:t("adminUserDetail.network.viewOnIpinfo"),children:"â"})]}):null]})]}),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.signupCountry")}),o.jsx("span",{children:JUs(e.signupCountry)})]}),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.lastLoginIp")}),o.jsxs("span",{className:`flex flex-wrap items-center gap-1 break-all${a?" text-[color:var(--warning)]":""}`,children:[e.lastLoginIp??"â",e.lastLoginIp?o.jsx(Gb,{value:e.lastLoginIp}):null,a?o.jsx("span",{className:"text-xs",children:t("adminUserDetail.network.ipDifferent")}):null]})]})]})]}),e.sameDeviceAccounts&&e.sameDeviceAccounts.length>0?o.jsxs(Ee,{className:"border-[color:var(--warning-border)] bg-[color:var(--warning-surface)] p-4",children:[o.jsxs("p",{className:"mb-3 text-sm font-semibold text-[color:var(--warning)]",children:["â ",t("adminUserDetail.network.sameDeviceAccounts",{count:e.sameDeviceTotal})]}),o.jsx(R8,{accounts:e.sameDeviceAccounts})]}):null,e.sameIpAccounts&&e.sameIpAccounts.length>0?o.jsxs(Ee,{className:"bg-[color:var(--warning-surface)] p-4",children:[o.jsxs("p",{className:"mb-2 text-xs font-semibold text-[color:var(--warning)]",children:["â ",t("adminUserDetail.network.sameIpAccounts",{count:e.sameIpTotal})]}),o.jsx(R8,{accounts:e.sameIpAccounts})]}):null,o.jsxs(Ee,{className:"p-4",children:[o.jsx("p",{className:"mb-3 text-xs font-semibold text-[color:var(--muted-foreground)] uppercase tracking-wide",children:t("adminUserDetail.network.deviceBrowserTitle")}),o.jsx(Oc,{children:o.jsxs("div",{className:"divide-y divide-[color:var(--border)]",children:[[{label:t("adminUserDetail.network.browser"),value:n.browser},{label:t("adminUserDetail.network.os"),value:n.os},{label:t("adminUserDetail.network.deviceType"),value:n.device}].map(({label:s,value:r})=>
972o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm cursor-default",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:s}),o.jsx("span",{children:r})]})}),e.signupUserAgent?o.jsx(cs,{className:"max-w-xs break-all text-xs",side:"top",children:e.signupUserAgent}):null]},s)),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.acceptLanguage")}),o.jsx("span",{className:"break-all",children:e.signupAcceptLanguage??"â"})]}),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.deviceFingerprint")}),e.deviceFingerprint?o.jsxs("span",{className:"flex flex-wrap items-center gap-1",children:[o.jsx("span",{className:"font-mono text-xs break-all",children:e.deviceFingerprint}),o.jsx(Gb,{value:e.deviceFingerprint})]}):o.jsx("span",{children:"â"})]}),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.freeTierEligible")}),e.freeTierEligible?o.jsx("span",{children:t("adminUserDetail.network.firstDevice")}):o.jsx("span",{className:"text-[color:var(--warning)]",children:t("adminUserDetail.network.notFirstDevice")})]})]})})]}),e.stripeCustomerIdLive?o.jsxs(Ee,{className:"p-4",children:[o.jsx("p",{className:"mb-3 text-xs font-semibold text-[color:var(--muted-foreground)] uppercase tracking-wide",children:t("adminUserDetail.network.stripeTitle")}),o.jsxs("div",{className:"grid grid-cols-[140px_1fr] gap-2 py-1.5 text-sm",children:[o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:t("adminUserDetail.network.stripeCustomerId")}),o.jsxs("span",{className:"flex flex-wrap items-center gap-1",children:[o.jsx("span",{className:"font-mono text-xs",children:e.stripeCustomerIdLive}),o.jsx(Gb,{value:e.stripeCustomerIdLive})]})]})]}):null]})}function MJ(e){return e==null?"â":e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}function EJ({row:e}){return e.status==="success"?o.jsx("span",{className:"font-medium text-[color:var(--success)]",children:"â"}):e.status==="failed"?o.jsxs("span",{className:"font-medium text-[color:var(--destructive)]",children:["â",e.errorCode?o.jsx("span",{className:"ml-1 font-mono text-xs",children:e.errorCode}):null]}):o.jsx("span",{className:"inline-flex items-center text-[color:var(--muted-foreground)]",title:e.status,children:o.jsx(obe,{className:"size-3.5"})})}function IJ({row:e,number:t}){const n=Number(e.freeDiscountUsd??0);return n>0?o.jsx("span",{className:"text-[color:var(--success)]",children:`-$${n.toFixed(4)} · ${t(e.freeTokensConsumed)}`}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}function nBs({row:e,onOpen:t}){const{t:n}=W(),a=Te();return o.jsxs(Dn,{onClick:t,activation:"pointer",children:[o.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-2",children:[o.jsx("span",{className:"min-w-0 break-all text-sm font-medium",title:e.requestedModel,children:e.requestedModel}),o.jsxs("span",{className:"flex shrink-0 items-center gap-1.5 text-sm",children:[o.jsx(EJ,{row:e}),o.jsx(wu,{className:"size-4 text-[color:var(--muted-foreground)]","aria-hidden":"true"})]})]}),o.jsxs("div",{className:"mt-0.5 flex flex-wrap items-center gap-x-2 text-11 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{title:a.dateTime(e.startedAt),children:a.relativeTime(e.startedAt)}),o.jsx("span",{className:"font-mono",children:e.protocol})]}),o.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",children:[o.jsx(yT,{label:n("adminUserDetail.recentCalls.colDuration"),children:o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:MJ(e.durationMs)})}),o.jsx(yT,{label:n("adminUserDetail.recentCalls.colCost"),children:`$${Number(e.billedCost||0).toFixed(4)}`}
972),o.jsx(yT,{label:n("adminUserDetail.recentCalls.colFreeDiscount"),children:o.jsx(IJ,{row:e,number:a.number})})]})]})}function yT({label:e,children:t}){return o.jsxs("span",{className:"inline-flex items-baseline gap-1",children:[o.jsx("span",{className:"text-11 uppercase text-[color:var(--muted-foreground)]",children:e}),o.jsx("span",{className:"tabular-nums",children:t})]})}function aBs({userPublicId:e}){const{t}=W(),n=Te(),a=K0({userPublicId:e,limit:"20"}),[s,r]=h.useState(null),i=`${Be.adminUsage}?uid=${encodeURIComponent(e)}&tab=logs`,c=[{header:t("adminUserDetail.recentCalls.colStatus"),cell:d=>o.jsx(EJ,{row:d})},{header:t("adminUserDetail.recentCalls.colTime"),cell:d=>o.jsx("span",{className:"text-[color:var(--muted-foreground)]",title:n.dateTime(d.startedAt),children:n.relativeTime(d.startedAt)})},{header:t("adminUserDetail.recentCalls.colModel"),mobileValue:"wrap",cell:d=>o.jsx(Oc,{children:o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{className:"block max-w-[160px] cursor-default truncate",children:d.requestedModel.length>20?`${d.requestedModel.slice(0,20)}â¦`:d.requestedModel})}),o.jsx(cs,{side:"top",className:"text-xs",children:d.requestedModel})]})})},{header:t("adminUserDetail.recentCalls.colProtocol"),cell:d=>o.jsx("span",{className:"font-mono text-xs text-[color:var(--muted-foreground)]",children:d.protocol})},{header:t("adminUserDetail.recentCalls.colDuration"),align:"right",cell:d=>o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:MJ(d.durationMs)})},{header:t("adminUserDetail.recentCalls.colCost"),align:"right",cell:d=>`$${Number(d.billedCost||0).toFixed(4)}`},{header:t("adminUserDetail.recentCalls.colFreeDiscount"),align:"right",cell:d=>o.jsx(IJ,{row:d,number:n.number})}];return o.jsxs("div",{className:"grid gap-3",children:[o.jsx(Pt,{rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminUserDetail.recentCalls.empty"),columns:c,onRowClick:d=>r(d.publicId),mobileCard:d=>o.jsx(nBs,{row:d,onOpen:()=>r(d.publicId)})}),o.jsx(Ta,{to:i,className:"text-sm text-[color:var(--primary)] hover:underline",children:t("adminUserDetail.recentCalls.viewAll")}),o.jsx(jJ,{publicId:s,onClose:()=>r(null)})]})}function oBs({publicId:e}){const{t}=W(),n=Te(),a=hIs(e,{limit:"20"});return o.jsx(Pt,{rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminUserDetail.apiKeys.empty"),columns:[{header:t("adminUserDetail.apiKeys.colName"),mobileValue:"wrap",cell:s=>s.name},{header:t("adminUserDetail.apiKeys.colKey"),mobileValue:"break-all",cell:s=>o.jsxs("span",{className:"font-mono text-xs",children:[s.prefix,"â¦",s.suffix]})},{header:t("adminUserDetail.apiKeys.colStatus"),cell:s=>o.jsx(Oe,{value:s.status})},{header:t("adminUserDetail.apiKeys.colSpend"),align:"right",cell:s=>o.jsx(zUs,{spend:s.spend})},{header:t("adminUserDetail.apiKeys.colPolicy"),mobileValue:"break-all",cell:s=>s.rateLimitPolicyCode?o.jsx("span",{className:"font-mono text-xs",children:s.rateLimitPolicyCode}):"â"},{header:t("adminUserDetail.apiKeys.colLastUsed"),cell:s=>s.lastUsedAt?o.jsx("span",{title:n.dateTime(s.lastUsedAt),children:n.relativeTime(s.lastUsedAt)}):"â"},{header:t("adminUserDetail.apiKeys.colCreated"),cell:s=>o.jsx("span",{title:n.dateTime(s.createdAt),children:n.relativeTime(s.createdAt)})}]})}const Wb=["q","status","risk","source","method","page","size"],sBs=["","google","email","github"];function OJ(e){return e?e==="google"?{label:"Google",glyph:"G"}:e==="github"?{label:"GitHub",glyph:"GH"}:e==="email_otp"?{label:"Email OTP",glyph:"@"}:e==="magic_link"?{label:"Magic link",glyph:"ML"}:e==="email"?{label:"Email",glyph:"@"}:{label:ct(e),glyph:"?"}:null}function rBs(e){return e.toUpperCase().split("").map(t=>String.fromCodePoint(127462+t.charCodeAt(0)-65)).join("")}function LJ(e,t){if(!e)return null;const n=e.toUpperCase(),a=typeof Intl.DisplayNames=="function"?new Intl.DisplayNames([t],{type:"region"}).of(n):void 0;return{flag:rBs(n),name:a??n}}function WP({method:e}){const t=OJ(e);return t?o.jsxs("span",{className:"inline-flex items-center gap-1 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"inline-flex size-4 items-center justify-center rounded bg-[color:var(--muted)] text-2xs font-medium leading-none",children:t.glyph}),t.label]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}function iBs(){const{t:e}=W(),t=Te(),a=JIs().data??[];if(!a.length)return null;const s=Math.max(...a.map(r=>r.count),1);return o.jsxs(Ee,{className:"mb-4 grid gap-2 p-4",children:[o.jsx("span",{className:"text-sm font-medium",children:e("adminUsers.acquisitionTitle")}),o.jsx("div",{className:"grid gap-1.5",children:a.map(r=>o.jsxs("div",{className:"grid grid-cols-[minmax(72px,140px)_1fr_auto] items-center gap-2 text-13 sm:gap-3",children:[o.jsx("span",{children:r.source}),o.jsx("span",{className:"h-2 rounded-full bg-[color:var(--accent)]",style:{width:`${Math.round(r.count/s*100)}%`}}),o.jsx("span",{className:"tabular-nums text-[color:var(--muted-foreground)]",children:t.number(r.count)})]},r.source))})]})}function UJ({user:e}){const{t}=W(),n="-mx-2 inline-flex max-w-full truncate rounded px-2 py-1 font-medium",a=e.riskStatus==="blocked"?"bg-[color:var(--destructive)]":e.riskStatus==="watchlisted"?"bg-[color:var(--warning)]":null,s=a?t(`optionLabels.${e.riskStatus}`,{defaultValue:ct(e.riskStatus)}):null,r=e.status==="suspended"?o.jsx("span",{className:`${n} bg-[color:var(--destructive-bg)] text-[color:var(--destructive)]`,children:e.email}):e.status==="deleted"?o.jsx("span",{className:`${n} bg-[color:var(--muted)] text-[color:var(--muted-foreground)]`,children:e.email}):o.jsx("span",{className:"block max-w-full truncate font-medium",children:e.email});return!a||!s?r:o.jsxs("span",{className:"relative inline-flex max-w-full",children:[r,o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{className:`absolute -right-1.5 -top-1.5 size-2.5 rounded-full ring-2 ring-[color:var(--background)] ${a}`,"aria-label":`${t("adminUsers.risk")}: ${s}`})}),o.jsx(cs,{children:`${t("adminUsers.risk")}: ${s}`})]})]})}function lBs({note:e}){return e?o.jsxs(Ls,{children:[o.jsx(Us,{asChild:!0,children:o.jsx("span",{className:"block max-w-[180px] cursor-default truncate",children:e})}),o.jsx(cs,{side:"top",className:"max-w-xs whitespace-pre-wrap break-words text-xs",children:e})]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}function cBs({user:e,locale:t,onOpen:n}){const{t:a}=W(),s=LJ(e.signupCountry,t),r=e.lastLoginAt?Tc(e.lastLoginAt):a("adminUsers.never");return o.jsxs(Dn,{onClick:n,activation:"pointer",children:[o.jsx(kr,{title:o.jsx(UJ,{user:e}),meta:e.displayName||e.publicId,trailing:o.jsxs(Cr,{children:[o.jsx(AN,{role:e.adminRole,status:e.adminStatus}),o.jsx(K,{type:"button",variant:"ghost",size:"icon",onClick:n,"aria-label":a("adminUsers.view"),className:"size-8",children:o.jsx(wu,{className:"size-4"})})]})}),o.jsxs("div",{className:"mt-1.5 flex min-w-0 flex-wrap items-center gap-1.5",children:[o.jsx(Oe,{value:e.status}),o.jsx(Oe,{value:e.riskStatus}),o.jsx(WP,{method:e.signupMethod}),s?o.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1 text-xs text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"shrink-0",children:s.flag}),o.jsx("span",{className:"min-w-0 truncate",children:e.signupCity||s.name})]}):null]}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[o.jsx(Qe,{label:a("adminUsers.walletBalance"),children:rl(e.walletBalance,e.currency,t)}),o.jsx(Qe,{label:a("adminUsers.lastLogin"),align:"right",children:r})]})]})}function dBs(){const{t:e}=W(),t=Te(),n=No(),{params:a,patch:s,remove:r}=Mt(),i=h.useMemo(()=>({q:Pe(a,"q"),status:Pe(a,"status"),risk:Pe(a,"risk"),source:Pe(a,"source"),method:Pe(a,"method"),page:ln(a,"page",1),size:ln(a,"size",20)}),[a]),[c,d]=h.useState(i.q);h.useEffect(()=>{d(i.q)},[i.q]);const m=h.useRef(null),f=h.useCallback(k=>{d(k),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{s({q:k,page:void 0})},300)},[s]),p=h.useDeferredValue(i.q),y=BUs(p),v=mIs({...y.value?{q:y.value,mode:y.mode}:{},...i.status?{status:i.status}:{},...i.risk?{riskStatus:i.risk}:{},...i.source?{source:i.source}:{},...i.method?{signupMethod:i.method}:{},page:String(i.page),limit:String(i.size)}),$=k=>n(Bh(k.publicId)),x=h.useMemo(()=>sBs.map(k=>({value:k,label:k?OJ(k)?.label??ct(k):e("common.all")})),[e]),w=h.useMemo(()=>[{value:"",label:e("common.all")},{value:"direct",label:e("adminUsers.sourceDirect")},...zV.map(k=>({value:k,label:k}))],[e]),S=k=>o.jsx(cBs,{user:k,locale:t.locale,onOpen:()=>$(k)},k.publicId);return o.jsxs(Vt,{title:e("adminUsers.title"),description:e("adminUsers.description"),children:[o.jsx(iBs,{}),o.jsxs("div",{className:"mb-2 grid grid-cols-[minmax(0,1fr)_auto] gap-2 md:mb-4 md:grid-cols-[minmax(0,1fr)_160px_160px_160px_160px_auto] md:gap-3",children:[o.jsxs("label",{className:"min-w-0 md:grid md:gap-1.5 md:text-sm md:font-medium",children:[o.jsx("span",{className:"sr-only md:not-sr-only",children:e("adminUserDetail.search")}),o.jsx(ge,{value:c,onChange:k=>f(k.target.value),placeholder:e("adminUserDetail.searchPlaceholder"),"aria-label":e("adminUserDetail.search"),className:"h-10"})]}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminUsers.status"),value:i.status,options:MR,onChange:k=>s({status:k,page:void 0})})}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminUsers.risk"),value:i.risk,options:ER,onChange:k=>s({risk:k,page:void 0})})}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminUsers.acquisitionSource"),value:i.source,options:w,onChange:k=>s({source:k,page:void 0})})}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Ze,{label:e("adminUsers.signupMethod"),value:i.method,options:x,onChange:k=>s({method:k,page:void 0})})}),o.jsx(nn,{show:Zt(a,Wb),onReset:()=>r(Wb),className:"hidden self-end md:inline-flex",labelKey:"common.reset"}),o.jsxs(Gp,{iconOnly:!0,label:e("adminUsers.filters",{defaultValue:"Filters"}),active:Zt(a,["status","risk","source","method"]),className:"contents",panelClassName:"col-span-2 mt-1",children:[o.jsx(Ze,{label:e("adminUsers.status"),value:i.status,options:MR,onChange:k=>s({status:k,page:void 0})}),o.jsx(Ze,{label:e("adminUsers.risk"),value:i.risk,options:ER,onChange:k=>s({risk:k,page:void 0})}),o.jsx(Ze,{label:e("adminUsers.acquisitionSource"),value:i.source,options:w,onChange:k=>s({source:k,page:void 0})}),o.jsx(Ze,{label:e("adminUsers.signupMethod"),value:i.method,options:x,onChange:k=>s({method:k,page:void 0})}),o.jsx(nn,{show:Zt(a,Wb),onReset:()=>r(Wb),className:"justify-self-end",labelKey:"common.reset"})]})]}),o.jsx(Pt,{label:e("adminUsers.label"),rows:v.data?.items,isLoading:v.isLoading,error:v.error,emptyTitle:e("adminUsers.empty"),onRowClick:$,mobileCard:S,pagination:{total:v.data?.total??0,page:i.page,pageSize:i.size,pageSizeOptions:[10,20,50,100],onPageChange:k=>s({page:k===1?void 0:String(k)},{replace:!1}),onPageSizeChange:k=>s({size:k===20?void 0:String(k),page:void 0})},columns:[{header:e("adminUsers.email"),cell:k=>o.jsx(UJ,{user:k})},{header:e("adminUsers.note"),cell:k=>o.jsx(lBs,{note:k.adminNote})},{header:e("adminUsers.role"),cell:k=>o.jsx(AN,{role:k.adminRole,status:k.adminStatus})},{header:e("adminUsers.signupMethod"),cell:k=>o.jsx(WP,{method:k.signupMethod})},{header:e("adminUsers.lastLoginMethod"),cell:k=>o.jsx(WP,{method:k.lastLoginMethod})},{header:e("adminUsers.location"),cell:k=>{const T=LJ(k.signupCountry,t.locale);return T?o.jsxs("span",{className:"inline-flex items-center gap-1",children:[T.flag&&o.jsx("span",{children:T.flag}),o.jsxs("span",{className:"text-[color:var(--muted-foreground)]",children:[k.signupCity?`${k.signupCity} · `:"",T.name]})]}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})}},{header:e("adminUsers.preferredLocale"),cell:k=>k.preferredLocale?o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:k.preferredLocale}):o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:"â"})},{header:e("adminUsers.recharged"),align:"right",cell:k=>o.jsx("span",{className:"tabular-nums",children:rl(k.walletTotalRecharged,k.currency,t.locale)})},{header:e("adminUsers.walletBalance"),align:"right",cell:k=>o.jsx("span",{className:"tabular-nums",children:rl(k.walletBalance,k.currency,t.locale)})},{header:e("adminUsers.joined"),cell:k=>o.jsx("span",{className:"tabular-nums",children:Tc(k.createdAt)})},{header:e("adminUsers.lastLogin"),cell:k=>k.lastLoginAt?o.jsx("span",{className:"tabular-nums",children:Tc(k.lastLoginAt)}):e("adminUsers.never")},{header:e("adminUsers.action"),align:"right",sticky:"right",cell:k=>o.jsx(K,{variant:"outline",size:"sm",onClick:()=>$(k),children:e("adminUsers.view")})}]})]})}const vT=["overview","network","recentCalls","apiKeys","payments","refunds","subscription","referrals","rewards","audit"],uBs=56;function mBs(e){const t=document.getElementById(e);if(!t)return;let n=t.parentElement;for(;n&&!/(auto|scroll)/.test(getComputedStyle(n).overflowY);)n=n.parentElement;if(!n)return;const a=n.scrollTop+t.getBoundingClientRect().top-n.getBoundingClientRect().top-uBs;n.scrollTo({top:Math.max(0,a),behavior:"smooth"})}function pBs(){const{t:e}=W(),[t,n]=h.useState(vT[0]);return h.useEffect(()=>{const a=new IntersectionObserver(s=>{const r=s.filter(c=>c.isIntersecting);if(r.length===0)return;const i=r.reduce((c,d)=>c.boundingClientRect.top<d.boundingClientRect.top?c:d);n(i.target.id)},{rootMargin:"-15% 0px -80% 0px"});for(const s of vT){const r=document.getElementById(s);r&&a.observe(r)}return()=>a.disconnect()},[]),o.jsx("nav",{className:"sticky top-0 z-10 max-w-full overflow-hidden border-b border-[color:var(--border)] bg-[color:var(--background)]/90 py-2 text-xs backdrop-blur sm:text-sm",children:o.jsx("div",{className:"flex max-w-full gap-1 overflow-x-auto overscroll-x-contain pb-1",children:vT.map(a=>o.jsx("a",{href:`#${a}`,"aria-current":t===a?"true":void 0,onClick:s=>{s.preventDefault(),n(a),mBs(a)},className:X("flex min-h-8 shrink-0 items-center whitespace-nowrap rounded px-2.5 py-1 transition-colors",t===a?"bg-[color:var(--muted)] font-medium text-[color:var(--foreground)]":"text-[color:var(--muted-foreground)] hover:bg-[color:var(--muted)] hover:text-[color:var(--foreground)]"),children:e(`adminUserDetail.nav.${a}`)},a))})})}function Br({id:e,title:t,action:n,children:a}){return o.jsxs("section",{id:e,className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-3",children:[o.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[o.jsx("h2",{className:"text-sm font-semibold",children:t}),n]}),a]})}function bg(){const{t:e}=W();return o.jsx(Ee,{className:"p-4 text-sm text-[color:var(--muted-foreground)]",children:e("adminUserDetail.noBlockPerm")})}function fBs({free:e}){const{t}=W(),n=Te();if(!e)return null;const a=e.allowances??[];return a.length===0&&!e.paused?null:o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-3",children:[o.jsx("h3",{className:"text-sm font-semibold",children:t("adminUserDetail.freeTokens.title")}),e.paused?o.jsx(Ee,{className:"p-4 text-sm text-[color:var(--muted-foreground)]",children:t("adminUserDetail.freeTokens.paused")}):null,a.length>0?o.jsx(Ee,{className:"divide-y divide-[color:var(--border)] p-4",children:a.map(s=>{const r=s.grantedTokens>0?Math.max(0,Math.min(100,s.consumedTokens/s.grantedTokens*100)):0;return o.jsxs("div",{className:"py-3 first:pt-0 last:pb-0",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx("span",{className:"text-sm font-medium",children:s.campaignName}),o.jsx("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:t(s.cadence==="weekly"?"adminUserDetail.freeTokens.weekly":"adminUserDetail.freeTokens.daily")})]}),o.jsxs("div",{className:"mt-2 flex items-baseline gap-2 tabular-nums",children:[o.jsx("span",{className:"text-sm font-semibold",children:n.number(s.consumedTokens)}),o.jsxs("span",{className:"text-xs text-[color:var(--muted-foreground)]",children:["/ ",n.number(s.grantedTokens)," ",t("adminUserDetail.freeTokens.tokensUnit")]}),o.jsx("span",{className:"ml-auto text-xs text-[color:var(--muted-foreground)]",children:t("adminUserDetail.freeTokens.remaining",
972{value:n.number(s.remainingTokens)})})]}),o.jsx(iy,{value:r,className:"mt-2",indicatorClassName:r>=90?"bg-[color:var(--warning)]":void 0}),s.models.length>0?o.jsx("p",{className:"mt-2 break-all text-xs text-[color:var(--muted-foreground)]",children:s.models.join(" · ")}):null]},s.campaignPublicId)})}):null]})}function gBs({user:e,canWriteUser:t,canGrant:n}){const{t:a}=W(),s=Te(),i=K0({userPublicId:e.publicId}).data?.summary,c=t||n;return o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-6",children:[o.jsxs(Ee,{className:"grid gap-4 p-4 sm:grid-cols-2 lg:grid-cols-3",children:[o.jsx(Kr,{label:a("adminUsers.walletBalance"),value:e.wallet?.totalCredit!=null?Number(e.wallet.totalCredit):null,format:d=>s.currency(d,e.wallet?.currency??"USD")}),o.jsx(Kr,{label:a("adminUsers.recharged"),value:e.wallet?.totalRecharged!=null?Number(e.wallet.totalRecharged):null,format:d=>s.currency(d,e.wallet?.currency??"USD"),color:"blue"}),o.jsx(Kr,{label:a("adminUsers.bonusGranted"),value:e.wallet?.totalGranted!=null?Number(e.wallet.totalGranted):null,format:d=>s.currency(d,e.wallet?.currency??"USD"),color:"purple"}),o.jsx(Kr,{label:a("adminUsers.consumed"),value:e.wallet?.totalConsumed!=null?Number(e.wallet.totalConsumed):null,format:d=>s.currency(d,e.wallet?.currency??"USD")}),o.jsx(Kr,{label:a("adminUsers.refunded"),value:e.wallet?.totalRefunded!=null?Number(e.wallet.totalRefunded):null,format:d=>s.currency(d,e.wallet?.currency??"USD"),color:"orange"}),o.jsx(Kr,{label:a("adminUsers.requests"),value:i?.requestCount??null,format:d=>s.number(Math.round(d))})]}),o.jsxs(Ee,{className:"grid gap-2 p-4",children:[o.jsx("span",{className:"text-sm font-medium",children:a("adminUsers.note")}),t?o.jsx(WUs,{user:e}):e.adminNote?o.jsx("p",{className:"whitespace-pre-wrap break-words text-sm",children:e.adminNote}):o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:a("adminUsers.noteEmpty")})]}),o.jsx(fBs,{free:e.freeTokens}),c?o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-4",children:[o.jsx("h3",{className:"text-sm font-semibold",children:a("adminUsers.actionsSection")}),t?o.jsx(KUs,{user:e}):null,t?o.jsx(QUs,{user:e}):null,n?o.jsx(VUs,{user:e}):null]}):null,o.jsxs("div",{className:"divide-y divide-[color:var(--border)]",children:[o.jsx(vo,{label:a("adminUsers.role"),value:o.jsx(AN,{role:e.adminRole,status:e.adminStatus})}),o.jsx(vo,{label:a("adminUsers.risk"),value:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Oe,{value:e.riskStatus}),o.jsx("span",{className:"text-[color:var(--muted-foreground)]",children:a("adminUsers.score",{score:e.signupRiskScore??0})})]})}),o.jsx(vo,{label:a("adminUsers.emailVerified"),value:e.emailVerified?a("adminUsers.yes"):a("adminUsers.no")}),o.jsx(vo,{label:a("adminUsers.signupMethod"),value:qUs([ct(e.signupMethod),e.signupCountry])}),o.jsx(YUs,{user:e,canWrite:t}),o.jsx(vo,{label:a("adminUsers.signupBonus"),value:o.jsx(Oe,{value:e.signupBonusStatus,label:ct(e.signupBonusStatus)})}),o.jsx(vo,{label:a("adminUsers.onboarding"),value:o.jsx(Oe,{value:e.onboardingState,label:ct(e.onboardingState)})}),o.jsx(vo,{label:a("adminUsers.localeTz"),value:`${e.preferredLocale} · ${e.timezone}`}),o.jsx(vo,{label:a("adminUsers.lastLogin"),value:e.lastLoginAt?Tc(e.lastLoginAt):a("adminUsers.never")}),o.jsx(vo,{label:a("adminUsers.lastLoginMethod"),value:ct(e.lastLoginMethod)}),o.jsx(vo,{label:a("adminUsers.joined"),value:Tc(e.createdAt)}),o.jsx(vo,{label:"ID",value:o.jsx("span",{className:"font-mono text-xs",children:e.publicId})})]})]})}function hBs({payment:e,userEmail:t}){const{t:n}=W(),[a,s]=h.useState(!1);return o.jsxs(o.Fragment,{children:[o.jsx(K,{variant:"outline",size:"sm",onClick:()=>s(!0),children:n("adminUserDetail.refund")}),o.jsx(XZ,{payment:e,open:a,onOpenChange:s,userEmail:t})]})}function yBs({publicId:e,userEmail:t,canRefund:n}){const{t:a}=W(),s=Te(),r=HZ({userPublicId:e,limit:"20"});return o.jsx(Pt,{rows:r.data?.items,isLoading:r.isLoading,error:r.error,emptyTitle:a("adminUserDetail.payments.empty"),columns:[{header:a("adminUserDetail.col.amount"),align:"right",cell:i=>o.jsx("span",{className:"tabular-nums",children:rl(i.amount,i.currency,s.locale)})},{header:a("adminUserDetail.col.credit"),align:"right",cell:i=>o.jsx("span",{className:"tabular-nums",children:rl(i.creditAmount,i.currency,s.locale)})},{header:a("adminUserDetail.col.status"),cell:i=>o.jsx(Oe,{value:i.status})},{header:a("adminUserDetail.col.provider"),cell:i=>i.provider,mobileValue:"wrap"},{header:a("adminUserDetail.col.createdAt"),cell:i=>o.jsx("span",{title:s.dateTime(i.createdAt),children:s.relativeTime(i.createdAt)})},...n?[{header:a("adminUserDetail.col.action"),align:"right",sticky:"right",cell:i=>i.status==="paid"?o.jsx(hBs,{payment:i,userEmail:t}):null}]:[]]})}function vBs({publicId:e}){const{t}=W(),n=Te(),a=VZ({userPublicId:e,limit:"20"});return o.jsx(Pt,{rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminUserDetail.refunds.empty"),columns:[{header:t("adminUserDetail.col.amount"),align:"right",cell:s=>o.jsx("span",{className:"tabular-nums",children:rl(s.amount,s.currency,n.locale)})},{header:t("adminUserDetail.col.type"),cell:s=>o.jsx(Oe,{value:s.type,label:ct(s.type)})},{header:t("adminUserDetail.col.status"),cell:s=>o.jsx(Oe,{value:s.status})},{header:t("adminUserDetail.col.originalTx"),mobileValue:"break-all",cell:s=>s.originalTxPublicId?o.jsx("span",{className:"font-mono text-xs",children:s.originalTxPublicId}):"â"},{header:t("adminUserDetail.col.createdAt"),cell:s=>o.jsx("span",{title:n.dateTime(s.createdAt),children:n.relativeTime(s.createdAt)})}]})}function bBs({publicId:e}){const{t}=W(),n=Te(),a=gIs(e,{limit:"20"});return o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-xs text-[color:var(--muted-foreground)]",children:t("adminUserDetail.rewards.note")}),o.jsx(Pt,{rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminUserDetail.rewards.empty"),columns:[{header:t("adminUserDetail.col.type"),cell:s=>o.jsx(Oe,{value:s.type,label:ct(s.type)})},{header:t("adminUserDetail.col.remaining"),align:"right",cell:s=>o.jsx("span",{className:"tabular-nums",children:rl(s.remaining,"USD",n.locale)})},{header:t("adminUserDetail.col.initial"),align:"right",cell:s=>o.jsx("span",{className:"tabular-nums",children:rl(s.initialAmount,"USD",n.locale)})},{header:t("adminUserDetail.col.status"),cell:s=>o.jsx(Oe,{value:s.status})},{header:t("adminUserDetail.col.expiresAt"),cell:s=>s.expiresAt?n.dateTime(s.expiresAt):"â"},{header:t("adminUserDetail.col.createdAt"),cell:s=>o.jsx("span",{title:n.dateTime(s.createdAt),children:n.relativeTime(s.createdAt)})}]})]})}function xBs({publicId:e}){const{t}=W(),n=Te(),a=F3s(e),s=z3s(e),r=a.data;return o.jsxs("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)] gap-3",children:[o.jsxs(Ee,{className:"grid gap-4 p-4 sm:grid-cols-2 lg:grid-cols-4",children:[o.jsx(Kr,{label:t("adminUserDetail.referrals.totalEarned"),value:r?Number(r.totalEarned):null,format:i=>n.currency(i,"USD")}),o.jsx(Kr,{label:t("adminUserDetail.referrals.frozenEarned"),value:r?Number(r.frozenEarned):null,format:i=>n.currency(i,"USD")}),o.jsx(Kr,{label:t("adminUserDetail.referrals.refereeCount"),value:r?r.refereeCount:null,format:i=>n.number(Math.round(i))}),o.jsx(Kr,{label:t("adminUserDetail.referrals.activeCount"),value:r?r.activeCount:null,format:i=>n.number(Math.round(i))})]}),o.jsx(Pt,{rows:s.data?.items,isLoading:s.isLoading,error:s.error,emptyTitle:t("adminUserDetail.referrals.empty"),columns:[{header:t("adminUserDetail.col.event"),cell:i=>ct(i.eventType)},{header:t("adminUserDetail.referrals.role"),cell:i=>ct(i.recipientRole)},{header:t("adminUserDetail.referrals.counterparty"),mobileValue:"break-all",cell:i=>o.jsx(Vd,{email:i.counterpartyEmail,publicId:i.counterpartyPublicId})},{header:t("adminUserDetail.col.amount"),align:"right",cell:i=>o.jsx("span",{className:"tabular-nums",children:i.grantAmount?rl(i.grantAmount,"USD",n.locale):"â"})},{header:t("adminUserDetail.col.status"),cell:i=>o.jsx(Oe,{value:i.status})},{header:t("adminUserDetail.col.createdAt"),cell:i=>o.jsx("span",{title:n.dateTime(i.createdAt),children:n.relativeTime(i.createdAt)})}]})]})}function $Bs({publicId:e}){const{t}=W(),n=Te(),a=WZ({targetPublicId:e,limit:"20"});return o.jsx(Pt,{rows:a.data?.items,isLoading:a.isLoading,error:a.error,emptyTitle:t("adminUserDetail.audit.empty"),columns:[{header:t("adminUserDetail.col.action"),mobileValue:"break-all",cell:s=>o.jsx("span",{className:"font-mono text-xs",children:s.action})},{header:t("adminUserDetail.col.severity"),cell:s=>o.jsx(Oe,{value:s.severity})},{header:t("adminUserDetail.col.createdAt"),cell:s=>o.jsx("span",{title:n.dateTime(s.createdAt),children:n.relativeTime(s.createdAt)})}]})}function wBs(){const{t:e}=W(),{publicId:t}=o_(),n=qa(),a=pIs(t??null),s=a.data,r=Go(n.data?.admin,"ops.users.write"),i=Go(n.data?.admin,"ops.growth.write"),c=Go(n.data?.admin,"ops.billing.read"),d=Go(n.data?.admin,"ops.billing.write"),m=Go(n.data?.admin,"ops.audit.read");return o.jsx(Vt,{title:s?.email??e("adminUserDetail.title"),description:s?.displayName??t??"",action:o.jsxs(Ta,{to:Be.adminUsers,className:ur({variant:"outline",size:"sm"}),children:[o.jsx(Iw,{className:"size-3.5"}),e("adminUserDetail.backToList")]}),children:a.isLoading?o.jsx("p",{className:"text-sm text-[color:var(--muted-foreground)]",children:e("adminUsers.loading")}):a.error?o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:a.error.message}):s&&t?o.jsxs("div",{className:"grid gap-8",children:[o.jsx(pBs,{}),o.jsx(Br,{id:"overview",title:e("adminUserDetail.nav.overview"),children:o.jsx(gBs,{user:s,canWriteUser:r,canGrant:i})}),o.jsx(Br,{id:"network",title:e("adminUserDetail.nav.network"),children:o.jsx(tBs,{user:s})}),o.jsx(Br,{id:"recentCalls",title:e("adminUserDetail.nav.recentCalls"),children:o.jsx(aBs,{userPublicId:t})}),o.jsx(Br,{id:"apiKeys",title:e("adminUserDetail.nav.apiKeys"),children:c?o.jsx(oBs,{publicId:t}):o.jsx(bg,{})}),o.jsx(Br,{id:"payments",title:e("adminUserDetail.nav.payments"),children:c?o.jsx(yBs,{publicId:t,userEmail:s.email,canRefund:d}):o.jsx(bg,{})}),o.jsx(Br,{id:"refunds",title:e("adminUserDetail.nav.refunds"),children:c?o.jsx(vBs,{publicId:t}):o.jsx(bg,{})}),o.jsx(Br,{id:"subscription",title:e("adminUserDetail.nav.subscription"),children:o.jsx(Ee,{className:"p-4 text-sm text-[color:var(--muted-foreground)]",children:e("adminUserDetail.subscription.phase2")})}),o.jsx(Br,{id:"referrals",title:e("adminUserDetail.nav.referrals"),children:o.jsx(xBs,{publicId:t})}),o.jsx(Br,{id:"rewards",title:e("adminUserDetail.nav.rewards"),children:c?o.jsx(bBs,{publicId:t}):o.jsx(bg,{})}),o.jsx(Br,{id:"audit",title:e("adminUserDetail.nav.audit"),children:m?o.jsx($Bs,{publicId:t}):o.jsx(bg,{})})]}):o.jsx("p",{className:"text-sm text-[color:var(--destructive)]",children:e("adminUsers.empty")})})}const P8=["status","eventType","page"],BJ=[{value:"pending",label:"pending"},{value:"processing",label:"processing"},{value:"processed",label:"processed"},{value:"failed",label:"failed"},{value:"dead_letter",label:"dead_letter"},{value:"ignored",label:"ignored"}],kBs=[{value:"",label:"All statuses"},...BJ],CBs=[{value:"checkout.session.completed",label:"checkout.session.completed"},{value:"payment_intent.succeeded",label:"payment_intent.succeeded"},{value:"charge.refunded",label:"charge.refunded"},{value:"charge.dispute.created",label:"charge.dispute.created"}],SBs=[{value:"",label:"All event types"},...CBs];function ABs({row:e,onOpen:t,onRetry:n,retrying:a}){const{t:s}=W(),r=Te(),i=["failed","dead_letter","ignored"].includes(e.status);return o.jsxs(Dn,{onClick:t,activation:"pointer",className:"py-2",children:[o.jsx(kr,{title:o.jsx("button",{type:"button",onClick:t,className:"min-w-0 max-w-full truncate text-left font-[family-name:var
972(--font-mono)] text-xs hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ring)]",children:e.event_type}),meta:o.jsx("span",{className:"block max-w-full truncate font-[family-name:var(--font-mono)]",children:e.event_id}),trailing:o.jsxs(Cr,{children:[o.jsx(Oe,{value:e.status}),o.jsx(Xt,{variant:e.livemode?"success":"warning",className:"h-5 rounded-md px-1.5 text-11",children:e.livemode?"live":"test"}),i?o.jsx(K,{type:"button",variant:"secondary",size:"icon",onClick:n,disabled:a,"aria-label":s("adminWebhooks.retry"),className:"size-8",children:o.jsx(Kp,{className:"size-3.5"})}):null]})}),o.jsxs(Ha,{className:"grid-cols-[minmax(0,1fr)_auto]",children:[o.jsx(Qe,{label:s("adminWebhooks.receivedAt"),children:r.dateTime(e.received_at)}),o.jsx(Qe,{label:s("adminWebhooks.attempts"),align:"right",children:e.attempt_count}),e.last_error?o.jsx(Qe,{label:s("adminWebhooks.lastError"),className:"col-span-2",children:o.jsx("span",{className:"block max-w-full truncate text-[color:var(--destructive)]",children:e.last_error})}):null]})]})}function TBs(){const{t:e}=W(),t=Te(),[n,a]=h.useState(null),{params:s,patch:r,remove:i}=Mt(),c=h.useMemo(()=>({status:Pe(s,"status"),eventType:Pe(s,"eventType"),page:ln(s,"page",1)}),[s]),d=QZ({status:c.status||void 0,eventType:c.eventType||void 0,limit:100}),m=kOs(),f=Re(),p=wOs(n),y=S=>{m.mutate(S.public_id,{onSuccess:()=>{ie.success(e("adminWebhooks.retrySubmittedTitle"),{description:e("adminWebhooks.retrySubmittedBody",{event:S.event_id})}),f.invalidateQueries({queryKey:["ops","webhooks"]})},onError:k=>{ie.error(e("adminWebhooks.retryFailedTitle"),{description:k.message})}})},v=d.data?.statusCounts??[],$=Object.fromEntries(v.map(S=>[S.status,Number(S.count)])),x=d.data?.items??[],w=hN(x,{page:c.page,onPageChange:S=>r({page:S===1?void 0:String(S)},{replace:!1})});return o.jsxs(Vt,{title:e("adminWebhooks.title"),description:e("adminWebhooks.description"),children:[o.jsx("div",{className:"grid grid-cols-2 gap-2 sm:gap-3 md:grid-cols-3 xl:grid-cols-6",children:BJ.map(S=>o.jsxs(Ee,{className:"min-w-0 p-2.5 sm:p-3",children:[o.jsx("p",{className:"truncate text-2xs font-semibold uppercase text-[color:var(--muted-foreground)] sm:text-xs sm:tracking-wider",children:S.label}),o.jsx("p",{className:"mt-1 font-[family-name:var(--font-mono)] text-lg font-semibold tabular-nums sm:text-xl",children:o.jsx(Ho,{value:$[S.value]??0,format:k=>t.number(Math.round(k))})})]},S.value))}),o.jsxs("div",{className:"mb-3 mt-4 flex flex-col gap-3 sm:mt-6 sm:flex-row sm:items-end",children:[o.jsx(Ze,{label:e("adminWebhooks.statusFilter"),value:c.status,options:kBs,onChange:S=>r({status:S,page:void 0})}),o.jsx(Ze,{label:e("adminWebhooks.eventTypeFilter"),value:c.eventType,options:SBs,onChange:S=>r({eventType:S,page:void 0})}),o.jsx(nn,{show:Zt(s,P8),onReset:()=>i(P8)})]}),o.jsxs(Ee,{children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{"aria-label":e("adminWebhooks.title"),className:"min-w-[760px]",children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("adminWebhooks.receivedAt")}),o.jsx(Ie,{children:e("adminWebhooks.eventType")}),o.jsx(Ie,{children:e("adminWebhooks.status")}),o.jsx(Ie,{children:e("adminWebhooks.mode")}),o.jsx(Ie,{className:"text-right",children:e("adminWebhooks.attempts")}),o.jsx(Ie,{className:"text-right"})]})}),o.jsx(Ba,{children:w.pageRows.map(S=>o.jsxs(qt,{children:[o.jsx(Me,{children:t.dateTime(S.received_at)}),o.jsx(Me,{children:o.jsx("button",{onClick:()=>a(S.public_id),className:"font-[family-name:var(--font-mono)] text-xs hover:underline",children:S.event_type})}),o.jsxs(Me,{children:[o.jsx(Oe,{value:S.status}),S.last_error?o.jsx("span",{className:"ml-2 text-xs text-[color:var(--destructive)]",title:S.last_error,children:"â "}):null]}),o.jsx(Me,{children:o.jsx(Xt,{variant:S.livemode?"success":"warning",className:"rounded-full",children:S.livemode?"live":"test"})}),o.jsx(Me,{className:"text-right tabular-nums",children:S.attempt_count}),o.jsx(Me,{className:"text-right",children:["failed","dead_letter","ignored"].includes(S.status)?o.jsxs(K,{variant:"secondary",size:"sm",onClick:()=>y(S),disabled:m.isPending,children:[o.jsx(Kp,{className:"size-3.5"}),e("adminWebhooks.retry")]}):null})]},S.public_id))})]})}),o.jsx("div",{className:"grid min-w-0 max-w-full grid-cols-[minmax(0,1fr)] md:hidden",children:w.pageRows.map(S=>o.jsx(ABs,{row:S,onOpen:()=>a(S.public_id),onRetry:()=>y(S),retrying:m.isPending},S.public_id))}),x.length===0?o.jsxs("div",{className:"p-6 text-center text-sm text-[color:var(--muted-foreground)]",children:[e("adminWebhooks.empty"),o.jsx("br",{}),o.jsx("span",{className:"text-xs",children:e("adminWebhooks.emptyHint")})]}):o.jsx(V0,{total:w.total,page:w.page,pageSize:w.pageSize,onPageChange:w.onPageChange,onPageSizeChange:w.onPageSizeChange})]}),o.jsx(Vn,{open:!!n,onOpenChange:S=>!S&&a(null),children:o.jsxs(Nn,{className:"w-[calc(100vw-1rem)] min-w-0 overflow-y-auto sm:w-[480px]",children:[o.jsxs(Pa,{children:[o.jsx(Rn,{className:"break-words",children:p.data?.webhook.event_type??"..."}),o.jsx(ua,{className:"break-all",children:p.data?.webhook.event_id})]}),p.isLoading?o.jsx("p",{className:"mt-4 text-sm text-[color:var(--muted-foreground)]",children:e("adminWebhooks.detailLoa
972ding")}):p.data?o.jsxs("div",{className:"mt-4 space-y-3",children:[o.jsxs("dl",{className:"space-y-2 text-xs",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e("adminWebhooks.status")}),o.jsx("dd",{children:p.data.webhook.status})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e("adminWebhooks.mode")}),o.jsx("dd",{children:p.data.webhook.livemode?"live":"test"})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e("adminWebhooks.attempts")}),o.jsx("dd",{children:p.data.webhook.attempt_count})]}),p.data.webhook.last_error?o.jsxs("div",{children:[o.jsx("dt",{className:"text-[color:var(--muted-foreground)]",children:e("adminWebhooks.lastError")}),o.jsx("dd",{className:"mt-1 rounded-md bg-[color:var(--destructive)]/10 p-2 text-[color:var(--destructive)]",children:p.data.webhook.last_error})]}):null]}),o.jsxs("details",{className:"min-w-0",children:[o.jsx("summary",{className:"cursor-pointer text-sm font-medium",children:e("adminWebhooks.payload")}),o.jsx("pre",{className:"mt-2 max-h-96 min-w-0 overflow-auto whitespace-pre-wrap break-all rounded-md bg-[color:var(--muted)] p-3 text-xs",children:JSON.stringify(p.data.webhook.payload,null,2)})]})]}):null]})})]})}function RBs(){const{t:e}=W(),t=Te(),n=No(),{params:a,patch:s}=Mt(),r=Pe(a,"status"),i=Pe(a,"category"),c=Pe(a,"q"),d=h.useMemo(()=>{const p={};return r&&(p.status=r),i&&(p.category=i),c&&(p.q=c),p},[r,i,c]),m=Uxe(d),f=m.data?.pages.flatMap(p=>p.items)??[];return o.jsxs(Vt,{title:e("support.admin.title"),description:e("support.subtitle"),children:[o.jsxs("div",{className:"mb-3 grid min-w-0 grid-cols-1 gap-2 min-[360px]:grid-cols-2 sm:mb-4 sm:flex sm:flex-wrap",children:[o.jsx(ge,{className:"w-full min-[360px]:col-span-2 sm:w-64",placeholder:e("support.filters.search"),defaultValue:c,onChange:p=>s({q:p.target.value||void 0})}),o.jsx("div",{className:"min-w-0 sm:w-44",children:o.jsxs(Ms,{value:r||"all",onValueChange:p=>s({status:p==="all"?void 0:p}),children:[o.jsx(as,{children:o.jsx(Es,{placeholder:e("support.filters.allStatuses")})}),o.jsxs(os,{children:[o.jsx(zn,{value:"all",children:e("support.filters.allStatuses")}),$F.map(p=>o.jsx(zn,{value:p,children:e(`support.status.${p}`)},p))]})]})}),o.jsx("div",{className:"min-w-0 sm:w-44",children:o.jsxs(Ms,{value:i||"all",onValueChange:p=>s({category:p==="all"?void 0:p}),children:[o.jsx(as,{children:o.jsx(Es,{placeholder:e("support.filters.allCategories")})}),o.jsxs(os,{children:[o.jsx(zn,{value:"all",children:e("support.filters.allCategories")}),xF.map(p=>o.jsx(zn,{value:p,children:e(`support.category.${p}`)},p))]})]})})]}),m.isLoading?o.jsx("div",{className:"space-y-2",children:Array.from({length:6}).map((p,y)=>o.jsx(Rt,{className:"h-12 w-full"},y))}):f.length?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"hidden md:block",children:o.jsxs(Ua,{children:[o.jsx(Po,{children:o.jsxs(qt,{children:[o.jsx(Ie,{children:e("support.columns.subject")}),o.jsx(Ie,{children:e("support.columns.user")}),o.jsx(Ie,{children:e("support.columns.category")}),o.jsx(Ie,{children:e("support.columns.status")}),o.jsx(Ie,{children:e("support.columns.updated")})]})}),o.jsx(Ba,{children:f.map(p=>o.jsxs(qt,{className:"cursor-pointer",onClick:()=>n(YI(p.publicId)),children:[o.jsxs(Me,{className:X("flex items-center gap-2",p.unread&&"font-semibold"),children:[p.unread?o.jsx("span",{className:"size-2 rounded-full bg-[color:var(--primary)]"}):null,p.subject]}),o.jsx(Me,{className:"text-[color:var(--muted-foreground)]",children:p.userEmail}),o.jsx(Me,{children:o.jsx(Xt,{variant:"outline",children:e(`support.category.${p.category}`)})}),o.jsx(Me,{children:o.jsx(Pp,{status:p.status})}),o.jsx(Me,{className:"text-[color:var(--muted-foreground)]",children:p.lastMessageAt?t.relativeTime(p.lastMessageAt):t.relativeTime(p.createdAt)})]},p.publicId))})]})}),o.jsx("div",{className:"grid min-w-0 gap-2 md:hidden",children:f.map(p=>o.jsxs(jh,{className:"p-2 shadow-none",onClick:()=>n(YI(p.publicId)),children:[o.jsx(Nh,{title:o.jsxs("span",{className:X("flex min-w-0 items-start gap-2 text-13 leading-5",p.unread&&"font-semibold"),children:[p.unread?o.jsx("span",{className:"size-2 shrink-0 rounded-full bg-[color:var(--primary)]"}):null,o.jsx("span",{className:"line-clamp-2 min-w-0 overflow-hidden break-words [overflow-wrap:anywhere]",children:p.subject})]}),meta:o.jsxs("span",{className:"inline-flex min-w-0 max-w-full flex-wrap items-center gap-x-2 gap-y-1 text-11 leading-4",children:[o.jsx("span",{className:"shrink-0 tabular-nums",children:p.lastMessageAt?t.relativeTime(p.lastMessageAt):t.relativeTime(p.createdAt)}),o.jsx(Pp,{status:p.status})]})}),o.jsxs("div",{className:"mt-1.5 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-11 leading-4 text-[color:var(--muted-foreground)]",children:[o.jsx("span",{className:"min-w-0 break-all",children:p.userEmail}),o.jsx(Xt,{variant:"outline",className:"max-w-full px-1.5 py-0 text-11 leading-4",children:e(`support.category.${p.category}`)})]})]},p.publicId))})]}):o.jsx(Ot,{icon:o.jsx("span",{className:"text-3xl",children:"ð«"}),title:e("support.empty.title")}),m.hasNextPage?o.jsx("div",{className:"mt-4 flex justify-center",children:o.jsx(K,{variant:"outline",className:"w-full sm:w-auto",onClick:()=>m.fetchNextPage(),disabled:m.isFetchingNextPage,children:e("support.loadMore")})}):null]})}function PBs(){const{t:e}=W(),t=No(),{publicId:n=""}=o_(),a=Bxe(n),s=Fxe(n),r=zxe(n);async function i(m,f){try{await s.mutateAsync({body:m,attachments:f}),ie.success(e("support.toast.replied"))}catch{ie.error(e("support.toast.error"))}}async function c(m){try{await r.mutateAsync(m),ie.success(e("support.toast.statusUpdated"))}catch{ie.error(e("support.toast.error"))}}const d=a.data?.status;return o.jsx(Vt,{title:e("support.admin.title"),description:a.data?.publicId,action:o.jsxs("div",{className:"grid w-full min-w-0 grid-cols-2 gap-2 min-[360px]:grid-cols-[repeat(3,minmax(0,1fr))] sm:flex sm:w-auto
972sm:flex-wrap sm:items-center sm:justify-end",children:[d&&d!=="closed"?o.jsxs(o.Fragment,{children:[d!=="resolved"?o.jsx(K,{className:"min-w-0 px-2",variant:"outline",size:"sm",onClick:()=>void c("resolved"),children:o.jsx("span",{className:"min-w-0 truncate",children:e("support.admin.resolve")})}):null,o.jsx(K,{className:"min-w-0 px-2",variant:"outline",size:"sm",onClick:()=>void c("closed"),children:o.jsx("span",{className:"min-w-0 truncate",children:e("support.admin.close")})})]}):d==="closed"?o.jsx(K,{className:"min-w-0 px-2",variant:"outline",size:"sm",onClick:()=>void c("open"),children:o.jsx("span",{className:"min-w-0 truncate",children:e("support.admin.reopen")})}):null,o.jsxs(K,{className:"min-w-0 px-2",variant:"outline",size:"sm",onClick:()=>t(Be.adminSupport),children:[o.jsx(Iw,{className:"size-4"}),o.jsx("span",{className:"min-w-0 truncate",children:e("support.thread.back")})]})]}),children:a.isLoading?o.jsx("div",{className:"space-y-3",children:Array.from({length:3}).map((m,f)=>o.jsx(Rt,{className:"h-16 w-2/3"},f))}):a.data?o.jsxs("div",{className:"flex h-[calc(100dvh-11rem)] min-h-[420px] min-w-0 flex-col overflow-hidden md:h-[calc(100dvh-220px)] md:min-h-[420px]",children:[o.jsx("div",{className:"mb-3 min-w-0 rounded-md border border-[color:var(--border)] bg-[color:var(--card)] p-2.5 sm:p-3",children:o.jsxs("div",{className:"flex min-w-0 flex-wrap items-start justify-between gap-2",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("h2",{className:"break-words text-sm font-semibold leading-5 text-[color:var(--heading)] [overflow-wrap:anywhere]",children:a.data.subject}),o.jsx("p",{className:"mt-1 break-all text-xs text-[color:var(--muted-foreground)]",children:a.data.userEmail})]}),o.jsx("div",{className:"shrink-0",children:o.jsx(Pp,{status:a.data.status})})]})}),o.jsx("div",{className:"min-h-0 flex-1",children:o.jsx(zZ,{detail:a.data,scope:"admin",canReply:a.data.status!=="closed",onReply:i,sending:s.isPending})})]}):o.jsx(Ot,{icon:o.jsx("span",{className:"text-3xl",children:"ð"}),title:e("support.notFound")})})}function wa({children:e,requiredPermission:t,requiredRole:n}){const{t:a}=W(),s=qa(),r=s.error instanceof rn?s.error:null;return s.isPending||r?.status===ko.unauthorized?o.jsx("div",{role:"status",className:"text-sm text-[color:var(--muted-foreground)]",children:a("adminGate.loading")}):s.data?.admin?n&&s.data.admin.role!==n?o.jsx(Qt,{title:a("adminGate.permissionRequired"),description:a("adminGate.permissionDescription")}):t&&!Go(s.data.admin,t)?o.jsx(Qt,{title:a("adminGate.permissionRequired"),description:a("adminGate.permissionDescription")}):e??o.jsx(yF,{}):o.jsx(Gd,{to:Be.usage,replace:!0})}const _Bs=h.lazy(()=>rF(()=>import("./mermaid-GHXKKRXX-CGcEX0fW.js").then(e=>e.C),__vite__mapDeps([0,1])));function jBs(){return o.jsx("div",{className:"min-h-0 flex-1 bg-[color:var(--background)]","aria-busy":"true"})}function NBs(){return o.jsxs(Oc,{children:[o.jsx(Ffe,{}),o.jsx(_ye,{}),o.jsxs(Wae,{basename:mp,future:{v7_relativeSplatPath:!0,v7_startTransition:!0},children:[o.jsx(Iye,{}),o.jsx(DBs,{})]})]})}function DBs(){const e=ls(),n=e.state?.backgroundLocation;return o.jsxs(o.Fragment,{children:[o.jsxs(IT,{location:n??e,children:[o.jsx(dt,{path:"/",element:o.jsx(Gd,{to:Be.usage,replace:!0})}),o.jsx(dt,{path:Be.login,element:o.jsx(Ifs,{})}),o.jsxs(dt,{element:o.jsx(Yps,{}),children:[o.jsx(dt,{path:Be.chat,element:o.jsx(h.Suspense,{fallback:o.jsx(jBs,{}),children:o.jsx(_Bs,{})})}),o.jsx(dt,{path:Be.logs,element:o.jsx(Xys,{})}),o.jsx(dt,{path:Be.models,element:o.jsx(hvs,{})}),o.jsx(dt,{path:Be.usage,element:o.jsx(OMs,{})}),o.jsx(dt,{path:Be.apiKeys,element:o.jsx(Yhs,{})}),o.jsx(dt,{path:Be.billing,element:o.jsx(qEs,{})}),o.jsx(dt,{path:Be.referrals,element:o.jsx(QEs,{})}),o.jsx(dt,{path:Be.tasks,element:o.jsx(nIs,{})}),o.jsx(dt,{path:Be.support,element:o.jsx(oIs,{})}),o.jsx(dt,{path:Be.supportTicket,element:o.jsx(iIs,{})}),o.jsx(dt,{path:Be.settings,element:o.jsx(uIs,{})}),o.jsxs(dt,{element:o.jsx(wa,{}),children:[o.jsx(dt,{path:"/admin",element:o.jsx(MBs,{})}),o.jsx(dt,{path:"/admin/dashboard",element:o.jsx(wa,{requiredPermission:"ops.dashboard.read",children:o.jsx(VOs,{})})}),o.jsx(dt,{path:"/admin/users",element:o.jsx(wa,{requiredPermission:"ops.users.read",children:o.jsx(dBs,{})})}),o.jsx(dt,{path:"/admin/users/:publicId",element:o.jsx(wa,{requiredPermission:"ops.users.read",children:o.jsx(wBs,{})})}),o.jsx(dt,{path:"/admin/billing/*",element:o.jsx(wa,{requiredPermission:"ops.billing.read",children:o.jsx(MOs,{})})}),o.jsx(dt,{path:"/admin/usage",element:o.jsx(wa,{requiredPermission:"ops.usage.read",children:o.jsx(UUs,{})})}),o.jsx(dt,{path:"/admin/rate-limits",element:o.jsx(wa,{requiredPermission:"ops.rate_limit.read",children:o.jsx(w5s,{})})}),o.jsx(dt,{path:"/admin/access",element:o.jsx(wa,{requiredPermission:"ops.users.read",children:o.jsx(T5s,{})})}),o.jsx(dt,{path:"/admin/domain-rules",element:o.jsx(wa,{requiredPermission:"ops.users.read",children:o.jsx(j5s,{})})}),o.jsx(dt,{path:"/admin/staff",element:o.jsx(wa,{requiredRole:"owner",children:o.jsx(D5s,{})})}),o.jsx(dt,{path:"/admin/growth",element:o.jsx(wa,{requiredPermission:"ops.growth.write",children:o.jsx(i4s,{})})}),o.jsx(dt,{path:"/admin/campaigns",element:o.jsx(wa,{requiredPermission:"ops.campaigns.read",children:o.jsx(D4s,{})})}),o.jsx(dt,{path:"/admin/models",element:o.jsx(wa,{requiredPermission:"ops.models.read",children:o.jsx(m5s,{})})}),o.jsx(dt,{path:"/admin/announcements",element:o.jsx(wa,{requiredPermission:"ops.content.write",children:o.jsx(f3s,{})})}),o.jsx(dt,{path:"/admin/upstream/*",element:o.jsx(wa,{requiredPermission:"ops.sub2api.read",children:o.jsx(K5s,{})})}),o.jsx(dt,{path:"/admin/audit-logs",element:o.jsx(wa,{requiredPermission:"ops.audit.read",children:o.jsx(bOs,{})})}),o.jsx(dt,{path:"/admin/webhooks",element:o.jsx(wa,{requiredPermission:"ops.billing.read",children:o.jsx(TBs,{})})}),o.jsx(dt,{path:"/admin/support",element:o.jsx(RBs,{})}),o.jsx(dt,{path:"/admin/support/:publicId",element:o.jsx(PBs,{})})]})]}),o.jsx(dt,{path:"*",element:o.jsx(Gd,{to:Be.usage,replace:!0})})]}),n?o.jsx(IT,{children:o.jsx(dt,{path:Be.settings,element:o.jsx(dIs,{})})}):null]})}function MBs(){const e=qa(),t=I9(e.data?.admin)[0]?.href??Be.usage;return o.jsx(Gd,{to:t,replace:!0})}const EBs=["dynamically imported module","importing a module script failed","error loading dynamically imported module","failed to load module script"];function _8(e){if(!e)return!1;const t=e;if(t.name==="ChunkLoadError")return!0;const n=typeof t.message=="string"?t.message.toLowerCase():"";return EBs.some(a=>n.includes(a))}const j8="oh:lazy-reload";function IBs(e){try{return e.getItem(j8)?!1:(e.setItem(j8,"1"),!0)}catch{return!1}}class OBs extends h.Component{constructor(){super(...arguments);Bo(this,"state",{error:null,reloading:!1})}static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,a){if(_8(n)){IBs(window.sessionStorage)&&(this.setState({reloading:!0}),window.location.reload());return}console.error("[console] unhandled render error",n,a.componentStack)}render(){const{error:n,reloading:a}=this.state;return n?a?o.jsx("div",{className:"min-h-screen bg-[color:var(--background)]","aria-busy":"true"}):o.jsx(LBs,{chunk:_8(n)}):this.props.children}}function LBs({chunk:e}){return o.jsxs("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 bg-[color:var(--background)] px-6 text-center",children:[o.jsxs("div",{className:"space-y-1.5",children:[o.jsx("h1",{className:"text-base font-semibold text-[color:var(--foreground)]",children:e?"页é¢éè¦å·æ°":"页é¢åºéäº"}),o.jsx("p",{className:"max-w-sm text-sm text-[color:var(--muted-foreground)]",children:e?"æ£æµå°æ°çæ¬,å·æ°å³å¯æ¢å¤ã":"éå°äºä¸ä¸ªæ
972å¤é误,å·æ°é¡µé¢é常è½è§£å³ã"})]}),o.jsx(K,{onClick:()=>window.location.reload(),children:"å·æ°éè¯"})]})}const UBs=[ko.unauthorized,ko.forbidden,ko.notFound];function BBs(e,t){return!(e>=1||t instanceof rn&&UBs.includes(t.status))}function FBs(){return new Ene({defaultOptions:{queries:{staleTime:3e4,refetchOnWindowFocus:!0,retry:BBs},mutations:{retry:!1}}})}try{sessionStorage.removeItem("oh:chunk-reload")}catch{}fj();const zBs=FBs();H8.createRoot(document.getElementById("root")).render(o.jsx(h.StrictMode,{children:o.jsx(OBs,{children:o.jsx(Ine,{client:zBs,children:o.jsx(NBs,{})})})}));export{Cc as $,Hm as A,Xt as B,Be as C,$u as D,Bp as E,yu as F,uy as G,Fp as H,Aa as I,st as J,Ao as K,lh as L,ybe as M,Fbe as N,ft as O,X$ as P,Hbe as Q,Se as R,hp as S,Gbe as T,Vn as U,Nn as V,Pa as W,Rn as X,KBs as Y,Rt as Z,js as _,Cw as a,t6s as a$,tl as a0,ia as a1,K_ as a2,ge as a3,_o as a4,Ls as a5,cs as a6,Oc as a7,Us as a8,Sc as a9,tbs as aA,nbs as aB,Xw as aC,abs as aD,rbs as aE,ibs as aF,b2 as aG,n6s as aH,wY as aI,k2 as aJ,BV as aK,QBs as aL,UV as aM,LV as aN,il as aO,NL as aP,r6s as aQ,w$ as aR,RU as aS,FCs as aT,Cys as aU,o as aV,yG as aW,RY as aX,e6s as aY,vU as aZ,A$ as a_,VBs as aa,vxe as ab,Fh as ac,rF as ad,ZBs as ae,a6s as af,Ij as ag,o6s as ah,JBs as ai,v2 as aj,Bvs as ak,Fvs as al,WO as am,Eg as an,Lt as ao,X as ap,Th as aq,je as ar,Ye as as,on as at,mG as au,vw as av,so as aw,oo as ax,Ce as ay,ebs as az,z_ as b,bU as b0,obs as b1,sbs as b2,SY as b3,Yx as b4,y2 as b5,yK as b6,yp as b7,vK as b8,Hx as b9,ie as bA,vt as bB,qa as bC,YBs as bD,ts as bE,Jh as bF,Te as bG,$K as bH,ke as bI,No as bJ,xH as bK,Ue as bL,Re as bM,s_ as bN,rz as bO,yhs as bP,W as bQ,XBs as bR,Ej as bS,Hge as ba,li as bb,h as bc,sj as bd,PCs as be,Pd as bf,Wx as bg,Sr as bh,cbs as bi,lbs as bj,Qw as bk,RSs as bl,Ay as bm,qY as bn,g1s as bo,j2 as bp,P2 as bq,T$ as br,D2 as bs,h1s as bt,M0 as bu,Sp as bv,p1s as bw,f1s as bx,Sys as by,lse as bz,ry as c,ay as d,sy as e,Aw as f,Sw as g,oy as h,$G as i,K as j,nj as k,zc as l,v9 as m,gR as n,Cy as o,py as p,zp as q,xu as r,La as s,qp as t,S9 as u,Ta as v,f_ as w,Xo as x,Zgs as y,$be as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.