tokentracker-cli 0.49.3 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dashboard/dist/assets/{ActivityHeatmap-DByCSENs.js → ActivityHeatmap-x4ohgosH.js} +1 -1
  2. package/dashboard/dist/assets/{Card-B71GwGxO.js → Card-tlCRSq-e.js} +1 -1
  3. package/dashboard/dist/assets/{DashboardPage-BjOx4W82.js → DashboardPage-BlFLk2ee.js} +1 -1
  4. package/dashboard/dist/assets/{DevicePage-Cfj34qew.js → DevicePage-CIMvm9Vy.js} +1 -1
  5. package/dashboard/dist/assets/{DialogTitle-BdNBXNZX.js → DialogTitle-BI0HlgVk.js} +1 -1
  6. package/dashboard/dist/assets/{FadeIn-BuCfpXMc.js → FadeIn-SA17xTew.js} +1 -1
  7. package/dashboard/dist/assets/{HeaderGithubStar-DpZhDW9t.js → HeaderGithubStar-DBFhlCLz.js} +1 -1
  8. package/dashboard/dist/assets/{IpCheckPage-DJtvaczo.js → IpCheckPage-I9fj2-3q.js} +1 -1
  9. package/dashboard/dist/assets/{LandingPage-DVR_EDlv.js → LandingPage-m8NEfaOu.js} +1 -1
  10. package/dashboard/dist/assets/{LeaderboardAvatar-C6KucnuS.js → LeaderboardAvatar-Cd1fppi4.js} +1 -1
  11. package/dashboard/dist/assets/{LeaderboardPage-DKHvUmGb.js → LeaderboardPage-DvefmvLn.js} +3 -3
  12. package/dashboard/dist/assets/{LeaderboardProfileModal-sb4nmMCj.js → LeaderboardProfileModal-_di-rfgB.js} +1 -1
  13. package/dashboard/dist/assets/{LeaderboardProfilePage-BK-1QWfg.js → LeaderboardProfilePage-bmVuH12k.js} +1 -1
  14. package/dashboard/dist/assets/{LimitsPage-D7m20XVf.js → LimitsPage-CqGsi8ko.js} +1 -1
  15. package/dashboard/dist/assets/{LocalOnlyNotice-DZslFoj5.js → LocalOnlyNotice-DI_6H-8g.js} +1 -1
  16. package/dashboard/dist/assets/LoginPage-BctYGcS4.js +1 -0
  17. package/dashboard/dist/assets/{PopoverPopup-BjP_x_N0.js → PopoverPopup-DVVdIiBy.js} +1 -1
  18. package/dashboard/dist/assets/ResetPasswordPage-C8czjNkQ.js +1 -0
  19. package/dashboard/dist/assets/{Select-B5C3SgjS.js → Select-L2fWCCVd.js} +1 -1
  20. package/dashboard/dist/assets/{SelectItemText-XBZTRfTk.js → SelectItemText-BWr2sP70.js} +1 -1
  21. package/dashboard/dist/assets/{SettingsPage-C3pgKsph.js → SettingsPage-Cf5iyHdz.js} +1 -1
  22. package/dashboard/dist/assets/{SkillsPage-C884cEOL.js → SkillsPage-B7S4Dlug.js} +1 -1
  23. package/dashboard/dist/assets/{WidgetsPage-Wsg4rX9h.js → WidgetsPage-BpNdlHGe.js} +1 -1
  24. package/dashboard/dist/assets/{WrappedPage-BSWIQwdE.js → WrappedPage-FUt_dPFJ.js} +1 -1
  25. package/dashboard/dist/assets/{agent-logos-umK0ojkk.js → agent-logos-C7snoB9g.js} +1 -1
  26. package/dashboard/dist/assets/{arrow-up-right-BGMGSKrn.js → arrow-up-right-BdUd8Qy3.js} +1 -1
  27. package/dashboard/dist/assets/{download-DBdm8vu1.js → download-BXgc7vy9.js} +1 -1
  28. package/dashboard/dist/assets/{info-Dc1md1UE.js → info-CbKvss5U.js} +1 -1
  29. package/dashboard/dist/assets/{main-Br5SsufY.css → main-B1lf1bLt.css} +1 -1
  30. package/dashboard/dist/assets/main-BsNBj90S.js +1013 -0
  31. package/dashboard/dist/assets/{use-limits-display-prefs-yZId6XkL.js → use-limits-display-prefs-DY6YXcXP.js} +1 -1
  32. package/dashboard/dist/assets/{use-native-settings-CquG9vh_.js → use-native-settings-BWUsC6-N.js} +1 -1
  33. package/dashboard/dist/assets/{use-usage-limits-BvhFrG8a.js → use-usage-limits-CNYuXTxe.js} +1 -1
  34. package/dashboard/dist/assets/{useCurrency-DCzLyxzN.js → useCurrency-mUI-Iuk0.js} +1 -1
  35. package/dashboard/dist/assets/{useScrollLock-C5gi8Y07.js → useScrollLock-DMN_zEMe.js} +1 -1
  36. package/dashboard/dist/index.html +2 -2
  37. package/dashboard/dist/share.html +2 -2
  38. package/package.json +1 -1
  39. package/src/lib/cloud-account.js +58 -7
  40. package/src/lib/local-api.js +6 -1
  41. package/src/lib/pricing/seed-snapshot.json +1 -1
  42. package/src/lib/rollout.js +11 -3
  43. package/src/lib/usage-limits.js +35 -6
  44. package/dashboard/dist/assets/LoginPage-HQ8ks6KL.js +0 -1
  45. package/dashboard/dist/assets/main-BTU7nBLK.js +0 -999
@@ -1,999 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LimitsPage-D7m20XVf.js","assets/use-usage-limits-BvhFrG8a.js","assets/use-limits-display-prefs-yZId6XkL.js","assets/Card-B71GwGxO.js","assets/FadeIn-BuCfpXMc.js","assets/LocalOnlyNotice-DZslFoj5.js","assets/arrow-up-right-BGMGSKrn.js","assets/download-DBdm8vu1.js","assets/LeaderboardPage-DKHvUmGb.js","assets/Select-B5C3SgjS.js","assets/SelectItemText-XBZTRfTk.js","assets/useScrollLock-C5gi8Y07.js","assets/useCurrency-DCzLyxzN.js","assets/LeaderboardAvatar-C6KucnuS.js","assets/DashboardPage-BjOx4W82.js","assets/ActivityHeatmap-DByCSENs.js","assets/info-Dc1md1UE.js","assets/DialogTitle-BdNBXNZX.js","assets/agent-logos-umK0ojkk.js","assets/PopoverPopup-BjP_x_N0.js","assets/LandingPage-DVR_EDlv.js","assets/HeaderGithubStar-DpZhDW9t.js","assets/LeaderboardProfilePage-BK-1QWfg.js","assets/LeaderboardProfileModal-sb4nmMCj.js","assets/SettingsPage-C3pgKsph.js","assets/use-native-settings-CquG9vh_.js","assets/SkillsPage-C884cEOL.js","assets/WidgetsPage-Wsg4rX9h.js"])))=>i.map(i=>d[i]);
2
- function $3(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in e)){const s=Object.getOwnPropertyDescriptor(a,i);s&&Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>a[i]})}}}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 i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function X_(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function W3(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function a(){var i=!1;try{i=this instanceof a}catch{}return i?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,i.get?i:{enumerable:!0,get:function(){return e[a]}})}),n}var Tf={exports:{}},nl={},Ef={exports:{}},et={};var Mv;function G3(){if(Mv)return et;Mv=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),g=Symbol.iterator;function v(M){return M===null||typeof M!="object"?null:(M=g&&M[g]||M["@@iterator"],typeof M=="function"?M:null)}var _={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,S={};function P(M,G,ye){this.props=M,this.context=G,this.refs=S,this.updater=ye||_}P.prototype.isReactComponent={},P.prototype.setState=function(M,G){if(typeof M!="object"&&typeof M!="function"&&M!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,M,G,"setState")},P.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function D(){}D.prototype=P.prototype;function R(M,G,ye){this.props=M,this.context=G,this.refs=S,this.updater=ye||_}var E=R.prototype=new D;E.constructor=R,w(E,P.prototype),E.isPureReactComponent=!0;var A=Array.isArray,U=Object.prototype.hasOwnProperty,F={current:null},j={key:!0,ref:!0,__self:!0,__source:!0};function C(M,G,ye){var me,pe={},ke=null,We=null;if(G!=null)for(me in G.ref!==void 0&&(We=G.ref),G.key!==void 0&&(ke=""+G.key),G)U.call(G,me)&&!j.hasOwnProperty(me)&&(pe[me]=G[me]);var Xe=arguments.length-2;if(Xe===1)pe.children=ye;else if(1<Xe){for(var Ue=Array(Xe),Dt=0;Dt<Xe;Dt++)Ue[Dt]=arguments[Dt+2];pe.children=Ue}if(M&&M.defaultProps)for(me in Xe=M.defaultProps,Xe)pe[me]===void 0&&(pe[me]=Xe[me]);return{$$typeof:e,type:M,key:ke,ref:We,props:pe,_owner:F.current}}function K(M,G){return{$$typeof:e,type:M.type,key:G,ref:M.ref,props:M.props,_owner:M._owner}}function Y(M){return typeof M=="object"&&M!==null&&M.$$typeof===e}function ce(M){var G={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(ye){return G[ye]})}var re=/\/+/g;function fe(M,G){return typeof M=="object"&&M!==null&&M.key!=null?ce(""+M.key):G.toString(36)}function de(M,G,ye,me,pe){var ke=typeof M;(ke==="undefined"||ke==="boolean")&&(M=null);var We=!1;if(M===null)We=!0;else switch(ke){case"string":case"number":We=!0;break;case"object":switch(M.$$typeof){case e:case t:We=!0}}if(We)return We=M,pe=pe(We),M=me===""?"."+fe(We,0):me,A(pe)?(ye="",M!=null&&(ye=M.replace(re,"$&/")+"/"),de(pe,G,ye,"",function(Dt){return Dt})):pe!=null&&(Y(pe)&&(pe=K(pe,ye+(!pe.key||We&&We.key===pe.key?"":(""+pe.key).replace(re,"$&/")+"/")+M)),G.push(pe)),1;if(We=0,me=me===""?".":me+":",A(M))for(var Xe=0;Xe<M.length;Xe++){ke=M[Xe];var Ue=me+fe(ke,Xe);We+=de(ke,G,ye,Ue,pe)}else if(Ue=v(M),typeof Ue=="function")for(M=Ue.call(M),Xe=0;!(ke=M.next()).done;)ke=ke.value,Ue=me+fe(ke,Xe++),We+=de(ke,G,ye,Ue,pe);else if(ke==="object")throw G=String(M),Error("Objects are not valid as a React child (found: "+(G==="[object Object]"?"object with keys {"+Object.keys(M).join(", ")+"}":G)+"). If you meant to render a collection of children, use an array instead.");return We}function he(M,G,ye){if(M==null)return M;var me=[],pe=0;return de(M,me,"","",function(ke){return G.call(ye,ke,pe++)}),me}function oe(M){if(M._status===-1){var G=M._result;G=G(),G.then(function(ye){(M._status===0||M._status===-1)&&(M._status=1,M._result=ye)},function(ye){(M._status===0||M._status===-1)&&(M._status=2,M._result=ye)}),M._status===-1&&(M._status=0,M._result=G)}if(M._status===1)return M._result.default;throw M._result}var X={current:null},Z={transition:null},J={ReactCurrentDispatcher:X,ReactCurrentBatchConfig:Z,ReactCurrentOwner:F};function V(){throw Error("act(...) is not supported in production builds of React.")}return et.Children={map:he,forEach:function(M,G,ye){he(M,function(){G.apply(this,arguments)},ye)},count:function(M){var G=0;return he(M,function(){G++}),G},toArray:function(M){return he(M,function(G){return G})||[]},only:function(M){if(!Y(M))throw Error("React.Children.only expected to receive a single React element child.");return M}},et.Component=P,et.Fragment=n,et.Profiler=i,et.PureComponent=R,et.StrictMode=a,et.Suspense=h,et.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=J,et.act=V,et.cloneElement=function(M,G,ye){if(M==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+M+".");var me=w({},M.props),pe=M.key,ke=M.ref,We=M._owner;if(G!=null){if(G.ref!==void 0&&(ke=G.ref,We=F.current),G.key!==void 0&&(pe=""+G.key),M.type&&M.type.defaultProps)var Xe=M.type.defaultProps;for(Ue in G)U.call(G,Ue)&&!j.hasOwnProperty(Ue)&&(me[Ue]=G[Ue]===void 0&&Xe!==void 0?Xe[Ue]:G[Ue])}var Ue=arguments.length-2;if(Ue===1)me.children=ye;else if(1<Ue){Xe=Array(Ue);for(var Dt=0;Dt<Ue;Dt++)Xe[Dt]=arguments[Dt+2];me.children=Xe}return{$$typeof:e,type:M.type,key:pe,ref:ke,props:me,_owner:We}},et.createContext=function(M){return M={$$typeof:l,_currentValue:M,_currentValue2:M,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},M.Provider={$$typeof:s,_context:M},M.Consumer=M},et.createElement=C,et.createFactory=function(M){var G=C.bind(null,M);return G.type=M,G},et.createRef=function(){return{current:null}},et.forwardRef=function(M){return{$$typeof:u,render:M}},et.isValidElement=Y,et.lazy=function(M){return{$$typeof:p,_payload:{_status:-1,_result:M},_init:oe}},et.memo=function(M,G){return{$$typeof:f,type:M,compare:G===void 0?null:G}},et.startTransition=function(M){var G=Z.transition;Z.transition={};try{M()}finally{Z.transition=G}},et.unstable_act=V,et.useCallback=function(M,G){return X.current.useCallback(M,G)},et.useContext=function(M){return X.current.useContext(M)},et.useDebugValue=function(){},et.useDeferredValue=function(M){return X.current.useDeferredValue(M)},et.useEffect=function(M,G){return X.current.useEffect(M,G)},et.useId=function(){return X.current.useId()},et.useImperativeHandle=function(M,G,ye){return X.current.useImperativeHandle(M,G,ye)},et.useInsertionEffect=function(M,G){return X.current.useInsertionEffect(M,G)},et.useLayoutEffect=function(M,G){return X.current.useLayoutEffect(M,G)},et.useMemo=function(M,G){return X.current.useMemo(M,G)},et.useReducer=function(M,G,ye){return X.current.useReducer(M,G,ye)},et.useRef=function(M){return X.current.useRef(M)},et.useState=function(M){return X.current.useState(M)},et.useSyncExternalStore=function(M,G,ye){return X.current.useSyncExternalStore(M,G,ye)},et.useTransition=function(){return X.current.useTransition()},et.version="18.3.1",et}var Nv;function zl(){return Nv||(Nv=1,Ef.exports=G3()),Ef.exports}var Ov;function K3(){if(Ov)return nl;Ov=1;var e=zl(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function l(u,h,f){var p,g={},v=null,_=null;f!==void 0&&(v=""+f),h.key!==void 0&&(v=""+h.key),h.ref!==void 0&&(_=h.ref);for(p in h)a.call(h,p)&&!s.hasOwnProperty(p)&&(g[p]=h[p]);if(u&&u.defaultProps)for(p in h=u.defaultProps,h)g[p]===void 0&&(g[p]=h[p]);return{$$typeof:t,type:u,key:v,ref:_,props:g,_owner:i.current}}return nl.Fragment=n,nl.jsx=l,nl.jsxs=l,nl}var jv;function q3(){return jv||(jv=1,Tf.exports=K3()),Tf.exports}var T=q3(),b=zl();const Xo=X_(b),J_=$3({__proto__:null,default:Xo},[b]);var iu={},Af={exports:{}},Dn={},Rf={exports:{}},Lf={};var Uv;function Y3(){return Uv||(Uv=1,(function(e){function t(Z,J){var V=Z.length;Z.push(J);e:for(;0<V;){var M=V-1>>>1,G=Z[M];if(0<i(G,J))Z[M]=J,Z[V]=G,V=M;else break e}}function n(Z){return Z.length===0?null:Z[0]}function a(Z){if(Z.length===0)return null;var J=Z[0],V=Z.pop();if(V!==J){Z[0]=V;e:for(var M=0,G=Z.length,ye=G>>>1;M<ye;){var me=2*(M+1)-1,pe=Z[me],ke=me+1,We=Z[ke];if(0>i(pe,V))ke<G&&0>i(We,pe)?(Z[M]=We,Z[ke]=V,M=ke):(Z[M]=pe,Z[me]=V,M=me);else if(ke<G&&0>i(We,V))Z[M]=We,Z[ke]=V,M=ke;else break e}}return J}function i(Z,J){var V=Z.sortIndex-J.sortIndex;return V!==0?V:Z.id-J.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var h=[],f=[],p=1,g=null,v=3,_=!1,w=!1,S=!1,P=typeof setTimeout=="function"?setTimeout:null,D=typeof clearTimeout=="function"?clearTimeout:null,R=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function E(Z){for(var J=n(f);J!==null;){if(J.callback===null)a(f);else if(J.startTime<=Z)a(f),J.sortIndex=J.expirationTime,t(h,J);else break;J=n(f)}}function A(Z){if(S=!1,E(Z),!w)if(n(h)!==null)w=!0,oe(U);else{var J=n(f);J!==null&&X(A,J.startTime-Z)}}function U(Z,J){w=!1,S&&(S=!1,D(C),C=-1),_=!0;var V=v;try{for(E(J),g=n(h);g!==null&&(!(g.expirationTime>J)||Z&&!ce());){var M=g.callback;if(typeof M=="function"){g.callback=null,v=g.priorityLevel;var G=M(g.expirationTime<=J);J=e.unstable_now(),typeof G=="function"?g.callback=G:g===n(h)&&a(h),E(J)}else a(h);g=n(h)}if(g!==null)var ye=!0;else{var me=n(f);me!==null&&X(A,me.startTime-J),ye=!1}return ye}finally{g=null,v=V,_=!1}}var F=!1,j=null,C=-1,K=5,Y=-1;function ce(){return!(e.unstable_now()-Y<K)}function re(){if(j!==null){var Z=e.unstable_now();Y=Z;var J=!0;try{J=j(!0,Z)}finally{J?fe():(F=!1,j=null)}}else F=!1}var fe;if(typeof R=="function")fe=function(){R(re)};else if(typeof MessageChannel<"u"){var de=new MessageChannel,he=de.port2;de.port1.onmessage=re,fe=function(){he.postMessage(null)}}else fe=function(){P(re,0)};function oe(Z){j=Z,F||(F=!0,fe())}function X(Z,J){C=P(function(){Z(e.unstable_now())},J)}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(Z){Z.callback=null},e.unstable_continueExecution=function(){w||_||(w=!0,oe(U))},e.unstable_forceFrameRate=function(Z){0>Z||125<Z?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):K=0<Z?Math.floor(1e3/Z):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return n(h)},e.unstable_next=function(Z){switch(v){case 1:case 2:case 3:var J=3;break;default:J=v}var V=v;v=J;try{return Z()}finally{v=V}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(Z,J){switch(Z){case 1:case 2:case 3:case 4:case 5:break;default:Z=3}var V=v;v=Z;try{return J()}finally{v=V}},e.unstable_scheduleCallback=function(Z,J,V){var M=e.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?M+V:M):V=M,Z){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=V+G,Z={id:p++,callback:J,priorityLevel:Z,startTime:V,expirationTime:G,sortIndex:-1},V>M?(Z.sortIndex=V,t(f,Z),n(h)===null&&Z===n(f)&&(S?(D(C),C=-1):S=!0,X(A,V-M))):(Z.sortIndex=G,t(h,Z),w||_||(w=!0,oe(U))),Z},e.unstable_shouldYield=ce,e.unstable_wrapCallback=function(Z){var J=v;return function(){var V=v;v=J;try{return Z.apply(this,arguments)}finally{v=V}}}})(Lf)),Lf}var zv;function Z3(){return zv||(zv=1,Rf.exports=Y3()),Rf.exports}var Bv;function X3(){if(Bv)return Dn;Bv=1;var e=zl(),t=Z3();function n(r){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+r,c=1;c<arguments.length;c++)o+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+r+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,i={};function s(r,o){l(r,o),l(r+"Capture",o)}function l(r,o){for(i[r]=o,r=0;r<o.length;r++)a.add(o[r])}var u=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,f=/^[: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]*$/,p={},g={};function v(r){return h.call(g,r)?!0:h.call(p,r)?!1:f.test(r)?g[r]=!0:(p[r]=!0,!1)}function _(r,o,c,d){if(c!==null&&c.type===0)return!1;switch(typeof o){case"function":case"symbol":return!0;case"boolean":return d?!1:c!==null?!c.acceptsBooleans:(r=r.toLowerCase().slice(0,5),r!=="data-"&&r!=="aria-");default:return!1}}function w(r,o,c,d){if(o===null||typeof o>"u"||_(r,o,c,d))return!0;if(d)return!1;if(c!==null)switch(c.type){case 3:return!o;case 4:return o===!1;case 5:return isNaN(o);case 6:return isNaN(o)||1>o}return!1}function S(r,o,c,d,m,y,x){this.acceptsBooleans=o===2||o===3||o===4,this.attributeName=d,this.attributeNamespace=m,this.mustUseProperty=c,this.propertyName=r,this.type=o,this.sanitizeURL=y,this.removeEmptyString=x}var P={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(r){P[r]=new S(r,0,!1,r,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(r){var o=r[0];P[o]=new S(o,1,!1,r[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(r){P[r]=new S(r,2,!1,r.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(r){P[r]=new S(r,2,!1,r,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(r){P[r]=new S(r,3,!1,r.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(r){P[r]=new S(r,3,!0,r,null,!1,!1)}),["capture","download"].forEach(function(r){P[r]=new S(r,4,!1,r,null,!1,!1)}),["cols","rows","size","span"].forEach(function(r){P[r]=new S(r,6,!1,r,null,!1,!1)}),["rowSpan","start"].forEach(function(r){P[r]=new S(r,5,!1,r.toLowerCase(),null,!1,!1)});var D=/[\-:]([a-z])/g;function R(r){return r[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(r){var o=r.replace(D,R);P[o]=new S(o,1,!1,r,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(r){var o=r.replace(D,R);P[o]=new S(o,1,!1,r,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(r){var o=r.replace(D,R);P[o]=new S(o,1,!1,r,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(r){P[r]=new S(r,1,!1,r.toLowerCase(),null,!1,!1)}),P.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(r){P[r]=new S(r,1,!1,r.toLowerCase(),null,!0,!0)});function E(r,o,c,d){var m=P.hasOwnProperty(o)?P[o]:null;(m!==null?m.type!==0:d||!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")&&(w(o,c,m,d)&&(c=null),d||m===null?v(o)&&(c===null?r.removeAttribute(o):r.setAttribute(o,""+c)):m.mustUseProperty?r[m.propertyName]=c===null?m.type===3?!1:"":c:(o=m.attributeName,d=m.attributeNamespace,c===null?r.removeAttribute(o):(m=m.type,c=m===3||m===4&&c===!0?"":""+c,d?r.setAttributeNS(d,o,c):r.setAttribute(o,c))))}var A=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,U=Symbol.for("react.element"),F=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),K=Symbol.for("react.profiler"),Y=Symbol.for("react.provider"),ce=Symbol.for("react.context"),re=Symbol.for("react.forward_ref"),fe=Symbol.for("react.suspense"),de=Symbol.for("react.suspense_list"),he=Symbol.for("react.memo"),oe=Symbol.for("react.lazy"),X=Symbol.for("react.offscreen"),Z=Symbol.iterator;function J(r){return r===null||typeof r!="object"?null:(r=Z&&r[Z]||r["@@iterator"],typeof r=="function"?r:null)}var V=Object.assign,M;function G(r){if(M===void 0)try{throw Error()}catch(c){var o=c.stack.trim().match(/\n( *(at )?)/);M=o&&o[1]||""}return`
3
- `+M+r}var ye=!1;function me(r,o){if(!r||ye)return"";ye=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(o)if(o=function(){throw Error()},Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(q){var d=q}Reflect.construct(r,[],o)}else{try{o.call()}catch(q){d=q}r.call(o.prototype)}else{try{throw Error()}catch(q){d=q}r()}}catch(q){if(q&&d&&typeof q.stack=="string"){for(var m=q.stack.split(`
4
- `),y=d.stack.split(`
5
- `),x=m.length-1,I=y.length-1;1<=x&&0<=I&&m[x]!==y[I];)I--;for(;1<=x&&0<=I;x--,I--)if(m[x]!==y[I]){if(x!==1||I!==1)do if(x--,I--,0>I||m[x]!==y[I]){var O=`
6
- `+m[x].replace(" at new "," at ");return r.displayName&&O.includes("<anonymous>")&&(O=O.replace("<anonymous>",r.displayName)),O}while(1<=x&&0<=I);break}}}finally{ye=!1,Error.prepareStackTrace=c}return(r=r?r.displayName||r.name:"")?G(r):""}function pe(r){switch(r.tag){case 5:return G(r.type);case 16:return G("Lazy");case 13:return G("Suspense");case 19:return G("SuspenseList");case 0:case 2:case 15:return r=me(r.type,!1),r;case 11:return r=me(r.type.render,!1),r;case 1:return r=me(r.type,!0),r;default:return""}}function ke(r){if(r==null)return null;if(typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case j:return"Fragment";case F:return"Portal";case K:return"Profiler";case C:return"StrictMode";case fe:return"Suspense";case de:return"SuspenseList"}if(typeof r=="object")switch(r.$$typeof){case ce:return(r.displayName||"Context")+".Consumer";case Y:return(r._context.displayName||"Context")+".Provider";case re:var o=r.render;return r=r.displayName,r||(r=o.displayName||o.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case he:return o=r.displayName||null,o!==null?o:ke(r.type)||"Memo";case oe:o=r._payload,r=r._init;try{return ke(r(o))}catch{}}return null}function We(r){var o=r.type;switch(r.tag){case 24:return"Cache";case 9:return(o.displayName||"Context")+".Consumer";case 10:return(o._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return r=o.render,r=r.displayName||r.name||"",o.displayName||(r!==""?"ForwardRef("+r+")":"ForwardRef");case 7:return"Fragment";case 5:return o;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ke(o);case 8:return o===C?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o}return null}function Xe(r){switch(typeof r){case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function Ue(r){var o=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(o==="checkbox"||o==="radio")}function Dt(r){var o=Ue(r)?"checked":"value",c=Object.getOwnPropertyDescriptor(r.constructor.prototype,o),d=""+r[o];if(!r.hasOwnProperty(o)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var m=c.get,y=c.set;return Object.defineProperty(r,o,{configurable:!0,get:function(){return m.call(this)},set:function(x){d=""+x,y.call(this,x)}}),Object.defineProperty(r,o,{enumerable:c.enumerable}),{getValue:function(){return d},setValue:function(x){d=""+x},stopTracking:function(){r._valueTracker=null,delete r[o]}}}}function rn(r){r._valueTracker||(r._valueTracker=Dt(r))}function Sn(r){if(!r)return!1;var o=r._valueTracker;if(!o)return!0;var c=o.getValue(),d="";return r&&(d=Ue(r)?r.checked?"true":"false":r.value),r=d,r!==c?(o.setValue(r),!0):!1}function gt(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}function Ut(r,o){var c=o.checked;return V({},o,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??r._wrapperState.initialChecked})}function fi(r,o){var c=o.defaultValue==null?"":o.defaultValue,d=o.checked!=null?o.checked:o.defaultChecked;c=Xe(o.value!=null?o.value:c),r._wrapperState={initialChecked:d,initialValue:c,controlled:o.type==="checkbox"||o.type==="radio"?o.checked!=null:o.value!=null}}function ao(r,o){o=o.checked,o!=null&&E(r,"checked",o,!1)}function Nn(r,o){ao(r,o);var c=Xe(o.value),d=o.type;if(c!=null)d==="number"?(c===0&&r.value===""||r.value!=c)&&(r.value=""+c):r.value!==""+c&&(r.value=""+c);else if(d==="submit"||d==="reset"){r.removeAttribute("value");return}o.hasOwnProperty("value")?Sr(r,o.type,c):o.hasOwnProperty("defaultValue")&&Sr(r,o.type,Xe(o.defaultValue)),o.checked==null&&o.defaultChecked!=null&&(r.defaultChecked=!!o.defaultChecked)}function ro(r,o,c){if(o.hasOwnProperty("value")||o.hasOwnProperty("defaultValue")){var d=o.type;if(!(d!=="submit"&&d!=="reset"||o.value!==void 0&&o.value!==null))return;o=""+r._wrapperState.initialValue,c||o===r.value||(r.value=o),r.defaultValue=o}c=r.name,c!==""&&(r.name=""),r.defaultChecked=!!r._wrapperState.initialChecked,c!==""&&(r.name=c)}function Sr(r,o,c){(o!=="number"||gt(r.ownerDocument)!==r)&&(c==null?r.defaultValue=""+r._wrapperState.initialValue:r.defaultValue!==""+c&&(r.defaultValue=""+c))}var La=Array.isArray;function On(r,o,c,d){if(r=r.options,o){o={};for(var m=0;m<c.length;m++)o["$"+c[m]]=!0;for(c=0;c<r.length;c++)m=o.hasOwnProperty("$"+r[c].value),r[c].selected!==m&&(r[c].selected=m),m&&d&&(r[c].defaultSelected=!0)}else{for(c=""+Xe(c),o=null,m=0;m<r.length;m++){if(r[m].value===c){r[m].selected=!0,d&&(r[m].defaultSelected=!0);return}o!==null||r[m].disabled||(o=r[m])}o!==null&&(o.selected=!0)}}function pi(r,o){if(o.dangerouslySetInnerHTML!=null)throw Error(n(91));return V({},o,{value:void 0,defaultValue:void 0,children:""+r._wrapperState.initialValue})}function io(r,o){var c=o.value;if(c==null){if(c=o.children,o=o.defaultValue,c!=null){if(o!=null)throw Error(n(92));if(La(c)){if(1<c.length)throw Error(n(93));c=c[0]}o=c}o==null&&(o=""),c=o}r._wrapperState={initialValue:Xe(c)}}function Ge(r,o){var c=Xe(o.value),d=Xe(o.defaultValue);c!=null&&(c=""+c,c!==r.value&&(r.value=c),o.defaultValue==null&&r.defaultValue!==c&&(r.defaultValue=c)),d!=null&&(r.defaultValue=""+d)}function $e(r){var o=r.textContent;o===r._wrapperState.initialValue&&o!==""&&o!==null&&(r.value=o)}function ct(r){switch(r){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function At(r,o){return r==null||r==="http://www.w3.org/1999/xhtml"?ct(o):r==="http://www.w3.org/2000/svg"&&o==="foreignObject"?"http://www.w3.org/1999/xhtml":r}var bt,mt=(function(r){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(o,c,d,m){MSApp.execUnsafeLocalFunction(function(){return r(o,c,d,m)})}:r})(function(r,o){if(r.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in r)r.innerHTML=o;else{for(bt=bt||document.createElement("div"),bt.innerHTML="<svg>"+o.valueOf().toString()+"</svg>",o=bt.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;o.firstChild;)r.appendChild(o.firstChild)}});function dt(r,o){if(o){var c=r.firstChild;if(c&&c===r.lastChild&&c.nodeType===3){c.nodeValue=o;return}}r.textContent=o}var ua={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ks=["Webkit","ms","Moz","O"];Object.keys(ua).forEach(function(r){ks.forEach(function(o){o=o+r.charAt(0).toUpperCase()+r.substring(1),ua[o]=ua[r]})});function qt(r,o,c){return o==null||typeof o=="boolean"||o===""?"":c||typeof o!="number"||o===0||ua.hasOwnProperty(r)&&ua[r]?(""+o).trim():o+"px"}function or(r,o){r=r.style;for(var c in o)if(o.hasOwnProperty(c)){var d=c.indexOf("--")===0,m=qt(c,o[c],d);c==="float"&&(c="cssFloat"),d?r.setProperty(c,m):r[c]=m}}var mn=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Da(r,o){if(o){if(mn[r]&&(o.children!=null||o.dangerouslySetInnerHTML!=null))throw Error(n(137,r));if(o.dangerouslySetInnerHTML!=null){if(o.children!=null)throw Error(n(60));if(typeof o.dangerouslySetInnerHTML!="object"||!("__html"in o.dangerouslySetInnerHTML))throw Error(n(61))}if(o.style!=null&&typeof o.style!="object")throw Error(n(62))}}function Ia(r,o){if(r.indexOf("-")===-1)return typeof o.is=="string";switch(r){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 da=null;function mi(r){return r=r.target||r.srcElement||window,r.correspondingUseElement&&(r=r.correspondingUseElement),r.nodeType===3?r.parentNode:r}var Cr=null,jn=null,sr=null;function oo(r){if(r=Fs(r)){if(typeof Cr!="function")throw Error(n(280));var o=r.stateNode;o&&(o=kc(o),Cr(r.stateNode,r.type,o))}}function nc(r){jn?sr?sr.push(r):sr=[r]:jn=r}function _s(){if(jn){var r=jn,o=sr;if(sr=jn=null,oo(r),o)for(r=0;r<o.length;r++)oo(o[r])}}function ac(r,o){return r(o)}function ws(){}var Tr=!1;function gi(r,o,c){if(Tr)return r(o,c);Tr=!0;try{return ac(r,o,c)}finally{Tr=!1,(jn!==null||sr!==null)&&(ws(),_s())}}function Er(r,o){var c=r.stateNode;if(c===null)return null;var d=kc(c);if(d===null)return null;c=d[o];e:switch(o){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(r=r.type,d=!(r==="button"||r==="input"||r==="select"||r==="textarea")),r=!d;break e;default:r=!1}if(r)return null;if(c&&typeof c!="function")throw Error(n(231,o,typeof c));return c}var xs=!1;if(u)try{var yi={};Object.defineProperty(yi,"passive",{get:function(){xs=!0}}),window.addEventListener("test",yi,yi),window.removeEventListener("test",yi,yi)}catch{xs=!1}function N(r,o,c,d,m,y,x,I,O){var q=Array.prototype.slice.call(arguments,3);try{o.apply(c,q)}catch(ae){this.onError(ae)}}var z=!1,$=null,Q=!1,ee=null,Re={onError:function(r){z=!0,$=r}};function Le(r,o,c,d,m,y,x,I,O){z=!1,$=null,N.apply(Re,arguments)}function Ie(r,o,c,d,m,y,x,I,O){if(Le.apply(this,arguments),z){if(z){var q=$;z=!1,$=null}else throw Error(n(198));Q||(Q=!0,ee=q)}}function ve(r){var o=r,c=r;if(r.alternate)for(;o.return;)o=o.return;else{r=o;do o=r,(o.flags&4098)!==0&&(c=o.return),r=o.return;while(r)}return o.tag===3?c:null}function Ne(r){if(r.tag===13){var o=r.memoizedState;if(o===null&&(r=r.alternate,r!==null&&(o=r.memoizedState)),o!==null)return o.dehydrated}return null}function Me(r){if(ve(r)!==r)throw Error(n(188))}function Ke(r){var o=r.alternate;if(!o){if(o=ve(r),o===null)throw Error(n(188));return o!==r?null:r}for(var c=r,d=o;;){var m=c.return;if(m===null)break;var y=m.alternate;if(y===null){if(d=m.return,d!==null){c=d;continue}break}if(m.child===y.child){for(y=m.child;y;){if(y===c)return Me(m),r;if(y===d)return Me(m),o;y=y.sibling}throw Error(n(188))}if(c.return!==d.return)c=m,d=y;else{for(var x=!1,I=m.child;I;){if(I===c){x=!0,c=m,d=y;break}if(I===d){x=!0,d=m,c=y;break}I=I.sibling}if(!x){for(I=y.child;I;){if(I===c){x=!0,c=y,d=m;break}if(I===d){x=!0,d=y,c=m;break}I=I.sibling}if(!x)throw Error(n(189))}}if(c.alternate!==d)throw Error(n(190))}if(c.tag!==3)throw Error(n(188));return c.stateNode.current===c?r:o}function ze(r){return r=Ke(r),r!==null?rt(r):null}function rt(r){if(r.tag===5||r.tag===6)return r;for(r=r.child;r!==null;){var o=rt(r);if(o!==null)return o;r=r.sibling}return null}var ht=t.unstable_scheduleCallback,Ot=t.unstable_cancelCallback,wt=t.unstable_shouldYield,ft=t.unstable_requestPaint,tt=t.unstable_now,on=t.unstable_getCurrentPriorityLevel,lr=t.unstable_ImmediatePriority,ha=t.unstable_UserBlockingPriority,fa=t.unstable_NormalPriority,Ma=t.unstable_LowPriority,Un=t.unstable_IdlePriority,Ar=null,Ht=null;function so(r){if(Ht&&typeof Ht.onCommitFiberRoot=="function")try{Ht.onCommitFiberRoot(Ar,r,void 0,(r.current.flags&128)===128)}catch{}}var sn=Math.clz32?Math.clz32:ln,lo=Math.log,nt=Math.LN2;function ln(r){return r>>>=0,r===0?32:31-(lo(r)/nt|0)|0}var gn=64,Cn=4194304;function Rr(r){switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return r&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return r}}function Lr(r,o){var c=r.pendingLanes;if(c===0)return 0;var d=0,m=r.suspendedLanes,y=r.pingedLanes,x=c&268435455;if(x!==0){var I=x&~m;I!==0?d=Rr(I):(y&=x,y!==0&&(d=Rr(y)))}else x=c&~m,x!==0?d=Rr(x):y!==0&&(d=Rr(y));if(d===0)return 0;if(o!==0&&o!==d&&(o&m)===0&&(m=d&-d,y=o&-o,m>=y||m===16&&(y&4194240)!==0))return o;if((d&4)!==0&&(d|=c&16),o=r.entangledLanes,o!==0)for(r=r.entanglements,o&=d;0<o;)c=31-sn(o),m=1<<c,d|=r[c],o&=~m;return d}function kt(r,o){switch(r){case 1:case 2:case 4:return o+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function cr(r,o){for(var c=r.suspendedLanes,d=r.pingedLanes,m=r.expirationTimes,y=r.pendingLanes;0<y;){var x=31-sn(y),I=1<<x,O=m[x];O===-1?((I&c)===0||(I&d)!==0)&&(m[x]=kt(I,o)):O<=o&&(r.expiredLanes|=I),y&=~I}}function co(r){return r=r.pendingLanes&-1073741825,r!==0?r:r&1073741824?1073741824:0}function rc(){var r=gn;return gn<<=1,(gn&4194240)===0&&(gn=64),r}function qd(r){for(var o=[],c=0;31>c;c++)o.push(r);return o}function Ps(r,o,c){r.pendingLanes|=o,o!==536870912&&(r.suspendedLanes=0,r.pingedLanes=0),r=r.eventTimes,o=31-sn(o),r[o]=c}function dS(r,o){var c=r.pendingLanes&~o;r.pendingLanes=o,r.suspendedLanes=0,r.pingedLanes=0,r.expiredLanes&=o,r.mutableReadLanes&=o,r.entangledLanes&=o,o=r.entanglements;var d=r.eventTimes;for(r=r.expirationTimes;0<c;){var m=31-sn(c),y=1<<m;o[m]=0,d[m]=-1,r[m]=-1,c&=~y}}function Yd(r,o){var c=r.entangledLanes|=o;for(r=r.entanglements;c;){var d=31-sn(c),m=1<<d;m&o|r[d]&o&&(r[d]|=o),c&=~m}}var pt=0;function h0(r){return r&=-r,1<r?4<r?(r&268435455)!==0?16:536870912:4:1}var f0,Zd,p0,m0,g0,Xd=!1,ic=[],Dr=null,Ir=null,Mr=null,Ss=new Map,Cs=new Map,Nr=[],hS="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 submit".split(" ");function y0(r,o){switch(r){case"focusin":case"focusout":Dr=null;break;case"dragenter":case"dragleave":Ir=null;break;case"mouseover":case"mouseout":Mr=null;break;case"pointerover":case"pointerout":Ss.delete(o.pointerId);break;case"gotpointercapture":case"lostpointercapture":Cs.delete(o.pointerId)}}function Ts(r,o,c,d,m,y){return r===null||r.nativeEvent!==y?(r={blockedOn:o,domEventName:c,eventSystemFlags:d,nativeEvent:y,targetContainers:[m]},o!==null&&(o=Fs(o),o!==null&&Zd(o)),r):(r.eventSystemFlags|=d,o=r.targetContainers,m!==null&&o.indexOf(m)===-1&&o.push(m),r)}function fS(r,o,c,d,m){switch(o){case"focusin":return Dr=Ts(Dr,r,o,c,d,m),!0;case"dragenter":return Ir=Ts(Ir,r,o,c,d,m),!0;case"mouseover":return Mr=Ts(Mr,r,o,c,d,m),!0;case"pointerover":var y=m.pointerId;return Ss.set(y,Ts(Ss.get(y)||null,r,o,c,d,m)),!0;case"gotpointercapture":return y=m.pointerId,Cs.set(y,Ts(Cs.get(y)||null,r,o,c,d,m)),!0}return!1}function v0(r){var o=vi(r.target);if(o!==null){var c=ve(o);if(c!==null){if(o=c.tag,o===13){if(o=Ne(c),o!==null){r.blockedOn=o,g0(r.priority,function(){p0(c)});return}}else if(o===3&&c.stateNode.current.memoizedState.isDehydrated){r.blockedOn=c.tag===3?c.stateNode.containerInfo:null;return}}}r.blockedOn=null}function oc(r){if(r.blockedOn!==null)return!1;for(var o=r.targetContainers;0<o.length;){var c=Qd(r.domEventName,r.eventSystemFlags,o[0],r.nativeEvent);if(c===null){c=r.nativeEvent;var d=new c.constructor(c.type,c);da=d,c.target.dispatchEvent(d),da=null}else return o=Fs(c),o!==null&&Zd(o),r.blockedOn=c,!1;o.shift()}return!0}function b0(r,o,c){oc(r)&&c.delete(o)}function pS(){Xd=!1,Dr!==null&&oc(Dr)&&(Dr=null),Ir!==null&&oc(Ir)&&(Ir=null),Mr!==null&&oc(Mr)&&(Mr=null),Ss.forEach(b0),Cs.forEach(b0)}function Es(r,o){r.blockedOn===o&&(r.blockedOn=null,Xd||(Xd=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,pS)))}function As(r){function o(m){return Es(m,r)}if(0<ic.length){Es(ic[0],r);for(var c=1;c<ic.length;c++){var d=ic[c];d.blockedOn===r&&(d.blockedOn=null)}}for(Dr!==null&&Es(Dr,r),Ir!==null&&Es(Ir,r),Mr!==null&&Es(Mr,r),Ss.forEach(o),Cs.forEach(o),c=0;c<Nr.length;c++)d=Nr[c],d.blockedOn===r&&(d.blockedOn=null);for(;0<Nr.length&&(c=Nr[0],c.blockedOn===null);)v0(c),c.blockedOn===null&&Nr.shift()}var uo=A.ReactCurrentBatchConfig,sc=!0;function mS(r,o,c,d){var m=pt,y=uo.transition;uo.transition=null;try{pt=1,Jd(r,o,c,d)}finally{pt=m,uo.transition=y}}function gS(r,o,c,d){var m=pt,y=uo.transition;uo.transition=null;try{pt=4,Jd(r,o,c,d)}finally{pt=m,uo.transition=y}}function Jd(r,o,c,d){if(sc){var m=Qd(r,o,c,d);if(m===null)gh(r,o,d,lc,c),y0(r,d);else if(fS(m,r,o,c,d))d.stopPropagation();else if(y0(r,d),o&4&&-1<hS.indexOf(r)){for(;m!==null;){var y=Fs(m);if(y!==null&&f0(y),y=Qd(r,o,c,d),y===null&&gh(r,o,d,lc,c),y===m)break;m=y}m!==null&&d.stopPropagation()}else gh(r,o,d,null,c)}}var lc=null;function Qd(r,o,c,d){if(lc=null,r=mi(d),r=vi(r),r!==null)if(o=ve(r),o===null)r=null;else if(c=o.tag,c===13){if(r=Ne(o),r!==null)return r;r=null}else if(c===3){if(o.stateNode.current.memoizedState.isDehydrated)return o.tag===3?o.stateNode.containerInfo:null;r=null}else o!==r&&(r=null);return lc=r,null}function k0(r){switch(r){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"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 1;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"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(on()){case lr:return 1;case ha:return 4;case fa:case Ma:return 16;case Un:return 536870912;default:return 16}default:return 16}}var Or=null,eh=null,cc=null;function _0(){if(cc)return cc;var r,o=eh,c=o.length,d,m="value"in Or?Or.value:Or.textContent,y=m.length;for(r=0;r<c&&o[r]===m[r];r++);var x=c-r;for(d=1;d<=x&&o[c-d]===m[y-d];d++);return cc=m.slice(r,1<d?1-d:void 0)}function uc(r){var o=r.keyCode;return"charCode"in r?(r=r.charCode,r===0&&o===13&&(r=13)):r=o,r===10&&(r=13),32<=r||r===13?r:0}function dc(){return!0}function w0(){return!1}function zn(r){function o(c,d,m,y,x){this._reactName=c,this._targetInst=m,this.type=d,this.nativeEvent=y,this.target=x,this.currentTarget=null;for(var I in r)r.hasOwnProperty(I)&&(c=r[I],this[I]=c?c(y):y[I]);return this.isDefaultPrevented=(y.defaultPrevented!=null?y.defaultPrevented:y.returnValue===!1)?dc:w0,this.isPropagationStopped=w0,this}return V(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var c=this.nativeEvent;c&&(c.preventDefault?c.preventDefault():typeof c.returnValue!="unknown"&&(c.returnValue=!1),this.isDefaultPrevented=dc)},stopPropagation:function(){var c=this.nativeEvent;c&&(c.stopPropagation?c.stopPropagation():typeof c.cancelBubble!="unknown"&&(c.cancelBubble=!0),this.isPropagationStopped=dc)},persist:function(){},isPersistent:dc}),o}var ho={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(r){return r.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},th=zn(ho),Rs=V({},ho,{view:0,detail:0}),yS=zn(Rs),nh,ah,Ls,hc=V({},Rs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ih,button:0,buttons:0,relatedTarget:function(r){return r.relatedTarget===void 0?r.fromElement===r.srcElement?r.toElement:r.fromElement:r.relatedTarget},movementX:function(r){return"movementX"in r?r.movementX:(r!==Ls&&(Ls&&r.type==="mousemove"?(nh=r.screenX-Ls.screenX,ah=r.screenY-Ls.screenY):ah=nh=0,Ls=r),nh)},movementY:function(r){return"movementY"in r?r.movementY:ah}}),x0=zn(hc),vS=V({},hc,{dataTransfer:0}),bS=zn(vS),kS=V({},Rs,{relatedTarget:0}),rh=zn(kS),_S=V({},ho,{animationName:0,elapsedTime:0,pseudoElement:0}),wS=zn(_S),xS=V({},ho,{clipboardData:function(r){return"clipboardData"in r?r.clipboardData:window.clipboardData}}),PS=zn(xS),SS=V({},ho,{data:0}),P0=zn(SS),CS={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},TS={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"},ES={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function AS(r){var o=this.nativeEvent;return o.getModifierState?o.getModifierState(r):(r=ES[r])?!!o[r]:!1}function ih(){return AS}var RS=V({},Rs,{key:function(r){if(r.key){var o=CS[r.key]||r.key;if(o!=="Unidentified")return o}return r.type==="keypress"?(r=uc(r),r===13?"Enter":String.fromCharCode(r)):r.type==="keydown"||r.type==="keyup"?TS[r.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ih,charCode:function(r){return r.type==="keypress"?uc(r):0},keyCode:function(r){return r.type==="keydown"||r.type==="keyup"?r.keyCode:0},which:function(r){return r.type==="keypress"?uc(r):r.type==="keydown"||r.type==="keyup"?r.keyCode:0}}),LS=zn(RS),DS=V({},hc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),S0=zn(DS),IS=V({},Rs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ih}),MS=zn(IS),NS=V({},ho,{propertyName:0,elapsedTime:0,pseudoElement:0}),OS=zn(NS),jS=V({},hc,{deltaX:function(r){return"deltaX"in r?r.deltaX:"wheelDeltaX"in r?-r.wheelDeltaX:0},deltaY:function(r){return"deltaY"in r?r.deltaY:"wheelDeltaY"in r?-r.wheelDeltaY:"wheelDelta"in r?-r.wheelDelta:0},deltaZ:0,deltaMode:0}),US=zn(jS),zS=[9,13,27,32],oh=u&&"CompositionEvent"in window,Ds=null;u&&"documentMode"in document&&(Ds=document.documentMode);var BS=u&&"TextEvent"in window&&!Ds,C0=u&&(!oh||Ds&&8<Ds&&11>=Ds),T0=" ",E0=!1;function A0(r,o){switch(r){case"keyup":return zS.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function R0(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var fo=!1;function FS(r,o){switch(r){case"compositionend":return R0(o);case"keypress":return o.which!==32?null:(E0=!0,T0);case"textInput":return r=o.data,r===T0&&E0?null:r;default:return null}}function VS(r,o){if(fo)return r==="compositionend"||!oh&&A0(r,o)?(r=_0(),cc=eh=Or=null,fo=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(o.ctrlKey||o.altKey||o.metaKey)||o.ctrlKey&&o.altKey){if(o.char&&1<o.char.length)return o.char;if(o.which)return String.fromCharCode(o.which)}return null;case"compositionend":return C0&&o.locale!=="ko"?null:o.data;default:return null}}var HS={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 L0(r){var o=r&&r.nodeName&&r.nodeName.toLowerCase();return o==="input"?!!HS[r.type]:o==="textarea"}function D0(r,o,c,d){nc(d),o=yc(o,"onChange"),0<o.length&&(c=new th("onChange","change",null,c,d),r.push({event:c,listeners:o}))}var Is=null,Ms=null;function $S(r){Z0(r,0)}function fc(r){var o=vo(r);if(Sn(o))return r}function WS(r,o){if(r==="change")return o}var I0=!1;if(u){var sh;if(u){var lh="oninput"in document;if(!lh){var M0=document.createElement("div");M0.setAttribute("oninput","return;"),lh=typeof M0.oninput=="function"}sh=lh}else sh=!1;I0=sh&&(!document.documentMode||9<document.documentMode)}function N0(){Is&&(Is.detachEvent("onpropertychange",O0),Ms=Is=null)}function O0(r){if(r.propertyName==="value"&&fc(Ms)){var o=[];D0(o,Ms,r,mi(r)),gi($S,o)}}function GS(r,o,c){r==="focusin"?(N0(),Is=o,Ms=c,Is.attachEvent("onpropertychange",O0)):r==="focusout"&&N0()}function KS(r){if(r==="selectionchange"||r==="keyup"||r==="keydown")return fc(Ms)}function qS(r,o){if(r==="click")return fc(o)}function YS(r,o){if(r==="input"||r==="change")return fc(o)}function ZS(r,o){return r===o&&(r!==0||1/r===1/o)||r!==r&&o!==o}var pa=typeof Object.is=="function"?Object.is:ZS;function Ns(r,o){if(pa(r,o))return!0;if(typeof r!="object"||r===null||typeof o!="object"||o===null)return!1;var c=Object.keys(r),d=Object.keys(o);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var m=c[d];if(!h.call(o,m)||!pa(r[m],o[m]))return!1}return!0}function j0(r){for(;r&&r.firstChild;)r=r.firstChild;return r}function U0(r,o){var c=j0(r);r=0;for(var d;c;){if(c.nodeType===3){if(d=r+c.textContent.length,r<=o&&d>=o)return{node:c,offset:o-r};r=d}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=j0(c)}}function z0(r,o){return r&&o?r===o?!0:r&&r.nodeType===3?!1:o&&o.nodeType===3?z0(r,o.parentNode):"contains"in r?r.contains(o):r.compareDocumentPosition?!!(r.compareDocumentPosition(o)&16):!1:!1}function B0(){for(var r=window,o=gt();o instanceof r.HTMLIFrameElement;){try{var c=typeof o.contentWindow.location.href=="string"}catch{c=!1}if(c)r=o.contentWindow;else break;o=gt(r.document)}return o}function ch(r){var o=r&&r.nodeName&&r.nodeName.toLowerCase();return o&&(o==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||o==="textarea"||r.contentEditable==="true")}function XS(r){var o=B0(),c=r.focusedElem,d=r.selectionRange;if(o!==c&&c&&c.ownerDocument&&z0(c.ownerDocument.documentElement,c)){if(d!==null&&ch(c)){if(o=d.start,r=d.end,r===void 0&&(r=o),"selectionStart"in c)c.selectionStart=o,c.selectionEnd=Math.min(r,c.value.length);else if(r=(o=c.ownerDocument||document)&&o.defaultView||window,r.getSelection){r=r.getSelection();var m=c.textContent.length,y=Math.min(d.start,m);d=d.end===void 0?y:Math.min(d.end,m),!r.extend&&y>d&&(m=d,d=y,y=m),m=U0(c,y);var x=U0(c,d);m&&x&&(r.rangeCount!==1||r.anchorNode!==m.node||r.anchorOffset!==m.offset||r.focusNode!==x.node||r.focusOffset!==x.offset)&&(o=o.createRange(),o.setStart(m.node,m.offset),r.removeAllRanges(),y>d?(r.addRange(o),r.extend(x.node,x.offset)):(o.setEnd(x.node,x.offset),r.addRange(o)))}}for(o=[],r=c;r=r.parentNode;)r.nodeType===1&&o.push({element:r,left:r.scrollLeft,top:r.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c<o.length;c++)r=o[c],r.element.scrollLeft=r.left,r.element.scrollTop=r.top}}var JS=u&&"documentMode"in document&&11>=document.documentMode,po=null,uh=null,Os=null,dh=!1;function F0(r,o,c){var d=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;dh||po==null||po!==gt(d)||(d=po,"selectionStart"in d&&ch(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Os&&Ns(Os,d)||(Os=d,d=yc(uh,"onSelect"),0<d.length&&(o=new th("onSelect","select",null,o,c),r.push({event:o,listeners:d}),o.target=po)))}function pc(r,o){var c={};return c[r.toLowerCase()]=o.toLowerCase(),c["Webkit"+r]="webkit"+o,c["Moz"+r]="moz"+o,c}var mo={animationend:pc("Animation","AnimationEnd"),animationiteration:pc("Animation","AnimationIteration"),animationstart:pc("Animation","AnimationStart"),transitionend:pc("Transition","TransitionEnd")},hh={},V0={};u&&(V0=document.createElement("div").style,"AnimationEvent"in window||(delete mo.animationend.animation,delete mo.animationiteration.animation,delete mo.animationstart.animation),"TransitionEvent"in window||delete mo.transitionend.transition);function mc(r){if(hh[r])return hh[r];if(!mo[r])return r;var o=mo[r],c;for(c in o)if(o.hasOwnProperty(c)&&c in V0)return hh[r]=o[c];return r}var H0=mc("animationend"),$0=mc("animationiteration"),W0=mc("animationstart"),G0=mc("transitionend"),K0=new Map,q0="abort auxClick 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(" ");function jr(r,o){K0.set(r,o),s(o,[r])}for(var fh=0;fh<q0.length;fh++){var ph=q0[fh],QS=ph.toLowerCase(),e3=ph[0].toUpperCase()+ph.slice(1);jr(QS,"on"+e3)}jr(H0,"onAnimationEnd"),jr($0,"onAnimationIteration"),jr(W0,"onAnimationStart"),jr("dblclick","onDoubleClick"),jr("focusin","onFocus"),jr("focusout","onBlur"),jr(G0,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var js="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(" "),t3=new Set("cancel close invalid load scroll toggle".split(" ").concat(js));function Y0(r,o,c){var d=r.type||"unknown-event";r.currentTarget=c,Ie(d,o,void 0,r),r.currentTarget=null}function Z0(r,o){o=(o&4)!==0;for(var c=0;c<r.length;c++){var d=r[c],m=d.event;d=d.listeners;e:{var y=void 0;if(o)for(var x=d.length-1;0<=x;x--){var I=d[x],O=I.instance,q=I.currentTarget;if(I=I.listener,O!==y&&m.isPropagationStopped())break e;Y0(m,I,q),y=O}else for(x=0;x<d.length;x++){if(I=d[x],O=I.instance,q=I.currentTarget,I=I.listener,O!==y&&m.isPropagationStopped())break e;Y0(m,I,q),y=O}}}if(Q)throw r=ee,Q=!1,ee=null,r}function xt(r,o){var c=o[wh];c===void 0&&(c=o[wh]=new Set);var d=r+"__bubble";c.has(d)||(X0(o,r,2,!1),c.add(d))}function mh(r,o,c){var d=0;o&&(d|=4),X0(c,r,d,o)}var gc="_reactListening"+Math.random().toString(36).slice(2);function Us(r){if(!r[gc]){r[gc]=!0,a.forEach(function(c){c!=="selectionchange"&&(t3.has(c)||mh(c,!1,r),mh(c,!0,r))});var o=r.nodeType===9?r:r.ownerDocument;o===null||o[gc]||(o[gc]=!0,mh("selectionchange",!1,o))}}function X0(r,o,c,d){switch(k0(o)){case 1:var m=mS;break;case 4:m=gS;break;default:m=Jd}c=m.bind(null,o,c,r),m=void 0,!xs||o!=="touchstart"&&o!=="touchmove"&&o!=="wheel"||(m=!0),d?m!==void 0?r.addEventListener(o,c,{capture:!0,passive:m}):r.addEventListener(o,c,!0):m!==void 0?r.addEventListener(o,c,{passive:m}):r.addEventListener(o,c,!1)}function gh(r,o,c,d,m){var y=d;if((o&1)===0&&(o&2)===0&&d!==null)e:for(;;){if(d===null)return;var x=d.tag;if(x===3||x===4){var I=d.stateNode.containerInfo;if(I===m||I.nodeType===8&&I.parentNode===m)break;if(x===4)for(x=d.return;x!==null;){var O=x.tag;if((O===3||O===4)&&(O=x.stateNode.containerInfo,O===m||O.nodeType===8&&O.parentNode===m))return;x=x.return}for(;I!==null;){if(x=vi(I),x===null)return;if(O=x.tag,O===5||O===6){d=y=x;continue e}I=I.parentNode}}d=d.return}gi(function(){var q=y,ae=mi(c),ie=[];e:{var ne=K0.get(r);if(ne!==void 0){var be=th,Se=r;switch(r){case"keypress":if(uc(c)===0)break e;case"keydown":case"keyup":be=LS;break;case"focusin":Se="focus",be=rh;break;case"focusout":Se="blur",be=rh;break;case"beforeblur":case"afterblur":be=rh;break;case"click":if(c.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":be=x0;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":be=bS;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":be=MS;break;case H0:case $0:case W0:be=wS;break;case G0:be=OS;break;case"scroll":be=yS;break;case"wheel":be=US;break;case"copy":case"cut":case"paste":be=PS;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":be=S0}var Te=(o&4)!==0,jt=!Te&&r==="scroll",H=Te?ne!==null?ne+"Capture":null:ne;Te=[];for(var B=q,W;B!==null;){W=B;var ue=W.stateNode;if(W.tag===5&&ue!==null&&(W=ue,H!==null&&(ue=Er(B,H),ue!=null&&Te.push(zs(B,ue,W)))),jt)break;B=B.return}0<Te.length&&(ne=new be(ne,Se,null,c,ae),ie.push({event:ne,listeners:Te}))}}if((o&7)===0){e:{if(ne=r==="mouseover"||r==="pointerover",be=r==="mouseout"||r==="pointerout",ne&&c!==da&&(Se=c.relatedTarget||c.fromElement)&&(vi(Se)||Se[ur]))break e;if((be||ne)&&(ne=ae.window===ae?ae:(ne=ae.ownerDocument)?ne.defaultView||ne.parentWindow:window,be?(Se=c.relatedTarget||c.toElement,be=q,Se=Se?vi(Se):null,Se!==null&&(jt=ve(Se),Se!==jt||Se.tag!==5&&Se.tag!==6)&&(Se=null)):(be=null,Se=q),be!==Se)){if(Te=x0,ue="onMouseLeave",H="onMouseEnter",B="mouse",(r==="pointerout"||r==="pointerover")&&(Te=S0,ue="onPointerLeave",H="onPointerEnter",B="pointer"),jt=be==null?ne:vo(be),W=Se==null?ne:vo(Se),ne=new Te(ue,B+"leave",be,c,ae),ne.target=jt,ne.relatedTarget=W,ue=null,vi(ae)===q&&(Te=new Te(H,B+"enter",Se,c,ae),Te.target=W,Te.relatedTarget=jt,ue=Te),jt=ue,be&&Se)t:{for(Te=be,H=Se,B=0,W=Te;W;W=go(W))B++;for(W=0,ue=H;ue;ue=go(ue))W++;for(;0<B-W;)Te=go(Te),B--;for(;0<W-B;)H=go(H),W--;for(;B--;){if(Te===H||H!==null&&Te===H.alternate)break t;Te=go(Te),H=go(H)}Te=null}else Te=null;be!==null&&J0(ie,ne,be,Te,!1),Se!==null&&jt!==null&&J0(ie,jt,Se,Te,!0)}}e:{if(ne=q?vo(q):window,be=ne.nodeName&&ne.nodeName.toLowerCase(),be==="select"||be==="input"&&ne.type==="file")var Ee=WS;else if(L0(ne))if(I0)Ee=YS;else{Ee=KS;var Oe=GS}else(be=ne.nodeName)&&be.toLowerCase()==="input"&&(ne.type==="checkbox"||ne.type==="radio")&&(Ee=qS);if(Ee&&(Ee=Ee(r,q))){D0(ie,Ee,c,ae);break e}Oe&&Oe(r,ne,q),r==="focusout"&&(Oe=ne._wrapperState)&&Oe.controlled&&ne.type==="number"&&Sr(ne,"number",ne.value)}switch(Oe=q?vo(q):window,r){case"focusin":(L0(Oe)||Oe.contentEditable==="true")&&(po=Oe,uh=q,Os=null);break;case"focusout":Os=uh=po=null;break;case"mousedown":dh=!0;break;case"contextmenu":case"mouseup":case"dragend":dh=!1,F0(ie,c,ae);break;case"selectionchange":if(JS)break;case"keydown":case"keyup":F0(ie,c,ae)}var je;if(oh)e:{switch(r){case"compositionstart":var Fe="onCompositionStart";break e;case"compositionend":Fe="onCompositionEnd";break e;case"compositionupdate":Fe="onCompositionUpdate";break e}Fe=void 0}else fo?A0(r,c)&&(Fe="onCompositionEnd"):r==="keydown"&&c.keyCode===229&&(Fe="onCompositionStart");Fe&&(C0&&c.locale!=="ko"&&(fo||Fe!=="onCompositionStart"?Fe==="onCompositionEnd"&&fo&&(je=_0()):(Or=ae,eh="value"in Or?Or.value:Or.textContent,fo=!0)),Oe=yc(q,Fe),0<Oe.length&&(Fe=new P0(Fe,r,null,c,ae),ie.push({event:Fe,listeners:Oe}),je?Fe.data=je:(je=R0(c),je!==null&&(Fe.data=je)))),(je=BS?FS(r,c):VS(r,c))&&(q=yc(q,"onBeforeInput"),0<q.length&&(ae=new P0("onBeforeInput","beforeinput",null,c,ae),ie.push({event:ae,listeners:q}),ae.data=je))}Z0(ie,o)})}function zs(r,o,c){return{instance:r,listener:o,currentTarget:c}}function yc(r,o){for(var c=o+"Capture",d=[];r!==null;){var m=r,y=m.stateNode;m.tag===5&&y!==null&&(m=y,y=Er(r,c),y!=null&&d.unshift(zs(r,y,m)),y=Er(r,o),y!=null&&d.push(zs(r,y,m))),r=r.return}return d}function go(r){if(r===null)return null;do r=r.return;while(r&&r.tag!==5);return r||null}function J0(r,o,c,d,m){for(var y=o._reactName,x=[];c!==null&&c!==d;){var I=c,O=I.alternate,q=I.stateNode;if(O!==null&&O===d)break;I.tag===5&&q!==null&&(I=q,m?(O=Er(c,y),O!=null&&x.unshift(zs(c,O,I))):m||(O=Er(c,y),O!=null&&x.push(zs(c,O,I)))),c=c.return}x.length!==0&&r.push({event:o,listeners:x})}var n3=/\r\n?/g,a3=/\u0000|\uFFFD/g;function Q0(r){return(typeof r=="string"?r:""+r).replace(n3,`
7
- `).replace(a3,"")}function vc(r,o,c){if(o=Q0(o),Q0(r)!==o&&c)throw Error(n(425))}function bc(){}var yh=null,vh=null;function bh(r,o){return r==="textarea"||r==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}var kh=typeof setTimeout=="function"?setTimeout:void 0,r3=typeof clearTimeout=="function"?clearTimeout:void 0,ey=typeof Promise=="function"?Promise:void 0,i3=typeof queueMicrotask=="function"?queueMicrotask:typeof ey<"u"?function(r){return ey.resolve(null).then(r).catch(o3)}:kh;function o3(r){setTimeout(function(){throw r})}function _h(r,o){var c=o,d=0;do{var m=c.nextSibling;if(r.removeChild(c),m&&m.nodeType===8)if(c=m.data,c==="/$"){if(d===0){r.removeChild(m),As(o);return}d--}else c!=="$"&&c!=="$?"&&c!=="$!"||d++;c=m}while(c);As(o)}function Ur(r){for(;r!=null;r=r.nextSibling){var o=r.nodeType;if(o===1||o===3)break;if(o===8){if(o=r.data,o==="$"||o==="$!"||o==="$?")break;if(o==="/$")return null}}return r}function ty(r){r=r.previousSibling;for(var o=0;r;){if(r.nodeType===8){var c=r.data;if(c==="$"||c==="$!"||c==="$?"){if(o===0)return r;o--}else c==="/$"&&o++}r=r.previousSibling}return null}var yo=Math.random().toString(36).slice(2),Na="__reactFiber$"+yo,Bs="__reactProps$"+yo,ur="__reactContainer$"+yo,wh="__reactEvents$"+yo,s3="__reactListeners$"+yo,l3="__reactHandles$"+yo;function vi(r){var o=r[Na];if(o)return o;for(var c=r.parentNode;c;){if(o=c[ur]||c[Na]){if(c=o.alternate,o.child!==null||c!==null&&c.child!==null)for(r=ty(r);r!==null;){if(c=r[Na])return c;r=ty(r)}return o}r=c,c=r.parentNode}return null}function Fs(r){return r=r[Na]||r[ur],!r||r.tag!==5&&r.tag!==6&&r.tag!==13&&r.tag!==3?null:r}function vo(r){if(r.tag===5||r.tag===6)return r.stateNode;throw Error(n(33))}function kc(r){return r[Bs]||null}var xh=[],bo=-1;function zr(r){return{current:r}}function Pt(r){0>bo||(r.current=xh[bo],xh[bo]=null,bo--)}function _t(r,o){bo++,xh[bo]=r.current,r.current=o}var Br={},cn=zr(Br),Tn=zr(!1),bi=Br;function ko(r,o){var c=r.type.contextTypes;if(!c)return Br;var d=r.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===o)return d.__reactInternalMemoizedMaskedChildContext;var m={},y;for(y in c)m[y]=o[y];return d&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=o,r.__reactInternalMemoizedMaskedChildContext=m),m}function En(r){return r=r.childContextTypes,r!=null}function _c(){Pt(Tn),Pt(cn)}function ny(r,o,c){if(cn.current!==Br)throw Error(n(168));_t(cn,o),_t(Tn,c)}function ay(r,o,c){var d=r.stateNode;if(o=o.childContextTypes,typeof d.getChildContext!="function")return c;d=d.getChildContext();for(var m in d)if(!(m in o))throw Error(n(108,We(r)||"Unknown",m));return V({},c,d)}function wc(r){return r=(r=r.stateNode)&&r.__reactInternalMemoizedMergedChildContext||Br,bi=cn.current,_t(cn,r),_t(Tn,Tn.current),!0}function ry(r,o,c){var d=r.stateNode;if(!d)throw Error(n(169));c?(r=ay(r,o,bi),d.__reactInternalMemoizedMergedChildContext=r,Pt(Tn),Pt(cn),_t(cn,r)):Pt(Tn),_t(Tn,c)}var dr=null,xc=!1,Ph=!1;function iy(r){dr===null?dr=[r]:dr.push(r)}function c3(r){xc=!0,iy(r)}function Fr(){if(!Ph&&dr!==null){Ph=!0;var r=0,o=pt;try{var c=dr;for(pt=1;r<c.length;r++){var d=c[r];do d=d(!0);while(d!==null)}dr=null,xc=!1}catch(m){throw dr!==null&&(dr=dr.slice(r+1)),ht(lr,Fr),m}finally{pt=o,Ph=!1}}return null}var _o=[],wo=0,Pc=null,Sc=0,qn=[],Yn=0,ki=null,hr=1,fr="";function _i(r,o){_o[wo++]=Sc,_o[wo++]=Pc,Pc=r,Sc=o}function oy(r,o,c){qn[Yn++]=hr,qn[Yn++]=fr,qn[Yn++]=ki,ki=r;var d=hr;r=fr;var m=32-sn(d)-1;d&=~(1<<m),c+=1;var y=32-sn(o)+m;if(30<y){var x=m-m%5;y=(d&(1<<x)-1).toString(32),d>>=x,m-=x,hr=1<<32-sn(o)+m|c<<m|d,fr=y+r}else hr=1<<y|c<<m|d,fr=r}function Sh(r){r.return!==null&&(_i(r,1),oy(r,1,0))}function Ch(r){for(;r===Pc;)Pc=_o[--wo],_o[wo]=null,Sc=_o[--wo],_o[wo]=null;for(;r===ki;)ki=qn[--Yn],qn[Yn]=null,fr=qn[--Yn],qn[Yn]=null,hr=qn[--Yn],qn[Yn]=null}var Bn=null,Fn=null,Tt=!1,ma=null;function sy(r,o){var c=Qn(5,null,null,0);c.elementType="DELETED",c.stateNode=o,c.return=r,o=r.deletions,o===null?(r.deletions=[c],r.flags|=16):o.push(c)}function ly(r,o){switch(r.tag){case 5:var c=r.type;return o=o.nodeType!==1||c.toLowerCase()!==o.nodeName.toLowerCase()?null:o,o!==null?(r.stateNode=o,Bn=r,Fn=Ur(o.firstChild),!0):!1;case 6:return o=r.pendingProps===""||o.nodeType!==3?null:o,o!==null?(r.stateNode=o,Bn=r,Fn=null,!0):!1;case 13:return o=o.nodeType!==8?null:o,o!==null?(c=ki!==null?{id:hr,overflow:fr}:null,r.memoizedState={dehydrated:o,treeContext:c,retryLane:1073741824},c=Qn(18,null,null,0),c.stateNode=o,c.return=r,r.child=c,Bn=r,Fn=null,!0):!1;default:return!1}}function Th(r){return(r.mode&1)!==0&&(r.flags&128)===0}function Eh(r){if(Tt){var o=Fn;if(o){var c=o;if(!ly(r,o)){if(Th(r))throw Error(n(418));o=Ur(c.nextSibling);var d=Bn;o&&ly(r,o)?sy(d,c):(r.flags=r.flags&-4097|2,Tt=!1,Bn=r)}}else{if(Th(r))throw Error(n(418));r.flags=r.flags&-4097|2,Tt=!1,Bn=r}}}function cy(r){for(r=r.return;r!==null&&r.tag!==5&&r.tag!==3&&r.tag!==13;)r=r.return;Bn=r}function Cc(r){if(r!==Bn)return!1;if(!Tt)return cy(r),Tt=!0,!1;var o;if((o=r.tag!==3)&&!(o=r.tag!==5)&&(o=r.type,o=o!=="head"&&o!=="body"&&!bh(r.type,r.memoizedProps)),o&&(o=Fn)){if(Th(r))throw uy(),Error(n(418));for(;o;)sy(r,o),o=Ur(o.nextSibling)}if(cy(r),r.tag===13){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(n(317));e:{for(r=r.nextSibling,o=0;r;){if(r.nodeType===8){var c=r.data;if(c==="/$"){if(o===0){Fn=Ur(r.nextSibling);break e}o--}else c!=="$"&&c!=="$!"&&c!=="$?"||o++}r=r.nextSibling}Fn=null}}else Fn=Bn?Ur(r.stateNode.nextSibling):null;return!0}function uy(){for(var r=Fn;r;)r=Ur(r.nextSibling)}function xo(){Fn=Bn=null,Tt=!1}function Ah(r){ma===null?ma=[r]:ma.push(r)}var u3=A.ReactCurrentBatchConfig;function Vs(r,o,c){if(r=c.ref,r!==null&&typeof r!="function"&&typeof r!="object"){if(c._owner){if(c=c._owner,c){if(c.tag!==1)throw Error(n(309));var d=c.stateNode}if(!d)throw Error(n(147,r));var m=d,y=""+r;return o!==null&&o.ref!==null&&typeof o.ref=="function"&&o.ref._stringRef===y?o.ref:(o=function(x){var I=m.refs;x===null?delete I[y]:I[y]=x},o._stringRef=y,o)}if(typeof r!="string")throw Error(n(284));if(!c._owner)throw Error(n(290,r))}return r}function Tc(r,o){throw r=Object.prototype.toString.call(o),Error(n(31,r==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":r))}function dy(r){var o=r._init;return o(r._payload)}function hy(r){function o(H,B){if(r){var W=H.deletions;W===null?(H.deletions=[B],H.flags|=16):W.push(B)}}function c(H,B){if(!r)return null;for(;B!==null;)o(H,B),B=B.sibling;return null}function d(H,B){for(H=new Map;B!==null;)B.key!==null?H.set(B.key,B):H.set(B.index,B),B=B.sibling;return H}function m(H,B){return H=Yr(H,B),H.index=0,H.sibling=null,H}function y(H,B,W){return H.index=W,r?(W=H.alternate,W!==null?(W=W.index,W<B?(H.flags|=2,B):W):(H.flags|=2,B)):(H.flags|=1048576,B)}function x(H){return r&&H.alternate===null&&(H.flags|=2),H}function I(H,B,W,ue){return B===null||B.tag!==6?(B=_f(W,H.mode,ue),B.return=H,B):(B=m(B,W),B.return=H,B)}function O(H,B,W,ue){var Ee=W.type;return Ee===j?ae(H,B,W.props.children,ue,W.key):B!==null&&(B.elementType===Ee||typeof Ee=="object"&&Ee!==null&&Ee.$$typeof===oe&&dy(Ee)===B.type)?(ue=m(B,W.props),ue.ref=Vs(H,B,W),ue.return=H,ue):(ue=Xc(W.type,W.key,W.props,null,H.mode,ue),ue.ref=Vs(H,B,W),ue.return=H,ue)}function q(H,B,W,ue){return B===null||B.tag!==4||B.stateNode.containerInfo!==W.containerInfo||B.stateNode.implementation!==W.implementation?(B=wf(W,H.mode,ue),B.return=H,B):(B=m(B,W.children||[]),B.return=H,B)}function ae(H,B,W,ue,Ee){return B===null||B.tag!==7?(B=Ai(W,H.mode,ue,Ee),B.return=H,B):(B=m(B,W),B.return=H,B)}function ie(H,B,W){if(typeof B=="string"&&B!==""||typeof B=="number")return B=_f(""+B,H.mode,W),B.return=H,B;if(typeof B=="object"&&B!==null){switch(B.$$typeof){case U:return W=Xc(B.type,B.key,B.props,null,H.mode,W),W.ref=Vs(H,null,B),W.return=H,W;case F:return B=wf(B,H.mode,W),B.return=H,B;case oe:var ue=B._init;return ie(H,ue(B._payload),W)}if(La(B)||J(B))return B=Ai(B,H.mode,W,null),B.return=H,B;Tc(H,B)}return null}function ne(H,B,W,ue){var Ee=B!==null?B.key:null;if(typeof W=="string"&&W!==""||typeof W=="number")return Ee!==null?null:I(H,B,""+W,ue);if(typeof W=="object"&&W!==null){switch(W.$$typeof){case U:return W.key===Ee?O(H,B,W,ue):null;case F:return W.key===Ee?q(H,B,W,ue):null;case oe:return Ee=W._init,ne(H,B,Ee(W._payload),ue)}if(La(W)||J(W))return Ee!==null?null:ae(H,B,W,ue,null);Tc(H,W)}return null}function be(H,B,W,ue,Ee){if(typeof ue=="string"&&ue!==""||typeof ue=="number")return H=H.get(W)||null,I(B,H,""+ue,Ee);if(typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case U:return H=H.get(ue.key===null?W:ue.key)||null,O(B,H,ue,Ee);case F:return H=H.get(ue.key===null?W:ue.key)||null,q(B,H,ue,Ee);case oe:var Oe=ue._init;return be(H,B,W,Oe(ue._payload),Ee)}if(La(ue)||J(ue))return H=H.get(W)||null,ae(B,H,ue,Ee,null);Tc(B,ue)}return null}function Se(H,B,W,ue){for(var Ee=null,Oe=null,je=B,Fe=B=0,Xt=null;je!==null&&Fe<W.length;Fe++){je.index>Fe?(Xt=je,je=null):Xt=je.sibling;var ut=ne(H,je,W[Fe],ue);if(ut===null){je===null&&(je=Xt);break}r&&je&&ut.alternate===null&&o(H,je),B=y(ut,B,Fe),Oe===null?Ee=ut:Oe.sibling=ut,Oe=ut,je=Xt}if(Fe===W.length)return c(H,je),Tt&&_i(H,Fe),Ee;if(je===null){for(;Fe<W.length;Fe++)je=ie(H,W[Fe],ue),je!==null&&(B=y(je,B,Fe),Oe===null?Ee=je:Oe.sibling=je,Oe=je);return Tt&&_i(H,Fe),Ee}for(je=d(H,je);Fe<W.length;Fe++)Xt=be(je,H,Fe,W[Fe],ue),Xt!==null&&(r&&Xt.alternate!==null&&je.delete(Xt.key===null?Fe:Xt.key),B=y(Xt,B,Fe),Oe===null?Ee=Xt:Oe.sibling=Xt,Oe=Xt);return r&&je.forEach(function(Zr){return o(H,Zr)}),Tt&&_i(H,Fe),Ee}function Te(H,B,W,ue){var Ee=J(W);if(typeof Ee!="function")throw Error(n(150));if(W=Ee.call(W),W==null)throw Error(n(151));for(var Oe=Ee=null,je=B,Fe=B=0,Xt=null,ut=W.next();je!==null&&!ut.done;Fe++,ut=W.next()){je.index>Fe?(Xt=je,je=null):Xt=je.sibling;var Zr=ne(H,je,ut.value,ue);if(Zr===null){je===null&&(je=Xt);break}r&&je&&Zr.alternate===null&&o(H,je),B=y(Zr,B,Fe),Oe===null?Ee=Zr:Oe.sibling=Zr,Oe=Zr,je=Xt}if(ut.done)return c(H,je),Tt&&_i(H,Fe),Ee;if(je===null){for(;!ut.done;Fe++,ut=W.next())ut=ie(H,ut.value,ue),ut!==null&&(B=y(ut,B,Fe),Oe===null?Ee=ut:Oe.sibling=ut,Oe=ut);return Tt&&_i(H,Fe),Ee}for(je=d(H,je);!ut.done;Fe++,ut=W.next())ut=be(je,H,Fe,ut.value,ue),ut!==null&&(r&&ut.alternate!==null&&je.delete(ut.key===null?Fe:ut.key),B=y(ut,B,Fe),Oe===null?Ee=ut:Oe.sibling=ut,Oe=ut);return r&&je.forEach(function(H3){return o(H,H3)}),Tt&&_i(H,Fe),Ee}function jt(H,B,W,ue){if(typeof W=="object"&&W!==null&&W.type===j&&W.key===null&&(W=W.props.children),typeof W=="object"&&W!==null){switch(W.$$typeof){case U:e:{for(var Ee=W.key,Oe=B;Oe!==null;){if(Oe.key===Ee){if(Ee=W.type,Ee===j){if(Oe.tag===7){c(H,Oe.sibling),B=m(Oe,W.props.children),B.return=H,H=B;break e}}else if(Oe.elementType===Ee||typeof Ee=="object"&&Ee!==null&&Ee.$$typeof===oe&&dy(Ee)===Oe.type){c(H,Oe.sibling),B=m(Oe,W.props),B.ref=Vs(H,Oe,W),B.return=H,H=B;break e}c(H,Oe);break}else o(H,Oe);Oe=Oe.sibling}W.type===j?(B=Ai(W.props.children,H.mode,ue,W.key),B.return=H,H=B):(ue=Xc(W.type,W.key,W.props,null,H.mode,ue),ue.ref=Vs(H,B,W),ue.return=H,H=ue)}return x(H);case F:e:{for(Oe=W.key;B!==null;){if(B.key===Oe)if(B.tag===4&&B.stateNode.containerInfo===W.containerInfo&&B.stateNode.implementation===W.implementation){c(H,B.sibling),B=m(B,W.children||[]),B.return=H,H=B;break e}else{c(H,B);break}else o(H,B);B=B.sibling}B=wf(W,H.mode,ue),B.return=H,H=B}return x(H);case oe:return Oe=W._init,jt(H,B,Oe(W._payload),ue)}if(La(W))return Se(H,B,W,ue);if(J(W))return Te(H,B,W,ue);Tc(H,W)}return typeof W=="string"&&W!==""||typeof W=="number"?(W=""+W,B!==null&&B.tag===6?(c(H,B.sibling),B=m(B,W),B.return=H,H=B):(c(H,B),B=_f(W,H.mode,ue),B.return=H,H=B),x(H)):c(H,B)}return jt}var Po=hy(!0),fy=hy(!1),Ec=zr(null),Ac=null,So=null,Rh=null;function Lh(){Rh=So=Ac=null}function Dh(r){var o=Ec.current;Pt(Ec),r._currentValue=o}function Ih(r,o,c){for(;r!==null;){var d=r.alternate;if((r.childLanes&o)!==o?(r.childLanes|=o,d!==null&&(d.childLanes|=o)):d!==null&&(d.childLanes&o)!==o&&(d.childLanes|=o),r===c)break;r=r.return}}function Co(r,o){Ac=r,Rh=So=null,r=r.dependencies,r!==null&&r.firstContext!==null&&((r.lanes&o)!==0&&(An=!0),r.firstContext=null)}function Zn(r){var o=r._currentValue;if(Rh!==r)if(r={context:r,memoizedValue:o,next:null},So===null){if(Ac===null)throw Error(n(308));So=r,Ac.dependencies={lanes:0,firstContext:r}}else So=So.next=r;return o}var wi=null;function Mh(r){wi===null?wi=[r]:wi.push(r)}function py(r,o,c,d){var m=o.interleaved;return m===null?(c.next=c,Mh(o)):(c.next=m.next,m.next=c),o.interleaved=c,pr(r,d)}function pr(r,o){r.lanes|=o;var c=r.alternate;for(c!==null&&(c.lanes|=o),c=r,r=r.return;r!==null;)r.childLanes|=o,c=r.alternate,c!==null&&(c.childLanes|=o),c=r,r=r.return;return c.tag===3?c.stateNode:null}var Vr=!1;function Nh(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function my(r,o){r=r.updateQueue,o.updateQueue===r&&(o.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,effects:r.effects})}function mr(r,o){return{eventTime:r,lane:o,tag:0,payload:null,callback:null,next:null}}function Hr(r,o,c){var d=r.updateQueue;if(d===null)return null;if(d=d.shared,(st&2)!==0){var m=d.pending;return m===null?o.next=o:(o.next=m.next,m.next=o),d.pending=o,pr(r,c)}return m=d.interleaved,m===null?(o.next=o,Mh(d)):(o.next=m.next,m.next=o),d.interleaved=o,pr(r,c)}function Rc(r,o,c){if(o=o.updateQueue,o!==null&&(o=o.shared,(c&4194240)!==0)){var d=o.lanes;d&=r.pendingLanes,c|=d,o.lanes=c,Yd(r,c)}}function gy(r,o){var c=r.updateQueue,d=r.alternate;if(d!==null&&(d=d.updateQueue,c===d)){var m=null,y=null;if(c=c.firstBaseUpdate,c!==null){do{var x={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};y===null?m=y=x:y=y.next=x,c=c.next}while(c!==null);y===null?m=y=o:y=y.next=o}else m=y=o;c={baseState:d.baseState,firstBaseUpdate:m,lastBaseUpdate:y,shared:d.shared,effects:d.effects},r.updateQueue=c;return}r=c.lastBaseUpdate,r===null?c.firstBaseUpdate=o:r.next=o,c.lastBaseUpdate=o}function Lc(r,o,c,d){var m=r.updateQueue;Vr=!1;var y=m.firstBaseUpdate,x=m.lastBaseUpdate,I=m.shared.pending;if(I!==null){m.shared.pending=null;var O=I,q=O.next;O.next=null,x===null?y=q:x.next=q,x=O;var ae=r.alternate;ae!==null&&(ae=ae.updateQueue,I=ae.lastBaseUpdate,I!==x&&(I===null?ae.firstBaseUpdate=q:I.next=q,ae.lastBaseUpdate=O))}if(y!==null){var ie=m.baseState;x=0,ae=q=O=null,I=y;do{var ne=I.lane,be=I.eventTime;if((d&ne)===ne){ae!==null&&(ae=ae.next={eventTime:be,lane:0,tag:I.tag,payload:I.payload,callback:I.callback,next:null});e:{var Se=r,Te=I;switch(ne=o,be=c,Te.tag){case 1:if(Se=Te.payload,typeof Se=="function"){ie=Se.call(be,ie,ne);break e}ie=Se;break e;case 3:Se.flags=Se.flags&-65537|128;case 0:if(Se=Te.payload,ne=typeof Se=="function"?Se.call(be,ie,ne):Se,ne==null)break e;ie=V({},ie,ne);break e;case 2:Vr=!0}}I.callback!==null&&I.lane!==0&&(r.flags|=64,ne=m.effects,ne===null?m.effects=[I]:ne.push(I))}else be={eventTime:be,lane:ne,tag:I.tag,payload:I.payload,callback:I.callback,next:null},ae===null?(q=ae=be,O=ie):ae=ae.next=be,x|=ne;if(I=I.next,I===null){if(I=m.shared.pending,I===null)break;ne=I,I=ne.next,ne.next=null,m.lastBaseUpdate=ne,m.shared.pending=null}}while(!0);if(ae===null&&(O=ie),m.baseState=O,m.firstBaseUpdate=q,m.lastBaseUpdate=ae,o=m.shared.interleaved,o!==null){m=o;do x|=m.lane,m=m.next;while(m!==o)}else y===null&&(m.shared.lanes=0);Si|=x,r.lanes=x,r.memoizedState=ie}}function yy(r,o,c){if(r=o.effects,o.effects=null,r!==null)for(o=0;o<r.length;o++){var d=r[o],m=d.callback;if(m!==null){if(d.callback=null,d=c,typeof m!="function")throw Error(n(191,m));m.call(d)}}}var Hs={},Oa=zr(Hs),$s=zr(Hs),Ws=zr(Hs);function xi(r){if(r===Hs)throw Error(n(174));return r}function Oh(r,o){switch(_t(Ws,o),_t($s,r),_t(Oa,Hs),r=o.nodeType,r){case 9:case 11:o=(o=o.documentElement)?o.namespaceURI:At(null,"");break;default:r=r===8?o.parentNode:o,o=r.namespaceURI||null,r=r.tagName,o=At(o,r)}Pt(Oa),_t(Oa,o)}function To(){Pt(Oa),Pt($s),Pt(Ws)}function vy(r){xi(Ws.current);var o=xi(Oa.current),c=At(o,r.type);o!==c&&(_t($s,r),_t(Oa,c))}function jh(r){$s.current===r&&(Pt(Oa),Pt($s))}var Rt=zr(0);function Dc(r){for(var o=r;o!==null;){if(o.tag===13){var c=o.memoizedState;if(c!==null&&(c=c.dehydrated,c===null||c.data==="$?"||c.data==="$!"))return o}else if(o.tag===19&&o.memoizedProps.revealOrder!==void 0){if((o.flags&128)!==0)return o}else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===r)break;for(;o.sibling===null;){if(o.return===null||o.return===r)return null;o=o.return}o.sibling.return=o.return,o=o.sibling}return null}var Uh=[];function zh(){for(var r=0;r<Uh.length;r++)Uh[r]._workInProgressVersionPrimary=null;Uh.length=0}var Ic=A.ReactCurrentDispatcher,Bh=A.ReactCurrentBatchConfig,Pi=0,Lt=null,$t=null,Yt=null,Mc=!1,Gs=!1,Ks=0,d3=0;function un(){throw Error(n(321))}function Fh(r,o){if(o===null)return!1;for(var c=0;c<o.length&&c<r.length;c++)if(!pa(r[c],o[c]))return!1;return!0}function Vh(r,o,c,d,m,y){if(Pi=y,Lt=o,o.memoizedState=null,o.updateQueue=null,o.lanes=0,Ic.current=r===null||r.memoizedState===null?m3:g3,r=c(d,m),Gs){y=0;do{if(Gs=!1,Ks=0,25<=y)throw Error(n(301));y+=1,Yt=$t=null,o.updateQueue=null,Ic.current=y3,r=c(d,m)}while(Gs)}if(Ic.current=jc,o=$t!==null&&$t.next!==null,Pi=0,Yt=$t=Lt=null,Mc=!1,o)throw Error(n(300));return r}function Hh(){var r=Ks!==0;return Ks=0,r}function ja(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Yt===null?Lt.memoizedState=Yt=r:Yt=Yt.next=r,Yt}function Xn(){if($t===null){var r=Lt.alternate;r=r!==null?r.memoizedState:null}else r=$t.next;var o=Yt===null?Lt.memoizedState:Yt.next;if(o!==null)Yt=o,$t=r;else{if(r===null)throw Error(n(310));$t=r,r={memoizedState:$t.memoizedState,baseState:$t.baseState,baseQueue:$t.baseQueue,queue:$t.queue,next:null},Yt===null?Lt.memoizedState=Yt=r:Yt=Yt.next=r}return Yt}function qs(r,o){return typeof o=="function"?o(r):o}function $h(r){var o=Xn(),c=o.queue;if(c===null)throw Error(n(311));c.lastRenderedReducer=r;var d=$t,m=d.baseQueue,y=c.pending;if(y!==null){if(m!==null){var x=m.next;m.next=y.next,y.next=x}d.baseQueue=m=y,c.pending=null}if(m!==null){y=m.next,d=d.baseState;var I=x=null,O=null,q=y;do{var ae=q.lane;if((Pi&ae)===ae)O!==null&&(O=O.next={lane:0,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null}),d=q.hasEagerState?q.eagerState:r(d,q.action);else{var ie={lane:ae,action:q.action,hasEagerState:q.hasEagerState,eagerState:q.eagerState,next:null};O===null?(I=O=ie,x=d):O=O.next=ie,Lt.lanes|=ae,Si|=ae}q=q.next}while(q!==null&&q!==y);O===null?x=d:O.next=I,pa(d,o.memoizedState)||(An=!0),o.memoizedState=d,o.baseState=x,o.baseQueue=O,c.lastRenderedState=d}if(r=c.interleaved,r!==null){m=r;do y=m.lane,Lt.lanes|=y,Si|=y,m=m.next;while(m!==r)}else m===null&&(c.lanes=0);return[o.memoizedState,c.dispatch]}function Wh(r){var o=Xn(),c=o.queue;if(c===null)throw Error(n(311));c.lastRenderedReducer=r;var d=c.dispatch,m=c.pending,y=o.memoizedState;if(m!==null){c.pending=null;var x=m=m.next;do y=r(y,x.action),x=x.next;while(x!==m);pa(y,o.memoizedState)||(An=!0),o.memoizedState=y,o.baseQueue===null&&(o.baseState=y),c.lastRenderedState=y}return[y,d]}function by(){}function ky(r,o){var c=Lt,d=Xn(),m=o(),y=!pa(d.memoizedState,m);if(y&&(d.memoizedState=m,An=!0),d=d.queue,Gh(xy.bind(null,c,d,r),[r]),d.getSnapshot!==o||y||Yt!==null&&Yt.memoizedState.tag&1){if(c.flags|=2048,Ys(9,wy.bind(null,c,d,m,o),void 0,null),Zt===null)throw Error(n(349));(Pi&30)!==0||_y(c,o,m)}return m}function _y(r,o,c){r.flags|=16384,r={getSnapshot:o,value:c},o=Lt.updateQueue,o===null?(o={lastEffect:null,stores:null},Lt.updateQueue=o,o.stores=[r]):(c=o.stores,c===null?o.stores=[r]:c.push(r))}function wy(r,o,c,d){o.value=c,o.getSnapshot=d,Py(o)&&Sy(r)}function xy(r,o,c){return c(function(){Py(o)&&Sy(r)})}function Py(r){var o=r.getSnapshot;r=r.value;try{var c=o();return!pa(r,c)}catch{return!0}}function Sy(r){var o=pr(r,1);o!==null&&ba(o,r,1,-1)}function Cy(r){var o=ja();return typeof r=="function"&&(r=r()),o.memoizedState=o.baseState=r,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:qs,lastRenderedState:r},o.queue=r,r=r.dispatch=p3.bind(null,Lt,r),[o.memoizedState,r]}function Ys(r,o,c,d){return r={tag:r,create:o,destroy:c,deps:d,next:null},o=Lt.updateQueue,o===null?(o={lastEffect:null,stores:null},Lt.updateQueue=o,o.lastEffect=r.next=r):(c=o.lastEffect,c===null?o.lastEffect=r.next=r:(d=c.next,c.next=r,r.next=d,o.lastEffect=r)),r}function Ty(){return Xn().memoizedState}function Nc(r,o,c,d){var m=ja();Lt.flags|=r,m.memoizedState=Ys(1|o,c,void 0,d===void 0?null:d)}function Oc(r,o,c,d){var m=Xn();d=d===void 0?null:d;var y=void 0;if($t!==null){var x=$t.memoizedState;if(y=x.destroy,d!==null&&Fh(d,x.deps)){m.memoizedState=Ys(o,c,y,d);return}}Lt.flags|=r,m.memoizedState=Ys(1|o,c,y,d)}function Ey(r,o){return Nc(8390656,8,r,o)}function Gh(r,o){return Oc(2048,8,r,o)}function Ay(r,o){return Oc(4,2,r,o)}function Ry(r,o){return Oc(4,4,r,o)}function Ly(r,o){if(typeof o=="function")return r=r(),o(r),function(){o(null)};if(o!=null)return r=r(),o.current=r,function(){o.current=null}}function Dy(r,o,c){return c=c!=null?c.concat([r]):null,Oc(4,4,Ly.bind(null,o,r),c)}function Kh(){}function Iy(r,o){var c=Xn();o=o===void 0?null:o;var d=c.memoizedState;return d!==null&&o!==null&&Fh(o,d[1])?d[0]:(c.memoizedState=[r,o],r)}function My(r,o){var c=Xn();o=o===void 0?null:o;var d=c.memoizedState;return d!==null&&o!==null&&Fh(o,d[1])?d[0]:(r=r(),c.memoizedState=[r,o],r)}function Ny(r,o,c){return(Pi&21)===0?(r.baseState&&(r.baseState=!1,An=!0),r.memoizedState=c):(pa(c,o)||(c=rc(),Lt.lanes|=c,Si|=c,r.baseState=!0),o)}function h3(r,o){var c=pt;pt=c!==0&&4>c?c:4,r(!0);var d=Bh.transition;Bh.transition={};try{r(!1),o()}finally{pt=c,Bh.transition=d}}function Oy(){return Xn().memoizedState}function f3(r,o,c){var d=Kr(r);if(c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null},jy(r))Uy(o,c);else if(c=py(r,o,c,d),c!==null){var m=vn();ba(c,r,d,m),zy(c,o,d)}}function p3(r,o,c){var d=Kr(r),m={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(jy(r))Uy(o,m);else{var y=r.alternate;if(r.lanes===0&&(y===null||y.lanes===0)&&(y=o.lastRenderedReducer,y!==null))try{var x=o.lastRenderedState,I=y(x,c);if(m.hasEagerState=!0,m.eagerState=I,pa(I,x)){var O=o.interleaved;O===null?(m.next=m,Mh(o)):(m.next=O.next,O.next=m),o.interleaved=m;return}}catch{}c=py(r,o,m,d),c!==null&&(m=vn(),ba(c,r,d,m),zy(c,o,d))}}function jy(r){var o=r.alternate;return r===Lt||o!==null&&o===Lt}function Uy(r,o){Gs=Mc=!0;var c=r.pending;c===null?o.next=o:(o.next=c.next,c.next=o),r.pending=o}function zy(r,o,c){if((c&4194240)!==0){var d=o.lanes;d&=r.pendingLanes,c|=d,o.lanes=c,Yd(r,c)}}var jc={readContext:Zn,useCallback:un,useContext:un,useEffect:un,useImperativeHandle:un,useInsertionEffect:un,useLayoutEffect:un,useMemo:un,useReducer:un,useRef:un,useState:un,useDebugValue:un,useDeferredValue:un,useTransition:un,useMutableSource:un,useSyncExternalStore:un,useId:un,unstable_isNewReconciler:!1},m3={readContext:Zn,useCallback:function(r,o){return ja().memoizedState=[r,o===void 0?null:o],r},useContext:Zn,useEffect:Ey,useImperativeHandle:function(r,o,c){return c=c!=null?c.concat([r]):null,Nc(4194308,4,Ly.bind(null,o,r),c)},useLayoutEffect:function(r,o){return Nc(4194308,4,r,o)},useInsertionEffect:function(r,o){return Nc(4,2,r,o)},useMemo:function(r,o){var c=ja();return o=o===void 0?null:o,r=r(),c.memoizedState=[r,o],r},useReducer:function(r,o,c){var d=ja();return o=c!==void 0?c(o):o,d.memoizedState=d.baseState=o,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:o},d.queue=r,r=r.dispatch=f3.bind(null,Lt,r),[d.memoizedState,r]},useRef:function(r){var o=ja();return r={current:r},o.memoizedState=r},useState:Cy,useDebugValue:Kh,useDeferredValue:function(r){return ja().memoizedState=r},useTransition:function(){var r=Cy(!1),o=r[0];return r=h3.bind(null,r[1]),ja().memoizedState=r,[o,r]},useMutableSource:function(){},useSyncExternalStore:function(r,o,c){var d=Lt,m=ja();if(Tt){if(c===void 0)throw Error(n(407));c=c()}else{if(c=o(),Zt===null)throw Error(n(349));(Pi&30)!==0||_y(d,o,c)}m.memoizedState=c;var y={value:c,getSnapshot:o};return m.queue=y,Ey(xy.bind(null,d,y,r),[r]),d.flags|=2048,Ys(9,wy.bind(null,d,y,c,o),void 0,null),c},useId:function(){var r=ja(),o=Zt.identifierPrefix;if(Tt){var c=fr,d=hr;c=(d&~(1<<32-sn(d)-1)).toString(32)+c,o=":"+o+"R"+c,c=Ks++,0<c&&(o+="H"+c.toString(32)),o+=":"}else c=d3++,o=":"+o+"r"+c.toString(32)+":";return r.memoizedState=o},unstable_isNewReconciler:!1},g3={readContext:Zn,useCallback:Iy,useContext:Zn,useEffect:Gh,useImperativeHandle:Dy,useInsertionEffect:Ay,useLayoutEffect:Ry,useMemo:My,useReducer:$h,useRef:Ty,useState:function(){return $h(qs)},useDebugValue:Kh,useDeferredValue:function(r){var o=Xn();return Ny(o,$t.memoizedState,r)},useTransition:function(){var r=$h(qs)[0],o=Xn().memoizedState;return[r,o]},useMutableSource:by,useSyncExternalStore:ky,useId:Oy,unstable_isNewReconciler:!1},y3={readContext:Zn,useCallback:Iy,useContext:Zn,useEffect:Gh,useImperativeHandle:Dy,useInsertionEffect:Ay,useLayoutEffect:Ry,useMemo:My,useReducer:Wh,useRef:Ty,useState:function(){return Wh(qs)},useDebugValue:Kh,useDeferredValue:function(r){var o=Xn();return $t===null?o.memoizedState=r:Ny(o,$t.memoizedState,r)},useTransition:function(){var r=Wh(qs)[0],o=Xn().memoizedState;return[r,o]},useMutableSource:by,useSyncExternalStore:ky,useId:Oy,unstable_isNewReconciler:!1};function ga(r,o){if(r&&r.defaultProps){o=V({},o),r=r.defaultProps;for(var c in r)o[c]===void 0&&(o[c]=r[c]);return o}return o}function qh(r,o,c,d){o=r.memoizedState,c=c(d,o),c=c==null?o:V({},o,c),r.memoizedState=c,r.lanes===0&&(r.updateQueue.baseState=c)}var Uc={isMounted:function(r){return(r=r._reactInternals)?ve(r)===r:!1},enqueueSetState:function(r,o,c){r=r._reactInternals;var d=vn(),m=Kr(r),y=mr(d,m);y.payload=o,c!=null&&(y.callback=c),o=Hr(r,y,m),o!==null&&(ba(o,r,m,d),Rc(o,r,m))},enqueueReplaceState:function(r,o,c){r=r._reactInternals;var d=vn(),m=Kr(r),y=mr(d,m);y.tag=1,y.payload=o,c!=null&&(y.callback=c),o=Hr(r,y,m),o!==null&&(ba(o,r,m,d),Rc(o,r,m))},enqueueForceUpdate:function(r,o){r=r._reactInternals;var c=vn(),d=Kr(r),m=mr(c,d);m.tag=2,o!=null&&(m.callback=o),o=Hr(r,m,d),o!==null&&(ba(o,r,d,c),Rc(o,r,d))}};function By(r,o,c,d,m,y,x){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(d,y,x):o.prototype&&o.prototype.isPureReactComponent?!Ns(c,d)||!Ns(m,y):!0}function Fy(r,o,c){var d=!1,m=Br,y=o.contextType;return typeof y=="object"&&y!==null?y=Zn(y):(m=En(o)?bi:cn.current,d=o.contextTypes,y=(d=d!=null)?ko(r,m):Br),o=new o(c,y),r.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=Uc,r.stateNode=o,o._reactInternals=r,d&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=m,r.__reactInternalMemoizedMaskedChildContext=y),o}function Vy(r,o,c,d){r=o.state,typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps(c,d),typeof o.UNSAFE_componentWillReceiveProps=="function"&&o.UNSAFE_componentWillReceiveProps(c,d),o.state!==r&&Uc.enqueueReplaceState(o,o.state,null)}function Yh(r,o,c,d){var m=r.stateNode;m.props=c,m.state=r.memoizedState,m.refs={},Nh(r);var y=o.contextType;typeof y=="object"&&y!==null?m.context=Zn(y):(y=En(o)?bi:cn.current,m.context=ko(r,y)),m.state=r.memoizedState,y=o.getDerivedStateFromProps,typeof y=="function"&&(qh(r,o,y,c),m.state=r.memoizedState),typeof o.getDerivedStateFromProps=="function"||typeof m.getSnapshotBeforeUpdate=="function"||typeof m.UNSAFE_componentWillMount!="function"&&typeof m.componentWillMount!="function"||(o=m.state,typeof m.componentWillMount=="function"&&m.componentWillMount(),typeof m.UNSAFE_componentWillMount=="function"&&m.UNSAFE_componentWillMount(),o!==m.state&&Uc.enqueueReplaceState(m,m.state,null),Lc(r,c,m,d),m.state=r.memoizedState),typeof m.componentDidMount=="function"&&(r.flags|=4194308)}function Eo(r,o){try{var c="",d=o;do c+=pe(d),d=d.return;while(d);var m=c}catch(y){m=`
8
- Error generating stack: `+y.message+`
9
- `+y.stack}return{value:r,source:o,stack:m,digest:null}}function Zh(r,o,c){return{value:r,source:null,stack:c??null,digest:o??null}}function Xh(r,o){try{console.error(o.value)}catch(c){setTimeout(function(){throw c})}}var v3=typeof WeakMap=="function"?WeakMap:Map;function Hy(r,o,c){c=mr(-1,c),c.tag=3,c.payload={element:null};var d=o.value;return c.callback=function(){Wc||(Wc=!0,ff=d),Xh(r,o)},c}function $y(r,o,c){c=mr(-1,c),c.tag=3;var d=r.type.getDerivedStateFromError;if(typeof d=="function"){var m=o.value;c.payload=function(){return d(m)},c.callback=function(){Xh(r,o)}}var y=r.stateNode;return y!==null&&typeof y.componentDidCatch=="function"&&(c.callback=function(){Xh(r,o),typeof d!="function"&&(Wr===null?Wr=new Set([this]):Wr.add(this));var x=o.stack;this.componentDidCatch(o.value,{componentStack:x!==null?x:""})}),c}function Wy(r,o,c){var d=r.pingCache;if(d===null){d=r.pingCache=new v3;var m=new Set;d.set(o,m)}else m=d.get(o),m===void 0&&(m=new Set,d.set(o,m));m.has(c)||(m.add(c),r=D3.bind(null,r,o,c),o.then(r,r))}function Gy(r){do{var o;if((o=r.tag===13)&&(o=r.memoizedState,o=o!==null?o.dehydrated!==null:!0),o)return r;r=r.return}while(r!==null);return null}function Ky(r,o,c,d,m){return(r.mode&1)===0?(r===o?r.flags|=65536:(r.flags|=128,c.flags|=131072,c.flags&=-52805,c.tag===1&&(c.alternate===null?c.tag=17:(o=mr(-1,1),o.tag=2,Hr(c,o,1))),c.lanes|=1),r):(r.flags|=65536,r.lanes=m,r)}var b3=A.ReactCurrentOwner,An=!1;function yn(r,o,c,d){o.child=r===null?fy(o,null,c,d):Po(o,r.child,c,d)}function qy(r,o,c,d,m){c=c.render;var y=o.ref;return Co(o,m),d=Vh(r,o,c,d,y,m),c=Hh(),r!==null&&!An?(o.updateQueue=r.updateQueue,o.flags&=-2053,r.lanes&=~m,gr(r,o,m)):(Tt&&c&&Sh(o),o.flags|=1,yn(r,o,d,m),o.child)}function Yy(r,o,c,d,m){if(r===null){var y=c.type;return typeof y=="function"&&!kf(y)&&y.defaultProps===void 0&&c.compare===null&&c.defaultProps===void 0?(o.tag=15,o.type=y,Zy(r,o,y,d,m)):(r=Xc(c.type,null,d,o,o.mode,m),r.ref=o.ref,r.return=o,o.child=r)}if(y=r.child,(r.lanes&m)===0){var x=y.memoizedProps;if(c=c.compare,c=c!==null?c:Ns,c(x,d)&&r.ref===o.ref)return gr(r,o,m)}return o.flags|=1,r=Yr(y,d),r.ref=o.ref,r.return=o,o.child=r}function Zy(r,o,c,d,m){if(r!==null){var y=r.memoizedProps;if(Ns(y,d)&&r.ref===o.ref)if(An=!1,o.pendingProps=d=y,(r.lanes&m)!==0)(r.flags&131072)!==0&&(An=!0);else return o.lanes=r.lanes,gr(r,o,m)}return Jh(r,o,c,d,m)}function Xy(r,o,c){var d=o.pendingProps,m=d.children,y=r!==null?r.memoizedState:null;if(d.mode==="hidden")if((o.mode&1)===0)o.memoizedState={baseLanes:0,cachePool:null,transitions:null},_t(Ro,Vn),Vn|=c;else{if((c&1073741824)===0)return r=y!==null?y.baseLanes|c:c,o.lanes=o.childLanes=1073741824,o.memoizedState={baseLanes:r,cachePool:null,transitions:null},o.updateQueue=null,_t(Ro,Vn),Vn|=r,null;o.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=y!==null?y.baseLanes:c,_t(Ro,Vn),Vn|=d}else y!==null?(d=y.baseLanes|c,o.memoizedState=null):d=c,_t(Ro,Vn),Vn|=d;return yn(r,o,m,c),o.child}function Jy(r,o){var c=o.ref;(r===null&&c!==null||r!==null&&r.ref!==c)&&(o.flags|=512,o.flags|=2097152)}function Jh(r,o,c,d,m){var y=En(c)?bi:cn.current;return y=ko(o,y),Co(o,m),c=Vh(r,o,c,d,y,m),d=Hh(),r!==null&&!An?(o.updateQueue=r.updateQueue,o.flags&=-2053,r.lanes&=~m,gr(r,o,m)):(Tt&&d&&Sh(o),o.flags|=1,yn(r,o,c,m),o.child)}function Qy(r,o,c,d,m){if(En(c)){var y=!0;wc(o)}else y=!1;if(Co(o,m),o.stateNode===null)Bc(r,o),Fy(o,c,d),Yh(o,c,d,m),d=!0;else if(r===null){var x=o.stateNode,I=o.memoizedProps;x.props=I;var O=x.context,q=c.contextType;typeof q=="object"&&q!==null?q=Zn(q):(q=En(c)?bi:cn.current,q=ko(o,q));var ae=c.getDerivedStateFromProps,ie=typeof ae=="function"||typeof x.getSnapshotBeforeUpdate=="function";ie||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==d||O!==q)&&Vy(o,x,d,q),Vr=!1;var ne=o.memoizedState;x.state=ne,Lc(o,d,x,m),O=o.memoizedState,I!==d||ne!==O||Tn.current||Vr?(typeof ae=="function"&&(qh(o,c,ae,d),O=o.memoizedState),(I=Vr||By(o,c,I,d,ne,O,q))?(ie||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount()),typeof x.componentDidMount=="function"&&(o.flags|=4194308)):(typeof x.componentDidMount=="function"&&(o.flags|=4194308),o.memoizedProps=d,o.memoizedState=O),x.props=d,x.state=O,x.context=q,d=I):(typeof x.componentDidMount=="function"&&(o.flags|=4194308),d=!1)}else{x=o.stateNode,my(r,o),I=o.memoizedProps,q=o.type===o.elementType?I:ga(o.type,I),x.props=q,ie=o.pendingProps,ne=x.context,O=c.contextType,typeof O=="object"&&O!==null?O=Zn(O):(O=En(c)?bi:cn.current,O=ko(o,O));var be=c.getDerivedStateFromProps;(ae=typeof be=="function"||typeof x.getSnapshotBeforeUpdate=="function")||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(I!==ie||ne!==O)&&Vy(o,x,d,O),Vr=!1,ne=o.memoizedState,x.state=ne,Lc(o,d,x,m);var Se=o.memoizedState;I!==ie||ne!==Se||Tn.current||Vr?(typeof be=="function"&&(qh(o,c,be,d),Se=o.memoizedState),(q=Vr||By(o,c,q,d,ne,Se,O)||!1)?(ae||typeof x.UNSAFE_componentWillUpdate!="function"&&typeof x.componentWillUpdate!="function"||(typeof x.componentWillUpdate=="function"&&x.componentWillUpdate(d,Se,O),typeof x.UNSAFE_componentWillUpdate=="function"&&x.UNSAFE_componentWillUpdate(d,Se,O)),typeof x.componentDidUpdate=="function"&&(o.flags|=4),typeof x.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof x.componentDidUpdate!="function"||I===r.memoizedProps&&ne===r.memoizedState||(o.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===r.memoizedProps&&ne===r.memoizedState||(o.flags|=1024),o.memoizedProps=d,o.memoizedState=Se),x.props=d,x.state=Se,x.context=O,d=q):(typeof x.componentDidUpdate!="function"||I===r.memoizedProps&&ne===r.memoizedState||(o.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||I===r.memoizedProps&&ne===r.memoizedState||(o.flags|=1024),d=!1)}return Qh(r,o,c,d,y,m)}function Qh(r,o,c,d,m,y){Jy(r,o);var x=(o.flags&128)!==0;if(!d&&!x)return m&&ry(o,c,!1),gr(r,o,y);d=o.stateNode,b3.current=o;var I=x&&typeof c.getDerivedStateFromError!="function"?null:d.render();return o.flags|=1,r!==null&&x?(o.child=Po(o,r.child,null,y),o.child=Po(o,null,I,y)):yn(r,o,I,y),o.memoizedState=d.state,m&&ry(o,c,!0),o.child}function ev(r){var o=r.stateNode;o.pendingContext?ny(r,o.pendingContext,o.pendingContext!==o.context):o.context&&ny(r,o.context,!1),Oh(r,o.containerInfo)}function tv(r,o,c,d,m){return xo(),Ah(m),o.flags|=256,yn(r,o,c,d),o.child}var ef={dehydrated:null,treeContext:null,retryLane:0};function tf(r){return{baseLanes:r,cachePool:null,transitions:null}}function nv(r,o,c){var d=o.pendingProps,m=Rt.current,y=!1,x=(o.flags&128)!==0,I;if((I=x)||(I=r!==null&&r.memoizedState===null?!1:(m&2)!==0),I?(y=!0,o.flags&=-129):(r===null||r.memoizedState!==null)&&(m|=1),_t(Rt,m&1),r===null)return Eh(o),r=o.memoizedState,r!==null&&(r=r.dehydrated,r!==null)?((o.mode&1)===0?o.lanes=1:r.data==="$!"?o.lanes=8:o.lanes=1073741824,null):(x=d.children,r=d.fallback,y?(d=o.mode,y=o.child,x={mode:"hidden",children:x},(d&1)===0&&y!==null?(y.childLanes=0,y.pendingProps=x):y=Jc(x,d,0,null),r=Ai(r,d,c,null),y.return=o,r.return=o,y.sibling=r,o.child=y,o.child.memoizedState=tf(c),o.memoizedState=ef,r):nf(o,x));if(m=r.memoizedState,m!==null&&(I=m.dehydrated,I!==null))return k3(r,o,x,d,I,m,c);if(y){y=d.fallback,x=o.mode,m=r.child,I=m.sibling;var O={mode:"hidden",children:d.children};return(x&1)===0&&o.child!==m?(d=o.child,d.childLanes=0,d.pendingProps=O,o.deletions=null):(d=Yr(m,O),d.subtreeFlags=m.subtreeFlags&14680064),I!==null?y=Yr(I,y):(y=Ai(y,x,c,null),y.flags|=2),y.return=o,d.return=o,d.sibling=y,o.child=d,d=y,y=o.child,x=r.child.memoizedState,x=x===null?tf(c):{baseLanes:x.baseLanes|c,cachePool:null,transitions:x.transitions},y.memoizedState=x,y.childLanes=r.childLanes&~c,o.memoizedState=ef,d}return y=r.child,r=y.sibling,d=Yr(y,{mode:"visible",children:d.children}),(o.mode&1)===0&&(d.lanes=c),d.return=o,d.sibling=null,r!==null&&(c=o.deletions,c===null?(o.deletions=[r],o.flags|=16):c.push(r)),o.child=d,o.memoizedState=null,d}function nf(r,o){return o=Jc({mode:"visible",children:o},r.mode,0,null),o.return=r,r.child=o}function zc(r,o,c,d){return d!==null&&Ah(d),Po(o,r.child,null,c),r=nf(o,o.pendingProps.children),r.flags|=2,o.memoizedState=null,r}function k3(r,o,c,d,m,y,x){if(c)return o.flags&256?(o.flags&=-257,d=Zh(Error(n(422))),zc(r,o,x,d)):o.memoizedState!==null?(o.child=r.child,o.flags|=128,null):(y=d.fallback,m=o.mode,d=Jc({mode:"visible",children:d.children},m,0,null),y=Ai(y,m,x,null),y.flags|=2,d.return=o,y.return=o,d.sibling=y,o.child=d,(o.mode&1)!==0&&Po(o,r.child,null,x),o.child.memoizedState=tf(x),o.memoizedState=ef,y);if((o.mode&1)===0)return zc(r,o,x,null);if(m.data==="$!"){if(d=m.nextSibling&&m.nextSibling.dataset,d)var I=d.dgst;return d=I,y=Error(n(419)),d=Zh(y,d,void 0),zc(r,o,x,d)}if(I=(x&r.childLanes)!==0,An||I){if(d=Zt,d!==null){switch(x&-x){case 4:m=2;break;case 16:m=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:m=32;break;case 536870912:m=268435456;break;default:m=0}m=(m&(d.suspendedLanes|x))!==0?0:m,m!==0&&m!==y.retryLane&&(y.retryLane=m,pr(r,m),ba(d,r,m,-1))}return bf(),d=Zh(Error(n(421))),zc(r,o,x,d)}return m.data==="$?"?(o.flags|=128,o.child=r.child,o=I3.bind(null,r),m._reactRetry=o,null):(r=y.treeContext,Fn=Ur(m.nextSibling),Bn=o,Tt=!0,ma=null,r!==null&&(qn[Yn++]=hr,qn[Yn++]=fr,qn[Yn++]=ki,hr=r.id,fr=r.overflow,ki=o),o=nf(o,d.children),o.flags|=4096,o)}function av(r,o,c){r.lanes|=o;var d=r.alternate;d!==null&&(d.lanes|=o),Ih(r.return,o,c)}function af(r,o,c,d,m){var y=r.memoizedState;y===null?r.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:m}:(y.isBackwards=o,y.rendering=null,y.renderingStartTime=0,y.last=d,y.tail=c,y.tailMode=m)}function rv(r,o,c){var d=o.pendingProps,m=d.revealOrder,y=d.tail;if(yn(r,o,d.children,c),d=Rt.current,(d&2)!==0)d=d&1|2,o.flags|=128;else{if(r!==null&&(r.flags&128)!==0)e:for(r=o.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&av(r,c,o);else if(r.tag===19)av(r,c,o);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===o)break e;for(;r.sibling===null;){if(r.return===null||r.return===o)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}d&=1}if(_t(Rt,d),(o.mode&1)===0)o.memoizedState=null;else switch(m){case"forwards":for(c=o.child,m=null;c!==null;)r=c.alternate,r!==null&&Dc(r)===null&&(m=c),c=c.sibling;c=m,c===null?(m=o.child,o.child=null):(m=c.sibling,c.sibling=null),af(o,!1,m,c,y);break;case"backwards":for(c=null,m=o.child,o.child=null;m!==null;){if(r=m.alternate,r!==null&&Dc(r)===null){o.child=m;break}r=m.sibling,m.sibling=c,c=m,m=r}af(o,!0,c,null,y);break;case"together":af(o,!1,null,null,void 0);break;default:o.memoizedState=null}return o.child}function Bc(r,o){(o.mode&1)===0&&r!==null&&(r.alternate=null,o.alternate=null,o.flags|=2)}function gr(r,o,c){if(r!==null&&(o.dependencies=r.dependencies),Si|=o.lanes,(c&o.childLanes)===0)return null;if(r!==null&&o.child!==r.child)throw Error(n(153));if(o.child!==null){for(r=o.child,c=Yr(r,r.pendingProps),o.child=c,c.return=o;r.sibling!==null;)r=r.sibling,c=c.sibling=Yr(r,r.pendingProps),c.return=o;c.sibling=null}return o.child}function _3(r,o,c){switch(o.tag){case 3:ev(o),xo();break;case 5:vy(o);break;case 1:En(o.type)&&wc(o);break;case 4:Oh(o,o.stateNode.containerInfo);break;case 10:var d=o.type._context,m=o.memoizedProps.value;_t(Ec,d._currentValue),d._currentValue=m;break;case 13:if(d=o.memoizedState,d!==null)return d.dehydrated!==null?(_t(Rt,Rt.current&1),o.flags|=128,null):(c&o.child.childLanes)!==0?nv(r,o,c):(_t(Rt,Rt.current&1),r=gr(r,o,c),r!==null?r.sibling:null);_t(Rt,Rt.current&1);break;case 19:if(d=(c&o.childLanes)!==0,(r.flags&128)!==0){if(d)return rv(r,o,c);o.flags|=128}if(m=o.memoizedState,m!==null&&(m.rendering=null,m.tail=null,m.lastEffect=null),_t(Rt,Rt.current),d)break;return null;case 22:case 23:return o.lanes=0,Xy(r,o,c)}return gr(r,o,c)}var iv,rf,ov,sv;iv=function(r,o){for(var c=o.child;c!==null;){if(c.tag===5||c.tag===6)r.appendChild(c.stateNode);else if(c.tag!==4&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===o)break;for(;c.sibling===null;){if(c.return===null||c.return===o)return;c=c.return}c.sibling.return=c.return,c=c.sibling}},rf=function(){},ov=function(r,o,c,d){var m=r.memoizedProps;if(m!==d){r=o.stateNode,xi(Oa.current);var y=null;switch(c){case"input":m=Ut(r,m),d=Ut(r,d),y=[];break;case"select":m=V({},m,{value:void 0}),d=V({},d,{value:void 0}),y=[];break;case"textarea":m=pi(r,m),d=pi(r,d),y=[];break;default:typeof m.onClick!="function"&&typeof d.onClick=="function"&&(r.onclick=bc)}Da(c,d);var x;c=null;for(q in m)if(!d.hasOwnProperty(q)&&m.hasOwnProperty(q)&&m[q]!=null)if(q==="style"){var I=m[q];for(x in I)I.hasOwnProperty(x)&&(c||(c={}),c[x]="")}else q!=="dangerouslySetInnerHTML"&&q!=="children"&&q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&q!=="autoFocus"&&(i.hasOwnProperty(q)?y||(y=[]):(y=y||[]).push(q,null));for(q in d){var O=d[q];if(I=m?.[q],d.hasOwnProperty(q)&&O!==I&&(O!=null||I!=null))if(q==="style")if(I){for(x in I)!I.hasOwnProperty(x)||O&&O.hasOwnProperty(x)||(c||(c={}),c[x]="");for(x in O)O.hasOwnProperty(x)&&I[x]!==O[x]&&(c||(c={}),c[x]=O[x])}else c||(y||(y=[]),y.push(q,c)),c=O;else q==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,I=I?I.__html:void 0,O!=null&&I!==O&&(y=y||[]).push(q,O)):q==="children"?typeof O!="string"&&typeof O!="number"||(y=y||[]).push(q,""+O):q!=="suppressContentEditableWarning"&&q!=="suppressHydrationWarning"&&(i.hasOwnProperty(q)?(O!=null&&q==="onScroll"&&xt("scroll",r),y||I===O||(y=[])):(y=y||[]).push(q,O))}c&&(y=y||[]).push("style",c);var q=y;(o.updateQueue=q)&&(o.flags|=4)}},sv=function(r,o,c,d){c!==d&&(o.flags|=4)};function Zs(r,o){if(!Tt)switch(r.tailMode){case"hidden":o=r.tail;for(var c=null;o!==null;)o.alternate!==null&&(c=o),o=o.sibling;c===null?r.tail=null:c.sibling=null;break;case"collapsed":c=r.tail;for(var d=null;c!==null;)c.alternate!==null&&(d=c),c=c.sibling;d===null?o||r.tail===null?r.tail=null:r.tail.sibling=null:d.sibling=null}}function dn(r){var o=r.alternate!==null&&r.alternate.child===r.child,c=0,d=0;if(o)for(var m=r.child;m!==null;)c|=m.lanes|m.childLanes,d|=m.subtreeFlags&14680064,d|=m.flags&14680064,m.return=r,m=m.sibling;else for(m=r.child;m!==null;)c|=m.lanes|m.childLanes,d|=m.subtreeFlags,d|=m.flags,m.return=r,m=m.sibling;return r.subtreeFlags|=d,r.childLanes=c,o}function w3(r,o,c){var d=o.pendingProps;switch(Ch(o),o.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return dn(o),null;case 1:return En(o.type)&&_c(),dn(o),null;case 3:return d=o.stateNode,To(),Pt(Tn),Pt(cn),zh(),d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null),(r===null||r.child===null)&&(Cc(o)?o.flags|=4:r===null||r.memoizedState.isDehydrated&&(o.flags&256)===0||(o.flags|=1024,ma!==null&&(gf(ma),ma=null))),rf(r,o),dn(o),null;case 5:jh(o);var m=xi(Ws.current);if(c=o.type,r!==null&&o.stateNode!=null)ov(r,o,c,d,m),r.ref!==o.ref&&(o.flags|=512,o.flags|=2097152);else{if(!d){if(o.stateNode===null)throw Error(n(166));return dn(o),null}if(r=xi(Oa.current),Cc(o)){d=o.stateNode,c=o.type;var y=o.memoizedProps;switch(d[Na]=o,d[Bs]=y,r=(o.mode&1)!==0,c){case"dialog":xt("cancel",d),xt("close",d);break;case"iframe":case"object":case"embed":xt("load",d);break;case"video":case"audio":for(m=0;m<js.length;m++)xt(js[m],d);break;case"source":xt("error",d);break;case"img":case"image":case"link":xt("error",d),xt("load",d);break;case"details":xt("toggle",d);break;case"input":fi(d,y),xt("invalid",d);break;case"select":d._wrapperState={wasMultiple:!!y.multiple},xt("invalid",d);break;case"textarea":io(d,y),xt("invalid",d)}Da(c,y),m=null;for(var x in y)if(y.hasOwnProperty(x)){var I=y[x];x==="children"?typeof I=="string"?d.textContent!==I&&(y.suppressHydrationWarning!==!0&&vc(d.textContent,I,r),m=["children",I]):typeof I=="number"&&d.textContent!==""+I&&(y.suppressHydrationWarning!==!0&&vc(d.textContent,I,r),m=["children",""+I]):i.hasOwnProperty(x)&&I!=null&&x==="onScroll"&&xt("scroll",d)}switch(c){case"input":rn(d),ro(d,y,!0);break;case"textarea":rn(d),$e(d);break;case"select":case"option":break;default:typeof y.onClick=="function"&&(d.onclick=bc)}d=m,o.updateQueue=d,d!==null&&(o.flags|=4)}else{x=m.nodeType===9?m:m.ownerDocument,r==="http://www.w3.org/1999/xhtml"&&(r=ct(c)),r==="http://www.w3.org/1999/xhtml"?c==="script"?(r=x.createElement("div"),r.innerHTML="<script><\/script>",r=r.removeChild(r.firstChild)):typeof d.is=="string"?r=x.createElement(c,{is:d.is}):(r=x.createElement(c),c==="select"&&(x=r,d.multiple?x.multiple=!0:d.size&&(x.size=d.size))):r=x.createElementNS(r,c),r[Na]=o,r[Bs]=d,iv(r,o,!1,!1),o.stateNode=r;e:{switch(x=Ia(c,d),c){case"dialog":xt("cancel",r),xt("close",r),m=d;break;case"iframe":case"object":case"embed":xt("load",r),m=d;break;case"video":case"audio":for(m=0;m<js.length;m++)xt(js[m],r);m=d;break;case"source":xt("error",r),m=d;break;case"img":case"image":case"link":xt("error",r),xt("load",r),m=d;break;case"details":xt("toggle",r),m=d;break;case"input":fi(r,d),m=Ut(r,d),xt("invalid",r);break;case"option":m=d;break;case"select":r._wrapperState={wasMultiple:!!d.multiple},m=V({},d,{value:void 0}),xt("invalid",r);break;case"textarea":io(r,d),m=pi(r,d),xt("invalid",r);break;default:m=d}Da(c,m),I=m;for(y in I)if(I.hasOwnProperty(y)){var O=I[y];y==="style"?or(r,O):y==="dangerouslySetInnerHTML"?(O=O?O.__html:void 0,O!=null&&mt(r,O)):y==="children"?typeof O=="string"?(c!=="textarea"||O!=="")&&dt(r,O):typeof O=="number"&&dt(r,""+O):y!=="suppressContentEditableWarning"&&y!=="suppressHydrationWarning"&&y!=="autoFocus"&&(i.hasOwnProperty(y)?O!=null&&y==="onScroll"&&xt("scroll",r):O!=null&&E(r,y,O,x))}switch(c){case"input":rn(r),ro(r,d,!1);break;case"textarea":rn(r),$e(r);break;case"option":d.value!=null&&r.setAttribute("value",""+Xe(d.value));break;case"select":r.multiple=!!d.multiple,y=d.value,y!=null?On(r,!!d.multiple,y,!1):d.defaultValue!=null&&On(r,!!d.multiple,d.defaultValue,!0);break;default:typeof m.onClick=="function"&&(r.onclick=bc)}switch(c){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}}d&&(o.flags|=4)}o.ref!==null&&(o.flags|=512,o.flags|=2097152)}return dn(o),null;case 6:if(r&&o.stateNode!=null)sv(r,o,r.memoizedProps,d);else{if(typeof d!="string"&&o.stateNode===null)throw Error(n(166));if(c=xi(Ws.current),xi(Oa.current),Cc(o)){if(d=o.stateNode,c=o.memoizedProps,d[Na]=o,(y=d.nodeValue!==c)&&(r=Bn,r!==null))switch(r.tag){case 3:vc(d.nodeValue,c,(r.mode&1)!==0);break;case 5:r.memoizedProps.suppressHydrationWarning!==!0&&vc(d.nodeValue,c,(r.mode&1)!==0)}y&&(o.flags|=4)}else d=(c.nodeType===9?c:c.ownerDocument).createTextNode(d),d[Na]=o,o.stateNode=d}return dn(o),null;case 13:if(Pt(Rt),d=o.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(Tt&&Fn!==null&&(o.mode&1)!==0&&(o.flags&128)===0)uy(),xo(),o.flags|=98560,y=!1;else if(y=Cc(o),d!==null&&d.dehydrated!==null){if(r===null){if(!y)throw Error(n(318));if(y=o.memoizedState,y=y!==null?y.dehydrated:null,!y)throw Error(n(317));y[Na]=o}else xo(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;dn(o),y=!1}else ma!==null&&(gf(ma),ma=null),y=!0;if(!y)return o.flags&65536?o:null}return(o.flags&128)!==0?(o.lanes=c,o):(d=d!==null,d!==(r!==null&&r.memoizedState!==null)&&d&&(o.child.flags|=8192,(o.mode&1)!==0&&(r===null||(Rt.current&1)!==0?Wt===0&&(Wt=3):bf())),o.updateQueue!==null&&(o.flags|=4),dn(o),null);case 4:return To(),rf(r,o),r===null&&Us(o.stateNode.containerInfo),dn(o),null;case 10:return Dh(o.type._context),dn(o),null;case 17:return En(o.type)&&_c(),dn(o),null;case 19:if(Pt(Rt),y=o.memoizedState,y===null)return dn(o),null;if(d=(o.flags&128)!==0,x=y.rendering,x===null)if(d)Zs(y,!1);else{if(Wt!==0||r!==null&&(r.flags&128)!==0)for(r=o.child;r!==null;){if(x=Dc(r),x!==null){for(o.flags|=128,Zs(y,!1),d=x.updateQueue,d!==null&&(o.updateQueue=d,o.flags|=4),o.subtreeFlags=0,d=c,c=o.child;c!==null;)y=c,r=d,y.flags&=14680066,x=y.alternate,x===null?(y.childLanes=0,y.lanes=r,y.child=null,y.subtreeFlags=0,y.memoizedProps=null,y.memoizedState=null,y.updateQueue=null,y.dependencies=null,y.stateNode=null):(y.childLanes=x.childLanes,y.lanes=x.lanes,y.child=x.child,y.subtreeFlags=0,y.deletions=null,y.memoizedProps=x.memoizedProps,y.memoizedState=x.memoizedState,y.updateQueue=x.updateQueue,y.type=x.type,r=x.dependencies,y.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext}),c=c.sibling;return _t(Rt,Rt.current&1|2),o.child}r=r.sibling}y.tail!==null&&tt()>Lo&&(o.flags|=128,d=!0,Zs(y,!1),o.lanes=4194304)}else{if(!d)if(r=Dc(x),r!==null){if(o.flags|=128,d=!0,c=r.updateQueue,c!==null&&(o.updateQueue=c,o.flags|=4),Zs(y,!0),y.tail===null&&y.tailMode==="hidden"&&!x.alternate&&!Tt)return dn(o),null}else 2*tt()-y.renderingStartTime>Lo&&c!==1073741824&&(o.flags|=128,d=!0,Zs(y,!1),o.lanes=4194304);y.isBackwards?(x.sibling=o.child,o.child=x):(c=y.last,c!==null?c.sibling=x:o.child=x,y.last=x)}return y.tail!==null?(o=y.tail,y.rendering=o,y.tail=o.sibling,y.renderingStartTime=tt(),o.sibling=null,c=Rt.current,_t(Rt,d?c&1|2:c&1),o):(dn(o),null);case 22:case 23:return vf(),d=o.memoizedState!==null,r!==null&&r.memoizedState!==null!==d&&(o.flags|=8192),d&&(o.mode&1)!==0?(Vn&1073741824)!==0&&(dn(o),o.subtreeFlags&6&&(o.flags|=8192)):dn(o),null;case 24:return null;case 25:return null}throw Error(n(156,o.tag))}function x3(r,o){switch(Ch(o),o.tag){case 1:return En(o.type)&&_c(),r=o.flags,r&65536?(o.flags=r&-65537|128,o):null;case 3:return To(),Pt(Tn),Pt(cn),zh(),r=o.flags,(r&65536)!==0&&(r&128)===0?(o.flags=r&-65537|128,o):null;case 5:return jh(o),null;case 13:if(Pt(Rt),r=o.memoizedState,r!==null&&r.dehydrated!==null){if(o.alternate===null)throw Error(n(340));xo()}return r=o.flags,r&65536?(o.flags=r&-65537|128,o):null;case 19:return Pt(Rt),null;case 4:return To(),null;case 10:return Dh(o.type._context),null;case 22:case 23:return vf(),null;case 24:return null;default:return null}}var Fc=!1,hn=!1,P3=typeof WeakSet=="function"?WeakSet:Set,we=null;function Ao(r,o){var c=r.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(d){It(r,o,d)}else c.current=null}function of(r,o,c){try{c()}catch(d){It(r,o,d)}}var lv=!1;function S3(r,o){if(yh=sc,r=B0(),ch(r)){if("selectionStart"in r)var c={start:r.selectionStart,end:r.selectionEnd};else e:{c=(c=r.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&d.rangeCount!==0){c=d.anchorNode;var m=d.anchorOffset,y=d.focusNode;d=d.focusOffset;try{c.nodeType,y.nodeType}catch{c=null;break e}var x=0,I=-1,O=-1,q=0,ae=0,ie=r,ne=null;t:for(;;){for(var be;ie!==c||m!==0&&ie.nodeType!==3||(I=x+m),ie!==y||d!==0&&ie.nodeType!==3||(O=x+d),ie.nodeType===3&&(x+=ie.nodeValue.length),(be=ie.firstChild)!==null;)ne=ie,ie=be;for(;;){if(ie===r)break t;if(ne===c&&++q===m&&(I=x),ne===y&&++ae===d&&(O=x),(be=ie.nextSibling)!==null)break;ie=ne,ne=ie.parentNode}ie=be}c=I===-1||O===-1?null:{start:I,end:O}}else c=null}c=c||{start:0,end:0}}else c=null;for(vh={focusedElem:r,selectionRange:c},sc=!1,we=o;we!==null;)if(o=we,r=o.child,(o.subtreeFlags&1028)!==0&&r!==null)r.return=o,we=r;else for(;we!==null;){o=we;try{var Se=o.alternate;if((o.flags&1024)!==0)switch(o.tag){case 0:case 11:case 15:break;case 1:if(Se!==null){var Te=Se.memoizedProps,jt=Se.memoizedState,H=o.stateNode,B=H.getSnapshotBeforeUpdate(o.elementType===o.type?Te:ga(o.type,Te),jt);H.__reactInternalSnapshotBeforeUpdate=B}break;case 3:var W=o.stateNode.containerInfo;W.nodeType===1?W.textContent="":W.nodeType===9&&W.documentElement&&W.removeChild(W.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(ue){It(o,o.return,ue)}if(r=o.sibling,r!==null){r.return=o.return,we=r;break}we=o.return}return Se=lv,lv=!1,Se}function Xs(r,o,c){var d=o.updateQueue;if(d=d!==null?d.lastEffect:null,d!==null){var m=d=d.next;do{if((m.tag&r)===r){var y=m.destroy;m.destroy=void 0,y!==void 0&&of(o,c,y)}m=m.next}while(m!==d)}}function Vc(r,o){if(o=o.updateQueue,o=o!==null?o.lastEffect:null,o!==null){var c=o=o.next;do{if((c.tag&r)===r){var d=c.create;c.destroy=d()}c=c.next}while(c!==o)}}function sf(r){var o=r.ref;if(o!==null){var c=r.stateNode;r.tag,r=c,typeof o=="function"?o(r):o.current=r}}function cv(r){var o=r.alternate;o!==null&&(r.alternate=null,cv(o)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(o=r.stateNode,o!==null&&(delete o[Na],delete o[Bs],delete o[wh],delete o[s3],delete o[l3])),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}function uv(r){return r.tag===5||r.tag===3||r.tag===4}function dv(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||uv(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function lf(r,o,c){var d=r.tag;if(d===5||d===6)r=r.stateNode,o?c.nodeType===8?c.parentNode.insertBefore(r,o):c.insertBefore(r,o):(c.nodeType===8?(o=c.parentNode,o.insertBefore(r,c)):(o=c,o.appendChild(r)),c=c._reactRootContainer,c!=null||o.onclick!==null||(o.onclick=bc));else if(d!==4&&(r=r.child,r!==null))for(lf(r,o,c),r=r.sibling;r!==null;)lf(r,o,c),r=r.sibling}function cf(r,o,c){var d=r.tag;if(d===5||d===6)r=r.stateNode,o?c.insertBefore(r,o):c.appendChild(r);else if(d!==4&&(r=r.child,r!==null))for(cf(r,o,c),r=r.sibling;r!==null;)cf(r,o,c),r=r.sibling}var Qt=null,ya=!1;function $r(r,o,c){for(c=c.child;c!==null;)hv(r,o,c),c=c.sibling}function hv(r,o,c){if(Ht&&typeof Ht.onCommitFiberUnmount=="function")try{Ht.onCommitFiberUnmount(Ar,c)}catch{}switch(c.tag){case 5:hn||Ao(c,o);case 6:var d=Qt,m=ya;Qt=null,$r(r,o,c),Qt=d,ya=m,Qt!==null&&(ya?(r=Qt,c=c.stateNode,r.nodeType===8?r.parentNode.removeChild(c):r.removeChild(c)):Qt.removeChild(c.stateNode));break;case 18:Qt!==null&&(ya?(r=Qt,c=c.stateNode,r.nodeType===8?_h(r.parentNode,c):r.nodeType===1&&_h(r,c),As(r)):_h(Qt,c.stateNode));break;case 4:d=Qt,m=ya,Qt=c.stateNode.containerInfo,ya=!0,$r(r,o,c),Qt=d,ya=m;break;case 0:case 11:case 14:case 15:if(!hn&&(d=c.updateQueue,d!==null&&(d=d.lastEffect,d!==null))){m=d=d.next;do{var y=m,x=y.destroy;y=y.tag,x!==void 0&&((y&2)!==0||(y&4)!==0)&&of(c,o,x),m=m.next}while(m!==d)}$r(r,o,c);break;case 1:if(!hn&&(Ao(c,o),d=c.stateNode,typeof d.componentWillUnmount=="function"))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(I){It(c,o,I)}$r(r,o,c);break;case 21:$r(r,o,c);break;case 22:c.mode&1?(hn=(d=hn)||c.memoizedState!==null,$r(r,o,c),hn=d):$r(r,o,c);break;default:$r(r,o,c)}}function fv(r){var o=r.updateQueue;if(o!==null){r.updateQueue=null;var c=r.stateNode;c===null&&(c=r.stateNode=new P3),o.forEach(function(d){var m=M3.bind(null,r,d);c.has(d)||(c.add(d),d.then(m,m))})}}function va(r,o){var c=o.deletions;if(c!==null)for(var d=0;d<c.length;d++){var m=c[d];try{var y=r,x=o,I=x;e:for(;I!==null;){switch(I.tag){case 5:Qt=I.stateNode,ya=!1;break e;case 3:Qt=I.stateNode.containerInfo,ya=!0;break e;case 4:Qt=I.stateNode.containerInfo,ya=!0;break e}I=I.return}if(Qt===null)throw Error(n(160));hv(y,x,m),Qt=null,ya=!1;var O=m.alternate;O!==null&&(O.return=null),m.return=null}catch(q){It(m,o,q)}}if(o.subtreeFlags&12854)for(o=o.child;o!==null;)pv(o,r),o=o.sibling}function pv(r,o){var c=r.alternate,d=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:if(va(o,r),Ua(r),d&4){try{Xs(3,r,r.return),Vc(3,r)}catch(Te){It(r,r.return,Te)}try{Xs(5,r,r.return)}catch(Te){It(r,r.return,Te)}}break;case 1:va(o,r),Ua(r),d&512&&c!==null&&Ao(c,c.return);break;case 5:if(va(o,r),Ua(r),d&512&&c!==null&&Ao(c,c.return),r.flags&32){var m=r.stateNode;try{dt(m,"")}catch(Te){It(r,r.return,Te)}}if(d&4&&(m=r.stateNode,m!=null)){var y=r.memoizedProps,x=c!==null?c.memoizedProps:y,I=r.type,O=r.updateQueue;if(r.updateQueue=null,O!==null)try{I==="input"&&y.type==="radio"&&y.name!=null&&ao(m,y),Ia(I,x);var q=Ia(I,y);for(x=0;x<O.length;x+=2){var ae=O[x],ie=O[x+1];ae==="style"?or(m,ie):ae==="dangerouslySetInnerHTML"?mt(m,ie):ae==="children"?dt(m,ie):E(m,ae,ie,q)}switch(I){case"input":Nn(m,y);break;case"textarea":Ge(m,y);break;case"select":var ne=m._wrapperState.wasMultiple;m._wrapperState.wasMultiple=!!y.multiple;var be=y.value;be!=null?On(m,!!y.multiple,be,!1):ne!==!!y.multiple&&(y.defaultValue!=null?On(m,!!y.multiple,y.defaultValue,!0):On(m,!!y.multiple,y.multiple?[]:"",!1))}m[Bs]=y}catch(Te){It(r,r.return,Te)}}break;case 6:if(va(o,r),Ua(r),d&4){if(r.stateNode===null)throw Error(n(162));m=r.stateNode,y=r.memoizedProps;try{m.nodeValue=y}catch(Te){It(r,r.return,Te)}}break;case 3:if(va(o,r),Ua(r),d&4&&c!==null&&c.memoizedState.isDehydrated)try{As(o.containerInfo)}catch(Te){It(r,r.return,Te)}break;case 4:va(o,r),Ua(r);break;case 13:va(o,r),Ua(r),m=r.child,m.flags&8192&&(y=m.memoizedState!==null,m.stateNode.isHidden=y,!y||m.alternate!==null&&m.alternate.memoizedState!==null||(hf=tt())),d&4&&fv(r);break;case 22:if(ae=c!==null&&c.memoizedState!==null,r.mode&1?(hn=(q=hn)||ae,va(o,r),hn=q):va(o,r),Ua(r),d&8192){if(q=r.memoizedState!==null,(r.stateNode.isHidden=q)&&!ae&&(r.mode&1)!==0)for(we=r,ae=r.child;ae!==null;){for(ie=we=ae;we!==null;){switch(ne=we,be=ne.child,ne.tag){case 0:case 11:case 14:case 15:Xs(4,ne,ne.return);break;case 1:Ao(ne,ne.return);var Se=ne.stateNode;if(typeof Se.componentWillUnmount=="function"){d=ne,c=ne.return;try{o=d,Se.props=o.memoizedProps,Se.state=o.memoizedState,Se.componentWillUnmount()}catch(Te){It(d,c,Te)}}break;case 5:Ao(ne,ne.return);break;case 22:if(ne.memoizedState!==null){yv(ie);continue}}be!==null?(be.return=ne,we=be):yv(ie)}ae=ae.sibling}e:for(ae=null,ie=r;;){if(ie.tag===5){if(ae===null){ae=ie;try{m=ie.stateNode,q?(y=m.style,typeof y.setProperty=="function"?y.setProperty("display","none","important"):y.display="none"):(I=ie.stateNode,O=ie.memoizedProps.style,x=O!=null&&O.hasOwnProperty("display")?O.display:null,I.style.display=qt("display",x))}catch(Te){It(r,r.return,Te)}}}else if(ie.tag===6){if(ae===null)try{ie.stateNode.nodeValue=q?"":ie.memoizedProps}catch(Te){It(r,r.return,Te)}}else if((ie.tag!==22&&ie.tag!==23||ie.memoizedState===null||ie===r)&&ie.child!==null){ie.child.return=ie,ie=ie.child;continue}if(ie===r)break e;for(;ie.sibling===null;){if(ie.return===null||ie.return===r)break e;ae===ie&&(ae=null),ie=ie.return}ae===ie&&(ae=null),ie.sibling.return=ie.return,ie=ie.sibling}}break;case 19:va(o,r),Ua(r),d&4&&fv(r);break;case 21:break;default:va(o,r),Ua(r)}}function Ua(r){var o=r.flags;if(o&2){try{e:{for(var c=r.return;c!==null;){if(uv(c)){var d=c;break e}c=c.return}throw Error(n(160))}switch(d.tag){case 5:var m=d.stateNode;d.flags&32&&(dt(m,""),d.flags&=-33);var y=dv(r);cf(r,y,m);break;case 3:case 4:var x=d.stateNode.containerInfo,I=dv(r);lf(r,I,x);break;default:throw Error(n(161))}}catch(O){It(r,r.return,O)}r.flags&=-3}o&4096&&(r.flags&=-4097)}function C3(r,o,c){we=r,mv(r)}function mv(r,o,c){for(var d=(r.mode&1)!==0;we!==null;){var m=we,y=m.child;if(m.tag===22&&d){var x=m.memoizedState!==null||Fc;if(!x){var I=m.alternate,O=I!==null&&I.memoizedState!==null||hn;I=Fc;var q=hn;if(Fc=x,(hn=O)&&!q)for(we=m;we!==null;)x=we,O=x.child,x.tag===22&&x.memoizedState!==null?vv(m):O!==null?(O.return=x,we=O):vv(m);for(;y!==null;)we=y,mv(y),y=y.sibling;we=m,Fc=I,hn=q}gv(r)}else(m.subtreeFlags&8772)!==0&&y!==null?(y.return=m,we=y):gv(r)}}function gv(r){for(;we!==null;){var o=we;if((o.flags&8772)!==0){var c=o.alternate;try{if((o.flags&8772)!==0)switch(o.tag){case 0:case 11:case 15:hn||Vc(5,o);break;case 1:var d=o.stateNode;if(o.flags&4&&!hn)if(c===null)d.componentDidMount();else{var m=o.elementType===o.type?c.memoizedProps:ga(o.type,c.memoizedProps);d.componentDidUpdate(m,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var y=o.updateQueue;y!==null&&yy(o,y,d);break;case 3:var x=o.updateQueue;if(x!==null){if(c=null,o.child!==null)switch(o.child.tag){case 5:c=o.child.stateNode;break;case 1:c=o.child.stateNode}yy(o,x,c)}break;case 5:var I=o.stateNode;if(c===null&&o.flags&4){c=I;var O=o.memoizedProps;switch(o.type){case"button":case"input":case"select":case"textarea":O.autoFocus&&c.focus();break;case"img":O.src&&(c.src=O.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(o.memoizedState===null){var q=o.alternate;if(q!==null){var ae=q.memoizedState;if(ae!==null){var ie=ae.dehydrated;ie!==null&&As(ie)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}hn||o.flags&512&&sf(o)}catch(ne){It(o,o.return,ne)}}if(o===r){we=null;break}if(c=o.sibling,c!==null){c.return=o.return,we=c;break}we=o.return}}function yv(r){for(;we!==null;){var o=we;if(o===r){we=null;break}var c=o.sibling;if(c!==null){c.return=o.return,we=c;break}we=o.return}}function vv(r){for(;we!==null;){var o=we;try{switch(o.tag){case 0:case 11:case 15:var c=o.return;try{Vc(4,o)}catch(O){It(o,c,O)}break;case 1:var d=o.stateNode;if(typeof d.componentDidMount=="function"){var m=o.return;try{d.componentDidMount()}catch(O){It(o,m,O)}}var y=o.return;try{sf(o)}catch(O){It(o,y,O)}break;case 5:var x=o.return;try{sf(o)}catch(O){It(o,x,O)}}}catch(O){It(o,o.return,O)}if(o===r){we=null;break}var I=o.sibling;if(I!==null){I.return=o.return,we=I;break}we=o.return}}var T3=Math.ceil,Hc=A.ReactCurrentDispatcher,uf=A.ReactCurrentOwner,Jn=A.ReactCurrentBatchConfig,st=0,Zt=null,zt=null,en=0,Vn=0,Ro=zr(0),Wt=0,Js=null,Si=0,$c=0,df=0,Qs=null,Rn=null,hf=0,Lo=1/0,yr=null,Wc=!1,ff=null,Wr=null,Gc=!1,Gr=null,Kc=0,el=0,pf=null,qc=-1,Yc=0;function vn(){return(st&6)!==0?tt():qc!==-1?qc:qc=tt()}function Kr(r){return(r.mode&1)===0?1:(st&2)!==0&&en!==0?en&-en:u3.transition!==null?(Yc===0&&(Yc=rc()),Yc):(r=pt,r!==0||(r=window.event,r=r===void 0?16:k0(r.type)),r)}function ba(r,o,c,d){if(50<el)throw el=0,pf=null,Error(n(185));Ps(r,c,d),((st&2)===0||r!==Zt)&&(r===Zt&&((st&2)===0&&($c|=c),Wt===4&&qr(r,en)),Ln(r,d),c===1&&st===0&&(o.mode&1)===0&&(Lo=tt()+500,xc&&Fr()))}function Ln(r,o){var c=r.callbackNode;cr(r,o);var d=Lr(r,r===Zt?en:0);if(d===0)c!==null&&Ot(c),r.callbackNode=null,r.callbackPriority=0;else if(o=d&-d,r.callbackPriority!==o){if(c!=null&&Ot(c),o===1)r.tag===0?c3(kv.bind(null,r)):iy(kv.bind(null,r)),i3(function(){(st&6)===0&&Fr()}),c=null;else{switch(h0(d)){case 1:c=lr;break;case 4:c=ha;break;case 16:c=fa;break;case 536870912:c=Un;break;default:c=fa}c=Ev(c,bv.bind(null,r))}r.callbackPriority=o,r.callbackNode=c}}function bv(r,o){if(qc=-1,Yc=0,(st&6)!==0)throw Error(n(327));var c=r.callbackNode;if(Do()&&r.callbackNode!==c)return null;var d=Lr(r,r===Zt?en:0);if(d===0)return null;if((d&30)!==0||(d&r.expiredLanes)!==0||o)o=Zc(r,d);else{o=d;var m=st;st|=2;var y=wv();(Zt!==r||en!==o)&&(yr=null,Lo=tt()+500,Ti(r,o));do try{R3();break}catch(I){_v(r,I)}while(!0);Lh(),Hc.current=y,st=m,zt!==null?o=0:(Zt=null,en=0,o=Wt)}if(o!==0){if(o===2&&(m=co(r),m!==0&&(d=m,o=mf(r,m))),o===1)throw c=Js,Ti(r,0),qr(r,d),Ln(r,tt()),c;if(o===6)qr(r,d);else{if(m=r.current.alternate,(d&30)===0&&!E3(m)&&(o=Zc(r,d),o===2&&(y=co(r),y!==0&&(d=y,o=mf(r,y))),o===1))throw c=Js,Ti(r,0),qr(r,d),Ln(r,tt()),c;switch(r.finishedWork=m,r.finishedLanes=d,o){case 0:case 1:throw Error(n(345));case 2:Ei(r,Rn,yr);break;case 3:if(qr(r,d),(d&130023424)===d&&(o=hf+500-tt(),10<o)){if(Lr(r,0)!==0)break;if(m=r.suspendedLanes,(m&d)!==d){vn(),r.pingedLanes|=r.suspendedLanes&m;break}r.timeoutHandle=kh(Ei.bind(null,r,Rn,yr),o);break}Ei(r,Rn,yr);break;case 4:if(qr(r,d),(d&4194240)===d)break;for(o=r.eventTimes,m=-1;0<d;){var x=31-sn(d);y=1<<x,x=o[x],x>m&&(m=x),d&=~y}if(d=m,d=tt()-d,d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3e3>d?3e3:4320>d?4320:1960*T3(d/1960))-d,10<d){r.timeoutHandle=kh(Ei.bind(null,r,Rn,yr),d);break}Ei(r,Rn,yr);break;case 5:Ei(r,Rn,yr);break;default:throw Error(n(329))}}}return Ln(r,tt()),r.callbackNode===c?bv.bind(null,r):null}function mf(r,o){var c=Qs;return r.current.memoizedState.isDehydrated&&(Ti(r,o).flags|=256),r=Zc(r,o),r!==2&&(o=Rn,Rn=c,o!==null&&gf(o)),r}function gf(r){Rn===null?Rn=r:Rn.push.apply(Rn,r)}function E3(r){for(var o=r;;){if(o.flags&16384){var c=o.updateQueue;if(c!==null&&(c=c.stores,c!==null))for(var d=0;d<c.length;d++){var m=c[d],y=m.getSnapshot;m=m.value;try{if(!pa(y(),m))return!1}catch{return!1}}}if(c=o.child,o.subtreeFlags&16384&&c!==null)c.return=o,o=c;else{if(o===r)break;for(;o.sibling===null;){if(o.return===null||o.return===r)return!0;o=o.return}o.sibling.return=o.return,o=o.sibling}}return!0}function qr(r,o){for(o&=~df,o&=~$c,r.suspendedLanes|=o,r.pingedLanes&=~o,r=r.expirationTimes;0<o;){var c=31-sn(o),d=1<<c;r[c]=-1,o&=~d}}function kv(r){if((st&6)!==0)throw Error(n(327));Do();var o=Lr(r,0);if((o&1)===0)return Ln(r,tt()),null;var c=Zc(r,o);if(r.tag!==0&&c===2){var d=co(r);d!==0&&(o=d,c=mf(r,d))}if(c===1)throw c=Js,Ti(r,0),qr(r,o),Ln(r,tt()),c;if(c===6)throw Error(n(345));return r.finishedWork=r.current.alternate,r.finishedLanes=o,Ei(r,Rn,yr),Ln(r,tt()),null}function yf(r,o){var c=st;st|=1;try{return r(o)}finally{st=c,st===0&&(Lo=tt()+500,xc&&Fr())}}function Ci(r){Gr!==null&&Gr.tag===0&&(st&6)===0&&Do();var o=st;st|=1;var c=Jn.transition,d=pt;try{if(Jn.transition=null,pt=1,r)return r()}finally{pt=d,Jn.transition=c,st=o,(st&6)===0&&Fr()}}function vf(){Vn=Ro.current,Pt(Ro)}function Ti(r,o){r.finishedWork=null,r.finishedLanes=0;var c=r.timeoutHandle;if(c!==-1&&(r.timeoutHandle=-1,r3(c)),zt!==null)for(c=zt.return;c!==null;){var d=c;switch(Ch(d),d.tag){case 1:d=d.type.childContextTypes,d!=null&&_c();break;case 3:To(),Pt(Tn),Pt(cn),zh();break;case 5:jh(d);break;case 4:To();break;case 13:Pt(Rt);break;case 19:Pt(Rt);break;case 10:Dh(d.type._context);break;case 22:case 23:vf()}c=c.return}if(Zt=r,zt=r=Yr(r.current,null),en=Vn=o,Wt=0,Js=null,df=$c=Si=0,Rn=Qs=null,wi!==null){for(o=0;o<wi.length;o++)if(c=wi[o],d=c.interleaved,d!==null){c.interleaved=null;var m=d.next,y=c.pending;if(y!==null){var x=y.next;y.next=m,d.next=x}c.pending=d}wi=null}return r}function _v(r,o){do{var c=zt;try{if(Lh(),Ic.current=jc,Mc){for(var d=Lt.memoizedState;d!==null;){var m=d.queue;m!==null&&(m.pending=null),d=d.next}Mc=!1}if(Pi=0,Yt=$t=Lt=null,Gs=!1,Ks=0,uf.current=null,c===null||c.return===null){Wt=1,Js=o,zt=null;break}e:{var y=r,x=c.return,I=c,O=o;if(o=en,I.flags|=32768,O!==null&&typeof O=="object"&&typeof O.then=="function"){var q=O,ae=I,ie=ae.tag;if((ae.mode&1)===0&&(ie===0||ie===11||ie===15)){var ne=ae.alternate;ne?(ae.updateQueue=ne.updateQueue,ae.memoizedState=ne.memoizedState,ae.lanes=ne.lanes):(ae.updateQueue=null,ae.memoizedState=null)}var be=Gy(x);if(be!==null){be.flags&=-257,Ky(be,x,I,y,o),be.mode&1&&Wy(y,q,o),o=be,O=q;var Se=o.updateQueue;if(Se===null){var Te=new Set;Te.add(O),o.updateQueue=Te}else Se.add(O);break e}else{if((o&1)===0){Wy(y,q,o),bf();break e}O=Error(n(426))}}else if(Tt&&I.mode&1){var jt=Gy(x);if(jt!==null){(jt.flags&65536)===0&&(jt.flags|=256),Ky(jt,x,I,y,o),Ah(Eo(O,I));break e}}y=O=Eo(O,I),Wt!==4&&(Wt=2),Qs===null?Qs=[y]:Qs.push(y),y=x;do{switch(y.tag){case 3:y.flags|=65536,o&=-o,y.lanes|=o;var H=Hy(y,O,o);gy(y,H);break e;case 1:I=O;var B=y.type,W=y.stateNode;if((y.flags&128)===0&&(typeof B.getDerivedStateFromError=="function"||W!==null&&typeof W.componentDidCatch=="function"&&(Wr===null||!Wr.has(W)))){y.flags|=65536,o&=-o,y.lanes|=o;var ue=$y(y,I,o);gy(y,ue);break e}}y=y.return}while(y!==null)}Pv(c)}catch(Ee){o=Ee,zt===c&&c!==null&&(zt=c=c.return);continue}break}while(!0)}function wv(){var r=Hc.current;return Hc.current=jc,r===null?jc:r}function bf(){(Wt===0||Wt===3||Wt===2)&&(Wt=4),Zt===null||(Si&268435455)===0&&($c&268435455)===0||qr(Zt,en)}function Zc(r,o){var c=st;st|=2;var d=wv();(Zt!==r||en!==o)&&(yr=null,Ti(r,o));do try{A3();break}catch(m){_v(r,m)}while(!0);if(Lh(),st=c,Hc.current=d,zt!==null)throw Error(n(261));return Zt=null,en=0,Wt}function A3(){for(;zt!==null;)xv(zt)}function R3(){for(;zt!==null&&!wt();)xv(zt)}function xv(r){var o=Tv(r.alternate,r,Vn);r.memoizedProps=r.pendingProps,o===null?Pv(r):zt=o,uf.current=null}function Pv(r){var o=r;do{var c=o.alternate;if(r=o.return,(o.flags&32768)===0){if(c=w3(c,o,Vn),c!==null){zt=c;return}}else{if(c=x3(c,o),c!==null){c.flags&=32767,zt=c;return}if(r!==null)r.flags|=32768,r.subtreeFlags=0,r.deletions=null;else{Wt=6,zt=null;return}}if(o=o.sibling,o!==null){zt=o;return}zt=o=r}while(o!==null);Wt===0&&(Wt=5)}function Ei(r,o,c){var d=pt,m=Jn.transition;try{Jn.transition=null,pt=1,L3(r,o,c,d)}finally{Jn.transition=m,pt=d}return null}function L3(r,o,c,d){do Do();while(Gr!==null);if((st&6)!==0)throw Error(n(327));c=r.finishedWork;var m=r.finishedLanes;if(c===null)return null;if(r.finishedWork=null,r.finishedLanes=0,c===r.current)throw Error(n(177));r.callbackNode=null,r.callbackPriority=0;var y=c.lanes|c.childLanes;if(dS(r,y),r===Zt&&(zt=Zt=null,en=0),(c.subtreeFlags&2064)===0&&(c.flags&2064)===0||Gc||(Gc=!0,Ev(fa,function(){return Do(),null})),y=(c.flags&15990)!==0,(c.subtreeFlags&15990)!==0||y){y=Jn.transition,Jn.transition=null;var x=pt;pt=1;var I=st;st|=4,uf.current=null,S3(r,c),pv(c,r),XS(vh),sc=!!yh,vh=yh=null,r.current=c,C3(c),ft(),st=I,pt=x,Jn.transition=y}else r.current=c;if(Gc&&(Gc=!1,Gr=r,Kc=m),y=r.pendingLanes,y===0&&(Wr=null),so(c.stateNode),Ln(r,tt()),o!==null)for(d=r.onRecoverableError,c=0;c<o.length;c++)m=o[c],d(m.value,{componentStack:m.stack,digest:m.digest});if(Wc)throw Wc=!1,r=ff,ff=null,r;return(Kc&1)!==0&&r.tag!==0&&Do(),y=r.pendingLanes,(y&1)!==0?r===pf?el++:(el=0,pf=r):el=0,Fr(),null}function Do(){if(Gr!==null){var r=h0(Kc),o=Jn.transition,c=pt;try{if(Jn.transition=null,pt=16>r?16:r,Gr===null)var d=!1;else{if(r=Gr,Gr=null,Kc=0,(st&6)!==0)throw Error(n(331));var m=st;for(st|=4,we=r.current;we!==null;){var y=we,x=y.child;if((we.flags&16)!==0){var I=y.deletions;if(I!==null){for(var O=0;O<I.length;O++){var q=I[O];for(we=q;we!==null;){var ae=we;switch(ae.tag){case 0:case 11:case 15:Xs(8,ae,y)}var ie=ae.child;if(ie!==null)ie.return=ae,we=ie;else for(;we!==null;){ae=we;var ne=ae.sibling,be=ae.return;if(cv(ae),ae===q){we=null;break}if(ne!==null){ne.return=be,we=ne;break}we=be}}}var Se=y.alternate;if(Se!==null){var Te=Se.child;if(Te!==null){Se.child=null;do{var jt=Te.sibling;Te.sibling=null,Te=jt}while(Te!==null)}}we=y}}if((y.subtreeFlags&2064)!==0&&x!==null)x.return=y,we=x;else e:for(;we!==null;){if(y=we,(y.flags&2048)!==0)switch(y.tag){case 0:case 11:case 15:Xs(9,y,y.return)}var H=y.sibling;if(H!==null){H.return=y.return,we=H;break e}we=y.return}}var B=r.current;for(we=B;we!==null;){x=we;var W=x.child;if((x.subtreeFlags&2064)!==0&&W!==null)W.return=x,we=W;else e:for(x=B;we!==null;){if(I=we,(I.flags&2048)!==0)try{switch(I.tag){case 0:case 11:case 15:Vc(9,I)}}catch(Ee){It(I,I.return,Ee)}if(I===x){we=null;break e}var ue=I.sibling;if(ue!==null){ue.return=I.return,we=ue;break e}we=I.return}}if(st=m,Fr(),Ht&&typeof Ht.onPostCommitFiberRoot=="function")try{Ht.onPostCommitFiberRoot(Ar,r)}catch{}d=!0}return d}finally{pt=c,Jn.transition=o}}return!1}function Sv(r,o,c){o=Eo(c,o),o=Hy(r,o,1),r=Hr(r,o,1),o=vn(),r!==null&&(Ps(r,1,o),Ln(r,o))}function It(r,o,c){if(r.tag===3)Sv(r,r,c);else for(;o!==null;){if(o.tag===3){Sv(o,r,c);break}else if(o.tag===1){var d=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(Wr===null||!Wr.has(d))){r=Eo(c,r),r=$y(o,r,1),o=Hr(o,r,1),r=vn(),o!==null&&(Ps(o,1,r),Ln(o,r));break}}o=o.return}}function D3(r,o,c){var d=r.pingCache;d!==null&&d.delete(o),o=vn(),r.pingedLanes|=r.suspendedLanes&c,Zt===r&&(en&c)===c&&(Wt===4||Wt===3&&(en&130023424)===en&&500>tt()-hf?Ti(r,0):df|=c),Ln(r,o)}function Cv(r,o){o===0&&((r.mode&1)===0?o=1:(o=Cn,Cn<<=1,(Cn&130023424)===0&&(Cn=4194304)));var c=vn();r=pr(r,o),r!==null&&(Ps(r,o,c),Ln(r,c))}function I3(r){var o=r.memoizedState,c=0;o!==null&&(c=o.retryLane),Cv(r,c)}function M3(r,o){var c=0;switch(r.tag){case 13:var d=r.stateNode,m=r.memoizedState;m!==null&&(c=m.retryLane);break;case 19:d=r.stateNode;break;default:throw Error(n(314))}d!==null&&d.delete(o),Cv(r,c)}var Tv;Tv=function(r,o,c){if(r!==null)if(r.memoizedProps!==o.pendingProps||Tn.current)An=!0;else{if((r.lanes&c)===0&&(o.flags&128)===0)return An=!1,_3(r,o,c);An=(r.flags&131072)!==0}else An=!1,Tt&&(o.flags&1048576)!==0&&oy(o,Sc,o.index);switch(o.lanes=0,o.tag){case 2:var d=o.type;Bc(r,o),r=o.pendingProps;var m=ko(o,cn.current);Co(o,c),m=Vh(null,o,d,r,m,c);var y=Hh();return o.flags|=1,typeof m=="object"&&m!==null&&typeof m.render=="function"&&m.$$typeof===void 0?(o.tag=1,o.memoizedState=null,o.updateQueue=null,En(d)?(y=!0,wc(o)):y=!1,o.memoizedState=m.state!==null&&m.state!==void 0?m.state:null,Nh(o),m.updater=Uc,o.stateNode=m,m._reactInternals=o,Yh(o,d,r,c),o=Qh(null,o,d,!0,y,c)):(o.tag=0,Tt&&y&&Sh(o),yn(null,o,m,c),o=o.child),o;case 16:d=o.elementType;e:{switch(Bc(r,o),r=o.pendingProps,m=d._init,d=m(d._payload),o.type=d,m=o.tag=O3(d),r=ga(d,r),m){case 0:o=Jh(null,o,d,r,c);break e;case 1:o=Qy(null,o,d,r,c);break e;case 11:o=qy(null,o,d,r,c);break e;case 14:o=Yy(null,o,d,ga(d.type,r),c);break e}throw Error(n(306,d,""))}return o;case 0:return d=o.type,m=o.pendingProps,m=o.elementType===d?m:ga(d,m),Jh(r,o,d,m,c);case 1:return d=o.type,m=o.pendingProps,m=o.elementType===d?m:ga(d,m),Qy(r,o,d,m,c);case 3:e:{if(ev(o),r===null)throw Error(n(387));d=o.pendingProps,y=o.memoizedState,m=y.element,my(r,o),Lc(o,d,null,c);var x=o.memoizedState;if(d=x.element,y.isDehydrated)if(y={element:d,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},o.updateQueue.baseState=y,o.memoizedState=y,o.flags&256){m=Eo(Error(n(423)),o),o=tv(r,o,d,c,m);break e}else if(d!==m){m=Eo(Error(n(424)),o),o=tv(r,o,d,c,m);break e}else for(Fn=Ur(o.stateNode.containerInfo.firstChild),Bn=o,Tt=!0,ma=null,c=fy(o,null,d,c),o.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(xo(),d===m){o=gr(r,o,c);break e}yn(r,o,d,c)}o=o.child}return o;case 5:return vy(o),r===null&&Eh(o),d=o.type,m=o.pendingProps,y=r!==null?r.memoizedProps:null,x=m.children,bh(d,m)?x=null:y!==null&&bh(d,y)&&(o.flags|=32),Jy(r,o),yn(r,o,x,c),o.child;case 6:return r===null&&Eh(o),null;case 13:return nv(r,o,c);case 4:return Oh(o,o.stateNode.containerInfo),d=o.pendingProps,r===null?o.child=Po(o,null,d,c):yn(r,o,d,c),o.child;case 11:return d=o.type,m=o.pendingProps,m=o.elementType===d?m:ga(d,m),qy(r,o,d,m,c);case 7:return yn(r,o,o.pendingProps,c),o.child;case 8:return yn(r,o,o.pendingProps.children,c),o.child;case 12:return yn(r,o,o.pendingProps.children,c),o.child;case 10:e:{if(d=o.type._context,m=o.pendingProps,y=o.memoizedProps,x=m.value,_t(Ec,d._currentValue),d._currentValue=x,y!==null)if(pa(y.value,x)){if(y.children===m.children&&!Tn.current){o=gr(r,o,c);break e}}else for(y=o.child,y!==null&&(y.return=o);y!==null;){var I=y.dependencies;if(I!==null){x=y.child;for(var O=I.firstContext;O!==null;){if(O.context===d){if(y.tag===1){O=mr(-1,c&-c),O.tag=2;var q=y.updateQueue;if(q!==null){q=q.shared;var ae=q.pending;ae===null?O.next=O:(O.next=ae.next,ae.next=O),q.pending=O}}y.lanes|=c,O=y.alternate,O!==null&&(O.lanes|=c),Ih(y.return,c,o),I.lanes|=c;break}O=O.next}}else if(y.tag===10)x=y.type===o.type?null:y.child;else if(y.tag===18){if(x=y.return,x===null)throw Error(n(341));x.lanes|=c,I=x.alternate,I!==null&&(I.lanes|=c),Ih(x,c,o),x=y.sibling}else x=y.child;if(x!==null)x.return=y;else for(x=y;x!==null;){if(x===o){x=null;break}if(y=x.sibling,y!==null){y.return=x.return,x=y;break}x=x.return}y=x}yn(r,o,m.children,c),o=o.child}return o;case 9:return m=o.type,d=o.pendingProps.children,Co(o,c),m=Zn(m),d=d(m),o.flags|=1,yn(r,o,d,c),o.child;case 14:return d=o.type,m=ga(d,o.pendingProps),m=ga(d.type,m),Yy(r,o,d,m,c);case 15:return Zy(r,o,o.type,o.pendingProps,c);case 17:return d=o.type,m=o.pendingProps,m=o.elementType===d?m:ga(d,m),Bc(r,o),o.tag=1,En(d)?(r=!0,wc(o)):r=!1,Co(o,c),Fy(o,d,m),Yh(o,d,m,c),Qh(null,o,d,!0,r,c);case 19:return rv(r,o,c);case 22:return Xy(r,o,c)}throw Error(n(156,o.tag))};function Ev(r,o){return ht(r,o)}function N3(r,o,c,d){this.tag=r,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=o,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qn(r,o,c,d){return new N3(r,o,c,d)}function kf(r){return r=r.prototype,!(!r||!r.isReactComponent)}function O3(r){if(typeof r=="function")return kf(r)?1:0;if(r!=null){if(r=r.$$typeof,r===re)return 11;if(r===he)return 14}return 2}function Yr(r,o){var c=r.alternate;return c===null?(c=Qn(r.tag,o,r.key,r.mode),c.elementType=r.elementType,c.type=r.type,c.stateNode=r.stateNode,c.alternate=r,r.alternate=c):(c.pendingProps=o,c.type=r.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=r.flags&14680064,c.childLanes=r.childLanes,c.lanes=r.lanes,c.child=r.child,c.memoizedProps=r.memoizedProps,c.memoizedState=r.memoizedState,c.updateQueue=r.updateQueue,o=r.dependencies,c.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext},c.sibling=r.sibling,c.index=r.index,c.ref=r.ref,c}function Xc(r,o,c,d,m,y){var x=2;if(d=r,typeof r=="function")kf(r)&&(x=1);else if(typeof r=="string")x=5;else e:switch(r){case j:return Ai(c.children,m,y,o);case C:x=8,m|=8;break;case K:return r=Qn(12,c,o,m|2),r.elementType=K,r.lanes=y,r;case fe:return r=Qn(13,c,o,m),r.elementType=fe,r.lanes=y,r;case de:return r=Qn(19,c,o,m),r.elementType=de,r.lanes=y,r;case X:return Jc(c,m,y,o);default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case Y:x=10;break e;case ce:x=9;break e;case re:x=11;break e;case he:x=14;break e;case oe:x=16,d=null;break e}throw Error(n(130,r==null?r:typeof r,""))}return o=Qn(x,c,o,m),o.elementType=r,o.type=d,o.lanes=y,o}function Ai(r,o,c,d){return r=Qn(7,r,d,o),r.lanes=c,r}function Jc(r,o,c,d){return r=Qn(22,r,d,o),r.elementType=X,r.lanes=c,r.stateNode={isHidden:!1},r}function _f(r,o,c){return r=Qn(6,r,null,o),r.lanes=c,r}function wf(r,o,c){return o=Qn(4,r.children!==null?r.children:[],r.key,o),o.lanes=c,o.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},o}function j3(r,o,c,d,m){this.tag=o,this.containerInfo=r,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=qd(0),this.expirationTimes=qd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qd(0),this.identifierPrefix=d,this.onRecoverableError=m,this.mutableSourceEagerHydrationData=null}function xf(r,o,c,d,m,y,x,I,O){return r=new j3(r,o,c,I,O),o===1?(o=1,y===!0&&(o|=8)):o=0,y=Qn(3,null,null,o),r.current=y,y.stateNode=r,y.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},Nh(y),r}function U3(r,o,c){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:F,key:d==null?null:""+d,children:r,containerInfo:o,implementation:c}}function Av(r){if(!r)return Br;r=r._reactInternals;e:{if(ve(r)!==r||r.tag!==1)throw Error(n(170));var o=r;do{switch(o.tag){case 3:o=o.stateNode.context;break e;case 1:if(En(o.type)){o=o.stateNode.__reactInternalMemoizedMergedChildContext;break e}}o=o.return}while(o!==null);throw Error(n(171))}if(r.tag===1){var c=r.type;if(En(c))return ay(r,c,o)}return o}function Rv(r,o,c,d,m,y,x,I,O){return r=xf(c,d,!0,r,m,y,x,I,O),r.context=Av(null),c=r.current,d=vn(),m=Kr(c),y=mr(d,m),y.callback=o??null,Hr(c,y,m),r.current.lanes=m,Ps(r,m,d),Ln(r,d),r}function Qc(r,o,c,d){var m=o.current,y=vn(),x=Kr(m);return c=Av(c),o.context===null?o.context=c:o.pendingContext=c,o=mr(y,x),o.payload={element:r},d=d===void 0?null:d,d!==null&&(o.callback=d),r=Hr(m,o,x),r!==null&&(ba(r,m,x,y),Rc(r,m,x)),x}function eu(r){return r=r.current,r.child?(r.child.tag===5,r.child.stateNode):null}function Lv(r,o){if(r=r.memoizedState,r!==null&&r.dehydrated!==null){var c=r.retryLane;r.retryLane=c!==0&&c<o?c:o}}function Pf(r,o){Lv(r,o),(r=r.alternate)&&Lv(r,o)}function z3(){return null}var Dv=typeof reportError=="function"?reportError:function(r){console.error(r)};function Sf(r){this._internalRoot=r}tu.prototype.render=Sf.prototype.render=function(r){var o=this._internalRoot;if(o===null)throw Error(n(409));Qc(r,o,null,null)},tu.prototype.unmount=Sf.prototype.unmount=function(){var r=this._internalRoot;if(r!==null){this._internalRoot=null;var o=r.containerInfo;Ci(function(){Qc(null,r,null,null)}),o[ur]=null}};function tu(r){this._internalRoot=r}tu.prototype.unstable_scheduleHydration=function(r){if(r){var o=m0();r={blockedOn:null,target:r,priority:o};for(var c=0;c<Nr.length&&o!==0&&o<Nr[c].priority;c++);Nr.splice(c,0,r),c===0&&v0(r)}};function Cf(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)}function nu(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11&&(r.nodeType!==8||r.nodeValue!==" react-mount-point-unstable "))}function Iv(){}function B3(r,o,c,d,m){if(m){if(typeof d=="function"){var y=d;d=function(){var q=eu(x);y.call(q)}}var x=Rv(o,d,r,0,null,!1,!1,"",Iv);return r._reactRootContainer=x,r[ur]=x.current,Us(r.nodeType===8?r.parentNode:r),Ci(),x}for(;m=r.lastChild;)r.removeChild(m);if(typeof d=="function"){var I=d;d=function(){var q=eu(O);I.call(q)}}var O=xf(r,0,!1,null,null,!1,!1,"",Iv);return r._reactRootContainer=O,r[ur]=O.current,Us(r.nodeType===8?r.parentNode:r),Ci(function(){Qc(o,O,c,d)}),O}function au(r,o,c,d,m){var y=c._reactRootContainer;if(y){var x=y;if(typeof m=="function"){var I=m;m=function(){var O=eu(x);I.call(O)}}Qc(o,x,r,m)}else x=B3(c,o,r,m,d);return eu(x)}f0=function(r){switch(r.tag){case 3:var o=r.stateNode;if(o.current.memoizedState.isDehydrated){var c=Rr(o.pendingLanes);c!==0&&(Yd(o,c|1),Ln(o,tt()),(st&6)===0&&(Lo=tt()+500,Fr()))}break;case 13:Ci(function(){var d=pr(r,1);if(d!==null){var m=vn();ba(d,r,1,m)}}),Pf(r,1)}},Zd=function(r){if(r.tag===13){var o=pr(r,134217728);if(o!==null){var c=vn();ba(o,r,134217728,c)}Pf(r,134217728)}},p0=function(r){if(r.tag===13){var o=Kr(r),c=pr(r,o);if(c!==null){var d=vn();ba(c,r,o,d)}Pf(r,o)}},m0=function(){return pt},g0=function(r,o){var c=pt;try{return pt=r,o()}finally{pt=c}},Cr=function(r,o,c){switch(o){case"input":if(Nn(r,c),o=c.name,c.type==="radio"&&o!=null){for(c=r;c.parentNode;)c=c.parentNode;for(c=c.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),o=0;o<c.length;o++){var d=c[o];if(d!==r&&d.form===r.form){var m=kc(d);if(!m)throw Error(n(90));Sn(d),Nn(d,m)}}}break;case"textarea":Ge(r,c);break;case"select":o=c.value,o!=null&&On(r,!!c.multiple,o,!1)}},ac=yf,ws=Ci;var F3={usingClientEntryPoint:!1,Events:[Fs,vo,kc,nc,_s,yf]},tl={findFiberByHostInstance:vi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},V3={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:function(r){return r=ze(r),r===null?null:r.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||z3,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{Ar=ru.inject(V3),Ht=ru}catch{}}return Dn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=F3,Dn.createPortal=function(r,o){var c=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Cf(o))throw Error(n(200));return U3(r,o,null,c)},Dn.createRoot=function(r,o){if(!Cf(r))throw Error(n(299));var c=!1,d="",m=Dv;return o!=null&&(o.unstable_strictMode===!0&&(c=!0),o.identifierPrefix!==void 0&&(d=o.identifierPrefix),o.onRecoverableError!==void 0&&(m=o.onRecoverableError)),o=xf(r,1,!1,null,null,c,!1,d,m),r[ur]=o.current,Us(r.nodeType===8?r.parentNode:r),new Sf(o)},Dn.findDOMNode=function(r){if(r==null)return null;if(r.nodeType===1)return r;var o=r._reactInternals;if(o===void 0)throw typeof r.render=="function"?Error(n(188)):(r=Object.keys(r).join(","),Error(n(268,r)));return r=ze(o),r=r===null?null:r.stateNode,r},Dn.flushSync=function(r){return Ci(r)},Dn.hydrate=function(r,o,c){if(!nu(o))throw Error(n(200));return au(null,r,o,!0,c)},Dn.hydrateRoot=function(r,o,c){if(!Cf(r))throw Error(n(405));var d=c!=null&&c.hydratedSources||null,m=!1,y="",x=Dv;if(c!=null&&(c.unstable_strictMode===!0&&(m=!0),c.identifierPrefix!==void 0&&(y=c.identifierPrefix),c.onRecoverableError!==void 0&&(x=c.onRecoverableError)),o=Rv(o,null,r,1,c??null,m,!1,y,x),r[ur]=o.current,Us(r),d)for(r=0;r<d.length;r++)c=d[r],m=c._getVersion,m=m(c._source),o.mutableSourceEagerHydrationData==null?o.mutableSourceEagerHydrationData=[c,m]:o.mutableSourceEagerHydrationData.push(c,m);return new tu(o)},Dn.render=function(r,o,c){if(!nu(o))throw Error(n(200));return au(null,r,o,!1,c)},Dn.unmountComponentAtNode=function(r){if(!nu(r))throw Error(n(40));return r._reactRootContainer?(Ci(function(){au(null,null,r,!1,function(){r._reactRootContainer=null,r[ur]=null})}),!0):!1},Dn.unstable_batchedUpdates=yf,Dn.unstable_renderSubtreeIntoContainer=function(r,o,c,d){if(!nu(c))throw Error(n(200));if(r==null||r._reactInternals===void 0)throw Error(n(38));return au(r,o,c,!1,d)},Dn.version="18.3.1-next-f1338f8080-20240426",Dn}var Fv;function Q_(){if(Fv)return Af.exports;Fv=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(),Af.exports=X3(),Af.exports}var Vv;function J3(){if(Vv)return iu;Vv=1;var e=Q_();return iu.createRoot=e.createRoot,iu.hydrateRoot=e.hydrateRoot,iu}var Q3=J3();var e1=e=>{throw TypeError(e)},t1=(e,t,n)=>t.has(e)||e1("Cannot "+n),ea=(e,t,n)=>(t1(e,t,"read from private field"),n?n.call(e):t.get(e)),dl=(e,t,n)=>t.has(e)?e1("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),za=(e,t,n,a)=>(t1(e,t,"write to private field"),t.set(e,n),n),Hv="popstate";function $v(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function eC(e={}){function t(a,i){let s=i.state?.masked,{pathname:l,search:u,hash:h}=s||a.location;return El("",{pathname:l,search:u,hash:h},i.state&&i.state.usr||null,i.state&&i.state.key||"default",s?{pathname:a.location.pathname,search:a.location.search,hash:a.location.hash}:void 0)}function n(a,i){return typeof i=="string"?i:Za(i)}return nC(t,n,null,e)}function Ze(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Nt(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function tC(){return Math.random().toString(36).substring(2,10)}function Wv(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function El(e,t,n=null,a,i){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?nr(t):t,state:n,key:t&&t.key||a||tC(),mask:i}}function Za({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function nr(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function nC(e,t,n,a={}){let{window:i=document.defaultView,v5Compat:s=!1}=a,l=i.history,u="POP",h=null,f=p();f==null&&(f=0,l.replaceState({...l.state,idx:f},""));function p(){return(l.state||{idx:null}).idx}function g(){u="POP";let P=p(),D=P==null?null:P-f;f=P,h&&h({action:u,location:S.location,delta:D})}function v(P,D){u="PUSH";let R=$v(P)?P:El(S.location,P,D);f=p()+1;let E=Wv(R,f),A=S.createHref(R.mask||R);try{l.pushState(E,"",A)}catch(U){if(U instanceof DOMException&&U.name==="DataCloneError")throw U;i.location.assign(A)}s&&h&&h({action:u,location:S.location,delta:1})}function _(P,D){u="REPLACE";let R=$v(P)?P:El(S.location,P,D);f=p();let E=Wv(R,f),A=S.createHref(R.mask||R);l.replaceState(E,"",A),s&&h&&h({action:u,location:S.location,delta:0})}function w(P){return n1(i,P)}let S={get action(){return u},get location(){return e(i,l)},listen(P){if(h)throw new Error("A history only accepts one active listener");return i.addEventListener(Hv,g),h=P,()=>{i.removeEventListener(Hv,g),h=null}},createHref(P){return t(i,P)},createURL:w,encodeLocation(P){let D=w(P);return{pathname:D.pathname,search:D.search,hash:D.hash}},push:v,replace:_,go(P){return l.go(P)}};return S}function n1(e,t,n=!1){let a="http://localhost";e&&(a=e.location.origin!=="null"?e.location.origin:e.location.href),Ze(a,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:Za(t);return i=i.replace(/ $/,"%20"),!n&&i.startsWith("//")&&(i=a+i),new URL(i,a)}var hl,Gv=class{constructor(e){if(dl(this,hl,new Map),e)for(let[t,n]of e)this.set(t,n)}get(e){if(ea(this,hl).has(e))return ea(this,hl).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){ea(this,hl).set(e,t)}};hl=new WeakMap;var aC=new Set(["lazy","caseSensitive","path","id","index","children"]);function rC(e){return aC.has(e)}var iC=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function oC(e){return iC.has(e)}function sC(e){return e.index===!0}function Al(e,t,n=[],a={},i=!1){return e.map((s,l)=>{let u=[...n,String(l)],h=typeof s.id=="string"?s.id:u.join("-");if(Ze(s.index!==!0||!s.children,"Cannot specify children on an index route"),Ze(i||!a[h],`Found a route id collision on id "${h}". Route id's must be globally unique within Data Router usages`),sC(s)){let f={...s,id:h};return a[h]=Kv(f,t(f)),f}else{let f={...s,id:h,children:void 0};return a[h]=Kv(f,t(f)),s.children&&(f.children=Al(s.children,t,u,a,i)),f}})}function Kv(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function a1(e,t,n="/"){return wa(e,t,n,!1)}function wa(e,t,n,a,i){let s=typeof t=="string"?nr(t):t,l=sa(s.pathname||"/",n);if(l==null)return null;let u=i??Tu(e),h=null,f=kC(l);for(let p=0;h==null&&p<u.length;++p)h=vC(u[p],f,a);return h}function lC(e,t){let{route:n,pathname:a,params:i}=e;return{id:n.id,pathname:a,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function Tu(e){let t=r1(e);return cC(t),t}function r1(e,t=[],n=[],a="",i=!1){let s=(l,u,h=i,f)=>{let p={relativePath:f===void 0?l.path||"":f,caseSensitive:l.caseSensitive===!0,childrenIndex:u,route:l};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(a)&&h)return;Ze(p.relativePath.startsWith(a),`Absolute route path "${p.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(a.length)}let g=ra([a,p.relativePath]),v=n.concat(p);l.children&&l.children.length>0&&(Ze(l.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${g}".`),r1(l.children,t,v,g,h)),!(l.path==null&&!l.index)&&t.push({path:g,score:gC(g,l.index),routesMeta:v})};return e.forEach((l,u)=>{if(l.path===""||!l.path?.includes("?"))s(l,u);else for(let h of i1(l.path))s(l,u,!0,h)}),t}function i1(e){let t=e.split("/");if(t.length===0)return[];let[n,...a]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(a.length===0)return i?[s,""]:[s];let l=i1(a.join("/")),u=[];return u.push(...l.map(h=>h===""?s:[s,h].join("/"))),i&&u.push(...l),u.map(h=>e.startsWith("/")&&h===""?"/":h)}function cC(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:yC(t.routesMeta.map(a=>a.childrenIndex),n.routesMeta.map(a=>a.childrenIndex)))}var uC=/^:[\w-]+$/,dC=3,hC=2,fC=1,pC=10,mC=-2,qv=e=>e==="*";function gC(e,t){let n=e.split("/"),a=n.length;return n.some(qv)&&(a+=mC),t&&(a+=hC),n.filter(i=>!qv(i)).reduce((i,s)=>i+(uC.test(s)?dC:s===""?fC:pC),a)}function yC(e,t){return e.length===t.length&&e.slice(0,-1).every((a,i)=>a===t[i])?e[e.length-1]-t[t.length-1]:0}function vC(e,t,n=!1){let{routesMeta:a}=e,i={},s="/",l=[];for(let u=0;u<a.length;++u){let h=a[u],f=u===a.length-1,p=s==="/"?t:t.slice(s.length)||"/",g=qu({path:h.relativePath,caseSensitive:h.caseSensitive,end:f},p),v=h.route;if(!g&&f&&n&&!a[a.length-1].route.index&&(g=qu({path:h.relativePath,caseSensitive:h.caseSensitive,end:!1},p)),!g)return null;Object.assign(i,g.params),l.push({params:i,pathname:ra([s,g.pathname]),pathnameBase:xC(ra([s,g.pathnameBase])),route:v}),g.pathnameBase!=="/"&&(s=ra([s,g.pathnameBase]))}return l}function qu(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=bC(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let s=i[0],l=s.replace(/(.)\/+$/,"$1"),u=i.slice(1);return{params:a.reduce((f,{paramName:p,isOptional:g},v)=>{if(p==="*"){let w=u[v]||"";l=s.slice(0,s.length-w.length).replace(/(.)\/+$/,"$1")}const _=u[v];return g&&!_?f[p]=void 0:f[p]=(_||"").replace(/%2F/g,"/"),f},{}),pathname:s,pathnameBase:l,pattern:e}}function bC(e,t=!1,n=!0){Nt(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=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,u,h,f,p)=>{if(a.push({paramName:u,isOptional:h!=null}),h){let g=p.charAt(f+l.length);return g&&g!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),a]}function kC(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Nt(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function sa(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)||"/"}function _C({basename:e,pathname:t}){return t==="/"?e:ra([e,t])}var o1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Lm=e=>o1.test(e);function wC(e,t="/"){let{pathname:n,search:a="",hash:i=""}=typeof e=="string"?nr(e):e,s;return n?(n=Dm(n),n.startsWith("/")?s=Yv(n.substring(1),"/"):s=Yv(n,t)):s=t,{pathname:s,search:PC(a),hash:SC(i)}}function Yv(e,t){let n=Yu(t).split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Df(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 s1(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Rd(e){let t=s1(e);return t.map((n,a)=>a===t.length-1?n.pathname:n.pathnameBase)}function Bl(e,t,n,a=!1){let i;typeof e=="string"?i=nr(e):(i={...e},Ze(!i.pathname||!i.pathname.includes("?"),Df("?","pathname","search",i)),Ze(!i.pathname||!i.pathname.includes("#"),Df("#","pathname","hash",i)),Ze(!i.search||!i.search.includes("#"),Df("#","search","hash",i)));let s=e===""||i.pathname==="",l=s?"/":i.pathname,u;if(l==null)u=n;else{let g=t.length-1;if(!a&&l.startsWith("..")){let v=l.split("/");for(;v[0]==="..";)v.shift(),g-=1;i.pathname=v.join("/")}u=g>=0?t[g]:"/"}let h=wC(i,u),f=l&&l!=="/"&&l.endsWith("/"),p=(s||l===".")&&n.endsWith("/");return!h.pathname.endsWith("/")&&(f||p)&&(h.pathname+="/"),h}var Dm=e=>e.replace(/\/\/+/g,"/"),ra=e=>Dm(e.join("/")),Yu=e=>e.replace(/\/+$/,""),xC=e=>Yu(e).replace(/^\/*/,"/"),PC=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,SC=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Fl=class{constructor(e,t,n,a=!1){this.status=e,this.statusText=t||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Rl(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Vl(e){let t=e.map(n=>n.route.path).filter(Boolean);return ra(t)||"/"}var l1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function c1(e,t){let n=e;if(typeof n!="string"||!o1.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let a=n,i=!1;if(l1)try{let s=new URL(window.location.href),l=n.startsWith("//")?new URL(s.protocol+n):new URL(n),u=sa(l.pathname,t);l.origin===s.origin&&u!=null?n=u+l.search+l.hash:i=!0}catch{Nt(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:i,to:n}}var ai=Symbol("Uninstrumented");function CC(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(i=>i({id:t.id,index:t.index,path:t.path,instrument(s){let l=Object.keys(n);for(let u of l)s[u]&&n[u].push(s[u])}}));let a={};if(typeof t.lazy=="function"&&n.lazy.length>0){let i=Ho(n.lazy,t.lazy,()=>{});i&&(a.lazy=i)}if(typeof t.lazy=="object"){let i=t.lazy;["middleware","loader","action"].forEach(s=>{let l=i[s],u=n[`lazy.${s}`];if(typeof l=="function"&&u.length>0){let h=Ho(u,l,()=>{});h&&(a.lazy=Object.assign(a.lazy||{},{[s]:h}))}})}return["loader","action"].forEach(i=>{let s=t[i];if(typeof s=="function"&&n[i].length>0){let l=s[ai]??s,u=Ho(n[i],l,(...h)=>Zv(h[0]));u&&(i==="loader"&&l.hydrate===!0&&(u.hydrate=!0),u[ai]=l,a[i]=u)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(a.middleware=t.middleware.map(i=>{let s=i[ai]??i,l=Ho(n.middleware,s,(...u)=>Zv(u[0]));return l?(l[ai]=s,l):i})),a}function TC(e,t){let n={navigate:[],fetch:[]};if(t.forEach(a=>a({instrument(i){let s=Object.keys(i);for(let l of s)i[l]&&n[l].push(i[l])}})),n.navigate.length>0){let a=e.navigate[ai]??e.navigate,i=Ho(n.navigate,a,(...s)=>{let[l,u]=s;return{to:typeof l=="number"||typeof l=="string"?l:l?Za(l):".",...Xv(e,u??{})}});i&&(i[ai]=a,e.navigate=i)}if(n.fetch.length>0){let a=e.fetch[ai]??e.fetch,i=Ho(n.fetch,a,(...s)=>{let[l,,u,h]=s;return{href:u??".",fetcherKey:l,...Xv(e,h??{})}});i&&(i[ai]=a,e.fetch=i)}return e}function Ho(e,t,n){return e.length===0?null:async(...a)=>{let i=await u1(e,n(...a),()=>t(...a),e.length-1);if(i.type==="error")throw i.value;return i.value}}async function u1(e,t,n,a){let i=e[a],s;if(i){let l,u=async()=>(l?console.error("You cannot call instrumented handlers more than once"):l=u1(e,t,n,a-1),s=await l,Ze(s,"Expected a result"),s.type==="error"&&s.value instanceof Error?{status:"error",error:s.value}:{status:"success",error:void 0});try{await i(u,t)}catch(h){console.error("An instrumentation function threw an error:",h)}l||await u(),await l}else try{s={type:"success",value:await n()}}catch(l){s={type:"error",value:l}}return s||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function Zv(e){let{request:t,context:n,params:a,pattern:i}=e;return{request:EC(t),params:{...a},pattern:i,context:AC(n)}}function Xv(e,t){return{currentUrl:Za(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function EC(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function AC(e){if(LC(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var RC=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function LC(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===RC}var d1=["POST","PUT","PATCH","DELETE"],DC=new Set(d1),IC=["GET",...d1],MC=new Set(IC),h1=new Set([301,302,303,307,308]),NC=new Set([307,308]),If={state:"idle",location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},OC={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},al={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},jC=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),f1="remix-router-transitions",p1=Symbol("ResetLoaderData"),Mi,Uo,Qr,zo,UC=class{constructor(e){dl(this,Mi),dl(this,Uo),dl(this,Qr),dl(this,zo),za(this,Mi,e),za(this,Uo,Tu(e))}get stableRoutes(){return ea(this,Mi)}get activeRoutes(){return ea(this,Qr)??ea(this,Mi)}get branches(){return ea(this,zo)??ea(this,Uo)}get hasHMRRoutes(){return ea(this,Qr)!=null}setRoutes(e){za(this,Mi,e),za(this,Uo,Tu(e))}setHmrRoutes(e){za(this,Qr,e),za(this,zo,Tu(e))}commitHmrRoutes(){ea(this,Qr)&&(za(this,Mi,ea(this,Qr)),za(this,Uo,ea(this,zo)),za(this,Qr,void 0),za(this,zo,void 0))}};Mi=new WeakMap;Uo=new WeakMap;Qr=new WeakMap;zo=new WeakMap;function zC(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";Ze(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a=e.hydrationRouteProperties||[],i=e.mapRouteProperties||jC,s=i;if(e.instrumentations){let N=e.instrumentations;s=z=>({...i(z),...CC(N.map($=>$.route).filter(Boolean),z)})}let l={},u=new UC(Al(e.routes,s,void 0,l)),h=e.basename||"/";h.startsWith("/")||(h=`/${h}`);let f=e.dataStrategy||$C,p={...e.future},g=null,v=new Set,_=null,w=null,S=null,P=null,D=e.hydrationData!=null,R=wa(u.activeRoutes,e.history.location,h,!1,u.branches),E=!1,A=null,U,F;if(R==null&&!e.patchRoutesOnNavigation){let N=ta(404,{pathname:e.history.location.pathname}),{matches:z,route:$}=ou(u.activeRoutes);U=!0,F=!U,R=z,A={[$.id]:N}}else if(R&&!e.hydrationData&&Tr(R,u.activeRoutes,e.history.location.pathname).active&&(R=null),R)if(R.some(N=>N.route.lazy))U=!1,F=!U;else if(!R.some(N=>Im(N.route)))U=!0,F=!U;else{let N=e.hydrationData?e.hydrationData.loaderData:null,z=e.hydrationData?e.hydrationData.errors:null,$=R;if(z){let Q=R.findIndex(ee=>z[ee.route.id]!==void 0);$=$.slice(0,Q+1)}F=!1,U=!0,$.forEach(Q=>{let ee=m1(Q.route,N,z);F=F||ee.renderFallback,U=U&&!ee.shouldLoad})}else{U=!1,F=!U,R=[];let N=Tr(null,u.activeRoutes,e.history.location.pathname);N.active&&N.matches&&(E=!0,R=N.matches)}let j,C={historyAction:e.history.action,location:e.history.location,matches:R,initialized:U,renderFallback:F,navigation:If,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||A,fetchers:new Map,blockers:new Map},K="POP",Y=null,ce=!1,re,fe=!1,de=new Map,he=null,oe=!1,X=!1,Z=new Set,J=new Map,V=0,M=-1,G=new Map,ye=new Set,me=new Map,pe=new Map,ke=new Set,We=new Map,Xe,Ue=null;function Dt(){if(g=e.history.listen(({action:N,location:z,delta:$})=>{if(Xe){Xe(),Xe=void 0;return}Nt(We.size===0||$!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let Q=sr({currentLocation:C.location,nextLocation:z,historyAction:N});if(Q&&$!=null){let ee=new Promise(Re=>{Xe=Re});e.history.go($*-1),jn(Q,{state:"blocked",location:z,proceed(){jn(Q,{state:"proceeding",proceed:void 0,reset:void 0,location:z}),ee.then(()=>e.history.go($))},reset(){let Re=new Map(C.blockers);Re.set(Q,al),gt({blockers:Re})}}),Y?.resolve(),Y=null;return}return Nn(N,z)}),n){l4(t,de);let N=()=>c4(t,de);t.addEventListener("pagehide",N),he=()=>t.removeEventListener("pagehide",N)}return C.initialized||Nn("POP",C.location,{initialHydration:!0}),j}function rn(){g&&g(),he&&he(),v.clear(),re&&re.abort(),C.fetchers.forEach((N,z)=>qt(C.fetchers,z)),C.blockers.forEach((N,z)=>Cr(z))}function Sn(N){if(v.add(N),_){let{newErrors:z}=_;_=null,N(C,{deletedFetchers:[],newErrors:z,viewTransitionOpts:void 0,flushSync:!1})}return()=>v.delete(N)}function gt(N,z={}){N.matches&&(N.matches=N.matches.map(ee=>{let Re=l[ee.route.id],Le=ee.route;return Le.element!==Re.element||Le.errorElement!==Re.errorElement||Le.hydrateFallbackElement!==Re.hydrateFallbackElement?{...ee,route:Re}:ee})),C={...C,...N};let $=[],Q=[];C.fetchers.forEach((ee,Re)=>{ee.state==="idle"&&(ke.has(Re)?$.push(Re):Q.push(Re))}),ke.forEach(ee=>{!C.fetchers.has(ee)&&!J.has(ee)&&$.push(ee)}),v.size===0&&(_={newErrors:N.errors??null}),[...v].forEach(ee=>ee(C,{deletedFetchers:$,newErrors:N.errors??null,viewTransitionOpts:z.viewTransitionOpts,flushSync:z.flushSync===!0})),$.forEach(ee=>qt(C.fetchers,ee)),Q.forEach(ee=>C.fetchers.delete(ee))}function Ut(N,z,{flushSync:$}={}){let Q=C.actionData!=null&&C.navigation.formMethod!=null&&fn(C.navigation.formMethod)&&C.navigation.state==="loading"&&N.state?._isRedirect!==!0,ee;z.actionData?Object.keys(z.actionData).length>0?ee=z.actionData:ee=null:Q?ee=C.actionData:ee=null;let Re=z.loaderData?lb(C.loaderData,z.loaderData,z.matches||[],z.errors):C.loaderData,Le=C.blockers;Le.size>0&&(Le=new Map(Le),Le.forEach((Me,Ke)=>Le.set(Ke,al)));let Ie=oe?!1:ws(N,z.matches||C.matches),ve=ce===!0||C.navigation.formMethod!=null&&fn(C.navigation.formMethod)&&N.state?._isRedirect!==!0;u.commitHmrRoutes(),oe||K==="POP"||(K==="PUSH"?e.history.push(N,N.state):K==="REPLACE"&&e.history.replace(N,N.state));let Ne;if(K==="POP"){let Me=de.get(C.location.pathname);Me&&Me.has(N.pathname)?Ne={currentLocation:C.location,nextLocation:N}:de.has(N.pathname)&&(Ne={currentLocation:N,nextLocation:C.location})}else if(fe){let Me=de.get(C.location.pathname);Me?Me.add(N.pathname):(Me=new Set([N.pathname]),de.set(C.location.pathname,Me)),Ne={currentLocation:C.location,nextLocation:N}}gt({...z,actionData:ee,loaderData:Re,historyAction:K,location:N,initialized:!0,renderFallback:!1,navigation:If,revalidation:"idle",restoreScrollPosition:Ie,preventScrollReset:ve,blockers:Le},{viewTransitionOpts:Ne,flushSync:$===!0}),K="POP",ce=!1,fe=!1,oe=!1,X=!1,Y?.resolve(),Y=null,Ue?.resolve(),Ue=null}async function fi(N,z){if(Y?.resolve(),Y=null,typeof N=="number"){Y||(Y=hb());let ht=Y.promise;return e.history.go(N),ht}let $=Tp(C.location,C.matches,h,N,z?.fromRouteId,z?.relative),{path:Q,submission:ee,error:Re}=Jv(!1,$,z),Le;z?.mask&&(Le={pathname:"",search:"",hash:"",...typeof z.mask=="string"?nr(z.mask):{...C.location.mask,...z.mask}});let Ie=C.location,ve=El(Ie,Q,z&&z.state,void 0,Le);ve={...ve,...e.history.encodeLocation(ve)};let Ne=z&&z.replace!=null?z.replace:void 0,Me="PUSH";Ne===!0?Me="REPLACE":Ne===!1||ee!=null&&fn(ee.formMethod)&&ee.formAction===C.location.pathname+C.location.search&&(Me="REPLACE");let Ke=z&&"preventScrollReset"in z?z.preventScrollReset===!0:void 0,ze=(z&&z.flushSync)===!0,rt=sr({currentLocation:Ie,nextLocation:ve,historyAction:Me});if(rt){jn(rt,{state:"blocked",location:ve,proceed(){jn(rt,{state:"proceeding",proceed:void 0,reset:void 0,location:ve}),fi(N,z)},reset(){let ht=new Map(C.blockers);ht.set(rt,al),gt({blockers:ht})}});return}await Nn(Me,ve,{submission:ee,pendingError:Re,preventScrollReset:Ke,replace:z&&z.replace,enableViewTransition:z&&z.viewTransition,flushSync:ze,callSiteDefaultShouldRevalidate:z&&z.defaultShouldRevalidate})}function ao(){Ue||(Ue=hb()),bt(),gt({revalidation:"loading"});let N=Ue.promise;return C.navigation.state==="submitting"?N:C.navigation.state==="idle"?(Nn(C.historyAction,C.location,{startUninterruptedRevalidation:!0}),N):(Nn(K||C.historyAction,C.navigation.location,{overrideNavigation:C.navigation,enableViewTransition:fe===!0}),N)}async function Nn(N,z,$){re&&re.abort(),re=null,K=N,oe=($&&$.startUninterruptedRevalidation)===!0,ac(C.location,C.matches),ce=($&&$.preventScrollReset)===!0,fe=($&&$.enableViewTransition)===!0;let Q=u.activeRoutes,ee=$?.initialHydration&&C.matches&&C.matches.length>0&&!E?C.matches:wa(Q,z,h,!1,u.branches),Re=($&&$.flushSync)===!0;if(ee&&C.initialized&&!X&&JC(C.location,z)&&!($&&$.submission&&fn($.submission.formMethod))){Ut(z,{matches:ee},{flushSync:Re});return}let Le=Tr(ee,Q,z.pathname);if(Le.active&&Le.matches&&(ee=Le.matches),!ee){let{error:wt,notFoundMatches:ft,route:tt}=oo(z.pathname);Ut(z,{matches:ft,loaderData:{},errors:{[tt.id]:wt}},{flushSync:Re});return}let Ie=$&&$.overrideNavigation?{...$.overrideNavigation,matches:ee,historyAction:N}:void 0;re=new AbortController;let ve=Bo(e.history,z,re.signal,$&&$.submission),Ne=e.getContext?await e.getContext():new Gv,Me;if($&&$.pendingError)Me=[ti(ee).route.id,{type:"error",error:$.pendingError}];else if($&&$.submission&&fn($.submission.formMethod)){let wt=await ro(ve,z,$.submission,ee,N,Ne,Le.active,$&&$.initialHydration===!0,{replace:$.replace,flushSync:Re});if(wt.shortCircuited)return;if(wt.pendingActionResult){let[ft,tt]=wt.pendingActionResult;if($n(tt)&&Rl(tt.error)&&tt.error.status===404){re=null,Ut(z,{matches:wt.matches,loaderData:{},errors:{[ft]:tt.error}});return}}ee=wt.matches||ee,Me=wt.pendingActionResult,Ie=Mf(z,ee,N,$.submission),Re=!1,Le.active=!1,ve=Bo(e.history,ve.url,ve.signal)}let{shortCircuited:Ke,matches:ze,loaderData:rt,errors:ht,workingFetchers:Ot}=await Sr(ve,z,ee,N,Ne,Le.active,Ie,$&&$.submission,$&&$.fetcherSubmission,$&&$.replace,$&&$.initialHydration===!0,Re,Me,$&&$.callSiteDefaultShouldRevalidate);Ke||(re=null,Ut(z,{matches:ze||ee,...cb(Me),loaderData:rt,errors:ht,...Ot?{fetchers:Ot}:{}}))}async function ro(N,z,$,Q,ee,Re,Le,Ie,ve={}){bt();let Ne=o4(z,Q,ee,$);if(gt({navigation:Ne},{flushSync:ve.flushSync===!0}),Le){let ze=await gi(Q,z.pathname,N.signal);if(ze.type==="aborted")return{shortCircuited:!0};if(ze.type==="error"){if(ze.partialMatches.length===0){let{matches:ht,route:Ot}=ou(u.activeRoutes);return{matches:ht,pendingActionResult:[Ot.id,{type:"error",error:ze.error}]}}let rt=ti(ze.partialMatches).route.id;return{matches:ze.partialMatches,pendingActionResult:[rt,{type:"error",error:ze.error}]}}else if(ze.matches)Q=ze.matches;else{let{notFoundMatches:rt,error:ht,route:Ot}=oo(z.pathname);return{matches:rt,pendingActionResult:[Ot.id,{type:"error",error:ht}]}}}let Me,Ke=Eu(Q,z);if(!Ke.route.action&&!Ke.route.lazy)Me={type:"error",error:ta(405,{method:N.method,pathname:z.pathname,routeId:Ke.route.id})};else{let ze=qo(s,l,N,z,Q,Ke,Ie?[]:a,Re),rt=await ct(N,z,ze,Re,null);if(Me=rt[Ke.route.id],!Me){for(let ht of Q)if(rt[ht.route.id]){Me=rt[ht.route.id];break}}if(N.signal.aborted)return{shortCircuited:!0}}if(Oi(Me)){let ze;return ve&&ve.replace!=null?ze=ve.replace:ze=ib(Me.response.headers.get("Location"),new URL(N.url),h,e.history)===C.location.pathname+C.location.search,await $e(N,Me,!0,{submission:$,replace:ze}),{shortCircuited:!0}}if($n(Me)){let ze=ti(Q,Ke.route.id);return(ve&&ve.replace)!==!0&&(K="PUSH"),{matches:Q,pendingActionResult:[ze.route.id,Me,Ke.route.id]}}return{matches:Q,pendingActionResult:[Ke.route.id,Me]}}async function Sr(N,z,$,Q,ee,Re,Le,Ie,ve,Ne,Me,Ke,ze,rt){let ht=Le||Mf(z,$,Q,Ie),Ot=Ie||ve||db(ht),wt=!oe&&!Me;if(Re){if(wt){let ln=La(ze);gt({navigation:ht,...ln!==void 0?{actionData:ln}:{}},{flushSync:Ke})}let nt=await gi($,z.pathname,N.signal);if(nt.type==="aborted")return{shortCircuited:!0};if(nt.type==="error"){if(nt.partialMatches.length===0){let{matches:gn,route:Cn}=ou(u.activeRoutes);return{matches:gn,loaderData:{},errors:{[Cn.id]:nt.error}}}let ln=ti(nt.partialMatches).route.id;return{matches:nt.partialMatches,loaderData:{},errors:{[ln]:nt.error}}}else if(nt.matches)$=nt.matches;else{let{error:ln,notFoundMatches:gn,route:Cn}=oo(z.pathname);return{matches:gn,loaderData:{},errors:{[Cn.id]:ln}}}}let ft=u.activeRoutes,{dsMatches:tt,revalidatingFetchers:on}=Qv(N,ee,s,l,e.history,C,$,Ot,z,Me?[]:a,Me===!0,X,Z,ke,me,ye,ft,h,e.patchRoutesOnNavigation!=null,u.branches,ze,rt);if(M=++V,!e.dataStrategy&&!tt.some(nt=>nt.shouldLoad)&&!tt.some(nt=>nt.route.middleware&&nt.route.middleware.length>0)&&on.length===0){let nt=new Map(C.fetchers),ln=Ia(nt);return Ut(z,{matches:$,loaderData:{},errors:ze&&$n(ze[1])?{[ze[0]]:ze[1].error}:null,...cb(ze),...ln?{fetchers:nt}:{}},{flushSync:Ke}),{shortCircuited:!0}}if(wt){let nt={};if(!Re){nt.navigation=ht;let ln=La(ze);ln!==void 0&&(nt.actionData=ln)}on.length>0&&(nt.fetchers=On(on)),gt(nt,{flushSync:Ke})}on.forEach(nt=>{mn(nt.key),nt.controller&&J.set(nt.key,nt.controller)});let lr=()=>on.forEach(nt=>mn(nt.key));re&&re.signal.addEventListener("abort",lr);let{loaderResults:ha,fetcherResults:fa}=await At(tt,on,N,z,ee);if(N.signal.aborted)return{shortCircuited:!0};re&&re.signal.removeEventListener("abort",lr),on.forEach(nt=>J.delete(nt.key));let Ma=su(ha);if(Ma)return await $e(N,Ma.result,!0,{replace:Ne}),{shortCircuited:!0};if(Ma=su(fa),Ma)return ye.add(Ma.key),await $e(N,Ma.result,!0,{replace:Ne}),{shortCircuited:!0};let Un=new Map(C.fetchers),{loaderData:Ar,errors:Ht}=sb(C,$,ha,ze,on,fa,Un);Me&&C.errors&&(Ht={...C.errors,...Ht});let so=Ia(Un),sn=da(M,Un),lo=so||sn||on.length>0;return{matches:$,loaderData:Ar,errors:Ht,...lo?{workingFetchers:Un}:{}}}function La(N){if(N&&!$n(N[1]))return{[N[0]]:N[1].data};if(C.actionData)return Object.keys(C.actionData).length===0?null:C.actionData}function On(N){let z=new Map(C.fetchers);return N.forEach($=>{let Q=z.get($.key),ee=rl(void 0,Q?Q.data:void 0);z.set($.key,ee)}),z}async function pi(N,z,$,Q){mn(N);let ee=(Q&&Q.flushSync)===!0,Re=u.activeRoutes,Le=Tp(C.location,C.matches,h,$,z,Q?.relative),Ie=wa(Re,Le,h,!1,u.branches),ve=Tr(Ie,Re,Le);if(ve.active&&ve.matches&&(Ie=ve.matches),!Ie){dt(N,z,ta(404,{pathname:Le}),{flushSync:ee});return}let{path:Ne,submission:Me,error:Ke}=Jv(!0,Le,Q);if(Ke){dt(N,z,Ke,{flushSync:ee});return}let ze=e.getContext?await e.getContext():new Gv,rt=(Q&&Q.preventScrollReset)===!0;if(Me&&fn(Me.formMethod)){await io(N,z,Ne,Ie,ze,ve.active,ee,rt,Me,Q&&Q.defaultShouldRevalidate);return}me.set(N,{routeId:z,path:Ne}),await Ge(N,z,Ne,Ie,ze,ve.active,ee,rt,Me)}async function io(N,z,$,Q,ee,Re,Le,Ie,ve,Ne){bt(),me.delete(N);let Me=C.fetchers.get(N);mt(N,s4(ve,Me),{flushSync:Le});let Ke=new AbortController,ze=Bo(e.history,$,Ke.signal,ve);if(Re){let kt=await gi(Q,new URL(ze.url).pathname,ze.signal,N);if(kt.type==="aborted")return;if(kt.type==="error"){dt(N,z,kt.error,{flushSync:Le});return}else if(kt.matches)Q=kt.matches;else{dt(N,z,ta(404,{pathname:$}),{flushSync:Le});return}}let rt=Eu(Q,$);if(!rt.route.action&&!rt.route.lazy){let kt=ta(405,{method:ve.formMethod,pathname:$,routeId:z});dt(N,z,kt,{flushSync:Le});return}J.set(N,Ke);let ht=V,Ot=qo(s,l,ze,$,Q,rt,a,ee),wt=await ct(ze,$,Ot,ee,N),ft=wt[rt.route.id];if(!ft){for(let kt of Ot)if(wt[kt.route.id]){ft=wt[kt.route.id];break}}if(ze.signal.aborted){J.get(N)===Ke&&J.delete(N);return}if(ke.has(N)){if(Oi(ft)||$n(ft)){mt(N,Va(void 0));return}}else{if(Oi(ft))if(J.delete(N),M>ht){mt(N,Va(void 0));return}else return ye.add(N),mt(N,rl(ve)),$e(ze,ft,!1,{fetcherSubmission:ve,preventScrollReset:Ie});if($n(ft)){dt(N,z,ft.error);return}}let tt=C.navigation.location||C.location,on=Bo(e.history,tt,Ke.signal),lr=u.activeRoutes,ha=C.navigation.state!=="idle"?wa(lr,C.navigation.location,h,!1,u.branches):C.matches;Ze(ha,"Didn't find any matches after fetcher action");let fa=++V;G.set(N,fa);let{dsMatches:Ma,revalidatingFetchers:Un}=Qv(on,ee,s,l,e.history,C,ha,ve,tt,a,!1,X,Z,ke,me,ye,lr,h,e.patchRoutesOnNavigation!=null,u.branches,[rt.route.id,ft],Ne),Ar=rl(ve,ft.data),Ht=new Map(C.fetchers);Ht.set(N,Ar),Un.filter(kt=>kt.key!==N).forEach(kt=>{let cr=kt.key,co=Ht.get(cr),rc=rl(void 0,co?co.data:void 0);Ht.set(cr,rc),mn(cr),kt.controller&&J.set(cr,kt.controller)}),gt({fetchers:Ht});let so=()=>Un.forEach(kt=>mn(kt.key));Ke.signal.addEventListener("abort",so);let{loaderResults:sn,fetcherResults:lo}=await At(Ma,Un,on,tt,ee);if(Ke.signal.aborted)return;Ke.signal.removeEventListener("abort",so),G.delete(N),J.delete(N),Un.forEach(kt=>J.delete(kt.key));let nt=C.fetchers.has(N),ln=kt=>{if(!nt)return kt;let cr=new Map(kt.fetchers);return cr.set(N,Va(ft.data)),{...kt,fetchers:cr}},gn=su(sn);if(gn)return C=ln(C),$e(on,gn.result,!1,{preventScrollReset:Ie});if(gn=su(lo),gn)return ye.add(gn.key),C=ln(C),$e(on,gn.result,!1,{preventScrollReset:Ie});let Cn=new Map(C.fetchers);nt&&Cn.set(N,Va(ft.data));let{loaderData:Rr,errors:Lr}=sb(C,ha,sn,void 0,Un,lo,Cn);da(fa,Cn),C.navigation.state==="loading"&&fa>M?(Ze(K,"Expected pending action"),re&&re.abort(),Ut(C.navigation.location,{matches:ha,loaderData:Rr,errors:Lr,fetchers:Cn})):(gt({errors:Lr,loaderData:lb(C.loaderData,Rr,ha,Lr),fetchers:Cn}),X=!1)}async function Ge(N,z,$,Q,ee,Re,Le,Ie,ve){let Ne=C.fetchers.get(N);mt(N,rl(ve,Ne?Ne.data:void 0),{flushSync:Le});let Me=new AbortController,Ke=Bo(e.history,$,Me.signal);if(Re){let ft=await gi(Q,new URL(Ke.url).pathname,Ke.signal,N);if(ft.type==="aborted")return;if(ft.type==="error"){dt(N,z,ft.error,{flushSync:Le});return}else if(ft.matches)Q=ft.matches;else{dt(N,z,ta(404,{pathname:$}),{flushSync:Le});return}}let ze=Eu(Q,$);J.set(N,Me);let rt=V,ht=qo(s,l,Ke,$,Q,ze,a,ee),Ot=await ct(Ke,$,ht,ee,N),wt=Ot[ze.route.id];if(!wt){for(let ft of Q)if(Ot[ft.route.id]){wt=Ot[ft.route.id];break}}if(J.get(N)===Me&&J.delete(N),!Ke.signal.aborted){if(ke.has(N)){mt(N,Va(void 0));return}if(Oi(wt))if(M>rt){mt(N,Va(void 0));return}else{ye.add(N),await $e(Ke,wt,!1,{preventScrollReset:Ie});return}if($n(wt)){dt(N,z,wt.error);return}mt(N,Va(wt.data))}}async function $e(N,z,$,{submission:Q,fetcherSubmission:ee,preventScrollReset:Re,replace:Le}={}){$||(Y?.resolve(),Y=null),z.response.headers.has("X-Remix-Revalidate")&&(X=!0);let Ie=z.response.headers.get("Location");Ze(Ie,"Expected a Location header on the redirect Response"),Ie=ib(Ie,new URL(N.url),h,e.history);let ve=El(C.location,Ie,{_isRedirect:!0});if(n){let ht=!1;if(z.response.headers.has("X-Remix-Reload-Document"))ht=!0;else if(Lm(Ie)){const Ot=n1(t,Ie,!0);ht=Ot.origin!==t.location.origin||sa(Ot.pathname,h)==null}if(ht){Le?t.location.replace(Ie):t.location.assign(Ie);return}}re=null;let Ne=Le===!0||z.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:Me,formAction:Ke,formEncType:ze}=C.navigation;!Q&&!ee&&Me&&Ke&&ze&&(Q=db(C.navigation));let rt=Q||ee;if(NC.has(z.response.status)&&rt&&fn(rt.formMethod))await Nn(Ne,ve,{submission:{...rt,formAction:Ie},preventScrollReset:Re||ce,enableViewTransition:$?fe:void 0});else{let ht=Mf(ve,[],Ne,Q);await Nn(Ne,ve,{overrideNavigation:ht,fetcherSubmission:ee,preventScrollReset:Re||ce,enableViewTransition:$?fe:void 0})}}async function ct(N,z,$,Q,ee){let Re,Le={};try{Re=await GC(f,N,z,$,ee,Q,!1)}catch(Ie){return $.filter(ve=>ve.shouldLoad).forEach(ve=>{Le[ve.route.id]={type:"error",error:Ie}}),Le}if(N.signal.aborted)return Le;if(!fn(N.method))for(let Ie of $){if(Re[Ie.route.id]?.type==="error")break;!Re.hasOwnProperty(Ie.route.id)&&!C.loaderData.hasOwnProperty(Ie.route.id)&&(!C.errors||!C.errors.hasOwnProperty(Ie.route.id))&&Ie.shouldCallHandler()&&(Re[Ie.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${Ie.route.id}`)})}for(let[Ie,ve]of Object.entries(Re))if(n4(ve)){let Ne=ve.result;Le[Ie]={type:"redirect",response:ZC(Ne,N,Ie,$,h)}}else Le[Ie]=await YC(ve);return Le}async function At(N,z,$,Q,ee){let Re=ct($,Q,N,ee,null),Le=Promise.all(z.map(async Ne=>{if(Ne.matches&&Ne.match&&Ne.request&&Ne.controller){let Ke=(await ct(Ne.request,Ne.path,Ne.matches,ee,Ne.key))[Ne.match.route.id];return{[Ne.key]:Ke}}else return Promise.resolve({[Ne.key]:{type:"error",error:ta(404,{pathname:Ne.path})}})})),Ie=await Re,ve=(await Le).reduce((Ne,Me)=>Object.assign(Ne,Me),{});return{loaderResults:Ie,fetcherResults:ve}}function bt(){X=!0,me.forEach((N,z)=>{J.has(z)&&Z.add(z),mn(z)})}function mt(N,z,$={}){let Q=new Map(C.fetchers);Q.set(N,z),gt({fetchers:Q},{flushSync:($&&$.flushSync)===!0})}function dt(N,z,$,Q={}){let ee=ti(C.matches,z),Re=new Map(C.fetchers);qt(Re,N),gt({errors:{[ee.route.id]:$},fetchers:Re},{flushSync:(Q&&Q.flushSync)===!0})}function ua(N){return pe.set(N,(pe.get(N)||0)+1),ke.has(N)&&ke.delete(N),C.fetchers.get(N)||OC}function ks(N,z){mn(N,z?.reason),mt(N,Va(null))}function qt(N,z){let $=C.fetchers.get(z);J.has(z)&&!($&&$.state==="loading"&&G.has(z))&&mn(z),me.delete(z),G.delete(z),ye.delete(z),ke.delete(z),Z.delete(z),N.delete(z)}function or(N){let z=(pe.get(N)||0)-1;z<=0?(pe.delete(N),ke.add(N)):pe.set(N,z),gt({fetchers:new Map(C.fetchers)})}function mn(N,z){let $=J.get(N);$&&($.abort(z),J.delete(N))}function Da(N,z){for(let $ of N){let Q=z.get($);Ze(Q,`Expected fetcher: ${$}`);let ee=Va(Q.data);z.set($,ee)}}function Ia(N){let z=[],$=!1;for(let Q of ye){let ee=N.get(Q);Ze(ee,`Expected fetcher: ${Q}`),ee.state==="loading"&&(ye.delete(Q),z.push(Q),$=!0)}return Da(z,N),$}function da(N,z){let $=[];for(let[Q,ee]of G)if(ee<N){let Re=z.get(Q);Ze(Re,`Expected fetcher: ${Q}`),Re.state==="loading"&&(mn(Q),G.delete(Q),$.push(Q))}return Da($,z),$.length>0}function mi(N,z){let $=C.blockers.get(N)||al;return We.get(N)!==z&&We.set(N,z),$}function Cr(N){C.blockers.delete(N),We.delete(N)}function jn(N,z){let $=C.blockers.get(N)||al;Ze($.state==="unblocked"&&z.state==="blocked"||$.state==="blocked"&&z.state==="blocked"||$.state==="blocked"&&z.state==="proceeding"||$.state==="blocked"&&z.state==="unblocked"||$.state==="proceeding"&&z.state==="unblocked",`Invalid blocker state transition: ${$.state} -> ${z.state}`);let Q=new Map(C.blockers);Q.set(N,z),gt({blockers:Q})}function sr({currentLocation:N,nextLocation:z,historyAction:$}){if(We.size===0)return;We.size>1&&Nt(!1,"A router only supports one blocker at a time");let Q=Array.from(We.entries()),[ee,Re]=Q[Q.length-1],Le=C.blockers.get(ee);if(!(Le&&Le.state==="proceeding")&&Re({currentLocation:N,nextLocation:z,historyAction:$}))return ee}function oo(N){let z=ta(404,{pathname:N}),$=u.activeRoutes,{matches:Q,route:ee}=ou($);return{notFoundMatches:Q,route:ee,error:z}}function nc(N,z,$){if(w=N,P=z,S=$||null,!D&&C.navigation===If){D=!0;let Q=ws(C.location,C.matches);Q!=null&&gt({restoreScrollPosition:Q})}return()=>{w=null,P=null,S=null}}function _s(N,z){return S&&S(N,z.map(Q=>lC(Q,C.loaderData)))||N.key}function ac(N,z){if(w&&P){let $=_s(N,z);w[$]=P()}}function ws(N,z){if(w){let $=_s(N,z),Q=w[$];if(typeof Q=="number")return Q}return null}function Tr(N,z,$){if(e.patchRoutesOnNavigation){let Q=u.branches;if(N){if(Object.keys(N[0].params).length>0)return{active:!0,matches:wa(z,$,h,!0,Q)}}else return{active:!0,matches:wa(z,$,h,!0,Q)||[]}}return{active:!1,matches:null}}async function gi(N,z,$,Q){if(!e.patchRoutesOnNavigation)return{type:"success",matches:N};let ee=N;for(;;){let Re=l;try{await e.patchRoutesOnNavigation({signal:$,path:z,matches:ee,fetcherKey:Q,patch:(Ne,Me)=>{$.aborted||eb(Ne,Me,u,Re,s,!1)}})}catch(Ne){return{type:"error",error:Ne,partialMatches:ee}}if($.aborted)return{type:"aborted"};let Le=u.branches,Ie=wa(u.activeRoutes,z,h,!1,Le),ve=null;if(Ie){if(Object.keys(Ie[0].params).length===0)return{type:"success",matches:Ie};if(ve=wa(u.activeRoutes,z,h,!0,Le),!(ve&&ee.length<ve.length&&Er(ee,ve.slice(0,ee.length))))return{type:"success",matches:Ie}}if(ve||(ve=wa(u.activeRoutes,z,h,!0,Le)),!ve||Er(ee,ve))return{type:"success",matches:null};ee=ve}}function Er(N,z){return N.length===z.length&&N.every(($,Q)=>$.route.id===z[Q].route.id)}function xs(N){l={},u.setHmrRoutes(Al(N,s,void 0,l))}function yi(N,z,$=!1){eb(N,z,u,l,s,$),u.hasHMRRoutes||gt({})}return j={get basename(){return h},get future(){return p},get state(){return C},get routes(){return u.stableRoutes},get branches(){return u.branches},get manifest(){return l},get window(){return t},initialize:Dt,subscribe:Sn,enableScrollRestoration:nc,navigate:fi,fetch:pi,revalidate:ao,createHref:N=>e.history.createHref(N),encodeLocation:N=>e.history.encodeLocation(N),getFetcher:ua,resetFetcher:ks,deleteFetcher:or,dispose:rn,getBlocker:mi,deleteBlocker:Cr,patchRoutes:yi,_internalFetchControllers:J,_internalSetRoutes:xs,_internalSetStateDoNotUseOrYouWillBreakYourApp(N){gt(N)}},e.instrumentations&&(j=TC(j,e.instrumentations.map(N=>N.router).filter(Boolean))),j}function BC(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Tp(e,t,n,a,i,s){let l,u;if(i){l=[];for(let f of t)if(l.push(f),f.route.id===i){u=f;break}}else l=t,u=t[t.length-1];let h=Bl(a||".",Rd(l),sa(e.pathname,n)||e.pathname,s==="path");if(a==null&&(h.search=e.search,h.hash=e.hash),(a==null||a===""||a===".")&&u){let f=Nm(h.search);if(u.route.index&&!f)h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&f){let p=new URLSearchParams(h.search),g=p.getAll("index");p.delete("index"),g.filter(_=>_).forEach(_=>p.append("index",_));let v=p.toString();h.search=v?`?${v}`:""}}return n!=="/"&&(h.pathname=_C({basename:n,pathname:h.pathname})),Za(h)}function Jv(e,t,n){if(!n||!BC(n))return{path:t};if(n.formMethod&&!i4(n.formMethod))return{path:t,error:ta(405,{method:n.formMethod})};let a=()=>({path:t,error:ta(400,{type:"invalid-body"})}),s=(n.formMethod||"get").toUpperCase(),l=w1(t);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!fn(s))return a();let g=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((v,[_,w])=>`${v}${_}=${w}
10
- `,""):String(n.body);return{path:t,submission:{formMethod:s,formAction:l,formEncType:n.formEncType,formData:void 0,json:void 0,text:g}}}else if(n.formEncType==="application/json"){if(!fn(s))return a();try{let g=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:s,formAction:l,formEncType:n.formEncType,formData:void 0,json:g,text:void 0}}}catch{return a()}}}Ze(typeof FormData=="function","FormData is not available in this environment");let u,h;if(n.formData)u=Ap(n.formData),h=n.formData;else if(n.body instanceof FormData)u=Ap(n.body),h=n.body;else if(n.body instanceof URLSearchParams)u=n.body,h=ob(u);else if(n.body==null)u=new URLSearchParams,h=new FormData;else try{u=new URLSearchParams(n.body),h=ob(u)}catch{return a()}let f={formMethod:s,formAction:l,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:h,json:void 0,text:void 0};if(fn(f.formMethod))return{path:t,submission:f};let p=nr(t);return e&&p.search&&Nm(p.search)&&u.append("index",""),p.search=`?${u}`,{path:Za(p),submission:f}}function Qv(e,t,n,a,i,s,l,u,h,f,p,g,v,_,w,S,P,D,R,E,A,U){let F=A?$n(A[1])?A[1].error:A[1].data:void 0,j=i.createURL(s.location),C=i.createURL(h),K;if(p&&s.errors){let oe=Object.keys(s.errors)[0];K=l.findIndex(X=>X.route.id===oe)}else if(A&&$n(A[1])){let oe=A[0];K=l.findIndex(X=>X.route.id===oe)-1}let Y=A?A[1].statusCode:void 0,ce=Y&&Y>=400,re={currentUrl:j,currentParams:s.matches[0]?.params||{},nextUrl:C,nextParams:l[0].params,...u,actionResult:F,actionStatus:Y},fe=Vl(l),de=l.map((oe,X)=>{let{route:Z}=oe,J=null;if(K!=null&&X>K)J=!1;else if(Z.lazy)J=!0;else if(!Im(Z))J=!1;else if(p){let{shouldLoad:ye}=m1(Z,s.loaderData,s.errors);J=ye}else FC(s.loaderData,s.matches[X],oe)&&(J=!0);if(J!==null)return Ep(n,a,e,h,fe,oe,f,t,J);let V=!1;typeof U=="boolean"?V=U:ce?V=!1:(g||j.pathname+j.search===C.pathname+C.search||j.search!==C.search||VC(s.matches[X],oe))&&(V=!0);let M={...re,defaultShouldRevalidate:V},G=yl(oe,M);return Ep(n,a,e,h,fe,oe,f,t,G,M,U)}),he=[];return w.forEach((oe,X)=>{if(p||!l.some(pe=>pe.route.id===oe.routeId)||_.has(X))return;let Z=s.fetchers.get(X),J=Z&&Z.state!=="idle"&&Z.data===void 0,V=wa(P,oe.path,D??"/",!1,E);if(!V){if(R&&J)return;he.push({key:X,routeId:oe.routeId,path:oe.path,matches:null,match:null,request:null,controller:null});return}if(S.has(X))return;let M=Eu(V,oe.path),G=new AbortController,ye=Bo(i,oe.path,G.signal),me=null;if(v.has(X))v.delete(X),me=qo(n,a,ye,oe.path,V,M,f,t);else if(J)g&&(me=qo(n,a,ye,oe.path,V,M,f,t));else{let pe;typeof U=="boolean"?pe=U:ce?pe=!1:pe=g;let ke={...re,defaultShouldRevalidate:pe};yl(M,ke)&&(me=qo(n,a,ye,oe.path,V,M,f,t,ke))}me&&he.push({key:X,routeId:oe.routeId,path:oe.path,matches:me,match:M,request:ye,controller:G})}),{dsMatches:de,revalidatingFetchers:he}}function Im(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function m1(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!Im(e))return{shouldLoad:!1,renderFallback:!1};let a=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!a&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader=="function"&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!a};let s=!a&&!i;return{shouldLoad:s,renderFallback:s}}function FC(e,t,n){let a=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return a||i}function VC(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function yl(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}function eb(e,t,n,a,i,s){let l;if(e){let f=a[e];Ze(f,`No route found to patch children into: routeId = ${e}`),f.children||(f.children=[]),l=f.children}else l=n.activeRoutes;let u=[],h=[];if(t.forEach(f=>{let p=l.find(g=>g1(f,g));p?h.push({existingRoute:p,newRoute:f}):u.push(f)}),u.length>0){let f=Al(u,i,[e||"_","patch",String(l?.length||"0")],a);l.push(...f)}if(s&&h.length>0)for(let f=0;f<h.length;f++){let{existingRoute:p,newRoute:g}=h[f],v=p,[_]=Al([g],i,[],{},!0);Object.assign(v,{element:_.element?_.element:v.element,errorElement:_.errorElement?_.errorElement:v.errorElement,hydrateFallbackElement:_.hydrateFallbackElement?_.hydrateFallbackElement:v.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function g1(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((n,a)=>t.children?.some(i=>g1(n,i)))??!1:!1}var tb=new WeakMap,y1=({key:e,route:t,manifest:n,mapRouteProperties:a})=>{let i=n[t.id];if(Ze(i,"No route found in manifest"),!i.lazy||typeof i.lazy!="object")return;let s=i.lazy[e];if(!s)return;let l=tb.get(i);l||(l={},tb.set(i,l));let u=l[e];if(u)return u;let h=(async()=>{let f=rC(e),g=i[e]!==void 0&&e!=="hasErrorBoundary";if(f)Nt(!f,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),l[e]=Promise.resolve();else if(g)Nt(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let v=await s();v!=null&&(Object.assign(i,{[e]:v}),Object.assign(i,a(i)))}typeof i.lazy=="object"&&(i.lazy[e]=void 0,Object.values(i.lazy).every(v=>v===void 0)&&(i.lazy=void 0))})();return l[e]=h,h},nb=new WeakMap;function HC(e,t,n,a,i){let s=n[e.id];if(Ze(s,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let p=nb.get(s);if(p)return{lazyRoutePromise:p,lazyHandlerPromise:p};let g=(async()=>{Ze(typeof e.lazy=="function","No lazy route function found");let v=await e.lazy(),_={};for(let w in v){let S=v[w];if(S===void 0)continue;let P=oC(w),R=s[w]!==void 0&&w!=="hasErrorBoundary";P?Nt(!P,"Route property "+w+" is not a supported property to be returned from a lazy route function. This property will be ignored."):R?Nt(!R,`Route "${s.id}" has a static property "${w}" defined but its lazy function is also returning a value for this property. The lazy route property "${w}" will be ignored.`):_[w]=S}Object.assign(s,_),Object.assign(s,{...a(s),lazy:void 0})})();return nb.set(s,g),g.catch(()=>{}),{lazyRoutePromise:g,lazyHandlerPromise:g}}let l=Object.keys(e.lazy),u=[],h;for(let p of l){if(i&&i.includes(p))continue;let g=y1({key:p,route:e,manifest:n,mapRouteProperties:a});g&&(u.push(g),p===t&&(h=g))}let f=u.length>0?Promise.all(u).then(()=>{}):void 0;return f?.catch(()=>{}),h?.catch(()=>{}),{lazyRoutePromise:f,lazyHandlerPromise:h}}async function ab(e){let t=e.matches.filter(i=>i.shouldLoad),n={};return(await Promise.all(t.map(i=>i.resolve()))).forEach((i,s)=>{n[t[s].route.id]=i}),n}async function $C(e){return e.matches.some(t=>t.route.middleware)?v1(e,()=>ab(e)):ab(e)}function v1(e,t){return WC(e,t,a=>{if(r4(a))throw a;return a},e4,n);function n(a,i,s){if(s)return Promise.resolve(Object.assign(s.value,{[i]:{type:"error",result:a}}));{let{matches:l}=e,u=Math.min(Math.max(l.findIndex(f=>f.route.id===i),0),Math.max(l.findIndex(f=>f.shouldCallHandler()),0)),h=ti(l,l[u].route.id).route.id;return Promise.resolve({[h]:{type:"error",result:a}})}}}async function WC(e,t,n,a,i){let{matches:s,...l}=e,u=s.flatMap(f=>f.route.middleware?f.route.middleware.map(p=>[f.route.id,p]):[]);return await b1(l,u,t,n,a,i)}async function b1(e,t,n,a,i,s,l=0){let{request:u}=e;if(u.signal.aborted)throw u.signal.reason??new Error(`Request aborted: ${u.method} ${u.url}`);let h=t[l];if(!h)return await n();let[f,p]=h,g,v=async()=>{if(g)throw new Error("You may only call `next()` once per middleware");try{return g={value:await b1(e,t,n,a,i,s,l+1)},g.value}catch(_){return g={value:await s(_,f,g)},g.value}};try{let _=await p(e,v),w=_!=null?a(_):void 0;return i(w)?w:g?w??g.value:(g={value:await v()},g.value)}catch(_){return await s(_,f,g)}}function k1(e,t,n,a,i){let s=y1({key:"middleware",route:a.route,manifest:t,mapRouteProperties:e}),l=HC(a.route,fn(n.method)?"action":"loader",t,e,i);return{middleware:s,route:l.lazyRoutePromise,handler:l.lazyHandlerPromise}}function Ep(e,t,n,a,i,s,l,u,h,f=null,p){let g=!1,v=k1(e,t,n,s,l);return{...s,_lazyPromises:v,shouldLoad:h,shouldRevalidateArgs:f,shouldCallHandler(_){return g=!0,f?typeof p=="boolean"?yl(s,{...f,defaultShouldRevalidate:p}):typeof _=="boolean"?yl(s,{...f,defaultShouldRevalidate:_}):yl(s,f):h},resolve(_){let{lazy:w,loader:S,middleware:P}=s.route,D=g||h||_&&!fn(n.method)&&(w||S),R=P&&P.length>0&&!S&&!w;return D&&(fn(n.method)||!R)?KC({request:n,path:a,pattern:i,match:s,lazyHandlerPromise:v?.handler,lazyRoutePromise:v?.route,handlerOverride:_,scopedContext:u}):Promise.resolve({type:"data",result:void 0})}}}function qo(e,t,n,a,i,s,l,u,h=null){return i.map(f=>f.route.id!==s.route.id?{...f,shouldLoad:!1,shouldRevalidateArgs:h,shouldCallHandler:()=>!1,_lazyPromises:k1(e,t,n,f,l),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Ep(e,t,n,a,Vl(i),f,l,u,!0,h))}async function GC(e,t,n,a,i,s,l){a.some(p=>p._lazyPromises?.middleware)&&await Promise.all(a.map(p=>p._lazyPromises?.middleware));let u={request:t,url:_1(t,n),pattern:Vl(a),params:a[0].params,context:s,matches:a},f=await e({...u,fetcherKey:i,runClientMiddleware:p=>{let g=u;return v1(g,()=>p({...g,fetcherKey:i,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(a.flatMap(p=>[p._lazyPromises?.handler,p._lazyPromises?.route]))}catch{}return f}async function KC({request:e,path:t,pattern:n,match:a,lazyHandlerPromise:i,lazyRoutePromise:s,handlerOverride:l,scopedContext:u}){let h,f,p=fn(e.method),g=p?"action":"loader",v=_=>{let w,S=new Promise((R,E)=>w=E);f=()=>w(),e.signal.addEventListener("abort",f);let P=R=>typeof _!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${g}" [routeId: ${a.route.id}]`)):_({request:e,url:_1(e,t),pattern:n,params:a.params,context:u},...R!==void 0?[R]:[]),D=(async()=>{try{return{type:"data",result:await(l?l(E=>P(E)):P())}}catch(R){return{type:"error",result:R}}})();return Promise.race([D,S])};try{let _=p?a.route.action:a.route.loader;if(i||s)if(_){let w,[S]=await Promise.all([v(_).catch(P=>{w=P}),i,s]);if(w!==void 0)throw w;h=S}else{await i;let w=p?a.route.action:a.route.loader;if(w)[h]=await Promise.all([v(w),s]);else if(g==="action"){let S=new URL(e.url),P=S.pathname+S.search;throw ta(405,{method:e.method,pathname:P,routeId:a.route.id})}else return{type:"data",result:void 0}}else if(_)h=await v(_);else{let w=new URL(e.url),S=w.pathname+w.search;throw ta(404,{pathname:S})}}catch(_){return{type:"error",result:_}}finally{f&&e.signal.removeEventListener("abort",f)}return h}async function qC(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function YC(e){let{result:t,type:n}=e;if(Mm(t)){let a;try{a=await qC(t)}catch(i){return{type:"error",error:i}}return n==="error"?{type:"error",error:new Fl(t.status,t.statusText,a),statusCode:t.status,headers:t.headers}:{type:"data",data:a,statusCode:t.status,headers:t.headers}}return n==="error"?ub(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:QC(t),statusCode:Rl(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Rl(t)?t.status:void 0}:ub(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function ZC(e,t,n,a,i){let s=e.headers.get("Location");if(Ze(s,"Redirects returned/thrown from loaders/actions must have a Location header"),!Lm(s)){let l=a.slice(0,a.findIndex(u=>u.route.id===n)+1);s=Tp(new URL(t.url),l,i,s),e.headers.set("Location",s)}return e}var rb=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function ib(e,t,n,a){if(Lm(e)){let i=e,s=i.startsWith("//")?new URL(t.protocol+i):new URL(i);if(rb.includes(s.protocol))throw new Error("Invalid redirect location");let l=sa(s.pathname,n)!=null;if(s.origin===t.origin&&l)return Dm(s.pathname)+s.search+s.hash}try{let i=a.createURL(e);if(rb.includes(i.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Bo(e,t,n,a){let i=e.createURL(w1(t)).toString(),s={signal:n};if(a&&fn(a.formMethod)){let{formMethod:l,formEncType:u}=a;s.method=l.toUpperCase(),u==="application/json"?(s.headers=new Headers({"Content-Type":u}),s.body=JSON.stringify(a.json)):u==="text/plain"?s.body=a.text:u==="application/x-www-form-urlencoded"&&a.formData?s.body=Ap(a.formData):s.body=a.formData}return new Request(i,s)}function _1(e,t){let n=new URL(e.url),a=typeof t=="string"?nr(t):t;if(n.pathname=a.pathname||"/",a.search){let i=new URLSearchParams(a.search),s=i.getAll("index");i.delete("index");for(let l of s.filter(Boolean))i.append("index",l);n.search=i.size?`?${i.toString()}`:""}else n.search="";return n.hash=a.hash||"",n}function Ap(e){let t=new URLSearchParams;for(let[n,a]of e.entries())t.append(n,typeof a=="string"?a:a.name);return t}function ob(e){let t=new FormData;for(let[n,a]of e.entries())t.append(n,a);return t}function XC(e,t,n,a=!1,i=!1){let s={},l=null,u,h=!1,f={},p=n&&$n(n[1])?n[1].error:void 0;return e.forEach(g=>{if(!(g.route.id in t))return;let v=g.route.id,_=t[v];if(Ze(!Oi(_),"Cannot handle redirect results in processLoaderData"),$n(_)){let w=_.error;if(p!==void 0&&(w=p,p=void 0),l=l||{},i)l[v]=w;else{let S=ti(e,v);l[S.route.id]==null&&(l[S.route.id]=w)}a||(s[v]=p1),h||(h=!0,u=Rl(_.error)?_.error.status:500),_.headers&&(f[v]=_.headers)}else s[v]=_.data,_.statusCode&&_.statusCode!==200&&!h&&(u=_.statusCode),_.headers&&(f[v]=_.headers)}),p!==void 0&&n&&(l={[n[0]]:p},n[2]&&(s[n[2]]=void 0)),{loaderData:s,errors:l,statusCode:u||200,loaderHeaders:f}}function sb(e,t,n,a,i,s,l){let{loaderData:u,errors:h}=XC(t,n,a);return i.filter(f=>!f.matches||f.matches.some(p=>p.shouldLoad)).forEach(f=>{let{key:p,match:g,controller:v}=f;if(v&&v.signal.aborted)return;let _=s[p];if(Ze(_,"Did not find corresponding fetcher result"),$n(_)){let w=ti(e.matches,g?.route.id);h&&h[w.route.id]||(h={...h,[w.route.id]:_.error}),l.delete(p)}else if(Oi(_))Ze(!1,"Unhandled fetcher revalidation redirect");else{let w=Va(_.data);l.set(p,w)}}),{loaderData:u,errors:h}}function lb(e,t,n,a){let i=Object.entries(t).filter(([,s])=>s!==p1).reduce((s,[l,u])=>(s[l]=u,s),{});for(let s of n){let l=s.route.id;if(!t.hasOwnProperty(l)&&e.hasOwnProperty(l)&&s.route.loader&&(i[l]=e[l]),a&&a.hasOwnProperty(l))break}return i}function cb(e){return e?$n(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ti(e,t){return(t?e.slice(0,e.findIndex(a=>a.route.id===t)+1):[...e]).reverse().find(a=>a.route.hasErrorBoundary===!0)||e[0]}function ou(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ta(e,{pathname:t,routeId:n,method:a,type:i,message:s}={}){let l="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(l="Bad Request",a&&t&&n?u=`You made a ${a} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i==="invalid-body"&&(u="Unable to encode submission body")):e===403?(l="Forbidden",u=`Route "${n}" does not match URL "${t}"`):e===404?(l="Not Found",u=`No route matches URL "${t}"`):e===405&&(l="Method Not Allowed",a&&t&&n?u=`You made a ${a.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:a&&(u=`Invalid request method "${a.toUpperCase()}"`)),new Fl(e||500,l,new Error(u),!0)}function su(e){let t=Object.entries(e);for(let n=t.length-1;n>=0;n--){let[a,i]=t[n];if(Oi(i))return{key:a,result:i}}}function w1(e){let t=typeof e=="string"?nr(e):e;return Za({...t,hash:""})}function JC(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function QC(e){return new Fl(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function e4(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,n])=>typeof t=="string"&&t4(n))}function t4(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function n4(e){return Mm(e.result)&&h1.has(e.result.status)}function $n(e){return e.type==="error"}function Oi(e){return(e&&e.type)==="redirect"}function ub(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Mm(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function a4(e){return h1.has(e)}function r4(e){return Mm(e)&&a4(e.status)&&e.headers.has("Location")}function i4(e){return MC.has(e.toUpperCase())}function fn(e){return DC.has(e.toUpperCase())}function Nm(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Eu(e,t){let n=typeof t=="string"?nr(t).search:t.search;if(e[e.length-1].route.index&&Nm(n||""))return e[e.length-1];let a=s1(e);return a[a.length-1]}function db(e){let{formMethod:t,formAction:n,formEncType:a,text:i,formData:s,json:l}=e;if(!(!t||!n||!a)){if(i!=null)return{formMethod:t,formAction:n,formEncType:a,formData:void 0,json:void 0,text:i};if(s!=null)return{formMethod:t,formAction:n,formEncType:a,formData:s,json:void 0,text:void 0};if(l!==void 0)return{formMethod:t,formAction:n,formEncType:a,formData:void 0,json:l,text:void 0}}}function Mf(e,t,n,a){return a?{state:"loading",location:e,matches:t,historyAction:n,formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text}:{state:"loading",location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function o4(e,t,n,a){return{state:"submitting",location:e,matches:t,historyAction:n,formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text}}function rl(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function s4(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Va(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function l4(e,t){try{let n=e.sessionStorage.getItem(f1);if(n){let a=JSON.parse(n);for(let[i,s]of Object.entries(a||{}))s&&Array.isArray(s)&&t.set(i,new Set(s||[]))}}catch{}}function c4(e,t){if(t.size>0){let n={};for(let[a,i]of t)n[a]=[...i];try{e.sessionStorage.setItem(f1,JSON.stringify(n))}catch(a){Nt(!1,`Failed to save applied view transitions in sessionStorage (${a}).`)}}}function hb(){let e,t,n=new Promise((a,i)=>{e=async s=>{a(s);try{await n}catch{}},t=async s=>{i(s);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var Ji=b.createContext(null);Ji.displayName="DataRouter";var Hl=b.createContext(null);Hl.displayName="DataRouterState";var x1=b.createContext(!1);function P1(){return b.useContext(x1)}var Om=b.createContext({isTransitioning:!1});Om.displayName="ViewTransition";var S1=b.createContext(new Map);S1.displayName="Fetchers";var u4=b.createContext(null);u4.displayName="Await";var Gn=b.createContext(null);Gn.displayName="Navigation";var Ld=b.createContext(null);Ld.displayName="Location";var ar=b.createContext({outlet:null,matches:[],isDataRoute:!1});ar.displayName="Route";var jm=b.createContext(null);jm.displayName="RouteError";var C1="REACT_ROUTER_ERROR",d4="REDIRECT",h4="ROUTE_ERROR_RESPONSE";function f4(e){if(e.startsWith(`${C1}:${d4}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function p4(e){if(e.startsWith(`${C1}:${h4}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Fl(t.status,t.statusText,t.data)}catch{}}function m4(e,{relative:t}={}){Ze(os(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:a}=b.useContext(Gn),{hash:i,pathname:s,search:l}=$l(e,{relative:t}),u=s;return n!=="/"&&(u=s==="/"?n:ra([n,s])),a.createHref({pathname:u,search:l,hash:i})}function os(){return b.useContext(Ld)!=null}function In(){return Ze(os(),"useLocation() may be used only in the context of a <Router> component."),b.useContext(Ld).location}var T1="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function E1(e){b.useContext(Gn).static||b.useLayoutEffect(e)}function ss(){let{isDataRoute:e}=b.useContext(ar);return e?E4():g4()}function g4(){Ze(os(),"useNavigate() may be used only in the context of a <Router> component.");let e=b.useContext(Ji),{basename:t,navigator:n}=b.useContext(Gn),{matches:a}=b.useContext(ar),{pathname:i}=In(),s=JSON.stringify(Rd(a)),l=b.useRef(!1);return E1(()=>{l.current=!0}),b.useCallback((h,f={})=>{if(Nt(l.current,T1),!l.current)return;if(typeof h=="number"){n.go(h);return}let p=Bl(h,JSON.parse(s),i,f.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ra([t,p.pathname])),(f.replace?n.replace:n.push)(p,f.state,f)},[t,n,s,i,e])}b.createContext(null);function $l(e,{relative:t}={}){let{matches:n}=b.useContext(ar),{pathname:a}=In(),i=JSON.stringify(Rd(n));return b.useMemo(()=>Bl(e,JSON.parse(i),a,t==="path"),[e,i,a,t])}function y4(e,t,n){Ze(os(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=b.useContext(Gn),{matches:i}=b.useContext(ar),s=i[i.length-1],l=s?s.params:{},u=s?s.pathname:"/",h=s?s.pathnameBase:"/",f=s&&s.route;{let P=f&&f.path||"";R1(u,!f||P.endsWith("*")||P.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${P}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
11
-
12
- Please change the parent <Route path="${P}"> to <Route path="${P==="/"?"*":`${P}/*`}">.`)}let p=In(),g;g=p;let v=g.pathname||"/",_=v;if(h!=="/"){let P=h.replace(/^\//,"").split("/");_="/"+v.replace(/^\//,"").split("/").slice(P.length).join("/")}let w=n&&n.state.matches.length?n.state.matches.map(P=>Object.assign(P,{route:n.manifest[P.route.id]||P.route})):a1(e,{pathname:_});return Nt(f||w!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),Nt(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),w4(w&&w.map(P=>Object.assign({},P,{params:Object.assign({},l,P.params),pathname:ra([h,a.encodeLocation?a.encodeLocation(P.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:P.pathname]),pathnameBase:P.pathnameBase==="/"?h:ra([h,a.encodeLocation?a.encodeLocation(P.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:P.pathnameBase])})),i,n)}function v4(){let e=T4(),t=Rl(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:a},s={padding:"2px 4px",backgroundColor:a},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=b.createElement(b.Fragment,null,b.createElement("p",null,"💿 Hey developer 👋"),b.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",b.createElement("code",{style:s},"ErrorBoundary")," or"," ",b.createElement("code",{style:s},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:i},n):null,l)}var b4=b.createElement(v4,null),A1=class extends b.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=p4(e.digest);n&&(e=n)}let t=e!==void 0?b.createElement(ar.Provider,{value:this.props.routeContext},b.createElement(jm.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?b.createElement(k4,{error:e},t):t}};A1.contextType=x1;var Nf=new WeakMap;function k4({children:e,error:t}){let{basename:n}=b.useContext(Gn);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let a=f4(t.digest);if(a){let i=Nf.get(t);if(i)throw i;let s=c1(a.location,n);if(l1&&!Nf.get(t))if(s.isExternal||a.reloadDocument)window.location.href=s.absoluteURL||s.to;else{const l=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:a.replace}));throw Nf.set(t,l),l}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return e}function _4({routeContext:e,match:t,children:n}){let a=b.useContext(Ji);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),b.createElement(ar.Provider,{value:e},n)}function w4(e,t=[],n){let a=n?.state;if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(t.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let i=e,s=a?.errors;if(s!=null){let p=i.findIndex(g=>g.route.id&&s?.[g.route.id]!==void 0);Ze(p>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),i=i.slice(0,Math.min(i.length,p+1))}let l=!1,u=-1;if(n&&a){l=a.renderFallback;for(let p=0;p<i.length;p++){let g=i[p];if((g.route.HydrateFallback||g.route.hydrateFallbackElement)&&(u=p),g.route.id){let{loaderData:v,errors:_}=a,w=g.route.loader&&!v.hasOwnProperty(g.route.id)&&(!_||_[g.route.id]===void 0);if(g.route.lazy||w){n.isStatic&&(l=!0),u>=0?i=i.slice(0,u+1):i=[i[0]];break}}}}let h=n?.onError,f=a&&h?(p,g)=>{h(p,{location:a.location,params:a.matches?.[0]?.params??{},pattern:Vl(a.matches),errorInfo:g})}:void 0;return i.reduceRight((p,g,v)=>{let _,w=!1,S=null,P=null;a&&(_=s&&g.route.id?s[g.route.id]:void 0,S=g.route.errorElement||b4,l&&(u<0&&v===0?(R1("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),w=!0,P=null):u===v&&(w=!0,P=g.route.hydrateFallbackElement||null)));let D=t.concat(i.slice(0,v+1)),R=()=>{let E;return _?E=S:w?E=P:g.route.Component?E=b.createElement(g.route.Component,null):g.route.element?E=g.route.element:E=p,b.createElement(_4,{match:g,routeContext:{outlet:p,matches:D,isDataRoute:a!=null},children:E})};return a&&(g.route.ErrorBoundary||g.route.errorElement||v===0)?b.createElement(A1,{location:a.location,revalidation:a.revalidation,component:S,error:_,children:R(),routeContext:{outlet:null,matches:D,isDataRoute:!0},onError:f}):R()},null)}function Um(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function x4(e){let t=b.useContext(Ji);return Ze(t,Um(e)),t}function P4(e){let t=b.useContext(Hl);return Ze(t,Um(e)),t}function S4(e){let t=b.useContext(ar);return Ze(t,Um(e)),t}function zm(e){let t=S4(e),n=t.matches[t.matches.length-1];return Ze(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function C4(){return zm("useRouteId")}function T4(){let e=b.useContext(jm),t=P4("useRouteError"),n=zm("useRouteError");return e!==void 0?e:t.errors?.[n]}function E4(){let{router:e}=x4("useNavigate"),t=zm("useNavigate"),n=b.useRef(!1);return E1(()=>{n.current=!0}),b.useCallback(async(i,s={})=>{Nt(n.current,T1),n.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...s}))},[e,t])}var fb={};function R1(e,t,n){!t&&!fb[e]&&(fb[e]=!0,Nt(!1,n))}var pb={};function mb(e,t){!e&&!pb[t]&&(pb[t]=!0,console.warn(t))}var A4="useOptimistic",gb=J_[A4],R4=()=>{};function L4(e){return gb?gb(e):[e,R4]}function D4(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&Nt(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:b.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&Nt(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:b.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&Nt(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:b.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var I4=["HydrateFallback","hydrateFallbackElement"],M4=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",e(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",t(n))}})}};function N4({router:e,flushSync:t,onError:n,useTransitions:a}){a=P1()||a;let[s,l]=b.useState(e.state),[u,h]=L4(s),[f,p]=b.useState(),[g,v]=b.useState({isTransitioning:!1}),[_,w]=b.useState(),[S,P]=b.useState(),[D,R]=b.useState(),E=b.useRef(new Map),A=b.useCallback((C,{deletedFetchers:K,newErrors:Y,flushSync:ce,viewTransitionOpts:re})=>{Y&&n&&Object.values(Y).forEach(de=>n(de,{location:C.location,params:C.matches[0]?.params??{},pattern:Vl(C.matches)})),C.fetchers.forEach((de,he)=>{de.data!==void 0&&E.current.set(he,de.data)}),K.forEach(de=>E.current.delete(de)),mb(ce===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let fe=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(mb(re==null||fe,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!re||!fe){t&&ce?t(()=>l(C)):a===!1?l(C):b.startTransition(()=>{a===!0&&h(de=>yb(de,C)),l(C)});return}if(t&&ce){t(()=>{S&&(_?.resolve(),S.skipTransition()),v({isTransitioning:!0,flushSync:!0,currentLocation:re.currentLocation,nextLocation:re.nextLocation})});let de=e.window.document.startViewTransition(()=>{t(()=>l(C))});de.finished.finally(()=>{t(()=>{w(void 0),P(void 0),p(void 0),v({isTransitioning:!1})})}),t(()=>P(de));return}S?(_?.resolve(),S.skipTransition(),R({state:C,currentLocation:re.currentLocation,nextLocation:re.nextLocation})):(p(C),v({isTransitioning:!0,flushSync:!1,currentLocation:re.currentLocation,nextLocation:re.nextLocation}))},[e.window,t,S,_,a,h,n]);b.useLayoutEffect(()=>e.subscribe(A),[e,A]),b.useEffect(()=>{g.isTransitioning&&!g.flushSync&&w(new M4)},[g]),b.useEffect(()=>{if(_&&f&&e.window){let C=f,K=_.promise,Y=e.window.document.startViewTransition(async()=>{a===!1?l(C):b.startTransition(()=>{a===!0&&h(ce=>yb(ce,C)),l(C)}),await K});Y.finished.finally(()=>{w(void 0),P(void 0),p(void 0),v({isTransitioning:!1})}),P(Y)}},[f,_,e.window,a,h]),b.useEffect(()=>{_&&f&&u.location.key===f.location.key&&_.resolve()},[_,S,u.location,f]),b.useEffect(()=>{!g.isTransitioning&&D&&(p(D.state),v({isTransitioning:!0,flushSync:!1,currentLocation:D.currentLocation,nextLocation:D.nextLocation}),R(void 0))},[g.isTransitioning,D]);let U=b.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:C=>e.navigate(C),push:(C,K,Y)=>e.navigate(C,{state:K,preventScrollReset:Y?.preventScrollReset}),replace:(C,K,Y)=>e.navigate(C,{replace:!0,state:K,preventScrollReset:Y?.preventScrollReset})}),[e]),F=e.basename||"/",j=b.useMemo(()=>({router:e,navigator:U,static:!1,basename:F,onError:n}),[e,U,F,n]);return b.createElement(b.Fragment,null,b.createElement(Ji.Provider,{value:j},b.createElement(Hl.Provider,{value:u},b.createElement(S1.Provider,{value:E.current},b.createElement(Om.Provider,{value:g},b.createElement(z4,{basename:F,location:u.location,navigationType:u.historyAction,navigator:U,useTransitions:a},b.createElement(O4,{routes:e.routes,manifest:e.manifest,future:e.future,state:u,isStatic:!1,onError:n})))))),null)}function yb(e,t){return{...e,navigation:t.navigation.state!=="idle"?t.navigation:e.navigation,revalidation:t.revalidation!=="idle"?t.revalidation:e.revalidation,actionData:t.navigation.state!=="submitting"?t.actionData:e.actionData,fetchers:t.fetchers}}var O4=b.memo(j4);function j4({routes:e,manifest:t,future:n,state:a,isStatic:i,onError:s}){return y4(e,void 0,{manifest:t,state:a,isStatic:i,onError:s})}function U4({to:e,replace:t,state:n,relative:a}){Ze(os(),"<Navigate> may be used only in the context of a <Router> component.");let{static:i}=b.useContext(Gn);Nt(!i,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:s}=b.useContext(ar),{pathname:l}=In(),u=ss(),h=Bl(e,Rd(s),l,a==="path"),f=JSON.stringify(h);return b.useEffect(()=>{u(JSON.parse(f),{replace:t,state:n,relative:a})},[u,f,a,t,n]),null}function z4({basename:e="/",children:t=null,location:n,navigationType:a="POP",navigator:i,static:s=!1,useTransitions:l}){Ze(!os(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let u=e.replace(/^\/*/,"/"),h=b.useMemo(()=>({basename:u,navigator:i,static:s,useTransitions:l,future:{}}),[u,i,s,l]);typeof n=="string"&&(n=nr(n));let{pathname:f="/",search:p="",hash:g="",state:v=null,key:_="default",mask:w}=n,S=b.useMemo(()=>{let P=sa(f,u);return P==null?null:{location:{pathname:P,search:p,hash:g,state:v,key:_,mask:w},navigationType:a}},[u,f,p,g,v,_,a,w]);return Nt(S!=null,`<Router basename="${u}"> is not able to match the URL "${f}${p}${g}" because it does not start with the basename, so the <Router> won't render anything.`),S==null?null:b.createElement(Gn.Provider,{value:h},b.createElement(Ld.Provider,{children:t,value:S}))}var Au="get",Ru="application/x-www-form-urlencoded";function Dd(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function B4(e){return Dd(e)&&e.tagName.toLowerCase()==="button"}function F4(e){return Dd(e)&&e.tagName.toLowerCase()==="form"}function V4(e){return Dd(e)&&e.tagName.toLowerCase()==="input"}function H4(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function $4(e,t){return e.button===0&&(!t||t==="_self")&&!H4(e)}function Rp(e=""){return 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(i=>[n,i]):[[n,a]])},[]))}function W4(e,t){let n=Rp(e);return t&&t.forEach((a,i)=>{n.has(i)||t.getAll(i).forEach(s=>{n.append(i,s)})}),n}var lu=null;function G4(){if(lu===null)try{new FormData(document.createElement("form"),0),lu=!1}catch{lu=!0}return lu}var K4=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Of(e){return e!=null&&!K4.has(e)?(Nt(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ru}"`),null):e}function q4(e,t){let n,a,i,s,l;if(F4(e)){let u=e.getAttribute("action");a=u?sa(u,t):null,n=e.getAttribute("method")||Au,i=Of(e.getAttribute("enctype"))||Ru,s=new FormData(e)}else if(B4(e)||V4(e)&&(e.type==="submit"||e.type==="image")){let u=e.form;if(u==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let h=e.getAttribute("formaction")||u.getAttribute("action");if(a=h?sa(h,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||Au,i=Of(e.getAttribute("formenctype"))||Of(u.getAttribute("enctype"))||Ru,s=new FormData(u,e),!G4()){let{name:f,type:p,value:g}=e;if(p==="image"){let v=f?`${f}.`:"";s.append(`${v}x`,"0"),s.append(`${v}y`,"0")}else f&&s.append(f,g)}}else{if(Dd(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Au,a=null,i=Ru,l=e}return s&&i==="text/plain"&&(l=s,s=void 0),{action:a,method:n.toLowerCase(),encType:i,formData:s,body:l}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Bm(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function L1(e,t,n,a){let i=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?i.pathname.endsWith("/")?i.pathname=`${i.pathname}_.${a}`:i.pathname=`${i.pathname}.${a}`:i.pathname==="/"?i.pathname=`_root.${a}`:t&&sa(i.pathname,t)==="/"?i.pathname=`${Yu(t)}/_root.${a}`:i.pathname=`${Yu(i.pathname)}.${a}`,i}async function Y4(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Z4(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function X4(e,t,n){let a=await Promise.all(e.map(async i=>{let s=t.routes[i.route.id];if(s){let l=await Y4(s,n);return l.links?l.links():[]}return[]}));return tT(a.flat(1).filter(Z4).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function vb(e,t,n,a,i,s){let l=(h,f)=>n[f]?h.route.id!==n[f].route.id:!0,u=(h,f)=>n[f].pathname!==h.pathname||n[f].route.path?.endsWith("*")&&n[f].params["*"]!==h.params["*"];return s==="assets"?t.filter((h,f)=>l(h,f)||u(h,f)):s==="data"?t.filter((h,f)=>{let p=a.routes[h.route.id];if(!p||!p.hasLoader)return!1;if(l(h,f)||u(h,f))return!0;if(h.route.shouldRevalidate){let g=h.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:h.params,defaultShouldRevalidate:!0});if(typeof g=="boolean")return g}return!0}):[]}function J4(e,t,{includeHydrateFallback:n}={}){return Q4(e.map(a=>{let i=t.routes[a.route.id];if(!i)return[];let s=[i.module];return i.clientActionModule&&(s=s.concat(i.clientActionModule)),i.clientLoaderModule&&(s=s.concat(i.clientLoaderModule)),n&&i.hydrateFallbackModule&&(s=s.concat(i.hydrateFallbackModule)),i.imports&&(s=s.concat(i.imports)),s}).flat(1))}function Q4(e){return[...new Set(e)]}function eT(e){let t={},n=Object.keys(e).sort();for(let a of n)t[a]=e[a];return t}function tT(e,t){let n=new Set;return new Set(t),e.reduce((a,i)=>{let s=JSON.stringify(eT(i));return n.has(s)||(n.add(s),a.push({key:s,link:i})),a},[])}function Fm(){let e=b.useContext(Ji);return Bm(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function nT(){let e=b.useContext(Hl);return Bm(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Vm=b.createContext(void 0);Vm.displayName="FrameworkContext";function Hm(){let e=b.useContext(Vm);return Bm(e,"You must render this element inside a <HydratedRouter> element"),e}function aT(e,t){let n=b.useContext(Vm),[a,i]=b.useState(!1),[s,l]=b.useState(!1),{onFocus:u,onBlur:h,onMouseEnter:f,onMouseLeave:p,onTouchStart:g}=t,v=b.useRef(null);b.useEffect(()=>{if(e==="render"&&l(!0),e==="viewport"){let S=D=>{D.forEach(R=>{l(R.isIntersecting)})},P=new IntersectionObserver(S,{threshold:.5});return v.current&&P.observe(v.current),()=>{P.disconnect()}}},[e]),b.useEffect(()=>{if(a){let S=setTimeout(()=>{l(!0)},100);return()=>{clearTimeout(S)}}},[a]);let _=()=>{i(!0)},w=()=>{i(!1),l(!1)};return n?e!=="intent"?[s,v,{}]:[s,v,{onFocus:il(u,_),onBlur:il(h,w),onMouseEnter:il(f,_),onMouseLeave:il(p,w),onTouchStart:il(g,_)}]:[!1,v,{}]}function il(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function rT({page:e,...t}){let n=P1(),{router:a}=Fm(),i=b.useMemo(()=>a1(a.routes,e,a.basename),[a.routes,e,a.basename]);return i?n?b.createElement(oT,{page:e,matches:i,...t}):b.createElement(sT,{page:e,matches:i,...t}):null}function iT(e){let{manifest:t,routeModules:n}=Hm(),[a,i]=b.useState([]);return b.useEffect(()=>{let s=!1;return X4(e,t,n).then(l=>{s||i(l)}),()=>{s=!0}},[e,t,n]),a}function oT({page:e,matches:t,...n}){let a=In(),{future:i}=Hm(),{basename:s}=Fm(),l=b.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let u=L1(e,s,i.v8_trailingSlashAwareDataRequests,"rsc"),h=!1,f=[];for(let p of t)typeof p.route.shouldRevalidate=="function"?h=!0:f.push(p.route.id);return h&&f.length>0&&u.searchParams.set("_routes",f.join(",")),[u.pathname+u.search]},[s,i.v8_trailingSlashAwareDataRequests,e,a,t]);return b.createElement(b.Fragment,null,l.map(u=>b.createElement("link",{key:u,rel:"prefetch",as:"fetch",href:u,...n})))}function sT({page:e,matches:t,...n}){let a=In(),{future:i,manifest:s,routeModules:l}=Hm(),{basename:u}=Fm(),{loaderData:h,matches:f}=nT(),p=b.useMemo(()=>vb(e,t,f,s,a,"data"),[e,t,f,s,a]),g=b.useMemo(()=>vb(e,t,f,s,a,"assets"),[e,t,f,s,a]),v=b.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let S=new Set,P=!1;if(t.forEach(R=>{let E=s.routes[R.route.id];!E||!E.hasLoader||(!p.some(A=>A.route.id===R.route.id)&&R.route.id in h&&l[R.route.id]?.shouldRevalidate||E.hasClientLoader?P=!0:S.add(R.route.id))}),S.size===0)return[];let D=L1(e,u,i.v8_trailingSlashAwareDataRequests,"data");return P&&S.size>0&&D.searchParams.set("_routes",t.filter(R=>S.has(R.route.id)).map(R=>R.route.id).join(",")),[D.pathname+D.search]},[u,i.v8_trailingSlashAwareDataRequests,h,a,s,p,t,e,l]),_=b.useMemo(()=>J4(g,s),[g,s]),w=iT(g);return b.createElement(b.Fragment,null,v.map(S=>b.createElement("link",{key:S,rel:"prefetch",as:"fetch",href:S,...n})),_.map(S=>b.createElement("link",{key:S,rel:"modulepreload",href:S,...n})),w.map(({key:S,link:P})=>b.createElement("link",{key:S,nonce:n.nonce,...P,crossOrigin:P.crossOrigin??n.crossOrigin})))}function lT(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var cT=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{cT&&(window.__reactRouterVersion="7.17.0")}catch{}function uT(e,t){return zC({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:eC({window:t?.window}),hydrationData:dT(),routes:e,mapRouteProperties:D4,hydrationRouteProperties:I4,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function dT(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:hT(e.errors)}),e}function hT(e){if(!e)return null;let t=Object.entries(e),n={};for(let[a,i]of t)if(i&&i.__type==="RouteErrorResponse")n[a]=new Fl(i.status,i.statusText,i.data,i.internal===!0);else if(i&&i.__type==="Error"){if(i.__subType){let s=window[i.__subType];if(typeof s=="function")try{let l=new s(i.message);l.stack="",n[a]=l}catch{}}if(n[a]==null){let s=new Error(i.message);s.stack="",n[a]=s}}else n[a]=i;return n}var D1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Id=b.forwardRef(function({onClick:t,discover:n="render",prefetch:a="none",relative:i,reloadDocument:s,replace:l,mask:u,state:h,target:f,to:p,preventScrollReset:g,viewTransition:v,defaultShouldRevalidate:_,...w},S){let{basename:P,navigator:D,useTransitions:R}=b.useContext(Gn),E=typeof p=="string"&&D1.test(p),A=c1(p,P);p=A.to;let U=m4(p,{relative:i}),F=In(),j=null;if(u){let he=Bl(u,[],F.mask?F.mask.pathname:"/",!0);P!=="/"&&(he.pathname=he.pathname==="/"?P:ra([P,he.pathname])),j=D.createHref(he)}let[C,K,Y]=aT(a,w),ce=gT(p,{replace:l,mask:u,state:h,target:f,preventScrollReset:g,relative:i,viewTransition:v,defaultShouldRevalidate:_,useTransitions:R});function re(he){t&&t(he),he.defaultPrevented||ce(he)}let fe=!(A.isExternal||s),de=b.createElement("a",{...w,...Y,href:(fe?j:void 0)||A.absoluteURL||U,onClick:fe?re:t,ref:lT(S,K),target:f,"data-discover":!E&&n==="render"?"true":void 0});return C&&!E?b.createElement(b.Fragment,null,de,b.createElement(rT,{page:U})):de});Id.displayName="Link";var fT=b.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:a="",end:i=!1,style:s,to:l,viewTransition:u,children:h,...f},p){let g=$l(l,{relative:f.relative}),v=In(),_=b.useContext(Hl),{navigator:w,basename:S}=b.useContext(Gn),P=_!=null&&_T(g)&&u===!0,D=w.encodeLocation?w.encodeLocation(g).pathname:g.pathname,R=v.pathname,E=_&&_.navigation&&_.navigation.location?_.navigation.location.pathname:null;n||(R=R.toLowerCase(),E=E?E.toLowerCase():null,D=D.toLowerCase()),E&&S&&(E=sa(E,S)||E);const A=D!=="/"&&D.endsWith("/")?D.length-1:D.length;let U=R===D||!i&&R.startsWith(D)&&R.charAt(A)==="/",F=E!=null&&(E===D||!i&&E.startsWith(D)&&E.charAt(D.length)==="/"),j={isActive:U,isPending:F,isTransitioning:P},C=U?t:void 0,K;typeof a=="function"?K=a(j):K=[a,U?"active":null,F?"pending":null,P?"transitioning":null].filter(Boolean).join(" ");let Y=typeof s=="function"?s(j):s;return b.createElement(Id,{...f,"aria-current":C,className:K,ref:p,style:Y,to:l,viewTransition:u},typeof h=="function"?h(j):h)});fT.displayName="NavLink";var pT=b.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:a,replace:i,state:s,method:l=Au,action:u,onSubmit:h,relative:f,preventScrollReset:p,viewTransition:g,defaultShouldRevalidate:v,..._},w)=>{let{useTransitions:S}=b.useContext(Gn),P=bT(),D=kT(u,{relative:f}),R=l.toLowerCase()==="get"?"get":"post",E=typeof u=="string"&&D1.test(u),A=U=>{if(h&&h(U),U.defaultPrevented)return;U.preventDefault();let F=U.nativeEvent.submitter,j=F?.getAttribute("formmethod")||l,C=()=>P(F||U.currentTarget,{fetcherKey:t,method:j,navigate:n,replace:i,state:s,relative:f,preventScrollReset:p,viewTransition:g,defaultShouldRevalidate:v});S&&n!==!1?b.startTransition(()=>C()):C()};return b.createElement("form",{ref:w,method:R,action:D,onSubmit:a?h:A,..._,"data-discover":!E&&e==="render"?"true":void 0})});pT.displayName="Form";function mT(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function I1(e){let t=b.useContext(Ji);return Ze(t,mT(e)),t}function gT(e,{target:t,replace:n,mask:a,state:i,preventScrollReset:s,relative:l,viewTransition:u,defaultShouldRevalidate:h,useTransitions:f}={}){let p=ss(),g=In(),v=$l(e,{relative:l});return b.useCallback(_=>{if($4(_,t)){_.preventDefault();let w=n!==void 0?n:Za(g)===Za(v),S=()=>p(e,{replace:w,mask:a,state:i,preventScrollReset:s,relative:l,viewTransition:u,defaultShouldRevalidate:h});f?b.startTransition(()=>S()):S()}},[g,p,v,n,a,i,t,e,s,l,u,h,f])}function DU(e){Nt(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=b.useRef(Rp(e)),n=b.useRef(!1),a=In(),i=b.useMemo(()=>W4(a.search,n.current?null:t.current),[a.search]),s=ss(),l=b.useCallback((u,h)=>{const f=Rp(typeof u=="function"?u(new URLSearchParams(i)):u);n.current=!0,s("?"+f,h)},[s,i]);return[i,l]}var yT=0,vT=()=>`__${String(++yT)}__`;function bT(){let{router:e}=I1("useSubmit"),{basename:t}=b.useContext(Gn),n=C4(),a=e.fetch,i=e.navigate;return b.useCallback(async(s,l={})=>{let{action:u,method:h,encType:f,formData:p,body:g}=q4(s,t);if(l.navigate===!1){let v=l.fetcherKey||vT();await a(v,n,l.action||u,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:p,body:g,formMethod:l.method||h,formEncType:l.encType||f,flushSync:l.flushSync})}else await i(l.action||u,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:p,body:g,formMethod:l.method||h,formEncType:l.encType||f,replace:l.replace,state:l.state,fromRouteId:n,flushSync:l.flushSync,viewTransition:l.viewTransition})},[a,i,t,n])}function kT(e,{relative:t}={}){let{basename:n}=b.useContext(Gn),a=b.useContext(ar);Ze(a,"useFormAction must be used inside a RouteContext");let[i]=a.matches.slice(-1),s={...$l(e||".",{relative:t})},l=In();if(e==null){s.search=l.search;let u=new URLSearchParams(s.search),h=u.getAll("index");if(h.some(p=>p==="")){u.delete("index"),h.filter(g=>g).forEach(g=>u.append("index",g));let p=u.toString();s.search=p?`?${p}`:""}}return(!e||e===".")&&i.route.index&&(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(s.pathname=s.pathname==="/"?n:ra([n,s.pathname])),Za(s)}function _T(e,{relative:t}={}){let n=b.useContext(Om);Ze(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=I1("useViewTransitionState"),i=$l(e,{relative:t});if(!n.isTransitioning)return!1;let s=sa(n.currentLocation.pathname,a)||n.currentLocation.pathname,l=sa(n.nextLocation.pathname,a)||n.nextLocation.pathname;return qu(i.pathname,l)!=null||qu(i.pathname,s)!=null}var ls=Q_();function wT(e){return b.createElement(N4,{flushSync:ls.flushSync,...e})}var lt;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{const s={};for(const l of i)s[l]=l;return s},e.getValidEnumValues=i=>{const s=e.objectKeys(i).filter(u=>typeof i[i[u]]!="number"),l={};for(const u of s)l[u]=i[u];return e.objectValues(l)},e.objectValues=i=>e.objectKeys(i).map(function(s){return i[s]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const l in i)Object.prototype.hasOwnProperty.call(i,l)&&s.push(l);return s},e.find=(i,s)=>{for(const l of i)if(s(l))return l},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function a(i,s=" | "){return i.map(l=>typeof l=="string"?`'${l}'`:l).join(s)}e.joinValues=a,e.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(lt||(lt={}));var bb;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(bb||(bb={}));const Pe=lt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ei=e=>{switch(typeof e){case"undefined":return Pe.undefined;case"string":return Pe.string;case"number":return Number.isNaN(e)?Pe.nan:Pe.number;case"boolean":return Pe.boolean;case"function":return Pe.function;case"bigint":return Pe.bigint;case"symbol":return Pe.symbol;case"object":return Array.isArray(e)?Pe.array:e===null?Pe.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Pe.promise:typeof Map<"u"&&e instanceof Map?Pe.map:typeof Set<"u"&&e instanceof Set?Pe.set:typeof Date<"u"&&e instanceof Date?Pe.date:Pe.object;default:return Pe.unknown}},se=lt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class wr extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){const n=t||function(s){return s.message},a={_errors:[]},i=s=>{for(const l of s.issues)if(l.code==="invalid_union")l.unionErrors.map(i);else if(l.code==="invalid_return_type")i(l.returnTypeError);else if(l.code==="invalid_arguments")i(l.argumentsError);else if(l.path.length===0)a._errors.push(n(l));else{let u=a,h=0;for(;h<l.path.length;){const f=l.path[h];h===l.path.length-1?(u[f]=u[f]||{_errors:[]},u[f]._errors.push(n(l))):u[f]=u[f]||{_errors:[]},u=u[f],h++}}};return i(this),a}static assert(t){if(!(t instanceof wr))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,lt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){const n={},a=[];for(const i of this.issues)if(i.path.length>0){const s=i.path[0];n[s]=n[s]||[],n[s].push(t(i))}else a.push(t(i));return{formErrors:a,fieldErrors:n}}get formErrors(){return this.flatten()}}wr.create=e=>new wr(e);const Lp=(e,t)=>{let n;switch(e.code){case se.invalid_type:e.received===Pe.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case se.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,lt.jsonStringifyReplacer)}`;break;case se.unrecognized_keys:n=`Unrecognized key(s) in object: ${lt.joinValues(e.keys,", ")}`;break;case se.invalid_union:n="Invalid input";break;case se.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${lt.joinValues(e.options)}`;break;case se.invalid_enum_value:n=`Invalid enum value. Expected ${lt.joinValues(e.options)}, received '${e.received}'`;break;case se.invalid_arguments:n="Invalid function arguments";break;case se.invalid_return_type:n="Invalid function return type";break;case se.invalid_date:n="Invalid date";break;case se.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:lt.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case se.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case se.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case se.custom:n="Invalid input";break;case se.invalid_intersection_types:n="Intersection results could not be merged";break;case se.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case se.not_finite:n="Number must be finite";break;default:n=t.defaultError,lt.assertNever(e)}return{message:n}};let xT=Lp;function PT(){return xT}const ST=e=>{const{data:t,path:n,errorMaps:a,issueData:i}=e,s=[...n,...i.path||[]],l={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let u="";const h=a.filter(f=>!!f).slice().reverse();for(const f of h)u=f(l,{data:t,defaultError:u}).message;return{...i,path:s,message:u}};function ge(e,t){const n=PT(),a=ST({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Lp?void 0:Lp].filter(i=>!!i)});e.common.issues.push(a)}class wn{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const a=[];for(const i of n){if(i.status==="aborted")return Ve;i.status==="dirty"&&t.dirty(),a.push(i.value)}return{status:t.value,value:a}}static async mergeObjectAsync(t,n){const a=[];for(const i of n){const s=await i.key,l=await i.value;a.push({key:s,value:l})}return wn.mergeObjectSync(t,a)}static mergeObjectSync(t,n){const a={};for(const i of n){const{key:s,value:l}=i;if(s.status==="aborted"||l.status==="aborted")return Ve;s.status==="dirty"&&t.dirty(),l.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof l.value<"u"||i.alwaysSet)&&(a[s.value]=l.value)}return{status:t.value,value:a}}}const Ve=Object.freeze({status:"aborted"}),fl=e=>({status:"dirty",value:e}),la=e=>({status:"valid",value:e}),kb=e=>e.status==="aborted",_b=e=>e.status==="dirty",Jo=e=>e.status==="valid",Zu=e=>typeof Promise<"u"&&e instanceof Promise;var Ae;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(Ae||(Ae={}));class Xa{constructor(t,n,a,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=a,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const wb=(e,t)=>{if(Jo(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new wr(e.common.issues);return this._error=n,this._error}}};function Ye(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:a,description:i}=e;if(t&&(n||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(l,u)=>{const{message:h}=e;return l.code==="invalid_enum_value"?{message:h??u.defaultError}:typeof u.data>"u"?{message:h??a??u.defaultError}:l.code!=="invalid_type"?{message:u.defaultError}:{message:h??n??u.defaultError}},description:i}}class at{get description(){return this._def.description}_getType(t){return ei(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ei(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new wn,ctx:{common:t.parent.common,data:t.data,parsedType:ei(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Zu(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const a=this.safeParse(t,n);if(a.success)return a.data;throw a.error}safeParse(t,n){const a={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ei(t)},i=this._parseSync({data:t,path:a.path,parent:a});return wb(a,i)}"~validate"(t){const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ei(t)};if(!this["~standard"].async)try{const a=this._parseSync({data:t,path:[],parent:n});return Jo(a)?{value:a.value}:{issues:n.common.issues}}catch(a){a?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(a=>Jo(a)?{value:a.value}:{issues:n.common.issues})}async parseAsync(t,n){const a=await this.safeParseAsync(t,n);if(a.success)return a.data;throw a.error}async safeParseAsync(t,n){const a={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ei(t)},i=this._parse({data:t,path:a.path,parent:a}),s=await(Zu(i)?i:Promise.resolve(i));return wb(a,s)}refine(t,n){const a=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,s)=>{const l=t(i),u=()=>s.addIssue({code:se.custom,...a(i)});return typeof Promise<"u"&&l instanceof Promise?l.then(h=>h?!0:(u(),!1)):l?!0:(u(),!1)})}refinement(t,n){return this._refinement((a,i)=>t(a)?!0:(i.addIssue(typeof n=="function"?n(a,i):n),!1))}_refinement(t){return new Yi({schema:this,typeName:He.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return _r.create(this,this._def)}nullable(){return Zi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qa.create(this)}promise(){return nd.create(this,this._def)}or(t){return Ju.create([this,t],this._def)}and(t){return Qu.create(this,t,this._def)}transform(t){return new Yi({...Ye(this._def),schema:this,typeName:He.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new ad({...Ye(this._def),innerType:this,defaultValue:n,typeName:He.ZodDefault})}brand(){return new j1({typeName:He.ZodBranded,type:this,...Ye(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new rd({...Ye(this._def),innerType:this,catchValue:n,typeName:He.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Wm.create(this,t)}readonly(){return id.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const CT=/^c[^\s-]{8,}$/i,TT=/^[0-9a-z]+$/,ET=/^[0-9A-HJKMNP-TV-Z]{26}$/i,AT=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,RT=/^[a-z0-9_-]{21}$/i,LT=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,DT=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,IT=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,MT="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let jf;const NT=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,OT=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,jT=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,UT=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,zT=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,BT=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,M1="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",FT=new RegExp(`^${M1}$`);function N1(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);const n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function VT(e){return new RegExp(`^${N1(e)}$`)}function HT(e){let t=`${M1}T${N1(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function $T(e,t){return!!((t==="v4"||!t)&&NT.test(e)||(t==="v6"||!t)&&jT.test(e))}function WT(e,t){if(!LT.test(e))return!1;try{const[n]=e.split(".");if(!n)return!1;const a=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(a));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function GT(e,t){return!!((t==="v4"||!t)&&OT.test(e)||(t==="v6"||!t)&&UT.test(e))}class Ga extends at{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Pe.string){const s=this._getOrReturnCtx(t);return ge(s,{code:se.invalid_type,expected:Pe.string,received:s.parsedType}),Ve}const a=new wn;let i;for(const s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(i=this._getOrReturnCtx(t,i),ge(i,{code:se.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="max")t.data.length>s.value&&(i=this._getOrReturnCtx(t,i),ge(i,{code:se.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="length"){const l=t.data.length>s.value,u=t.data.length<s.value;(l||u)&&(i=this._getOrReturnCtx(t,i),l?ge(i,{code:se.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):u&&ge(i,{code:se.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),a.dirty())}else if(s.kind==="email")IT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"email",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="emoji")jf||(jf=new RegExp(MT,"u")),jf.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"emoji",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="uuid")AT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"uuid",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="nanoid")RT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"nanoid",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="cuid")CT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"cuid",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="cuid2")TT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"cuid2",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="ulid")ET.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"ulid",code:se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),ge(i,{validation:"url",code:se.invalid_string,message:s.message}),a.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"regex",code:se.invalid_string,message:s.message}),a.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),a.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:{startsWith:s.value},message:s.message}),a.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:{endsWith:s.value},message:s.message}),a.dirty()):s.kind==="datetime"?HT(s).test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:"datetime",message:s.message}),a.dirty()):s.kind==="date"?FT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:"date",message:s.message}),a.dirty()):s.kind==="time"?VT(s).test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{code:se.invalid_string,validation:"time",message:s.message}),a.dirty()):s.kind==="duration"?DT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"duration",code:se.invalid_string,message:s.message}),a.dirty()):s.kind==="ip"?$T(t.data,s.version)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"ip",code:se.invalid_string,message:s.message}),a.dirty()):s.kind==="jwt"?WT(t.data,s.alg)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"jwt",code:se.invalid_string,message:s.message}),a.dirty()):s.kind==="cidr"?GT(t.data,s.version)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"cidr",code:se.invalid_string,message:s.message}),a.dirty()):s.kind==="base64"?zT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"base64",code:se.invalid_string,message:s.message}),a.dirty()):s.kind==="base64url"?BT.test(t.data)||(i=this._getOrReturnCtx(t,i),ge(i,{validation:"base64url",code:se.invalid_string,message:s.message}),a.dirty()):lt.assertNever(s);return{status:a.value,value:t.data}}_regex(t,n,a){return this.refinement(i=>t.test(i),{validation:n,code:se.invalid_string,...Ae.errToObj(a)})}_addCheck(t){return new Ga({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...Ae.errToObj(t)})}url(t){return this._addCheck({kind:"url",...Ae.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...Ae.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...Ae.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...Ae.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...Ae.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...Ae.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...Ae.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...Ae.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...Ae.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...Ae.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...Ae.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...Ae.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...Ae.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...Ae.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...Ae.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...Ae.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...Ae.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...Ae.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...Ae.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...Ae.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...Ae.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...Ae.errToObj(n)})}nonempty(t){return this.min(1,Ae.errToObj(t))}trim(){return new Ga({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Ga({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Ga({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}Ga.create=e=>new Ga({checks:[],typeName:He.ZodString,coerce:e?.coerce??!1,...Ye(e)});function KT(e,t){const n=(e.toString().split(".")[1]||"").length,a=(t.toString().split(".")[1]||"").length,i=n>a?n:a,s=Number.parseInt(e.toFixed(i).replace(".","")),l=Number.parseInt(t.toFixed(i).replace(".",""));return s%l/10**i}class Wi extends at{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Pe.number){const s=this._getOrReturnCtx(t);return ge(s,{code:se.invalid_type,expected:Pe.number,received:s.parsedType}),Ve}let a;const i=new wn;for(const s of this._def.checks)s.kind==="int"?lt.isInteger(t.data)||(a=this._getOrReturnCtx(t,a),ge(a,{code:se.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?KT(t.data,s.value)!==0&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(a=this._getOrReturnCtx(t,a),ge(a,{code:se.not_finite,message:s.message}),i.dirty()):lt.assertNever(s);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,Ae.toString(n))}gt(t,n){return this.setLimit("min",t,!1,Ae.toString(n))}lte(t,n){return this.setLimit("max",t,!0,Ae.toString(n))}lt(t,n){return this.setLimit("max",t,!1,Ae.toString(n))}setLimit(t,n,a,i){return new Wi({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:a,message:Ae.toString(i)}]})}_addCheck(t){return new Wi({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:Ae.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ae.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ae.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ae.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ae.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:Ae.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:Ae.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ae.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ae.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&lt.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(n===null||a.value>n)&&(n=a.value):a.kind==="max"&&(t===null||a.value<t)&&(t=a.value)}return Number.isFinite(n)&&Number.isFinite(t)}}Wi.create=e=>new Wi({checks:[],typeName:He.ZodNumber,coerce:e?.coerce||!1,...Ye(e)});class Gi extends at{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==Pe.bigint)return this._getInvalidInput(t);let a;const i=new wn;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(a=this._getOrReturnCtx(t,a),ge(a,{code:se.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):lt.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){const n=this._getOrReturnCtx(t);return ge(n,{code:se.invalid_type,expected:Pe.bigint,received:n.parsedType}),Ve}gte(t,n){return this.setLimit("min",t,!0,Ae.toString(n))}gt(t,n){return this.setLimit("min",t,!1,Ae.toString(n))}lte(t,n){return this.setLimit("max",t,!0,Ae.toString(n))}lt(t,n){return this.setLimit("max",t,!1,Ae.toString(n))}setLimit(t,n,a,i){return new Gi({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:a,message:Ae.toString(i)}]})}_addCheck(t){return new Gi({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ae.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ae.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ae.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ae.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:Ae.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}}Gi.create=e=>new Gi({checks:[],typeName:He.ZodBigInt,coerce:e?.coerce??!1,...Ye(e)});class Xu extends at{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Pe.boolean){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.boolean,received:a.parsedType}),Ve}return la(t.data)}}Xu.create=e=>new Xu({typeName:He.ZodBoolean,coerce:e?.coerce||!1,...Ye(e)});class Qo extends at{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Pe.date){const s=this._getOrReturnCtx(t);return ge(s,{code:se.invalid_type,expected:Pe.date,received:s.parsedType}),Ve}if(Number.isNaN(t.data.getTime())){const s=this._getOrReturnCtx(t);return ge(s,{code:se.invalid_date}),Ve}const a=new wn;let i;for(const s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(i=this._getOrReturnCtx(t,i),ge(i,{code:se.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),a.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(i=this._getOrReturnCtx(t,i),ge(i,{code:se.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),a.dirty()):lt.assertNever(s);return{status:a.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Qo({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:Ae.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:Ae.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}}Qo.create=e=>new Qo({checks:[],coerce:e?.coerce||!1,typeName:He.ZodDate,...Ye(e)});class xb extends at{_parse(t){if(this._getType(t)!==Pe.symbol){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.symbol,received:a.parsedType}),Ve}return la(t.data)}}xb.create=e=>new xb({typeName:He.ZodSymbol,...Ye(e)});class Dp extends at{_parse(t){if(this._getType(t)!==Pe.undefined){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.undefined,received:a.parsedType}),Ve}return la(t.data)}}Dp.create=e=>new Dp({typeName:He.ZodUndefined,...Ye(e)});class Ip extends at{_parse(t){if(this._getType(t)!==Pe.null){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.null,received:a.parsedType}),Ve}return la(t.data)}}Ip.create=e=>new Ip({typeName:He.ZodNull,...Ye(e)});class Pb extends at{constructor(){super(...arguments),this._any=!0}_parse(t){return la(t.data)}}Pb.create=e=>new Pb({typeName:He.ZodAny,...Ye(e)});class Mp extends at{constructor(){super(...arguments),this._unknown=!0}_parse(t){return la(t.data)}}Mp.create=e=>new Mp({typeName:He.ZodUnknown,...Ye(e)});class oi extends at{_parse(t){const n=this._getOrReturnCtx(t);return ge(n,{code:se.invalid_type,expected:Pe.never,received:n.parsedType}),Ve}}oi.create=e=>new oi({typeName:He.ZodNever,...Ye(e)});class Sb extends at{_parse(t){if(this._getType(t)!==Pe.undefined){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.void,received:a.parsedType}),Ve}return la(t.data)}}Sb.create=e=>new Sb({typeName:He.ZodVoid,...Ye(e)});class qa extends at{_parse(t){const{ctx:n,status:a}=this._processInputParams(t),i=this._def;if(n.parsedType!==Pe.array)return ge(n,{code:se.invalid_type,expected:Pe.array,received:n.parsedType}),Ve;if(i.exactLength!==null){const l=n.data.length>i.exactLength.value,u=n.data.length<i.exactLength.value;(l||u)&&(ge(n,{code:l?se.too_big:se.too_small,minimum:u?i.exactLength.value:void 0,maximum:l?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),a.dirty())}if(i.minLength!==null&&n.data.length<i.minLength.value&&(ge(n,{code:se.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),a.dirty()),i.maxLength!==null&&n.data.length>i.maxLength.value&&(ge(n,{code:se.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),a.dirty()),n.common.async)return Promise.all([...n.data].map((l,u)=>i.type._parseAsync(new Xa(n,l,n.path,u)))).then(l=>wn.mergeArray(a,l));const s=[...n.data].map((l,u)=>i.type._parseSync(new Xa(n,l,n.path,u)));return wn.mergeArray(a,s)}get element(){return this._def.type}min(t,n){return new qa({...this._def,minLength:{value:t,message:Ae.toString(n)}})}max(t,n){return new qa({...this._def,maxLength:{value:t,message:Ae.toString(n)}})}length(t,n){return new qa({...this._def,exactLength:{value:t,message:Ae.toString(n)}})}nonempty(t){return this.min(1,t)}}qa.create=(e,t)=>new qa({type:e,minLength:null,maxLength:null,exactLength:null,typeName:He.ZodArray,...Ye(t)});function Fo(e){if(e instanceof Bt){const t={};for(const n in e.shape){const a=e.shape[n];t[n]=_r.create(Fo(a))}return new Bt({...e._def,shape:()=>t})}else return e instanceof qa?new qa({...e._def,type:Fo(e.element)}):e instanceof _r?_r.create(Fo(e.unwrap())):e instanceof Zi?Zi.create(Fo(e.unwrap())):e instanceof Ki?Ki.create(e.items.map(t=>Fo(t))):e}class Bt extends at{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=lt.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==Pe.object){const f=this._getOrReturnCtx(t);return ge(f,{code:se.invalid_type,expected:Pe.object,received:f.parsedType}),Ve}const{status:a,ctx:i}=this._processInputParams(t),{shape:s,keys:l}=this._getCached(),u=[];if(!(this._def.catchall instanceof oi&&this._def.unknownKeys==="strip"))for(const f in i.data)l.includes(f)||u.push(f);const h=[];for(const f of l){const p=s[f],g=i.data[f];h.push({key:{status:"valid",value:f},value:p._parse(new Xa(i,g,i.path,f)),alwaysSet:f in i.data})}if(this._def.catchall instanceof oi){const f=this._def.unknownKeys;if(f==="passthrough")for(const p of u)h.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(f==="strict")u.length>0&&(ge(i,{code:se.unrecognized_keys,keys:u}),a.dirty());else if(f!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const f=this._def.catchall;for(const p of u){const g=i.data[p];h.push({key:{status:"valid",value:p},value:f._parse(new Xa(i,g,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const f=[];for(const p of h){const g=await p.key,v=await p.value;f.push({key:g,value:v,alwaysSet:p.alwaysSet})}return f}).then(f=>wn.mergeObjectSync(a,f)):wn.mergeObjectSync(a,h)}get shape(){return this._def.shape()}strict(t){return Ae.errToObj,new Bt({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,a)=>{const i=this._def.errorMap?.(n,a).message??a.defaultError;return n.code==="unrecognized_keys"?{message:Ae.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new Bt({...this._def,unknownKeys:"strip"})}passthrough(){return new Bt({...this._def,unknownKeys:"passthrough"})}extend(t){return new Bt({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Bt({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:He.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Bt({...this._def,catchall:t})}pick(t){const n={};for(const a of lt.objectKeys(t))t[a]&&this.shape[a]&&(n[a]=this.shape[a]);return new Bt({...this._def,shape:()=>n})}omit(t){const n={};for(const a of lt.objectKeys(this.shape))t[a]||(n[a]=this.shape[a]);return new Bt({...this._def,shape:()=>n})}deepPartial(){return Fo(this)}partial(t){const n={};for(const a of lt.objectKeys(this.shape)){const i=this.shape[a];t&&!t[a]?n[a]=i:n[a]=i.optional()}return new Bt({...this._def,shape:()=>n})}required(t){const n={};for(const a of lt.objectKeys(this.shape))if(t&&!t[a])n[a]=this.shape[a];else{let s=this.shape[a];for(;s instanceof _r;)s=s._def.innerType;n[a]=s}return new Bt({...this._def,shape:()=>n})}keyof(){return O1(lt.objectKeys(this.shape))}}Bt.create=(e,t)=>new Bt({shape:()=>e,unknownKeys:"strip",catchall:oi.create(),typeName:He.ZodObject,...Ye(t)});Bt.strictCreate=(e,t)=>new Bt({shape:()=>e,unknownKeys:"strict",catchall:oi.create(),typeName:He.ZodObject,...Ye(t)});Bt.lazycreate=(e,t)=>new Bt({shape:e,unknownKeys:"strip",catchall:oi.create(),typeName:He.ZodObject,...Ye(t)});class Ju extends at{_parse(t){const{ctx:n}=this._processInputParams(t),a=this._def.options;function i(s){for(const u of s)if(u.result.status==="valid")return u.result;for(const u of s)if(u.result.status==="dirty")return n.common.issues.push(...u.ctx.common.issues),u.result;const l=s.map(u=>new wr(u.ctx.common.issues));return ge(n,{code:se.invalid_union,unionErrors:l}),Ve}if(n.common.async)return Promise.all(a.map(async s=>{const l={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:l}),ctx:l}})).then(i);{let s;const l=[];for(const h of a){const f={...n,common:{...n.common,issues:[]},parent:null},p=h._parseSync({data:n.data,path:n.path,parent:f});if(p.status==="valid")return p;p.status==="dirty"&&!s&&(s={result:p,ctx:f}),f.common.issues.length&&l.push(f.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const u=l.map(h=>new wr(h));return ge(n,{code:se.invalid_union,unionErrors:u}),Ve}}get options(){return this._def.options}}Ju.create=(e,t)=>new Ju({options:e,typeName:He.ZodUnion,...Ye(t)});const br=e=>e instanceof Op?br(e.schema):e instanceof Yi?br(e.innerType()):e instanceof td?[e.value]:e instanceof qi?e.options:e instanceof jp?lt.objectValues(e.enum):e instanceof ad?br(e._def.innerType):e instanceof Dp?[void 0]:e instanceof Ip?[null]:e instanceof _r?[void 0,...br(e.unwrap())]:e instanceof Zi?[null,...br(e.unwrap())]:e instanceof j1||e instanceof id?br(e.unwrap()):e instanceof rd?br(e._def.innerType):[];class $m extends at{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Pe.object)return ge(n,{code:se.invalid_type,expected:Pe.object,received:n.parsedType}),Ve;const a=this.discriminator,i=n.data[a],s=this.optionsMap.get(i);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(ge(n,{code:se.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),Ve)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,a){const i=new Map;for(const s of n){const l=br(s.shape[t]);if(!l.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const u of l){if(i.has(u))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(u)}`);i.set(u,s)}}return new $m({typeName:He.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...Ye(a)})}}function Np(e,t){const n=ei(e),a=ei(t);if(e===t)return{valid:!0,data:e};if(n===Pe.object&&a===Pe.object){const i=lt.objectKeys(t),s=lt.objectKeys(e).filter(u=>i.indexOf(u)!==-1),l={...e,...t};for(const u of s){const h=Np(e[u],t[u]);if(!h.valid)return{valid:!1};l[u]=h.data}return{valid:!0,data:l}}else if(n===Pe.array&&a===Pe.array){if(e.length!==t.length)return{valid:!1};const i=[];for(let s=0;s<e.length;s++){const l=e[s],u=t[s],h=Np(l,u);if(!h.valid)return{valid:!1};i.push(h.data)}return{valid:!0,data:i}}else return n===Pe.date&&a===Pe.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}class Qu extends at{_parse(t){const{status:n,ctx:a}=this._processInputParams(t),i=(s,l)=>{if(kb(s)||kb(l))return Ve;const u=Np(s.value,l.value);return u.valid?((_b(s)||_b(l))&&n.dirty(),{status:n.value,value:u.data}):(ge(a,{code:se.invalid_intersection_types}),Ve)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([s,l])=>i(s,l)):i(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}}Qu.create=(e,t,n)=>new Qu({left:e,right:t,typeName:He.ZodIntersection,...Ye(n)});class Ki extends at{_parse(t){const{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==Pe.array)return ge(a,{code:se.invalid_type,expected:Pe.array,received:a.parsedType}),Ve;if(a.data.length<this._def.items.length)return ge(a,{code:se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ve;!this._def.rest&&a.data.length>this._def.items.length&&(ge(a,{code:se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...a.data].map((l,u)=>{const h=this._def.items[u]||this._def.rest;return h?h._parse(new Xa(a,l,a.path,u)):null}).filter(l=>!!l);return a.common.async?Promise.all(s).then(l=>wn.mergeArray(n,l)):wn.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new Ki({...this._def,rest:t})}}Ki.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ki({items:e,typeName:He.ZodTuple,rest:null,...Ye(t)})};class ed extends at{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==Pe.object)return ge(a,{code:se.invalid_type,expected:Pe.object,received:a.parsedType}),Ve;const i=[],s=this._def.keyType,l=this._def.valueType;for(const u in a.data)i.push({key:s._parse(new Xa(a,u,a.path,u)),value:l._parse(new Xa(a,a.data[u],a.path,u)),alwaysSet:u in a.data});return a.common.async?wn.mergeObjectAsync(n,i):wn.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,a){return n instanceof at?new ed({keyType:t,valueType:n,typeName:He.ZodRecord,...Ye(a)}):new ed({keyType:Ga.create(),valueType:t,typeName:He.ZodRecord,...Ye(n)})}}class Cb extends at{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==Pe.map)return ge(a,{code:se.invalid_type,expected:Pe.map,received:a.parsedType}),Ve;const i=this._def.keyType,s=this._def.valueType,l=[...a.data.entries()].map(([u,h],f)=>({key:i._parse(new Xa(a,u,a.path,[f,"key"])),value:s._parse(new Xa(a,h,a.path,[f,"value"]))}));if(a.common.async){const u=new Map;return Promise.resolve().then(async()=>{for(const h of l){const f=await h.key,p=await h.value;if(f.status==="aborted"||p.status==="aborted")return Ve;(f.status==="dirty"||p.status==="dirty")&&n.dirty(),u.set(f.value,p.value)}return{status:n.value,value:u}})}else{const u=new Map;for(const h of l){const f=h.key,p=h.value;if(f.status==="aborted"||p.status==="aborted")return Ve;(f.status==="dirty"||p.status==="dirty")&&n.dirty(),u.set(f.value,p.value)}return{status:n.value,value:u}}}}Cb.create=(e,t,n)=>new Cb({valueType:t,keyType:e,typeName:He.ZodMap,...Ye(n)});class Ll extends at{_parse(t){const{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==Pe.set)return ge(a,{code:se.invalid_type,expected:Pe.set,received:a.parsedType}),Ve;const i=this._def;i.minSize!==null&&a.data.size<i.minSize.value&&(ge(a,{code:se.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),n.dirty()),i.maxSize!==null&&a.data.size>i.maxSize.value&&(ge(a,{code:se.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());const s=this._def.valueType;function l(h){const f=new Set;for(const p of h){if(p.status==="aborted")return Ve;p.status==="dirty"&&n.dirty(),f.add(p.value)}return{status:n.value,value:f}}const u=[...a.data.values()].map((h,f)=>s._parse(new Xa(a,h,a.path,f)));return a.common.async?Promise.all(u).then(h=>l(h)):l(u)}min(t,n){return new Ll({...this._def,minSize:{value:t,message:Ae.toString(n)}})}max(t,n){return new Ll({...this._def,maxSize:{value:t,message:Ae.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Ll.create=(e,t)=>new Ll({valueType:e,minSize:null,maxSize:null,typeName:He.ZodSet,...Ye(t)});class Op extends at{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}Op.create=(e,t)=>new Op({getter:e,typeName:He.ZodLazy,...Ye(t)});class td extends at{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return ge(n,{received:n.data,code:se.invalid_literal,expected:this._def.value}),Ve}return{status:"valid",value:t.data}}get value(){return this._def.value}}td.create=(e,t)=>new td({value:e,typeName:He.ZodLiteral,...Ye(t)});function O1(e,t){return new qi({values:e,typeName:He.ZodEnum,...Ye(t)})}class qi extends at{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),a=this._def.values;return ge(n,{expected:lt.joinValues(a),received:n.parsedType,code:se.invalid_type}),Ve}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){const n=this._getOrReturnCtx(t),a=this._def.values;return ge(n,{received:n.data,code:se.invalid_enum_value,options:a}),Ve}return la(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return qi.create(t,{...this._def,...n})}exclude(t,n=this._def){return qi.create(this.options.filter(a=>!t.includes(a)),{...this._def,...n})}}qi.create=O1;class jp extends at{_parse(t){const n=lt.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(t);if(a.parsedType!==Pe.string&&a.parsedType!==Pe.number){const i=lt.objectValues(n);return ge(a,{expected:lt.joinValues(i),received:a.parsedType,code:se.invalid_type}),Ve}if(this._cache||(this._cache=new Set(lt.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){const i=lt.objectValues(n);return ge(a,{received:a.data,code:se.invalid_enum_value,options:i}),Ve}return la(t.data)}get enum(){return this._def.values}}jp.create=(e,t)=>new jp({values:e,typeName:He.ZodNativeEnum,...Ye(t)});class nd extends at{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Pe.promise&&n.common.async===!1)return ge(n,{code:se.invalid_type,expected:Pe.promise,received:n.parsedType}),Ve;const a=n.parsedType===Pe.promise?n.data:Promise.resolve(n.data);return la(a.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}}nd.create=(e,t)=>new nd({type:e,typeName:He.ZodPromise,...Ye(t)});class Yi extends at{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===He.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:a}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:l=>{ge(a,l),l.fatal?n.abort():n.dirty()},get path(){return a.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const l=i.transform(a.data,s);if(a.common.async)return Promise.resolve(l).then(async u=>{if(n.value==="aborted")return Ve;const h=await this._def.schema._parseAsync({data:u,path:a.path,parent:a});return h.status==="aborted"?Ve:h.status==="dirty"||n.value==="dirty"?fl(h.value):h});{if(n.value==="aborted")return Ve;const u=this._def.schema._parseSync({data:l,path:a.path,parent:a});return u.status==="aborted"?Ve:u.status==="dirty"||n.value==="dirty"?fl(u.value):u}}if(i.type==="refinement"){const l=u=>{const h=i.refinement(u,s);if(a.common.async)return Promise.resolve(h);if(h instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return u};if(a.common.async===!1){const u=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return u.status==="aborted"?Ve:(u.status==="dirty"&&n.dirty(),l(u.value),{status:n.value,value:u.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(u=>u.status==="aborted"?Ve:(u.status==="dirty"&&n.dirty(),l(u.value).then(()=>({status:n.value,value:u.value}))))}if(i.type==="transform")if(a.common.async===!1){const l=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!Jo(l))return Ve;const u=i.transform(l.value,s);if(u instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:u}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(l=>Jo(l)?Promise.resolve(i.transform(l.value,s)).then(u=>({status:n.value,value:u})):Ve);lt.assertNever(i)}}Yi.create=(e,t,n)=>new Yi({schema:e,typeName:He.ZodEffects,effect:t,...Ye(n)});Yi.createWithPreprocess=(e,t,n)=>new Yi({schema:t,effect:{type:"preprocess",transform:e},typeName:He.ZodEffects,...Ye(n)});class _r extends at{_parse(t){return this._getType(t)===Pe.undefined?la(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}_r.create=(e,t)=>new _r({innerType:e,typeName:He.ZodOptional,...Ye(t)});class Zi extends at{_parse(t){return this._getType(t)===Pe.null?la(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Zi.create=(e,t)=>new Zi({innerType:e,typeName:He.ZodNullable,...Ye(t)});class ad extends at{_parse(t){const{ctx:n}=this._processInputParams(t);let a=n.data;return n.parsedType===Pe.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}ad.create=(e,t)=>new ad({innerType:e,typeName:He.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Ye(t)});class rd extends at{_parse(t){const{ctx:n}=this._processInputParams(t),a={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return Zu(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new wr(a.common.issues)},input:a.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new wr(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}}rd.create=(e,t)=>new rd({innerType:e,typeName:He.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Ye(t)});class Tb extends at{_parse(t){if(this._getType(t)!==Pe.nan){const a=this._getOrReturnCtx(t);return ge(a,{code:se.invalid_type,expected:Pe.nan,received:a.parsedType}),Ve}return{status:"valid",value:t.data}}}Tb.create=e=>new Tb({typeName:He.ZodNaN,...Ye(e)});class j1 extends at{_parse(t){const{ctx:n}=this._processInputParams(t),a=n.data;return this._def.type._parse({data:a,path:n.path,parent:n})}unwrap(){return this._def.type}}class Wm extends at{_parse(t){const{status:n,ctx:a}=this._processInputParams(t);if(a.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return s.status==="aborted"?Ve:s.status==="dirty"?(n.dirty(),fl(s.value)):this._def.out._parseAsync({data:s.value,path:a.path,parent:a})})();{const i=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return i.status==="aborted"?Ve:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:a.path,parent:a})}}static create(t,n){return new Wm({in:t,out:n,typeName:He.ZodPipeline})}}class id extends at{_parse(t){const n=this._def.innerType._parse(t),a=i=>(Jo(i)&&(i.value=Object.freeze(i.value)),i);return Zu(n)?n.then(i=>a(i)):a(n)}unwrap(){return this._def.innerType}}id.create=(e,t)=>new id({innerType:e,typeName:He.ZodReadonly,...Ye(t)});var He;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(He||(He={}));const k=Ga.create,te=Wi.create;Gi.create;const Be=Xu.create,Gm=Qo.create,pn=Mp.create;oi.create;const le=qa.create,L=Bt.create,ca=Ju.create,U1=$m.create;Qu.create;Ki.create;const Et=ed.create,Qe=td.create,ot=qi.create;nd.create;_r.create;Zi.create;const Up={string:(e=>Ga.create({...e,coerce:!0})),number:(e=>Wi.create({...e,coerce:!0})),boolean:(e=>Xu.create({...e,coerce:!0})),bigint:(e=>Gi.create({...e,coerce:!0})),date:(e=>Qo.create({...e,coerce:!0}))};var Ha;(function(e){e.STRING="string",e.DATE="date",e.DATETIME="datetime",e.INTEGER="integer",e.FLOAT="float",e.BOOLEAN="boolean",e.UUID="uuid",e.JSON="json"})(Ha||(Ha={}));const qT=ot(["CASCADE","RESTRICT","NO ACTION"]),YT=ot(["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"]),ZT=ot([Ha.STRING,Ha.DATE,Ha.DATETIME,Ha.INTEGER,Ha.FLOAT,Ha.BOOLEAN,Ha.UUID,Ha.JSON]),z1=L({referenceTable:k().min(1,"Target table cannot be empty"),referenceColumn:k().min(1,"Target column cannot be empty"),onDelete:YT,onUpdate:qT}),B1=L({columnName:k().min(1,"Column name cannot be empty").max(64,"Column name must be less than 64 characters"),type:ca([ZT,k()]),defaultValue:k().optional(),isPrimaryKey:Be().optional(),isNullable:Be(),isUnique:Be(),foreignKey:z1.optional()}),F1=L({tableName:k().min(1,"Table name cannot be empty").max(64,"Table name must be less than 64 characters"),columns:le(B1).min(1,"At least one column is required"),recordCount:te().optional(),createdAt:k().optional(),updatedAt:k().optional()}),XT=L({functionName:k(),functionDef:k(),kind:k()}),JT=L({tableName:k(),indexName:k(),indexDef:k(),isUnique:Be().nullable(),isPrimary:Be().nullable()}),QT=L({tableName:k(),policyName:k(),cmd:k(),roles:le(k()),qual:k().nullable(),withCheck:k().nullable()}),e5=L({tableName:k(),triggerName:k(),actionTiming:k(),eventManipulation:k(),actionOrientation:k(),actionCondition:k().nullable(),actionStatement:k()});F1.pick({tableName:!0,columns:!0}).extend({rlsEnabled:Be().default(!0)});F1.pick({tableName:!0,columns:!0}).extend({message:k(),autoFields:le(k()),nextActions:k()});L({addColumns:le(B1.omit({foreignKey:!0})).optional(),dropColumns:le(k()).optional(),updateColumns:le(L({columnName:k(),defaultValue:k().optional(),newColumnName:k().min(1,"New column name cannot be empty").max(64,"New column name must be less than 64 characters").optional()})).optional(),addForeignKeys:le(L({columnName:k().min(1,"Column name is required for adding foreign key"),foreignKey:z1})).optional(),dropForeignKeys:le(k()).optional(),renameTable:L({newTableName:k().min(1,"New table name cannot be empty").max(64,"New table name must be less than 64 characters")}).optional()});L({message:k(),tableName:k(),operations:le(k())});L({message:k(),tableName:k(),nextActions:k()});L({query:k().min(1,"Query is required"),params:le(pn()).optional()});L({rows:le(Et(k(),pn())),rowCount:te().nullable(),fields:le(L({name:k(),dataTypeID:te()})).optional()});L({tables:le(k()).optional(),format:ot(["sql","json"]).default("sql"),includeData:Be().default(!0),includeFunctions:Be().default(!1),includeSequences:Be().default(!1),includeViews:Be().default(!1),rowLimit:te().int().positive().max(1e4).default(1e3)});const t5=L({timestamp:k(),tables:Et(k(),L({schema:le(L({columnName:k(),dataType:k(),characterMaximumLength:te().nullable(),isNullable:k(),columnDefault:k().nullable()})),indexes:le(L({indexname:k(),indexdef:k(),isUnique:Be().nullable(),isPrimary:Be().nullable()})),foreignKeys:le(L({constraintName:k(),columnName:k(),foreignTableName:k(),foreignColumnName:k(),deleteRule:k().nullable(),updateRule:k().nullable()})),rlsEnabled:Be().optional(),policies:le(L({policyname:k(),cmd:k(),roles:le(k()),qual:k().nullable(),withCheck:k().nullable()})),triggers:le(L({triggerName:k(),actionTiming:k(),eventManipulation:k(),actionOrientation:k(),actionCondition:k().nullable(),actionStatement:k(),newTable:k().nullable(),oldTable:k().nullable()})),rows:le(Et(k(),pn())).optional(),recordCount:te().optional()})),functions:le(L({functionName:k(),functionDef:k(),kind:k()})),sequences:le(L({sequenceName:k(),startValue:k(),increment:k(),minValue:k().nullable(),maxValue:k().nullable(),cycle:k()})),views:le(L({viewName:k(),definition:k()}))});L({format:ot(["sql","json"]),data:ca([k(),t5]),timestamp:k()});L({truncate:ca([Be(),k().transform(e=>{if(e==="true")return!0;if(e==="false")return!1;throw new Error("Invalid boolean string")})]).default(!1)});L({success:Be(),message:k(),filename:k(),tables:le(k()),rowsImported:te(),fileSize:te()});L({table:k().min(1,"Table name is required"),upsertKey:k().optional()});L({success:Be(),message:k(),table:k(),rowsAffected:te(),totalRecords:te(),filename:k()});L({functions:le(XT)});L({indexes:le(JT)});L({policies:le(QT)});L({triggers:le(e5)});const n5=L({id:k(),key:k(),isActive:Be(),isReserved:Be(),lastUsedAt:k().nullable(),expiresAt:k().nullable(),createdAt:k(),updatedAt:k()});L({secrets:le(n5)});L({key:k(),value:k()});L({key:k().regex(/^[A-Z0-9_]+$/,"Use uppercase letters, numbers, and underscores only"),value:k().min(1,"Value is required")});L({success:Qe(!0),message:k(),id:k()});L({success:Qe(!0),message:k()});L({success:Qe(!0),message:k()});const a5=L({key:k(),bucket:k(),size:te(),mimeType:k().optional(),uploadedAt:k(),url:k()}),r5=L({name:k(),public:Be(),createdAt:k()});L({id:k().uuid(),maxFileSizeMb:te().int().positive(),createdAt:k(),updatedAt:k()});L({bucketName:k().min(1,"Bucket name cannot be empty"),isPublic:Be().default(!0)});L({isPublic:Be()});L({objects:le(a5),pagination:L({offset:te(),limit:te(),total:te()})});L({filename:k().min(1,"Filename cannot be empty"),contentType:k().optional(),size:te().optional()});L({method:ot(["presigned","direct"]),uploadUrl:k(),fields:Et(k()).optional(),key:k(),confirmRequired:Be(),confirmUrl:k().optional(),expiresAt:Gm().optional()});L({expiresIn:te().optional().default(3600)});L({method:ot(["presigned","direct"]),url:k(),expiresAt:Gm().optional(),headers:Et(k()).optional()});L({size:te(),contentType:k().optional(),etag:k().optional()});L({maxFileSizeMb:te().int().min(1,"Must be at least 1 MB").max(200,"Must be at most 200 MB")});const Md=k().uuid("Invalid user ID format"),Ja=k().email("Invalid email format").toLowerCase().trim(),Km=k(),i5=k().min(1,"Name is required").max(100,"Name must be less than 100 characters").trim(),o5=ot(["anon","authenticated","project_admin"]),Eb=ot(["code","link"]),V1=L({name:k().optional(),avatar_url:k().url().optional()}).passthrough(),cs=L({id:Md,email:Ja,emailVerified:Be(),providers:le(k()).optional(),createdAt:k(),updatedAt:k(),profile:V1.nullable(),metadata:Et(pn()).nullable()}),Nd=ot(["google","github","discord","linkedin","facebook","instagram","tiktok","apple","x","spotify","microsoft"]);L({provider:Nd,redirectUri:k().url().optional()});const qm=L({id:k().uuid(),provider:Nd,clientId:k().optional(),scopes:le(k()).optional(),redirectUri:k().optional(),useSharedKey:Be(),createdAt:k(),updatedAt:k()}),s5=/^(?:(?:https?:\/\/)(?:(?:\*\.)?[^\s/:?#]+|\[[0-9A-Fa-f:.]+\])(?::\d+)?(?:\/[^\s]*)?|(?!(?:https?|javascript|data|file|vbscript):)[a-zA-Z][a-zA-Z0-9+.-]*:(?:\/\/[^\s/]+(?:\/[^\s]*)?|\/[^\s]*))$/i,H1=L({id:k().uuid(),requireEmailVerification:Be(),passwordMinLength:te().min(4).max(128),requireNumber:Be(),requireLowercase:Be(),requireUppercase:Be(),requireSpecialChar:Be(),verifyEmailMethod:Eb,resetPasswordMethod:Eb,allowedRedirectUrls:le(k().regex(s5,{message:"Invalid URL or wildcard URL"})).optional().nullable(),createdAt:k(),updatedAt:k()});L({sub:Md,email:Ja,role:o5,iat:te().optional(),exp:te().optional()});const $1=k().min(1).max(64).regex(/^[a-z0-9_-]+$/,"Key must contain only lowercase letters, numbers, hyphens, and underscores"),Ym=L({id:k().uuid(),key:$1,name:k().min(1),discoveryEndpoint:k().url(),clientId:k().min(1),createdAt:k(),updatedAt:k()}),l5=L({limit:k().optional(),offset:k().optional()});L({email:Ja,password:Km,name:i5.optional(),redirectTo:k().url().optional()});L({email:Ja,password:Km});L({refreshToken:k().min(1,"refreshToken is required")});L({code:k()});l5.extend({search:k().optional()}).optional();L({userIds:le(Md).min(1,"At least one user ID is required")});L({profile:Et(pn())});L({email:Ja,redirectTo:k().url().optional()});L({email:Ja,otp:k().regex(/^\d{6}$/,"OTP code must be a 6-digit numeric code")});L({email:Ja,redirectTo:k().url().optional()});L({email:Ja,code:k().regex(/^\d{6}$/,"Reset password code must be a 6-digit numeric code")});L({newPassword:Km,otp:k().min(1,"OTP/token is required")});L({user:cs.optional(),accessToken:k().nullable(),requireEmailVerification:Be().optional(),csrfToken:k().nullable().optional(),refreshToken:k().optional()});L({user:cs,accessToken:k(),csrfToken:k().nullable().optional(),refreshToken:k().optional()});L({user:cs,accessToken:k(),csrfToken:k().nullable().optional(),refreshToken:k().optional()});L({accessToken:k(),user:cs,csrfToken:k().optional(),refreshToken:k().optional()});L({token:k(),expiresAt:k().datetime()});L({message:k()});L({user:cs});L({id:Md,profile:V1.nullable()});L({data:le(cs),pagination:L({offset:te(),limit:te(),total:te()})});L({message:k(),deletedCount:te().int().nonnegative()});L({authUrl:k().url()});qm.omit({id:!0,createdAt:!0,updatedAt:!0}).extend({clientSecret:k().optional()});qm.omit({id:!0,provider:!0,createdAt:!0,updatedAt:!0}).extend({clientSecret:k().optional()}).partial();const W1=/^[A-Za-z0-9._~-]+$/;L({redirect_uri:k().url().optional(),code_challenge:k().min(43,"Code challenge must be at least 43 characters").max(128,"Code challenge must be at most 128 characters").regex(W1,"Code challenge must be base64url encoded")});L({code:k().min(1,"Exchange code is required"),code_verifier:k().min(43,"Code verifier must be at least 43 characters").max(128,"Code verifier must be at most 128 characters").regex(W1,"Code verifier must be base64url encoded")});L({data:le(qm),count:te()});H1.omit({id:!0,createdAt:!0,updatedAt:!0}).partial();const c5=L({oAuthProviders:le(Nd),customOAuthProviders:le($1),...H1.omit({id:!0,updatedAt:!0,createdAt:!0,allowedRedirectUrls:!0}).shape});L({error:k(),message:k(),statusCode:te().int(),nextActions:k().optional()});Ym.omit({id:!0,createdAt:!0,updatedAt:!0}).extend({clientSecret:k().min(1,"Client secret is required")});Ym.omit({id:!0,key:!0,createdAt:!0,updatedAt:!0}).extend({clientSecret:k().min(1).optional()}).partial();L({data:le(Ym),count:te()});const G1=ot(["system","user"]),K1=L({id:k().uuid(),pattern:k().min(1),description:k().nullable(),webhookUrls:le(k().url()).nullable(),enabled:Be(),createdAt:k().datetime(),updatedAt:k().datetime()}),u5=L({id:k().uuid(),eventName:k().min(1),channelId:k().uuid().nullable(),channelName:k().min(1),payload:Et(k(),pn()),senderType:G1,senderId:k().uuid().nullable(),wsAudienceCount:te().int().min(0),whAudienceCount:te().int().min(0),whDeliveredCount:te().int().min(0),createdAt:k().datetime()}),d5=L({retentionDays:te().int().positive().nullable()});L({channel:k().min(1)});L({channel:k().min(1)});L({channel:k().min(1),event:k().min(1),payload:Et(k(),pn())});U1("ok",[L({ok:Qe(!0),channel:k().min(1)}),L({ok:Qe(!1),channel:k().min(1),error:L({code:k().min(1),message:k().min(1)})})]);L({channel:k().optional(),code:k().min(1),message:k().min(1)});L({messageId:k().uuid(),channel:k().min(1),eventName:k().min(1),payload:Et(k(),pn())});const h5=L({channel:k().optional(),messageId:k().uuid(),senderType:G1,senderId:k().uuid().optional(),timestamp:k().datetime()});L({meta:h5}).passthrough();L({pattern:k().min(1,"Channel pattern is required"),description:k().optional(),webhookUrls:le(k().url()).optional(),enabled:Be().optional().default(!0)});L({pattern:k().min(1).optional(),description:k().optional(),webhookUrls:le(k().url()).optional(),enabled:Be().optional()});le(K1);L({message:k()});L({channelId:k().uuid().optional(),eventName:k().optional(),limit:Up.number().int().min(1).max(1e3).optional().default(100),offset:Up.number().int().min(0).optional().default(0)});le(u5);L({channelId:k().uuid().optional(),since:Up.date().optional()});L({totalMessages:te().int().min(0),whDeliveryRate:te().min(0).max(1),topEvents:le(L({eventName:k(),count:te().int().min(0)})),retentionDays:d5.shape.retentionDays});const Ab=L({policyName:k(),tableName:k(),command:k(),roles:le(k()),using:k().nullable(),withCheck:k().nullable()}),f5=L({subscribe:L({policies:le(Ab)}),publish:L({policies:le(Ab)})}),p5=c5,m5=L({tables:le(L({tableName:k(),recordCount:te()})),totalSizeInGB:te(),hint:k().optional()}),g5=r5.extend({objectCount:te().optional()}),y5=L({buckets:le(g5),totalSizeInGB:te()}),v5=L({slug:k(),name:k(),description:k().nullable(),status:k()}),b5=L({models:le(L({inputModality:le(k()),outputModality:le(k()),modelId:k()}))}),k5=L({channels:le(K1),permissions:f5});L({auth:p5,database:m5,storage:y5,aiIntegration:b5.optional(),functions:le(v5),realtime:k5.optional(),version:k().optional()});const _5=L({host:k(),port:te(),database:k(),user:k(),password:k(),sslmode:k()});L({connectionURL:k(),parameters:_5});L({databasePassword:k()});L({apiKey:k()});L({projectId:k().nullable()});const es=ot(["text","image","audio"]),w5=L({inputModality:le(es).min(1),outputModality:le(es).min(1),provider:k(),modelId:k(),systemPrompt:k().optional()}),q1=w5.extend({id:k().uuid()});q1.extend({usageStats:L({totalInputTokens:te(),totalOutputTokens:te(),totalTokens:te(),totalImageCount:te(),totalRequests:te()}).optional()});const x5=L({configId:k().uuid(),inputTokens:te().int().optional(),outputTokens:te().int().optional(),imageCount:te().int().optional(),imageResolution:k().optional()}),P5=x5.extend({id:k().uuid(),createdAt:Gm(),modelId:k().nullable().optional(),model:k().nullable(),provider:k().nullable(),inputModality:le(es).nullable(),outputModality:le(es).nullable()});L({totalInputTokens:te(),totalOutputTokens:te(),totalTokens:te(),totalImageCount:te(),totalRequests:te()});const S5=L({type:Qe("text"),text:k()}),C5=L({type:Qe("image_url"),image_url:L({url:k(),detail:ot(["auto","low","high"]).optional()})}),T5=L({type:Qe("input_audio"),input_audio:L({data:k(),format:ot(["wav","mp3","aiff","aac","ogg","flac","m4a"])})}),E5=L({type:Qe("file"),file:L({filename:k(),file_data:k()})}),A5=ca([S5,C5,T5,E5]),R5=L({name:k(),description:k().optional(),parameters:Et(pn()).optional()}),L5=L({type:Qe("function"),function:R5}),D5=ca([ot(["auto","none","required"]),L({type:Qe("function"),function:L({name:k()})})]),Y1=L({id:k(),type:Qe("function"),function:L({name:k(),arguments:k()})}),I5=L({role:ot(["user","assistant","system","tool"]),content:ca([k(),le(A5)]).nullable(),images:le(L({url:k()})).optional(),tool_calls:le(Y1).optional(),tool_call_id:k().optional()}),M5=L({enabled:Be(),engine:ot(["native","exa"]).optional(),maxResults:te().min(1).max(10).optional(),searchPrompt:k().optional()}),N5=L({enabled:Be(),pdf:L({engine:ot(["pdf-text","mistral-ocr","native"]).optional()}).optional()});L({model:k(),messages:le(I5),temperature:te().min(0).max(2).optional(),maxTokens:te().positive().optional(),topP:te().min(0).max(1).optional(),stream:Be().optional(),webSearch:M5.optional(),fileParser:N5.optional(),thinking:Be().optional(),tools:le(L5).optional(),toolChoice:D5.optional(),parallelToolCalls:Be().optional()});const O5=L({type:Qe("url_citation"),urlCitation:L({url:k(),title:k().optional(),content:k().optional(),startIndex:te().optional(),endIndex:te().optional()})}),j5=L({type:Qe("file"),file:L({filename:k(),parsedContent:k().optional(),metadata:Et(pn()).optional()})}),U5=ca([O5,j5]);L({text:k(),tool_calls:le(Y1).optional(),annotations:le(U5).optional(),metadata:L({model:k(),usage:L({promptTokens:te().optional(),completionTokens:te().optional(),totalTokens:te().optional()}).optional()}).optional()});L({model:k(),input:ca([k(),le(k())]),encoding_format:ot(["float","base64"]).optional(),dimensions:te().int().min(0).optional()});const z5=L({object:Qe("embedding"),embedding:ca([le(te()),k()]),index:te()});L({object:Qe("list"),data:le(z5),metadata:L({model:k(),usage:L({promptTokens:te().optional(),totalTokens:te().optional()}).optional()}).optional()});L({model:k(),prompt:k(),images:le(L({url:k()})).optional()});L({text:k().optional(),images:le(L({type:Qe("imageUrl"),imageUrl:k()})),metadata:L({model:k(),usage:L({promptTokens:te().optional(),completionTokens:te().optional(),totalTokens:te().optional()}).optional()}).optional()});L({id:k(),inputModality:le(es).min(1),outputModality:le(es).min(1),provider:k(),modelId:k(),inputPrice:te().min(0).optional(),outputPrice:te().min(0).optional()});q1.omit({id:!0});L({systemPrompt:k().nullable()});L({records:le(P5),total:te()});L({startDate:k().datetime().optional(),endDate:k().datetime().optional(),limit:k().regex(/^\d+$/).default("50"),offset:k().regex(/^\d+$/).default("0")});L({configId:k().uuid().optional(),startDate:k().datetime().optional(),endDate:k().datetime().optional()});const B5=ot(["byok","cloud","env","unconfigured"]);L({keySource:B5,hasByokKey:Be(),maskedKey:k().optional()});L({apiKey:k().min(1,"API key is required")});const Z1=L({id:k(),actor:k(),action:k(),module:k(),details:Et(pn()).nullable(),ipAddress:k().nullable(),createdAt:k(),updatedAt:k()});L({id:k(),name:k(),token:k()});const F5=L({id:k(),eventMessage:k(),timestamp:k(),body:Et(k(),pn()),source:k().optional()});L({source:k(),count:te(),lastActivity:k()});const V5=L({level:k(),message:k()});L({deploymentId:k(),status:ot(["pending","success","failed"]),logs:le(V5),createdAt:k()});L({limit:te().default(100),offset:te().default(0),actor:k().optional(),action:k().optional(),module:k().optional(),startDate:k().optional(),endDate:k().optional()});L({data:le(Z1),pagination:L({limit:te(),offset:te(),total:te()})});L({days:te().default(7)});L({totalLogs:te(),uniqueActors:te(),uniqueModules:te(),actionsByModule:Et(te()),recentActivity:le(Z1)});L({daysToKeep:te().default(90)});L({message:k(),deleted:te()});L({logs:le(F5),total:te()});const X1=L({id:k(),slug:k(),name:k(),description:k().nullable(),code:k(),status:ot(["draft","active","error"]),createdAt:k(),updatedAt:k(),deployedAt:k().nullable()});L({name:k().min(1,"Name is required"),slug:k().regex(/^[a-zA-Z0-9_-]+$/,"Invalid slug format - must be alphanumeric with hyphens or underscores only").optional(),code:k().min(1),description:k().optional(),status:ot(["draft","active"]).optional().default("active")});L({name:k().optional(),code:k().optional(),description:k().optional(),status:ot(["draft","active"]).optional()});L({functions:le(X1),runtime:L({status:ot(["running","unavailable"])}),deploymentUrl:k().nullable().optional()});const H5=L({id:k(),status:ot(["success","failed"]),url:k().nullable(),buildLogs:le(k()).optional()});L({success:Be(),function:X1,deployment:H5.nullable().optional()});const $5=L({type:Qe("APP_ROUTE_CHANGE"),path:k()}),W5=L({type:Qe("AUTH_SUCCESS")}),G5=L({type:Qe("AUTH_ERROR"),message:k()}),K5=L({type:Qe("MCP_CONNECTION_STATUS"),connected:Be(),toolName:k(),timestamp:ca([te(),k()])}),q5=L({type:Qe("SHOW_ONBOARDING_OVERLAY")}),Y5=L({type:Qe("SHOW_SETTINGS_OVERLAY")}),Z5=L({type:Qe("ONBOARDING_SUCCESS")}),X5=L({type:Qe("NAVIGATE_TO_USAGE")}),J5=L({type:Qe("SHOW_CONTACT_MODAL")}),Q5=L({type:Qe("SHOW_CONNECT_OVERLAY")}),eE=L({type:Qe("SHOW_PLAN_MODAL")}),tE=L({type:Qe("AUTHORIZATION_CODE"),code:k()}),nE=L({type:Qe("ROUTE_CHANGE"),path:k()}),aE=L({type:Qe("REQUEST_PROJECT_INFO")}),rE=L({type:Qe("PROJECT_INFO"),name:k(),instanceType:k(),region:k(),latestVersion:k().optional()}),iE=L({type:Qe("REQUEST_INSTANCE_INFO")}),oE=L({type:Qe("INSTANCE_INFO"),currentInstanceType:k(),planName:k(),computeCredits:te(),currentOrgComputeCost:te(),instanceTypes:le(L({id:k(),name:k(),cpu:k(),ram:k(),pricePerHour:te(),pricePerMonth:te()})),projects:le(L({name:k(),instanceType:k(),monthlyCost:te(),isCurrent:Be(),status:k()}))}),sE=L({type:Qe("REQUEST_INSTANCE_TYPE_CHANGE"),instanceType:k()}),lE=L({type:Qe("INSTANCE_TYPE_CHANGE_RESULT"),success:Be(),instanceType:k().optional(),error:k().optional()});U1("type",[$5,W5,G5,K5,q5,Y5,Z5,X5,J5,Q5,eE,tE,nE,aE,rE,iE,oE,sE,lE]);ot(["db","storage","functions","auth","ai","realtime"]).describe(`
13
- SDK feature categories:
14
-
15
- - "db" - Database operations
16
- - "storage" - File storage
17
- - "functions" - Edge functions
18
- - "auth" - User authentication
19
- - "ai" - AI features
20
- - "realtime" - Real-time WebSockets
21
- `);ot(["typescript","swift","kotlin","rest-api"]).describe(`
22
- SDK languages:
23
-
24
- - "typescript" - JavaScript/TypeScript SDK
25
- - "swift" - Swift SDK
26
- - "kotlin" - Kotlin SDK
27
- - "rest-api" - REST API
28
- `);ot(["instructions","auth-sdk","db-sdk","storage-sdk","functions-sdk","ai-integration-sdk","real-time","deployment"]).describe(`
29
- Documentation type:
30
- "instructions" (essential backend setup - use FIRST),
31
- "db-sdk" (database operations),
32
- "storage-sdk" (file storage),
33
- "functions-sdk" (edge functions),
34
- "auth-sdk" (direct SDK methods for custom auth flows),
35
- "ai-integration-sdk" (AI features),
36
- "real-time" (real-time pub/sub through WebSockets),
37
- "deployment" (deploy frontend applications via MCP tool)
38
- `);const Uf=ca([Ja,le(Ja).min(1,"At least one email is required").max(50,"Maximum 50 recipients allowed")]);L({to:Uf,subject:k().trim().min(1,"Subject is required").max(500,"Subject too long"),html:k().trim().min(1,"HTML content is required"),cc:Uf.optional(),bcc:Uf.optional(),from:k().trim().max(100,"From name too long").optional(),replyTo:k().email("Reply-To must be a valid email").optional()});L({});const cE=ot(["WAITING","UPLOADING","QUEUED","BUILDING","READY","ERROR","CANCELED"]),uE=L({id:k().uuid(),providerDeploymentId:k().nullable(),provider:k(),status:cE,url:k().nullable(),metadata:Et(pn()).nullable(),createdAt:k().datetime(),updatedAt:k().datetime()}),dE=L({buildCommand:k().nullable().optional(),outputDirectory:k().nullable().optional(),installCommand:k().nullable().optional(),devCommand:k().nullable().optional(),rootDirectory:k().nullable().optional()}),hE=L({key:k(),value:k()});L({id:k().uuid(),uploadUrl:k().url(),uploadFields:Et(k())});L({projectSettings:dE.optional(),envVars:le(hE).optional(),meta:Et(k()).optional()});L({data:le(uE),pagination:L({limit:te(),offset:te(),total:te()})});const fE=L({id:k(),key:k(),type:ot(["plain","encrypted","secret","sensitive","system"]),updatedAt:te().optional()}),pE=L({id:k(),key:k(),value:k(),type:ot(["plain","encrypted","secret","sensitive","system"]),updatedAt:te().optional()});L({envVars:le(fE)});L({envVar:pE});const mE=L({key:k().trim().min(1,"key is required"),value:k()});L({envVars:le(mE).min(1)}).superRefine(({envVars:e},t)=>{const n=new Map;e.forEach((a,i)=>{if(n.get(a.key)!==void 0){t.addIssue({code:se.custom,message:"duplicate environment variable key",path:["envVars",i,"key"]});return}n.set(a.key,i)})});L({success:Qe(!0),message:k()});L({success:Qe(!0),message:k(),count:te().int().positive()});L({success:Qe(!0),message:k()});L({slug:k().trim().min(3,"slug must be at least 3 characters").max(63,"slug must be at most 63 characters").regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,"slug must be lowercase alphanumeric with hyphens, not starting or ending with hyphen").nullable()});L({success:Be(),slug:k().nullable(),domain:k().nullable()});L({currentDeploymentId:k().uuid().nullable(),defaultDomainUrl:k().nullable(),customDomainUrl:k().nullable()});const gE=L({type:k(),domain:k(),value:k()}),yE=L({domain:k(),apexDomain:k(),verified:Be(),misconfigured:Be(),verification:le(gE),cnameTarget:k().nullable(),aRecordValue:k().nullable()});L({domain:k().trim().min(1,"Domain is required").regex(/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i,"Invalid domain format (e.g. myapp.com or www.myapp.com)").refine(e=>!e.toLowerCase().endsWith(".insforge.site"),{message:"Domains ending with .insforge.site are reserved by InsForge"})});L({domains:le(yE)});const vE=L({id:k().uuid(),name:k(),cronSchedule:k(),functionUrl:k().url(),httpMethod:ot(["GET","POST","PUT","PATCH","DELETE"]),headers:Et(k()).nullable(),body:ca([k(),Et(pn())]).nullable(),cronJobId:k().nullable(),lastExecutedAt:k().datetime().nullable(),isActive:Be().default(!0),nextRun:k().datetime().nullable(),createdAt:k().datetime(),updatedAt:k().datetime()}),bE=L({id:k().uuid(),scheduleId:k().uuid(),executedAt:k().datetime(),statusCode:te().int(),success:Be(),durationMs:te().int(),message:k().nullable()}),J1=k().refine(e=>{const t=e.split(" ");return t.length===5||t.length===6},{message:'Invalid cron schedule format. Use 5 or 6 parts (e.g., "* * * * *").'});L({name:k().min(3,"Schedule name must be at least 3 characters long"),cronSchedule:J1,functionUrl:k().url("The function URL must be a valid URL."),httpMethod:ot(["GET","POST","PUT","PATCH","DELETE"]),headers:Et(k()).optional().describe("Header values can reference secrets using ${{secrets.KEY_NAME}} syntax."),body:Et(pn()).optional().describe("The JSON body to send with the request.")});L({name:k().min(3,"Schedule name must be at least 3 characters long").optional(),cronSchedule:J1.optional(),functionUrl:k().url("The function URL must be a valid URL.").optional(),httpMethod:ot(["GET","POST","PUT","PATCH","DELETE"]).optional(),headers:Et(k()).optional().describe("Header values can reference secrets using ${{secrets.KEY_NAME}} syntax."),body:Et(pn()).optional().describe("The JSON body to send with the request."),isActive:Be().optional().describe("Enable or disable the schedule.")});le(vE);const kE=bE;L({logs:le(kE),totalCount:te().int().nonnegative(),limit:te().int().positive(),offset:te().int().nonnegative()});L({id:k().uuid(),cronJobId:k(),message:k()});L({id:k().uuid(),cronJobId:k().optional(),message:k()});L({message:k()});var Jt={},Io={},Mo={},No={},Oo={},jo={},_E=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},ts=_E();const wE=ts.fetch,xE=ts.fetch.bind(ts),PE=ts.Headers,SE=ts.Request,CE=ts.Response,TE=Object.freeze(Object.defineProperty({__proto__:null,Headers:PE,Request:SE,Response:CE,default:xE,fetch:wE},Symbol.toStringTag,{value:"Module"})),EE=W3(TE);var cu={},Rb;function Q1(){if(Rb)return cu;Rb=1,Object.defineProperty(cu,"__esModule",{value:!0});class e extends Error{constructor(n){super(n.message),this.name="PostgrestError",this.details=n.details,this.hint=n.hint,this.code=n.code}}return cu.default=e,cu}var Lb;function ew(){if(Lb)return jo;Lb=1;var e=jo&&jo.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(jo,"__esModule",{value:!0});const t=e(EE),n=e(Q1());class a{constructor(s){var l,u;this.shouldThrowOnError=!1,this.method=s.method,this.url=s.url,this.headers=new Headers(s.headers),this.schema=s.schema,this.body=s.body,this.shouldThrowOnError=(l=s.shouldThrowOnError)!==null&&l!==void 0?l:!1,this.signal=s.signal,this.isMaybeSingle=(u=s.isMaybeSingle)!==null&&u!==void 0?u:!1,s.fetch?this.fetch=s.fetch:typeof fetch>"u"?this.fetch=t.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(s,l){return this.headers=new Headers(this.headers),this.headers.set(s,l),this}then(s,l){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json");const u=this.fetch;let h=u(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async f=>{var p,g,v,_;let w=null,S=null,P=null,D=f.status,R=f.statusText;if(f.ok){if(this.method!=="HEAD"){const F=await f.text();F===""||(this.headers.get("Accept")==="text/csv"||this.headers.get("Accept")&&(!((p=this.headers.get("Accept"))===null||p===void 0)&&p.includes("application/vnd.pgrst.plan+text"))?S=F:S=JSON.parse(F))}const A=(g=this.headers.get("Prefer"))===null||g===void 0?void 0:g.match(/count=(exact|planned|estimated)/),U=(v=f.headers.get("content-range"))===null||v===void 0?void 0:v.split("/");A&&U&&U.length>1&&(P=parseInt(U[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(S)&&(S.length>1?(w={code:"PGRST116",details:`Results contain ${S.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},S=null,P=null,D=406,R="Not Acceptable"):S.length===1?S=S[0]:S=null)}else{const A=await f.text();try{w=JSON.parse(A),Array.isArray(w)&&f.status===404&&(S=[],w=null,D=200,R="OK")}catch{f.status===404&&A===""?(D=204,R="No Content"):w={message:A}}if(w&&this.isMaybeSingle&&(!((_=w?.details)===null||_===void 0)&&_.includes("0 rows"))&&(w=null,D=200,R="OK"),w&&this.shouldThrowOnError)throw new n.default(w)}return{error:w,data:S,count:P,status:D,statusText:R}});return this.shouldThrowOnError||(h=h.catch(f=>{var p,g,v;return{error:{message:`${(p=f?.name)!==null&&p!==void 0?p:"FetchError"}: ${f?.message}`,details:`${(g=f?.stack)!==null&&g!==void 0?g:""}`,hint:"",code:`${(v=f?.code)!==null&&v!==void 0?v:""}`},data:null,count:null,status:0,statusText:""}})),h.then(s,l)}returns(){return this}overrideTypes(){return this}}return jo.default=a,jo}var Db;function tw(){if(Db)return Oo;Db=1;var e=Oo&&Oo.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(Oo,"__esModule",{value:!0});const t=e(ew());class n extends t.default{select(i){let s=!1;const l=(i??"*").split("").map(u=>/\s/.test(u)&&!s?"":(u==='"'&&(s=!s),u)).join("");return this.url.searchParams.set("select",l),this.headers.append("Prefer","return=representation"),this}order(i,{ascending:s=!0,nullsFirst:l,foreignTable:u,referencedTable:h=u}={}){const f=h?`${h}.order`:"order",p=this.url.searchParams.get(f);return this.url.searchParams.set(f,`${p?`${p},`:""}${i}.${s?"asc":"desc"}${l===void 0?"":l?".nullsfirst":".nullslast"}`),this}limit(i,{foreignTable:s,referencedTable:l=s}={}){const u=typeof l>"u"?"limit":`${l}.limit`;return this.url.searchParams.set(u,`${i}`),this}range(i,s,{foreignTable:l,referencedTable:u=l}={}){const h=typeof u>"u"?"offset":`${u}.offset`,f=typeof u>"u"?"limit":`${u}.limit`;return this.url.searchParams.set(h,`${i}`),this.url.searchParams.set(f,`${s-i+1}`),this}abortSignal(i){return this.signal=i,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:i=!1,verbose:s=!1,settings:l=!1,buffers:u=!1,wal:h=!1,format:f="text"}={}){var p;const g=[i?"analyze":null,s?"verbose":null,l?"settings":null,u?"buffers":null,h?"wal":null].filter(Boolean).join("|"),v=(p=this.headers.get("Accept"))!==null&&p!==void 0?p:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${f}; for="${v}"; options=${g};`),f==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(i){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${i}`),this}}return Oo.default=n,Oo}var Ib;function Zm(){if(Ib)return No;Ib=1;var e=No&&No.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(No,"__esModule",{value:!0});const t=e(tw());class n extends t.default{eq(i,s){return this.url.searchParams.append(i,`eq.${s}`),this}neq(i,s){return this.url.searchParams.append(i,`neq.${s}`),this}gt(i,s){return this.url.searchParams.append(i,`gt.${s}`),this}gte(i,s){return this.url.searchParams.append(i,`gte.${s}`),this}lt(i,s){return this.url.searchParams.append(i,`lt.${s}`),this}lte(i,s){return this.url.searchParams.append(i,`lte.${s}`),this}like(i,s){return this.url.searchParams.append(i,`like.${s}`),this}likeAllOf(i,s){return this.url.searchParams.append(i,`like(all).{${s.join(",")}}`),this}likeAnyOf(i,s){return this.url.searchParams.append(i,`like(any).{${s.join(",")}}`),this}ilike(i,s){return this.url.searchParams.append(i,`ilike.${s}`),this}ilikeAllOf(i,s){return this.url.searchParams.append(i,`ilike(all).{${s.join(",")}}`),this}ilikeAnyOf(i,s){return this.url.searchParams.append(i,`ilike(any).{${s.join(",")}}`),this}is(i,s){return this.url.searchParams.append(i,`is.${s}`),this}in(i,s){const l=Array.from(new Set(s)).map(u=>typeof u=="string"&&new RegExp("[,()]").test(u)?`"${u}"`:`${u}`).join(",");return this.url.searchParams.append(i,`in.(${l})`),this}contains(i,s){return typeof s=="string"?this.url.searchParams.append(i,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(i,`cs.{${s.join(",")}}`):this.url.searchParams.append(i,`cs.${JSON.stringify(s)}`),this}containedBy(i,s){return typeof s=="string"?this.url.searchParams.append(i,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(i,`cd.{${s.join(",")}}`):this.url.searchParams.append(i,`cd.${JSON.stringify(s)}`),this}rangeGt(i,s){return this.url.searchParams.append(i,`sr.${s}`),this}rangeGte(i,s){return this.url.searchParams.append(i,`nxl.${s}`),this}rangeLt(i,s){return this.url.searchParams.append(i,`sl.${s}`),this}rangeLte(i,s){return this.url.searchParams.append(i,`nxr.${s}`),this}rangeAdjacent(i,s){return this.url.searchParams.append(i,`adj.${s}`),this}overlaps(i,s){return typeof s=="string"?this.url.searchParams.append(i,`ov.${s}`):this.url.searchParams.append(i,`ov.{${s.join(",")}}`),this}textSearch(i,s,{config:l,type:u}={}){let h="";u==="plain"?h="pl":u==="phrase"?h="ph":u==="websearch"&&(h="w");const f=l===void 0?"":`(${l})`;return this.url.searchParams.append(i,`${h}fts${f}.${s}`),this}match(i){return Object.entries(i).forEach(([s,l])=>{this.url.searchParams.append(s,`eq.${l}`)}),this}not(i,s,l){return this.url.searchParams.append(i,`not.${s}.${l}`),this}or(i,{foreignTable:s,referencedTable:l=s}={}){const u=l?`${l}.or`:"or";return this.url.searchParams.append(u,`(${i})`),this}filter(i,s,l){return this.url.searchParams.append(i,`${s}.${l}`),this}}return No.default=n,No}var Mb;function nw(){if(Mb)return Mo;Mb=1;var e=Mo&&Mo.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(Mo,"__esModule",{value:!0});const t=e(Zm());class n{constructor(i,{headers:s={},schema:l,fetch:u}){this.url=i,this.headers=new Headers(s),this.schema=l,this.fetch=u}select(i,{head:s=!1,count:l}={}){const u=s?"HEAD":"GET";let h=!1;const f=(i??"*").split("").map(p=>/\s/.test(p)&&!h?"":(p==='"'&&(h=!h),p)).join("");return this.url.searchParams.set("select",f),l&&this.headers.append("Prefer",`count=${l}`),new t.default({method:u,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(i,{count:s,defaultToNull:l=!0}={}){var u;const h="POST";if(s&&this.headers.append("Prefer",`count=${s}`),l||this.headers.append("Prefer","missing=default"),Array.isArray(i)){const f=i.reduce((p,g)=>p.concat(Object.keys(g)),[]);if(f.length>0){const p=[...new Set(f)].map(g=>`"${g}"`);this.url.searchParams.set("columns",p.join(","))}}return new t.default({method:h,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(u=this.fetch)!==null&&u!==void 0?u:fetch})}upsert(i,{onConflict:s,ignoreDuplicates:l=!1,count:u,defaultToNull:h=!0}={}){var f;const p="POST";if(this.headers.append("Prefer",`resolution=${l?"ignore":"merge"}-duplicates`),s!==void 0&&this.url.searchParams.set("on_conflict",s),u&&this.headers.append("Prefer",`count=${u}`),h||this.headers.append("Prefer","missing=default"),Array.isArray(i)){const g=i.reduce((v,_)=>v.concat(Object.keys(_)),[]);if(g.length>0){const v=[...new Set(g)].map(_=>`"${_}"`);this.url.searchParams.set("columns",v.join(","))}}return new t.default({method:p,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(f=this.fetch)!==null&&f!==void 0?f:fetch})}update(i,{count:s}={}){var l;const u="PATCH";return s&&this.headers.append("Prefer",`count=${s}`),new t.default({method:u,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(l=this.fetch)!==null&&l!==void 0?l:fetch})}delete({count:i}={}){var s;const l="DELETE";return i&&this.headers.append("Prefer",`count=${i}`),new t.default({method:l,url:this.url,headers:this.headers,schema:this.schema,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch})}}return Mo.default=n,Mo}var Nb;function AE(){if(Nb)return Io;Nb=1;var e=Io&&Io.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Io,"__esModule",{value:!0});const t=e(nw()),n=e(Zm());class a{constructor(s,{headers:l={},schema:u,fetch:h}={}){this.url=s,this.headers=new Headers(l),this.schemaName=u,this.fetch=h}from(s){const l=new URL(`${this.url}/${s}`);return new t.default(l,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(s){return new a(this.url,{headers:this.headers,schema:s,fetch:this.fetch})}rpc(s,l={},{head:u=!1,get:h=!1,count:f}={}){var p;let g;const v=new URL(`${this.url}/rpc/${s}`);let _;u||h?(g=u?"HEAD":"GET",Object.entries(l).filter(([S,P])=>P!==void 0).map(([S,P])=>[S,Array.isArray(P)?`{${P.join(",")}}`:`${P}`]).forEach(([S,P])=>{v.searchParams.append(S,P)})):(g="POST",_=l);const w=new Headers(this.headers);return f&&w.set("Prefer",`count=${f}`),new n.default({method:g,url:v,headers:w,schema:this.schemaName,body:_,fetch:(p=this.fetch)!==null&&p!==void 0?p:fetch})}}return Io.default=a,Io}var Ob;function RE(){if(Ob)return Jt;Ob=1;var e=Jt&&Jt.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.PostgrestError=Jt.PostgrestBuilder=Jt.PostgrestTransformBuilder=Jt.PostgrestFilterBuilder=Jt.PostgrestQueryBuilder=Jt.PostgrestClient=void 0;const t=e(AE());Jt.PostgrestClient=t.default;const n=e(nw());Jt.PostgrestQueryBuilder=n.default;const a=e(Zm());Jt.PostgrestFilterBuilder=a.default;const i=e(tw());Jt.PostgrestTransformBuilder=i.default;const s=e(ew());Jt.PostgrestBuilder=s.default;const l=e(Q1());return Jt.PostgrestError=l.default,Jt.default={PostgrestClient:t.default,PostgrestQueryBuilder:n.default,PostgrestFilterBuilder:a.default,PostgrestTransformBuilder:i.default,PostgrestBuilder:s.default,PostgrestError:l.default},Jt}var LE=RE();const DE=X_(LE),{PostgrestClient:IE,PostgrestQueryBuilder:IU,PostgrestFilterBuilder:MU,PostgrestTransformBuilder:NU,PostgrestBuilder:OU,PostgrestError:jU}=DE,Qa=Object.create(null);Qa.open="0";Qa.close="1";Qa.ping="2";Qa.pong="3";Qa.message="4";Qa.upgrade="5";Qa.noop="6";const Lu=Object.create(null);Object.keys(Qa).forEach(e=>{Lu[Qa[e]]=e});const zp={type:"error",data:"parser error"},aw=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",rw=typeof ArrayBuffer=="function",iw=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Xm=({type:e,data:t},n,a)=>aw&&t instanceof Blob?n?a(t):jb(t,a):rw&&(t instanceof ArrayBuffer||iw(t))?n?a(t):jb(new Blob([t]),a):a(Qa[e]+(t||"")),jb=(e,t)=>{const n=new FileReader;return n.onload=function(){const a=n.result.split(",")[1];t("b"+(a||""))},n.readAsDataURL(e)};function Ub(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let zf;function ME(e,t){if(aw&&e.data instanceof Blob)return e.data.arrayBuffer().then(Ub).then(t);if(rw&&(e.data instanceof ArrayBuffer||iw(e.data)))return t(Ub(e.data));Xm(e,!1,n=>{zf||(zf=new TextEncoder),t(zf.encode(n))})}const zb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pl=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<zb.length;e++)pl[zb.charCodeAt(e)]=e;const NE=e=>{let t=e.length*.75,n=e.length,a,i=0,s,l,u,h;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const f=new ArrayBuffer(t),p=new Uint8Array(f);for(a=0;a<n;a+=4)s=pl[e.charCodeAt(a)],l=pl[e.charCodeAt(a+1)],u=pl[e.charCodeAt(a+2)],h=pl[e.charCodeAt(a+3)],p[i++]=s<<2|l>>4,p[i++]=(l&15)<<4|u>>2,p[i++]=(u&3)<<6|h&63;return f},OE=typeof ArrayBuffer=="function",Jm=(e,t)=>{if(typeof e!="string")return{type:"message",data:ow(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:jE(e.substring(1),t)}:Lu[n]?e.length>1?{type:Lu[n],data:e.substring(1)}:{type:Lu[n]}:zp},jE=(e,t)=>{if(OE){const n=NE(e);return ow(n,t)}else return{base64:!0,data:e}},ow=(e,t)=>t==="blob"?e instanceof Blob?e:new Blob([e]):e instanceof ArrayBuffer?e:e.buffer,sw="",UE=(e,t)=>{const n=e.length,a=new Array(n);let i=0;e.forEach((s,l)=>{Xm(s,!1,u=>{a[l]=u,++i===n&&t(a.join(sw))})})},zE=(e,t)=>{const n=e.split(sw),a=[];for(let i=0;i<n.length;i++){const s=Jm(n[i],t);if(a.push(s),s.type==="error")break}return a};function BE(){return new TransformStream({transform(e,t){ME(e,n=>{const a=n.length;let i;if(a<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,a);else if(a<65536){i=new Uint8Array(3);const s=new DataView(i.buffer);s.setUint8(0,126),s.setUint16(1,a)}else{i=new Uint8Array(9);const s=new DataView(i.buffer);s.setUint8(0,127),s.setBigUint64(1,BigInt(a))}e.data&&typeof e.data!="string"&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}let Bf;function uu(e){return e.reduce((t,n)=>t+n.length,0)}function du(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let a=0;for(let i=0;i<t;i++)n[i]=e[0][a++],a===e[0].length&&(e.shift(),a=0);return e.length&&a<e[0].length&&(e[0]=e[0].slice(a)),n}function FE(e,t){Bf||(Bf=new TextDecoder);const n=[];let a=0,i=-1,s=!1;return new TransformStream({transform(l,u){for(n.push(l);;){if(a===0){if(uu(n)<1)break;const h=du(n,1);s=(h[0]&128)===128,i=h[0]&127,i<126?a=3:i===126?a=1:a=2}else if(a===1){if(uu(n)<2)break;const h=du(n,2);i=new DataView(h.buffer,h.byteOffset,h.length).getUint16(0),a=3}else if(a===2){if(uu(n)<8)break;const h=du(n,8),f=new DataView(h.buffer,h.byteOffset,h.length),p=f.getUint32(0);if(p>Math.pow(2,21)-1){u.enqueue(zp);break}i=p*Math.pow(2,32)+f.getUint32(4),a=3}else{if(uu(n)<i)break;const h=du(n,i);u.enqueue(Jm(s?h:Bf.decode(h),t)),a=0}if(i===0||i>e){u.enqueue(zp);break}}}})}const lw=4;function Vt(e){if(e)return VE(e)}function VE(e){for(var t in Vt.prototype)e[t]=Vt.prototype[t];return e}Vt.prototype.on=Vt.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};Vt.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};Vt.prototype.off=Vt.prototype.removeListener=Vt.prototype.removeAllListeners=Vt.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var a,i=0;i<n.length;i++)if(a=n[i],a===t||a.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks["$"+e],this};Vt.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],a=1;a<arguments.length;a++)t[a-1]=arguments[a];if(n){n=n.slice(0);for(var a=0,i=n.length;a<i;++a)n[a].apply(this,t)}return this};Vt.prototype.emitReserved=Vt.prototype.emit;Vt.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};Vt.prototype.hasListeners=function(e){return!!this.listeners(e).length};const Od=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),na=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),HE="arraybuffer";function cw(e,...t){return t.reduce((n,a)=>(e.hasOwnProperty(a)&&(n[a]=e[a]),n),{})}const $E=na.setTimeout,WE=na.clearTimeout;function jd(e,t){t.useNativeTimers?(e.setTimeoutFn=$E.bind(na),e.clearTimeoutFn=WE.bind(na)):(e.setTimeoutFn=na.setTimeout.bind(na),e.clearTimeoutFn=na.clearTimeout.bind(na))}const GE=1.33;function KE(e){return typeof e=="string"?qE(e):Math.ceil((e.byteLength||e.size)*GE)}function qE(e){let t=0,n=0;for(let a=0,i=e.length;a<i;a++)t=e.charCodeAt(a),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(a++,n+=4);return n}function uw(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function YE(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function ZE(e){let t={},n=e.split("&");for(let a=0,i=n.length;a<i;a++){let s=n[a].split("=");t[decodeURIComponent(s[0])]=decodeURIComponent(s[1])}return t}class XE extends Error{constructor(t,n,a){super(t),this.description=n,this.context=a,this.type="TransportError"}}class Qm extends Vt{constructor(t){super(),this.writable=!1,jd(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,a){return super.emitReserved("error",new XE(t,n,a)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=Jm(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=YE(t);return n.length?"?"+n:""}}class JE extends Qm{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let a=0;this._polling&&(a++,this.once("pollComplete",function(){--a||n()})),this.writable||(a++,this.once("drain",function(){--a||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=a=>{if(this.readyState==="opening"&&a.type==="open"&&this.onOpen(),a.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(a)};zE(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,UE(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=uw()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let dw=!1;try{dw=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const QE=dw;function e6(){}class t6 extends JE{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let a=location.port;a||(a=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||a!==t.port}}doWrite(t,n){const a=this.request({method:"POST",data:t});a.on("success",n),a.on("error",(i,s)=>{this.onError("xhr post error",i,s)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,a)=>{this.onError("xhr poll error",n,a)}),this.pollXhr=t}}let Yo=class Du extends Vt{constructor(t,n,a){super(),this.createRequest=t,jd(this,a),this._opts=a,this._method=a.method||"GET",this._uri=n,this._data=a.data!==void 0?a.data:null,this._create()}_create(){var t;const n=cw(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const a=this._xhr=this.createRequest(n);try{a.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){a.setDisableHeaderCheck&&a.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&a.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{a.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{a.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(a),"withCredentials"in a&&(a.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(a.timeout=this._opts.requestTimeout),a.onreadystatechange=()=>{var i;a.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(a.getResponseHeader("set-cookie"))),a.readyState===4&&(a.status===200||a.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof a.status=="number"?a.status:0)},0))},a.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=Du.requestsCount++,Du.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=e6,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Du.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Yo.requestsCount=0;Yo.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Bb);else if(typeof addEventListener=="function"){const e="onpagehide"in na?"pagehide":"unload";addEventListener(e,Bb,!1)}}function Bb(){for(let e in Yo.requests)Yo.requests.hasOwnProperty(e)&&Yo.requests[e].abort()}const n6=(function(){const e=hw({xdomain:!1});return e&&e.responseType!==null})();class a6 extends t6{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=n6&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Yo(hw,this.uri(),t)}}function hw(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||QE))return new XMLHttpRequest}catch{}if(!t)try{return new na[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const fw=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class r6 extends Qm{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,a=fw?{}:cw(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(a.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,a)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const a=t[n],i=n===t.length-1;Xm(a,this.supportsBinary,s=>{try{this.doWrite(a,s)}catch{}i&&Od(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=uw()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const Ff=na.WebSocket||na.MozWebSocket;class i6 extends r6{createSocket(t,n,a){return fw?new Ff(t,n,a):n?new Ff(t,n):new Ff(t)}doWrite(t,n){this.ws.send(n)}}class o6 extends Qm{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=FE(Number.MAX_SAFE_INTEGER,this.socket.binaryType),a=t.readable.pipeThrough(n).getReader(),i=BE();i.readable.pipeTo(t.writable),this._writer=i.writable.getWriter();const s=()=>{a.read().then(({done:u,value:h})=>{u||(this.onPacket(h),s())}).catch(u=>{})};s();const l={type:"open"};this.query.sid&&(l.data=`{"sid":"${this.query.sid}"}`),this._writer.write(l).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const a=t[n],i=n===t.length-1;this._writer.write(a).then(()=>{i&&Od(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const s6={websocket:i6,webtransport:o6,polling:a6},l6=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,c6=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Bp(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),a=e.indexOf("]");n!=-1&&a!=-1&&(e=e.substring(0,n)+e.substring(n,a).replace(/:/g,";")+e.substring(a,e.length));let i=l6.exec(e||""),s={},l=14;for(;l--;)s[c6[l]]=i[l]||"";return n!=-1&&a!=-1&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s.pathNames=u6(s,s.path),s.queryKey=d6(s,s.query),s}function u6(e,t){const n=/\/{2,9}/g,a=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&a.splice(0,1),t.slice(-1)=="/"&&a.splice(a.length-1,1),a}function d6(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(a,i,s){i&&(n[i]=s)}),n}const Fp=typeof addEventListener=="function"&&typeof removeEventListener=="function",Iu=[];Fp&&addEventListener("offline",()=>{Iu.forEach(e=>e())},!1);class ii extends Vt{constructor(t,n){if(super(),this.binaryType=HE,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const a=Bp(t);n.hostname=a.host,n.secure=a.protocol==="https"||a.protocol==="wss",n.port=a.port,a.query&&(n.query=a.query)}else n.host&&(n.hostname=Bp(n.host).host);jd(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(a=>{const i=a.prototype.name;this.transports.push(i),this._transportsByName[i]=a}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=ZE(this.opts.query)),Fp&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Iu.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=lw,n.transport=t,this.id&&(n.sid=this.id);const a=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](a)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&ii.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",ii.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let a=0;a<this.writeBuffer.length;a++){const i=this.writeBuffer[a].data;if(i&&(n+=KE(i)),a>0&&n>this._maxPayload)return this.writeBuffer.slice(0,a);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,Od(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,a){return this._sendPacket("message",t,n,a),this}send(t,n,a){return this._sendPacket("message",t,n,a),this}_sendPacket(t,n,a,i){if(typeof n=="function"&&(i=n,n=void 0),typeof a=="function"&&(i=a,a=null),this.readyState==="closing"||this.readyState==="closed")return;a=a||{},a.compress=a.compress!==!1;const s={type:t,data:n,options:a};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),i&&this.once("flush",i),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},a=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?a():t()}):this.upgrading?a():t()),this}_onError(t){if(ii.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Fp&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const a=Iu.indexOf(this._offlineEventListener);a!==-1&&Iu.splice(a,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}ii.protocol=lw;class h6 extends ii{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),a=!1;ii.priorWebsocketSuccess=!1;const i=()=>{a||(n.send([{type:"ping",data:"probe"}]),n.once("packet",g=>{if(!a)if(g.type==="pong"&&g.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;ii.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{a||this.readyState!=="closed"&&(p(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const v=new Error("probe error");v.transport=n.name,this.emitReserved("upgradeError",v)}}))};function s(){a||(a=!0,p(),n.close(),n=null)}const l=g=>{const v=new Error("probe error: "+g);v.transport=n.name,s(),this.emitReserved("upgradeError",v)};function u(){l("transport closed")}function h(){l("socket closed")}function f(g){n&&g.name!==n.name&&s()}const p=()=>{n.removeListener("open",i),n.removeListener("error",l),n.removeListener("close",u),this.off("close",h),this.off("upgrading",f)};n.once("open",i),n.once("error",l),n.once("close",u),this.once("close",h),this.once("upgrading",f),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{a||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let a=0;a<t.length;a++)~this.transports.indexOf(t[a])&&n.push(t[a]);return n}}let f6=class extends h6{constructor(t,n={}){const a=typeof t=="object"?t:n;(!a.transports||a.transports&&typeof a.transports[0]=="string")&&(a.transports=(a.transports||["polling","websocket","webtransport"]).map(i=>s6[i]).filter(i=>!!i)),super(t,a)}};function p6(e,t="",n){let a=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),a=Bp(e)),a.port||(/^(http|ws)$/.test(a.protocol)?a.port="80":/^(http|ws)s$/.test(a.protocol)&&(a.port="443")),a.path=a.path||"/";const s=a.host.indexOf(":")!==-1?"["+a.host+"]":a.host;return a.id=a.protocol+"://"+s+":"+a.port+t,a.href=a.protocol+"://"+s+(n&&n.port===a.port?"":":"+a.port),a}const m6=typeof ArrayBuffer=="function",g6=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,pw=Object.prototype.toString,y6=typeof Blob=="function"||typeof Blob<"u"&&pw.call(Blob)==="[object BlobConstructor]",v6=typeof File=="function"||typeof File<"u"&&pw.call(File)==="[object FileConstructor]";function eg(e){return m6&&(e instanceof ArrayBuffer||g6(e))||y6&&e instanceof Blob||v6&&e instanceof File}function Mu(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,a=e.length;n<a;n++)if(Mu(e[n]))return!0;return!1}if(eg(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return Mu(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&Mu(e[n]))return!0;return!1}function b6(e){const t=[],n=e.data,a=e;return a.data=Vp(n,t),a.attachments=t.length,{packet:a,buffers:t}}function Vp(e,t){if(!e)return e;if(eg(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let a=0;a<e.length;a++)n[a]=Vp(e[a],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=Vp(e[a],t));return n}return e}function k6(e,t){return e.data=Hp(e.data,t),delete e.attachments,e}function Hp(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=Hp(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=Hp(e[n],t));return e}const _6=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var it;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(it||(it={}));class w6{constructor(t){this.replacer=t}encode(t){return(t.type===it.EVENT||t.type===it.ACK)&&Mu(t)?this.encodeAsBinary({type:t.type===it.EVENT?it.BINARY_EVENT:it.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===it.BINARY_EVENT||t.type===it.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=b6(t),a=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(a),i}}class tg extends Vt{constructor(t){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},typeof t=="function"?{reviver:t}:t)}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const a=n.type===it.BINARY_EVENT;a||n.type===it.BINARY_ACK?(n.type=a?it.EVENT:it.ACK,this.reconstructor=new x6(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(eg(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const a={type:Number(t.charAt(0))};if(it[a.type]===void 0)throw new Error("unknown packet type "+a.type);if(a.type===it.BINARY_EVENT||a.type===it.BINARY_ACK){const s=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const l=t.substring(s,n);if(l!=Number(l)||t.charAt(n)!=="-")throw new Error("Illegal attachments");const u=Number(l);if(!P6(u)||u<0)throw new Error("Illegal attachments");if(u>this.opts.maxAttachments)throw new Error("too many attachments");a.attachments=u}if(t.charAt(n+1)==="/"){const s=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););a.nsp=t.substring(s,n)}else a.nsp="/";const i=t.charAt(n+1);if(i!==""&&Number(i)==i){const s=n+1;for(;++n;){const l=t.charAt(n);if(l==null||Number(l)!=l){--n;break}if(n===t.length)break}a.id=Number(t.substring(s,n+1))}if(t.charAt(++n)){const s=this.tryParse(t.substr(n));if(tg.isPayloadValid(a.type,s))a.data=s;else throw new Error("invalid payload")}return a}tryParse(t){try{return JSON.parse(t,this.opts.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case it.CONNECT:return Fb(n);case it.DISCONNECT:return n===void 0;case it.CONNECT_ERROR:return typeof n=="string"||Fb(n);case it.EVENT:case it.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&_6.indexOf(n[0])===-1);case it.ACK:case it.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class x6{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=k6(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const P6=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};function Fb(e){return Object.prototype.toString.call(e)==="[object Object]"}const S6=Object.freeze(Object.defineProperty({__proto__:null,Decoder:tg,Encoder:w6,get PacketType(){return it}},Symbol.toStringTag,{value:"Module"}));function Sa(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const C6=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class mw extends Vt{constructor(t,n,a){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,a&&a.auth&&(this.auth=a.auth),this._opts=Object.assign({},a),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[Sa(t,"open",this.onopen.bind(this)),Sa(t,"packet",this.onpacket.bind(this)),Sa(t,"error",this.onerror.bind(this)),Sa(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var a,i,s;if(C6.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const l={type:it.EVENT,data:n};if(l.options={},l.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const p=this.ids++,g=n.pop();this._registerAckCallback(p,g),l.id=p}const u=(i=(a=this.io.engine)===null||a===void 0?void 0:a.transport)===null||i===void 0?void 0:i.writable,h=this.connected&&!(!((s=this.io.engine)===null||s===void 0)&&s._hasPingExpired());return this.flags.volatile&&!u||(h?(this.notifyOutgoingListeners(l),this.packet(l)):this.sendBuffer.push(l)),this.flags={},this}_registerAckCallback(t,n){var a;const i=(a=this.flags.timeout)!==null&&a!==void 0?a:this._opts.ackTimeout;if(i===void 0){this.acks[t]=n;return}const s=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let u=0;u<this.sendBuffer.length;u++)this.sendBuffer[u].id===t&&this.sendBuffer.splice(u,1);n.call(this,new Error("operation has timed out"))},i),l=(...u)=>{this.io.clearTimeoutFn(s),n.apply(this,u)};l.withError=!0,this.acks[t]=l}emitWithAck(t,...n){return new Promise((a,i)=>{const s=(l,u)=>l?i(l):a(u);s.withError=!0,n.push(s),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const a={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((i,...s)=>(this._queue[0],i!==null?a.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...s)),a.pending=!1,this._drainQueue())),this._queue.push(a),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:it.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(a=>String(a.id)===t)){const a=this.acks[t];delete this.acks[t],a.withError&&a.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case it.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case it.EVENT:case it.BINARY_EVENT:this.onevent(t);break;case it.ACK:case it.BINARY_ACK:this.onack(t);break;case it.DISCONNECT:this.ondisconnect();break;case it.CONNECT_ERROR:this.destroy();const a=new Error(t.data.message);a.data=t.data.data,this.emitReserved("connect_error",a);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const a of n)a.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let a=!1;return function(...i){a||(a=!0,n.packet({type:it.ACK,id:t,data:i}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:it.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let a=0;a<n.length;a++)if(t===n[a])return n.splice(a,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let a=0;a<n.length;a++)if(t===n[a])return n.splice(a,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const a of n)a.apply(this,t.data)}}}function us(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}us.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-n:e+n}return Math.min(e,this.max)|0};us.prototype.reset=function(){this.attempts=0};us.prototype.setMin=function(e){this.ms=e};us.prototype.setMax=function(e){this.max=e};us.prototype.setJitter=function(e){this.jitter=e};class $p extends Vt{constructor(t,n){var a;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,jd(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((a=n.randomizationFactor)!==null&&a!==void 0?a:.5),this.backoff=new us({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const i=n.parser||S6;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new f6(this.uri,this.opts);const n=this.engine,a=this;this._readyState="opening",this.skipReconnect=!1;const i=Sa(n,"open",function(){a.onopen(),t&&t()}),s=u=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",u),t?t(u):this.maybeReconnectOnOpen()},l=Sa(n,"error",s);if(this._timeout!==!1){const u=this._timeout,h=this.setTimeoutFn(()=>{i(),s(new Error("timeout")),n.close()},u);this.opts.autoUnref&&h.unref(),this.subs.push(()=>{this.clearTimeoutFn(h)})}return this.subs.push(i),this.subs.push(l),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(Sa(t,"ping",this.onping.bind(this)),Sa(t,"data",this.ondata.bind(this)),Sa(t,"error",this.onerror.bind(this)),Sa(t,"close",this.onclose.bind(this)),Sa(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){Od(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let a=this.nsps[t];return a?this._autoConnect&&!a.active&&a.connect():(a=new mw(this,t,n),this.nsps[t]=a),a}_destroy(t){const n=Object.keys(this.nsps);for(const a of n)if(this.nsps[a].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let a=0;a<n.length;a++)this.engine.write(n[a],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var a;this.cleanup(),(a=this.engine)===null||a===void 0||a.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const a=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(i=>{i?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",i)):t.onreconnect()}))},n);this.opts.autoUnref&&a.unref(),this.subs.push(()=>{this.clearTimeoutFn(a)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const ol={};function Nu(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=p6(e,t.path||"/socket.io"),a=n.source,i=n.id,s=n.path,l=ol[i]&&s in ol[i].nsps,u=t.forceNew||t["force new connection"]||t.multiplex===!1||l;let h;return u?h=new $p(a,t):(ol[i]||(ol[i]=new $p(a,t)),h=ol[i]),n.query&&!t.query&&(t.query=n.queryKey),h.socket(n.path,t)}Object.assign(Nu,{Manager:$p,Socket:mw,io:Nu,connect:Nu});var qe=class gw extends Error{constructor(t,n,a,i){super(t),this.name="InsForgeError",this.statusCode=n,this.error=a,this.nextActions=i}static fromApiError(t){return new gw(t.message,t.statusCode,t.error,t.nextActions)}},T6=["authorization","x-api-key","cookie","set-cookie"],E6=["password","token","accesstoken","refreshtoken","authorization","secret","apikey","api_key","email","ssn","creditcard","credit_card"];function A6(e){const t={};for(const[n,a]of Object.entries(e))T6.includes(n.toLowerCase())?t[n]="***REDACTED***":t[n]=a;return t}function vl(e){if(e==null)return e;if(typeof e=="string")try{const t=JSON.parse(e);return vl(t)}catch{return e}if(Array.isArray(e))return e.map(vl);if(typeof e=="object"){const t={};for(const[n,a]of Object.entries(e))E6.includes(n.toLowerCase().replace(/[-_]/g,""))?t[n]="***REDACTED***":t[n]=vl(a);return t}return e}function Vb(e){if(e==null)return"";if(typeof e=="string")try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}if(typeof FormData<"u"&&e instanceof FormData)return"[FormData]";try{return JSON.stringify(e,null,2)}catch{return"[Unserializable body]"}}var yw=class{constructor(e){typeof e=="function"?(this.enabled=!0,this.customLog=e):(this.enabled=!!e,this.customLog=null)}log(e,...t){if(!this.enabled)return;const n=`[InsForge Debug] ${e}`;this.customLog?this.customLog(n,...t):console.log(n,...t)}warn(e,...t){if(!this.enabled)return;const n=`[InsForge Debug] ${e}`;this.customLog?this.customLog(n,...t):console.warn(n,...t)}error(e,...t){if(!this.enabled)return;const n=`[InsForge Debug] ${e}`;this.customLog?this.customLog(n,...t):console.error(n,...t)}logRequest(e,t,n,a){if(!this.enabled)return;const i=[`→ ${e} ${t}`];n&&Object.keys(n).length>0&&i.push(` Headers: ${JSON.stringify(A6(n))}`);const s=Vb(vl(a));if(s){const l=s.length>1e3?s.slice(0,1e3)+"... [truncated]":s;i.push(` Body: ${l}`)}this.log(i.join(`
39
- `))}logResponse(e,t,n,a,i){if(!this.enabled)return;const s=[`← ${e} ${t} ${n} (${a}ms)`],l=Vb(vl(i));if(l){const u=l.length>1e3?l.slice(0,1e3)+"... [truncated]":l;s.push(` Body: ${u}`)}n>=400?this.error(s.join(`
40
- `)):this.log(s.join(`
41
- `))}},ng="insforge_csrf_token";function vw(){if(typeof document>"u")return null;const e=document.cookie.split(";").find(t=>t.trim().startsWith(`${ng}=`));return e&&e.split("=")[1]||null}function bw(e){if(typeof document>"u")return;const t=10080*60,n=typeof window<"u"&&window.location.protocol==="https:"?"; Secure":"";document.cookie=`${ng}=${encodeURIComponent(e)}; path=/; max-age=${t}; SameSite=Lax${n}`}function kw(){if(typeof document>"u")return;const e=typeof window<"u"&&window.location.protocol==="https:"?"; Secure":"";document.cookie=`${ng}=; path=/; max-age=0; SameSite=Lax${e}`}var _w=class{constructor(){this.accessToken=null,this.user=null,this.onTokenChange=null}saveSession(e){const t=e.accessToken!==this.accessToken;this.accessToken=e.accessToken,this.user=e.user,t&&this.onTokenChange&&this.onTokenChange()}getSession(){return!this.accessToken||!this.user?null:{accessToken:this.accessToken,user:this.user}}getAccessToken(){return this.accessToken}setAccessToken(e){const t=e!==this.accessToken;this.accessToken=e,t&&this.onTokenChange&&this.onTokenChange()}getUser(){return this.user}setUser(e){this.user=e}clearSession(){const e=this.accessToken!==null;this.accessToken=null,this.user=null,e&&this.onTokenChange&&this.onTokenChange()}},R6=new Set([500,502,503,504]),L6=new Set(["GET","HEAD","PUT","DELETE","OPTIONS"]),D6=class{constructor(e,t,n){if(this.userToken=null,this.autoRefreshToken=!0,this.isRefreshing=!1,this.refreshPromise=null,this.refreshToken=null,this.baseUrl=e.baseUrl||"http://localhost:7130",this.autoRefreshToken=e.autoRefreshToken??!0,this.fetch=e.fetch||(globalThis.fetch?globalThis.fetch.bind(globalThis):void 0),this.anonKey=e.anonKey,this.defaultHeaders={...e.headers},this.tokenManager=t??new _w,this.logger=n||new yw(!1),this.timeout=e.timeout??3e4,this.retryCount=e.retryCount??3,this.retryDelay=e.retryDelay??500,!this.fetch)throw new Error("Fetch is not available. Please provide a fetch implementation in the config.")}buildUrl(e,t){const n=new URL(e,this.baseUrl);return t&&Object.entries(t).forEach(([a,i])=>{if(a==="select"){let s=i.replace(/\s+/g," ").trim();s=s.replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\(\s+/g,"(").replace(/\s+\)/g,")").replace(/,\s+(?=[^()]*\))/g,","),n.searchParams.append(a,s)}else n.searchParams.append(a,i)}),n.toString()}isRetryableStatus(e){return R6.has(e)}computeRetryDelay(e){const n=this.retryDelay*Math.pow(2,e-1)*(.85+Math.random()*.3);return Math.round(n)}async handleRequest(e,t,n={}){const{params:a,headers:i={},body:s,signal:l,...u}=n,h=this.buildUrl(t,a),f=Date.now(),g=L6.has(e.toUpperCase())||n.idempotent===!0?this.retryCount:0,v={...this.defaultHeaders},_=this.userToken||this.anonKey;_&&(v.Authorization=`Bearer ${_}`);let w;s!==void 0&&(typeof FormData<"u"&&s instanceof FormData?w=s:(e!=="GET"&&(v["Content-Type"]="application/json;charset=UTF-8"),w=JSON.stringify(s))),i instanceof Headers?i.forEach((P,D)=>{v[D]=P}):Array.isArray(i)?i.forEach(([P,D])=>{v[P]=D}):Object.assign(v,i),this.logger.logRequest(e,h,v,w);let S;for(let P=0;P<=g;P++){if(P>0){const E=this.computeRetryDelay(P);if(this.logger.warn(`Retry ${P}/${g} for ${e} ${h} in ${E}ms`),l?.aborted)throw l.reason;await new Promise((A,U)=>{const F=()=>{clearTimeout(j),U(l.reason)},j=setTimeout(()=>{l&&l.removeEventListener("abort",F),A()},E);l&&l.addEventListener("abort",F,{once:!0})})}let D,R;if((this.timeout>0||l)&&(D=new AbortController,this.timeout>0&&(R=setTimeout(()=>D.abort(),this.timeout)),l))if(l.aborted)D.abort(l.reason);else{const E=()=>D.abort(l.reason);l.addEventListener("abort",E,{once:!0}),D.signal.addEventListener("abort",()=>{l.removeEventListener("abort",E)},{once:!0})}try{const E=await this.fetch(h,{method:e,headers:v,body:w,...u,...D?{signal:D.signal}:{}});if(this.isRetryableStatus(E.status)&&P<g){R!==void 0&&clearTimeout(R),await E.body?.cancel(),S=new qe(`Server error: ${E.status} ${E.statusText}`,E.status,"SERVER_ERROR");continue}if(E.status===204){R!==void 0&&clearTimeout(R);return}let A;const U=E.headers.get("content-type");try{U?.includes("json")?A=await E.json():A=await E.text()}catch(F){throw R!==void 0&&clearTimeout(R),new qe(`Failed to parse response body: ${F?.message||"Unknown error"}`,E.status,E.ok?"PARSE_ERROR":"REQUEST_FAILED")}if(R!==void 0&&clearTimeout(R),!E.ok){if(this.logger.logResponse(e,h,E.status,Date.now()-f,A),A&&typeof A=="object"&&"error"in A){!A.statusCode&&!A.status&&(A.statusCode=E.status);const F=qe.fromApiError(A);throw Object.keys(A).forEach(j=>{j!=="error"&&j!=="message"&&j!=="statusCode"&&(F[j]=A[j])}),F}throw new qe(`Request failed: ${E.statusText}`,E.status,"REQUEST_FAILED")}return this.logger.logResponse(e,h,E.status,Date.now()-f,A),A}catch(E){if(R!==void 0&&clearTimeout(R),E?.name==="AbortError")throw D&&D.signal.aborted&&this.timeout>0&&!l?.aborted?new qe(`Request timed out after ${this.timeout}ms`,408,"REQUEST_TIMEOUT"):E;if(E instanceof qe)throw E;if(P<g){S=E;continue}throw new qe(`Network request failed: ${E?.message||"Unknown error"}`,0,"NETWORK_ERROR")}}throw S||new qe("Request failed after all retry attempts",0,"NETWORK_ERROR")}async request(e,t,n={}){try{return await this.handleRequest(e,t,{...n})}catch(a){if(a instanceof qe&&a.statusCode===401&&a.error==="INVALID_TOKEN"&&this.autoRefreshToken)try{const i=await this.handleTokenRefresh();return this.setAuthToken(i.accessToken),this.tokenManager.saveSession(i),i.csrfToken&&bw(i.csrfToken),i.refreshToken&&this.setRefreshToken(i.refreshToken),await this.handleRequest(e,t,{...n})}catch(i){throw this.tokenManager.clearSession(),this.userToken=null,this.refreshToken=null,kw(),i}throw a}}get(e,t){return this.request("GET",e,t)}post(e,t,n){return this.request("POST",e,{...n,body:t})}put(e,t,n){return this.request("PUT",e,{...n,body:t})}patch(e,t,n){return this.request("PATCH",e,{...n,body:t})}delete(e,t){return this.request("DELETE",e,t)}setAuthToken(e){this.userToken=e}setRefreshToken(e){this.refreshToken=e}getHeaders(){const e={...this.defaultHeaders},t=this.userToken||this.anonKey;return t&&(e.Authorization=`Bearer ${t}`),e}async handleTokenRefresh(){return this.isRefreshing?this.refreshPromise:(this.isRefreshing=!0,this.refreshPromise=(async()=>{try{const e=vw(),t=this.refreshToken?{refreshToken:this.refreshToken}:void 0;return await this.handleRequest("POST","/api/auth/sessions/current",{body:t,headers:e?{"X-CSRF-Token":e}:{},credentials:"include"})}finally{this.isRefreshing=!1,this.refreshPromise=null}})(),this.refreshPromise)}},Wp="insforge_pkce_verifier";function ww(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function I6(){const e=new Uint8Array(32);return crypto.getRandomValues(e),ww(e)}async function M6(e){const n=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",n);return ww(new Uint8Array(a))}function N6(e){typeof sessionStorage<"u"&&sessionStorage.setItem(Wp,e)}function O6(){if(typeof sessionStorage>"u")return null;const e=sessionStorage.getItem(Wp);return e&&sessionStorage.removeItem(Wp),e}function Hn(e,t){return e instanceof qe?{data:null,error:e}:{data:null,error:new qe(e instanceof Error?e.message:t,500,"UNEXPECTED_ERROR")}}function Hb(...e){if(typeof window>"u")return;const t=new URL(window.location.href);e.forEach(n=>t.searchParams.delete(n)),window.history.replaceState({},document.title,t.toString())}var j6=class{constructor(e,t,n={}){this.http=e,this.tokenManager=t,this.options=n,this.authCallbackHandled=this.detectAuthCallback()}isServerMode(){return!!this.options.isServerMode}saveSessionFromResponse(e){if(!e.accessToken||!e.user)return!1;const t={accessToken:e.accessToken,user:e.user};return!this.isServerMode()&&e.csrfToken&&bw(e.csrfToken),this.isServerMode()||this.tokenManager.saveSession(t),this.http.setAuthToken(e.accessToken),this.http.setRefreshToken(e.refreshToken??null),!0}async detectAuthCallback(){if(!(this.isServerMode()||typeof window>"u"))try{const e=new URLSearchParams(window.location.search),t=e.get("error");if(t){Hb("error"),console.debug("OAuth callback error:",t);return}const n=e.get("insforge_code");if(n){Hb("insforge_code");const{error:a}=await this.exchangeOAuthCode(n);a&&console.debug("OAuth code exchange failed:",a.message);return}}catch(e){console.debug("OAuth callback detection skipped:",e)}}async signUp(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/users?client_type=mobile":"/api/auth/users",e,{credentials:"include"});return t.accessToken&&t.user&&this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return Hn(t,"An unexpected error occurred during sign up")}}async signInWithPassword(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/sessions?client_type=mobile":"/api/auth/sessions",e,{credentials:"include"});return this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return Hn(t,"An unexpected error occurred during sign in")}}async signOut(){try{try{await this.http.post(this.isServerMode()?"/api/auth/logout?client_type=mobile":"/api/auth/logout",void 0,{credentials:"include"})}catch{}return this.tokenManager.clearSession(),this.http.setAuthToken(null),this.http.setRefreshToken(null),this.isServerMode()||kw(),{error:null}}catch{return{error:new qe("Failed to sign out",500,"SIGNOUT_ERROR")}}}async signInWithOAuth(e){try{const{provider:t,redirectTo:n,skipBrowserRedirect:a}=e,i=encodeURIComponent(t.toLowerCase()),s=I6(),l=await M6(s);N6(s);const u={code_challenge:l};n&&(u.redirect_uri=n);const f=Nd.options.includes(i)?`/api/auth/oauth/${i}`:`/api/auth/oauth/custom/${i}`,p=await this.http.get(f,{params:u});return!this.isServerMode()&&typeof window<"u"&&!a?(window.location.href=p.authUrl,{data:{},error:null}):{data:{url:p.authUrl,provider:i,codeVerifier:s},error:null}}catch(t){return t instanceof qe?{data:{},error:t}:{data:{},error:new qe("An unexpected error occurred during OAuth initialization",500,"UNEXPECTED_ERROR")}}}async exchangeOAuthCode(e,t){try{const n=t??O6();if(!n)return{data:null,error:new qe("PKCE code verifier not found. Ensure signInWithOAuth was called in the same browser session.",400,"PKCE_VERIFIER_MISSING")};const a={code:e,code_verifier:n},i=await this.http.post(this.isServerMode()?"/api/auth/oauth/exchange?client_type=mobile":"/api/auth/oauth/exchange",a,{credentials:"include"});return this.saveSessionFromResponse(i),{data:i,error:null}}catch(n){return Hn(n,"An unexpected error occurred during OAuth code exchange")}}async signInWithIdToken(e){try{const{provider:t,token:n}=e,a=await this.http.post("/api/auth/id-token?client_type=mobile",{provider:t,token:n},{credentials:"include"});return this.saveSessionFromResponse(a),a.refreshToken&&this.http.setRefreshToken(a.refreshToken),{data:a,error:null}}catch(t){return Hn(t,"An unexpected error occurred during ID token sign in")}}async refreshSession(e){try{if(this.isServerMode()&&!e?.refreshToken)return{data:null,error:new qe("refreshToken is required when refreshing session in server mode",400,"REFRESH_TOKEN_REQUIRED")};const t=this.isServerMode()?null:vw(),n=await this.http.post(this.isServerMode()?"/api/auth/refresh?client_type=mobile":"/api/auth/refresh",this.isServerMode()?{refresh_token:e?.refreshToken}:void 0,{headers:t?{"X-CSRF-Token":t}:{},credentials:"include"});return n.accessToken&&this.saveSessionFromResponse(n),{data:n,error:null}}catch(t){return Hn(t,"An unexpected error occurred during session refresh")}}async getCurrentUser(){await this.authCallbackHandled;try{if(this.isServerMode()){const t=this.tokenManager.getAccessToken();return t?(this.http.setAuthToken(t),{data:{user:(await this.http.get("/api/auth/sessions/current")).user??null},error:null}):{data:{user:null},error:null}}const e=this.tokenManager.getSession();if(e)return this.http.setAuthToken(e.accessToken),{data:{user:e.user},error:null};if(typeof window<"u"){const{data:t,error:n}=await this.refreshSession();if(n)return{data:{user:null},error:n};if(t?.accessToken)return{data:{user:t.user??null},error:null}}return{data:{user:null},error:null}}catch(e){return e instanceof qe?{data:{user:null},error:e}:{data:{user:null},error:new qe("An unexpected error occurred while getting user",500,"UNEXPECTED_ERROR")}}}async getProfile(e){try{return{data:await this.http.get(`/api/auth/profiles/${e}`),error:null}}catch(t){return Hn(t,"An unexpected error occurred while fetching user profile")}}async setProfile(e){try{const t=await this.http.patch("/api/auth/profiles/current",{profile:e}),n=this.tokenManager.getUser();return!this.isServerMode()&&n&&t.profile!==void 0&&this.tokenManager.setUser({...n,profile:t.profile}),{data:t,error:null}}catch(t){return Hn(t,"An unexpected error occurred while updating user profile")}}async resendVerificationEmail(e){try{return{data:await this.http.post("/api/auth/email/send-verification",e),error:null}}catch(t){return Hn(t,"An unexpected error occurred while sending verification email")}}async verifyEmail(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/email/verify?client_type=mobile":"/api/auth/email/verify",e,{credentials:"include"});return this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return Hn(t,"An unexpected error occurred while verifying email")}}async sendResetPasswordEmail(e){try{return{data:await this.http.post("/api/auth/email/send-reset-password",e),error:null}}catch(t){return Hn(t,"An unexpected error occurred while sending password reset email")}}async exchangeResetPasswordToken(e){try{return{data:await this.http.post("/api/auth/email/exchange-reset-password-token",e),error:null}}catch(t){return Hn(t,"An unexpected error occurred while verifying reset code")}}async resetPassword(e){try{return{data:await this.http.post("/api/auth/email/reset-password",e),error:null}}catch(t){return Hn(t,"An unexpected error occurred while resetting password")}}async getPublicAuthConfig(){try{return{data:await this.http.get("/api/auth/public-config"),error:null}}catch(e){return Hn(e,"An unexpected error occurred while fetching auth configuration")}}};function U6(e,t){return async(n,a)=>{const i=typeof n=="string"?n:n.toString(),s=new URL(i),l=s.pathname.slice(1),u=l.match(/^rpc\/(.+)$/),h=u?`/api/database/rpc/${u[1]}`:`/api/database/records/${l}`,f=`${e.baseUrl}${h}${s.search}`,p=t.getAccessToken(),g=e.getHeaders(),v=p||g.Authorization?.replace("Bearer ",""),_=new Headers(a?.headers);return v&&!_.has("Authorization")&&_.set("Authorization",`Bearer ${v}`),await fetch(f,{...a,headers:_})}}var z6=class{constructor(e,t){this.postgrest=new IE("http://dummy",{fetch:U6(e,t),headers:{}})}from(e){return this.postgrest.from(e)}rpc(e,t,n){return this.postgrest.rpc(e,t,n)}},B6=class{constructor(e,t){this.bucketName=e,this.http=t}async upload(e,t){try{const n=await this.http.post(`/api/storage/buckets/${this.bucketName}/upload-strategy`,{filename:e,contentType:t.type||"application/octet-stream",size:t.size});if(n.method==="presigned")return await this.uploadWithPresignedUrl(n,t);if(n.method==="direct"){const a=new FormData;return a.append("file",t),{data:await this.http.request("PUT",`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`,{body:a,headers:{}}),error:null}}throw new qe(`Unsupported upload method: ${n.method}`,500,"STORAGE_ERROR")}catch(n){return{data:null,error:n instanceof qe?n:new qe("Upload failed",500,"STORAGE_ERROR")}}}async uploadAuto(e){try{const t=e instanceof File?e.name:"file",n=await this.http.post(`/api/storage/buckets/${this.bucketName}/upload-strategy`,{filename:t,contentType:e.type||"application/octet-stream",size:e.size});if(n.method==="presigned")return await this.uploadWithPresignedUrl(n,e);if(n.method==="direct"){const a=new FormData;return a.append("file",e),{data:await this.http.request("POST",`/api/storage/buckets/${this.bucketName}/objects`,{body:a,headers:{}}),error:null}}throw new qe(`Unsupported upload method: ${n.method}`,500,"STORAGE_ERROR")}catch(t){return{data:null,error:t instanceof qe?t:new qe("Upload failed",500,"STORAGE_ERROR")}}}async uploadWithPresignedUrl(e,t){try{const n=new FormData;e.fields&&Object.entries(e.fields).forEach(([i,s])=>{n.append(i,s)}),n.append("file",t);const a=await fetch(e.uploadUrl,{method:"POST",body:n});if(!a.ok)throw new qe(`Upload to storage failed: ${a.statusText}`,a.status,"STORAGE_ERROR");return e.confirmRequired&&e.confirmUrl?{data:await this.http.post(e.confirmUrl,{size:t.size,contentType:t.type||"application/octet-stream"}),error:null}:{data:{key:e.key,bucket:this.bucketName,size:t.size,mimeType:t.type||"application/octet-stream",uploadedAt:new Date().toISOString(),url:this.getPublicUrl(e.key)},error:null}}catch(n){throw n instanceof qe?n:new qe("Presigned upload failed",500,"STORAGE_ERROR")}}async download(e){try{const t=await this.http.post(`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}/download-strategy`,{expiresIn:3600}),n=t.url,a={};t.method==="direct"&&Object.assign(a,this.http.getHeaders());const i=await fetch(n,{method:"GET",headers:a});if(!i.ok)try{const l=await i.json();throw qe.fromApiError(l)}catch{throw new qe(`Download failed: ${i.statusText}`,i.status,"STORAGE_ERROR")}return{data:await i.blob(),error:null}}catch(t){return{data:null,error:t instanceof qe?t:new qe("Download failed",500,"STORAGE_ERROR")}}}getPublicUrl(e){return`${this.http.baseUrl}/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`}async list(e){try{const t={};return e?.prefix&&(t.prefix=e.prefix),e?.search&&(t.search=e.search),e?.limit&&(t.limit=e.limit.toString()),e?.offset&&(t.offset=e.offset.toString()),{data:await this.http.get(`/api/storage/buckets/${this.bucketName}/objects`,{params:t}),error:null}}catch(t){return{data:null,error:t instanceof qe?t:new qe("List failed",500,"STORAGE_ERROR")}}}async remove(e){try{return{data:await this.http.delete(`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`),error:null}}catch(t){return{data:null,error:t instanceof qe?t:new qe("Delete failed",500,"STORAGE_ERROR")}}}},F6=class{constructor(e){this.http=e}from(e){return new B6(e,this.http)}},V6=class{constructor(e){this.http=e,this.chat=new H6(e),this.images=new G6(e),this.embeddings=new W6(e)}},H6=class{constructor(e){this.completions=new $6(e)}},$6=class{constructor(e){this.http=e}async create(e){const t={model:e.model,messages:e.messages,temperature:e.temperature,maxTokens:e.maxTokens,topP:e.topP,stream:e.stream,webSearch:e.webSearch,fileParser:e.fileParser,thinking:e.thinking,tools:e.tools,toolChoice:e.toolChoice,parallelToolCalls:e.parallelToolCalls};if(e.stream){const i=this.http.getHeaders();i["Content-Type"]="application/json";const s=await this.http.fetch(`${this.http.baseUrl}/api/ai/chat/completion`,{method:"POST",headers:i,body:JSON.stringify(t)});if(!s.ok){const l=await s.json();throw new Error(l.error||"Stream request failed")}return this.parseSSEStream(s,e.model)}const n=await this.http.post("/api/ai/chat/completion",t),a=n.text||"";return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:n.metadata?.model,choices:[{index:0,message:{role:"assistant",content:a,...n.tool_calls?.length&&{tool_calls:n.tool_calls},...n.annotations?.length&&{annotations:n.annotations}},finish_reason:n.tool_calls?.length?"tool_calls":"stop"}],usage:n.metadata?.usage||{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}async*parseSSEStream(e,t){const n=e.body.getReader(),a=new TextDecoder;let i="";try{for(;;){const{done:s,value:l}=await n.read();if(s)break;i+=a.decode(l,{stream:!0});const u=i.split(`
42
- `);i=u.pop()||"";for(const h of u)if(h.startsWith("data: ")){const f=h.slice(6).trim();if(f)try{const p=JSON.parse(f);if((p.chunk||p.content)&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{content:p.chunk||p.content},finish_reason:null}]}),p.tool_calls?.length&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{tool_calls:p.tool_calls},finish_reason:"tool_calls"}]}),p.done){n.releaseLock();return}}catch{console.warn("Failed to parse SSE data:",f)}}}}finally{n.releaseLock()}}},W6=class{constructor(e){this.http=e}async create(e){const t=await this.http.post("/api/ai/embeddings",e);return{object:t.object,data:t.data,model:t.metadata?.model,usage:t.metadata?.usage?{prompt_tokens:t.metadata.usage.promptTokens||0,total_tokens:t.metadata.usage.totalTokens||0}:{prompt_tokens:0,total_tokens:0}}}},G6=class{constructor(e){this.http=e}async generate(e){const t=await this.http.post("/api/ai/image/generation",e);let n=[];return t.images&&t.images.length>0?n=t.images.map(a=>({b64_json:a.imageUrl.replace(/^data:image\/\w+;base64,/,""),content:t.text})):t.text&&(n=[{content:t.text}]),{created:Math.floor(Date.now()/1e3),data:n,...t.metadata?.usage&&{usage:{total_tokens:t.metadata.usage.totalTokens||0,input_tokens:t.metadata.usage.promptTokens||0,output_tokens:t.metadata.usage.completionTokens||0}}}}},K6=class xw{constructor(t,n){this.http=t,this.functionsUrl=n||xw.deriveSubhostingUrl(t.baseUrl)}static deriveSubhostingUrl(t){try{const{hostname:n}=new URL(t);return n.endsWith(".insforge.app")?`https://${n.split(".")[0]}.functions.insforge.app`:void 0}catch{return}}async invoke(t,n={}){const{method:a="POST",body:i,headers:s={}}=n;if(this.functionsUrl)try{return{data:await this.http.request(a,`${this.functionsUrl}/${t}`,{body:i,headers:s}),error:null}}catch(l){if(l instanceof Error&&l.name==="AbortError")throw l;if(!(l instanceof qe&&l.statusCode===404))return{data:null,error:l instanceof qe?l:new qe(l instanceof Error?l.message:"Function invocation failed",500,"FUNCTION_ERROR")}}try{const l=`/functions/${t}`;return{data:await this.http.request(a,l,{body:i,headers:s}),error:null}}catch(l){if(l instanceof Error&&l.name==="AbortError")throw l;return{data:null,error:l instanceof qe?l:new qe(l instanceof Error?l.message:"Function invocation failed",500,"FUNCTION_ERROR")}}}},$b=1e4,q6=class{constructor(e,t,n){this.socket=null,this.connectPromise=null,this.subscribedChannels=new Set,this.eventListeners=new Map,this.baseUrl=e,this.tokenManager=t,this.anonKey=n,this.tokenManager.onTokenChange=()=>this.onTokenChange()}notifyListeners(e,t){const n=this.eventListeners.get(e);if(n)for(const a of n)try{a(t)}catch(i){console.error(`Error in ${e} callback:`,i)}}connect(){return this.socket?.connected?Promise.resolve():this.connectPromise?this.connectPromise:(this.connectPromise=new Promise((e,t)=>{const n=this.tokenManager.getAccessToken()??this.anonKey;this.socket=Nu(this.baseUrl,{transports:["websocket"],auth:n?{token:n}:void 0});let a=!0,i=null;const s=()=>{i&&(clearTimeout(i),i=null)};i=setTimeout(()=>{a&&(a=!1,this.connectPromise=null,this.socket?.disconnect(),this.socket=null,t(new Error(`Connection timeout after ${$b}ms`)))},$b),this.socket.on("connect",()=>{s();for(const l of this.subscribedChannels)this.socket.emit("realtime:subscribe",{channel:l});this.notifyListeners("connect"),a&&(a=!1,this.connectPromise=null,e())}),this.socket.on("connect_error",l=>{s(),this.notifyListeners("connect_error",l),a&&(a=!1,this.connectPromise=null,t(l))}),this.socket.on("disconnect",l=>{this.notifyListeners("disconnect",l)}),this.socket.on("realtime:error",l=>{this.notifyListeners("error",l)}),this.socket.onAny((l,u)=>{l!=="realtime:error"&&this.notifyListeners(l,u)})}),this.connectPromise)}disconnect(){this.socket&&(this.socket.disconnect(),this.socket=null),this.subscribedChannels.clear()}onTokenChange(){const e=this.tokenManager.getAccessToken()??this.anonKey;this.socket&&(this.socket.auth=e?{token:e}:{}),this.socket&&(this.socket.connected||this.connectPromise)&&(this.socket.disconnect(),this.socket.connect())}get isConnected(){return this.socket?.connected??!1}get connectionState(){return this.socket?this.socket.connected?"connected":"connecting":"disconnected"}get socketId(){return this.socket?.id}async subscribe(e){if(this.subscribedChannels.has(e))return{ok:!0,channel:e};if(!this.socket?.connected)try{await this.connect()}catch(t){const n=t instanceof Error?t.message:"Connection failed";return{ok:!1,channel:e,error:{code:"CONNECTION_FAILED",message:n}}}return new Promise(t=>{this.socket.emit("realtime:subscribe",{channel:e},n=>{n.ok&&this.subscribedChannels.add(e),t(n)})})}unsubscribe(e){this.subscribedChannels.delete(e),this.socket?.connected&&this.socket.emit("realtime:unsubscribe",{channel:e})}async publish(e,t,n){if(!this.socket?.connected)throw new Error("Not connected to realtime server. Call connect() first.");this.socket.emit("realtime:publish",{channel:e,event:t,payload:n})}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t)}off(e,t){const n=this.eventListeners.get(e);n&&(n.delete(t),n.size===0&&this.eventListeners.delete(e))}once(e,t){const n=a=>{this.off(e,n),t(a)};this.on(e,n)}getSubscribedChannels(){return Array.from(this.subscribedChannels)}},Y6=class{constructor(e){this.http=e}async send(e){try{return{data:await this.http.post("/api/email/send-raw",e),error:null}}catch(t){if(t instanceof Error&&t.name==="AbortError")throw t;return{data:null,error:t instanceof qe?t:new qe(t instanceof Error?t.message:"Email send failed",500,"EMAIL_ERROR")}}}},Z6=class{constructor(e={}){const t=new yw(e.debug);this.tokenManager=new _w,this.http=new D6(e,this.tokenManager,t),e.edgeFunctionToken&&(this.http.setAuthToken(e.edgeFunctionToken),this.tokenManager.setAccessToken(e.edgeFunctionToken)),this.auth=new j6(this.http,this.tokenManager,{isServerMode:e.isServerMode??!1}),this.database=new z6(this.http,this.tokenManager),this.storage=new F6(this.http),this.ai=new V6(this.http),this.functions=new K6(this.http,e.functionsUrl),this.realtime=new q6(this.http.baseUrl,this.tokenManager,e.anonKey),this.emails=new Y6(this.http)}getHttpClient(){return this.http}};function X6(e){return new Z6(e)}const ag={VITE_INSFORGE_ANON_KEY:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3OC0xMjM0LTU2NzgtOTBhYi1jZGVmMTIzNDU2NzgiLCJlbWFpbCI6ImFub25AaW5zZm9yZ2UuY29tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODExNDU5NDd9.T0auta_IrVIh0uXW1bob5QSnzvsnJmN28r5XkSGEuQY",VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"},Pw="https://srctyff5.us-east.insforge.app",J6="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3OC0xMjM0LTU2NzgtOTBhYi1jZGVmMTIzNDU2NzgiLCJlbWFpbCI6ImFub25AaW5zZm9yZ2UuY29tIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODExNDU5NDd9.T0auta_IrVIh0uXW1bob5QSnzvsnJmN28r5XkSGEuQY";function er(){const e=typeof import.meta<"u"?ag:void 0;return(e?.VITE_INSFORGE_BASE_URL||e?.VITE_TOKENTRACKER_BACKEND_BASE_URL||Pw).trim()}function Sw(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return window.location.origin;const t=typeof import.meta<"u"?ag:void 0;return(t?.VITE_INSFORGE_BASE_URL||t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||Pw).trim()}function ds(){const e=typeof import.meta<"u"?ag:void 0;return(e?.VITE_INSFORGE_ANON_KEY||e?.VITE_TOKENTRACKER_BACKEND_ANON_KEY||J6).trim()}function Gp(){return!!Sw()}let Vf=null;function Q6(){return Gp()?(Vf||(Vf=X6({baseUrl:Sw(),anonKey:ds()||void 0,autoRefreshToken:!0})),Vf):null}const eA="modulepreload",tA=function(e){return"/"+e},Wb={},xn=function(t,n,a){let i=Promise.resolve();if(n&&n.length>0){let h=function(f){return Promise.all(f.map(p=>Promise.resolve(p).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),u=l?.nonce||l?.getAttribute("nonce");i=h(n.map(f=>{if(f=tA(f),f in Wb)return;Wb[f]=!0;const p=f.endsWith(".css"),g=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${g}`))return;const v=document.createElement("link");if(v.rel=p?"stylesheet":eA,p||(v.as="script"),v.crossOrigin="",v.href=f,u&&v.setAttribute("nonce",u),document.head.appendChild(v),p)return new Promise((_,w)=>{v.addEventListener("load",_),v.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${f}`)))})}))}function s(l){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=l,window.dispatchEvent(u),!u.defaultPrevented)throw l}return i.then(l=>{for(const u of l||[])u.status==="rejected"&&s(u.reason);return t().catch(s)})},Cw="tokentracker_cloud_sync_enabled",nA="tokentracker_cloud_device_session_v1",rg="tokentracker_cloud_last_sync_ts";let ig=null;function og(){try{localStorage.removeItem(nA)}catch{}}function od(){if(typeof window>"u")return!1;const e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"||e==="::1"||e==="[::1]"}function sd(){try{const e=localStorage.getItem(Cw);return e===null||e===""?!1:e==="1"||e==="true"}catch{return!1}}function aA(e){try{localStorage.setItem(Cw,e?"1":"0")}catch{}Tw(e);try{typeof window<"u"&&window.dispatchEvent(new Event("tt.cloudSyncChanged"))}catch{}}async function Tw(e){if(od())try{const{getLocalApiAuthHeaders:t}=await xn(async()=>{const{getLocalApiAuthHeaders:a}=await Promise.resolve().then(()=>GA);return{getLocalApiAuthHeaders:a}},[]),n=await t();await fetch("/functions/tokentracker-cloud-sync-pref",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...n},cache:"no-store",body:JSON.stringify({enabled:e})})}catch{}}function rA(){Tw(sd())}function Ew(){return og(),ig}function iA(e){ig=e,og()}function Aw(){ig=null;try{localStorage.removeItem(rg)}catch{}og()}function oA(){try{const e=Number(localStorage.getItem(rg));return Number.isFinite(e)?e:0}catch{return 0}}function Rw(e){try{localStorage.setItem(rg,String(e))}catch{}}function ni(e){if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null}function sA(e){const t=ni(e);if(!t)return null;const n=t.split(".");if(n.length<2)return null;const a=n[1];try{const i=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),s=typeof atob=="function"?atob(i):Buffer.from(i,"base64").toString("utf8"),u=JSON.parse(s)?.exp;return typeof u!="number"||!Number.isFinite(u)||u<=0?null:Math.floor(u*1e3)}catch{return null}}function sg(e){const t=ni(e);if(!t)return!1;const n=t.split(".");if(n.length!==3)return!1;try{for(let a=0;a<2;a++){const i=n[a];if(!/^[A-Za-z0-9_-]+$/.test(i))return!1;const s=i.replace(/-/g,"+").replace(/_/g,"/").padEnd(i.length+(4-i.length%4)%4,"="),l=typeof atob=="function"?atob(s):Buffer.from(s,"base64").toString("utf8");a===1&&JSON.parse(l)}return!0}catch{return!1}}function lA(e,t=3e4){const n=sA(e);return n?n<=Date.now()+Math.max(0,Number(t)||0):!1}async function cA(e){if(!e)return null;if(typeof e=="string")return ni(e);if(typeof e=="function")try{const t=await e();return ni(t)}catch{return null}if(typeof e=="object"){if(typeof e.getAccessToken=="function"){try{const t=await e.getAccessToken(),n=ni(t);if(n)return n}catch{}return ni(e.accessToken)}return null}return ni(e)}async function zU(e,t={}){const n=Math.max(1,Math.min(12,Math.floor(Number(t.maxAttempts)||8))),a=Math.max(20,Math.floor(Number(t.baseDelayMs)||50));for(let i=0;i<n;i++){const s=await cA(e);if(s)return s;i<n-1&&await new Promise(l=>setTimeout(l,a*(i+1)))}return null}function BU(e){return typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")||typeof e=="function"||e&&typeof e=="object"&&typeof e.getAccessToken=="function"?!0:!!ni(e)}function FU(){if(typeof Intl>"u"||!Intl.DateTimeFormat)return null;try{return Intl.DateTimeFormat().resolvedOptions().timeZone||null}catch{return null}}function VU(e=new Date){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return 0;const n=t.getTimezoneOffset();return Number.isFinite(n)?-n:0}function Lw(e){if(!Number.isFinite(e)||e===0)return"UTC";const t=e>=0?"+":"-",n=Math.abs(e),a=String(Math.floor(n/60)).padStart(2,"0"),i=String(n%60).padStart(2,"0");return`UTC${t}${a}:${i}`}function HU({timeZone:e,offsetMinutes:t}={}){const n=Lw(t);return e&&e!=="UTC"?`${e} (${n})`:n}function $U({timeZone:e,offsetMinutes:t}={}){return Number.isFinite(t)?Lw(t):e||"UTC"}function WU({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return"";if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const l=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((p,g)=>(g.type&&g.value&&(p[g.type]=g.value),p),{}),u=l.year,h=l.month,f=l.day;if(u&&h&&f)return`${u}-${h}-${f}`}catch{}if(typeof t=="number"&&Number.isFinite(t)){const i=new Date(a.getTime()+t*6e4);return dA(i)}return hA(a)}function uA({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return null;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const l=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((p,g)=>(g.type&&g.value&&(p[g.type]=g.value),p),{}),u=Number(l.year),h=Number(l.month),f=Number(l.day);if(Number.isFinite(u)&&Number.isFinite(h)&&Number.isFinite(f))return{year:u,month:h,day:f}}catch{}if(typeof t=="number"&&Number.isFinite(t)){const i=new Date(a.getTime()+t*6e4);return{year:i.getUTCFullYear(),month:i.getUTCMonth()+1,day:i.getUTCDate()}}return{year:a.getFullYear(),month:a.getMonth()+1,day:a.getDate()}}function GU({timeZone:e,offsetMinutes:t}={}){return e?`tz:${e}`:typeof t=="number"&&Number.isFinite(t)?`offset:${Math.trunc(t)}`:"utc"}function dA(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),a=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${a}`}function hA(e){const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${a}`}function Ct(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())).toISOString().slice(0,10)}function rr(e){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return"";const n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${a}-${i}`}function fA(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const a=Number(n[0]),i=Number(n[1])-1,s=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(i)||!Number.isFinite(s))return null;const l=new Date(Date.UTC(a,i,s));return Number.isFinite(l.getTime())&&Ct(l)===t?l:null}function pA(e){if(!e)return"";const t=e.year,n=String(e.month).padStart(2,"0"),a=String(e.day).padStart(2,"0");return!t||!n||!a?"":`${t}-${n}-${a}`}function mA(e,{timeZone:t,offsetMinutes:n,now:a}={}){const i=a instanceof Date&&Number.isFinite(a.getTime())?a:new Date,s=uA({timeZone:t,offsetMinutes:n,date:i});if(!s){const h=rr(new Date);return{from:h,to:h}}const l=pA(s),u=fA(l);if(!u)return{from:l,to:l};if(e==="day")return{from:l,to:l};if(e==="week"){const h=new Date(u),p=(h.getUTCDay()+6)%7;h.setUTCDate(h.getUTCDate()-p);const g=new Date(h);return g.setUTCDate(g.getUTCDate()+6),{from:Ct(h),to:Ct(g)}}if(e==="month"){const h=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth(),1)),f=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()+1,0));return{from:Ct(h),to:Ct(f)}}if(e==="total"){const h=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()-23,1));return{from:Ct(h),to:l}}return mA("week")}function Dw(){return typeof window>"u"?null:window.localStorage||null}function Iw(){return typeof navigator>"u"?null:navigator.clipboard||null}function gA(){return typeof window>"u"?null:window.ClipboardItem||null}function bl(e,{storage:t}={}){const n=t??Dw();if(!n||typeof n.getItem!="function")return null;try{return n.getItem(e)}catch{return null}}function kl(e,t,{storage:n}={}){const a=n??Dw();if(!a||typeof a.setItem!="function")return!1;try{return a.setItem(e,t),!0}catch{return!1}}async function KU(e,{clipboard:t}={}){const n=t??Iw();if(!n||typeof n.writeText!="function")return!1;try{return await n.writeText(e),!0}catch{return!1}}async function qU(e,{clipboard:t}={}){const n=t??Iw(),a=gA();if(!e||!n||typeof n.write!="function"||!a)return!1;try{const i=e.type||"image/png",s=e.type&&e.type!==i?e.slice(0,e.size,i):e.type?e:e.slice(0,e.size,i),l=new a({[i]:s});return await n.write([l]),!0}catch{return!1}}const Dl="USD",lg=["USD","EUR","GBP","CNY","JPY","HKD"],Mw={USD:{symbol:"$",labelKey:"settings.appearance.currency.opt.usd"},EUR:{symbol:"€",labelKey:"settings.appearance.currency.opt.eur"},GBP:{symbol:"£",labelKey:"settings.appearance.currency.opt.gbp"},CNY:{symbol:"¥",labelKey:"settings.appearance.currency.opt.cny"},JPY:{symbol:"¥",labelKey:"settings.appearance.currency.opt.jpy"},HKD:{symbol:"HK$",labelKey:"settings.appearance.currency.opt.hkd"}},cg={USD:1,EUR:.92,GBP:.79,CNY:7.2,JPY:155,HKD:7.8},Nw="tokentracker-currency",Ow="tokentracker-exchange-rates",jw="tokentracker-exchange-rate-source",Uw="tokentracker-exchange-rate-fetched-at";function ld(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function ug(e){if(typeof e!="string")return Dl;const t=e.trim().toUpperCase();return lg.includes(t)?t:Dl}function Ou(e){const t=typeof e=="string"?e.trim().toUpperCase():Dl;return Mw[t]?.symbol??"$"}function YU(){return lg.map(e=>({code:e,...Mw[e]}))}function yA(){return ug(bl(Nw))}function vA(e){return kl(Nw,ug(e))}function zw(e){return e==="fetched"?"fetched":"default"}function bA(e){if(e==null)return null;try{const t=JSON.parse(String(e));if(!t||typeof t!="object")return null;const n={};for(const[a,i]of Object.entries(t)){const s=Number(i);Number.isFinite(s)&&s>0&&(n[a.toUpperCase()]=s)}return n}catch{return null}}function kA(){const e=bA(bl(Ow)),t=bl(Uw),n=t==null?NaN:Number(t),a=Number.isFinite(n)&&n>0?n:null,i=bl(jw),s=zw(i);return e&&Object.keys(e).length>0?{rates:{USD:1,...e},source:s,fetchedAt:a}:{rates:{...cg},source:"default",fetchedAt:null}}function _A(e){const{rates:t,source:n,fetchedAt:a}=e;if(!t||typeof t!="object")return!1;const i=kl(Ow,JSON.stringify(t)),s=kl(jw,zw(n)),l=a?kl(Uw,String(a)):!0;return i&&s&&l}function Hf(e,t){if(t===Dl)return 1;const n=e?.[t];if(ld(n))return n;const a=cg[t];return ld(a)?a:1}function ZU(e){if(e==null)return"-";try{if(typeof e=="bigint")return new Intl.NumberFormat().format(e);if(typeof e=="number")return new Intl.NumberFormat().format(e);const t=String(e).trim();return/^[0-9]+$/.test(t)?new Intl.NumberFormat().format(BigInt(t)):t}catch{return String(e)}}function XU(e,{thousandSuffix:t="K",millionSuffix:n="M",billionSuffix:a="B",decimals:i=1}={}){const s=Number(String(e));if(!Number.isFinite(s))return"-";const l=s<0?"-":"",u=Math.abs(s),h=Math.max(0,Math.min(6,Math.floor(i)));if(u<1e3)return`${l}${String(u)}`;const f=(_,w)=>{const S=_.toFixed(h),P=Number(S).toString();return`${l}${P}${w}`},p=(_,w,S)=>{const P=_.toFixed(h),D=Number(P);return S&&D>=1e3?f(D/1e3,S):`${l}${D.toString()}${w}`};if(u>=1e9)return f(u/1e9,a);if(u>=1e6)return p(u/1e6,n,a);const g=u/1e3,v=Number(g.toFixed(h));return v>=1e3?f(v/1e3,n):f(v,t)}function Bw(e){const t=Number(String(e));return Number.isFinite(t)?t:null}function JU(e,t={}){const{decimals:n=2,currency:a="USD",rate:i=1}=t;if(e==null||typeof e=="string"&&e.trim()==="")return"-";let s;if(typeof e=="number")s=e;else if(typeof e=="bigint")s=Number(e);else{const P=String(e).trim(),D=Number(P);if(!Number.isFinite(D))return P;s=D}if(!Number.isFinite(s))return String(e);const l=Ou(a);a!=="USD"&&typeof i=="number"&&Number.isFinite(i)&&i>0&&(s=s*i);const h=s.toFixed(6).match(/^(-?\d+)(?:\.(\d+))?$/);if(!h)return`${l}${String(s)}`;const f=h[1],p=h[2]||"";let g=f;try{g=new Intl.NumberFormat().format(BigInt(f))}catch{g=f}const v=Math.max(0,Math.min(6,Math.floor(n))),_=v?p.slice(0,v).padEnd(v,"0"):"",w=f.startsWith("-")?"-":"",S=v?`${g.replace("-","")}.${_}`:g.replace("-","");return`${w}${l}${S}`}function cd(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,i=Number(t[3]),s=new Date(Date.UTC(n,a,i));return Number.isFinite(s.getTime())&&Ct(s)===e.trim()?s:null}function ji(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function wA(e,t){const n=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate());return Math.floor(n/864e5)}function $f(e,t){if(!Array.isArray(e)||e.length===0)return 0;const n=e.length,a=(n-1)*t,i=Math.floor(a),s=a-i,l=e[i]??e[n-1],u=e[Math.min(n-1,i+1)]??e[n-1];return Math.round(l+(u-l)*s)}function xA(e){return e<=0?0:e>=4?4:e}function Fw({weeks:e=52,now:t,weekStartsOn:n="sun"}={}){const a=t instanceof Date&&Number.isFinite(t.getTime())?t:new Date,i=rr(a),s=cd(i)||new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate())),l=n==="mon"?1:0,u=s.getUTCDay(),h=ji(s,-((u-l+7)%7)),f=ji(h,-7*(Math.max(1,e)-1));return{from:Ct(f),to:i}}function PA({dailyRows:e,weeks:t=52,to:n,weekStartsOn:a="sun"}={}){const i=cd(n)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),{from:s}=Fw({weeks:t,now:i,weekStartsOn:a}),l=cd(s)||ji(i,-(t*7-1)),u=(()=>{const A=(l.getUTCDay()-(a==="mon"?1:0)+7)%7;return ji(l,-A)})(),h=new Map;for(const R of Array.isArray(e)?e:[]){const E=typeof R?.day=="string"?R.day:null;if(!E)continue;const A=Bw(R?.billable_total_tokens??R?.total_tokens)??0;h.set(E,{value:Math.max(0,A),models:R?.models||null})}const f=wA(u,i)+1,p=Math.ceil(f/7),g=[];for(let R=0;R<f;R++){const E=ji(u,R),A=Ct(E),U=h.get(A),F=U?U.value:0;F>0&&g.push(F)}g.sort((R,E)=>R-E);const v=$f(g,.5),_=$f(g,.75),w=$f(g,.9);function S(R){return!R||R<=0?0:R<=v?1:R<=_?2:R<=w?3:4}const P=[];for(let R=0;R<p;R++){const E=[];for(let A=0;A<7;A++){const U=R*7+A,F=ji(u,U);if(F.getTime()>i.getTime()){E.push(null);continue}const j=Ct(F),C=h.get(j),K=C?C.value:0,Y=C?C.models:null;E.push({day:j,value:K,level:xA(S(K)),models:Y})}P.push(E)}const D=P.length>t?P.slice(P.length-t):P;return{from:s,to:Ct(i),weeks:D,thresholds:{t1:v,t2:_,t3:w}}}function SA({dailyRows:e,to:t}={}){const n=cd(t)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),a=new Map;for(const s of Array.isArray(e)?e:[]){const l=typeof s?.day=="string"?s.day:null;if(!l)continue;const u=Bw(s?.billable_total_tokens??s?.total_tokens)??0;a.set(l,Math.max(0,u))}let i=0;for(let s=0;s<370;s++){const l=Ct(ji(n,-s));if((a.get(l)??0)>0){i+=1;continue}break}return i}const Ud={},Vw="tokentracker",CA=["tokentracker/tokentracker","spacedriveapp/spacedrive","acme/alpha","acme/beta","neo/nebula","signal/flux","matrix/terminal","orbit/atlas","lumen/core","delta/horizon"],Gb=["NEO","TRINITY","MORPHEUS","ORACLE","CYPHER","SWITCH","APOC","TANK","SMITH","SERAPH","NIOBE","MOUSE","DOZER","LINK","BLADE"];function Pn(){if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock")||"").toLowerCase();if(t==="0"||t==="false"||t==="off"||t==="no")return!1;if(t==="1"||t==="true"||t==="on"||t==="yes")return!0}if(typeof import.meta<"u"&&Ud){const e="".toLowerCase();if(e==="1"||e==="true")return!0}return!1}function TA(){if(typeof import.meta<"u"&&Ud){const e="".trim();if(e)return e;const t="".trim();if(t)return t}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_now")||"").trim();if(t)return t;const n=String(e.get("mock_today")||"").trim();if(n)return n}return""}function EA(e){if(!e)return null;const t=String(e).trim();if(!t)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(t)){const[a,i,s]=t.split("-").map(Number);if(!Number.isFinite(a)||!Number.isFinite(i)||!Number.isFinite(s))return null;const l=new Date(a,i-1,s,12,0,0);return Number.isFinite(l.getTime())?l:null}const n=new Date(t);return Number.isFinite(n.getTime())?n:null}function QU(){return Pn()?EA(TA()):null}function AA(){if(typeof import.meta<"u"&&Ud){const e="".trim();if(e)return e}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_seed")||"").trim();if(t)return t}return Vw}function RA(){if(typeof import.meta<"u"&&Ud){const e="".trim(),t=Number(e);if(Number.isFinite(t)&&t>0)return Math.floor(t)}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_missing")||"").trim(),n=Number(t);if(Number.isFinite(n)&&n>0)return Math.floor(n)}return 0}function Wl(e){return(e==null?AA():String(e)).trim()||Vw}function Gl(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function _n(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,i=Number(t[3]),s=new Date(Date.UTC(n,a,i));return Number.isFinite(s.getTime())&&Ct(s)===e.trim()?s:null}function Il(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Hw(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1))}function LA(e){return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}`}function ns({from:e,to:t,seed:n}){const a=_n(rr(new Date))||new Date,i=_n(e)||a,s=_n(t)||i,l=[],u=Wl(n),h=Math.floor((Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate())-Date.UTC(i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()))/864e5)+1;for(let f=0;f<h;f+=1){const p=Il(i,f),g=Ct(p),v=Gl(`${u}:${g}`),_=v%1e3/1e3,w=.6+.4*Math.sin(f/6*Math.PI*.5),S=p.getUTCDay()===0||p.getUTCDay()===6?.65:1,P=18e3+Math.round(12e3*_),D=Math.max(0,Math.round(P*w*S)),R=Math.round(D*.46),E=Math.round(D*.34),A=Math.round(D*.14),U=Math.max(0,D-R-E-A),F={};if(D>0){const j=["gpt-4o","claude-3.5-sonnet","gemini-1.5-pro","deepseek-coder"],C=1+v%3;let K=D;for(let Y=0;Y<C;Y++){const ce=j[(v+Y)%j.length];if(Y===C-1)F[ce]=K;else{const re=Math.round(K*(.3+.4*((v+Y*17)%10)/10));F[ce]=re,K-=re}}}l.push({day:g,total_tokens:D,billable_total_tokens:D,input_tokens:R,output_tokens:E,cached_input_tokens:A,reasoning_output_tokens:U,conversation_count:1+v%5,models:F})}return l}function DA({day:e,seed:t}){const n=_n(e)||_n(rr(new Date))||new Date,a=Ct(n),i=Wl(t),s=Array.from({length:48},(u,h)=>{const f=Math.floor(h/2),p=h%2===0?0:30,g=Gl(`${i}:${a}:${f}:${p}`),v=g%1e3/1e3,_=(f+p/60)/24,w=.4+.6*Math.sin(_*Math.PI*2),S=900+Math.round(700*v),P=Math.max(0,Math.round(S*w)),D=Math.round(P*.46),R=Math.round(P*.34),E=Math.round(P*.14),A=Math.max(0,P-D-R-E),U={};if(P>0){const F=["gpt-4o","claude-3.5-sonnet","gemini-1.5-pro","deepseek-coder"],j=1+g%2;let C=P;for(let K=0;K<j;K++){const Y=F[(g+K)%F.length];if(K===j-1)U[Y]=C;else{const ce=Math.round(C*(.3+.4*((g+K*17)%10)/10));U[Y]=ce,C-=ce}}}return{hour:`${a}T${String(f).padStart(2,"0")}:${String(p).padStart(2,"0")}:00`,total_tokens:P,billable_total_tokens:P,input_tokens:D,output_tokens:R,cached_input_tokens:E,reasoning_output_tokens:A,models:U}}),l=Math.max(0,Math.min(48,RA()));if(l>0){const u=Date.now(),h=s.map((g,v)=>{const _=Date.parse(g.hour);return Number.isFinite(_)&&_<=u?{index:v,ts:_}:null}).filter(Boolean),f=Math.max(0,h.length-l),p=h.slice(f);for(const g of p){const v=s[g.index];v&&(s[g.index]={...v,missing:!0})}}return s}function IA({months:e=24,to:t,seed:n}){const a=_n(t)||_n(rr(new Date))||new Date,i=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),s=Wl(n),l=[];for(let u=e-1;u>=0;u-=1){const h=Hw(i,-u),f=LA(h),p=Gl(`${s}:${f}`),g=p%1e3/1e3,v=.7+.3*Math.sin(l.length/6*Math.PI*.5),_=36e4+Math.round(2e5*g),w=Math.max(0,Math.round(_*v)),S=Math.round(w*.46),P=Math.round(w*.34),D=Math.round(w*.14),R=Math.max(0,w-S-P-D),E={};if(w>0){const A=["gpt-4o","claude-3.5-sonnet","gemini-1.5-pro","deepseek-coder"],U=1+p%3;let F=w;for(let j=0;j<U;j++){const C=A[(p+j)%A.length];if(j===U-1)E[C]=F;else{const K=Math.round(F*(.3+.4*((p+j*17)%10)/10));E[C]=K,F-=K}}}l.push({month:f,total_tokens:w,billable_total_tokens:w,input_tokens:S,output_tokens:P,cached_input_tokens:D,reasoning_output_tokens:R,models:E})}return l}function dg(e){return e.reduce((t,n)=>(t.total_tokens+=Number(n.total_tokens||0),t.billable_total_tokens+=Number(n.billable_total_tokens||n.total_tokens||0),t.input_tokens+=Number(n.input_tokens||0),t.output_tokens+=Number(n.output_tokens||0),t.cached_input_tokens+=Number(n.cached_input_tokens||0),t.reasoning_output_tokens+=Number(n.reasoning_output_tokens||0),t.conversation_count+=Number(n.conversation_count||0),t),{total_tokens:0,billable_total_tokens:0,input_tokens:0,output_tokens:0,cached_input_tokens:0,reasoning_output_tokens:0,conversation_count:0})}function MA(e,t=1.75){const n=Number(e||0);return!Number.isFinite(n)||n<=0?"0.000000":(n*t/1e6).toFixed(6)}function Kb(e,t){const n=Number.isFinite(t)?t:0;return{total_tokens:Math.max(0,Math.round(e.total_tokens*n)),billable_total_tokens:Math.max(0,Math.round((e.billable_total_tokens??e.total_tokens)*n)),input_tokens:Math.max(0,Math.round(e.input_tokens*n)),output_tokens:Math.max(0,Math.round(e.output_tokens*n)),cached_input_tokens:Math.max(0,Math.round(e.cached_input_tokens*n)),reasoning_output_tokens:Math.max(0,Math.round(e.reasoning_output_tokens*n))}}function Kp(e){return{...e,total_cost_usd:MA(e.total_tokens)}}function NA({from:e,to:t,seed:n}={}){const a=ns({from:e,to:t,seed:n});return{from:e,to:t,data:a}}function OA({day:e,seed:t}={}){const n=_n(e)||new Date,a=Ct(n),i=DA({day:a,seed:t});return{day:a,data:i}}function jA({months:e=24,to:t,seed:n}={}){const a=_n(t)||_n(rr(new Date))||new Date,i=Ct(a),s=IA({months:e,to:i,seed:n}),l=Hw(new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),-(e-1));return{from:Ct(l),to:i,months:e,data:s}}function UA({from:e,to:t,seed:n,rolling:a=!0}={}){const i=ns({from:e,to:t,seed:n}),s=dg(i),l=Kp(s),u=a?zA({to:t,seed:n}):null;return{from:e,to:t,days:i.length,totals:l,...u?{rolling:u}:{}}}function zA({to:e,seed:t}={}){const n=_n(e)||_n(rr(new Date))||new Date,a=Ct(n),i=Ct(Il(n,-6)),s=Ct(Il(n,-29)),l=ns({from:i,to:a,seed:t}),u=ns({from:s,to:a,seed:t});return{last_7d:qb({rows:l,from:i,to:a}),last_30d:qb({rows:u,from:s,to:a})}}function qb({rows:e,from:t,to:n}={}){const a=dg(e||[]),i=(e||[]).filter(l=>Number(l.billable_total_tokens??l.total_tokens)>0).length,s=i>0?Math.floor(a.billable_total_tokens/i):0;return{from:t,to:n,totals:{billable_total_tokens:a.billable_total_tokens,conversation_count:a.conversation_count},active_days:i,avg_per_active_day:s}}function BA({seed:e,limit:t=3}={}){const n=Wl(e),a=CA.map((i,s)=>{const u=12e4+Gl(`${n}:${i}`)%9e5,h=s%4*4200,f=Math.max(0,u+h),p=Math.max(0,Math.round(f*.96));return{project_key:i,project_ref:`https://github.com/${i}`,total_tokens:String(f),billable_total_tokens:String(p)}}).sort((i,s)=>Number(s.billable_total_tokens)-Number(i.billable_total_tokens)).slice(0,Math.max(1,Math.min(10,Math.floor(Number(t)||3))));return{generated_at:new Date().toISOString(),entries:a}}function FA(e){const t=_n(rr(new Date))||new Date,n=String(e).trim().toLowerCase()||"week";if(n==="total")return{from:"1970-01-01",to:"9999-12-31"};if(n==="month"){const l=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)),u=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,0));return{from:Ct(l),to:Ct(u)}}const a=t.getUTCDay(),i=Ct(Il(t,-a)),s=Ct(Il(t,-a+6));return{from:i,to:s}}function $w({seed:e,period:t,metric:n,limit:a=20,offset:i=0}={}){const s=Wl(e),l=Math.max(1,Math.min(100,Math.floor(Number(a)||20))),u=Math.max(0,Math.min(1e4,Math.floor(Number(i)||0))),h=String(n||"all").trim().toLowerCase()||"all",f=String(t||"week").trim().toLowerCase()||"week",p=f==="month"||f==="total"||f==="week"?f:"week",{from:g,to:v}=FA(p),_=250,w=_>0?Math.ceil(_/l):0,S=Math.floor(u/l)+1,P=Array.from({length:_},(j,C)=>{const K=C+1,Y=`00000000-0000-0000-0000-${String(K).padStart(12,"0")}`,ce=Gb[K%Gb.length],fe=18e4+Gl(`${s}:${ce}:${K}`)%9e5,de=Math.max(0,fe+K*1200),he=Math.floor(de*.28),oe=Math.floor(de*.18),X=Math.floor(de*.1),Z=Math.floor(de*.1),J=Math.floor(de*.08),V=Math.floor(de*.03),M=Math.floor(de*.02),G=Math.floor(de*.04),ye=Math.floor(de*.03),me=Math.max(0,de-he-oe-X-Z-J-V-M-G-ye),pe=K%7!==0;return{id:K,user_id:Y,is_public:pe,is_me:!1,display_name:pe?ce:"Anonymous",avatar_url:null,gpt_tokens:he,claude_tokens:oe,gemini_tokens:X,cursor_tokens:Z,opencode_tokens:J,openclaw_tokens:me,hermes_tokens:V,kiro_tokens:M,copilot_tokens:G,kimi_tokens:ye,other_tokens:0,total_tokens:de}}),D=Math.max(0,Math.min(_-1,Math.floor(_*.8)));P[D]&&(P[D].is_me=!0);const R=h==="gpt"||h==="codex"?"gpt_tokens":h==="claude"?"claude_tokens":h==="gemini"?"gemini_tokens":h==="cursor"?"cursor_tokens":h==="opencode"?"opencode_tokens":h==="openclaw"?"openclaw_tokens":h==="hermes"?"hermes_tokens":h==="kiro"?"kiro_tokens":h==="copilot"?"copilot_tokens":h==="kimi"?"kimi_tokens":"total_tokens",E=P.slice().sort((j,C)=>Number(C[R])-Number(j[R])||j.id-C.id).map((j,C)=>({user_id:j.is_public?j.user_id:null,rank:C+1,is_me:!!j.is_me,display_name:j.display_name,avatar_url:j.avatar_url,gpt_tokens:String(j.gpt_tokens),claude_tokens:String(j.claude_tokens),gemini_tokens:String(j.gemini_tokens),cursor_tokens:String(j.cursor_tokens),opencode_tokens:String(j.opencode_tokens),openclaw_tokens:String(j.openclaw_tokens),hermes_tokens:String(j.hermes_tokens??0),kiro_tokens:String(j.kiro_tokens??0),copilot_tokens:String(j.copilot_tokens??0),kimi_tokens:String(j.kimi_tokens??0),other_tokens:String(j.other_tokens??0),total_tokens:String(j.total_tokens),is_public:!!j.is_public})),A=E.find(j=>j?.is_me)||null,U=A?{rank:A.rank,gpt_tokens:A.gpt_tokens,claude_tokens:A.claude_tokens,gemini_tokens:A.gemini_tokens,cursor_tokens:A.cursor_tokens,opencode_tokens:A.opencode_tokens,openclaw_tokens:A.openclaw_tokens,hermes_tokens:A.hermes_tokens,kiro_tokens:A.kiro_tokens,copilot_tokens:A.copilot_tokens,kimi_tokens:A.kimi_tokens,other_tokens:A.other_tokens,total_tokens:A.total_tokens}:{rank:null,gpt_tokens:"0",claude_tokens:"0",gemini_tokens:"0",cursor_tokens:"0",opencode_tokens:"0",openclaw_tokens:"0",hermes_tokens:"0",kiro_tokens:"0",copilot_tokens:"0",kimi_tokens:"0",other_tokens:"0",total_tokens:"0"},F=E.slice(u,u+l);return{period:p,metric:h,from:g,to:v,generated_at:new Date().toISOString(),page:S,limit:l,offset:u,total_entries:_,total_pages:w,entries:F,me:U}}function VA({weeks:e=52,to:t,weekStartsOn:n="sun",seed:a}={}){const i=Fw({weeks:e,now:_n(t)||_n(rr(new Date))||new Date,weekStartsOn:n}),s=ns({from:i.from,to:i.to,seed:a});return{...PA({dailyRows:s,weeks:e,to:i.to,weekStartsOn:n}),week_starts_on:n,active_days:s.filter(u=>Number(u.billable_total_tokens??u.total_tokens)>0).length,streak_days:SA({dailyRows:s,to:i.to})}}function HA({from:e,to:t,seed:n}={}){const a=ns({from:e,to:t,seed:n}),i=dg(a),l=[{source:"codex",weight:.7,models:[{model:"gpt-5.2-codex",model_id:"gpt-5.2-codex",weight:.2},{model:"unknown",model_id:"unknown",weight:.8}]},{source:"claude",weight:.2,models:[{model:"claude-3.5",model_id:"claude-3.5",weight:.3},{model:"unknown",model_id:"unknown",weight:.7}]},{source:"every-code",weight:.1,models:[{model:"unknown",model_id:"unknown",weight:1}]}].map(u=>{const h=Kb(i,u.weight),f=u.models.map(p=>{const g=Kb(h,p.weight);return{model:p.model,model_id:p.model_id||p.model,totals:Kp(g)}});return{source:u.source,totals:Kp(h),models:f}});return{from:e,to:t,days:a.length,sources:l,pricing:{model:"mock",pricing_mode:"add",source:"mock",effective_from:rr(new Date),rates_per_million_usd:{input:"1.750000",cached_input:"0.175000",output:"14.000000",reasoning_output:"14.000000"}}}}function $A({from:e,to:t,source:n="claude"}={}){if(n==="codex")return{from:e,to:t,source:"codex",scope:"supported",totals:{input_tokens:142e4,cached_input_tokens:588e4,cache_creation_input_tokens:92e4,output_tokens:256e4,reasoning_output_tokens:61e4,total_tokens:1078e4},session_count:188,message_count:5436,tool_calls_breakdown:{categories:[{name:"Execution",calls:742,totals:{input_tokens:32e4,cached_input_tokens:104e4,cache_creation_input_tokens:11e4,output_tokens:46e4,reasoning_output_tokens:12e4,total_tokens:193e4},tools:[{name:"exec_command",calls:510,totals:{input_tokens:25e4,cached_input_tokens:82e4,cache_creation_input_tokens:8e4,output_tokens:37e4,reasoning_output_tokens:9e4,total_tokens:152e4}},{name:"write_stdin",calls:232,totals:{input_tokens:7e4,cached_input_tokens:22e4,cache_creation_input_tokens:3e4,output_tokens:9e4,reasoning_output_tokens:3e4,total_tokens:41e4}}]},{name:"Browser",calls:406,totals:{input_tokens:21e4,cached_input_tokens:88e4,cache_creation_input_tokens:9e4,output_tokens:42e4,reasoning_output_tokens:1e5,total_tokens:17e5},tools:[{name:"take_snapshot",calls:180,totals:{input_tokens:1e5,cached_input_tokens:4e5,cache_creation_input_tokens:4e4,output_tokens:18e4,reasoning_output_tokens:4e4,total_tokens:76e4}},{name:"click",calls:126,totals:{input_tokens:6e4,cached_input_tokens:25e4,cache_creation_input_tokens:3e4,output_tokens:12e4,reasoning_output_tokens:35e3,total_tokens:495e3}},{name:"evaluate_script",calls:100,totals:{input_tokens:5e4,cached_input_tokens:23e4,cache_creation_input_tokens:2e4,output_tokens:12e4,reasoning_output_tokens:25e3,total_tokens:445e3}}]}],tools_total:363e4,privacy:{includes_inputs:!1,note:"Aggregated tool names only; no tool arguments or outputs are included."}},exec_command_breakdown:{by_type:[{name:"test",calls:168,failures:14,duration_ms:482e3,max_duration_ms:18400,output_chars:45e4,output_lines:8600,totals:{input_tokens:9e4,cached_input_tokens:32e4,output_tokens:16e4,reasoning_output_tokens:42e3,total_tokens:612e3}},{name:"build",calls:116,failures:9,duration_ms:392e3,max_duration_ms:22100,output_chars:31e4,output_lines:5200,totals:{input_tokens:7e4,cached_input_tokens:24e4,output_tokens:13e4,reasoning_output_tokens:3e4,total_tokens:47e4}}],by_exit:[{name:"completed:0",calls:438,failures:0,duration_ms:104e4,max_duration_ms:22100,output_chars:83e4,output_lines:13100,totals:{input_tokens:22e4,cached_input_tokens:78e4,output_tokens:35e4,reasoning_output_tokens:82e3,total_tokens:1432e3}},{name:"completed:1",calls:72,failures:72,duration_ms:155e3,max_duration_ms:11800,output_chars:12e4,output_lines:2300,totals:{input_tokens:3e4,cached_input_tokens:11e4,output_tokens:55e3,reasoning_output_tokens:8e3,total_tokens:195e3}}]}};if(n!=="claude")return{from:e,to:t,source:n,scope:"unsupported",totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},categories:["system_prefix","conversation_history","user_input","tool_calls","subagents","reasoning","assistant_response"].map(l=>({key:l,totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},percent:0})),session_count:0,message_count:0};const a=[{key:"system_prefix",total:12896539},{key:"conversation_history",total:320207200},{key:"user_input",total:998025},{key:"tool_calls",total:4808739},{key:"subagents",total:1022828},{key:"reasoning",total:11073118},{key:"assistant_response",total:1289174}],i=a.reduce((l,u)=>l+u.total,0),s=a.map(({key:l,total:u})=>({key:l,totals:{input_tokens:l==="user_input"?u:0,cached_input_tokens:l==="conversation_history"?Math.round(u*.95):0,cache_creation_input_tokens:l==="system_prefix"?u:l==="conversation_history"?Math.round(u*.05):0,output_tokens:["tool_calls","subagents","reasoning","assistant_response"].includes(l)?u:0,reasoning_output_tokens:l==="reasoning"?u:0,total_tokens:u},percent:Number((u/i*100).toFixed(2))}));return{from:e,to:t,source:"claude",scope:"supported",totals:{input_tokens:998025,cached_input_tokens:Math.round(320207200*.95),cache_creation_input_tokens:12896539+Math.round(320207200*.05),output_tokens:18193859,reasoning_output_tokens:11073118,total_tokens:i},categories:s,session_count:312,message_count:12046}}let ju=null;function Ww(){ju=null}async function WA(e=fetch){if(ju)return ju;const t=await e("/api/local-auth",{method:"GET",headers:{Accept:"application/json"},cache:"no-store"});if(!t.ok)throw new Error(`Local auth request failed with HTTP ${t.status}`);const n=await t.json().catch(()=>null),a=typeof n?.token=="string"?n.token.trim():"";if(!a)throw new Error("Local auth token missing from response");return ju=a,a}async function Kl(e=fetch){return{"x-tokentracker-local-auth":await WA(e)}}const GA=Object.freeze(Object.defineProperty({__proto__:null,clearLocalApiAuthToken:Ww,getLocalApiAuthHeaders:Kl},Symbol.toStringTag,{value:"Module"})),Ra={usageSummary:"tokentracker-usage-summary",usageDaily:"tokentracker-usage-daily",usageHourly:"tokentracker-usage-hourly",usageMonthly:"tokentracker-usage-monthly",usageHeatmap:"tokentracker-usage-heatmap",usageModelBreakdown:"tokentracker-usage-model-breakdown",usageCategoryBreakdown:"tokentracker-usage-category-breakdown",projectUsageSummary:"tokentracker-project-usage-summary",userStatus:"tokentracker-user-status",localSync:"tokentracker-local-sync",usageLimits:"tokentracker-usage-limits"},KA={"tokentracker-usage-summary":"tokentracker-account-summary","tokentracker-usage-daily":"tokentracker-account-daily","tokentracker-usage-hourly":"tokentracker-account-hourly","tokentracker-usage-monthly":"tokentracker-account-monthly","tokentracker-usage-heatmap":"tokentracker-account-heatmap","tokentracker-usage-model-breakdown":"tokentracker-account-model-breakdown"};function qA(){return typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")}async function ir(e,t,n){const a=n?.accessToken,i=KA[e];if(!qA()&&a&&i){const f=er().replace(/\/$/,""),p=new URL(`${f}/functions/${i}`);if(t)for(const[w,S]of Object.entries(t))S!=null&&S!==""&&p.searchParams.set(w,String(S));const g={Accept:"application/json"},v=ds();v&&(g.apikey=v),sg(a)&&(g.Authorization=`Bearer ${a}`);const _=await fetch(p.toString(),{headers:g,cache:"no-store"});if(!_.ok){const w=new Error(`Request failed with HTTP ${_.status}`);throw w.status=_.status,w}return _.json()}const s=new URL(`/functions/${e}`,window.location.origin);if(t)for(const[f,p]of Object.entries(t))p!=null&&p!==""&&s.searchParams.set(f,String(p));const{accessToken:l,...u}=n||{},h=await fetch(s.toString(),{headers:{Accept:"application/json"},cache:"no-store",...u});if(!h.ok){const f=new Error(`Request failed with HTTP ${h.status}`);throw f.status=h.status,f}return h.json()}function Mn({timeZone:e,tzOffsetMinutes:t}={}){const n={},a=typeof e=="string"?e.trim():"";return a&&(n.tz=a),Number.isFinite(t)&&(n.tz_offset_minutes=String(Math.trunc(t))),n}function Kn({source:e,model:t}={}){const n={},a=typeof e=="string"?e.trim().toLowerCase():"";a&&(n.source=a);const i=typeof t=="string"?t.trim():"";return i&&(n.model=i),n}async function ez({from:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,rolling:l=!1,accessToken:u}={}){if(Pn())return UA({from:e,to:t,seed:u,rolling:l});const h=Mn({timeZone:i,tzOffsetMinutes:s}),f=Kn({source:n,model:a}),p=l?{rolling:"1"}:{};return ir(Ra.usageSummary,{from:e,to:t,...f,...h,...p},{accessToken:u})}async function tz({from:e,to:t,source:n,limit:a,timeZone:i,tzOffsetMinutes:s,accessToken:l}={}){if(Pn())return BA({seed:l,limit:a});const u=Mn({timeZone:i,tzOffsetMinutes:s}),f={...Kn({source:n}),...u};return e&&(f.from=e),t&&(f.to=t),a!=null&&(f.limit=String(a)),ir(Ra.projectUsageSummary,f)}async function Qi(e,t={}){const n=er();if(!n)throw new Error("InsForge base URL not configured");const a=n.replace(/\/$/,""),i=new URL(`${a}/functions/${e}`);if(t.params)for(const[h,f]of Object.entries(t.params))f!=null&&f!==""&&i.searchParams.set(h,String(f));const s={Accept:"application/json","Content-Type":"application/json"},l=ds();l&&(s.apikey=l),t.accessToken&&sg(t.accessToken)&&(s.Authorization=`Bearer ${t.accessToken}`);const u=await fetch(i.toString(),{method:t.method||"GET",headers:s,...t.body!=null?{body:JSON.stringify(t.body)}:{}});if(!u.ok){const h=new Error(`Request failed with HTTP ${u.status}`);throw h.status=u.status,h}return u.json()}async function YA({accessToken:e,userId:t,period:n,metric:a,limit:i,offset:s}={}){return Pn()?$w({seed:e||t,period:n,metric:a,limit:i,offset:s}):Qi("tokentracker-leaderboard",{params:{period:n,limit:i,offset:s,user_id:t}})}async function Yb({accessToken:e}={}){return Qi("tokentracker-public-visibility",{accessToken:e,method:"GET"})}async function nz({accessToken:e,enabled:t,anonymous:n,display_name:a,github_url:i,show_github_url:s}={}){const l={};return t!==void 0&&(l.enabled=!!t),n!==void 0&&(l.anonymous=!!n),a!==void 0&&(l.display_name=String(a)),i!==void 0&&(l.github_url=i===null?null:String(i)),s!==void 0&&(l.show_github_url=!!s),Qi("tokentracker-public-visibility",{accessToken:e,method:"POST",body:l})}async function az({accessToken:e,period:t,source:n}={}){const a={};return t&&(a.period=t),typeof n=="string"&&n.trim()&&(a.source=n.trim()),Qi("tokentracker-leaderboard-refresh",{accessToken:e,method:"POST",body:a})}async function rz({accessToken:e,userId:t,period:n}={}){if(Pn()){const a=$w({seed:e,period:n,metric:"all",limit:250,offset:0}),i=Array.isArray(a?.entries)?a.entries:[],s=i.find(p=>p?.user_id===t)||i[0]||null,l=Number(s?.total_tokens)||0,u=new Date,h=Array.from({length:365}).map((p,g)=>{const v=new Date(u);return v.setUTCDate(v.getUTCDate()-(364-g)),{date:v.toISOString().slice(0,10),total_tokens:g%7===0?Math.floor(l/365):0}}),f=h.slice(-7);return{user:{user_id:t,display_name:s?.display_name||"Mock User",avatar_url:s?.avatar_url||null,github_url:s?.github_url||null,is_anonymous:!1,rank:s?.rank??null},period:{kind:n||"week",from:a?.from??null,to:a?.to??null,generated_at:a?.generated_at??new Date().toISOString()},totals:{total_tokens:l,estimated_cost_usd:Number(s?.estimated_cost_usd)||0,active_days:53,avg_per_day_usd:0},streak:{current_days:3,longest_days:12},best_day:l?{date:u.toISOString().slice(0,10),total_tokens:Math.floor(l/30),estimated_cost_usd:0}:null,models:{count:5,favorite:{model_name:"claude-opus-4-7",total_tokens:Math.floor(l/2)}},by_provider:[],heatmap:h,daily_trend:f}}return Qi("tokentracker-leaderboard-profile",{accessToken:e,params:{user_id:t,period:n}})}function Gw(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return Math.abs(t%165)+24}async function iz({userId:e}={}){return Pn()?{count:Gw(e)}:Qi("tokentracker-profile-likes",{params:{user_id:e}})}async function oz({userId:e,delta:t,accessToken:n}={}){return Pn()?{count:Math.max(0,Gw(e)+Number(t||0))}:Qi("tokentracker-profile-likes",{accessToken:n,method:"POST",body:{user_id:e,delta:t}})}async function sz(e={}){if(Pn()){const t=new Date().toISOString();return{user_id:"local-user",created_at:t,pro:{active:!1,sources:[],expires_at:null,partial:!1,as_of:t},subscriptions:{partial:!1,as_of:t,items:[]},install:{partial:!1,as_of:t,has_active_device_token:!1,has_active_device:!1,active_device_tokens:0,active_devices:0,latest_token_activity_at:null,latest_device_seen_at:null}}}return ir(Ra.userStatus)}async function lz({signal:e}={}){const t=await Kl(),n=await fetch(`/functions/${Ra.localSync}`,{method:"POST",headers:{Accept:"application/json",...t},cache:"no-store",signal:e}),a=await n.json().catch(()=>({ok:!1,error:`Local sync request failed with HTTP ${n.status}`}));if(!n.ok||a?.ok===!1){const i=a?.error||a?.message||`Local sync request failed with HTTP ${n.status}`,s=new Error(i);throw s.status=n.status,s}return a}async function cz({from:e,to:t,source:n,timeZone:a,tzOffsetMinutes:i,accessToken:s}={}){if(Pn())return HA({from:e,to:t,seed:s});const l=Mn({timeZone:a,tzOffsetMinutes:i}),u=Kn({source:n});return ir(Ra.usageModelBreakdown,{from:e,to:t,...u,...l},{accessToken:s})}async function uz({from:e,to:t,source:n="claude",timeZone:a,tzOffsetMinutes:i}={}){if(Pn())return $A({from:e,to:t,source:n});const s=Mn({timeZone:a,tzOffsetMinutes:i});return ir(Ra.usageCategoryBreakdown,{from:e,to:t,source:n,...s})}async function dz({from:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,accessToken:l}={}){if(Pn())return NA({from:e,to:t,seed:l});const u=Mn({timeZone:i,tzOffsetMinutes:s}),h=Kn({source:n,model:a});return ir(Ra.usageDaily,{from:e,to:t,...h,...u},{accessToken:l})}async function hz({day:e,source:t,model:n,timeZone:a,tzOffsetMinutes:i,accessToken:s}={}){if(Pn())return OA({day:e,seed:s});const l=Mn({timeZone:a,tzOffsetMinutes:i}),u=Kn({source:t,model:n}),h=e?{day:e,...u,...l}:{...u,...l};return ir(Ra.usageHourly,h,{accessToken:s})}async function fz({months:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,accessToken:l}={}){if(Pn())return jA({months:e,to:t,seed:l});const u=Mn({timeZone:i,tzOffsetMinutes:s}),h=Kn({source:n,model:a});return ir(Ra.usageMonthly,{...e?{months:String(e)}:{},...t?{to:t}:{},...h,...u},{accessToken:l})}async function pz(e={}){const t=e?.refresh?{refresh:"1"}:void 0;return ir(Ra.usageLimits,t)}async function mz({weeks:e,to:t,weekStartsOn:n,source:a,model:i,timeZone:s,tzOffsetMinutes:l,accessToken:u}={}){if(Pn())return VA({weeks:e,to:t,weekStartsOn:n,seed:u});const h=Mn({timeZone:s,tzOffsetMinutes:l}),f=Kn({source:a,model:i});return ir(Ra.usageHeatmap,{weeks:String(e),to:t,week_starts_on:n,...f,...h},{accessToken:u})}const hs={summary:"tokentracker-account-summary",daily:"tokentracker-account-daily",hourly:"tokentracker-account-hourly",monthly:"tokentracker-account-monthly",heatmap:"tokentracker-account-heatmap",modelBreakdown:"tokentracker-account-model-breakdown"};async function fs(e,t,n){if(!n||!sg(n)){const f=new Error("Account view requires a signed-in user");throw f.status=401,f}const a=er();if(!a){const f=new Error("InsForge base URL not configured");throw f.status=0,f}const i=a.replace(/\/$/,""),s=new URL(`${i}/functions/${e}`);if(t)for(const[f,p]of Object.entries(t))p!=null&&p!==""&&s.searchParams.set(f,String(p));const l={Accept:"application/json",Authorization:`Bearer ${n}`},u=ds();u&&(l.apikey=u);const h=await fetch(s.toString(),{method:"GET",headers:l,cache:"no-store"});if(!h.ok){const f=new Error(`Request failed with HTTP ${h.status}`);throw f.status=h.status,f}return h.json()}async function gz({from:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,rolling:l=!1,accessToken:u}={}){const h=Mn({timeZone:i,tzOffsetMinutes:s}),f=Kn({source:n,model:a}),p=l?{rolling:"1"}:{};return fs(hs.summary,{from:e,to:t,...f,...h,...p},u)}async function yz({from:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,accessToken:l}={}){const u=Mn({timeZone:i,tzOffsetMinutes:s}),h=Kn({source:n,model:a});return fs(hs.daily,{from:e,to:t,...h,...u},l)}async function vz({day:e,source:t,model:n,timeZone:a,tzOffsetMinutes:i,accessToken:s}={}){const l=Mn({timeZone:a,tzOffsetMinutes:i}),u=Kn({source:t,model:n}),h=e?{day:e,...u,...l}:{...u,...l};return fs(hs.hourly,h,s)}async function bz({months:e,to:t,source:n,model:a,timeZone:i,tzOffsetMinutes:s,accessToken:l}={}){const u=Mn({timeZone:i,tzOffsetMinutes:s}),h=Kn({source:n,model:a});return fs(hs.monthly,{...e?{months:String(e)}:{},...t?{to:t}:{},...h,...u},l)}async function kz({weeks:e,to:t,weekStartsOn:n,source:a,model:i,timeZone:s,tzOffsetMinutes:l,accessToken:u}={}){const h=Mn({timeZone:s,tzOffsetMinutes:l}),f=Kn({source:a,model:i});return fs(hs.heatmap,{weeks:String(e),to:t,week_starts_on:n,...f,...h},u)}async function _z({from:e,to:t,source:n,timeZone:a,tzOffsetMinutes:i,accessToken:s}={}){const l=Mn({timeZone:a,tzOffsetMinutes:i}),u=Kn({source:n});return fs(hs.modelBreakdown,{from:e,to:t,...u,...l},s)}const Zb="tokentracker_native_app";let Kw=null;const qp=new Set;typeof window<"u"&&window.addEventListener("native:systemAppearanceChanged",e=>{const t=e?.detail?.isDark;if(typeof t=="boolean"){Kw=t;try{const n=document.documentElement;t?n.classList.add("dark"):n.classList.remove("dark")}catch{}qp.forEach(n=>{try{n(t)}catch{}})}});function Xb(){return Kw}function ZA(e){return qp.add(e),()=>qp.delete(e)}function zd(){if(typeof window>"u")return!1;try{if(new URLSearchParams(window.location.search).get("app")==="1"){try{window.localStorage.setItem(Zb,"1")}catch{}return!0}return window.localStorage.getItem(Zb)==="1"}catch{return!1}}function Ca(){return typeof window>"u"?!1:!!window.webkit?.messageHandlers?.nativeBridge}function hg(){return typeof window>"u"?!1:!!window.chrome?.webview&&zd()}function qw(){return typeof window>"u"?null:window.webkit?.messageHandlers?.nativeBridge??null}function wz(){return!!qw()}function ql(e){const t=qw();if(!t)return!1;try{return t.postMessage(e),!0}catch(n){return console.warn("[tokentracker] nativeBridge post failed:",n),!1}}function xz(){return ql({type:"getSettings"})}function _l(e,t){return ql({type:"setSetting",key:e,value:t})}function Pz(e){return ql({type:"action",name:e})}function XA(){return ql({type:"getSystemAppearance"})}function JA(e,t){if(!Ca())return;ql({type:"setChromeAppearance",isDark:e==="dark",theme:t??"system"})}function Sz(e){if(typeof window>"u")return()=>{};const t=n=>{n&&n.detail&&typeof n.detail=="object"&&e(n.detail)};return window.addEventListener("native:settings",t),()=>window.removeEventListener("native:settings",t)}const Yw=b.createContext(null);function QA(e){if(!e||typeof e!="object")return"";const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.full_name||t.name||n.name||t.user_name||t.preferred_username;return typeof a=="string"&&a.trim()?a.trim():typeof e.email=="string"&&e.email.includes("@")?e.email.split("@")[0].trim()||e.email.trim():typeof e.email=="string"?e.email.trim():""}function Jb(e){if(!e||typeof e!="object")return null;const t=e,n=t.session&&typeof t.session=="object"?t.session:null,a=typeof t.accessToken=="string"&&t.accessToken||typeof t.access_token=="string"&&t.access_token||n&&typeof n.accessToken=="string"&&n.accessToken||n&&typeof n.access_token=="string"&&n.access_token||null;return a&&a.length>0?a:null}async function Wf(e,t={}){if(!e)return null;const n=Math.max(0,Math.floor(Number(t.skewMs)||6e4)),a=e.tokenManager,i=()=>a?.getAccessToken?.()??a?.getSession?.()?.accessToken??null;let s=i();if(!s||lA(s,n)){const{data:l}=await e.auth.refreshSession();if(s=i()??Jb(l)??null,!s&&typeof e.auth.getCurrentUser=="function")try{await e.auth.getCurrentUser(),s=i()??Jb(l)??null}catch{}}return s||null}function e8({children:e}){const[t,n]=b.useState(null),[a,i]=b.useState(null),[s,l]=b.useState(!0);b.useEffect(()=>{if(!Gp()){n(null),i(null),l(!1);return}n(Q6())},[]),b.useEffect(()=>{if(!t)return;let F=!0;return l(!0),(async()=>{try{let{data:j,error:C}=await t.auth.getCurrentUser();if(!F)return;if(!C&&!j?.user){if(await new Promise(Y=>setTimeout(Y,150)),!F)return;const K=await t.auth.getCurrentUser();j=K.data,C=K.error}if(C){i(null);return}i(j?.user??null)}catch{F&&i(null)}finally{F&&l(!1)}})(),()=>{F=!1}},[t]);const u=b.useCallback(async()=>{if(t)try{let{data:F,error:j}=await t.auth.getCurrentUser();if(!j&&!F?.user){await new Promise(K=>setTimeout(K,150));const C=await t.auth.getCurrentUser();F=C.data,j=C.error}if(j){i(null);return}i(F?.user??null)}catch{i(null)}},[t]),h=b.useCallback(async(F,j)=>{if(!t)return{error:new Error("InsForge client not configured")};const C=typeof window<"u"&&window.webkit?.messageHandlers?.nativeOAuth;if(C){const ce=hg()?`${window.location.origin}/auth/callback`:typeof j=="string"&&j.trim()?j.trim():`${window.location.origin}/auth/callback`,re=await t.auth.signInWithOAuth({provider:F,redirectTo:ce,skipBrowserRedirect:!0});if(re.data?.url){try{const fe=await Kl();await fetch("/api/auth-bridge/verifier",{method:"PUT",headers:{"Content-Type":"application/json",...fe},body:JSON.stringify({native:!0})})}catch{}C.postMessage(re.data.url)}return re}const K=typeof j=="string"&&j.trim()?j.trim():typeof window<"u"?`${window.location.origin}/dashboard`:void 0;return await t.auth.signInWithOAuth({provider:F,redirectTo:K})},[t]),f=b.useCallback(async F=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:j,error:C}=await t.auth.signInWithPassword(F);return j?.user&&i(j.user),{data:j,error:C}},[t]),p=b.useCallback(async F=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:j,error:C}=await t.auth.signUp(F);return j?.user&&j?.accessToken&&i(j.user),{data:j,error:C}},[t]),g=b.useCallback(async()=>t?t.auth.getPublicAuthConfig():{data:null,error:new Error("InsForge client not configured")},[t]),v=b.useCallback(async()=>{t&&(await t.auth.signOut(),Aw(),aA(!1),Ww(),i(null))},[t]),_=b.useCallback(async()=>Wf(t),[t]),[w,S]=b.useState(null),[P,D]=b.useState(!1),R=b.useMemo(()=>QA(a),[a]);b.useEffect(()=>{if(!a||!t){S(null),D(!1);return}let F=!0;return(async()=>{try{const j=await Wf(t);if(!F||!j){F&&D(!0);return}const C=await Yb({accessToken:j});F&&C?.display_name&&S(C.display_name)}catch{}F&&D(!0)})(),()=>{F=!1}},[a,t]);const E=P?w||R:"",A=b.useCallback(async()=>{if(t)try{const F=await Wf(t);if(!F)return;const j=await Yb({accessToken:F});j?.display_name&&S(j.display_name)}catch{}},[t]),U=b.useMemo(()=>!Gp()||!t?{enabled:!1,client:null,user:null,signedIn:!1,loading:!1,displayName:"",refreshUser:async()=>{},refreshDisplayName:async()=>{},signInWithOAuth:async()=>({error:new Error("InsForge not configured")}),signInWithPassword:async()=>({data:null,error:new Error("InsForge not configured")}),signUp:async()=>({data:null,error:new Error("InsForge not configured")}),getPublicAuthConfig:async()=>({data:null,error:new Error("InsForge not configured")}),signOut:async()=>{},getAccessToken:async()=>null}:{enabled:!0,client:t,user:a,signedIn:!!a,loading:s,displayName:E,refreshUser:u,refreshDisplayName:A,signInWithOAuth:h,signInWithPassword:f,signUp:p,getPublicAuthConfig:g,signOut:v,getAccessToken:_},[t,a,s,E,u,A,h,f,p,g,v,_]);return T.jsx(Yw.Provider,{value:U,children:e})}function eo(){return b.useContext(Yw)}const Zw=b.createContext(null),Qb="tt.cloudSyncChanged";function t8({children:e}){const t=eo(),n=!!t?.signedIn,a=!!t?.enabled,i=!!t?.loading,[s,l]=b.useState(()=>od()),[u,h]=b.useState(()=>sd()),[f,p]=b.useState(0);b.useEffect(()=>{l(od()),rA()},[]),b.useEffect(()=>{if(typeof window>"u")return;const P=()=>{const D=sd();h(R=>R===D?R:D)};return window.addEventListener(Qb,P),window.addEventListener("storage",P),()=>{window.removeEventListener(Qb,P),window.removeEventListener("storage",P)}},[]);const g=b.useMemo(()=>!a||!n?!1:s?u:!0,[a,n,s,u]),v=Xo.useRef(g);b.useEffect(()=>{v.current!==g&&(v.current=g,p(P=>P+1))},[g]);const w=i&&(a&&(!s||u)),S=b.useMemo(()=>({accountView:g,revision:f,localHost:s,resolving:w}),[g,f,s,w]);return T.jsx(Zw.Provider,{value:S,children:e})}function Cz(){const e=b.useContext(Zw);return e||{accountView:!1,revision:0,localHost:!0,resolving:!1}}const n8=`key,module,page,component,slot,text,notes,status
43
- header.auth.sign_in_aria,shared,*,InsforgeUserHeaderControls,sign_in_aria,"Sign in",,active
44
- login.back_home,shared,LoginPage,LoginPage,back_home,"Back to home",,active
45
- login.cloud_only,shared,LoginPage,LoginPage,cloud_only,"Cloud sign-in is not configured. Use the local dashboard on localhost.",,active
46
- login.title,shared,LoginPage,LoginPage,title,"Sign in",,active
47
- login.subtitle,shared,LoginPage,LoginPage,subtitle,"Choose email or a connected account.",,active
48
- login.dismiss,shared,LoginPage,LoginPage,dismiss,"Dismiss",,active
49
- login.verify_email_success,shared,LoginPage,LoginPage,verify_ok,"Email verified. You can sign in below.",,active
50
- login.verify_email_pending,shared,LoginPage,LoginPage,verify_pending,"Check your email to verify your account, then sign in.",,active
51
- login.oauth.continue,shared,LoginPage,LoginPage,oauth_continue,"Continue with {{provider}}",,active
52
- login.divider,shared,LoginPage,LoginPage,divider,"Or",,active
53
- login.tab.sign_in,shared,LoginPage,LoginPage,tab_sign_in,"Sign in",,active
54
- login.tab.sign_up,shared,LoginPage,LoginPage,tab_sign_up,"Create account",,active
55
- login.field.name,shared,LoginPage,LoginPage,field_name,"Display name",,active
56
- login.field.name_placeholder,shared,LoginPage,LoginPage,name_placeholder,"Optional",,active
57
- login.field.email,shared,LoginPage,LoginPage,field_email,"Email",,active
58
- login.field.password,shared,LoginPage,LoginPage,field_password,"Password",,active
59
- login.password_hint,shared,LoginPage,LoginPage,pw_hint,"At least {{min}} characters.",,active
60
- login.submit.sign_in,shared,LoginPage,LoginPage,submit_sign_in,"Sign in with email",,active
61
- login.submit.sign_up,shared,LoginPage,LoginPage,submit_sign_up,"Create account",,active
62
- login_modal.subtitle,shared,*,LoginModal,subtitle,"Sign in to join the leaderboard",,active
63
- login_modal.continue_email,shared,*,LoginModal,continue_email,"Continue with Email",,active
64
- login_modal.divider_email,shared,*,LoginModal,divider_email,"email",,active
65
- shared.placeholder.short,shared,*,*,placeholder_short,"--",,active
66
- shared.unit.percent,shared,*,*,unit_percent,"%",,active
67
- shared.unit.thousand_abbrev,shared,*,*,unit_thousand_abbrev,"K",,active
68
- shared.unit.million_abbrev,shared,*,*,unit_million_abbrev,"M",,active
69
- shared.unit.billion_abbrev,shared,*,*,unit_billion_abbrev,"B",,active
70
- shared.data_source,shared,*,*,label,"Data source: {{source}}",,active
71
- shared.error.prefix,shared,*,*,label,"Error: {{error}}",,active
72
- shared.status.unsynced,shared,*,*,status,"—",,active
73
- error.boundary.title,shared,*,ErrorBoundary,title,"Something went wrong",,active
74
- error.boundary.subtitle,shared,*,ErrorBoundary,subtitle,"This view failed to render",,active
75
- error.boundary.hint,shared,*,ErrorBoundary,hint,"Open the console, then reload the page",,active
76
- error.boundary.no_details,shared,*,ErrorBoundary,details,"No error details",,active
77
- error.boundary.action.reload,shared,*,ErrorBoundary,action_reload,"Reload",,active
78
-
79
- landing.handle.default,landing,LandingPage,LandingPage,handle_default,"VIBE_USER",,active
80
- landing.handle.special,landing,LandingPage,LandingPage,handle_special,"VOLT",,active
81
- landing.screenshot.alt,landing,LandingPage,LandingPage,screenshot_alt,"TokenTracker dashboard screenshot",,active
82
- landing.nav.login,landing,LandingPage,LandingPage,nav_login,"LOGIN",,active
83
- landing.nav.signup,landing,LandingPage,LandingPage,nav_signup,"SIGN UP",,active
84
- landing.install.command,landing,LandingPage,LandingPage,install_command,"npx --yes tokentracker-cli",,active
85
- landing.install.action.copy,landing,LandingPage,LandingPage,install_copy,"COPY COMMAND",,active
86
- landing.install.action.copied,landing,LandingPage,LandingPage,install_copied,"COPIED",,active
87
- landing.meta.title,landing,LandingPage,Meta,title,"Token Tracker — Token Usage Tracker for AI Agent CLIs",,active
88
- landing.meta.description,landing,LandingPage,Meta,description,"Automatically monitor token usage across Claude Code, Cursor, Codex, and more. Local-first, privacy-focused, and zero manual configuration.",,active
89
- landing.meta.og_site_name,landing,LandingPage,Meta,og_site_name,"Token Tracker",,active
90
- landing.meta.og_type,landing,LandingPage,Meta,og_type,"website",,active
91
- landing.meta.og_image,landing,LandingPage,Meta,og_image,"https://www.tokentracker.cc/dashboard-dark.png",,active
92
- landing.meta.og_url,landing,LandingPage,Meta,og_url,"https://www.tokentracker.cc/",,active
93
- landing.meta.twitter_card,landing,LandingPage,Meta,twitter_card,"summary_large_image",,active
94
- share.meta.title,share,SharePage,Meta,title,"Token Tracker Share",,active
95
- share.meta.description,share,SharePage,Meta,description,"Share a Token Tracker dashboard snapshot with token usage insights across models, projects, and time windows.",,active
96
- share.meta.og_site_name,share,SharePage,Meta,og_site_name,"Token Tracker",,active
97
- share.meta.og_type,share,SharePage,Meta,og_type,"website",,active
98
- share.meta.og_image,share,SharePage,Meta,og_image,"https://www.tokentracker.cc/dashboard-dark.png",,active
99
- share.meta.og_url,share,SharePage,Meta,og_url,"https://www.tokentracker.cc/share",,active
100
- share.meta.twitter_card,share,SharePage,Meta,twitter_card,"summary_large_image",,active
101
- landing.handle.placeholder,landing,LandingPage,LandingPage,handle_placeholder,"TRY '{{handle}}'",,active
102
- landing.rank.expectation,landing,LandingPage,LandingPage,rank_expectation,"RANK_EXPECTATION: {{rank}}",,active
103
- landing.rank.singularity,landing,LandingPage,LandingPage,rank_singularity,"APEX",,active
104
- landing.rank.unranked,landing,LandingPage,LandingPage,rank_unranked,"UNRANKED",,active
105
- landing.cta.primary,landing,LandingPage,LandingPage,cta_primary,"View Dashboard",,active
106
- landing.cta.secondary,landing,LandingPage,LandingPage,cta_secondary,"GitHub",,active
107
-
108
-
109
-
110
-
111
-
112
-
113
- landing.v2.hero.title_line1,landing,LandingPage,MarketingLanding,hero_title_1,"TRACK ALL YOUR",,active
114
- landing.v2.hero.title_line2,landing,LandingPage,MarketingLanding,hero_title_2,"AI TOKENS",,active
115
- landing.v2.install.mac_cta,landing,LandingPage,MarketingLanding,mac_cta,"Download for macOS",,active
116
- landing.v2.install.win_cta,landing,LandingPage,MarketingLanding,win_cta,"Download for Windows",,active
117
- landing.v2.install.desktop_cta,landing,LandingPage,MarketingLanding,desktop_cta,"Download desktop app",,active
118
- landing.v2.install.os_macos,landing,LandingPage,MarketingLanding,os_macos,"macOS",,active
119
- landing.v2.install.os_windows,landing,LandingPage,MarketingLanding,os_windows,"Windows",,active
120
- landing.v2.install.availability,landing,LandingPage,MarketingLanding,availability,"Available for macOS and Windows",,active
121
- landing.v2.models.title,landing,LandingPage,MarketingLanding,models_title,"SUPPORTED AI CLI TOOLS",,active
122
- landing.v2.compare.kicker,landing,LandingPage,MarketingLanding,compare_kicker,"SEAMLESS TRACKING",,active
123
- landing.v2.compare.title,landing,LandingPage,MarketingLanding,compare_title,"Stop guessing your AI usage.",,active
124
- landing.v2.compare.subtitle,landing,LandingPage,MarketingLanding,compare_subtitle,"AI CLI tools hide raw usage data in obscure local files. TokenTracker consolidates them into a local-first dashboard in real-time.",,active
125
- landing.v2.distill.body,landing,LandingPage,MarketingLanding,distill_body,"100% local processing. No prompts or code are ever collected.",,active
126
- landing.v2.compare.with.title,landing,LandingPage,MarketingLanding,with_title,"WITH TOKEN TRACKER",,active
127
- landing.v2.compare.with.p1,landing,LandingPage,MarketingLanding,with_p1,"Centralized usage dashboard",,active
128
- landing.v2.compare.with.p2,landing,LandingPage,MarketingLanding,with_p2,"Real-time token metrics",,active
129
- landing.v2.compare.with.p3,landing,LandingPage,MarketingLanding,with_p3,"100% local, privacy-guaranteed",,active
130
- landing.v2.compare.with.p4,landing,LandingPage,MarketingLanding,with_p4,"Multi-client terminal audit trail",,active
131
- landing.v2.compare.without.title,landing,LandingPage,MarketingLanding,without_title,"WITHOUT IT",,active
132
- landing.v2.compare.without.p1,landing,LandingPage,MarketingLanding,without_p1,"Scattered JSON log files",,active
133
- landing.v2.compare.without.p2,landing,LandingPage,MarketingLanding,without_p2,"Blind to token consumption",,active
134
- landing.v2.compare.without.p3,landing,LandingPage,MarketingLanding,without_p3,"Unexpected API bills",,active
135
- landing.v2.compare.without.p4,landing,LandingPage,MarketingLanding,without_p4,"Zero historical audit logs",,active
136
- landing.v2.footer.line,landing,LandingPage,MarketingLanding,footer_line,"Token Tracker — Made by developers, for developers.",,active
137
- landing.v2.nav.status,landing,LandingPage,MarketingLanding,nav_status,"Status",,active
138
- landing.v2.nav.github,landing,LandingPage,MarketingLanding,nav_github,"GitHub",,active
139
- landing.v2.models.agent.codex,landing,LandingPage,MarketingLanding,agent_codex,"CODEX",,active
140
- landing.v2.models.agent.claude_code,landing,LandingPage,MarketingLanding,agent_claude_code,"CLAUDE CODE",,active
141
- landing.v2.models.agent.cursor,landing,LandingPage,MarketingLanding,agent_cursor,"CURSOR",,active
142
- landing.v2.models.agent.gemini,landing,LandingPage,MarketingLanding,agent_gemini,"GEMINI",,active
143
- landing.v2.models.agent.opencode,landing,LandingPage,MarketingLanding,agent_opencode,"OPENCODE",,active
144
- landing.v2.models.agent.openclaw,landing,LandingPage,MarketingLanding,agent_openclaw,"OPENCLAW",,active
145
- landing.v2.cta.primary,landing,LandingPage,MarketingLanding,cta_primary,"Dashboard",,active
146
- landing.v2.hero.subtagline,landing,LandingPage,MarketingLanding,hero_subtagline,"Automatically monitor token usage across Claude Code, Cursor, Codex, and more. Local-first, privacy-focused, and zero manual configuration.",,active
147
-
148
-
149
-
150
-
151
- identity_card.rank_label,ui,IdentityCard,IdentityCard,rank_label,"Started",,active
152
- identity_card.streak_label,ui,IdentityCard,IdentityCard,streak_label,"Active days",,active
153
- identity_card.rank_placeholder,ui,IdentityCard,IdentityCard,rank_placeholder,"—",,active
154
- identity_card.streak_value,ui,IdentityCard,IdentityCard,streak_value,"{{days}} DAY",,active
155
-
156
-
157
- dashboard.core_index.collapse_label,dashboard,DashboardPage,UsagePanel,toggle,"▾",,active
158
- dashboard.core_index.expand_label,dashboard,DashboardPage,UsagePanel,toggle,"▸",,active
159
- dashboard.core_index.collapse_aria,dashboard,DashboardPage,UsagePanel,toggle_aria,"Collapse model breakdown",,active
160
- dashboard.core_index.expand_aria,dashboard,DashboardPage,UsagePanel,toggle_aria,"Expand model breakdown",,active
161
- usage.summary.total,ui,UsagePanel,UsagePanel,summary_label_total,"Total tokens",,active
162
- usage.metric.total,ui,UsagePanel,UsagePanel,metric_total,"Total",,active
163
- usage.metric.input,ui,UsagePanel,UsagePanel,metric_input,"Input",,active
164
- usage.metric.output,ui,UsagePanel,UsagePanel,metric_output,"Output",,active
165
- usage.metric.cached_input,ui,UsagePanel,UsagePanel,metric_cached_input,"Cached input",,active
166
- usage.metric.reasoning_output,ui,UsagePanel,UsagePanel,metric_reasoning_output,"Reasoning output",,active
167
- usage.button.refresh,ui,UsagePanel,UsagePanel,button_refresh,"Refresh",,active
168
-
169
- dashboard.rolling.title,ui,RollingUsagePanel,RollingUsagePanel,title,"Recent Activity",,active
170
- dashboard.rolling.last_7d,ui,RollingUsagePanel,RollingUsagePanel,label_last_7d,"Last 7 days",,active
171
- dashboard.rolling.last_30d,ui,RollingUsagePanel,RollingUsagePanel,label_last_30d,"Last 30 days",,active
172
- dashboard.rolling.avg_active_day,ui,RollingUsagePanel,RollingUsagePanel,label_avg_active_day,"Daily average",,active
173
-
174
- dashboard.projects.title,ui,ProjectUsagePanel,ProjectUsagePanel,title,"Project Usage",,active
175
- dashboard.projects.tokens_label,ui,ProjectUsagePanel,ProjectUsagePanel,tokens_label,"Tokens",,active
176
- dashboard.projects.stars_label,ui,ProjectUsagePanel,ProjectUsagePanel,stars_label,"STAR",,active
177
- dashboard.projects.limit_label,ui,ProjectUsagePanel,ProjectUsagePanel,limit_label,"Show",,active
178
- dashboard.projects.limit_aria,ui,ProjectUsagePanel,ProjectUsagePanel,limit_aria,"Select repository limit",,active
179
- dashboard.projects.limit_top_3,ui,ProjectUsagePanel,ProjectUsagePanel,limit_top_3,"TOP 3",,active
180
- dashboard.projects.limit_top_6,ui,ProjectUsagePanel,ProjectUsagePanel,limit_top_6,"TOP 6",,active
181
- dashboard.projects.limit_top_10,ui,ProjectUsagePanel,ProjectUsagePanel,limit_top_10,"TOP 10",,active
182
- dashboard.projects.empty,ui,ProjectUsagePanel,ProjectUsagePanel,empty,"No public repositories",,active
183
- dashboard.widgets.title,dashboard,DashboardPage,WidgetOnboardingCard,title,"Desktop Widgets",,active
184
- dashboard.widgets.hint,dashboard,DashboardPage,WidgetOnboardingCard,hint,"Right-click your desktop → Edit Widgets → search ""TokenTracker""",,active
185
- dashboard.widgets.dismiss_aria,dashboard,DashboardPage,WidgetOnboardingCard,dismiss_aria,"Dismiss widget intro",,active
186
- widgets.page.title,dashboard,WidgetsPage,WidgetsPage,title,"Widgets",,active
187
- widgets.cta.open_gallery,dashboard,WidgetsPage,WidgetsPage,cta_open_gallery,"Open Widget Gallery",,active
188
- widgets.cta.download,dashboard,WidgetsPage,WidgetsPage,cta_download,"Download Mac App",,active
189
- widgets.cta.macos_only,dashboard,WidgetsPage,WidgetsPage,cta_macos_only,"macOS only",,active
190
- widgets.menubar.section.title,dashboard,WidgetsPage,WidgetsPage,menubar_section_title,"Menu Bar",,active
191
- widgets.gallery.section.title,dashboard,WidgetsPage,WidgetsPage,gallery_section_title,"Desktop Widgets",,active
192
- widgets.summary.name,dashboard,WidgetsPage,WidgetsPage,summary_name,"Usage Summary",,active
193
- widgets.summary.description,dashboard,WidgetsPage,WidgetsPage,summary_desc,"Today and seven-day usage with a compact sparkline.",,active
194
- widgets.heatmap.name,dashboard,WidgetsPage,WidgetsPage,heatmap_name,"Activity Heatmap",,active
195
- widgets.heatmap.description,dashboard,WidgetsPage,WidgetsPage,heatmap_desc,"GitHub-style daily calendar. Spot streaks and quiet days at a glance.",,active
196
- widgets.topModels.name,dashboard,WidgetsPage,WidgetsPage,topmodels_name,"Top Models",,active
197
- widgets.topModels.description,dashboard,WidgetsPage,WidgetsPage,topmodels_desc,"Your heaviest-used models ranked by token share.",,active
198
- widgets.limits.name,dashboard,WidgetsPage,WidgetsPage,limits_name,"Usage Limits",,active
199
- widgets.limits.description,dashboard,WidgetsPage,WidgetsPage,limits_desc,"Live rate-limit progress for Claude, Codex, Cursor, Gemini and more.",,active
200
- dashboard.cost_breakdown.title,ui,CostAnalysisModal,CostAnalysisModal,title,"Cost Breakdown",,active
201
- dashboard.cost_breakdown.total_label,ui,CostAnalysisModal,CostAnalysisModal,total_label,"Estimated Total Cost",,active
202
- dashboard.cost_breakdown.close,ui,CostAnalysisModal,CostAnalysisModal,close_label,"Close",,active
203
-
204
-
205
- trend.monitor.label,ui,TrendMonitor,TrendMonitor,label,"Usage Trend",,active
206
- trend.zoom.open_aria,ui,TrendMonitor,TrendMonitor,zoom_open_aria,"Expand to full screen",,active
207
- trend.zoom.close_aria,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_close_aria,"Close",,active
208
- trend.zoom.badge,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_badge,"Trend Insight",,active
209
- trend.zoom.desc,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_desc,"Hover any bar to inspect tokens, cost and conversations. Switch granularity to drill from months down to half-hours.",,active
210
- trend.zoom.insight_badge,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_badge,"Insight",,active
211
- trend.zoom.tooltip.cost,ui,TrendMonitor,TrendMonitor,zoom_tooltip_cost,"cost",,active
212
- trend.zoom.tooltip.conversations,ui,TrendMonitor,TrendMonitor,zoom_tooltip_conversations,"conversations",,active
213
- trend.zoom.stats.tokens,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_stats_tokens,"Total Tokens",,active
214
- trend.zoom.stats.cost,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_stats_cost,"Total Cost",,active
215
- trend.zoom.stats.conversations,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_stats_conversations,"Conversations",,active
216
- trend.zoom.stats.peak,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_stats_peak,"Peak Bucket",,active
217
- trend.zoom.gran.aria,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_gran_aria,"Granularity",,active
218
- trend.zoom.gran.30min,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_gran_30min,"30 min",,active
219
- trend.zoom.gran.day,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_gran_day,"Day",,active
220
- trend.zoom.gran.month,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_gran_month,"Month",,active
221
- trend.zoom.prev_day,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_prev_day,"Previous day",,active
222
- trend.zoom.next_day,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_next_day,"Next day",,active
223
- trend.zoom.loading,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_loading,"Loading…",,active
224
- trend.zoom.pick_day,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_pick_day,"Pick a day",,active
225
- trend.zoom.pick_range,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_pick_range,"Pick a date range",,active
226
- trend.zoom.insight.empty,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_empty,"A quiet stretch. Not a single token crossed the wire.",,active
227
- trend.zoom.insight.calm,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_calm,"Light touch. The model mostly sat on standby, waking only when you reached for it.",,active
228
- trend.zoom.insight.steady,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_steady,"A steady rhythm across {{active}} active stretches, cresting at {{peak}}. The kind of pace that ships things without drama.",,active
229
- trend.zoom.insight.heavy,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_heavy,"Heavy lifting: {{active}} stretches running hot, peaking at {{peak}}. This is output from someone who manufactures momentum instead of waiting for it.",,active
230
- trend.zoom.insight.massive,ui,TrendMonitorZoomModal,TrendMonitorZoomModal,zoom_insight_massive,"Industrial scale. A {{peak}} peak and throughput that never cools. At this volume you are not using the model, you are running a foundry.",,active
231
-
232
- heatmap.title,ui,ActivityHeatmap,ActivityHeatmap,title,"Activity Heatmap",,active
233
- heatmap.empty,ui,ActivityHeatmap,ActivityHeatmap,empty_state,"No activity data yet.",,active
234
- heatmap.legend.less,ui,ActivityHeatmap,ActivityHeatmap,legend_less,"Less",,active
235
- heatmap.legend.more,ui,ActivityHeatmap,ActivityHeatmap,legend_more,"More",,active
236
- heatmap.legend.utc,ui,ActivityHeatmap,ActivityHeatmap,legend_utc,"UTC",,active
237
- heatmap.tooltip,ui,ActivityHeatmap,ActivityHeatmap,tooltip,"{{day}} • {{value}} {{unit}} • {{tz}}",,active
238
- heatmap.unit.tokens,ui,ActivityHeatmap,ActivityHeatmap,unit_tokens,"tokens",,active
239
- heatmap.iso.aria,ui,ActivityHeatmap,ActivityHeatmap3D,iso_aria,"3D isometric activity heatmap",,active
240
- heatmap.view.2d,ui,ActivityHeatmap,ActivityHeatmap,view_2d,"2D",,active
241
- heatmap.view.3d,ui,ActivityHeatmap,ActivityHeatmap,view_3d,"3D",,active
242
- heatmap.month.jan,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Jan",,active
243
- heatmap.month.feb,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Feb",,active
244
- heatmap.month.mar,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Mar",,active
245
- heatmap.month.apr,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Apr",,active
246
- heatmap.month.may,ui,ActivityHeatmap,ActivityHeatmap,month_label,"May",,active
247
- heatmap.month.jun,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Jun",,active
248
- heatmap.month.jul,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Jul",,active
249
- heatmap.month.aug,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Aug",,active
250
- heatmap.month.sep,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Sep",,active
251
- heatmap.month.oct,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Oct",,active
252
- heatmap.month.nov,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Nov",,active
253
- heatmap.month.dec,ui,ActivityHeatmap,ActivityHeatmap,month_label,"Dec",,active
254
- heatmap.day.sun,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Sun",,active
255
- heatmap.day.mon,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Mon",,active
256
- heatmap.day.tue,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Tue",,active
257
- heatmap.day.wed,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Wed",,active
258
- heatmap.day.thu,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Thu",,active
259
- heatmap.day.fri,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Fri",,active
260
- heatmap.day.sat,ui,ActivityHeatmap,ActivityHeatmap,day_label,"Sat",,active
261
-
262
-
263
-
264
-
265
- daily.sort.date.label,dashboard,DashboardPage,DailyTable,sort_label,"Date",,active
266
- daily.sort.date.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Date",,active
267
- daily.sort.total.label,dashboard,DashboardPage,DailyTable,sort_label,"Total",,active
268
- daily.sort.total.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Total",,active
269
- daily.sort.input.label,dashboard,DashboardPage,DailyTable,sort_label,"Input",,active
270
- daily.sort.input.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Input",,active
271
- daily.sort.output.label,dashboard,DashboardPage,DailyTable,sort_label,"Output",,active
272
- daily.sort.output.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Output",,active
273
- daily.sort.cached.label,dashboard,DashboardPage,DailyTable,sort_label,"Cached",,active
274
- daily.sort.cached.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Cached input",,active
275
- daily.sort.reasoning.label,dashboard,DashboardPage,DailyTable,sort_label,"Reasoning",,active
276
- daily.sort.reasoning.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Reasoning output",,active
277
- daily.sort.conversations.label,dashboard,DashboardPage,DailyTable,sort_label,"Convs",,active
278
- daily.sort.conversations.title,dashboard,DashboardPage,DailyTable,sort_title,"Sort by Conversations",,active
279
- details.pagination.prev,dashboard,DashboardPage,DailyTable,pagination_prev,"Prev",,active
280
- details.pagination.next,dashboard,DashboardPage,DailyTable,pagination_next,"Next",,active
281
-
282
-
283
-
284
- leaderboard.profile.nav.back,dashboard,LeaderboardProfilePage,Header,nav_back,"Leaderboard",,active
285
- leaderboard.profile.nav.download,dashboard,LeaderboardProfilePage,Header,nav_download,"Download",Shown only to browser visitors without the app,active
286
- leaderboard.profile.hero.rank_label,dashboard,LeaderboardProfilePage,Hero,rank_label,"Rank",,active
287
- leaderboard.title,dashboard,LeaderboardPage,LeaderboardPage,title,"Leaderboard",,active
288
- leaderboard.range,dashboard,LeaderboardPage,LeaderboardPage,range,"UTC {{period}} · {{from}} – {{to}}",,active
289
- leaderboard.range_loading,dashboard,LeaderboardPage,LeaderboardPage,range_loading,"UTC {{period}} · …",,active
290
- leaderboard.range.total,dashboard,LeaderboardPage,LeaderboardPage,range_total,"All time",,active
291
- leaderboard.generated_at,dashboard,LeaderboardPage,LeaderboardPage,generated_at,"Updated {{ts}}",,active
292
- leaderboard.period.week,dashboard,LeaderboardPage,LeaderboardPage,period_week,"Week",,active
293
- leaderboard.period.month,dashboard,LeaderboardPage,LeaderboardPage,period_month,"Month",,active
294
- leaderboard.period.total,dashboard,LeaderboardPage,LeaderboardPage,period_total,"All",,active
295
-
296
- leaderboard.me_label,dashboard,LeaderboardPage,LeaderboardPage,me_label,"You",,active
297
- leaderboard.anon_label,dashboard,LeaderboardPage,LeaderboardPage,anon_label,"Anonymous",,active
298
- leaderboard.error.unknown,dashboard,LeaderboardPage,LeaderboardPage,error_unknown,"Unknown error",,active
299
-
300
-
301
-
302
- leaderboard.loading,dashboard,LeaderboardPage,LeaderboardPage,state_loading,"Loading…",,active
303
- leaderboard.empty,dashboard,LeaderboardPage,LeaderboardPage,state_empty,"No data",,active
304
-
305
- leaderboard.column.rank,dashboard,LeaderboardPage,LeaderboardPage,column_rank,"Rank",,active
306
- leaderboard.column.user,dashboard,LeaderboardPage,LeaderboardPage,column_user,"User",,active
307
- leaderboard.column.total,dashboard,LeaderboardPage,LeaderboardPage,column_total,"Total",,active
308
- leaderboard.column.codex,dashboard,LeaderboardPage,LeaderboardPage,column_codex,"Codex",,active
309
- leaderboard.column.claude,dashboard,LeaderboardPage,LeaderboardPage,column_claude,"Claude",,active
310
- leaderboard.column.gemini,dashboard,LeaderboardPage,LeaderboardPage,column_gemini,"Gemini",,active
311
- leaderboard.column.cursor,dashboard,LeaderboardPage,LeaderboardPage,column_cursor,"Cursor",,active
312
- leaderboard.column.opencode,dashboard,LeaderboardPage,LeaderboardPage,column_opencode,"OpenCode",,active
313
- leaderboard.column.openclaw,dashboard,LeaderboardPage,LeaderboardPage,column_openclaw,"OpenClaw",,active
314
- leaderboard.column.hermes,dashboard,LeaderboardPage,LeaderboardPage,column_hermes,"Hermes",,active
315
- leaderboard.column.kiro,dashboard,LeaderboardPage,LeaderboardPage,column_kiro,"Kiro",,active
316
- leaderboard.column.copilot,dashboard,LeaderboardPage,LeaderboardPage,column_copilot,"GitHub Copilot",,active
317
- leaderboard.column.kimi,dashboard,LeaderboardPage,LeaderboardPage,column_kimi,"Kimi Code",,active
318
- leaderboard.column.kilo-cli,dashboard,LeaderboardPage,LeaderboardPage,column_kilo_cli,"Kilo CLI",,active
319
- leaderboard.column.kilo-code,dashboard,LeaderboardPage,LeaderboardPage,column_kilo_code,"Kilo Code",,active
320
- limits.copilot.otelHint.title,dashboard,LimitsPage,LimitsPage,otel_hint_title,"Track Copilot token usage",,active
321
- limits.copilot.otelHint.body,dashboard,LimitsPage,LimitsPage,otel_hint_body,"Limits load via your GitHub OAuth token. To also record per-token usage, enable Copilot's OpenTelemetry export and add these lines to your shell profile (~/.zshrc or ~/.bashrc):",,active
322
- limits.copilot.otelHint.copy,dashboard,LimitsPage,LimitsPage,otel_hint_copy,"Copy",,active
323
- limits.copilot.otelHint.copied,dashboard,LimitsPage,LimitsPage,otel_hint_copied,"Copied",,active
324
- leaderboard.column.supplemental,dashboard,LeaderboardPage,LeaderboardPage,column_supplemental,"Supplemental",,active
325
-
326
-
327
- leaderboard.pagination.prev,dashboard,LeaderboardPage,LeaderboardPage,pagination_prev,"Previous",,active
328
- leaderboard.pagination.next,dashboard,LeaderboardPage,LeaderboardPage,pagination_next,"Next",,active
329
- leaderboard.pagination.ellipsis,dashboard,LeaderboardPage,LeaderboardPage,pagination_ellipsis,"…",,active
330
- leaderboard.pagination.page_unknown,dashboard,LeaderboardPage,LeaderboardPage,pagination_unknown,"Page {{page}}",,active
331
-
332
-
333
-
334
-
335
- dashboard.session_expired.copy_label,dashboard,DashboardPage,AsciiBox,body,"run npx --yes tokentracker-cli init",,active
336
- dashboard.session_expired.copied,dashboard,DashboardPage,AsciiBox,body,"copied",,active
337
-
338
-
339
- dashboard.install.prompt,dashboard,DashboardPage,AsciiBox,install_prompt,"Install Node.js 18+ then run:",,active
340
- dashboard.install.cmd.init,dashboard,DashboardPage,AsciiBox,install_cmd,"npx --yes tokentracker-cli init",,active
341
- dashboard.install.cmd.init_link_code,dashboard,DashboardPage,AsciiBox,install_cmd,"npx --yes tokentracker-cli init --link-code {{link_code}}",,active
342
- dashboard.install.copy,dashboard,DashboardPage,AsciiBox,install_copy,"Copy install command",,active
343
- dashboard.install.copy_base,dashboard,DashboardPage,AsciiBox,install_copy,"Copy init command",,active
344
- dashboard.install.copied,dashboard,DashboardPage,AsciiBox,install_copy,"Copied to clipboard",,active
345
- dashboard.install.link_code.loading,dashboard,DashboardPage,AsciiBox,install_status,"Generating private code...",,active
346
- dashboard.install.link_code.failed,dashboard,DashboardPage,AsciiBox,install_status,"Private code unavailable",,active
347
- dashboard.install.cmd.sync,dashboard,DashboardPage,AsciiBox,install_cmd,"npx --yes tokentracker-cli sync",,active
348
-
349
-
350
-
351
- dashboard.daily.title,dashboard,DashboardPage,AsciiBox,title,"Daily Breakdown",,active
352
- dashboard.daily.empty,dashboard,DashboardPage,AsciiBox,empty_state,"No data yet. Use your AI CLI then run {{cmd}}.",,active
353
-
354
- dashboard.identity.title,dashboard,DashboardPage,IdentityCard,title,"Your Profile",,active
355
- dashboard.identity.subtitle,dashboard,DashboardPage,IdentityCard,subtitle,"Track your coding journey",,active
356
- dashboard.identity.fallback,dashboard,DashboardPage,IdentityCard,handle_fallback,"Anonymous",,active
357
-
358
-
359
- dashboard.screenshot.title_line1,dashboard,DashboardPage,ScreenshotTitle,title_line,"Coding Agent",,active
360
- dashboard.screenshot.title_line2,dashboard,DashboardPage,ScreenshotTitle,title_line,"2025 Wrapped",,active
361
- dashboard.screenshot.twitter_button,dashboard,DashboardPage,ScreenshotShare,button_label,"Share on X",,active
362
- dashboard.screenshot.twitter_label,dashboard,DashboardPage,ScreenshotShare,aria_label,"Share on X",,active
363
- dashboard.screenshot.twitter_hint,dashboard,DashboardPage,ScreenshotShare,helper_text,"Auto-copies image to clipboard",,active
364
- dashboard.screenshot.twitter_text,dashboard,DashboardPage,ScreenshotShare,share_text,"{{total_tokens}} tokens on the record.\\n{{model_name}} led with {{model_percent}}%.\\n\\nMy AI usage, unaudited →",,active
365
-
366
- nav.usage,shared,*,Sidebar,nav_usage,"Tokens",,active
367
- nav.limits,shared,*,Sidebar,nav_limits,"Limits",,active
368
- nav.widgets,shared,*,Sidebar,nav_widgets,"macOS Widgets",,active
369
- nav.leaderboard,shared,*,Sidebar,nav_leaderboard,"Leaderboard",,active
370
- nav.collapse,shared,*,Sidebar,nav_collapse,"Collapse sidebar",,active
371
- nav.expand,shared,*,Sidebar,nav_expand,"Expand sidebar",,active
372
- nav.menu,shared,*,Sidebar,nav_menu,"Open navigation menu",,active
373
- nav.close_menu,shared,*,Sidebar,nav_close_menu,"Close navigation menu",,active
374
- nav.aside_label,shared,*,Sidebar,aside_label,"Main navigation",,active
375
- nav.nav_label,shared,*,Sidebar,nav_label,"Primary",,active
376
- limits.page.subtitle,ui,LimitsPage,LimitsPage,subtitle,"Rate limits and quota usage across your AI tools.",,active
377
- limits.settings.toggle_visible,ui,LimitsPage,LimitsSettingsPanel,toggle_visible,"Toggle visibility",,active
378
- limits.settings.display_mode_label,ui,LimitsPage,LimitsSettingsPanel,display_mode_label,"Usage",,active
379
- limits.settings.display_mode_used,ui,LimitsPage,LimitsSettingsPanel,display_mode_used,"Used",,active
380
- limits.settings.display_mode_remaining,ui,LimitsPage,LimitsSettingsPanel,display_mode_remaining,"Remaining",,active
381
- limits.page.openSettings,ui,LimitsPage,LimitsPage,open_settings,"Display settings",,active
382
- nav.group.general,shared,*,Sidebar,group_general,"General",,active
383
- nav.group.tools,shared,*,Sidebar,group_tools,"Tools",,active
384
- nav.group.account,shared,*,Sidebar,group_account,"Account",,active
385
- nav.settings,shared,*,Sidebar,nav_settings,"Settings",,active
386
- header.auth.open_settings,shared,*,InsforgeUserHeaderControls,open_settings,"Open settings",,active
387
- settings.page.title,ui,SettingsPage,SettingsPage,title,"Settings",,active
388
- settings.page.subtitle,ui,SettingsPage,SettingsPage,subtitle,"Manage your account, appearance, and display preferences.",,active
389
- settings.section.appearance,ui,SettingsPage,SettingsPage,sec_appearance,"Appearance",,active
390
- settings.section.account,ui,SettingsPage,SettingsPage,sec_account,"Account",,active
391
- settings.section.limits,ui,SettingsPage,SettingsPage,sec_limits,"Limits Display",,active
392
- settings.appearance.theme.label,ui,SettingsPage,SettingsPage,theme_label,"Theme",,active
393
- settings.appearance.theme.hint,ui,SettingsPage,SettingsPage,theme_hint,"Choose how Token Tracker looks across the dashboard.",,active
394
- settings.appearance.theme.light,ui,SettingsPage,SettingsPage,theme_light,"Light",,active
395
- settings.appearance.theme.dark,ui,SettingsPage,SettingsPage,theme_dark,"Dark",,active
396
- settings.appearance.theme.system,ui,SettingsPage,SettingsPage,theme_system,"System",,active
397
- settings.appearance.currency.label,ui,SettingsPage,SettingsPage,currency_label,"Currency",,active
398
- settings.appearance.currency.hint,ui,SettingsPage,SettingsPage,currency_hint,"Select the display currency for usage costs.",,active
399
- settings.appearance.currency.opt.usd,ui,SettingsPage,SettingsPage,currency_opt_usd,"USD ($)",,active
400
- settings.appearance.currency.opt.eur,ui,SettingsPage,SettingsPage,currency_opt_eur,"EUR (€)",,active
401
- settings.appearance.currency.opt.gbp,ui,SettingsPage,SettingsPage,currency_opt_gbp,"GBP (£)",,active
402
- settings.appearance.currency.opt.cny,ui,SettingsPage,SettingsPage,currency_opt_cny,"CNY (¥)",,active
403
- settings.appearance.currency.opt.jpy,ui,SettingsPage,SettingsPage,currency_opt_jpy,"JPY (¥)",,active
404
- settings.appearance.currency.opt.hkd,ui,SettingsPage,SettingsPage,currency_opt_hkd,"HKD (HK$)",,active
405
- settings.appearance.currency.rate_source.default,ui,SettingsPage,SettingsPage,rate_source_default,"Bundled default rate",,active
406
- settings.appearance.currency.rate_source.fetched,ui,SettingsPage,SettingsPage,rate_source_fetched,"Source: open.er-api.com",,active
407
- settings.appearance.currency.rate_updated,ui,SettingsPage,SettingsPage,rate_updated,"updated {{when}}",,active
408
- settings.appearance.currency.rate_never,ui,SettingsPage,SettingsPage,rate_never,"awaiting first refresh",,active
409
- settings.account.displayName,ui,SettingsPage,SettingsPage,display_name,"Display name",,active
410
- settings.account.edit,ui,SettingsPage,SettingsPage,edit,"Edit",,active
411
- settings.account.save,ui,SettingsPage,SettingsPage,save,"Save",,active
412
- settings.account.saving,ui,SettingsPage,SettingsPage,saving,"Saving...",,active
413
- settings.account.cancel,ui,SettingsPage,SettingsPage,cancel,"Cancel",,active
414
- settings.account.userId,ui,SettingsPage,SettingsPage,user_id,"User ID",,active
415
- settings.account.copyUserId,ui,SettingsPage,SettingsPage,copy_user_id,"Copy user ID",,active
416
- settings.account.copy,ui,SettingsPage,SettingsPage,copy,"Copy",,active
417
- settings.account.copied,ui,SettingsPage,SettingsPage,copied,"Copied",,active
418
- settings.account.cloudSync,ui,SettingsPage,SettingsPage,cloud_sync,"Cloud sync",,active
419
- settings.account.cloudSyncHint,ui,SettingsPage,SettingsPage,cloud_sync_hint,"Upload local usage to your Token Tracker cloud account.",,active
420
- settings.account.publicProfile,ui,SettingsPage,SettingsPage,public_profile,"Public profile",,active
421
- settings.account.publicProfileHint,ui,SettingsPage,SettingsPage,public_profile_hint,"Show your usage on the public leaderboard.",,active
422
- settings.account.displayNameAnonymousHint,ui,SettingsPage,SettingsPage,display_name_anon_hint,"Anonymous — your name and avatar are hidden on the leaderboard",,active
423
- settings.account.displayNameDisabledWhileAnon,ui,SettingsPage,SettingsPage,display_name_disabled,"Turn on the switch first to edit your name",,active
424
- settings.account.githubUrl,ui,SettingsPage,SettingsPage,github_url,"GitHub profile",,active
425
- settings.account.githubUrlHint,ui,SettingsPage,SettingsPage,github_url_hint,"Show a GitHub link next to your name on the leaderboard.",,active
426
- settings.account.githubUrlPlaceholder,ui,SettingsPage,SettingsPage,github_url_placeholder,"username or https://github.com/username",,active
427
- settings.account.githubUrlInvalid,ui,SettingsPage,SettingsPage,github_url_invalid,"Use a GitHub username or https://github.com/username URL.",,active
428
- leaderboard.github.aria,ui,LeaderboardPage,LeaderboardPage,github_aria,"Open GitHub profile",,active
429
- auth.callback.processing,ui,*,NativeAuthCallbackPage,processing,"Processing…",,active
430
- auth.callback.success,ui,*,NativeAuthCallbackPage,success,"Signed in successfully",,active
431
- auth.callback.redirecting,ui,*,NativeAuthCallbackPage,redirecting,"Returning to TokenTracker…",,active
432
- auth.callback.failed,ui,*,NativeAuthCallbackPage,failed,"Sign-in incomplete. Please try again.",,active
433
- auth.callback.close,ui,*,NativeAuthCallbackPage,close,"Close this page",,active
434
- stats.period.today,ui,DashboardPage,StatsPanel,period_today,"today",,active
435
- stats.period.week,ui,DashboardPage,StatsPanel,period_week,"week",,active
436
- stats.period.month,ui,DashboardPage,StatsPanel,period_month,"month",,active
437
- stats.period.all,ui,DashboardPage,StatsPanel,period_all,"all",,active
438
- stats.period.convs,ui,DashboardPage,StatsPanel,period_convs,"convs",,active
439
- leaderboard.column.est_cost,ui,LeaderboardPage,LeaderboardPage,column_est_cost,"Est. Cost",,active
440
- leaderboard.signin_prompt,ui,LeaderboardPage,LeaderboardPage,signin_prompt,"Sign in to join the leaderboard",,active
441
- leaderboard.signin_button,ui,LeaderboardPage,LeaderboardPage,signin_button,"Sign In",,active
442
- leaderboard.sync_prompt,ui,LeaderboardPage,LeaderboardPage,sync_prompt,"Enable Cloud Sync to appear in rankings",,active
443
- leaderboard.sync_button.idle,ui,LeaderboardPage,LeaderboardPage,sync_button_idle,"Enable & Sync",,active
444
- leaderboard.sync_button.busy,ui,LeaderboardPage,LeaderboardPage,sync_button_busy,"Syncing...",,active
445
- leaderboard.pagination.page_size_label,ui,LeaderboardPage,LeaderboardPage,page_size_label,"Rows per page",,active
446
- leaderboard.github.tooltipAction,ui,LeaderboardPage,LeaderboardPage,github_tooltip_action,"Click to open GitHub profile",,active
447
- leaderboard.github.tooltipPrefix,ui,LeaderboardPage,LeaderboardPage,github_tooltip_prefix,"Set yours in",,active
448
- leaderboard.github.tooltipSettingsLink,ui,LeaderboardPage,LeaderboardPage,github_tooltip_link,"Settings",,active
449
- leaderboard.github.tooltipSuffix,ui,LeaderboardPage,LeaderboardPage,github_tooltip_suffix," to appear here",,active
450
- leaderboard.summary.percentile,ui,LeaderboardPage,LeaderboardMeChip,summary_percentile,"Top {{p}}%",,active
451
- leaderboard.summary.jump_to_me,ui,LeaderboardPage,LeaderboardMeChip,summary_jump_to_me,"Jump to my row",,active
452
- leaderboard.summary.view_profile,ui,LeaderboardPage,LeaderboardMeChip,summary_view_profile,"View your profile",,active
453
- settings.account.signOut,ui,SettingsPage,SettingsPage,sign_out,"Sign out",,active
454
- settings.account.signIn,ui,SettingsPage,SettingsPage,sign_in,"Sign in",,active
455
- settings.account.signedOutHint,ui,SettingsPage,SettingsPage,signed_out_hint,"Sign in to manage cloud sync and leaderboard preferences.",,active
456
- settings.section.menubar,ui,SettingsPage,SettingsPage,sec_menubar,"Menu Bar App",,active
457
- settings.menubar.showStats,ui,SettingsPage,SettingsPage,mb_show_stats,"Show stats in menu bar",,active
458
- settings.menubar.showStatsHint,ui,SettingsPage,SettingsPage,mb_show_stats_hint,"Display today's token count and cost beside the menu bar icon.",,active
459
- settings.menubar.animatedIcon,ui,SettingsPage,SettingsPage,mb_anim,"Animated icon",,active
460
- settings.menubar.animatedIconHint,ui,SettingsPage,SettingsPage,mb_anim_hint,"Blink the Clawd character and play the syncing animation in the menu bar.",,active
461
- settings.menubar.launchAtLogin,ui,SettingsPage,SettingsPage,mb_login,"Launch at login",,active
462
- settings.menubar.launchAtLoginHint,ui,SettingsPage,SettingsPage,mb_login_hint,"Start TokenTrackerBar automatically when you sign in to macOS.",,active
463
- settings.menubar.syncNow,ui,SettingsPage,SettingsPage,mb_sync_now,"Sync now",,active
464
- settings.menubar.syncNowHint,ui,SettingsPage,SettingsPage,mb_sync_now_hint,"Trigger an immediate parse and upload of local AI tool logs.",,active
465
- settings.menubar.syncing,ui,SettingsPage,SettingsPage,mb_syncing,"Syncing…",,active
466
- settings.menubar.updates,ui,SettingsPage,SettingsPage,mb_updates,"Updates",,active
467
- settings.menubar.checkUpdates,ui,SettingsPage,SettingsPage,mb_check_updates,"Check for updates",,active
468
- settings.footer.statusPage,ui,SettingsPage,NativeAppFooter,status_page,"System status",,active
469
- menubar.slot.primary,ui,WidgetsPage,MenuBarDisplayCard,slot_primary,"Primary slot",,active
470
- menubar.slot.secondary,ui,WidgetsPage,MenuBarDisplayCard,slot_secondary,"Secondary slot",,active
471
- menubar.native_only,ui,WidgetsPage,MenuBarDisplayCard,native_only,"Open TokenTrackerBar for macOS to edit the live menu bar display.",,active
472
- menubar.metric.today_tokens,ui,WidgetsPage,MenuBarDisplayCard,metric_today_tokens,"Today Tokens",,active
473
- menubar.metric.today_cost,ui,WidgetsPage,MenuBarDisplayCard,metric_today_cost,"Today Cost",,active
474
- menubar.metric.last_7d_tokens,ui,WidgetsPage,MenuBarDisplayCard,metric_last_7d,"Last 7 Days",,active
475
- menubar.metric.total_tokens,ui,WidgetsPage,MenuBarDisplayCard,metric_total_tokens,"Total Tokens",,active
476
- menubar.metric.total_cost,ui,WidgetsPage,MenuBarDisplayCard,metric_total_cost,"Total Cost",,active
477
- menubar.metric.claude_5h,ui,WidgetsPage,MenuBarDisplayCard,metric_claude_5h,"Claude 5h Limit",,active
478
- menubar.metric.claude_7d,ui,WidgetsPage,MenuBarDisplayCard,metric_claude_7d,"Claude 7d Limit",,active
479
- menubar.metric.codex_5h,ui,WidgetsPage,MenuBarDisplayCard,metric_codex_5h,"Codex 5h Limit",,active
480
- menubar.metric.codex_7d,ui,WidgetsPage,MenuBarDisplayCard,metric_codex_7d,"Codex 7d Limit",,active
481
- menubar.metric.codex_spark_5h,ui,WidgetsPage,MenuBarDisplayCard,metric_codex_spark_5h,"Codex Spark 5h Limit",,active
482
- menubar.metric.codex_spark_7d,ui,WidgetsPage,MenuBarDisplayCard,metric_codex_spark_7d,"Codex Spark 7d Limit",,active
483
- share.modal.title,share,DashboardPage,ShareModal,title,"Share your stats",,active
484
- share.modal.subtitle,share,DashboardPage,ShareModal,subtitle,"Generate a poster-style card and share anywhere.",,active
485
- share.modal.close,share,DashboardPage,ShareModal,close,"Close",,active
486
- share.modal.action.x,share,DashboardPage,ShareModal,action_x,"Share on X",,active
487
- share.modal.action.download,share,DashboardPage,ShareModal,action_download,"Download",,active
488
- share.modal.action.copy,share,DashboardPage,ShareModal,action_copy,"Copy image",,active
489
- share.modal.hint.x,share,DashboardPage,ShareModal,hint_x,"Paste image in tweet",,active
490
- share.modal.hint.copy,share,DashboardPage,ShareModal,hint_copy,"to clipboard",,active
491
- share.modal.name_label,share,DashboardPage,ShareModal,name_label,"Display name",,active
492
- share.modal.name_placeholder,share,DashboardPage,ShareModal,name_placeholder,"Enter your name",,active
493
- share.modal.footer,share,DashboardPage,ShareModal,footer,"Your data stays local — images are generated in your browser and never uploaded.",,active
494
- share.button.label,share,DashboardPage,DashboardHeader,share_button,"Share",,active
495
- share.button.aria,share,DashboardPage,DashboardHeader,share_button_aria,"Open share card",,active
496
- share.toast.copied,share,DashboardPage,ShareModal,toast_copied,"Image copied to clipboard",,active
497
- share.toast.downloaded,share,DashboardPage,ShareModal,toast_downloaded,"Image saved",,active
498
- share.toast.failed,share,DashboardPage,ShareModal,toast_failed,"Couldn't generate image",,active
499
- share.toast.working,share,DashboardPage,ShareModal,toast_working,"Generating…",,active
500
- share.modal.style_label,share,DashboardPage,ShareModal,style_label,"Style",,active
501
- share.variant.neon,share,DashboardPage,ShareModal,variant_neon,"Neon",,active
502
- share.variant.broadsheet,share,DashboardPage,ShareModal,variant_broadsheet,"Broadsheet",,active
503
- share.date.month_year,share,DashboardPage,ShareCard,date_month_year,"{{month}} {{year}}",,active
504
- share.issue.all_time,share,DashboardPage,ShareCard,issue_all_time,"ALL TIME",,active
505
- share.month_short.jan,share,DashboardPage,ShareCard,month_short,"JAN",,active
506
- share.month_short.feb,share,DashboardPage,ShareCard,month_short,"FEB",,active
507
- share.month_short.mar,share,DashboardPage,ShareCard,month_short,"MAR",,active
508
- share.month_short.apr,share,DashboardPage,ShareCard,month_short,"APR",,active
509
- share.month_short.may,share,DashboardPage,ShareCard,month_short,"MAY",,active
510
- share.month_short.jun,share,DashboardPage,ShareCard,month_short,"JUN",,active
511
- share.month_short.jul,share,DashboardPage,ShareCard,month_short,"JUL",,active
512
- share.month_short.aug,share,DashboardPage,ShareCard,month_short,"AUG",,active
513
- share.month_short.sep,share,DashboardPage,ShareCard,month_short,"SEP",,active
514
- share.month_short.oct,share,DashboardPage,ShareCard,month_short,"OCT",,active
515
- share.month_short.nov,share,DashboardPage,ShareCard,month_short,"NOV",,active
516
- share.month_short.dec,share,DashboardPage,ShareCard,month_short,"DEC",,active
517
- share.hook.top_loyal,share,DashboardPage,ShareCard,hook_top_loyal,"{{percent}}% loyal to {{name}}.",,active
518
- share.hook.days_record,share,DashboardPage,ShareCard,hook_days_record,"{{days}} days on the record.",,active
519
- share.hook.top_led,share,DashboardPage,ShareCard,hook_top_led,"Led by {{name}} ({{percent}}%).",,active
520
- share.hook.multi_models,share,DashboardPage,ShareCard,hook_multi_models,"Across {{count}} models, {{days}} days.",,active
521
- share.hook.days_with_model,share,DashboardPage,ShareCard,hook_days_with_model,"{{days}} days with {{name}}.",,active
522
- share.hook.new_chapter,share,DashboardPage,ShareCard,hook_new_chapter,"The beginning of a new chapter.",,active
523
- share.card.broadsheet.issue,share,DashboardPage,BroadsheetCard,issue_label,"Issue",,active
524
- share.card.broadsheet.by,share,DashboardPage,BroadsheetCard,by_label,"By",,active
525
- share.card.broadsheet.tracked_since,share,DashboardPage,BroadsheetCard,tracked_since,"Tracked since",,active
526
- share.card.broadsheet.total_tokens,share,DashboardPage,BroadsheetCard,total_tokens,"Total tokens",,active
527
- share.card.broadsheet.estimated_spend,share,DashboardPage,BroadsheetCard,estimated_spend,"Estimated spend",,active
528
- share.card.broadsheet.billable_days,share,DashboardPage,BroadsheetCard,billable_days,"{{days}} billable days",,active
529
- share.card.broadsheet.heatmap_title,share,DashboardPage,BroadsheetCard,heatmap_title,"The Year in Print",,active
530
- share.card.broadsheet.heatmap_days_on_record,share,DashboardPage,BroadsheetCard,heatmap_days,"{{active}} / {{total}} days on record",,active
531
- share.card.broadsheet.roster_title,share,DashboardPage,BroadsheetCard,roster_title,"The Roster",,active
532
- share.card.broadsheet.roster_subtitle,share,DashboardPage,BroadsheetCard,roster_subtitle,"Models in regular rotation",,active
533
- share.card.broadsheet.empty,share,DashboardPage,BroadsheetCard,empty,"An empty week — the press was quiet.",,active
534
- share.card.broadsheet.global_rank,share,DashboardPage,BroadsheetCard,global_rank,"Global rank",,active
535
- share.card.broadsheet.active_days,share,DashboardPage,BroadsheetCard,active_days,"Active",,active
536
- share.card.broadsheet.days_count,share,DashboardPage,BroadsheetCard,days_count,"{{days}} days",,active
537
- share.card.broadsheet.track_yours,share,DashboardPage,BroadsheetCard,track_yours,"Track yours",,active
538
- share.card.annual.report_title,share,DashboardPage,AnnualReportCard,report_title,"Token Report",,active
539
- share.card.annual.less,share,DashboardPage,AnnualReportCard,legend_less,"Less",,active
540
- share.card.annual.more,share,DashboardPage,AnnualReportCard,legend_more,"More",,active
541
- share.card.annual.heatmap_title,share,DashboardPage,AnnualReportCard,heatmap_title,"TOKEN USAGE HEATMAP",,active
542
- share.card.annual.total_tokens,share,DashboardPage,AnnualReportCard,total_tokens,"Total Tokens",,active
543
- share.card.annual.estimated_cost,share,DashboardPage,AnnualReportCard,estimated_cost,"Estimated Cost",,active
544
- share.card.annual.longest_streak,share,DashboardPage,AnnualReportCard,longest_streak,"Longest Streak",,active
545
- share.card.annual.days_count,share,DashboardPage,AnnualReportCard,days_count,"{{days}} days",,active
546
- share.card.annual.top_model,share,DashboardPage,AnnualReportCard,top_model,"Top Model",,active
547
- usage.period.day,ui,DashboardPage,UsageOverview,period_day,"Day",,active
548
- usage.period.week,ui,DashboardPage,UsageOverview,period_week,"Week",,active
549
- usage.period.month,ui,DashboardPage,UsageOverview,period_month,"Month",,active
550
- usage.period.total,ui,DashboardPage,UsageOverview,period_total,"Total",,active
551
- usage.period.custom,ui,DashboardPage,UsageOverview,period_custom,"Custom",,active
552
- usage.overview.tablist_aria,ui,DashboardPage,UsageOverview,tablist_aria,"Time period",,active
553
- usage.overview.cost_breakdown_aria,ui,DashboardPage,UsageOverview,cost_breakdown_aria,"View cost breakdown",,active
554
- usage.overview.distribution_aria,ui,DashboardPage,UsageOverview,distribution_aria,"Provider distribution: {{items}}",,active
555
- usage.overview.distribution_item,ui,DashboardPage,UsageOverview,distribution_item,"{{label}} {{percent}}%",,active
556
- usage.overview.provider_card_aria,ui,DashboardPage,UsageOverview,provider_card_aria,"{{provider}}: {{percent}}%, {{tokens}} tokens, {{cost}}. Click to {{action}} details",,active
557
- usage.overview.expand,ui,DashboardPage,UsageOverview,expand,"expand",,active
558
- usage.overview.collapse,ui,DashboardPage,UsageOverview,collapse,"collapse",,active
559
- usage.overview.model_count,ui,DashboardPage,UsageOverview,model_count,"{{count}} models",,active
560
- usage.overview.model_details_aria,ui,DashboardPage,UsageOverview,model_details_aria,"{{provider}} model details",,active
561
- usage.overview.antigravity_notice_title,ui,DashboardPage,UsageOverview,antigravity_notice_title,"Estimated tokens",,active
562
- usage.overview.antigravity_notice_body,ui,DashboardPage,UsageOverview,antigravity_notice_body,"Antigravity transcripts don't record real usage numbers. These counts are estimated from text length (~4 chars/token) and don't reflect Gemini's prompt-cache discount, so treat them as an upper bound, not a billing figure.",,active
563
- limits.panel.title,ui,LimitsPage,UsageLimitsPanel,title,"Usage Limits",,active
564
- limits.panel.mode_separator,ui,LimitsPage,UsageLimitsPanel,title_separator," · ",,active
565
- limits.label.cursor_plan,ui,LimitsPage,UsageLimitsPanel,cursor_plan,"Plan",,active
566
- limits.label.cursor_auto,ui,LimitsPage,UsageLimitsPanel,cursor_auto,"Auto",,active
567
- limits.label.cursor_api,ui,LimitsPage,UsageLimitsPanel,cursor_api,"API",,active
568
- limits.label.kiro_month,ui,LimitsPage,UsageLimitsPanel,kiro_month,"Month",,active
569
- limits.label.kiro_bonus,ui,LimitsPage,UsageLimitsPanel,kiro_bonus,"Bonus",,active
570
- limits.label.kimi_weekly,ui,LimitsPage,UsageLimitsPanel,kimi_weekly,"Weekly",,active
571
- limits.label.kimi_5h,ui,LimitsPage,UsageLimitsPanel,kimi_5h,"5h",,active
572
- limits.label.kimi_total,ui,LimitsPage,UsageLimitsPanel,kimi_total,"Total",,active
573
- limits.label.kimi_parallel,ui,LimitsPage,UsageLimitsPanel,kimi_parallel,"Parallel: {{count}}",,active
574
- limits.label.copilot_premium,ui,LimitsPage,UsageLimitsPanel,copilot_premium,"Premium",,active
575
- limits.label.copilot_chat,ui,LimitsPage,UsageLimitsPanel,copilot_chat,"Chat",,active
576
- limits.label.grok_month,ui,LimitsPage,UsageLimitsPanel,grok_month,"Month",,active
577
- limits.label.grok_ondemand,ui,LimitsPage,UsageLimitsPanel,grok_ondemand,"On-demand",,active
578
- limits.provider.claude,ui,LimitsPage,UsageLimitsPanel,provider_claude,"Claude",,active
579
- limits.provider.codex,ui,LimitsPage,UsageLimitsPanel,provider_codex,"Codex",,active
580
- limits.provider.cursor,ui,LimitsPage,UsageLimitsPanel,provider_cursor,"Cursor",,active
581
- limits.provider.gemini,ui,LimitsPage,UsageLimitsPanel,provider_gemini,"Gemini",,active
582
- limits.provider.kimi,ui,LimitsPage,UsageLimitsPanel,provider_kimi,"Kimi",,active
583
- limits.provider.kiro,ui,LimitsPage,UsageLimitsPanel,provider_kiro,"Kiro",,active
584
- limits.provider.grok,ui,LimitsPage,UsageLimitsPanel,provider_grok,"Grok Build",,active
585
- limits.provider.copilot,ui,LimitsPage,UsageLimitsPanel,provider_copilot,"GitHub Copilot",,active
586
- limits.provider.antigravity,ui,LimitsPage,UsageLimitsPanel,provider_antigravity,"Antigravity",,active
587
- limits.label.claude_5h,ui,LimitsPage,UsageLimitsPanel,claude_5h,"5h",,active
588
- limits.label.claude_7d,ui,LimitsPage,UsageLimitsPanel,claude_7d,"7d",,active
589
- limits.label.claude_opus,ui,LimitsPage,UsageLimitsPanel,claude_opus,"Opus",,active
590
- limits.label.codex_5h,ui,LimitsPage,UsageLimitsPanel,codex_5h,"5h",,active
591
- limits.label.codex_7d,ui,LimitsPage,UsageLimitsPanel,codex_7d,"7d",,active
592
- limits.label.codex_spark_5h,ui,LimitsPage,UsageLimitsPanel,codex_spark_5h,"Spark 5h",,active
593
- limits.label.codex_spark_7d,ui,LimitsPage,UsageLimitsPanel,codex_spark_7d,"Spark 7d",,active
594
- limits.label.gemini_pro,ui,LimitsPage,UsageLimitsPanel,gemini_pro,"Pro",,active
595
- limits.label.gemini_flash,ui,LimitsPage,UsageLimitsPanel,gemini_flash,"Flash",,active
596
- limits.label.gemini_lite,ui,LimitsPage,UsageLimitsPanel,gemini_lite,"Lite",,active
597
- limits.label.antigravity_claude,ui,LimitsPage,UsageLimitsPanel,antigravity_claude,"Claude",,active
598
- limits.label.antigravity_gpro,ui,LimitsPage,UsageLimitsPanel,antigravity_gpro,"G Pro",,active
599
- limits.label.antigravity_flash,ui,LimitsPage,UsageLimitsPanel,antigravity_flash,"Flash",,active
600
- limits.bar.sub_one_percent,ui,LimitsPage,UsageLimitsPanel,bar_sub_one_percent,"<1",,active
601
- limits.status.not_connected,ui,LimitsPage,UsageLimitsPanel,status_not_connected,"Not connected",,active
602
- limits.status.no_data,ui,LimitsPage,UsageLimitsPanel,status_no_data,"No live limit data returned",,active
603
- limits.status.all_hidden,ui,LimitsPage,UsageLimitsPanel,status_all_hidden,"All limit providers are hidden. Open display settings to show them.",,active
604
- shared.time.now,shared,*,Shared,time_now,"now",,active
605
- nav.ip_check,shared,*,Sidebar,nav_ip_check,Claude IP Check,,active
606
- nav.skills,shared,*,Sidebar,nav_skills,Skills,,active
607
- skills.page.title,ui,SkillsPage,SkillsPage,title,Skills,,active
608
- skills.tab.my,ui,SkillsPage,SkillsPage,tab_my,My Skills,,active
609
- skills.tab.browse,ui,SkillsPage,SkillsPage,tab_browse,Browse,,active
610
- skills.action.refresh,ui,SkillsPage,SkillsPage,action_refresh,Refresh,,active
611
- skills.action.install,ui,SkillsPage,SkillCard,action_install,Install,,active
612
- skills.action.choose_targets,ui,SkillsPage,SkillCard,action_choose_targets,"Choose targets",,active
613
- skills.target.menu_label,ui,SkillsPage,SkillCard,target_menu_label,"Install to",,active
614
- skills.target.none,ui,SkillsPage,SkillsPage,target_none,"no targets",,active
615
- skills.toast.installed,ui,SkillsPage,SkillsPage,toast_installed,"Installed {{name}} to {{targets}}.",,active
616
- skills.action.remove,ui,SkillsPage,SkillsPage,action_remove,Remove,,active
617
- skills.action.search,ui,SkillsPage,SkillsPage,action_search,Search,,active
618
- skills.action.search_aria,ui,SkillsPage,SkillsPage,action_search_aria,"Search skills",,active
619
- skills.action.search_clear,ui,SkillsPage,SkillsPage,action_search_clear,"Clear search",,active
620
- skills.target.synced_summary,ui,SkillsPage,InstalledSkillRow,target_synced_summary,"Synced to {{targets}}",,active
621
- skills.target.synced_none,ui,SkillsPage,InstalledSkillRow,target_synced_none,"Not synced to any agent",,active
622
- skills.row.open_details,ui,SkillsPage,InstalledSkillRow,row_open_details,"Open details for {{name}}",,active
623
- skills.detail.close,ui,SkillsPage,SkillDetailPanel,detail_close,"Close details",,active
624
- skills.detail.sync_section_title,ui,SkillsPage,SkillDetailPanel,detail_sync_section_title,"Sync to",,active
625
- skills.detail.remove_button,ui,SkillsPage,SkillDetailPanel,detail_remove_button,"Remove from all agents",,active
626
- skills.detail.remove_confirm_hint,ui,SkillsPage,SkillDetailPanel,detail_remove_confirm_hint,"This unsyncs the skill from every agent and deletes its local copy.",,active
627
- skills.filter.agent_label,ui,SkillsPage,SkillsPage,filter_agent_label,"Agent",,active
628
- skills.filter.agent_all,ui,SkillsPage,SkillsPage,filter_agent_all,"All agents",,active
629
- skills.filter.clear,ui,SkillsPage,SkillsPage,filter_clear,"Clear filters",,active
630
- skills.my.placeholder,ui,SkillsPage,SkillsPage,my_placeholder,"Filter installed skills…",,active
631
- skills.filter.result_count,ui,SkillsPage,SkillsPage,filter_result_count,"{{filtered}} of {{total}} skills",,active
632
- skills.filter.result_count_browse,ui,SkillsPage,SkillsPage,filter_result_count_browse,"{{count}} results",,active
633
- skills.empty.no_match,ui,SkillsPage,SkillsPage,empty_no_match,"No skills match the current filters.",,active
634
- hint.dismiss,ui,shared,DismissibleHint,hint_dismiss,"Dismiss hint",,active
635
- hint.dismissible_aria,ui,shared,DismissibleHint,hint_dismissible_aria,"Dismissible hint",,active
636
- skills.card.installed,ui,SkillsPage,SkillCard,card_installed,Installed,,active
637
- skills.card.manage,ui,SkillsPage,SkillCard,card_manage,Manage,,active
638
- skills.card.targets_prefix,ui,SkillsPage,SkillCard,card_targets_prefix,"Will install to:",,active
639
- skills.card.targets_change,ui,SkillsPage,SkillCard,card_targets_change,Change,,active
640
- skills.card.installs,ui,SkillsPage,SkillCard,installs,"{{count}} installs",,active
641
- skills.source.label,ui,SkillsPage,SkillsPage,source_label,Source,,active
642
- skills.source.all,ui,SkillsPage,SkillsPage,source_all,All repositories,,active
643
- skills.mode.repo,ui,SkillsPage,SkillsPage,mode_repo,Repositories,,active
644
- skills.mode.skillssh,ui,SkillsPage,SkillsPage,mode_skillssh,skills.sh,,active
645
- skills.browse.placeholder_all,ui,SkillsPage,SkillsPage,browse_placeholder_all,"Search across enabled repositories…",,active
646
- skills.browse.placeholder_repo,ui,SkillsPage,SkillsPage,browse_placeholder_repo,"Search in {{repo}}…",,active
647
- skills.browse.placeholder_skillssh,ui,SkillsPage,SkillsPage,browse_placeholder_skillssh,"Search the skills.sh registry…",,active
648
- skills.browse.empty_sources,ui,SkillsPage,SkillsPage,browse_empty_sources,"Add a GitHub repository below to start browsing skills.",,active
649
- skills.browse.add_repo_hint,ui,SkillsPage,SkillsPage,browse_add_repo_hint,"Need more skills? Add a GitHub repository.",,active
650
- skills.browse.manage_sources,ui,SkillsPage,SkillsPage,browse_manage_sources,Manage sources,,active
651
- skills.browse.hint_skillssh,ui,SkillsPage,SkillsPage,browse_hint_skillssh,"Type at least 2 characters to search skills.sh.",,active
652
- skills.browse.loading_hint,ui,SkillsPage,SkillsPage,browse_loading_hint,"Fetching skill metadata from GitHub. First load can take up to a minute; results are cached.",,active
653
- skills.error.generic,ui,SkillsPage,SkillsPage,error_generic,"Skill operation failed.",,active
654
- skills.confirm.remove_title,ui,SkillsPage,SkillsPage,confirm_remove_title,"Remove {{name}}?",,active
655
- skills.confirm.remove_managed,ui,SkillsPage,SkillsPage,confirm_remove_managed,"This skill will be removed from every connected AI tool. You'll have a few seconds to undo.",,active
656
- skills.confirm.remove_local,ui,SkillsPage,SkillsPage,confirm_remove_local,"This will delete the skill folder on disk from every connected AI tool. This cannot be undone.",,active
657
- skills.toast.removed,ui,SkillsPage,SkillsPage,toast_removed,"Removed {{name}}.",,active
658
- shared.action.undo,shared,*,Shared,action_undo,"Undo",,active
659
- shared.action.dismiss,shared,*,Shared,action_dismiss,"Dismiss",,active
660
- shared.action.cancel,shared,*,Shared,action_cancel,"Cancel",,active
661
- shared.action.apply,shared,*,Shared,action_apply,"Apply",,active
662
- skills.empty.my,ui,SkillsPage,SkillsPage,empty_my,"No skills yet. Open Discover to search and install.",,active
663
- skills.empty.my_cta,ui,SkillsPage,SkillsPage,empty_my_cta,"Browse",,active
664
- skills.empty.browse,ui,SkillsPage,SkillsPage,empty_browse,"No skills found for this source.",,active
665
- skills.empty.search,ui,SkillsPage,SkillsPage,empty_search,"No results. Try a different query.",,active
666
- skills.repo.placeholder,ui,SkillsPage,SkillsPage,repo_placeholder,"owner/repository",,active
667
- skills.repo.add,ui,SkillsPage,SkillsPage,repo_add,"Add repository",,active
668
- skills.repo.invalid,ui,SkillsPage,SkillsPage,repo_invalid,"Use owner/repository or a GitHub repository URL.",,active
669
- skills.repo.remove,ui,SkillsPage,RepoRow,repo_remove,"Remove repository",,active
670
- settings.appearance.language.label,ui,SettingsPage,SettingsPage,language_label,Language,,active
671
- settings.appearance.language.hint,ui,SettingsPage,SettingsPage,language_hint,Use System to follow your computer language by default.,,active
672
- settings.appearance.language.system,ui,SettingsPage,SettingsPage,language_system,System,,active
673
- settings.appearance.language.english,ui,SettingsPage,SettingsPage,language_english,English,,active
674
- settings.appearance.language.chinese,ui,SettingsPage,SettingsPage,language_chinese,Simplified Chinese,,active
675
- settings.appearance.language.traditional_chinese,ui,SettingsPage,SettingsPage,language_traditional_chinese,Traditional Chinese,,active
676
- settings.appearance.language.japanese,ui,SettingsPage,SettingsPage,language_japanese,Japanese,,active
677
- settings.appearance.language.korean,ui,SettingsPage,SettingsPage,language_korean,Korean,,active
678
- dashboard.context_breakdown.empty,dashboard,DashboardPage,ContextBreakdownPanel,empty,"No Claude Code activity in the selected period.",,active
679
- dashboard.context_breakdown.empty_codex,dashboard,DashboardPage,ContextBreakdownPanel,empty_codex,"No Codex activity in the selected period.",,active
680
- dashboard.context_breakdown.error,dashboard,DashboardPage,ContextBreakdownPanel,error,"Couldn't read Claude Code logs for this view.",,active
681
- dashboard.context_breakdown.error_codex,dashboard,DashboardPage,ContextBreakdownPanel,error_codex,"Couldn't read Codex logs for this view.",,active
682
- dashboard.context_breakdown.bar_aria,dashboard,DashboardPage,ContextBreakdownPanel,bar_aria,"Token distribution: {{summary}}",,active
683
- dashboard.context_breakdown.system_prefix_tooltip,dashboard,DashboardPage,ContextBreakdownPanel,tooltip,"System prompt, tools schema, skills, rules, and MCP descriptions are cached together as one prefix and can't be separated from the logs.",,active
684
- dashboard.context_breakdown.footnote,dashboard,DashboardPage,ContextBreakdownPanel,footnote,"Approximate: cache reads accumulate across turns, so conversation history dominates over time. Only Claude Code logs expose the per-message detail this view requires.",,active
685
- dashboard.context_breakdown.footnote_codex,dashboard,DashboardPage,ContextBreakdownPanel,footnote_codex,"Codex uses non-overlapping token buckets here. Tool and exec drill-downs are separate heuristic attributions over the same turns.",,active
686
- dashboard.context_breakdown.category.system_prompt,dashboard,DashboardPage,ContextBreakdownPanel,cat,"System prompt",,active
687
- dashboard.context_breakdown.category.messages,dashboard,DashboardPage,ContextBreakdownPanel,cat,"Messages",,active
688
- dashboard.context_breakdown.category.tool_calls,dashboard,DashboardPage,ContextBreakdownPanel,cat,"Tool calls",,active
689
- dashboard.context_breakdown.category.mcp_servers,dashboard,DashboardPage,ContextBreakdownPanel,cat,"MCP servers",,active
690
- dashboard.context_breakdown.category.custom_agents,dashboard,DashboardPage,ContextBreakdownPanel,cat,"Custom agents",,active
691
- dashboard.context_breakdown.category.reasoning,dashboard,DashboardPage,ContextBreakdownPanel,cat,"Reasoning",,active
692
- dashboard.context_breakdown.category.skills,dashboard,DashboardPage,ContextBreakdownPanel,cat,"Skills",,active
693
- dashboard.context_breakdown.loading_aria,dashboard,DashboardPage,ContextBreakdownPanel,loading_aria,"Loading context breakdown",,active
694
- dashboard.context_breakdown.loading_hint,dashboard,DashboardPage,ContextBreakdownPanel,loading_hint,"Scanning session logs…",,active
695
- dashboard.context_breakdown.tool_details.total_column,dashboard,DashboardPage,ContextBreakdownPanel,tool_details_total_column,"Total",,active
696
- dashboard.context_breakdown.tool_details.unavailable_codex,dashboard,DashboardPage,ContextBreakdownPanel,tool_details_unavailable_codex,"Tool-level Codex details are unavailable for this period; showing queue totals only.",,active
697
- dashboard.context_breakdown.message_details.title,dashboard,DashboardPage,ContextBreakdownPanel,message_details_title,"Message details",,active
698
- dashboard.context_breakdown.message_details.note,dashboard,DashboardPage,ContextBreakdownPanel,message_details_note,"Aggregated only — message text is not stored.",,active
699
- dashboard.context_breakdown.message_details.category_column,dashboard,DashboardPage,ContextBreakdownPanel,message_details_category_column,"Category",,active
700
- dashboard.context_breakdown.message_details.user_input,dashboard,DashboardPage,ContextBreakdownPanel,message_details_user_input,"User input",,active
701
- dashboard.context_breakdown.message_details.conversation_history,dashboard,DashboardPage,ContextBreakdownPanel,message_details_conversation_history,"Conversation history",,active
702
- dashboard.context_breakdown.message_details.assistant_response,dashboard,DashboardPage,ContextBreakdownPanel,message_details_assistant_response,"Assistant response",,active
703
- dashboard.context_breakdown.exec_details.title,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_title,"Exec command details",,active
704
- dashboard.context_breakdown.exec_details.kind_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_kind_column,"Type",,active
705
- dashboard.context_breakdown.exec_details.calls_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_calls_column,"Calls",,active
706
- dashboard.context_breakdown.exec_details.failures_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_failures_column,"Fail",,active
707
- dashboard.context_breakdown.exec_details.duration_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_duration_column,"Duration",,active
708
- dashboard.context_breakdown.exec_details.max_duration_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_max_duration_column,"Max",,active
709
- dashboard.context_breakdown.exec_details.output_column,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_output_column,"Lines",,active
710
- dashboard.context_breakdown.exec_details.group_by_type,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_type,"By type",,active
711
- dashboard.context_breakdown.exec_details.group_by_executable,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_executable,"Executable",,active
712
- dashboard.context_breakdown.exec_details.group_by_command,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_command,"Command",,active
713
- dashboard.context_breakdown.exec_details.group_by_duration,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_duration,"Duration",,active
714
- dashboard.context_breakdown.exec_details.group_by_output,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_output,"Output",,active
715
- dashboard.context_breakdown.exec_details.group_by_exit,dashboard,DashboardPage,ContextBreakdownPanel,exec_details_group_by_exit,"By exit",,active
716
- heatmap.3d.hover_tip,ui,ActivityHeatmap,ActivityHeatmap,hover_tip,"Click to enter 3D fullscreen rotation analysis mode",,active
717
- heatmap.3d.modal.title,ui,ActivityHeatmap,ActivityHeatmap,title,"Token 3D Perspective",,active
718
- heatmap.3d.modal.desc,ui,ActivityHeatmap,ActivityHeatmap,desc,"Drag with left mouse button to rotate. Hover to inspect daily activity and multidimensional metrics.",,active
719
- heatmap.3d.modal.stats.total_tokens,ui,ActivityHeatmap,ActivityHeatmap,stats_total_tokens,"Annual Total Tokens",,active
720
- heatmap.3d.modal.stats.precision_total_tokens,ui,ActivityHeatmap,ActivityHeatmap,stats_precision_total_tokens,"Precise annual consumption",,active
721
- heatmap.3d.modal.stats.estimated_cost,ui,ActivityHeatmap,ActivityHeatmap,stats_estimated_cost,"Annual Estimated Cost",,active
722
- heatmap.3d.modal.stats.active_rate_days,ui,ActivityHeatmap,ActivityHeatmap,stats_active_rate_days,"Active Rate / Days",,active
723
- heatmap.3d.modal.stats.max_streak,ui,ActivityHeatmap,ActivityHeatmap,stats_max_streak,"Longest Active Streak",,active
724
- heatmap.3d.modal.stats.days_suffix,ui,ActivityHeatmap,ActivityHeatmap,stats_days_suffix,"Days",,active
725
- heatmap.3d.modal.stats.peak_day,ui,ActivityHeatmap,ActivityHeatmap,stats_peak_day,"Peak Day Blowout",,active
726
- heatmap.3d.modal.stats.precision_peak_value,ui,ActivityHeatmap,ActivityHeatmap,stats_precision_peak_value,"Precise daily peak",,active
727
- heatmap.3d.modal.stats.no_data,ui,ActivityHeatmap,ActivityHeatmap,stats_no_data,"No data",,active
728
- heatmap.3d.modal.legend.title,ui,ActivityHeatmap,ActivityHeatmap,legend_title,"Activity Levels",,active
729
- heatmap.3d.modal.palette.emerald,ui,ActivityHeatmap,ActivityHeatmap,palette_emerald,"Emerald City",,active
730
- heatmap.3d.modal.palette.ocean,ui,ActivityHeatmap,ActivityHeatmap,palette_ocean,"Ocean Abyss",,active
731
- heatmap.3d.modal.palette.neon,ui,ActivityHeatmap,ActivityHeatmap,palette_neon,"Cyber Neon",,active
732
- heatmap.3d.modal.palette.amber,ui,ActivityHeatmap,ActivityHeatmap,palette_amber,"Blazing Amber",,active
733
- heatmap.3d.modal.control.play,ui,ActivityHeatmap,ActivityHeatmap,control_play,"Start slow rotation",,active
734
- heatmap.3d.modal.control.pause,ui,ActivityHeatmap,ActivityHeatmap,control_pause,"Pause auto-rotation",,active
735
- heatmap.3d.modal.control.reset,ui,ActivityHeatmap,ActivityHeatmap,control_reset,"Reset 3D view",,active
736
- heatmap.3d.modal.footer.tip,ui,ActivityHeatmap,ActivityHeatmap,footer_tip,"Pinch to zoom / Scroll to zoom / Drag to rotate 3D chart",,active
737
- heatmap.3d.modal.ai.title.default,ui,ActivityHeatmap,ActivityHeatmap,ai_title_default,"Persistent Creator",,active
738
- heatmap.3d.modal.ai.eval.default,ui,ActivityHeatmap,ActivityHeatmap,ai_eval_default,"Persist in the river of technology. Daily coding may not always be majestic, but every tiny active point records your thoughts and exploration. Sparks accumulate, eventually converging into your own digital ocean.",,active
739
- heatmap.3d.modal.ai.title.peak,ui,ActivityHeatmap,ActivityHeatmap,ai_title_peak,"Peak Contributor",,active
740
- heatmap.3d.modal.ai.eval.peak,ui,ActivityHeatmap,ActivityHeatmap,ai_eval_peak,"This year, your token output shows extremely high engineering density. This scale of development is equivalent to deeply participating in the refactoring of a medium-to-large system base, with each keystroke converging complex logic into deterministic code. A testament to pure engineering passion.",,active
741
- heatmap.3d.modal.ai.title.heavy,ui,ActivityHeatmap,ActivityHeatmap,ai_title_heavy,"Heavy Producer",,active
742
- heatmap.3d.modal.ai.eval.heavy,ui,ActivityHeatmap,ActivityHeatmap,ai_eval_heavy,"Exceptional continuous output. Your accumulated tokens have reached millions, equivalent to the volume of dozens of technical novellas. The highly saturated coding pace demonstrates your great execution in building digital assets.",,active
743
- heatmap.3d.modal.ai.title.core,ui,ActivityHeatmap,ActivityHeatmap,ai_title_core,"Core Productivity Expert",,active
744
- heatmap.3d.modal.ai.eval.core,ui,ActivityHeatmap,ActivityHeatmap,ai_eval_core,"Highly resilient long-term commitment. Over the past year, you have steadily maintained a high-intensity development rhythm. With solid code volume and token output, you have silently built the core architecture, a true engineering backbone.",,active
745
- heatmap.3d.modal.ai.title.steady,ui,ActivityHeatmap,ActivityHeatmap,ai_title_steady,"Steady Developer",,active
746
- heatmap.3d.modal.ai.eval.steady,ui,ActivityHeatmap,ActivityHeatmap,ai_eval_steady,"Steady and firm accumulation of technology. Every step of token increment is a brick in the foundation of your future. This slow but steady pace is the path for an excellent developer to become an engineering master.",,active
747
- heatmap.3d.voxel.joke.1,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_joke1,"🔥 Extremely crazy! Produced {{value}} tokens! Are you training a large language model or writing a compiler by hand?",,active
748
- heatmap.3d.voxel.joke.2,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_joke2,"🚀 Epic output! Total {{value}} tokens. Today's production can circle the earth once, even the AI is amazed by you!",,active
749
- heatmap.3d.voxel.joke.3,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_joke3,"⚡ Critical Day! {{value}} tokens. Code is gushing out, and the keyboard is starting to smoke!",,active
750
- heatmap.3d.voxel.level3,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_level3,"⚡ Productivity explosion ({{value}} tokens)! High efficiency and focus, keep up this peak state!",,active
751
- heatmap.3d.voxel.level2,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_level2,"🌱 Getting into the groove ({{value}} tokens)! Steady output, every keystroke is contributing to the architecture.",,active
752
- heatmap.3d.voxel.level1,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_level1,"🍃 Every drop counts ({{value}} tokens). Tiny commits are investments in the future, embrace compound interest!",,active
753
- heatmap.3d.voxel.level0,ui,ActivityHeatmap3D,ActivityHeatmap3D,voxel_level0,"💤 Recharging. On days without coding, inspiration grows silently.",,active
754
- ipcheck.page.title,ui,IpCheckPage,IpCheckPage,page_title,"Claude IP Check",,active
755
- ipcheck.page.subtitle,ui,IpCheckPage,IpCheckPage,page_subtitle,"Inspect the exit IP used to reach Claude, plus reputation, geo, and risk signals that may affect sign-in or trigger rate-limiting.",,active
756
- ipcheck.mask.toggle,ui,IpCheckPage,IpCheckPage,mask_toggle,"Hide IP",,active
757
- ipcheck.ipv6.warn,ui,IpCheckPage,IpCheckPage,ipv6_warn,"IPv6 detected. Using IPv6 to reach Claude Code is not recommended; some checks may be incomplete.",,active
758
- ipcheck.ip.cn,ui,IpCheckPage,IpCheckPage,ip_cn,"China exit IPv4",,active
759
- ipcheck.ip.cloudflare,ui,IpCheckPage,IpCheckPage,ip_cloudflare,"Cloudflare exit",,active
760
- ipcheck.ip.claude,ui,IpCheckPage,IpCheckPage,ip_claude,"Claude exit",,active
761
- ipcheck.ip.failed,ui,IpCheckPage,IpCheckPage,ip_failed,"Unable to fetch",,active
762
- ipcheck.ip.loading,ui,IpCheckPage,IpCheckPage,ip_loading,"Loading...",,active
763
- ipcheck.trust.title,ui,IpCheckPage,IpCheckPage,trust_title,"Trust Score",,active
764
- ipcheck.trust.subtitle,ui,IpCheckPage,IpCheckPage,trust_subtitle,"IP cleanliness from Claude's risk view",,active
765
- ipcheck.trust.no_data,ui,IpCheckPage,IpCheckPage,trust_no_data,"No data",,active
766
- ipcheck.trust.no_ip,ui,IpCheckPage,IpCheckPage,trust_no_ip,"Claude exit IP not detected — cannot score",,active
767
- ipcheck.trust.no_score,ui,IpCheckPage,IpCheckPage,trust_no_score,"No score data for this IP",,active
768
- ipcheck.trust.gauge.low,ui,IpCheckPage,IpCheckPage,trust_gauge_low,"0 High risk",,active
769
- ipcheck.trust.gauge.high,ui,IpCheckPage,IpCheckPage,trust_gauge_high,"100 Trusted",,active
770
- ipcheck.trust.label.pristine,ui,IpCheckPage,IpCheckPage,trust_label_pristine,"Pristine",,active
771
- ipcheck.trust.label.clean,ui,IpCheckPage,IpCheckPage,trust_label_clean,"Clean",,active
772
- ipcheck.trust.label.good,ui,IpCheckPage,IpCheckPage,trust_label_good,"Good",,active
773
- ipcheck.trust.label.neutral,ui,IpCheckPage,IpCheckPage,trust_label_neutral,"Neutral",,active
774
- ipcheck.trust.label.suspicious,ui,IpCheckPage,IpCheckPage,trust_label_suspicious,"Suspicious",,active
775
- ipcheck.trust.label.unreachable,ui,IpCheckPage,IpCheckPage,trust_label_unreachable,"Unreachable",,active
776
- ipcheck.trust.text.excellent,ui,IpCheckPage,IpCheckPage,trust_text_excellent,"Excellent reputation",,active
777
- ipcheck.trust.text.great,ui,IpCheckPage,IpCheckPage,trust_text_great,"Strong reputation",,active
778
- ipcheck.trust.text.minor,ui,IpCheckPage,IpCheckPage,trust_text_minor,"Minor risk",,active
779
- ipcheck.trust.text.moderate,ui,IpCheckPage,IpCheckPage,trust_text_moderate,"Moderate risk",,active
780
- ipcheck.trust.text.severe,ui,IpCheckPage,IpCheckPage,trust_text_severe,"Severe risk",,active
781
- ipcheck.trust.text.restricted,ui,IpCheckPage,IpCheckPage,trust_text_restricted,"Restricted region — Claude enforces strict risk controls",,active
782
- ipcheck.trust.region_warn.title,ui,IpCheckPage,IpCheckPage,region_warn_title,"Claude exit IP is in {{region}}",,active
783
- ipcheck.trust.region_warn.body,ui,IpCheckPage,IpCheckPage,region_warn_body,"Avoid signing in — high chance of triggering account flagging.",,active
784
- ipcheck.trust.region_support,ui,IpCheckPage,IpCheckPage,region_support,"Claude support",,active
785
- ipcheck.trust.region.accessible,ui,IpCheckPage,IpCheckPage,region_accessible,"Accessible",,active
786
- ipcheck.common.unknown,ui,IpCheckPage,IpCheckPage,common_unknown,"Unknown",,active
787
- ipcheck.props.title,ui,IpCheckPage,IpCheckPage,props_title,"IP Attributes",,active
788
- ipcheck.props.region,ui,IpCheckPage,IpCheckPage,props_region,"Region",,active
789
- ipcheck.props.city,ui,IpCheckPage,IpCheckPage,props_city,"City",,active
790
- ipcheck.props.type,ui,IpCheckPage,IpCheckPage,props_type,"Type",,active
791
- ipcheck.props.asn,ui,IpCheckPage,IpCheckPage,props_asn,"ASN",,active
792
- ipcheck.props.org,ui,IpCheckPage,IpCheckPage,props_org,"ISP",,active
793
- ipcheck.props.residential,ui,IpCheckPage,IpCheckPage,props_residential,"Residential",,active
794
- ipcheck.props.datacenter,ui,IpCheckPage,IpCheckPage,props_datacenter,"Datacenter",,active
795
- ipcheck.security.title,ui,IpCheckPage,IpCheckPage,sec_title,"Security Checks",,active
796
- ipcheck.security.vpn,ui,IpCheckPage,IpCheckPage,sec_vpn,"VPN",,active
797
- ipcheck.security.proxy,ui,IpCheckPage,IpCheckPage,sec_proxy,"Proxy",,active
798
- ipcheck.security.tor,ui,IpCheckPage,IpCheckPage,sec_tor,"Tor",,active
799
- ipcheck.security.crawler,ui,IpCheckPage,IpCheckPage,sec_crawler,"Crawler",,active
800
- ipcheck.security.abuser,ui,IpCheckPage,IpCheckPage,sec_abuser,"Abuse history",,active
801
- ipcheck.security.proxy_flag,ui,IpCheckPage,IpCheckPage,sec_proxy_flag,"Proxy",,active
802
- ipcheck.security.crawler_yes,ui,IpCheckPage,IpCheckPage,sec_crawler_yes,"Yes",,active
803
- ipcheck.security.crawler_no,ui,IpCheckPage,IpCheckPage,sec_crawler_no,"No",,active
804
- ipcheck.security.abuser_yes,ui,IpCheckPage,IpCheckPage,sec_abuser_yes,"Reported",,active
805
- ipcheck.security.abuser_no,ui,IpCheckPage,IpCheckPage,sec_abuser_no,"Clean",,active
806
- ipcheck.security.clean,ui,IpCheckPage,IpCheckPage,sec_clean,"Not detected",,active
807
- ipcheck.avail.title,ui,IpCheckPage,IpCheckPage,avail_title,"Claude Availability",,active
808
- ipcheck.avail.tooltip,ui,IpCheckPage,IpCheckPage,avail_tooltip,"Claude servers run in the US; latency above 100ms from Asia is normal.",,active
809
- ipcheck.avail.refresh,ui,IpCheckPage,IpCheckPage,avail_refresh,"Refresh",,active
810
- ipcheck.avail.svc_row,ui,IpCheckPage,IpCheckPage,avail_svc_row,"Service status",,active
811
- ipcheck.avail.latency.normal,ui,IpCheckPage,IpCheckPage,avail_lat_normal,"Normal",,active
812
- ipcheck.avail.latency.good,ui,IpCheckPage,IpCheckPage,avail_lat_good,"Good",,active
813
- ipcheck.avail.latency.slow,ui,IpCheckPage,IpCheckPage,avail_lat_slow,"Slow",,active
814
- ipcheck.avail.latency.unreachable,ui,IpCheckPage,IpCheckPage,avail_lat_unreach,"Unreachable",,active
815
- ipcheck.avail.svc.none,ui,IpCheckPage,IpCheckPage,avail_svc_none,"All systems normal",,active
816
- ipcheck.avail.svc.minor,ui,IpCheckPage,IpCheckPage,avail_svc_minor,"Minor outage",,active
817
- ipcheck.avail.svc.major,ui,IpCheckPage,IpCheckPage,avail_svc_major,"Major outage",,active
818
- ipcheck.avail.svc.critical,ui,IpCheckPage,IpCheckPage,avail_svc_critical,"Critical outage",,active
819
- ipcheck.avail.svc.maintenance,ui,IpCheckPage,IpCheckPage,avail_svc_maintenance,"Maintenance",,active
820
- ipcheck.avail.svc.other,ui,IpCheckPage,IpCheckPage,avail_svc_other,"Disrupted",,active
821
- ipcheck.dns.title,ui,IpCheckPage,IpCheckPage,dns_title,"DNS Leak",,active
822
- ipcheck.dns.status,ui,IpCheckPage,IpCheckPage,dns_status,"Status",,active
823
- ipcheck.dns.outlet,ui,IpCheckPage,IpCheckPage,dns_outlet,"DNS exit",,active
824
- ipcheck.dns.outlet_ip,ui,IpCheckPage,IpCheckPage,dns_outlet_ip,"DNS exit IP",,active
825
- ipcheck.dns.isp,ui,IpCheckPage,IpCheckPage,dns_isp,"Provider",,active
826
- ipcheck.dns.leaked,ui,IpCheckPage,IpCheckPage,dns_leaked,"Possible leak",,active
827
- ipcheck.dns.no_leak,ui,IpCheckPage,IpCheckPage,dns_no_leak,"No leak detected",,active
828
- ipcheck.dns.encrypted,ui,IpCheckPage,IpCheckPage,dns_encrypted,"DNS encrypted or hidden",,active
829
- ipcheck.dns.cn_tag,ui,IpCheckPage,IpCheckPage,dns_cn_tag,"China DNS",,active
830
- ipcheck.udp.title,ui,IpCheckPage,IpCheckPage,udp_title,"WebRTC UDP Leak",,active
831
- ipcheck.udp.status,ui,IpCheckPage,IpCheckPage,udp_status,"Status",,active
832
- ipcheck.udp.outlet,ui,IpCheckPage,IpCheckPage,udp_outlet,"UDP exit",,active
833
- ipcheck.udp.outlet_ip,ui,IpCheckPage,IpCheckPage,udp_outlet_ip,"UDP exit IP",,active
834
- ipcheck.udp.origin,ui,IpCheckPage,IpCheckPage,udp_origin,"Origin",,active
835
- ipcheck.udp.disabled,ui,IpCheckPage,IpCheckPage,udp_disabled,"WebRTC disabled",,active
836
- ipcheck.udp.no_leak,ui,IpCheckPage,IpCheckPage,udp_no_leak,"No leak detected",,active
837
- ipcheck.udp.leaked,ui,IpCheckPage,IpCheckPage,udp_leaked,"Possible leak",,active
838
- ipcheck.udp.anomaly,ui,IpCheckPage,IpCheckPage,udp_anomaly,"Anomaly",,active
839
- ipcheck.device.title,ui,IpCheckPage,IpCheckPage,dev_title,"Device Info",,active
840
- ipcheck.device.tz,ui,IpCheckPage,IpCheckPage,dev_tz,"Timezone",,active
841
- ipcheck.device.lang,ui,IpCheckPage,IpCheckPage,dev_lang,"Language",,active
842
- ipcheck.device.os,ui,IpCheckPage,IpCheckPage,dev_os,"OS / Browser",,active
843
- ipcheck.device.touch,ui,IpCheckPage,IpCheckPage,dev_touch,"Touch",,active
844
- ipcheck.device.net,ui,IpCheckPage,IpCheckPage,dev_net,"Network type",,active
845
- ipcheck.device.dnt,ui,IpCheckPage,IpCheckPage,dev_dnt,"Do Not Track",,active
846
- ipcheck.device.webgl_render,ui,IpCheckPage,IpCheckPage,dev_webgl_render,"WebGL renderer",,active
847
- ipcheck.device.canvas_fp,ui,IpCheckPage,IpCheckPage,dev_canvas_fp,"Canvas fingerprint",,active
848
- ipcheck.device.webgl_fp,ui,IpCheckPage,IpCheckPage,dev_webgl_fp,"WebGL fingerprint",,active
849
- ipcheck.device.match,ui,IpCheckPage,IpCheckPage,dev_match,"Match",,active
850
- ipcheck.device.mismatch,ui,IpCheckPage,IpCheckPage,dev_mismatch,"Mismatch",,active
851
- ipcheck.device.local,ui,IpCheckPage,IpCheckPage,dev_local,"Local",,active
852
- ipcheck.device.estimate_suffix,ui,IpCheckPage,IpCheckPage,dev_est_suffix,"(est.)",,active
853
- ipcheck.device.diff_equal,ui,IpCheckPage,IpCheckPage,dev_diff_eq,"Slight offset",,active
854
- ipcheck.device.diff_ahead,ui,IpCheckPage,IpCheckPage,dev_diff_ahead,"Claude is {{h}}h ahead",,active
855
- ipcheck.device.diff_behind,ui,IpCheckPage,IpCheckPage,dev_diff_behind,"Claude is {{h}}h behind",,active
856
- ipcheck.device.lang_expected,ui,IpCheckPage,IpCheckPage,dev_lang_expected,"Claude region usually",,active
857
- ipcheck.device.touch_yes,ui,IpCheckPage,IpCheckPage,dev_touch_yes,"Yes",,active
858
- ipcheck.device.touch_no,ui,IpCheckPage,IpCheckPage,dev_touch_no,"No",,active
859
- ipcheck.device.dnt_on,ui,IpCheckPage,IpCheckPage,dev_dnt_on,"On",,active
860
- ipcheck.device.dnt_off,ui,IpCheckPage,IpCheckPage,dev_dnt_off,"Off",,active
861
- ipcheck.device.dnt_unset,ui,IpCheckPage,IpCheckPage,dev_dnt_unset,"Unset",,active
862
- ipcheck.device.net_unsupported,ui,IpCheckPage,IpCheckPage,dev_net_unsup,"Not detected",,active
863
- ipcheck.device.unsupported,ui,IpCheckPage,IpCheckPage,dev_unsupported,"Unsupported",,active
864
- ipcheck.history.title,ui,IpCheckPage,IpCheckPage,hist_title,"Claude exit IP history",,active
865
- ipcheck.history.subtitle,ui,IpCheckPage,IpCheckPage,hist_subtitle,"Stored only in this browser, up to 6 entries",,active
866
- ipcheck.history.clear,ui,IpCheckPage,IpCheckPage,hist_clear,"Clear",,active
867
- ipcheck.history.empty,ui,IpCheckPage,IpCheckPage,hist_empty,"No history yet",,active
868
- ipcheck.history.current,ui,IpCheckPage,IpCheckPage,hist_current,"Now",,active
869
- ipcheck.region.CN,ui,IpCheckPage,IpCheckPage,region_cn,"Mainland China",,active
870
- ipcheck.region.HK,ui,IpCheckPage,IpCheckPage,region_hk,"Hong Kong",,active
871
- ipcheck.region.MO,ui,IpCheckPage,IpCheckPage,region_mo,"Macao",,active
872
- ipcheck.region.RU,ui,IpCheckPage,IpCheckPage,region_ru,"Russia",,active
873
- ipcheck.region.KP,ui,IpCheckPage,IpCheckPage,region_kp,"North Korea",,active
874
- ipcheck.region.IR,ui,IpCheckPage,IpCheckPage,region_ir,"Iran",,active
875
- ipcheck.region.SY,ui,IpCheckPage,IpCheckPage,region_sy,"Syria",,active
876
- ipcheck.region.CU,ui,IpCheckPage,IpCheckPage,region_cu,"Cuba",,active
877
- ipcheck.region.BY,ui,IpCheckPage,IpCheckPage,region_by,"Belarus",,active
878
- ipcheck.region.VE,ui,IpCheckPage,IpCheckPage,region_ve,"Venezuela",,active
879
- leaderboard.profile_modal.close,dashboard,LeaderboardProfileModal,LeaderboardProfileModal,close,"Close",,active
880
- leaderboard.profile_modal.loading,dashboard,LeaderboardProfileModal,LeaderboardProfileModal,loading,"Loading profile…",,active
881
- leaderboard.profile_modal.error,dashboard,LeaderboardProfileModal,LeaderboardProfileModal,error,"Failed to load profile.",,active
882
- leaderboard.profile_modal.empty,dashboard,LeaderboardProfileModal,LeaderboardProfileModal,empty,"This profile is not public.",,active
883
- leaderboard.profile_modal.row_aria,dashboard,LeaderboardPage,LeaderboardRow,row_aria,"Open profile for {{name}}",,active
884
- leaderboard.profile_modal.rank,dashboard,LeaderboardProfileModal,Hero,rank,"#{{rank}}",,active
885
- leaderboard.profile_modal.hero.total_tokens,dashboard,LeaderboardProfileModal,Hero,total_tokens,"Total Tokens",,active
886
- leaderboard.profile_modal.hero.total_cost,dashboard,LeaderboardProfileModal,Hero,total_cost,"Total Cost",,active
887
- leaderboard.profile_modal.hero.github,dashboard,LeaderboardProfileModal,Hero,github,"GitHub profile",,active
888
- leaderboard.profile_modal.stat.total_cost,dashboard,LeaderboardProfileModal,StatCards,total_cost,"Total Cost",,active
889
- leaderboard.profile_modal.stat.total_tokens,dashboard,LeaderboardProfileModal,StatCards,total_tokens,"Total Tokens",,active
890
- leaderboard.profile_modal.stat.active_days,dashboard,LeaderboardProfileModal,StatCards,active_days,"Active Days",,active
891
- leaderboard.profile_modal.stat.avg_per_day,dashboard,LeaderboardProfileModal,StatCards,avg_per_day,"Avg/Day",,active
892
- leaderboard.profile_modal.streak.current,dashboard,LeaderboardProfileModal,Streak,current,"Current Streak",,active
893
- leaderboard.profile_modal.streak.longest,dashboard,LeaderboardProfileModal,Streak,longest,"Longest Streak",,active
894
- leaderboard.profile_modal.streak.days,dashboard,LeaderboardProfileModal,Streak,days,"{{count}} days",,active
895
- leaderboard.profile_modal.best_day.title,dashboard,LeaderboardProfileModal,BestDay,title,"Best Day",,active
896
- leaderboard.profile_modal.best_day.none,dashboard,LeaderboardProfileModal,BestDay,none,"—",,active
897
- leaderboard.profile_modal.models.count,dashboard,LeaderboardProfileModal,Models,count,"{{count}} models used",,active
898
- leaderboard.profile_modal.models.favorite,dashboard,LeaderboardProfileModal,Models,favorite,"Favorite",,active
899
- leaderboard.profile_modal.models.none,dashboard,LeaderboardProfileModal,Models,none,"No models tracked",,active
900
- leaderboard.profile_modal.heatmap.title,dashboard,LeaderboardProfileModal,Heatmap,title,"Activity (last 365 days)",,active
901
- leaderboard.profile_modal.providers.title,dashboard,LeaderboardProfileModal,Providers,title,"By provider",,active
902
- leaderboard.profile_modal.providers.none,dashboard,LeaderboardProfileModal,Providers,none,"No usage this period.",,active
903
- leaderboard.profile_modal.view_full,dashboard,LeaderboardProfileModal,Footer,view_full,"View full profile",,active
904
- leaderboard.profile_modal.badge.copy_url,dashboard,LeaderboardProfileModal,Badge,copy_url,"Copy profile URL",,active
905
- leaderboard.profile_modal.badge.copy,dashboard,LeaderboardProfileModal,Badge,copy,"Copy README badge",,active
906
- leaderboard.profile_modal.badge.copied,dashboard,LeaderboardProfileModal,Badge,copied,"Copied!",,active
907
- local_only.title,dashboard,LocalOnlyNotice,LocalOnlyNotice,title,"Available in the app",,active
908
- local_only.body,dashboard,LocalOnlyNotice,LocalOnlyNotice,body,"This page reads data from your own machine, so it only works in the Mac app or the CLI dashboard.",,active
909
- local_only.open_app,dashboard,LocalOnlyNotice,LocalOnlyNotice,open_app,"Open in Mac app",,active
910
- local_only.download,dashboard,LocalOnlyNotice,LocalOnlyNotice,download,"Get the Mac app",,active
911
- leaderboard.profile.like.aria_like,dashboard,LeaderboardProfileModal,LikeButton,aria_like,"Like profile",,active
912
- leaderboard.profile.like.aria_unlike,dashboard,LeaderboardProfileModal,LikeButton,aria_unlike,"Unlike profile",,active
913
- dashboard.auth_gate.title,dashboard,DashboardPage,DashboardView,auth_gate_title,"Sign in to Token Tracker",,active
914
- dashboard.auth_gate.subtitle,dashboard,DashboardPage,DashboardView,auth_gate_subtitle,"Sign in to sync and view your API usage, cost, and token consumption trends in the cloud.",,active
915
- dashboard.auth_gate.button,dashboard,DashboardPage,DashboardView,auth_gate_button,"Sign In",,active
916
- dashboard.expired_gate.title,dashboard,DashboardPage,DashboardView,expired_gate_title,"Session Expired",,active
917
- dashboard.expired_gate.subtitle,dashboard,DashboardPage,DashboardView,expired_gate_subtitle,"Your session has expired. Please sign in again to continue viewing your cloud dashboard.",,active
918
- dashboard.expired_gate.button,dashboard,DashboardPage,DashboardView,expired_gate_button,"Sign In Again",,active
919
- shared.app_name,shared,*,*,app_name,"Token Tracker",,active
920
- dashboard.auth_gate.hero_title,dashboard,DashboardPage,DashboardView,hero_title,"Track every AI agent token seamlessly",,active
921
- dashboard.auth_gate.hero_subtitle,dashboard,DashboardPage,DashboardView,hero_subtitle,"Clear, transparent, and multi-endpoint control",,active
922
- dashboard.auth_gate.desc,dashboard,DashboardPage,DashboardView,desc,"Securely sync token quotas, concurrent costs, and latency across Claude Code, Cursor, and Gemini CLI in a beautifully unified real-time dashboard.",,active
923
- dashboard.auth_gate.feature.sync.title,dashboard,DashboardPage,DashboardView,sync_title,"Real-time Cloud Sync",,active
924
- dashboard.auth_gate.feature.sync.desc,dashboard,DashboardPage,DashboardView,sync_desc,"Automated pipeline harvesting terminal execution costs into secure cloud records.",,active
925
- dashboard.auth_gate.feature.anal.title,dashboard,DashboardPage,DashboardView,anal_title,"Multi-dimensional Analytics",,active
926
- dashboard.auth_gate.feature.anal.desc,dashboard,DashboardPage,DashboardView,anal_desc,"Slice and dice by models or period to isolate high-cost peaks and allocations.",,active
927
- dashboard.auth_gate.feature.guard.title,dashboard,DashboardPage,DashboardView,guard_title,"Local-first Autonomy",,active
928
- dashboard.auth_gate.feature.guard.desc,dashboard,DashboardPage,DashboardView,guard_desc,"Skip all auth steps entirely on localhost. Preserves local debug speed.",,active
929
- dashboard.expired_gate.hero_title,dashboard,DashboardPage,DashboardView,expired_hero_title,"Your cloud session has expired",,active
930
- dashboard.expired_gate.desc,dashboard,DashboardPage,DashboardView,expired_desc,"For privacy and cloud drive security, active sessions expire automatically after a period. Verify again to restore your dashboard instantly.",,active
931
- dashboard.expired_gate.feature.sec.title,dashboard,DashboardPage,DashboardView,sec_title,"Secure Protection",,active
932
- dashboard.expired_gate.feature.sec.desc,dashboard,DashboardPage,DashboardView,sec_desc,"Encrypted tokens automatically rotate, guaranteeing complete assets privacy.",,active
933
- dashboard.expired_gate.feature.restore.title,dashboard,DashboardPage,DashboardView,restore_title,"Seamless Restore",,active
934
- dashboard.expired_gate.feature.restore.desc,dashboard,DashboardPage,DashboardView,restore_desc,"Instantly resume telemetry charts without reconfiguring terminal hooks.",,active
935
- dashboard.expired_gate.feature.cloud.title,dashboard,DashboardPage,DashboardView,cloud_title,"Multi-device Sync",,active
936
- dashboard.expired_gate.feature.cloud.desc,dashboard,DashboardPage,DashboardView,cloud_desc,"Readily access parsed token logs anywhere through synced dashboard.",,active
937
- landing.v2.leaderboard.kicker,landing,LandingPage,MarketingLanding,leaderboard_kicker,"GLOBAL TOKEN LEADERBOARD",,active
938
- landing.v2.leaderboard.title,landing,LandingPage,MarketingLanding,leaderboard_title,"AI Token Efficiency",,active
939
- landing.v2.leaderboard.subtitle,landing,LandingPage,MarketingLanding,leaderboard_subtitle,"Optionally and anonymously sync your local AI token usage to join the global efficiency leaderboard. Benchmark cost efficiency and model rotations with developers worldwide.",,active
940
- landing.v2.leaderboard.active_developers,landing,LandingPage,MarketingLanding,active_developers,"1,240+ developers actively syncing",,active
941
- landing.v2.leaderboard.top_badge,landing,LandingPage,MarketingLanding,top_badge,"EFFICIENCY CHAMP",,active
942
- landing.v2.leaderboard.rank_first,landing,LandingPage,MarketingLanding,rank_first,"NO. 1 GLOBAL",,active
943
- landing.v2.leaderboard.rank_second,landing,LandingPage,MarketingLanding,rank_second,"NO. 2",,active
944
- landing.v2.leaderboard.rank_third,landing,LandingPage,MarketingLanding,rank_third,"NO. 3",,active
945
- landing.v2.leaderboard.synced_tokens,landing,LandingPage,MarketingLanding,synced_tokens,"{{count}} tokens synced",,active
946
- landing.v2.leaderboard.efficiency,landing,LandingPage,MarketingLanding,efficiency,"Efficiency: {{value}}",,active
947
- landing.v2.leaderboard.streak_days,landing,LandingPage,MarketingLanding,streak_days,"{{count}} day streak",,active
948
- landing.v2.leaderboard.view_more,landing,LandingPage,MarketingLanding,view_more,"View full leaderboard",,active
949
- cmdk.placeholder,ui,CommandPalette,CommandPalette,placeholder,"Search pages and skills…",,active
950
- cmdk.empty,ui,CommandPalette,CommandPalette,empty,"No matches",,active
951
- cmdk.group.pages,ui,CommandPalette,CommandPalette,group_pages,"Pages",,active
952
- cmdk.group.skills,ui,CommandPalette,CommandPalette,group_skills,"Skills",,active
953
- cmdk.close,ui,CommandPalette,CommandPalette,close,"Close command menu",,active
954
- cmdk.open_aria,ui,CommandPalette,CommandPalette,open_aria,"Command menu",,active
955
- skills.dot.synced_aria,ui,SkillsPage,AgentDots,dot_synced_aria,"{{agent}}: synced. Click to unsync.",,active
956
- skills.dot.off_aria,ui,SkillsPage,AgentDots,dot_off_aria,"{{agent}}: not synced. Click to sync.",,active
957
- skills.dot.orphan_aria,ui,SkillsPage,AgentDots,dot_orphan_aria,"{{agent}}: link broken. Click to re-sync.",,active
958
- skills.update.badge,ui,SkillsPage,InstalledSkillRow,update_badge,"Update",,active
959
- skills.select.row_aria,ui,SkillsPage,InstalledSkillRow,select_row_aria,"Select {{name}}",,active
960
- skills.select.toolbar_aria,ui,SkillsPage,BatchToolbar,select_toolbar_aria,"Bulk actions",,active
961
- skills.select.count,ui,SkillsPage,BatchToolbar,select_count,"{{count}} selected",,active
962
- skills.select.bulk_sync,ui,SkillsPage,BatchToolbar,select_bulk_sync,"Sync to",,active
963
- skills.select.bulk_sync_hint,ui,SkillsPage,BatchToolbar,select_bulk_sync_hint,"Add agent to all selected",,active
964
- skills.select.bulk_remove,ui,SkillsPage,BatchToolbar,select_bulk_remove,"Remove",,active
965
- skills.select.clear,ui,SkillsPage,BatchToolbar,select_clear,"Clear",,active
966
- skills.mode.popular,ui,SkillsPage,SkillsPage,mode_popular,"Popular",,active
967
- skills.browse.placeholder_popular,ui,SkillsPage,SkillsPage,browse_placeholder_popular,"Filter popular skills",,active
968
- skills.empty.popular,ui,SkillsPage,SkillsPage,empty_popular,"No popular skills right now.",,active
969
- skills.toast.bulk_synced,ui,SkillsPage,SkillsPage,toast_bulk_synced,"Synced {{count}} skills to {{agent}}.",,active
970
- skills.toast.bulk_removed,ui,SkillsPage,SkillsPage,toast_bulk_removed,"Removed {{count}} skills.",,active
971
- skills.toast.synced_one,ui,SkillsPage,SkillsPage,toast_synced_one,"Synced {{name}} to {{agent}}.",,active
972
- skills.toast.unsynced_one,ui,SkillsPage,SkillsPage,toast_unsynced_one,"Unsynced {{name}} from {{agent}}.",,active
973
- skills.toast.updated,ui,SkillsPage,SkillsPage,toast_updated,"Updated {{name}}.",,active
974
- skills.confirm.bulk_remove_title,ui,SkillsPage,SkillsPage,confirm_bulk_remove_title,"Remove {{count}} skills?",,active
975
- skills.confirm.bulk_remove_desc,ui,SkillsPage,SkillsPage,confirm_bulk_remove_desc,"This unsyncs each skill from every agent and deletes its local copy.",,active
976
- skills.update.available,ui,SkillsPage,SkillDetailPanel,update_available,"A newer version is available upstream.",,active
977
- skills.update.action,ui,SkillsPage,SkillDetailPanel,update_action,"Update",,active
978
- skills.usage.section_title,ui,SkillsPage,SkillDetailPanel,usage_section_title,"Activity",,active
979
- skills.usage.invocations,ui,SkillsPage,SkillDetailPanel,usage_invocations,"Invocations",,active
980
- skills.usage.cost,ui,SkillsPage,SkillDetailPanel,usage_cost,"Est. cost",,active
981
- skills.usage.never,ui,SkillsPage,SkillDetailPanel,usage_never,"Never",,active
982
- skills.usage.last_used,ui,SkillsPage,SkillDetailPanel,usage_last_used,"Last used",,active
983
- skills.usage.today,ui,SkillsPage,SkillDetailPanel,usage_today,"Today",,active
984
- skills.usage.days_ago,ui,SkillsPage,SkillDetailPanel,usage_days_ago,"{{days}}d ago",,active
985
- skills.usage.months_ago,ui,SkillsPage,SkillDetailPanel,usage_months_ago,"{{months}}mo ago",,active
986
- skills.usage.unknown,ui,SkillsPage,SkillDetailPanel,usage_unknown,"Unknown",,active
987
- skills.usage.unused,ui,SkillsPage,SkillDetailPanel,usage_unused,"Not invoked yet. Possible dead weight if you never use it.",,active
988
- skills.usage.disclaimer,ui,SkillsPage,SkillDetailPanel,usage_disclaimer,"Counts from Claude transcripts. Cost is the approximate spend of turns that invoked this skill.",,active
989
- `,a8={"header.auth.sign_in_aria":"登录","login.back_home":"返回首页","login.cloud_only":"未配置云端登录。请使用 localhost 上的本地仪表盘。","login.title":"登录","login.subtitle":"选择邮箱或已连接账号。","login.dismiss":"关闭","login.verify_email_success":"邮箱已验证。你现在可以登录。","login.verify_email_pending":"请先在邮箱中完成验证,然后再登录。","login.oauth.continue":"使用 {{provider}} 继续","login.divider":"或","login.tab.sign_in":"登录","login.tab.sign_up":"创建账户","login.field.name":"显示名称","login.field.name_placeholder":"可选","login.field.email":"电子邮件","login.field.password":"密码","login.password_hint":"至少 {{min}} 个字符。","login.submit.sign_in":"使用邮箱登录","login.submit.sign_up":"创建账号","auth.callback.processing":"处理中…","auth.callback.success":"登录成功","auth.callback.redirecting":"正在返回 TokenTracker…","auth.callback.failed":"登录未完成,请重试。","auth.callback.close":"关闭此页","login_modal.subtitle":"登录以加入排行榜","login_modal.continue_email":"使用邮箱继续","login_modal.divider_email":"邮箱","shared.placeholder.short":"--","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.data_source":"数据来源:{{source}}","shared.error.prefix":"错误:{{error}}","shared.status.unsynced":"—","shared.time.now":"刚刚","error.boundary.title":"出了点问题","error.boundary.subtitle":"这个视图渲染失败了","error.boundary.hint":"打开控制台,然后重新加载页面","error.boundary.no_details":"没有错误详细信息","error.boundary.action.reload":"重新加载","identity_card.rank_label":"排名","identity_card.streak_label":"活跃天数","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}} 天","usage.summary.total":"Token 总数","usage.period.day":"日","usage.period.week":"周","usage.period.month":"月","usage.period.total":"总计","usage.period.custom":"自定义","usage.metric.total":"总计","usage.metric.input":"输入","usage.metric.output":"输出","usage.metric.cached_input":"缓存输入","usage.metric.reasoning_output":"推理输出","usage.button.refresh":"刷新","usage.overview.tablist_aria":"时间范围","usage.overview.cost_breakdown_aria":"查看成本明细","usage.overview.distribution_aria":"来源占比:{{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}:{{percent}}%,{{tokens}} Token,{{cost}}。点击{{action}}详情","usage.overview.expand":"展开","usage.overview.collapse":"收起","usage.overview.model_count":"{{count}} 个模型","usage.overview.model_details_aria":"{{provider}} 模型详情","widgets.page.title":"组件","widgets.cta.open_gallery":"打开小组件库","widgets.cta.download":"下载 Mac 应用","widgets.cta.macos_only":"仅限 macOS","widgets.menubar.section.title":"菜单栏","widgets.gallery.section.title":"桌面小组件","widgets.summary.name":"使用概览","widgets.summary.description":"今天和近 7 天的用量,以及紧凑趋势线。","widgets.heatmap.name":"热力图","widgets.heatmap.description":"像 GitHub 一样,一眼看清活跃和空闲的日子。","widgets.topModels.name":"热门模型","widgets.topModels.description":"你最常用的模型,按 Token 占比排序。","widgets.limits.name":"使用限制","widgets.limits.description":"Claude、Codex、Cursor、Gemini 等的实时速率限制进度。","daily.sort.date.label":"日期","daily.sort.date.title":"按日期排序","daily.sort.total.label":"总计","daily.sort.total.title":"按总计排序","daily.sort.input.label":"输入","daily.sort.input.title":"按输入排序","daily.sort.output.label":"输出","daily.sort.output.title":"按输出排序","daily.sort.cached.label":"缓存","daily.sort.cached.title":"按缓存输入排序","daily.sort.reasoning.label":"推理","daily.sort.reasoning.title":"按推理输出排序","daily.sort.conversations.label":"对话数","daily.sort.conversations.title":"按对话排序","details.pagination.prev":"上一页","details.pagination.next":"下一页","limits.copilot.otelHint.title":"跟踪 Copilot Token 使用情况","limits.copilot.otelHint.body":"限额信息通过你的 GitHub OAuth 令牌读取。如果还想记录逐 Token 用量,请启用 Copilot 的 OpenTelemetry 导出,把下面这段加到你的 shell 配置文件(~/.zshrc 或 ~/.bashrc):","limits.copilot.otelHint.copy":"复制","limits.copilot.otelHint.copied":"已复制","limits.panel.title":"使用限制","limits.panel.mode_separator":" · ","limits.label.cursor_plan":"套餐","limits.label.cursor_auto":"自动","limits.label.cursor_api":"API","limits.label.kiro_month":"月度","limits.label.kiro_bonus":"奖励","limits.label.kimi_weekly":"周","limits.label.kimi_5h":"5h","limits.label.kimi_total":"总量","limits.label.kimi_parallel":"并发:{{count}}","limits.label.copilot_premium":"高级","limits.label.copilot_chat":"对话","limits.label.grok_month":"月度","limits.label.grok_ondemand":"按需","limits.provider.claude":"Claude","limits.provider.codex":"Codex","limits.provider.cursor":"Cursor","limits.provider.gemini":"Gemini","limits.provider.kimi":"Kimi","limits.provider.kiro":"Kiro","limits.provider.grok":"Grok Build","limits.provider.copilot":"GitHub Copilot","limits.provider.antigravity":"Antigravity","limits.label.claude_5h":"5h","limits.label.claude_7d":"7d","limits.label.claude_opus":"Opus","limits.label.codex_5h":"5h","limits.label.codex_7d":"7d","limits.label.codex_spark_5h":"Spark 5h","limits.label.codex_spark_7d":"Spark 7d","limits.label.gemini_pro":"Pro","limits.label.gemini_flash":"Flash","limits.label.gemini_lite":"Lite","limits.label.antigravity_claude":"Claude","limits.label.antigravity_gpro":"G Pro","limits.label.antigravity_flash":"Flash","limits.bar.sub_one_percent":"<1","limits.status.not_connected":"未连接","limits.status.no_data":"未返回实时限额数据","limits.status.all_hidden":"所有限额提供商都已隐藏。请打开显示设置重新显示。","nav.usage":"用量","nav.limits":"限额","nav.widgets":"小组件","nav.skills":"Skills","nav.leaderboard":"排行榜","nav.collapse":"折叠侧边栏","nav.expand":"展开侧边栏","nav.menu":"打开导航菜单","nav.close_menu":"关闭导航菜单","nav.aside_label":"主导航","nav.nav_label":"导航","limits.page.subtitle":"AI 工具的速率限制和配额使用情况。","limits.settings.toggle_visible":"切换可见性","limits.settings.display_mode_label":"用量","limits.settings.display_mode_used":"已用","limits.settings.display_mode_remaining":"剩余","limits.page.openSettings":"显示设置","nav.group.general":"常规","nav.group.tools":"工具","nav.group.account":"账户","nav.settings":"设置","header.auth.open_settings":"打开设置","settings.page.title":"设置","settings.page.subtitle":"管理你的账户、外观和显示偏好。","settings.section.appearance":"外观","settings.section.account":"账户","settings.section.limits":"限制显示","settings.appearance.theme.label":"主题","settings.appearance.theme.hint":"选择 Token Tracker 在仪表盘中的显示方式。","settings.appearance.theme.light":"浅色","settings.appearance.theme.dark":"深色","settings.appearance.theme.system":"系统","settings.account.displayName":"显示名称","settings.account.edit":"编辑","settings.account.save":"保存","settings.account.saving":"保存...","settings.account.cancel":"取消","settings.account.userId":"用户 ID","settings.account.copyUserId":"复制用户 ID","settings.account.copy":"复制","settings.account.copied":"已复制","settings.account.cloudSync":"云同步","settings.account.cloudSyncHint":"将本地用量上传到你的 Token Tracker 云端账号。","settings.account.publicProfile":"公开主页","settings.account.publicProfileHint":"在公开排行榜中展示你的用量。","settings.account.displayNameAnonymousHint":"匿名状态下,排行榜会隐藏你的名字和头像","settings.account.displayNameDisabledWhileAnon":"请先关闭匿名,再编辑名字","settings.account.githubUrl":"GitHub 主页","settings.account.githubUrlHint":"在排行榜名字旁显示 GitHub 链接。","settings.account.githubUrlPlaceholder":"用户名或 https://github.com/用户名","settings.account.githubUrlInvalid":"请输入 GitHub 用户名,或 https://github.com/用户名","leaderboard.github.aria":"打开 GitHub 主页","leaderboard.github.tooltipAction":"点击查看 GitHub 主页","leaderboard.github.tooltipPrefix":"可在","leaderboard.github.tooltipSettingsLink":"设置","leaderboard.github.tooltipSuffix":"中配置你的主页","settings.account.signOut":"退出登录","settings.account.signIn":"登录","settings.account.signedOutHint":"登录后可管理云同步和排行榜偏好。","settings.section.menubar":"菜单栏应用","settings.menubar.showStats":"在菜单栏中显示统计信息","settings.menubar.showStatsHint":"在菜单栏图标旁边显示今天的Token 数量和成本。","settings.menubar.animatedIcon":"动画图标","settings.menubar.animatedIconHint":"闪烁 Clawd 角色并在菜单栏中播放同步动画。","settings.menubar.launchAtLogin":"登录时启动","settings.menubar.launchAtLoginHint":"登录 macOS 时自动启动 TokenTrackerBar。","settings.menubar.syncNow":"立即同步","settings.menubar.syncNowHint":"触发本地AI工具日志立即解析并上传。","settings.menubar.syncing":"正在同步...","settings.menubar.updates":"更新","settings.menubar.checkUpdates":"检查更新","settings.footer.statusPage":"系统状态","menubar.slot.primary":"第一个位置","menubar.slot.secondary":"第二个位置","menubar.native_only":"打开 macOS 版 TokenTrackerBar 后可编辑菜单栏显示。","menubar.metric.today_tokens":"今日 Token","menubar.metric.today_cost":"今日成本","menubar.metric.last_7d_tokens":"近 7 天 Token","menubar.metric.total_tokens":"总 Token","menubar.metric.total_cost":"总成本","menubar.metric.claude_5h":"Claude 5 小时限额","menubar.metric.claude_7d":"Claude 7 天限额","menubar.metric.codex_5h":"Codex 5 小时限额","menubar.metric.codex_7d":"Codex 7 天限额","menubar.metric.codex_spark_5h":"Codex Spark 5 小时限额","menubar.metric.codex_spark_7d":"Codex Spark 7 天限额","nav.ip_check":"Claude IP 检查","skills.page.title":"Skills","skills.tab.my":"我的","skills.tab.browse":"发现","skills.action.refresh":"刷新","skills.action.install":"安装","skills.action.choose_targets":"选择目标","skills.target.menu_label":"安装到","skills.target.none":"未选目标","skills.toast.installed":"已把 {{name}} 安装到 {{targets}}。","skills.action.remove":"移除","skills.action.search":"搜索","skills.action.search_aria":"搜索 skills","skills.action.search_clear":"清除搜索","skills.target.synced_summary":"已同步到 {{targets}}","skills.target.synced_none":"尚未同步到任何 agent","skills.row.open_details":"查看 {{name}} 详情","skills.detail.close":"关闭详情","skills.detail.sync_section_title":"同步到","skills.detail.remove_button":"从所有 agent 移除","skills.detail.remove_confirm_hint":"这会从每个 agent 取消同步并删除本地副本。","skills.filter.agent_label":"Agent","skills.filter.agent_all":"全部 agent","skills.filter.clear":"清除筛选","skills.my.placeholder":"筛选已安装的 skills…","skills.filter.result_count":"{{filtered}} / {{total}} 个 skill","skills.filter.result_count_browse":"{{count}} 个结果","skills.empty.no_match":"当前筛选下没有匹配的 skill。","hint.dismiss":"关闭提示","hint.dismissible_aria":"可关闭的提示","skills.card.installed":"已安装","skills.card.targets_prefix":"将安装到:","skills.card.targets_change":"更改","skills.card.installs":"{{count}} 次安装","skills.source.label":"来源","skills.source.all":"全部仓库","skills.mode.repo":"仓库","skills.mode.skillssh":"skills.sh","skills.browse.placeholder_all":"在已启用的仓库里搜索…","skills.browse.placeholder_repo":"在 {{repo}} 中搜索…","skills.browse.placeholder_skillssh":"在 skills.sh 仓库中搜索…","skills.browse.empty_sources":"添加一个 GitHub 仓库以开始浏览技能。","skills.browse.add_repo_hint":"想要更多 skill?添加一个 GitHub 仓库。","skills.browse.manage_sources":"管理来源","skills.browse.hint_skillssh":"至少输入 2 个字符以搜索 skills.sh。","skills.browse.loading_hint":"正在从 GitHub 拉取 skill 信息,首次加载可能需要一分钟,结果会缓存。","skills.error.generic":"Skill 操作失败。","skills.confirm.remove_title":"要移除 {{name}} 吗?","skills.confirm.remove_managed":"这个 skill 将从所有已连接的 AI 工具中移除,几秒内可以撤销。","skills.confirm.remove_local":"将从所有 AI 工具目录中删除该 skill 文件夹。此操作无法撤销。","skills.toast.removed":"已移除 {{name}}。","shared.action.undo":"撤销","shared.action.cancel":"取消","shared.action.apply":"应用","skills.empty.my":"还没有 skill。去「发现」搜索或安装。","skills.empty.my_cta":"去发现","skills.empty.browse":"这个来源下没有找到技能。","skills.empty.search":"没有结果,换个关键词试试。","skills.repo.placeholder":"owner/repository","skills.repo.add":"添加仓库","skills.repo.invalid":"请输入 owner/repository 或 GitHub 仓库 URL。","skills.repo.remove":"移除仓库","settings.appearance.language.label":"语言","settings.appearance.language.hint":"使用“系统”时会默认跟随本机语言。","settings.appearance.language.system":"系统","settings.appearance.language.english":"英语","settings.appearance.language.chinese":"简体中文","settings.appearance.language.traditional_chinese":"繁体中文","settings.appearance.language.japanese":"日语","settings.appearance.language.korean":"韩语","settings.appearance.currency.label":"货币","settings.appearance.currency.hint":"选择用量成本的显示币种。","settings.appearance.currency.opt.usd":"美元 ($)","settings.appearance.currency.opt.eur":"欧元 (€)","settings.appearance.currency.opt.gbp":"英镑 (£)","settings.appearance.currency.opt.cny":"人民币 (¥)","settings.appearance.currency.opt.jpy":"日元 (¥)","settings.appearance.currency.opt.hkd":"港币 (HK$)","settings.appearance.currency.rate_source.default":"内置默认汇率","settings.appearance.currency.rate_source.fetched":"数据源:open.er-api.com","settings.appearance.currency.rate_updated":"更新于 {{when}}","settings.appearance.currency.rate_never":"尚未刷新"},r8={"usage.overview.antigravity_notice_title":"Token 为估算值","usage.overview.antigravity_notice_body":"Antigravity 的本地日志没有真实用量字段,这里的数字是按字符长度(约 4 字符/Token)估算出来的,也没有扣除 Gemini 的 prompt cache 折扣。请把它当作上限估算,不要直接对账账单。","stats.period.today":"今日","stats.period.week":"本周","stats.period.month":"本月","stats.period.all":"全部","stats.period.convs":"对话","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"折叠模型分解","dashboard.core_index.expand_aria":"展开模型细分","dashboard.rolling.title":"最近的活动","dashboard.rolling.last_7d":"过去 7 天","dashboard.rolling.last_30d":"过去 30 天","dashboard.rolling.avg_active_day":"日平均","dashboard.projects.title":"项目用量","dashboard.projects.tokens_label":"Token","dashboard.projects.stars_label":"星标","dashboard.projects.limit_label":"展示","dashboard.projects.limit_aria":"选择仓库显示数量","dashboard.projects.limit_top_3":"前 3 名","dashboard.projects.limit_top_6":"前 6 名","dashboard.projects.limit_top_10":"前 10 名","dashboard.projects.empty":"没有公开仓库","dashboard.widgets.title":"桌面小组件","dashboard.widgets.hint":"右键点按桌面 → 编辑小组件 → 搜索“TokenTracker”","dashboard.widgets.dismiss_aria":"关闭小组件介绍","dashboard.cost_breakdown.title":"成本明细","dashboard.cost_breakdown.total_label":"预计总成本","dashboard.cost_breakdown.close":"关闭","trend.monitor.label":"使用趋势","trend.zoom.open_aria":"展开全屏","trend.zoom.close_aria":"关闭","trend.zoom.badge":"趋势洞察","trend.zoom.desc":"悬停任意柱子查看 token、成本与对话数。切换粒度可从月份下钻到半小时。","trend.zoom.insight_badge":"洞察","trend.zoom.tooltip.cost":"成本","trend.zoom.tooltip.conversations":"对话","trend.zoom.stats.tokens":"Token 总量","trend.zoom.stats.cost":"总成本","trend.zoom.stats.conversations":"对话数","trend.zoom.stats.peak":"峰值时段","trend.zoom.gran.aria":"粒度","trend.zoom.gran.30min":"30 分钟","trend.zoom.gran.day":"天","trend.zoom.gran.month":"月","trend.zoom.prev_day":"前一天","trend.zoom.next_day":"后一天","trend.zoom.loading":"加载中…","trend.zoom.pick_day":"选择日期","trend.zoom.pick_range":"选择日期范围","trend.zoom.insight.empty":"一段安静的时光,没有一个 token 流过。","trend.zoom.insight.calm":"轻描淡写。模型大多在待命,只在你需要时才醒来搭把手。","trend.zoom.insight.steady":"{{active}} 个活跃时段里节奏平稳,峰值 {{peak}}。是那种不声不响就把事情交付掉的节奏。","trend.zoom.insight.heavy":"火力全开:{{active}} 个时段持续高热,峰值冲到 {{peak}}。这是自己制造势能、而非等待灵感的人的产出。","trend.zoom.insight.massive":"工业级别。{{peak}} 的峰值,吞吐从不降温。到这个量级,你已经不是在用模型,而是在运营一座工厂。","heatmap.title":"热力图","heatmap.empty":"尚无活动数据。","heatmap.legend.less":"少","heatmap.legend.more":"多","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"Token","heatmap.month.jan":"1月","heatmap.month.feb":"2月","heatmap.month.mar":"3月","heatmap.month.apr":"4月","heatmap.month.may":"5月","heatmap.month.jun":"6月","heatmap.month.jul":"7月","heatmap.month.aug":"8月","heatmap.month.sep":"9月","heatmap.month.oct":"10月","heatmap.month.nov":"11月","heatmap.month.dec":"12月","heatmap.day.sun":"日","heatmap.day.mon":"一","heatmap.day.tue":"二","heatmap.day.wed":"三","heatmap.day.thu":"四","heatmap.day.fri":"五","heatmap.day.sat":"六","dashboard.session_expired.copy_label":"运行 npx --yes tokentracker-cli init","dashboard.session_expired.copied":"已复制","dashboard.install.prompt":"安装 Node.js 18+ 然后运行:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"复制安装命令","dashboard.install.copy_base":"复制初始化命令","dashboard.install.copied":"已复制到剪贴板","dashboard.install.link_code.loading":"正在生成专属代码...","dashboard.install.link_code.failed":"专属代码不可用","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.daily.title":"每日细目","dashboard.daily.empty":"还没有数据。先使用 AI CLI,再运行 {{cmd}}。","dashboard.identity.title":"你的个人资料","dashboard.identity.subtitle":"记录你的编码之旅","dashboard.identity.fallback":"匿名用户","dashboard.screenshot.title_line1":"AI 编程助手","dashboard.screenshot.title_line2":"2025 年度回顾","dashboard.screenshot.twitter_button":"分享到 X","dashboard.screenshot.twitter_label":"分享到 X","dashboard.screenshot.twitter_hint":"自动将图像复制到剪贴板","dashboard.screenshot.twitter_text":"记录中的 {{total_tokens}} Token。\\n{{model_name}} 以 {{model_percent}}% 领先。\\n\\n我的 AI 使用情况,未经审计 →","heatmap.3d.hover_tip":"点击进入 3D 全屏旋转分析模式","heatmap.3d.modal.title":"Token 三维透视","heatmap.3d.modal.desc":"按住左键拖拽可任意旋转,悬浮感知每日活跃数据与多维统计。","heatmap.3d.modal.stats.total_tokens":"年度 Token 总量","heatmap.3d.modal.stats.precision_total_tokens":"精准年消耗量","heatmap.3d.modal.stats.estimated_cost":"年度估算费用","heatmap.3d.modal.stats.active_rate_days":"活跃占比 / 天数","heatmap.3d.modal.stats.max_streak":"最长连续活跃","heatmap.3d.modal.stats.days_suffix":"天","heatmap.3d.modal.stats.peak_day":"单日峰值暴击","heatmap.3d.modal.stats.precision_peak_value":"精确单日峰值","heatmap.3d.modal.stats.no_data":"无数据","heatmap.3d.modal.legend.title":"活跃度层级","heatmap.3d.modal.palette.emerald":"翡翠之城","heatmap.3d.modal.palette.ocean":"深海浩瀚","heatmap.3d.modal.palette.neon":"赛博霓虹","heatmap.3d.modal.palette.amber":"烈焰余晖","heatmap.3d.modal.control.play":"启动慢速自转","heatmap.3d.modal.control.pause":"暂停自动旋转","heatmap.3d.modal.control.reset":"重置 3D 视角","heatmap.3d.modal.footer.tip":"双指缩放 / 滚轮缩放 / 鼠标拖拽旋转 3D 图表","heatmap.3d.modal.ai.title.default":"持之以恒的行者","heatmap.3d.modal.ai.eval.default":"在技术的长河中持之以恒。也许日常的编码并不总是波澜壮阔,但每一个微小的活跃点都在记录着您的思考与探索。星火成留,终将汇聚成属于您的数字海洋。","heatmap.3d.modal.ai.title.peak":"极限活跃级贡献者","heatmap.3d.modal.ai.eval.peak":"这一年中,您的 Token 产出表现出极高的工程密度。如此规模的开发量相当于深度参与了中大型系统底座的重构,每一次击键都在将复杂的逻辑收敛为确定性的代码。这是极度专注与纯粹工程热爱的最好印证。","heatmap.3d.modal.ai.title.heavy":"高频产出级开发者","heatmap.3d.modal.ai.eval.heavy":"卓越的持续输出。您的 Token 累积量已达数百万字,相当于数十部中篇技术巨著的体量。高饱和度的编码节奏表明您正在以极高的执行力构建属于您的数字资产,展现了卓越的创造力。","heatmap.3d.modal.ai.title.core":"核心生产力专家","heatmap.3d.modal.ai.eval.core":"极具韧性的长期投入。在过去的一年中,您在较长周期内稳定保持着高强度的开发节奏。您用扎实的代码行数与 Token 产出,默默筑起了项目的核心架构,是当之无愧的工程支柱。","heatmap.3d.modal.ai.title.steady":"稳健成长型工程师","heatmap.3d.modal.ai.eval.steady":"踏实而坚定的技术积累。每一次 Token 的递增,都是您在坚实地砌下通往未来的代码基石。这种细水长流的稳健节奏,往往是一个优秀开发者通往工程大师的必经之路。","heatmap.3d.voxel.joke.1":"🔥 极度疯狂!产出 {{value}} tokens!你是在疯狂训练大模型,还是手撸了一个编译器?","heatmap.3d.voxel.joke.2":"🚀 史诗级输出!共 {{value}} tokens。今日产出可绕地球一圈,AI 都在为你惊叹!","heatmap.3d.voxel.joke.3":"⚡ 爆击日!{{value}} tokens。代码如泉涌,键盘已经开始冒烟了!","heatmap.3d.voxel.level3":"⚡ 生产力大爆发({{value}} tokens)!高效专注的黄金时刻,继续保持这个巅峰状态!","heatmap.3d.voxel.level2":"🌱 渐入佳境({{value}} tokens)!稳步产出,每一次敲击键盘都是在为大厦添砖加瓦。","heatmap.3d.voxel.level1":"🍃 聚沙成塔({{value}} tokens)。微小的提交也是对未来的投资,保持复利的力量!","heatmap.3d.voxel.level0":"💤 养精蓄锐。在不写代码的日子里,灵感也在悄悄生长。","ipcheck.page.title":"Claude IP 检测","ipcheck.page.subtitle":"查看当前访问 Claude 的出口 IP、纯净度、地理与风险信号,识别可能影响登录或触发风控的因素。","ipcheck.mask.toggle":"隐藏 IP","ipcheck.ipv6.warn":"当前为 IPv6 环境,不建议用 IPv6 访问 Claude Code,部分检测结果可能不完整。","ipcheck.ip.cn":"中国出口 IPv4","ipcheck.ip.cloudflare":"Cloudflare 出口","ipcheck.ip.claude":"Claude 出口","ipcheck.ip.failed":"获取失败","ipcheck.ip.loading":"加载中...","ipcheck.trust.title":"信任评分","ipcheck.trust.subtitle":"Claude 风控视角下的 IP 纯净度","ipcheck.trust.no_data":"无数据","ipcheck.trust.no_ip":"未获取到 Claude 出口 IP,无法评分","ipcheck.trust.no_score":"该 IP 暂无评分数据","ipcheck.trust.gauge.low":"0 高危","ipcheck.trust.gauge.high":"100 可信","ipcheck.trust.label.pristine":"极度纯净","ipcheck.trust.label.clean":"纯净","ipcheck.trust.label.good":"良好","ipcheck.trust.label.neutral":"中性","ipcheck.trust.label.suspicious":"可疑","ipcheck.trust.label.unreachable":"不可访问","ipcheck.trust.text.excellent":"该 IP 信誉极好","ipcheck.trust.text.great":"该 IP 信誉优异","ipcheck.trust.text.minor":"该 IP 存在轻微风险","ipcheck.trust.text.moderate":"该 IP 存在一定风险","ipcheck.trust.text.severe":"该 IP 风险极高","ipcheck.trust.text.restricted":"处于不可访问区域,Claude 会严格风控","ipcheck.trust.region_warn.title":"Claude 出口 IP 位于 {{region}}","ipcheck.trust.region_warn.body":"不建议登录 Claude,容易触发封号风控。","ipcheck.trust.region_support":"Claude 支持地区","ipcheck.trust.region.accessible":"可访问","ipcheck.common.unknown":"未知","ipcheck.props.title":"IP 属性","ipcheck.props.region":"地区","ipcheck.props.city":"城市","ipcheck.props.type":"类型","ipcheck.props.asn":"ASN","ipcheck.props.org":"运营商","ipcheck.props.residential":"家庭住宅","ipcheck.props.datacenter":"机房","ipcheck.security.title":"安全检测","ipcheck.security.vpn":"VPN","ipcheck.security.proxy":"代理 (Proxy)","ipcheck.security.tor":"Tor","ipcheck.security.crawler":"机器人 (Crawler)","ipcheck.security.abuser":"滥用记录","ipcheck.security.proxy_flag":"代理","ipcheck.security.crawler_yes":"是","ipcheck.security.crawler_no":"否","ipcheck.security.abuser_yes":"有记录","ipcheck.security.abuser_no":"无记录","ipcheck.security.clean":"未检测到","ipcheck.avail.title":"Claude 可用性","ipcheck.avail.tooltip":"Claude 服务器在美国,从亚洲访问延迟超过 100ms 属于正常情况。","ipcheck.avail.refresh":"刷新","ipcheck.avail.svc_row":"服务状态","ipcheck.avail.latency.normal":"正常","ipcheck.avail.latency.good":"良好","ipcheck.avail.latency.slow":"较慢","ipcheck.avail.latency.unreachable":"不可访问","ipcheck.avail.svc.none":"全部正常","ipcheck.avail.svc.minor":"轻微故障","ipcheck.avail.svc.major":"重大故障","ipcheck.avail.svc.critical":"严重故障","ipcheck.avail.svc.maintenance":"维护中","ipcheck.avail.svc.other":"服务异常","ipcheck.dns.title":"DNS 泄露检测","ipcheck.dns.status":"状态","ipcheck.dns.outlet":"DNS 出口","ipcheck.dns.outlet_ip":"DNS 出口 IP","ipcheck.dns.isp":"服务商","ipcheck.dns.leaked":"可能泄露","ipcheck.dns.no_leak":"未检测到泄露","ipcheck.dns.encrypted":"DNS 加密或未暴露","ipcheck.dns.cn_tag":"中国 DNS","ipcheck.udp.title":"WebRTC UDP 泄露","ipcheck.udp.status":"状态","ipcheck.udp.outlet":"UDP 出口","ipcheck.udp.outlet_ip":"UDP 出口 IP","ipcheck.udp.origin":"归属地","ipcheck.udp.disabled":"WebRTC 已禁用","ipcheck.udp.no_leak":"未检测到泄露","ipcheck.udp.leaked":"可能泄露","ipcheck.udp.anomaly":"异常","ipcheck.device.title":"设备信息","ipcheck.device.tz":"时区","ipcheck.device.lang":"语言","ipcheck.device.os":"操作系统 / 浏览器","ipcheck.device.touch":"触屏","ipcheck.device.net":"网络类型","ipcheck.device.dnt":"Do Not Track","ipcheck.device.webgl_render":"WebGL 渲染器","ipcheck.device.canvas_fp":"Canvas 指纹","ipcheck.device.webgl_fp":"WebGL 指纹","ipcheck.device.match":"一致","ipcheck.device.mismatch":"不一致","ipcheck.device.local":"本地","ipcheck.device.estimate_suffix":"(估算)","ipcheck.device.diff_equal":"偏移略有差异","ipcheck.device.diff_ahead":"Claude 快 {{h}} 小时","ipcheck.device.diff_behind":"Claude 慢 {{h}} 小时","ipcheck.device.lang_expected":"Claude 出口常用","ipcheck.device.touch_yes":"是","ipcheck.device.touch_no":"否","ipcheck.device.dnt_on":"已开启","ipcheck.device.dnt_off":"已关闭","ipcheck.device.dnt_unset":"未设置","ipcheck.device.net_unsupported":"不支持检测","ipcheck.device.unsupported":"不支持","ipcheck.history.title":"Claude 出口 IP 历史","ipcheck.history.subtitle":"仅本地存储于浏览器,最多保留 6 条","ipcheck.history.clear":"清除","ipcheck.history.empty":"暂无历史记录","ipcheck.history.current":"当前","ipcheck.region.CN":"中国大陆","ipcheck.region.HK":"香港","ipcheck.region.MO":"澳门","ipcheck.region.RU":"俄罗斯","ipcheck.region.KP":"朝鲜","ipcheck.region.IR":"伊朗","ipcheck.region.SY":"叙利亚","ipcheck.region.CU":"古巴","ipcheck.region.BY":"白俄罗斯","ipcheck.region.VE":"委内瑞拉","leaderboard.profile_modal.close":"关闭","leaderboard.profile_modal.loading":"正在加载用户资料…","leaderboard.profile_modal.error":"加载用户资料失败。","leaderboard.profile_modal.empty":"这个用户的资料未公开。","leaderboard.profile_modal.row_aria":"查看 {{name}} 的资料","leaderboard.profile_modal.rank":"#{{rank}}","leaderboard.profile.hero.rank_label":"排名","leaderboard.profile_modal.hero.total_tokens":"总 Token","leaderboard.profile_modal.hero.total_cost":"总花费","leaderboard.profile_modal.hero.github":"GitHub 主页","leaderboard.profile_modal.stat.total_cost":"总花费","leaderboard.profile_modal.stat.total_tokens":"总 Token","leaderboard.profile_modal.stat.active_days":"活跃天数","leaderboard.profile_modal.stat.avg_per_day":"日均花费","leaderboard.profile_modal.streak.current":"当前连续","leaderboard.profile_modal.streak.longest":"最长连续","leaderboard.profile_modal.streak.days":"{{count}} 天","leaderboard.profile_modal.best_day.title":"最佳日","leaderboard.profile_modal.best_day.none":"—","leaderboard.profile_modal.models.count":"使用了 {{count}} 个模型","leaderboard.profile_modal.models.favorite":"最爱模型","leaderboard.profile_modal.models.none":"暂无模型记录","leaderboard.profile_modal.heatmap.title":"活跃度(最近 365 天)","leaderboard.profile_modal.providers.title":"按 Provider 分布","leaderboard.profile_modal.providers.none":"本周期无使用数据。","leaderboard.profile_modal.view_full":"查看完整主页","local_only.title":"请在客户端内使用","local_only.body":"这个页面读取的是你本机上的数据,所以只能在 Mac app 或命令行 dashboard 里查看。","local_only.open_app":"在 Mac app 内打开","local_only.download":"下载 Mac app","dashboard.auth_gate.title":"登录 Token Tracker","dashboard.auth_gate.subtitle":"登录以在云端同步并查看您的 API 使用量、成本和 Token 消耗趋势。","dashboard.auth_gate.button":"立即登录","dashboard.expired_gate.title":"会话已过期","dashboard.expired_gate.subtitle":"您的会话已过期。请重新登录以继续查看您的云端仪表盘。","dashboard.expired_gate.button":"重新登录","shared.app_name":"Token Tracker","dashboard.auth_gate.hero_title":"让 AI 代理的每一笔 Token 消耗","dashboard.auth_gate.hero_subtitle":"清晰透明、多端无缝掌控","dashboard.auth_gate.desc":"为您在纯云端安全同步来自 Claude Code、Cursor、Gemini CLI 等全平台主流代理的 Token 额度、并发费用及耗时统计,提供前所未有的全景可视化数据分析。","dashboard.auth_gate.feature.sync.title":"实时云端同步","dashboard.auth_gate.feature.sync.desc":"全自动采集各端代理的开销,并在您的私人云盘中秒级安全归档。","dashboard.auth_gate.feature.anal.title":"多维看板分析","dashboard.auth_gate.feature.anal.desc":"按模型分类、时间跨度统计 Token 分布,随时追溯开销尖峰及用量结构。","dashboard.auth_gate.feature.guard.title":"本地直连免登","dashboard.auth_gate.feature.guard.desc":"在 Localhost 模式下自动跳过所有登录验证,完美保护本地离线调试体验。","dashboard.expired_gate.hero_title":"您的云端会话已过期","dashboard.expired_gate.desc":"为了您的隐私与云盘数据安全,安全凭证会在一段时间后自动过期。请重新验证以极速同步仪表盘。","dashboard.expired_gate.feature.sec.title":"安全证书保护","dashboard.expired_gate.feature.sec.desc":"加密证书到期自动销毁,严密守护您的 Token 账单资产。","dashboard.expired_gate.feature.restore.title":"无缝数据恢复","dashboard.expired_gate.feature.restore.desc":"重新登入后自动恢复多端实时看板刷新,无需重新绑定。","dashboard.expired_gate.feature.cloud.title":"跨端云端同步","dashboard.expired_gate.feature.cloud.desc":"多端随时离线统计并同步至个人控制台,多地协同掌握开销。"},i8={"landing.handle.default":"VIBE_USER","landing.handle.special":"伏特","landing.screenshot.alt":"TokenTracker 仪表板截图","landing.nav.login":"登录","landing.nav.signup":"注册","landing.install.command":"npx --yes tokentracker-cli","landing.install.action.copy":"复制命令","landing.install.action.copied":"已复制","landing.meta.title":"Token Tracker —— AI Coding CLI 的 Token 用量追踪器","landing.meta.description":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/og-image.jpg","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker 分享","share.meta.description":"分享你的 Token Tracker 仪表板快照,包含跨模型、项目和时间窗口的用量洞察。","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/share-dashboard.jpg","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.handle.placeholder":"试试 “{{handle}}”","landing.rank.expectation":"预期排名:{{rank}}","landing.rank.singularity":"登顶","landing.rank.unranked":"未上榜","landing.cta.primary":"进入仪表板","landing.cta.secondary":"GitHub","landing.v2.hero.title_line1":"追踪你所有的","landing.v2.hero.title_line2":"AI Token","landing.v2.install.mac_cta":"下载 macOS 版","landing.v2.install.win_cta":"下载 Windows 版","landing.v2.install.desktop_cta":"下载桌面版","landing.v2.install.os_macos":"macOS","landing.v2.install.os_windows":"Windows","landing.v2.install.availability":"支持 macOS 与 Windows","landing.v2.models.title":"支持的 AI CLI 工具","landing.v2.compare.kicker":"无缝追踪","landing.v2.compare.title":"别再瞎猜你的 AI 用量。","landing.v2.compare.subtitle":"AI CLI 工具常把原始用量数据隐藏在零散的本地文件中。TokenTracker 将它们实时整理为本地优先的仪表板。","landing.v2.distill.body":"100% 本地处理,不上传任何 prompt 或代码。","landing.v2.compare.with.title":"用 Token Tracker","landing.v2.compare.with.p1":"集中式用量仪表板","landing.v2.compare.with.p2":"实时 Token 指标","landing.v2.compare.with.p3":"100% 本地,隐私无忧","landing.v2.compare.with.p4":"多客户端终端审计轨迹","landing.v2.compare.without.title":"不用","landing.v2.compare.without.p1":"散落的 JSON 日志文件","landing.v2.compare.without.p2":"对 Token 消耗一无所知","landing.v2.compare.without.p3":"突如其来的 API 账单","landing.v2.compare.without.p4":"缺失历史审计日志","landing.v2.leaderboard.kicker":"全球 TOKEN 排行榜","landing.v2.leaderboard.title":"AI Token 效率","landing.v2.leaderboard.subtitle":"您可以选择匿名同步本地 AI Token 用量,加入全球效率排行榜。与全球开发者一同评估模型开销效率与调用频次。","landing.v2.leaderboard.view_more":"查看完整排行榜","landing.v2.footer.line":"Token Tracker —— 开发者打造,服务开发者。","landing.v2.nav.status":"状态","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"Codex","landing.v2.models.agent.claude_code":"Claude Code","landing.v2.models.agent.cursor":"Cursor","landing.v2.models.agent.gemini":"Gemini","landing.v2.models.agent.opencode":"OpenCode","landing.v2.models.agent.openclaw":"OpenClaw","landing.v2.cta.primary":"Dashboard","landing.v2.hero.subtagline":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","leaderboard.profile.nav.back":"排行榜","leaderboard.profile.nav.download":"下载","leaderboard.title":"排行榜","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"全部时间","leaderboard.generated_at":"更新于 {{ts}}","leaderboard.period.week":"周","leaderboard.period.month":"月","leaderboard.period.total":"全部","leaderboard.me_label":"你","leaderboard.anon_label":"匿名","leaderboard.error.unknown":"未知错误","leaderboard.loading":"加载中…","leaderboard.empty":"暂无数据","leaderboard.column.rank":"排名","leaderboard.column.user":"用户","leaderboard.column.total":"总计","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"Copilot","leaderboard.column.kimi":"Kimi","leaderboard.column.supplemental":"其他","leaderboard.column.est_cost":"预估花费","leaderboard.signin_prompt":"登录后即可上榜","leaderboard.signin_button":"登录","leaderboard.sync_prompt":"开启云同步即可参与排名","leaderboard.sync_button.idle":"开启并同步","leaderboard.sync_button.busy":"同步中…","leaderboard.pagination.page_size_label":"每页显示","leaderboard.pagination.prev":"上一页","leaderboard.pagination.next":"下一页","leaderboard.pagination.ellipsis":"……","leaderboard.pagination.page_unknown":"第 {{page}} 页","share.modal.title":"分享你的数据","share.modal.subtitle":"生成海报卡片,随处分享。","share.modal.close":"关闭","share.modal.action.x":"分享到 X","share.modal.action.download":"下载","share.modal.action.copy":"复制图片","share.modal.hint.x":"把图片粘贴到推文里","share.modal.hint.copy":"到剪贴板","share.modal.name_label":"显示名称","share.modal.name_placeholder":"输入你的名字","share.modal.style_label":"样式","share.modal.footer":"数据始终保留在本地——图片在你的浏览器内生成,绝不上传。","share.button.label":"分享","share.button.aria":"打开分享卡片","share.toast.copied":"图片已复制到剪贴板","share.toast.downloaded":"图片已保存","share.toast.failed":"图片生成失败","share.toast.working":"生成中…","share.variant.neon":"霓虹","share.variant.broadsheet":"特刊","share.date.month_year":"{{year}} 年 {{month}}","share.issue.all_time":"总计","share.month_short.jan":"1 月","share.month_short.feb":"2 月","share.month_short.mar":"3 月","share.month_short.apr":"4 月","share.month_short.may":"5 月","share.month_short.jun":"6 月","share.month_short.jul":"7 月","share.month_short.aug":"8 月","share.month_short.sep":"9 月","share.month_short.oct":"10 月","share.month_short.nov":"11 月","share.month_short.dec":"12 月","share.hook.top_loyal":"{{name}} 占了 {{percent}}% 的用量。","share.hook.days_record":"共记录 {{days}} 天。","share.hook.top_led":"{{name}} 领跑,占比 {{percent}}%。","share.hook.multi_models":"{{days}} 天里用了 {{count}} 个模型。","share.hook.days_with_model":"{{name}} 陪你跑了 {{days}} 天。","share.hook.new_chapter":"新的记录,从这里开始。","share.card.broadsheet.issue":"期号","share.card.broadsheet.by":"分享者","share.card.broadsheet.tracked_since":"追踪起始","share.card.broadsheet.total_tokens":"总 Token 数","share.card.broadsheet.estimated_spend":"预估花费","share.card.broadsheet.billable_days":"{{days}} 个活跃日","share.card.broadsheet.heatmap_title":"年度热图","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}} 天有记录","share.card.broadsheet.roster_title":"模型榜","share.card.broadsheet.roster_subtitle":"常用模型轮换","share.card.broadsheet.empty":"这一周很安静,还没有模型数据。","share.card.broadsheet.global_rank":"全站排名","share.card.broadsheet.active_days":"活跃","share.card.broadsheet.days_count":"{{days}} 天","share.card.broadsheet.track_yours":"追踪你自己的","share.card.annual.report_title":"用量报告","share.card.annual.less":"少","share.card.annual.more":"多","share.card.annual.heatmap_title":"Token 热图","share.card.annual.total_tokens":"总 Token 数","share.card.annual.estimated_cost":"预估成本","share.card.annual.longest_streak":"最长连击","share.card.annual.days_count":"{{days}} 天","share.card.annual.top_model":"热门模型"},o8={"header.auth.sign_in_aria":"登入","login.back_home":"返回首頁","login.cloud_only":"未配置雲端登入。請使用 localhost 上的本地儀表盤。","login.title":"登入","login.subtitle":"選擇郵箱或已連線賬號。","login.dismiss":"關閉","login.verify_email_success":"郵箱已驗證。你現在可以登入。","login.verify_email_pending":"請先在郵箱中完成驗證,然後再登入。","login.oauth.continue":"使用 {{provider}} 繼續","login.divider":"或","login.tab.sign_in":"登入","login.tab.sign_up":"建立賬戶","login.field.name":"顯示名稱","login.field.name_placeholder":"可選","login.field.email":"電子郵件","login.field.password":"密碼","login.password_hint":"至少 {{min}} 個字元。","login.submit.sign_in":"使用郵箱登入","login.submit.sign_up":"建立賬號","auth.callback.processing":"處理中…","auth.callback.success":"登入成功","auth.callback.redirecting":"正在返回 TokenTracker…","auth.callback.failed":"登入未完成,請重試。","auth.callback.close":"關閉此頁","login_modal.subtitle":"登入以加入排行榜","login_modal.continue_email":"使用郵箱繼續","login_modal.divider_email":"郵箱","shared.placeholder.short":"--","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.data_source":"資料來源:{{source}}","shared.error.prefix":"錯誤:{{error}}","shared.status.unsynced":"—","shared.time.now":"剛剛","error.boundary.title":"出了點問題","error.boundary.subtitle":"這個檢視渲染失敗了","error.boundary.hint":"開啟控制台,然後重新載入頁面","error.boundary.no_details":"沒有錯誤詳細資訊","error.boundary.action.reload":"重新載入","identity_card.rank_label":"排名","identity_card.streak_label":"活躍天數","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}} 天","usage.summary.total":"Token 總數","usage.period.day":"日","usage.period.week":"周","usage.period.month":"月","usage.period.total":"總計","usage.period.custom":"自定義","usage.metric.total":"總計","usage.metric.input":"輸入","usage.metric.output":"輸出","usage.metric.cached_input":"快取輸入","usage.metric.reasoning_output":"推理輸出","usage.button.refresh":"重新整理","usage.overview.tablist_aria":"時間範圍","usage.overview.cost_breakdown_aria":"檢視成本明細","usage.overview.distribution_aria":"來源佔比:{{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}:{{percent}}%,{{tokens}} Token,{{cost}}。點選{{action}}詳情","usage.overview.expand":"展開","usage.overview.collapse":"收起","usage.overview.model_count":"{{count}} 個模型","usage.overview.model_details_aria":"{{provider}} 模型詳情","widgets.page.title":"元件","widgets.cta.open_gallery":"開啟小元件庫","widgets.cta.download":"下載 Mac 應用","widgets.cta.macos_only":"僅限 macOS","widgets.menubar.section.title":"選單欄","widgets.gallery.section.title":"桌面小元件","widgets.summary.name":"使用概覽","widgets.summary.description":"今天和近 7 天的用量,以及緊湊趨勢線。","widgets.heatmap.name":"熱力圖","widgets.heatmap.description":"像 GitHub 一樣,一眼看清活躍和空閒的日子。","widgets.topModels.name":"熱門模型","widgets.topModels.description":"你最常用的模型,按 Token 佔比排序。","widgets.limits.name":"使用限制","widgets.limits.description":"Claude、Codex、Cursor、Gemini 等的即時速率限制進度。","daily.sort.date.label":"日期","daily.sort.date.title":"按日期排序","daily.sort.total.label":"總計","daily.sort.total.title":"按總計排序","daily.sort.input.label":"輸入","daily.sort.input.title":"按輸入排序","daily.sort.output.label":"輸出","daily.sort.output.title":"按輸出排序","daily.sort.cached.label":"快取","daily.sort.cached.title":"按快取輸入排序","daily.sort.reasoning.label":"推理","daily.sort.reasoning.title":"按推理輸出排序","daily.sort.conversations.label":"對話數","daily.sort.conversations.title":"按對話排序","details.pagination.prev":"上一頁","details.pagination.next":"下一頁","limits.copilot.otelHint.title":"跟蹤 Copilot Token 使用情況","limits.copilot.otelHint.body":"限額資訊通過你的 GitHub OAuth 令牌讀取。如果還想記錄逐 Token 用量,請啟用 Copilot 的 OpenTelemetry 匯出,把下面這段加到你的 shell 配置檔案(~/.zshrc 或 ~/.bashrc):","limits.copilot.otelHint.copy":"複製","limits.copilot.otelHint.copied":"已複製","limits.panel.title":"使用限制","limits.panel.mode_separator":" · ","limits.label.cursor_plan":"套餐","limits.label.cursor_auto":"自動","limits.label.cursor_api":"API","limits.label.kiro_month":"月度","limits.label.kiro_bonus":"獎勵","limits.label.kimi_weekly":"周","limits.label.kimi_5h":"5h","limits.label.kimi_total":"總量","limits.label.kimi_parallel":"併發:{{count}}","limits.label.copilot_premium":"高階","limits.label.copilot_chat":"對話","limits.label.grok_month":"月度","limits.label.grok_ondemand":"按需","limits.provider.claude":"Claude","limits.provider.codex":"Codex","limits.provider.cursor":"Cursor","limits.provider.gemini":"Gemini","limits.provider.kimi":"Kimi","limits.provider.kiro":"Kiro","limits.provider.grok":"Grok Build","limits.provider.copilot":"GitHub Copilot","limits.provider.antigravity":"Antigravity","limits.label.claude_5h":"5h","limits.label.claude_7d":"7d","limits.label.claude_opus":"Opus","limits.label.codex_5h":"5h","limits.label.codex_7d":"7d","limits.label.codex_spark_5h":"Spark 5h","limits.label.codex_spark_7d":"Spark 7d","limits.label.gemini_pro":"Pro","limits.label.gemini_flash":"Flash","limits.label.gemini_lite":"Lite","limits.label.antigravity_claude":"Claude","limits.label.antigravity_gpro":"G Pro","limits.label.antigravity_flash":"Flash","limits.bar.sub_one_percent":"<1","limits.status.not_connected":"未連線","limits.status.no_data":"未返回即時限額資料","limits.status.all_hidden":"所有限額提供商都已隱藏。請開啟顯示設定重新顯示。","nav.usage":"用量","nav.limits":"限額","nav.widgets":"小元件","nav.skills":"Skills","nav.leaderboard":"排行榜","nav.collapse":"摺疊側邊欄","nav.expand":"展開側邊欄","nav.menu":"開啟導航選單","nav.close_menu":"關閉導航選單","nav.aside_label":"主導航","nav.nav_label":"導航","limits.page.subtitle":"AI 工具的速率限制和配額使用情況。","limits.settings.toggle_visible":"切換可見性","limits.settings.display_mode_label":"用量","limits.settings.display_mode_used":"已用","limits.settings.display_mode_remaining":"剩餘","limits.page.openSettings":"顯示設定","nav.group.general":"常規","nav.group.tools":"工具","nav.group.account":"賬戶","nav.settings":"設定","header.auth.open_settings":"開啟設定","settings.page.title":"設定","settings.page.subtitle":"管理你的賬戶、外觀和顯示偏好。","settings.section.appearance":"外觀","settings.section.account":"賬戶","settings.section.limits":"限制顯示","settings.appearance.theme.label":"主題","settings.appearance.theme.hint":"選擇 Token Tracker 在儀表盤中的顯示方式。","settings.appearance.theme.light":"淺色","settings.appearance.theme.dark":"深色","settings.appearance.theme.system":"系統","settings.account.displayName":"顯示名稱","settings.account.edit":"編輯","settings.account.save":"儲存","settings.account.saving":"儲存...","settings.account.cancel":"取消","settings.account.userId":"使用者 ID","settings.account.copyUserId":"複製使用者 ID","settings.account.copy":"複製","settings.account.copied":"已複製","settings.account.cloudSync":"雲同步","settings.account.cloudSyncHint":"將本地用量上傳到你的 Token Tracker 雲端賬號。","settings.account.publicProfile":"公開主頁","settings.account.publicProfileHint":"在公開排行榜中展示你的用量。","settings.account.displayNameAnonymousHint":"匿名狀態下,排行榜會隱藏你的名字和頭像","settings.account.displayNameDisabledWhileAnon":"請先關閉匿名,再編輯名字","settings.account.githubUrl":"GitHub 主頁","settings.account.githubUrlHint":"在排行榜名字旁顯示 GitHub 連結。","settings.account.githubUrlPlaceholder":"使用者名稱或 https://github.com/使用者名稱","settings.account.githubUrlInvalid":"請輸入 GitHub 使用者名稱,或 https://github.com/使用者名稱","leaderboard.github.aria":"開啟 GitHub 主頁","leaderboard.github.tooltipAction":"點選檢視 GitHub 主頁","leaderboard.github.tooltipPrefix":"可在","leaderboard.github.tooltipSettingsLink":"設定","leaderboard.github.tooltipSuffix":"中配置你的主頁","settings.account.signOut":"退出登入","settings.account.signIn":"登入","settings.account.signedOutHint":"登入後可管理雲同步和排行榜偏好。","settings.section.menubar":"選單欄應用","settings.menubar.showStats":"在選單欄中顯示統計資訊","settings.menubar.showStatsHint":"在選單欄圖示旁邊顯示今天的Token 數量和成本。","settings.menubar.animatedIcon":"動畫圖示","settings.menubar.animatedIconHint":"閃爍 Clawd 角色並在選單欄中播放同步動畫。","settings.menubar.launchAtLogin":"登入時啟動","settings.menubar.launchAtLoginHint":"登入 macOS 時自動啟動 TokenTrackerBar。","settings.menubar.syncNow":"立即同步","settings.menubar.syncNowHint":"觸發本地AI工具日誌立即解析並上傳。","settings.menubar.syncing":"正在同步...","settings.menubar.updates":"更新","settings.menubar.checkUpdates":"檢查更新","settings.footer.statusPage":"系統狀態","menubar.slot.primary":"第一個位置","menubar.slot.secondary":"第二個位置","menubar.native_only":"開啟 macOS 版 TokenTrackerBar 後可編輯選單欄顯示。","menubar.metric.today_tokens":"今日 Token","menubar.metric.today_cost":"今日成本","menubar.metric.last_7d_tokens":"近 7 天 Token","menubar.metric.total_tokens":"總 Token","menubar.metric.total_cost":"總成本","menubar.metric.claude_5h":"Claude 5 小時限額","menubar.metric.claude_7d":"Claude 7 天限額","menubar.metric.codex_5h":"Codex 5 小時限額","menubar.metric.codex_7d":"Codex 7 天限額","menubar.metric.codex_spark_5h":"Codex Spark 5 小時限額","menubar.metric.codex_spark_7d":"Codex Spark 7 天限額","nav.ip_check":"Claude IP 檢查","skills.page.title":"Skills","skills.tab.my":"我的","skills.tab.browse":"發現","skills.action.refresh":"重新整理","skills.action.install":"安裝","skills.action.choose_targets":"選擇目標","skills.target.menu_label":"安裝到","skills.target.none":"未選目標","skills.toast.installed":"已把 {{name}} 安裝到 {{targets}}。","skills.action.remove":"移除","skills.action.search":"搜尋","skills.action.search_aria":"搜尋 skills","skills.action.search_clear":"清除搜尋","skills.target.synced_summary":"已同步到 {{targets}}","skills.target.synced_none":"尚未同步到任何 agent","skills.row.open_details":"檢視 {{name}} 詳情","skills.detail.close":"關閉詳情","skills.detail.sync_section_title":"同步到","skills.detail.remove_button":"從所有 agent 移除","skills.detail.remove_confirm_hint":"這會從每個 agent 取消同步並刪除本地副本。","skills.filter.agent_label":"Agent","skills.filter.agent_all":"全部 agent","skills.filter.clear":"清除篩選","skills.my.placeholder":"篩選已安裝的 skills…","skills.filter.result_count":"{{filtered}} / {{total}} 個 skill","skills.filter.result_count_browse":"{{count}} 個結果","skills.empty.no_match":"當前篩選下沒有匹配的 skill。","hint.dismiss":"關閉提示","hint.dismissible_aria":"可關閉的提示","skills.card.installed":"已安裝","skills.card.targets_prefix":"將安裝到:","skills.card.targets_change":"更改","skills.card.installs":"{{count}} 次安裝","skills.source.label":"來源","skills.source.all":"全部倉庫","skills.mode.repo":"倉庫","skills.mode.skillssh":"skills.sh","skills.browse.placeholder_all":"在已啟用的倉庫裡搜尋…","skills.browse.placeholder_repo":"在 {{repo}} 中搜索…","skills.browse.placeholder_skillssh":"在 skills.sh 倉庫中搜索…","skills.browse.empty_sources":"新增一個 GitHub 倉庫以開始瀏覽技能。","skills.browse.add_repo_hint":"想要更多 skill?新增一個 GitHub 倉庫。","skills.browse.manage_sources":"管理來源","skills.browse.hint_skillssh":"至少輸入 2 個字元以搜尋 skills.sh。","skills.browse.loading_hint":"正在從 GitHub 拉取 skill 資訊,首次載入可能需要一分鐘,結果會快取。","skills.error.generic":"Skill 操作失敗。","skills.confirm.remove_title":"要移除 {{name}} 嗎?","skills.confirm.remove_managed":"這個 skill 將從所有已連線的 AI 工具中移除,幾秒內可以撤銷。","skills.confirm.remove_local":"將從所有 AI 工具目錄中刪除該 skill 資料夾。此操作無法撤銷。","skills.toast.removed":"已移除 {{name}}。","shared.action.undo":"撤銷","shared.action.cancel":"取消","shared.action.apply":"套用","skills.empty.my":"還沒有 skill。去「發現」搜尋或安裝。","skills.empty.my_cta":"去發現","skills.empty.browse":"這個來源下沒有找到技能。","skills.empty.search":"沒有結果,換個關鍵詞試試。","skills.repo.placeholder":"owner/repository","skills.repo.add":"新增倉庫","skills.repo.invalid":"請輸入 owner/repository 或 GitHub 倉庫 URL。","skills.repo.remove":"移除倉庫","settings.appearance.language.label":"語言","settings.appearance.language.hint":"使用“系統”時會預設跟隨本機語言。","settings.appearance.language.system":"系統","settings.appearance.language.english":"英語","settings.appearance.language.chinese":"簡體中文","settings.appearance.language.traditional_chinese":"繁體中文","settings.appearance.language.japanese":"日語","settings.appearance.language.korean":"韓語","settings.appearance.currency.label":"貨幣","settings.appearance.currency.hint":"選擇用量成本的顯示幣種。","settings.appearance.currency.opt.usd":"美元 ($)","settings.appearance.currency.opt.eur":"歐元 (€)","settings.appearance.currency.opt.gbp":"英鎊 (£)","settings.appearance.currency.opt.cny":"人民幣 (¥)","settings.appearance.currency.opt.jpy":"日元 (¥)","settings.appearance.currency.opt.hkd":"港幣 (HK$)","settings.appearance.currency.rate_source.default":"內建預設匯率","settings.appearance.currency.rate_source.fetched":"資料來源:open.er-api.com","settings.appearance.currency.rate_updated":"更新於 {{when}}","settings.appearance.currency.rate_never":"尚未重新整理"},s8={"usage.overview.antigravity_notice_title":"Token 為估算值","usage.overview.antigravity_notice_body":"Antigravity 的本地日誌沒有真實用量欄位,這裡的數字是按字元長度(約 4 字元/Token)估算出來的,也沒有扣除 Gemini 的 prompt cache 折扣。請把它當作上限估算,不要直接對賬賬單。","stats.period.today":"今日","stats.period.week":"本週","stats.period.month":"本月","stats.period.all":"全部","stats.period.convs":"對話","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"摺疊模型分解","dashboard.core_index.expand_aria":"展開模型細分","dashboard.rolling.title":"最近的活動","dashboard.rolling.last_7d":"過去 7 天","dashboard.rolling.last_30d":"過去 30 天","dashboard.rolling.avg_active_day":"日平均","dashboard.projects.title":"專案用量","dashboard.projects.tokens_label":"Token","dashboard.projects.stars_label":"星標","dashboard.projects.limit_label":"展示","dashboard.projects.limit_aria":"選擇倉庫顯示數量","dashboard.projects.limit_top_3":"前 3 名","dashboard.projects.limit_top_6":"前 6 名","dashboard.projects.limit_top_10":"前 10 名","dashboard.projects.empty":"沒有公開倉庫","dashboard.widgets.title":"桌面小元件","dashboard.widgets.hint":"右鍵點按桌面 → 編輯小元件 → 搜尋“TokenTracker”","dashboard.widgets.dismiss_aria":"關閉小元件介紹","dashboard.cost_breakdown.title":"成本明細","dashboard.cost_breakdown.total_label":"預計總成本","dashboard.cost_breakdown.close":"關閉","trend.monitor.label":"使用趨勢","trend.zoom.open_aria":"展開全螢幕","trend.zoom.close_aria":"關閉","trend.zoom.badge":"趨勢洞察","trend.zoom.desc":"懸停任一長條查看 token、成本與對話數。切換粒度可從月份下鑽到半小時。","trend.zoom.insight_badge":"洞察","trend.zoom.tooltip.cost":"成本","trend.zoom.tooltip.conversations":"對話","trend.zoom.stats.tokens":"Token 總量","trend.zoom.stats.cost":"總成本","trend.zoom.stats.conversations":"對話數","trend.zoom.stats.peak":"峰值時段","trend.zoom.gran.aria":"粒度","trend.zoom.gran.30min":"30 分鐘","trend.zoom.gran.day":"天","trend.zoom.gran.month":"月","trend.zoom.prev_day":"前一天","trend.zoom.next_day":"後一天","trend.zoom.loading":"載入中…","trend.zoom.pick_day":"選擇日期","trend.zoom.pick_range":"選擇日期範圍","trend.zoom.insight.empty":"一段安靜的時光,沒有一個 token 流過。","trend.zoom.insight.calm":"輕描淡寫。模型大多在待命,只在你需要時才醒來搭把手。","trend.zoom.insight.steady":"{{active}} 個活躍時段裡節奏平穩,峰值 {{peak}}。是那種不聲不響就把事情交付掉的節奏。","trend.zoom.insight.heavy":"火力全開:{{active}} 個時段持續高熱,峰值衝到 {{peak}}。這是自己製造勢能、而非等待靈感的人的產出。","trend.zoom.insight.massive":"工業級別。{{peak}} 的峰值,吞吐從不降溫。到這個量級,你已經不是在用模型,而是在營運一座工廠。","heatmap.title":"熱力圖","heatmap.empty":"尚無活動資料。","heatmap.legend.less":"少","heatmap.legend.more":"多","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"Token","heatmap.month.jan":"1月","heatmap.month.feb":"2月","heatmap.month.mar":"3月","heatmap.month.apr":"4月","heatmap.month.may":"5月","heatmap.month.jun":"6月","heatmap.month.jul":"7月","heatmap.month.aug":"8月","heatmap.month.sep":"9月","heatmap.month.oct":"10月","heatmap.month.nov":"11月","heatmap.month.dec":"12月","heatmap.day.sun":"日","heatmap.day.mon":"一","heatmap.day.tue":"二","heatmap.day.wed":"三","heatmap.day.thu":"四","heatmap.day.fri":"五","heatmap.day.sat":"六","dashboard.session_expired.copy_label":"執行 npx --yes tokentracker-cli init","dashboard.session_expired.copied":"已複製","dashboard.install.prompt":"安裝 Node.js 18+ 然後執行:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"複製安裝命令","dashboard.install.copy_base":"複製初始化命令","dashboard.install.copied":"已複製到剪貼簿","dashboard.install.link_code.loading":"正在生成專屬程式碼...","dashboard.install.link_code.failed":"專屬程式碼不可用","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.daily.title":"每日細目","dashboard.daily.empty":"還沒有資料。先使用 AI CLI,再執行 {{cmd}}。","dashboard.identity.title":"你的個人資料","dashboard.identity.subtitle":"記錄你的編碼之旅","dashboard.identity.fallback":"匿名使用者","dashboard.screenshot.title_line1":"AI 程式設計助手","dashboard.screenshot.title_line2":"2025 年度回顧","dashboard.screenshot.twitter_button":"分享到 X","dashboard.screenshot.twitter_label":"分享到 X","dashboard.screenshot.twitter_hint":"自動將影像複製到剪貼簿","dashboard.screenshot.twitter_text":"記錄中的 {{total_tokens}} Token。\\n{{model_name}} 以 {{model_percent}}% 領先。\\n\\n我的 AI 使用情況,未經審計 →","heatmap.3d.hover_tip":"點選進入 3D 全屏旋轉分析模式","heatmap.3d.modal.title":"Token 三維透視","heatmap.3d.modal.desc":"按住左鍵拖拽可任意旋轉,懸浮感知每日活躍資料與多維統計。","heatmap.3d.modal.stats.total_tokens":"年度 Token 總量","heatmap.3d.modal.stats.precision_total_tokens":"精準年消耗量","heatmap.3d.modal.stats.estimated_cost":"年度估算費用","heatmap.3d.modal.stats.active_rate_days":"活躍佔比 / 天數","heatmap.3d.modal.stats.max_streak":"最長連續活躍","heatmap.3d.modal.stats.days_suffix":"天","heatmap.3d.modal.stats.peak_day":"單日峰值暴擊","heatmap.3d.modal.stats.precision_peak_value":"精確單日峰值","heatmap.3d.modal.stats.no_data":"無資料","heatmap.3d.modal.legend.title":"活躍度層級","heatmap.3d.modal.palette.emerald":"翡翠之城","heatmap.3d.modal.palette.ocean":"深海浩瀚","heatmap.3d.modal.palette.neon":"賽博霓虹","heatmap.3d.modal.palette.amber":"烈焰餘暉","heatmap.3d.modal.control.play":"啟動慢速自轉","heatmap.3d.modal.control.pause":"暫停自動旋轉","heatmap.3d.modal.control.reset":"重置 3D 視角","heatmap.3d.modal.footer.tip":"雙指縮放 / 滾輪縮放 / 滑鼠拖拽旋轉 3D 圖表","heatmap.3d.modal.ai.title.default":"持之以恆的行者","heatmap.3d.modal.ai.eval.default":"在技術的長河中持之以恆。也許日常的編碼並不總是波瀾壯闊,但每一個微小的活躍點都在記錄著您的思考與探索。星火成留,終將匯聚成屬於您的數字海洋。","heatmap.3d.modal.ai.title.peak":"極限活躍級貢獻者","heatmap.3d.modal.ai.eval.peak":"這一年中,您的 Token 產出表現出極高的工程密度。如此規模的開發量相當於深度參與了中大型系統底座的重構,每一次擊鍵都在將複雜的邏輯收斂為確定性的程式碼。這是極度專注與純粹工程熱愛的最好印證。","heatmap.3d.modal.ai.title.heavy":"高頻產出級開發者","heatmap.3d.modal.ai.eval.heavy":"卓越的持續輸出。您的 Token 累積量已達數百萬字,相當於數十部中篇技術鉅著的體量。高飽和度的編碼節奏表明您正在以極高的執行力構建屬於您的數字資產,展現了卓越的創造力。","heatmap.3d.modal.ai.title.core":"核心生產力專家","heatmap.3d.modal.ai.eval.core":"極具韌性的長期投入。在過去的一年中,您在較長週期內穩定保持著高強度的開發節奏。您用紮實的程式碼行數與 Token 產出,默默築起了專案的核心架構,是當之無愧的工程支柱。","heatmap.3d.modal.ai.title.steady":"穩健成長型工程師","heatmap.3d.modal.ai.eval.steady":"踏實而堅定的技術積累。每一次 Token 的遞增,都是您在堅實地砌下通往未來的程式碼基石。這種細水長流的穩健節奏,往往是一個優秀開發者通往工程大師的必經之路。","heatmap.3d.voxel.joke.1":"🔥 極度瘋狂!產出 {{value}} tokens!你是在瘋狂訓練大模型,還是手擼了一個編譯器?","heatmap.3d.voxel.joke.2":"🚀 史詩級輸出!共 {{value}} tokens。今日產出可繞地球一圈,AI 都在為你驚歎!","heatmap.3d.voxel.joke.3":"⚡ 爆擊日!{{value}} tokens。程式碼如泉湧,鍵盤已經開始冒煙了!","heatmap.3d.voxel.level3":"⚡ 生產力大爆發({{value}} tokens)!高效專注的黃金時刻,繼續保持這個巔峰狀態!","heatmap.3d.voxel.level2":"🌱 漸入佳境({{value}} tokens)!穩步產出,每一次敲擊鍵盤都是在為大廈添磚加瓦。","heatmap.3d.voxel.level1":"🍃 聚沙成塔({{value}} tokens)。微小的提交也是對未來的投資,保持複利的力量!","heatmap.3d.voxel.level0":"💤 養精蓄銳。在不寫程式碼的日子裡,靈感也在悄悄生長。","ipcheck.page.title":"Claude IP 檢測","ipcheck.page.subtitle":"檢視當前訪問 Claude 的出口 IP、純淨度、地理與風險訊號,識別可能影響登入或觸發風控的因素。","ipcheck.mask.toggle":"隱藏 IP","ipcheck.ipv6.warn":"當前為 IPv6 環境,不建議用 IPv6 訪問 Claude Code,部分檢測結果可能不完整。","ipcheck.ip.cn":"中國出口 IPv4","ipcheck.ip.cloudflare":"Cloudflare 出口","ipcheck.ip.claude":"Claude 出口","ipcheck.ip.failed":"獲取失敗","ipcheck.ip.loading":"載入中...","ipcheck.trust.title":"信任評分","ipcheck.trust.subtitle":"Claude 風控視角下的 IP 純淨度","ipcheck.trust.no_data":"無資料","ipcheck.trust.no_ip":"未獲取到 Claude 出口 IP,無法評分","ipcheck.trust.no_score":"該 IP 暫無評分資料","ipcheck.trust.gauge.low":"0 高危","ipcheck.trust.gauge.high":"100 可信","ipcheck.trust.label.pristine":"極度純淨","ipcheck.trust.label.clean":"純淨","ipcheck.trust.label.good":"良好","ipcheck.trust.label.neutral":"中性","ipcheck.trust.label.suspicious":"可疑","ipcheck.trust.label.unreachable":"不可訪問","ipcheck.trust.text.excellent":"該 IP 信譽極好","ipcheck.trust.text.great":"該 IP 信譽優異","ipcheck.trust.text.minor":"該 IP 存在輕微風險","ipcheck.trust.text.moderate":"該 IP 存在一定風險","ipcheck.trust.text.severe":"該 IP 風險極高","ipcheck.trust.text.restricted":"處於不可訪問區域,Claude 會嚴格風控","ipcheck.trust.region_warn.title":"Claude 出口 IP 位於 {{region}}","ipcheck.trust.region_warn.body":"不建議登入 Claude,容易觸發封號風控。","ipcheck.trust.region_support":"Claude 支援地區","ipcheck.trust.region.accessible":"可訪問","ipcheck.common.unknown":"未知","ipcheck.props.title":"IP 屬性","ipcheck.props.region":"地區","ipcheck.props.city":"城市","ipcheck.props.type":"型別","ipcheck.props.asn":"ASN","ipcheck.props.org":"運營商","ipcheck.props.residential":"家庭住宅","ipcheck.props.datacenter":"機房","ipcheck.security.title":"安全檢測","ipcheck.security.vpn":"VPN","ipcheck.security.proxy":"代理 (Proxy)","ipcheck.security.tor":"Tor","ipcheck.security.crawler":"機器人 (Crawler)","ipcheck.security.abuser":"濫用記錄","ipcheck.security.proxy_flag":"代理","ipcheck.security.crawler_yes":"是","ipcheck.security.crawler_no":"否","ipcheck.security.abuser_yes":"有記錄","ipcheck.security.abuser_no":"無記錄","ipcheck.security.clean":"未檢測到","ipcheck.avail.title":"Claude 可用性","ipcheck.avail.tooltip":"Claude 伺服器在美國,從亞洲訪問延遲超過 100ms 屬於正常情況。","ipcheck.avail.refresh":"重新整理","ipcheck.avail.svc_row":"服務狀態","ipcheck.avail.latency.normal":"正常","ipcheck.avail.latency.good":"良好","ipcheck.avail.latency.slow":"較慢","ipcheck.avail.latency.unreachable":"不可訪問","ipcheck.avail.svc.none":"全部正常","ipcheck.avail.svc.minor":"輕微故障","ipcheck.avail.svc.major":"重大故障","ipcheck.avail.svc.critical":"嚴重故障","ipcheck.avail.svc.maintenance":"維護中","ipcheck.avail.svc.other":"服務異常","ipcheck.dns.title":"DNS 洩露檢測","ipcheck.dns.status":"狀態","ipcheck.dns.outlet":"DNS 出口","ipcheck.dns.outlet_ip":"DNS 出口 IP","ipcheck.dns.isp":"服務商","ipcheck.dns.leaked":"可能洩露","ipcheck.dns.no_leak":"未檢測到洩露","ipcheck.dns.encrypted":"DNS 加密或未暴露","ipcheck.dns.cn_tag":"中國 DNS","ipcheck.udp.title":"WebRTC UDP 洩露","ipcheck.udp.status":"狀態","ipcheck.udp.outlet":"UDP 出口","ipcheck.udp.outlet_ip":"UDP 出口 IP","ipcheck.udp.origin":"歸屬地","ipcheck.udp.disabled":"WebRTC 已停用","ipcheck.udp.no_leak":"未檢測到洩露","ipcheck.udp.leaked":"可能洩露","ipcheck.udp.anomaly":"異常","ipcheck.device.title":"裝置資訊","ipcheck.device.tz":"時區","ipcheck.device.lang":"語言","ipcheck.device.os":"作業系統 / 瀏覽器","ipcheck.device.touch":"觸屏","ipcheck.device.net":"網路型別","ipcheck.device.dnt":"Do Not Track","ipcheck.device.webgl_render":"WebGL 渲染器","ipcheck.device.canvas_fp":"Canvas 指紋","ipcheck.device.webgl_fp":"WebGL 指紋","ipcheck.device.match":"一致","ipcheck.device.mismatch":"不一致","ipcheck.device.local":"本地","ipcheck.device.estimate_suffix":"(估算)","ipcheck.device.diff_equal":"偏移略有差異","ipcheck.device.diff_ahead":"Claude 快 {{h}} 小時","ipcheck.device.diff_behind":"Claude 慢 {{h}} 小時","ipcheck.device.lang_expected":"Claude 出口常用","ipcheck.device.touch_yes":"是","ipcheck.device.touch_no":"否","ipcheck.device.dnt_on":"已開啟","ipcheck.device.dnt_off":"已關閉","ipcheck.device.dnt_unset":"未設定","ipcheck.device.net_unsupported":"不支援檢測","ipcheck.device.unsupported":"不支援","ipcheck.history.title":"Claude 出口 IP 歷史","ipcheck.history.subtitle":"僅本地儲存於瀏覽器,最多保留 6 條","ipcheck.history.clear":"清除","ipcheck.history.empty":"暫無歷史記錄","ipcheck.history.current":"當前","ipcheck.region.CN":"中國大陸","ipcheck.region.HK":"香港","ipcheck.region.MO":"澳門","ipcheck.region.RU":"俄羅斯","ipcheck.region.KP":"朝鮮","ipcheck.region.IR":"伊朗","ipcheck.region.SY":"敘利亞","ipcheck.region.CU":"古巴","ipcheck.region.BY":"白俄羅斯","ipcheck.region.VE":"委內瑞拉","leaderboard.profile_modal.close":"關閉","leaderboard.profile_modal.loading":"正在載入使用者資料…","leaderboard.profile_modal.error":"載入使用者資料失敗。","leaderboard.profile_modal.empty":"這個使用者的資料未公開。","leaderboard.profile_modal.row_aria":"檢視 {{name}} 的資料","leaderboard.profile_modal.rank":"#{{rank}}","leaderboard.profile.hero.rank_label":"排名","leaderboard.profile_modal.hero.total_tokens":"總 Token","leaderboard.profile_modal.hero.total_cost":"總花費","leaderboard.profile_modal.hero.github":"GitHub 主頁","leaderboard.profile_modal.stat.total_cost":"總花費","leaderboard.profile_modal.stat.total_tokens":"總 Token","leaderboard.profile_modal.stat.active_days":"活躍天數","leaderboard.profile_modal.stat.avg_per_day":"日均花費","leaderboard.profile_modal.streak.current":"當前連續","leaderboard.profile_modal.streak.longest":"最長連續","leaderboard.profile_modal.streak.days":"{{count}} 天","leaderboard.profile_modal.best_day.title":"最佳日","leaderboard.profile_modal.best_day.none":"—","leaderboard.profile_modal.models.count":"使用了 {{count}} 個模型","leaderboard.profile_modal.models.favorite":"最愛模型","leaderboard.profile_modal.models.none":"暫無模型記錄","leaderboard.profile_modal.heatmap.title":"活躍度(最近 365 天)","leaderboard.profile_modal.providers.title":"按 Provider 分佈","leaderboard.profile_modal.providers.none":"本週期無使用資料。","leaderboard.profile_modal.view_full":"檢視完整主頁","local_only.title":"請在客戶端內使用","local_only.body":"這個頁面讀取的是你本機上的資料,所以只能在 Mac app 或命令列 dashboard 裡檢視。","local_only.open_app":"在 Mac app 內開啟","local_only.download":"下載 Mac app","dashboard.auth_gate.title":"登入 Token Tracker","dashboard.auth_gate.subtitle":"登入以在雲端同步並檢視您的 API 使用量、成本與 Token 消耗趨勢。","dashboard.auth_gate.button":"立即登入","dashboard.expired_gate.title":"會話已過期","dashboard.expired_gate.subtitle":"您的會話已過期。請重新登入以繼續檢視您的雲端儀表板。","dashboard.expired_gate.button":"重新登入","shared.app_name":"Token Tracker","dashboard.auth_gate.hero_title":"讓 AI 代理的每一筆 Token 消耗","dashboard.auth_gate.hero_subtitle":"清晰透明、多端無縫掌控","dashboard.auth_gate.desc":"為您在純雲端安全同步來自 Claude Code、Cursor、Gemini CLI 等全平台主流代理的 Token 額度、並發費用及耗時統計,提供前所未有的全景可視化數據分析。","dashboard.auth_gate.feature.sync.title":"實時雲端同步","dashboard.auth_gate.feature.sync.desc":"全自動採集各端代理的開銷,並在您的私人雲盤中秒級安全歸檔。","dashboard.auth_gate.feature.anal.title":"多維看板分析","dashboard.auth_gate.feature.anal.desc":"按模型分類、時間跨度統計 Token 分布,隨時追溯開銷尖峰及用量結構。","dashboard.auth_gate.feature.guard.title":"本地直連免登","dashboard.auth_gate.feature.guard.desc":"在 Localhost 模式下自動跳過所有登錄驗證,完美保護本地離線調試體驗。","dashboard.expired_gate.hero_title":"您的雲端會話已過期","dashboard.expired_gate.desc":"為了您的隱私與雲盤數據安全,安全憑證會在一段時間後自動過期。請重新驗證以極速同步儀表盤。","dashboard.expired_gate.feature.sec.title":"安全證書保護","dashboard.expired_gate.feature.sec.desc":"加密證書到期自動銷毀,嚴密守護您的 Token 賬單資產。","dashboard.expired_gate.feature.restore.title":"無縫數據恢復","dashboard.expired_gate.feature.restore.desc":"重新登入後自動恢復多端實時看板刷新,無需重新綁定。","dashboard.expired_gate.feature.cloud.title":"跨端雲端同步","dashboard.expired_gate.feature.cloud.desc":"多端隨時離線統計並同步至個人控制台,多地協同掌握開銷。"},l8={"landing.handle.default":"VIBE_USER","landing.handle.special":"伏特","landing.screenshot.alt":"TokenTracker 儀表板截圖","landing.nav.login":"登入","landing.nav.signup":"註冊","landing.install.command":"npx --yes tokentracker-cli","landing.install.action.copy":"複製命令","landing.install.action.copied":"已複製","landing.meta.title":"Token Tracker —— AI Coding CLI 的 Token 用量追蹤器","landing.meta.description":"自動監控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地優先、注重隱私、零配置。","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/og-image.jpg","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker 分享","share.meta.description":"分享你的 Token Tracker 儀表板快照,包含跨模型、專案和時間視窗的用量洞察。","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/share-dashboard.jpg","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.handle.placeholder":"試試 “{{handle}}”","landing.rank.expectation":"預期排名:{{rank}}","landing.rank.singularity":"登頂","landing.rank.unranked":"未上榜","landing.cta.primary":"進入儀表板","landing.cta.secondary":"GitHub","landing.v2.hero.title_line1":"追蹤你所有的","landing.v2.hero.title_line2":"AI Token","landing.v2.install.mac_cta":"下載 macOS 版","landing.v2.install.win_cta":"下載 Windows 版","landing.v2.install.desktop_cta":"下載桌面版","landing.v2.install.os_macos":"macOS","landing.v2.install.os_windows":"Windows","landing.v2.install.availability":"支援 macOS 與 Windows","landing.v2.models.title":"支援的 AI CLI 工具","landing.v2.compare.kicker":"無縫追蹤","landing.v2.compare.title":"別再瞎猜你的 AI 用量。","landing.v2.compare.subtitle":"AI CLI 工具常把原始用量數據隱藏在零散的本地文件中。TokenTracker 將它們即時整理為本地優先的儀表板。","landing.v2.distill.body":"100% 本地處理,不上傳任何 prompt 或程式碼。","landing.v2.compare.with.title":"用 Token Tracker","landing.v2.compare.with.p1":"集中式用量儀表板","landing.v2.compare.with.p2":"即時 Token 指標","landing.v2.compare.with.p3":"100% 本地,隱私無憂","landing.v2.compare.with.p4":"多用戶端終端審計軌跡","landing.v2.compare.without.title":"不用","landing.v2.compare.without.p1":"散落的 JSON 日誌檔案","landing.v2.compare.without.p2":"對 Token 消耗一無所知","landing.v2.compare.without.p3":"突如其來的 API 賬單","landing.v2.compare.without.p4":"缺失歷史審計記錄","landing.v2.leaderboard.kicker":"全球 TOKEN 排行榜","landing.v2.leaderboard.title":"AI Token 效率","landing.v2.leaderboard.subtitle":"您可以選擇匿名同步本地 AI Token 用量,加入全球效率排行榜。與全球開發者一同評估模型開銷效率與調用頻次。","landing.v2.leaderboard.view_more":"檢視完整排行榜","landing.v2.footer.line":"Token Tracker —— 開發者打造,服務開發者。","landing.v2.nav.status":"狀態","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"Codex","landing.v2.models.agent.claude_code":"Claude Code","landing.v2.models.agent.cursor":"Cursor","landing.v2.models.agent.gemini":"Gemini","landing.v2.models.agent.opencode":"OpenCode","landing.v2.models.agent.openclaw":"OpenClaw","landing.v2.cta.primary":"Dashboard","landing.v2.hero.subtagline":"自動監控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地優先、注重隱私、零配置。","leaderboard.profile.nav.back":"排行榜","leaderboard.profile.nav.download":"下載","leaderboard.title":"排行榜","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"全部時間","leaderboard.generated_at":"更新於 {{ts}}","leaderboard.period.week":"周","leaderboard.period.month":"月","leaderboard.period.total":"全部","leaderboard.me_label":"你","leaderboard.anon_label":"匿名","leaderboard.error.unknown":"未知錯誤","leaderboard.loading":"載入中…","leaderboard.empty":"暫無資料","leaderboard.column.rank":"排名","leaderboard.column.user":"使用者","leaderboard.column.total":"總計","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"Copilot","leaderboard.column.kimi":"Kimi","leaderboard.column.supplemental":"其他","leaderboard.column.est_cost":"預估花費","leaderboard.signin_prompt":"登入後即可上榜","leaderboard.signin_button":"登入","leaderboard.sync_prompt":"開啟雲同步即可參與排名","leaderboard.sync_button.idle":"開啟並同步","leaderboard.sync_button.busy":"同步中…","leaderboard.pagination.page_size_label":"每頁顯示","leaderboard.pagination.prev":"上一頁","leaderboard.pagination.next":"下一頁","leaderboard.pagination.ellipsis":"……","leaderboard.pagination.page_unknown":"第 {{page}} 頁","share.modal.title":"分享你的資料","share.modal.subtitle":"生成海報卡片,隨處分享。","share.modal.close":"關閉","share.modal.action.x":"分享到 X","share.modal.action.download":"下載","share.modal.action.copy":"複製圖片","share.modal.hint.x":"把圖片貼上到推文裡","share.modal.hint.copy":"到剪貼簿","share.modal.name_label":"顯示名稱","share.modal.name_placeholder":"輸入你的名字","share.modal.style_label":"樣式","share.modal.footer":"資料始終保留在本地——圖片在你的瀏覽器內生成,絕不上傳。","share.button.label":"分享","share.button.aria":"開啟分享卡片","share.toast.copied":"圖片已複製到剪貼簿","share.toast.downloaded":"圖片已儲存","share.toast.failed":"圖片生成失敗","share.toast.working":"生成中…","share.variant.neon":"霓虹","share.variant.broadsheet":"特刊","share.date.month_year":"{{year}} 年 {{month}}","share.issue.all_time":"總計","share.month_short.jan":"1 月","share.month_short.feb":"2 月","share.month_short.mar":"3 月","share.month_short.apr":"4 月","share.month_short.may":"5 月","share.month_short.jun":"6 月","share.month_short.jul":"7 月","share.month_short.aug":"8 月","share.month_short.sep":"9 月","share.month_short.oct":"10 月","share.month_short.nov":"11 月","share.month_short.dec":"12 月","share.hook.top_loyal":"{{name}} 佔了 {{percent}}% 的用量。","share.hook.days_record":"共記錄 {{days}} 天。","share.hook.top_led":"{{name}} 領跑,佔比 {{percent}}%。","share.hook.multi_models":"{{days}} 天裡用了 {{count}} 個模型。","share.hook.days_with_model":"{{name}} 陪你跑了 {{days}} 天。","share.hook.new_chapter":"新的記錄,從這裡開始。","share.card.broadsheet.issue":"期號","share.card.broadsheet.by":"分享者","share.card.broadsheet.tracked_since":"追蹤起始","share.card.broadsheet.total_tokens":"總 Token 數","share.card.broadsheet.estimated_spend":"預估花費","share.card.broadsheet.billable_days":"{{days}} 個活躍日","share.card.broadsheet.heatmap_title":"年度熱圖","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}} 天有記錄","share.card.broadsheet.roster_title":"模型榜","share.card.broadsheet.roster_subtitle":"常用模型輪換","share.card.broadsheet.empty":"這一週很安靜,還沒有模型資料。","share.card.broadsheet.global_rank":"全站排名","share.card.broadsheet.active_days":"活躍","share.card.broadsheet.days_count":"{{days}} 天","share.card.broadsheet.track_yours":"追蹤你自己的","share.card.annual.report_title":"用量報告","share.card.annual.less":"少","share.card.annual.more":"多","share.card.annual.heatmap_title":"Token 熱圖","share.card.annual.total_tokens":"總 Token 數","share.card.annual.estimated_cost":"預估成本","share.card.annual.longest_streak":"最長連擊","share.card.annual.days_count":"{{days}} 天","share.card.annual.top_model":"熱門模型"},c8={"header.auth.sign_in_aria":"ログイン","login.back_home":"ホームに戻る","login.cloud_only":"クラウドログインが設定されていません。localhost のローカルダッシュボードをご利用ください。","login.title":"ログイン","login.subtitle":"メールまたは連携済みアカウントを選択してください。","login.dismiss":"閉じる","login.verify_email_success":"メールアドレスが確認されました。ログインできます。","login.verify_email_pending":"ログインの前に、メールでの確認を完了してください。","login.oauth.continue":"{{provider}} で続ける","login.divider":"または","login.tab.sign_in":"ログイン","login.tab.sign_up":"アカウント作成","login.field.name":"表示名","login.field.name_placeholder":"任意","login.field.email":"メールアドレス","login.field.password":"パスワード","login.password_hint":"{{min}} 文字以上。","login.submit.sign_in":"メールでログイン","login.submit.sign_up":"アカウントを作成","auth.callback.processing":"処理中…","auth.callback.success":"ログインに成功しました","auth.callback.redirecting":"TokenTracker に戻っています…","auth.callback.failed":"ログインが完了しませんでした。もう一度お試しください。","auth.callback.close":"このページを閉じる","login_modal.subtitle":"ログインしてリーダーボードに参加","login_modal.continue_email":"メールで続ける","login_modal.divider_email":"メール","shared.placeholder.short":"--","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.data_source":"データソース:{{source}}","shared.error.prefix":"エラー:{{error}}","shared.status.unsynced":"—","shared.time.now":"たった今","error.boundary.title":"問題が発生しました","error.boundary.subtitle":"このビューのレンダリングに失敗しました","error.boundary.hint":"コンソールを開いてから、ページを再読み込みしてください","error.boundary.no_details":"エラーの詳細はありません","error.boundary.action.reload":"再読み込み","identity_card.rank_label":"ランク","identity_card.streak_label":"アクティブ日数","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}} 日","usage.summary.total":"トークン合計","usage.period.day":"日","usage.period.week":"週","usage.period.month":"月","usage.period.total":"合計","usage.period.custom":"カスタム","usage.metric.total":"合計","usage.metric.input":"入力","usage.metric.output":"出力","usage.metric.cached_input":"キャッシュ入力","usage.metric.reasoning_output":"推論出力","usage.button.refresh":"更新","usage.overview.tablist_aria":"期間","usage.overview.cost_breakdown_aria":"コスト内訳を表示","usage.overview.distribution_aria":"ソース別割合:{{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}:{{percent}}%、{{tokens}} トークン、{{cost}}。クリックして{{action}}詳細","usage.overview.expand":"展開","usage.overview.collapse":"折りたたむ","usage.overview.model_count":"{{count}} 個のモデル","usage.overview.model_details_aria":"{{provider}} のモデル詳細","widgets.page.title":"ウィジェット","widgets.cta.open_gallery":"ウィジェットギャラリーを開く","widgets.cta.download":"Mac アプリをダウンロード","widgets.cta.macos_only":"macOS 限定","widgets.menubar.section.title":"メニューバー","widgets.gallery.section.title":"デスクトップウィジェット","widgets.summary.name":"使用状況の概要","widgets.summary.description":"今日と直近 7 日間の使用状況、コンパクトなトレンドライン付き。","widgets.heatmap.name":"ヒートマップ","widgets.heatmap.description":"GitHub のように、アクティブな日とそうでない日をひと目で把握。","widgets.topModels.name":"人気モデル","widgets.topModels.description":"よく使うモデルを、トークン割合順に表示。","widgets.limits.name":"使用制限","widgets.limits.description":"Claude、Codex、Cursor、Gemini などのリアルタイムなレート制限の進捗。","daily.sort.date.label":"日付","daily.sort.date.title":"日付で並べ替え","daily.sort.total.label":"合計","daily.sort.total.title":"合計で並べ替え","daily.sort.input.label":"入力","daily.sort.input.title":"入力で並べ替え","daily.sort.output.label":"出力","daily.sort.output.title":"出力で並べ替え","daily.sort.cached.label":"キャッシュ","daily.sort.cached.title":"キャッシュ入力で並べ替え","daily.sort.reasoning.label":"推論","daily.sort.reasoning.title":"推論出力で並べ替え","daily.sort.conversations.label":"会話数","daily.sort.conversations.title":"会話数で並べ替え","details.pagination.prev":"前のページ","details.pagination.next":"次のページ","limits.copilot.otelHint.title":"Copilot のトークン使用状況を追跡","limits.copilot.otelHint.body":"制限情報は GitHub OAuth トークン経由で読み取られます。トークン単位の使用量も記録したい場合は、Copilot の OpenTelemetry エクスポートを有効にし、次の内容をシェルの設定ファイル(~/.zshrc または ~/.bashrc)に追加してください:","limits.copilot.otelHint.copy":"コピー","limits.copilot.otelHint.copied":"コピーしました","limits.panel.title":"使用制限","limits.panel.mode_separator":" · ","limits.label.cursor_plan":"プラン","limits.label.cursor_auto":"自動","limits.label.cursor_api":"API","limits.label.kiro_month":"月間","limits.label.kiro_bonus":"ボーナス","limits.label.kimi_weekly":"週","limits.label.kimi_5h":"5h","limits.label.kimi_total":"総量","limits.label.kimi_parallel":"並列:{{count}}","limits.label.copilot_premium":"プレミアム","limits.label.copilot_chat":"チャット","limits.label.grok_month":"月間","limits.label.grok_ondemand":"オンデマンド","limits.provider.claude":"Claude","limits.provider.codex":"Codex","limits.provider.cursor":"Cursor","limits.provider.gemini":"Gemini","limits.provider.kimi":"Kimi","limits.provider.kiro":"Kiro","limits.provider.grok":"Grok Build","limits.provider.copilot":"GitHub Copilot","limits.provider.antigravity":"Antigravity","limits.label.claude_5h":"5h","limits.label.claude_7d":"7d","limits.label.claude_opus":"Opus","limits.label.codex_5h":"5h","limits.label.codex_7d":"7d","limits.label.codex_spark_5h":"Spark 5h","limits.label.codex_spark_7d":"Spark 7d","limits.label.gemini_pro":"Pro","limits.label.gemini_flash":"Flash","limits.label.gemini_lite":"Lite","limits.label.antigravity_claude":"Claude","limits.label.antigravity_gpro":"G Pro","limits.label.antigravity_flash":"Flash","limits.bar.sub_one_percent":"<1","limits.status.not_connected":"未接続","limits.status.no_data":"リアルタイムの制限データが返されませんでした","limits.status.all_hidden":"すべての制限プロバイダーが非表示になっています。表示設定を開いて再表示してください。","nav.usage":"使用状況","nav.limits":"制限","nav.widgets":"ウィジェット","nav.skills":"Skills","nav.leaderboard":"リーダーボード","nav.collapse":"サイドバーを折りたたむ","nav.expand":"サイドバーを展開","nav.menu":"ナビゲーションメニューを開く","nav.close_menu":"ナビゲーションメニューを閉じる","nav.aside_label":"メインナビゲーション","nav.nav_label":"ナビゲーション","limits.page.subtitle":"AI ツールのレート制限とクォータの使用状況。","limits.settings.toggle_visible":"表示を切り替え","limits.settings.display_mode_label":"使用量","limits.settings.display_mode_used":"使用済み","limits.settings.display_mode_remaining":"残り","limits.page.openSettings":"表示設定","nav.group.general":"一般","nav.group.tools":"ツール","nav.group.account":"アカウント","nav.settings":"設定","header.auth.open_settings":"設定を開く","settings.page.title":"設定","settings.page.subtitle":"アカウント、外観、表示設定を管理します。","settings.section.appearance":"外観","settings.section.account":"アカウント","settings.section.limits":"制限の表示","settings.appearance.theme.label":"テーマ","settings.appearance.theme.hint":"Token Tracker のダッシュボードでの表示方法を選択します。","settings.appearance.theme.light":"ライト","settings.appearance.theme.dark":"ダーク","settings.appearance.theme.system":"システム","settings.account.displayName":"表示名","settings.account.edit":"編集","settings.account.save":"保存","settings.account.saving":"保存中...","settings.account.cancel":"キャンセル","settings.account.userId":"ユーザー ID","settings.account.copyUserId":"ユーザー ID をコピー","settings.account.copy":"コピー","settings.account.copied":"コピーしました","settings.account.cloudSync":"クラウド同期","settings.account.cloudSyncHint":"ローカルの使用状況を Token Tracker のクラウドアカウントにアップロードします。","settings.account.publicProfile":"公開プロフィール","settings.account.publicProfileHint":"公開リーダーボードで使用状況を表示します。","settings.account.displayNameAnonymousHint":"匿名の状態では、リーダーボードであなたの名前とアバターが非表示になります","settings.account.displayNameDisabledWhileAnon":"名前を編集する前に、匿名を解除してください","settings.account.githubUrl":"GitHub プロフィール","settings.account.githubUrlHint":"リーダーボードの名前の横に GitHub リンクを表示します。","settings.account.githubUrlPlaceholder":"ユーザー名または https://github.com/ユーザー名","settings.account.githubUrlInvalid":"GitHub のユーザー名、または https://github.com/ユーザー名 を入力してください","leaderboard.github.aria":"GitHub プロフィールを開く","leaderboard.github.tooltipAction":"クリックして GitHub プロフィールを表示","leaderboard.github.tooltipPrefix":"ここに表示するには","leaderboard.github.tooltipSettingsLink":"設定","leaderboard.github.tooltipSuffix":"で設定してください","settings.account.signOut":"ログアウト","settings.account.signIn":"ログイン","settings.account.signedOutHint":"ログインすると、クラウド同期とリーダーボードの設定を管理できます。","settings.section.menubar":"メニューバーアプリ","settings.menubar.showStats":"メニューバーに統計を表示","settings.menubar.showStatsHint":"メニューバーアイコンの横に、今日のトークン数とコストを表示します。","settings.menubar.animatedIcon":"アニメーションアイコン","settings.menubar.animatedIconHint":"Clawd キャラクターを点滅させ、メニューバーで同期アニメーションを再生します。","settings.menubar.launchAtLogin":"ログイン時に起動","settings.menubar.launchAtLoginHint":"macOS へのログイン時に TokenTrackerBar を自動的に起動します。","settings.menubar.syncNow":"今すぐ同期","settings.menubar.syncNowHint":"ローカルの AI ツールログの解析とアップロードをすぐに実行します。","settings.menubar.syncing":"同期中...","settings.menubar.updates":"更新","settings.menubar.checkUpdates":"更新を確認","settings.footer.statusPage":"システムステータス","menubar.slot.primary":"1 番目の位置","menubar.slot.secondary":"2 番目の位置","menubar.native_only":"macOS 版 TokenTrackerBar を開くと、メニューバーの表示を編集できます。","menubar.metric.today_tokens":"今日のトークン","menubar.metric.today_cost":"今日のコスト","menubar.metric.last_7d_tokens":"直近 7 日間のトークン","menubar.metric.total_tokens":"トークン合計","menubar.metric.total_cost":"コスト合計","menubar.metric.claude_5h":"Claude 5 時間制限","menubar.metric.claude_7d":"Claude 7 日間制限","menubar.metric.codex_5h":"Codex 5 時間制限","menubar.metric.codex_7d":"Codex 7 日間制限","menubar.metric.codex_spark_5h":"Codex Spark 5 時間制限","menubar.metric.codex_spark_7d":"Codex Spark 7 日間制限","nav.ip_check":"Claude IP チェック","skills.page.title":"Skills","skills.tab.my":"マイ","skills.tab.browse":"探す","skills.action.refresh":"更新","skills.action.install":"インストール","skills.action.choose_targets":"対象を選択","skills.target.menu_label":"インストール先","skills.target.none":"対象が未選択","skills.toast.installed":"{{name}} を {{targets}} にインストールしました。","skills.action.remove":"削除","skills.action.search":"検索","skills.action.search_aria":"skills を検索","skills.action.search_clear":"検索をクリア","skills.target.synced_summary":"{{targets}} に同期済み","skills.target.synced_none":"まだどの agent にも同期されていません","skills.row.open_details":"{{name}} の詳細を表示","skills.detail.close":"詳細を閉じる","skills.detail.sync_section_title":"同期先","skills.detail.remove_button":"すべての agent から削除","skills.detail.remove_confirm_hint":"これにより、各 agent から同期解除され、ローカルのコピーも削除されます。","skills.filter.agent_label":"Agent","skills.filter.agent_all":"すべての agent","skills.filter.clear":"フィルターをクリア","skills.my.placeholder":"インストール済みの skills を絞り込み…","skills.filter.result_count":"{{filtered}} / {{total}} 個の skill","skills.filter.result_count_browse":"{{count}} 件の結果","skills.empty.no_match":"現在のフィルターに一致する skill はありません。","hint.dismiss":"ヒントを閉じる","hint.dismissible_aria":"閉じられるヒント","skills.card.installed":"インストール済み","skills.card.targets_prefix":"インストール先:","skills.card.targets_change":"変更","skills.card.installs":"{{count}} 回インストール","skills.source.label":"ソース","skills.source.all":"すべてのリポジトリ","skills.mode.repo":"リポジトリ","skills.mode.skillssh":"skills.sh","skills.browse.placeholder_all":"有効なリポジトリ内を検索…","skills.browse.placeholder_repo":"{{repo}} 内を検索…","skills.browse.placeholder_skillssh":"skills.sh のリポジトリ内を検索…","skills.browse.empty_sources":"GitHub リポジトリを追加して、スキルの閲覧を始めましょう。","skills.browse.add_repo_hint":"もっと skill がほしいですか?GitHub リポジトリを追加してください。","skills.browse.manage_sources":"ソースを管理","skills.browse.hint_skillssh":"skills.sh を検索するには 2 文字以上入力してください。","skills.browse.loading_hint":"GitHub から skill 情報を取得しています。初回の読み込みには 1 分ほどかかる場合があり、結果はキャッシュされます。","skills.error.generic":"Skill の操作に失敗しました。","skills.confirm.remove_title":"{{name}} を削除しますか?","skills.confirm.remove_managed":"この skill は接続済みのすべての AI ツールから削除されます。数秒以内であれば元に戻せます。","skills.confirm.remove_local":"すべての AI ツールのディレクトリから、この skill フォルダを削除します。この操作は元に戻せません。","skills.toast.removed":"{{name}} を削除しました。","shared.action.undo":"元に戻す","shared.action.cancel":"キャンセル","shared.action.apply":"適用","skills.empty.my":"まだ skill がありません。「探す」で検索またはインストールしましょう。","skills.empty.my_cta":"探しに行く","skills.empty.browse":"このソースにはスキルが見つかりませんでした。","skills.empty.search":"結果がありません。別のキーワードでお試しください。","skills.repo.placeholder":"owner/repository","skills.repo.add":"リポジトリを追加","skills.repo.invalid":"owner/repository または GitHub リポジトリの URL を入力してください。","skills.repo.remove":"リポジトリを削除","settings.appearance.language.label":"言語","settings.appearance.language.hint":"「システム」を使用すると、デフォルトで端末の言語に従います。","settings.appearance.language.system":"システム","settings.appearance.language.english":"英語","settings.appearance.language.chinese":"簡体字中国語","settings.appearance.language.traditional_chinese":"繁体字中国語","settings.appearance.language.japanese":"日本語","settings.appearance.language.korean":"韓国語","settings.appearance.currency.label":"通貨","settings.appearance.currency.hint":"使用コストの表示通貨を選択します。","settings.appearance.currency.opt.usd":"米ドル ($)","settings.appearance.currency.opt.eur":"ユーロ (€)","settings.appearance.currency.opt.gbp":"英ポンド (£)","settings.appearance.currency.opt.cny":"人民元 (¥)","settings.appearance.currency.opt.jpy":"日本円 (¥)","settings.appearance.currency.opt.hkd":"香港ドル (HK$)","settings.appearance.currency.rate_source.default":"組み込みのデフォルト為替レート","settings.appearance.currency.rate_source.fetched":"データソース:open.er-api.com","settings.appearance.currency.rate_updated":"{{when}} に更新","settings.appearance.currency.rate_never":"まだ更新されていません"},u8={"usage.overview.antigravity_notice_title":"トークンは推定値です","usage.overview.antigravity_notice_body":"Antigravity のローカルログには実際の使用量フィールドがないため、ここの数値は文字数(約 4 文字/トークン)から推定したもので、Gemini の prompt cache 割引も差し引かれていません。上限の推定値として扱い、請求書との照合には使わないでください。","stats.period.today":"今日","stats.period.week":"今週","stats.period.month":"今月","stats.period.all":"全期間","stats.period.convs":"会話","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"モデルの内訳を折りたたむ","dashboard.core_index.expand_aria":"モデルの内訳を展開","dashboard.rolling.title":"最近のアクティビティ","dashboard.rolling.last_7d":"過去 7 日間","dashboard.rolling.last_30d":"過去 30 日間","dashboard.rolling.avg_active_day":"1 日平均","dashboard.projects.title":"プロジェクトの使用状況","dashboard.projects.tokens_label":"トークン","dashboard.projects.stars_label":"スター","dashboard.projects.limit_label":"表示","dashboard.projects.limit_aria":"表示するリポジトリ数を選択","dashboard.projects.limit_top_3":"上位 3 件","dashboard.projects.limit_top_6":"上位 6 件","dashboard.projects.limit_top_10":"上位 10 件","dashboard.projects.empty":"公開リポジトリはありません","dashboard.widgets.title":"デスクトップウィジェット","dashboard.widgets.hint":"デスクトップを右クリック → ウィジェットを編集 → 「TokenTracker」を検索","dashboard.widgets.dismiss_aria":"ウィジェットの紹介を閉じる","dashboard.cost_breakdown.title":"コスト内訳","dashboard.cost_breakdown.total_label":"推定総コスト","dashboard.cost_breakdown.close":"閉じる","trend.monitor.label":"使用トレンド","trend.zoom.open_aria":"全画面表示","trend.zoom.close_aria":"閉じる","trend.zoom.badge":"トレンド分析","trend.zoom.desc":"バーにカーソルを合わせるとトークン、コスト、会話数を確認できます。粒度を切り替えて月から30分単位まで掘り下げられます。","trend.zoom.insight_badge":"分析","trend.zoom.tooltip.cost":"コスト","trend.zoom.tooltip.conversations":"会話","trend.zoom.stats.tokens":"総トークン数","trend.zoom.stats.cost":"総コスト","trend.zoom.stats.conversations":"会話数","trend.zoom.stats.peak":"ピーク時間帯","trend.zoom.gran.aria":"粒度","trend.zoom.gran.30min":"30分","trend.zoom.gran.day":"日","trend.zoom.gran.month":"月","trend.zoom.prev_day":"前日","trend.zoom.next_day":"翌日","trend.zoom.loading":"読み込み中…","trend.zoom.pick_day":"日付を選択","trend.zoom.pick_range":"期間を選択","trend.zoom.insight.empty":"静かな期間。トークンは一つも流れませんでした。","trend.zoom.insight.calm":"控えめな使い方。モデルはほとんど待機し、必要なときだけ動きました。","trend.zoom.insight.steady":"{{active}} 個のアクティブな区間で安定したリズム、ピークは {{peak}}。騒がずに物事を仕上げていくペースです。","trend.zoom.insight.heavy":"本気の稼働:{{active}} 区間が高負荷で動き、ピークは {{peak}}。勢いを待つのではなく自ら生み出す人の出力です。","trend.zoom.insight.massive":"工業規模。{{peak}} のピークと冷めることのないスループット。この量になると、もはやモデルを使うのではなく工場を動かしています。","heatmap.title":"ヒートマップ","heatmap.empty":"まだアクティビティデータがありません。","heatmap.legend.less":"少","heatmap.legend.more":"多","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"トークン","heatmap.month.jan":"1月","heatmap.month.feb":"2月","heatmap.month.mar":"3月","heatmap.month.apr":"4月","heatmap.month.may":"5月","heatmap.month.jun":"6月","heatmap.month.jul":"7月","heatmap.month.aug":"8月","heatmap.month.sep":"9月","heatmap.month.oct":"10月","heatmap.month.nov":"11月","heatmap.month.dec":"12月","heatmap.day.sun":"日","heatmap.day.mon":"月","heatmap.day.tue":"火","heatmap.day.wed":"水","heatmap.day.thu":"木","heatmap.day.fri":"金","heatmap.day.sat":"土","dashboard.session_expired.copy_label":"npx --yes tokentracker-cli init を実行","dashboard.session_expired.copied":"コピーしました","dashboard.install.prompt":"Node.js 18+ をインストールしてから実行:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"インストールコマンドをコピー","dashboard.install.copy_base":"初期化コマンドをコピー","dashboard.install.copied":"クリップボードにコピーしました","dashboard.install.link_code.loading":"専用コードを生成中...","dashboard.install.link_code.failed":"専用コードを利用できません","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.daily.title":"日次内訳","dashboard.daily.empty":"まだデータがありません。先に AI CLI を使用してから {{cmd}} を実行してください。","dashboard.identity.title":"あなたのプロフィール","dashboard.identity.subtitle":"あなたのコーディングの軌跡を記録","dashboard.identity.fallback":"匿名ユーザー","dashboard.screenshot.title_line1":"AI コーディングアシスタント","dashboard.screenshot.title_line2":"2025 年振り返り","dashboard.screenshot.twitter_button":"X にシェア","dashboard.screenshot.twitter_label":"X にシェア","dashboard.screenshot.twitter_hint":"画像を自動的にクリップボードにコピーします","dashboard.screenshot.twitter_text":"記録された {{total_tokens}} トークン。\\n{{model_name}} が {{model_percent}}% でリード。\\n\\n私の AI 使用状況、未監査 →","heatmap.3d.hover_tip":"クリックして 3D 全画面回転分析モードに入る","heatmap.3d.modal.title":"トークンの 3D ビュー","heatmap.3d.modal.desc":"左ボタンを押しながらドラッグで自由に回転し、ホバーで日々のアクティビティと多次元の統計を確認できます。","heatmap.3d.modal.stats.total_tokens":"年間トークン総量","heatmap.3d.modal.stats.precision_total_tokens":"年間の正確な消費量","heatmap.3d.modal.stats.estimated_cost":"年間推定費用","heatmap.3d.modal.stats.active_rate_days":"アクティブ率 / 日数","heatmap.3d.modal.stats.max_streak":"最長連続アクティブ","heatmap.3d.modal.stats.days_suffix":"日","heatmap.3d.modal.stats.peak_day":"単日ピーク","heatmap.3d.modal.stats.precision_peak_value":"正確な単日ピーク","heatmap.3d.modal.stats.no_data":"データなし","heatmap.3d.modal.legend.title":"アクティビティのレベル","heatmap.3d.modal.palette.emerald":"エメラルドシティ","heatmap.3d.modal.palette.ocean":"ディープオーシャン","heatmap.3d.modal.palette.neon":"サイバーネオン","heatmap.3d.modal.palette.amber":"燃ゆる残照","heatmap.3d.modal.control.play":"ゆっくり自動回転を開始","heatmap.3d.modal.control.pause":"自動回転を一時停止","heatmap.3d.modal.control.reset":"3D 視点をリセット","heatmap.3d.modal.footer.tip":"ピンチでズーム / ホイールでズーム / マウスドラッグで 3D チャートを回転","heatmap.3d.modal.ai.title.default":"たゆまず歩み続ける人","heatmap.3d.modal.ai.eval.default":"技術の大河のなかで、たゆまず歩み続けています。日々のコーディングがいつも華々しいとは限りませんが、小さなアクティビティの一つひとつが、あなたの思考と探求を記録しています。星のような火花がやがて集まり、あなただけのデジタルの海になっていきます。","heatmap.3d.modal.ai.title.peak":"限界突破級コントリビューター","heatmap.3d.modal.ai.eval.peak":"この一年、あなたのトークン産出はきわめて高いエンジニアリング密度を示しました。これほどの開発量は、中規模から大規模なシステム基盤の再構築に深く関わったのに匹敵し、一打鍵ごとに複雑なロジックを確定的なコードへと収束させています。極度の集中と、純粋なエンジニアリングへの情熱の何よりの証です。","heatmap.3d.modal.ai.title.heavy":"高頻度産出級デベロッパー","heatmap.3d.modal.ai.eval.heavy":"卓越した継続的アウトプット。あなたのトークン累積量は数百万語に達し、中編の技術大作を数十冊分に相当します。高い飽和度のコーディングのリズムは、あなたが並外れた実行力で自分だけのデジタル資産を築いていることを示し、卓越した創造力を体現しています。","heatmap.3d.modal.ai.title.core":"中核生産力エキスパート","heatmap.3d.modal.ai.eval.core":"きわめて粘り強い長期的な取り組み。過去一年にわたり、長い期間にわたって安定して高い強度の開発ペースを保ってきました。確かなコード行数とトークン産出によって、あなたは静かにプロジェクトの中核アーキテクチャを築き上げており、まさにエンジニアリングの支柱です。","heatmap.3d.modal.ai.title.steady":"着実成長型エンジニア","heatmap.3d.modal.ai.eval.steady":"堅実で揺るぎない技術の積み重ね。トークンが増えるたびに、あなたは未来へと続くコードの礎を着実に積んでいます。この細く長く続く堅実なリズムは、優れた開発者がエンジニアリングの達人へと至るために必ず通る道です。","heatmap.3d.voxel.joke.1":"🔥 超ヤバい!{{value}} tokens を産出!大規模モデルを猛特訓中?それともコンパイラを手書きで?","heatmap.3d.voxel.joke.2":"🚀 叙事詩級のアウトプット!合計 {{value}} tokens。今日の産出量は地球を一周できるほど、AI もあなたに驚嘆!","heatmap.3d.voxel.joke.3":"⚡ 爆発の日!{{value}} tokens。コードが泉のごとく湧き出て、キーボードが煙を上げ始めた!","heatmap.3d.voxel.level3":"⚡ 生産力の大爆発({{value}} tokens)!高効率で集中したゴールデンタイム、このピークの状態を保ち続けよう!","heatmap.3d.voxel.level2":"🌱 調子が上がってきた({{value}} tokens)!着実なアウトプットで、キーを打つたびに大きな建物に一枚ずつレンガを積み重ねています。","heatmap.3d.voxel.level1":"🍃 塵も積もれば山となる({{value}} tokens)。小さなコミットも未来への投資、複利の力を保とう!","heatmap.3d.voxel.level0":"💤 英気を養う日。コードを書かない日にも、ひらめきはひそかに育っています。","ipcheck.page.title":"Claude IP チェック","ipcheck.page.subtitle":"現在 Claude にアクセスしている出口 IP、クリーン度、地理情報、リスクシグナルを確認し、ログインに影響したりリスク管理を誘発したりしうる要因を把握します。","ipcheck.mask.toggle":"IP を隠す","ipcheck.ipv6.warn":"現在 IPv6 環境です。IPv6 での Claude Code アクセスは推奨されず、一部の検出結果が不完全になる可能性があります。","ipcheck.ip.cn":"中国の出口 IPv4","ipcheck.ip.cloudflare":"Cloudflare 出口","ipcheck.ip.claude":"Claude 出口","ipcheck.ip.failed":"取得に失敗しました","ipcheck.ip.loading":"読み込み中...","ipcheck.trust.title":"信頼スコア","ipcheck.trust.subtitle":"Claude のリスク管理視点での IP クリーン度","ipcheck.trust.no_data":"データなし","ipcheck.trust.no_ip":"Claude の出口 IP を取得できず、スコアを算出できません","ipcheck.trust.no_score":"この IP のスコアデータはまだありません","ipcheck.trust.gauge.low":"0 高リスク","ipcheck.trust.gauge.high":"100 信頼可","ipcheck.trust.label.pristine":"極めてクリーン","ipcheck.trust.label.clean":"クリーン","ipcheck.trust.label.good":"良好","ipcheck.trust.label.neutral":"中立","ipcheck.trust.label.suspicious":"疑わしい","ipcheck.trust.label.unreachable":"アクセス不可","ipcheck.trust.text.excellent":"この IP の評判は非常に良好です","ipcheck.trust.text.great":"この IP の評判は優秀です","ipcheck.trust.text.minor":"この IP には軽微なリスクがあります","ipcheck.trust.text.moderate":"この IP には一定のリスクがあります","ipcheck.trust.text.severe":"この IP は極めて高リスクです","ipcheck.trust.text.restricted":"アクセス不可の地域にあり、Claude は厳格にリスク管理します","ipcheck.trust.region_warn.title":"Claude の出口 IP が {{region}} にあります","ipcheck.trust.region_warn.body":"Claude へのログインは推奨されません。アカウント停止のリスク管理を誘発しやすくなります。","ipcheck.trust.region_support":"Claude 対応地域","ipcheck.trust.region.accessible":"アクセス可","ipcheck.common.unknown":"不明","ipcheck.props.title":"IP の属性","ipcheck.props.region":"地域","ipcheck.props.city":"都市","ipcheck.props.type":"タイプ","ipcheck.props.asn":"ASN","ipcheck.props.org":"プロバイダー","ipcheck.props.residential":"家庭用","ipcheck.props.datacenter":"データセンター","ipcheck.security.title":"セキュリティ検出","ipcheck.security.vpn":"VPN","ipcheck.security.proxy":"プロキシ (Proxy)","ipcheck.security.tor":"Tor","ipcheck.security.crawler":"ボット (Crawler)","ipcheck.security.abuser":"不正利用の記録","ipcheck.security.proxy_flag":"プロキシ","ipcheck.security.crawler_yes":"はい","ipcheck.security.crawler_no":"いいえ","ipcheck.security.abuser_yes":"記録あり","ipcheck.security.abuser_no":"記録なし","ipcheck.security.clean":"検出されませんでした","ipcheck.avail.title":"Claude の可用性","ipcheck.avail.tooltip":"Claude のサーバーは米国にあります。アジアからのアクセスで遅延が 100ms を超えるのは正常な状況です。","ipcheck.avail.refresh":"更新","ipcheck.avail.svc_row":"サービス状態","ipcheck.avail.latency.normal":"正常","ipcheck.avail.latency.good":"良好","ipcheck.avail.latency.slow":"やや遅い","ipcheck.avail.latency.unreachable":"アクセス不可","ipcheck.avail.svc.none":"すべて正常","ipcheck.avail.svc.minor":"軽微な障害","ipcheck.avail.svc.major":"重大な障害","ipcheck.avail.svc.critical":"深刻な障害","ipcheck.avail.svc.maintenance":"メンテナンス中","ipcheck.avail.svc.other":"サービス異常","ipcheck.dns.title":"DNS リーク検出","ipcheck.dns.status":"状態","ipcheck.dns.outlet":"DNS 出口","ipcheck.dns.outlet_ip":"DNS 出口 IP","ipcheck.dns.isp":"プロバイダー","ipcheck.dns.leaked":"リークの可能性あり","ipcheck.dns.no_leak":"リークは検出されませんでした","ipcheck.dns.encrypted":"DNS は暗号化または非公開","ipcheck.dns.cn_tag":"中国 DNS","ipcheck.udp.title":"WebRTC UDP リーク","ipcheck.udp.status":"状態","ipcheck.udp.outlet":"UDP 出口","ipcheck.udp.outlet_ip":"UDP 出口 IP","ipcheck.udp.origin":"所在地","ipcheck.udp.disabled":"WebRTC は無効です","ipcheck.udp.no_leak":"リークは検出されませんでした","ipcheck.udp.leaked":"リークの可能性あり","ipcheck.udp.anomaly":"異常","ipcheck.device.title":"デバイス情報","ipcheck.device.tz":"タイムゾーン","ipcheck.device.lang":"言語","ipcheck.device.os":"OS / ブラウザ","ipcheck.device.touch":"タッチスクリーン","ipcheck.device.net":"ネットワークタイプ","ipcheck.device.dnt":"Do Not Track","ipcheck.device.webgl_render":"WebGL レンダラー","ipcheck.device.canvas_fp":"Canvas フィンガープリント","ipcheck.device.webgl_fp":"WebGL フィンガープリント","ipcheck.device.match":"一致","ipcheck.device.mismatch":"不一致","ipcheck.device.local":"ローカル","ipcheck.device.estimate_suffix":"(推定)","ipcheck.device.diff_equal":"オフセットにわずかな差があります","ipcheck.device.diff_ahead":"Claude が {{h}} 時間進んでいます","ipcheck.device.diff_behind":"Claude が {{h}} 時間遅れています","ipcheck.device.lang_expected":"Claude 出口でよく使われる言語","ipcheck.device.touch_yes":"はい","ipcheck.device.touch_no":"いいえ","ipcheck.device.dnt_on":"オン","ipcheck.device.dnt_off":"オフ","ipcheck.device.dnt_unset":"未設定","ipcheck.device.net_unsupported":"検出に非対応","ipcheck.device.unsupported":"非対応","ipcheck.history.title":"Claude 出口 IP の履歴","ipcheck.history.subtitle":"ブラウザのローカルにのみ保存され、最大 6 件まで保持されます","ipcheck.history.clear":"クリア","ipcheck.history.empty":"履歴はまだありません","ipcheck.history.current":"現在","ipcheck.region.CN":"中国本土","ipcheck.region.HK":"香港","ipcheck.region.MO":"マカオ","ipcheck.region.RU":"ロシア","ipcheck.region.KP":"北朝鮮","ipcheck.region.IR":"イラン","ipcheck.region.SY":"シリア","ipcheck.region.CU":"キューバ","ipcheck.region.BY":"ベラルーシ","ipcheck.region.VE":"ベネズエラ","leaderboard.profile_modal.close":"閉じる","leaderboard.profile_modal.loading":"ユーザープロフィールを読み込み中…","leaderboard.profile_modal.error":"ユーザープロフィールの読み込みに失敗しました。","leaderboard.profile_modal.empty":"このユーザーのプロフィールは公開されていません。","leaderboard.profile_modal.row_aria":"{{name}} のプロフィールを表示","leaderboard.profile_modal.rank":"#{{rank}}","leaderboard.profile.hero.rank_label":"ランク","leaderboard.profile_modal.hero.total_tokens":"トークン合計","leaderboard.profile_modal.hero.total_cost":"支出合計","leaderboard.profile_modal.hero.github":"GitHub プロフィール","leaderboard.profile_modal.stat.total_cost":"支出合計","leaderboard.profile_modal.stat.total_tokens":"トークン合計","leaderboard.profile_modal.stat.active_days":"アクティブ日数","leaderboard.profile_modal.stat.avg_per_day":"1 日平均支出","leaderboard.profile_modal.streak.current":"現在の連続","leaderboard.profile_modal.streak.longest":"最長連続","leaderboard.profile_modal.streak.days":"{{count}} 日","leaderboard.profile_modal.best_day.title":"ベストデー","leaderboard.profile_modal.best_day.none":"—","leaderboard.profile_modal.models.count":"{{count}} 個のモデルを使用","leaderboard.profile_modal.models.favorite":"お気に入りモデル","leaderboard.profile_modal.models.none":"モデルの記録はまだありません","leaderboard.profile_modal.heatmap.title":"アクティビティ(直近 365 日)","leaderboard.profile_modal.providers.title":"プロバイダー別の分布","leaderboard.profile_modal.providers.none":"この期間の使用データはありません。","leaderboard.profile_modal.view_full":"完全なプロフィールを表示","local_only.title":"クライアント内でご利用ください","local_only.body":"このページはお使いの端末上のデータを読み込むため、Mac アプリまたはコマンドラインの dashboard でのみ表示できます。","local_only.open_app":"Mac アプリ内で開く","local_only.download":"Mac アプリをダウンロード","dashboard.auth_gate.title":"Token Tracker にサインイン","dashboard.auth_gate.subtitle":"サインインして、クラウドでの API 使用量、コスト、トークン消費の傾向を同期および表示します。","dashboard.auth_gate.button":"今すぐサインイン","dashboard.expired_gate.title":"セッションの有効期限切れ","dashboard.expired_gate.subtitle":"セッションの有効期限が切れました。クラウドダッシュボードの表示を続けるには、もう一度サインインしてください。","dashboard.expired_gate.button":"再サインイン","shared.app_name":"Token Tracker","dashboard.auth_gate.hero_title":"AIエージェントのすべてのトークン消費","dashboard.auth_gate.hero_subtitle":"明確で透過的、マルチエンドポイント制御","dashboard.auth_gate.desc":"Claude Code、Cursor、Gemini CLIなどのすべての主流エージェントからのトークンクォータ、同時実行コスト、遅延統計をパブリッククラウドで安全に同期し、これまでにない包括的な可視化分析を提供します。","dashboard.auth_gate.feature.sync.title":"リアルタイムクラウド同期","dashboard.auth_gate.feature.sync.desc":"各エンドポイントの実行コストを自動的に収集し、プライベートクラウドに数秒で安全にアーカイブします。","dashboard.auth_gate.feature.anal.title":"多次元ダッシュボード分析","dashboard.auth_gate.feature.anal.desc":"モデル分類、時間枠ごとにトークン分布を統計し、コストの急増と消費構成をいつでも追跡できます。","dashboard.auth_gate.feature.guard.title":"ローカル優先の自律性","dashboard.auth_gate.feature.guard.desc":"Localhostモードではすべてのログイン認証を自動的にスキップし、ローカルのオフラインデバッグエクスペリエンスを完全に保護します。","dashboard.expired_gate.hero_title":"クラウドセッションの有効期限切れ","dashboard.expired_gate.desc":"プライバシーとクラウドドライブのセキュリティのため、有効なセッションは一定期間後に自動的に終了します。ダッシュボードを即座に復元するには、もう一度検証してください。","dashboard.expired_gate.feature.sec.title":"安全な保護","dashboard.expired_gate.feature.sec.desc":"暗号化された資格情報は期限が切れると自動的に破壊され、トークン資産のプライバシーを厳密に保護します。","dashboard.expired_gate.feature.restore.title":"シームレスな復元","dashboard.expired_gate.feature.restore.desc":"再ログイン後、ターミナルフックを再構成することなく、マルチデバイスのリアルタイムダッシュボードが自動的に復元されます。","dashboard.expired_gate.feature.cloud.title":"クロスデバイス同期","dashboard.expired_gate.feature.cloud.desc":"同期されたダッシュボードを介して、どこからでもトークンログを簡単に確認して開消を管理できます。"},d8={"landing.handle.default":"VIBE_USER","landing.handle.special":"ボルト","landing.screenshot.alt":"TokenTracker ダッシュボードのスクリーンショット","landing.nav.login":"ログイン","landing.nav.signup":"登録","landing.install.command":"npx --yes tokentracker-cli","landing.install.action.copy":"コマンドをコピー","landing.install.action.copied":"コピーしました","landing.meta.title":"Token Tracker — AI Coding CLI のトークン使用状況トラッカー","landing.meta.description":"Claude Code、Cursor、Codex などのツールのトークン使用量を自動的に監視。ローカルファースト、プライバシー重視、設定不要。","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/og-image.jpg","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker シェア","share.meta.description":"Token Tracker ダッシュボードのスナップショットをシェア。モデル、プロジェクト、期間をまたいだ使用状況のインサイトを含みます。","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/share-dashboard.jpg","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.handle.placeholder":"「{{handle}}」を試す","landing.rank.expectation":"予想ランク:{{rank}}","landing.rank.singularity":"トップ","landing.rank.unranked":"ランク外","landing.cta.primary":"ダッシュボードへ","landing.cta.secondary":"GitHub","landing.v2.hero.title_line1":"あなたのすべての","landing.v2.hero.title_line2":"AI トークンを追跡","landing.v2.install.mac_cta":"macOS 版をダウンロード","landing.v2.install.win_cta":"Windows 版をダウンロード","landing.v2.install.desktop_cta":"デスクトップ版をダウンロード","landing.v2.install.os_macos":"macOS","landing.v2.install.os_windows":"Windows","landing.v2.install.availability":"macOS と Windows に対応","landing.v2.models.title":"対応する AI CLI ツール","landing.v2.compare.kicker":"シームレスな追跡","landing.v2.compare.title":"AI の使用量を当てずっぽうで考えるのはもうやめましょう。","landing.v2.compare.subtitle":"AI CLI ツールは生の履歴データを散らかったローカルファイルに隠しがちです。TokenTracker はそれらをローカルファーストのダッシュボードにリアルタイムで集約します。","landing.v2.distill.body":"100% ローカル処理。prompt やコードは一切アップロードしません。","landing.v2.compare.with.title":"Token Tracker あり","landing.v2.compare.with.p1":"集約された使用状況ダッシュボード","landing.v2.compare.with.p2":"リアルタイムのトークン指標","landing.v2.compare.with.p3":"100% ローカルでプライバシーも安心","landing.v2.compare.with.p4":"マルチクライアントのターミナル監査証跡","landing.v2.compare.without.title":"なし","landing.v2.compare.without.p1":"散らばった JSON ログファイル","landing.v2.compare.without.p2":"トークン消費がまったく見えない","landing.v2.compare.without.p3":"突然の API 請求","landing.v2.compare.without.p4":"過去の監査ログが皆無","landing.v2.leaderboard.kicker":"グローバル TOKEN リーダーボード","landing.v2.leaderboard.title":"AI Token 効率","landing.v2.leaderboard.subtitle":"ローカルの AI Token 使用量を匿名で同期し、グローバル効率リーダーボードに参加できます。世界中の開発者とモデルのコスト効率や呼び出し頻度を比較できます。","landing.v2.leaderboard.view_more":"リーダーボード全体を見る","landing.v2.footer.line":"Token Tracker — 開発者が、開発者のために作りました。","landing.v2.nav.status":"ステータス","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"Codex","landing.v2.models.agent.claude_code":"Claude Code","landing.v2.models.agent.cursor":"Cursor","landing.v2.models.agent.gemini":"Gemini","landing.v2.models.agent.opencode":"OpenCode","landing.v2.models.agent.openclaw":"OpenClaw","landing.v2.cta.primary":"Dashboard","landing.v2.hero.subtagline":"Claude Code、Cursor、Codex などのツールのトークン使用量を自動的に監視。ローカルファースト、プライバシー重視、設定不要。","leaderboard.profile.nav.back":"リーダーボード","leaderboard.profile.nav.download":"ダウンロード","leaderboard.title":"リーダーボード","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"全期間","leaderboard.generated_at":"{{ts}} に更新","leaderboard.period.week":"週","leaderboard.period.month":"月","leaderboard.period.total":"全期間","leaderboard.me_label":"あなた","leaderboard.anon_label":"匿名","leaderboard.error.unknown":"不明なエラー","leaderboard.loading":"読み込み中…","leaderboard.empty":"データがありません","leaderboard.column.rank":"ランク","leaderboard.column.user":"ユーザー","leaderboard.column.total":"合計","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"Copilot","leaderboard.column.kimi":"Kimi","leaderboard.column.supplemental":"その他","leaderboard.column.est_cost":"推定支出","leaderboard.signin_prompt":"ログインするとランキングに参加できます","leaderboard.signin_button":"ログイン","leaderboard.sync_prompt":"クラウド同期を有効にするとランキングに参加できます","leaderboard.sync_button.idle":"有効にして同期","leaderboard.sync_button.busy":"同期中…","leaderboard.pagination.page_size_label":"ページあたりの表示数","leaderboard.pagination.prev":"前のページ","leaderboard.pagination.next":"次のページ","leaderboard.pagination.ellipsis":"……","leaderboard.pagination.page_unknown":"{{page}} ページ目","share.modal.title":"あなたのデータをシェア","share.modal.subtitle":"ポスターカードを生成して、どこでもシェア。","share.modal.close":"閉じる","share.modal.action.x":"X にシェア","share.modal.action.download":"ダウンロード","share.modal.action.copy":"画像をコピー","share.modal.hint.x":"画像をツイートに貼り付け","share.modal.hint.copy":"クリップボードへ","share.modal.name_label":"表示名","share.modal.name_placeholder":"名前を入力","share.modal.style_label":"スタイル","share.modal.footer":"データは常にローカルに保持されます。画像はブラウザ内で生成され、アップロードされることはありません。","share.button.label":"シェア","share.button.aria":"シェアカードを開く","share.toast.copied":"画像をクリップボードにコピーしました","share.toast.downloaded":"画像を保存しました","share.toast.failed":"画像の生成に失敗しました","share.toast.working":"生成中…","share.variant.neon":"ネオン","share.variant.broadsheet":"特集号","share.date.month_year":"{{year}} 年 {{month}}","share.issue.all_time":"全期間","share.month_short.jan":"1 月","share.month_short.feb":"2 月","share.month_short.mar":"3 月","share.month_short.apr":"4 月","share.month_short.may":"5 月","share.month_short.jun":"6 月","share.month_short.jul":"7 月","share.month_short.aug":"8 月","share.month_short.sep":"9 月","share.month_short.oct":"10 月","share.month_short.nov":"11 月","share.month_short.dec":"12 月","share.hook.top_loyal":"{{name}} が使用量の {{percent}}% を占めました。","share.hook.days_record":"合計 {{days}} 日を記録。","share.hook.top_led":"{{name}} がリードし、割合は {{percent}}%。","share.hook.multi_models":"{{days}} 日間で {{count}} 個のモデルを使用。","share.hook.days_with_model":"{{name}} が {{days}} 日間付き合ってくれました。","share.hook.new_chapter":"新しい記録が、ここから始まります。","share.card.broadsheet.issue":"号数","share.card.broadsheet.by":"シェアした人","share.card.broadsheet.tracked_since":"追跡開始","share.card.broadsheet.total_tokens":"トークン総数","share.card.broadsheet.estimated_spend":"推定支出","share.card.broadsheet.billable_days":"{{days}} 日のアクティブ日","share.card.broadsheet.heatmap_title":"年間ヒートマップ","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}} 日に記録あり","share.card.broadsheet.roster_title":"モデルランキング","share.card.broadsheet.roster_subtitle":"よく使うモデルのローテーション","share.card.broadsheet.empty":"今週は静かで、まだモデルのデータがありません。","share.card.broadsheet.global_rank":"全体ランク","share.card.broadsheet.active_days":"アクティブ","share.card.broadsheet.days_count":"{{days}} 日","share.card.broadsheet.track_yours":"あなた自身を追跡する","share.card.annual.report_title":"使用状況レポート","share.card.annual.less":"少","share.card.annual.more":"多","share.card.annual.heatmap_title":"トークンヒートマップ","share.card.annual.total_tokens":"トークン総数","share.card.annual.estimated_cost":"推定コスト","share.card.annual.longest_streak":"最長連続","share.card.annual.days_count":"{{days}} 日","share.card.annual.top_model":"人気モデル"},h8={"header.auth.sign_in_aria":"로그인","login.back_home":"홈으로 돌아가기","login.cloud_only":"클라우드 로그인이 설정되지 않았습니다. localhost의 로컬 대시보드를 사용하세요.","login.title":"로그인","login.subtitle":"이메일 또는 연결된 계정을 선택하세요.","login.dismiss":"닫기","login.verify_email_success":"이메일이 인증되었습니다. 아래에서 로그인할 수 있습니다.","login.verify_email_pending":"이메일에서 계정 인증을 완료한 후 로그인하세요.","login.oauth.continue":"{{provider}}(으)로 계속하기","login.divider":"또는","login.tab.sign_in":"로그인","login.tab.sign_up":"계정 만들기","login.field.name":"표시 이름","login.field.name_placeholder":"선택 사항","login.field.email":"이메일","login.field.password":"비밀번호","login.password_hint":"최소 {{min}}자 이상.","login.submit.sign_in":"이메일로 로그인","login.submit.sign_up":"계정 만들기","auth.callback.processing":"처리 중…","auth.callback.success":"로그인 성공","auth.callback.redirecting":"TokenTracker로 돌아가는 중…","auth.callback.failed":"로그인을 완료하지 못했습니다. 다시 시도해 주세요.","auth.callback.close":"이 페이지 닫기","login_modal.subtitle":"로그인하여 리더보드에 참여하세요","login_modal.continue_email":"이메일로 계속하기","login_modal.divider_email":"이메일","shared.placeholder.short":"--","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.data_source":"데이터 출처: {{source}}","shared.error.prefix":"오류: {{error}}","shared.status.unsynced":"—","shared.time.now":"방금","error.boundary.title":"문제가 발생했습니다","error.boundary.subtitle":"이 화면을 표시하지 못했습니다","error.boundary.hint":"콘솔을 연 다음 페이지를 새로고침하세요","error.boundary.no_details":"오류 세부 정보 없음","error.boundary.action.reload":"새로고침","identity_card.rank_label":"시작일","identity_card.streak_label":"활동 일수","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}}일","usage.summary.total":"총 토큰","usage.period.day":"일","usage.period.week":"주","usage.period.month":"월","usage.period.total":"전체","usage.period.custom":"사용자 지정","usage.metric.total":"전체","usage.metric.input":"입력","usage.metric.output":"출력","usage.metric.cached_input":"캐시된 입력","usage.metric.reasoning_output":"추론 출력","usage.button.refresh":"새로고침","usage.overview.tablist_aria":"기간","usage.overview.cost_breakdown_aria":"비용 내역 보기","usage.overview.distribution_aria":"제공자 분포: {{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}: {{percent}}%, {{tokens}} 토큰, {{cost}}. 클릭하여 세부 정보 {{action}}","usage.overview.expand":"펼치기","usage.overview.collapse":"접기","usage.overview.model_count":"모델 {{count}}개","usage.overview.model_details_aria":"{{provider}} 모델 세부 정보","widgets.page.title":"위젯","widgets.cta.open_gallery":"위젯 갤러리 열기","widgets.cta.download":"Mac 앱 다운로드","widgets.cta.macos_only":"macOS 전용","widgets.menubar.section.title":"메뉴 막대","widgets.gallery.section.title":"데스크톱 위젯","widgets.summary.name":"사용량 요약","widgets.summary.description":"오늘과 7일간의 사용량을 간결한 추세선으로 보여줍니다.","widgets.heatmap.name":"활동 히트맵","widgets.heatmap.description":"GitHub 스타일의 일별 캘린더. 연속 활동일과 쉬는 날을 한눈에 파악하세요.","widgets.topModels.name":"인기 모델","widgets.topModels.description":"토큰 비율로 정렬한 가장 많이 사용한 모델.","widgets.limits.name":"사용 한도","widgets.limits.description":"Claude, Codex, Cursor, Gemini 등의 실시간 사용 한도 진행 상황.","daily.sort.date.label":"날짜","daily.sort.date.title":"날짜순 정렬","daily.sort.total.label":"전체","daily.sort.total.title":"전체순 정렬","daily.sort.input.label":"입력","daily.sort.input.title":"입력순 정렬","daily.sort.output.label":"출력","daily.sort.output.title":"출력순 정렬","daily.sort.cached.label":"캐시","daily.sort.cached.title":"캐시된 입력순 정렬","daily.sort.reasoning.label":"추론","daily.sort.reasoning.title":"추론 출력순 정렬","daily.sort.conversations.label":"대화 수","daily.sort.conversations.title":"대화순 정렬","details.pagination.prev":"이전","details.pagination.next":"다음","limits.copilot.otelHint.title":"Copilot 토큰 사용량 추적","limits.copilot.otelHint.body":"한도 정보는 GitHub OAuth 토큰을 통해 로드됩니다. 토큰별 사용량도 기록하려면 Copilot의 OpenTelemetry 내보내기를 활성화하고 셸 프로필(~/.zshrc 또는 ~/.bashrc)에 다음 줄을 추가하세요:","limits.copilot.otelHint.copy":"복사","limits.copilot.otelHint.copied":"복사됨","limits.panel.title":"사용 한도","limits.panel.mode_separator":" · ","limits.label.cursor_plan":"플랜","limits.label.cursor_auto":"자동","limits.label.cursor_api":"API","limits.label.kiro_month":"월간","limits.label.kiro_bonus":"보너스","limits.label.kimi_weekly":"주간","limits.label.kimi_5h":"5h","limits.label.kimi_total":"전체","limits.label.kimi_parallel":"동시 실행: {{count}}","limits.label.copilot_premium":"프리미엄","limits.label.copilot_chat":"채팅","limits.label.grok_month":"월간","limits.label.grok_ondemand":"온디맨드","limits.provider.claude":"Claude","limits.provider.codex":"Codex","limits.provider.cursor":"Cursor","limits.provider.gemini":"Gemini","limits.provider.kimi":"Kimi","limits.provider.kiro":"Kiro","limits.provider.grok":"Grok Build","limits.provider.copilot":"GitHub Copilot","limits.provider.antigravity":"Antigravity","limits.label.claude_5h":"5h","limits.label.claude_7d":"7d","limits.label.claude_opus":"Opus","limits.label.codex_5h":"5h","limits.label.codex_7d":"7d","limits.label.codex_spark_5h":"Spark 5h","limits.label.codex_spark_7d":"Spark 7d","limits.label.gemini_pro":"Pro","limits.label.gemini_flash":"Flash","limits.label.gemini_lite":"Lite","limits.label.antigravity_claude":"Claude","limits.label.antigravity_gpro":"G Pro","limits.label.antigravity_flash":"Flash","limits.bar.sub_one_percent":"<1","limits.status.not_connected":"연결되지 않음","limits.status.no_data":"실시간 한도 데이터가 반환되지 않았습니다","limits.status.all_hidden":"모든 한도 제공자가 숨겨져 있습니다. 표시 설정을 열어 다시 표시하세요.","nav.usage":"토큰","nav.limits":"한도","nav.widgets":"macOS 위젯","nav.skills":"Skills","nav.leaderboard":"리더보드","nav.collapse":"사이드바 접기","nav.expand":"사이드바 펼치기","nav.menu":"내비게이션 메뉴 열기","nav.close_menu":"내비게이션 메뉴 닫기","nav.aside_label":"주 내비게이션","nav.nav_label":"기본","limits.page.subtitle":"AI 도구 전반의 사용 한도와 할당량 사용 현황.","limits.settings.toggle_visible":"표시 여부 전환","limits.settings.display_mode_label":"사용량","limits.settings.display_mode_used":"사용됨","limits.settings.display_mode_remaining":"남음","limits.page.openSettings":"표시 설정","nav.group.general":"일반","nav.group.tools":"도구","nav.group.account":"계정","nav.settings":"설정","header.auth.open_settings":"설정 열기","settings.page.title":"설정","settings.page.subtitle":"계정, 외관 및 표시 환경설정을 관리하세요.","settings.section.appearance":"외관","settings.section.account":"계정","settings.section.limits":"한도 표시","settings.appearance.theme.label":"테마","settings.appearance.theme.hint":"대시보드 전반에서 Token Tracker가 표시되는 방식을 선택하세요.","settings.appearance.theme.light":"라이트","settings.appearance.theme.dark":"다크","settings.appearance.theme.system":"시스템","settings.account.displayName":"표시 이름","settings.account.edit":"편집","settings.account.save":"저장","settings.account.saving":"저장 중...","settings.account.cancel":"취소","settings.account.userId":"사용자 ID","settings.account.copyUserId":"사용자 ID 복사","settings.account.copy":"복사","settings.account.copied":"복사됨","settings.account.cloudSync":"클라우드 동기화","settings.account.cloudSyncHint":"로컬 사용량을 Token Tracker 클라우드 계정에 업로드합니다.","settings.account.publicProfile":"공개 프로필","settings.account.publicProfileHint":"공개 리더보드에 사용량을 표시합니다.","settings.account.displayNameAnonymousHint":"익명 — 리더보드에서 이름과 아바타가 숨겨집니다","settings.account.displayNameDisabledWhileAnon":"이름을 편집하려면 먼저 스위치를 켜세요","settings.account.githubUrl":"GitHub 프로필","settings.account.githubUrlHint":"리더보드에서 이름 옆에 GitHub 링크를 표시합니다.","settings.account.githubUrlPlaceholder":"사용자명 또는 https://github.com/사용자명","settings.account.githubUrlInvalid":"GitHub 사용자명 또는 https://github.com/사용자명 형식의 URL을 입력하세요.","leaderboard.github.aria":"GitHub 프로필 열기","leaderboard.github.tooltipAction":"클릭하여 GitHub 프로필 열기","leaderboard.github.tooltipPrefix":"여기에 표시하려면","leaderboard.github.tooltipSettingsLink":"설정","leaderboard.github.tooltipSuffix":"에서 설정하세요","settings.account.signOut":"로그아웃","settings.account.signIn":"로그인","settings.account.signedOutHint":"로그인하여 클라우드 동기화와 리더보드 환경설정을 관리하세요.","settings.section.menubar":"메뉴 막대 앱","settings.menubar.showStats":"메뉴 막대에 통계 표시","settings.menubar.showStatsHint":"메뉴 막대 아이콘 옆에 오늘의 토큰 수와 비용을 표시합니다.","settings.menubar.animatedIcon":"애니메이션 아이콘","settings.menubar.animatedIconHint":"메뉴 막대에서 Clawd 캐릭터를 깜빡이고 동기화 애니메이션을 재생합니다.","settings.menubar.launchAtLogin":"로그인 시 실행","settings.menubar.launchAtLoginHint":"macOS에 로그인할 때 TokenTrackerBar를 자동으로 시작합니다.","settings.menubar.syncNow":"지금 동기화","settings.menubar.syncNowHint":"로컬 AI 도구 로그를 즉시 파싱하고 업로드합니다.","settings.menubar.syncing":"동기화 중…","settings.menubar.updates":"업데이트","settings.menubar.checkUpdates":"업데이트 확인","settings.footer.statusPage":"시스템 상태","menubar.slot.primary":"첫 번째 위치","menubar.slot.secondary":"두 번째 위치","menubar.native_only":"라이브 메뉴 막대 표시를 편집하려면 macOS용 TokenTrackerBar를 여세요.","menubar.metric.today_tokens":"오늘 토큰","menubar.metric.today_cost":"오늘 비용","menubar.metric.last_7d_tokens":"최근 7일","menubar.metric.total_tokens":"총 토큰","menubar.metric.total_cost":"총 비용","menubar.metric.claude_5h":"Claude 5시간 한도","menubar.metric.claude_7d":"Claude 7일 한도","menubar.metric.codex_5h":"Codex 5시간 한도","menubar.metric.codex_7d":"Codex 7일 한도","menubar.metric.codex_spark_5h":"Codex Spark 5시간 한도","menubar.metric.codex_spark_7d":"Codex Spark 7일 한도","nav.ip_check":"Claude IP 확인","skills.page.title":"Skills","skills.tab.my":"내 Skills","skills.tab.browse":"둘러보기","skills.action.refresh":"새로고침","skills.action.install":"설치","skills.action.choose_targets":"대상 선택","skills.target.menu_label":"설치 위치","skills.target.none":"대상 없음","skills.toast.installed":"{{name}}을(를) {{targets}}에 설치했습니다.","skills.action.remove":"제거","skills.action.search":"검색","skills.action.search_aria":"skills 검색","skills.action.search_clear":"검색 지우기","skills.target.synced_summary":"{{targets}}에 동기화됨","skills.target.synced_none":"어떤 agent에도 동기화되지 않음","skills.row.open_details":"{{name}} 세부 정보 열기","skills.detail.close":"세부 정보 닫기","skills.detail.sync_section_title":"동기화 대상","skills.detail.remove_button":"모든 agent에서 제거","skills.detail.remove_confirm_hint":"모든 agent에서 이 skill의 동기화를 해제하고 로컬 복사본을 삭제합니다.","skills.filter.agent_label":"Agent","skills.filter.agent_all":"모든 agent","skills.filter.clear":"필터 지우기","skills.my.placeholder":"설치된 skills 필터…","skills.filter.result_count":"skill {{filtered}} / {{total}}개","skills.filter.result_count_browse":"결과 {{count}}개","skills.empty.no_match":"현재 필터에 일치하는 skill이 없습니다.","hint.dismiss":"힌트 닫기","hint.dismissible_aria":"닫을 수 있는 힌트","skills.card.installed":"설치됨","skills.card.targets_prefix":"설치 위치:","skills.card.targets_change":"변경","skills.card.installs":"설치 {{count}}회","skills.source.label":"출처","skills.source.all":"모든 저장소","skills.mode.repo":"저장소","skills.mode.skillssh":"skills.sh","skills.browse.placeholder_all":"활성화된 저장소에서 검색…","skills.browse.placeholder_repo":"{{repo}}에서 검색…","skills.browse.placeholder_skillssh":"skills.sh 레지스트리 검색…","skills.browse.empty_sources":"skill을 둘러보려면 아래에서 GitHub 저장소를 추가하세요.","skills.browse.add_repo_hint":"더 많은 skill이 필요하신가요? GitHub 저장소를 추가하세요.","skills.browse.manage_sources":"출처 관리","skills.browse.hint_skillssh":"skills.sh를 검색하려면 2자 이상 입력하세요.","skills.browse.loading_hint":"GitHub에서 skill 메타데이터를 가져오는 중입니다. 첫 로드는 최대 1분이 걸릴 수 있으며, 결과는 캐시됩니다.","skills.error.generic":"Skill 작업에 실패했습니다.","skills.confirm.remove_title":"{{name}}을(를) 제거할까요?","skills.confirm.remove_managed":"이 skill은 연결된 모든 AI 도구에서 제거됩니다. 몇 초 안에 실행을 취소할 수 있습니다.","skills.confirm.remove_local":"연결된 모든 AI 도구에서 디스크의 skill 폴더를 삭제합니다. 이 작업은 취소할 수 없습니다.","skills.toast.removed":"{{name}}을(를) 제거했습니다.","shared.action.undo":"실행 취소","shared.action.cancel":"취소","shared.action.apply":"적용","skills.empty.my":"아직 skill이 없습니다. 둘러보기를 열어 검색하고 설치하세요.","skills.empty.my_cta":"둘러보기","skills.empty.browse":"이 출처에서 skill을 찾을 수 없습니다.","skills.empty.search":"결과가 없습니다. 다른 검색어를 시도해 보세요.","skills.repo.placeholder":"owner/repository","skills.repo.add":"저장소 추가","skills.repo.invalid":"owner/repository 또는 GitHub 저장소 URL을 입력하세요.","skills.repo.remove":"저장소 제거","settings.appearance.language.label":"언어","settings.appearance.language.hint":"시스템을 선택하면 기본적으로 컴퓨터 언어를 따릅니다.","settings.appearance.language.system":"시스템","settings.appearance.language.english":"영어","settings.appearance.language.chinese":"중국어 간체","settings.appearance.language.traditional_chinese":"중국어 번체","settings.appearance.language.japanese":"일본어","settings.appearance.language.korean":"한국어","settings.appearance.currency.label":"통화","settings.appearance.currency.hint":"사용량 비용에 표시할 통화를 선택하세요.","settings.appearance.currency.opt.usd":"미국 달러 ($)","settings.appearance.currency.opt.eur":"유로 (€)","settings.appearance.currency.opt.gbp":"영국 파운드 (£)","settings.appearance.currency.opt.cny":"중국 위안 (¥)","settings.appearance.currency.opt.jpy":"일본 엔 (¥)","settings.appearance.currency.opt.hkd":"홍콩 달러 (HK$)","settings.appearance.currency.rate_source.default":"내장 기본 환율","settings.appearance.currency.rate_source.fetched":"출처: open.er-api.com","settings.appearance.currency.rate_updated":"{{when}} 업데이트됨","settings.appearance.currency.rate_never":"첫 새로고침 대기 중"},f8={"usage.overview.antigravity_notice_title":"추정 토큰","usage.overview.antigravity_notice_body":"Antigravity 기록에는 실제 사용량 수치가 저장되지 않습니다. 여기 표시된 수치는 텍스트 길이(약 4자/토큰)로 추정한 값이며 Gemini의 프롬프트 캐시 할인은 반영되지 않으므로, 청구 금액이 아니라 상한 추정치로 참고하세요.","stats.period.today":"오늘","stats.period.week":"이번 주","stats.period.month":"이번 달","stats.period.all":"전체","stats.period.convs":"대화","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"모델 분석 접기","dashboard.core_index.expand_aria":"모델 분석 펼치기","dashboard.rolling.title":"최근 활동","dashboard.rolling.last_7d":"최근 7일","dashboard.rolling.last_30d":"최근 30일","dashboard.rolling.avg_active_day":"일 평균","dashboard.projects.title":"프로젝트 사용량","dashboard.projects.tokens_label":"토큰","dashboard.projects.stars_label":"STAR","dashboard.projects.limit_label":"표시","dashboard.projects.limit_aria":"저장소 표시 개수 선택","dashboard.projects.limit_top_3":"TOP 3","dashboard.projects.limit_top_6":"TOP 6","dashboard.projects.limit_top_10":"TOP 10","dashboard.projects.empty":"공개 저장소 없음","dashboard.widgets.title":"데스크톱 위젯","dashboard.widgets.hint":'데스크톱 우클릭 → 위젯 편집 → "TokenTracker" 검색',"dashboard.widgets.dismiss_aria":"위젯 소개 닫기","dashboard.cost_breakdown.title":"비용 내역","dashboard.cost_breakdown.total_label":"예상 총비용","dashboard.cost_breakdown.close":"닫기","trend.monitor.label":"사용 추세","trend.zoom.open_aria":"전체 화면으로 확대","trend.zoom.close_aria":"닫기","trend.zoom.badge":"트렌드 인사이트","trend.zoom.desc":"막대에 마우스를 올리면 토큰, 비용, 대화 수를 확인할 수 있습니다. 단위를 전환해 월에서 30분까지 살펴보세요.","trend.zoom.insight_badge":"인사이트","trend.zoom.tooltip.cost":"비용","trend.zoom.tooltip.conversations":"대화","trend.zoom.stats.tokens":"총 토큰","trend.zoom.stats.cost":"총 비용","trend.zoom.stats.conversations":"대화 수","trend.zoom.stats.peak":"최대 구간","trend.zoom.gran.aria":"단위","trend.zoom.gran.30min":"30분","trend.zoom.gran.day":"일","trend.zoom.gran.month":"월","trend.zoom.prev_day":"이전 날","trend.zoom.next_day":"다음 날","trend.zoom.loading":"불러오는 중…","trend.zoom.pick_day":"날짜 선택","trend.zoom.pick_range":"기간 선택","trend.zoom.insight.empty":"조용한 구간. 토큰이 단 하나도 흐르지 않았습니다.","trend.zoom.insight.calm":"가벼운 사용. 모델은 대부분 대기하다 필요할 때만 깨어났습니다.","trend.zoom.insight.steady":"{{active}}개 활성 구간에서 안정적인 리듬, 최대 {{peak}}. 요란하지 않게 일을 끝내는 페이스입니다.","trend.zoom.insight.heavy":"본격 가동: {{active}}개 구간이 뜨겁게 돌아가고 최대 {{peak}}. 흐름을 기다리지 않고 직접 만들어내는 사람의 출력입니다.","trend.zoom.insight.massive":"산업 규모. {{peak}} 피크와 식지 않는 처리량. 이 정도면 모델을 쓰는 게 아니라 공장을 돌리는 셈입니다.","heatmap.title":"활동 히트맵","heatmap.empty":"아직 활동 데이터가 없습니다.","heatmap.legend.less":"적음","heatmap.legend.more":"많음","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"토큰","heatmap.month.jan":"1월","heatmap.month.feb":"2월","heatmap.month.mar":"3월","heatmap.month.apr":"4월","heatmap.month.may":"5월","heatmap.month.jun":"6월","heatmap.month.jul":"7월","heatmap.month.aug":"8월","heatmap.month.sep":"9월","heatmap.month.oct":"10월","heatmap.month.nov":"11월","heatmap.month.dec":"12월","heatmap.day.sun":"일","heatmap.day.mon":"월","heatmap.day.tue":"화","heatmap.day.wed":"수","heatmap.day.thu":"목","heatmap.day.fri":"금","heatmap.day.sat":"토","dashboard.session_expired.copy_label":"npx --yes tokentracker-cli init 실행","dashboard.session_expired.copied":"복사됨","dashboard.install.prompt":"Node.js 18+ 설치 후 실행:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"설치 명령 복사","dashboard.install.copy_base":"init 명령 복사","dashboard.install.copied":"클립보드에 복사됨","dashboard.install.link_code.loading":"전용 코드 생성 중...","dashboard.install.link_code.failed":"전용 코드를 사용할 수 없음","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.daily.title":"일별 내역","dashboard.daily.empty":"아직 데이터가 없습니다. AI CLI를 사용한 다음 {{cmd}}을(를) 실행하세요.","dashboard.identity.title":"내 프로필","dashboard.identity.subtitle":"코딩 여정을 기록하세요","dashboard.identity.fallback":"익명","dashboard.screenshot.title_line1":"코딩 에이전트","dashboard.screenshot.title_line2":"2025 연말 결산","dashboard.screenshot.twitter_button":"X에 공유","dashboard.screenshot.twitter_label":"X에 공유","dashboard.screenshot.twitter_hint":"이미지를 클립보드에 자동 복사합니다","dashboard.screenshot.twitter_text":"기록된 {{total_tokens}} 토큰.\\n{{model_name}}이(가) {{model_percent}}%로 1위.\\n\\n검증되지 않은 나의 AI 사용량 →","heatmap.3d.hover_tip":"클릭하여 3D 전체 화면 회전 분석 모드로 진입","heatmap.3d.modal.title":"토큰 3D 투시","heatmap.3d.modal.desc":"마우스 왼쪽 버튼으로 드래그하여 회전하세요. 마우스를 올리면 일별 활동과 다차원 지표를 확인할 수 있습니다.","heatmap.3d.modal.stats.total_tokens":"연간 총 토큰","heatmap.3d.modal.stats.precision_total_tokens":"정확한 연간 소비량","heatmap.3d.modal.stats.estimated_cost":"연간 예상 비용","heatmap.3d.modal.stats.active_rate_days":"활동 비율 / 일수","heatmap.3d.modal.stats.max_streak":"최장 연속 활동","heatmap.3d.modal.stats.days_suffix":"일","heatmap.3d.modal.stats.peak_day":"단일 최고 폭발","heatmap.3d.modal.stats.precision_peak_value":"정확한 일일 최고치","heatmap.3d.modal.stats.no_data":"데이터 없음","heatmap.3d.modal.legend.title":"활동 단계","heatmap.3d.modal.palette.emerald":"에메랄드 시티","heatmap.3d.modal.palette.ocean":"심해의 심연","heatmap.3d.modal.palette.neon":"사이버 네온","heatmap.3d.modal.palette.amber":"타오르는 호박빛","heatmap.3d.modal.control.play":"느린 자동 회전 시작","heatmap.3d.modal.control.pause":"자동 회전 일시정지","heatmap.3d.modal.control.reset":"3D 시점 초기화","heatmap.3d.modal.footer.tip":"핀치 확대 / 스크롤 확대 / 드래그로 3D 차트 회전","heatmap.3d.modal.ai.title.default":"꾸준한 창작자","heatmap.3d.modal.ai.eval.default":"기술의 강물 속에서 꾸준히 나아가세요. 매일의 코딩이 늘 웅장하지는 않더라도, 작은 활동 하나하나가 당신의 사고와 탐구를 기록합니다. 불꽃이 모여 결국 당신만의 디지털 바다로 수렴합니다.","heatmap.3d.modal.ai.title.peak":"최고 기여자","heatmap.3d.modal.ai.eval.peak":"올 한 해, 당신의 토큰 산출량은 극도로 높은 엔지니어링 밀도를 보여줍니다. 이 정도 규모의 개발은 중대형 시스템 기반의 리팩터링에 깊이 참여한 것과 맞먹으며, 키 입력 하나하나가 복잡한 로직을 결정론적 코드로 수렴시킵니다. 순수한 엔지니어링 열정의 증거입니다.","heatmap.3d.modal.ai.title.heavy":"고생산 개발자","heatmap.3d.modal.ai.eval.heavy":"탁월한 지속적 산출. 누적된 토큰이 수백만 개에 달하며, 이는 수십 편의 기술 중편 소설 분량에 해당합니다. 고도로 밀도 높은 코딩 리듬은 디지털 자산을 구축하는 당신의 뛰어난 실행력을 보여줍니다.","heatmap.3d.modal.ai.title.core":"핵심 생산성 전문가","heatmap.3d.modal.ai.eval.core":"매우 견고한 장기적 헌신. 지난 한 해 동안 당신은 고강도의 개발 리듬을 꾸준히 유지해 왔습니다. 탄탄한 코드 분량과 토큰 산출로 묵묵히 핵심 아키텍처를 쌓아 올린, 진정한 엔지니어링의 기둥입니다.","heatmap.3d.modal.ai.title.steady":"안정적인 개발자","heatmap.3d.modal.ai.eval.steady":"착실하고 굳건한 기술 축적. 토큰이 늘어나는 한 걸음 한 걸음이 미래의 기반을 다지는 벽돌입니다. 이 느리지만 꾸준한 리듬이야말로 뛰어난 개발자가 엔지니어링의 대가로 나아가는 길입니다.","heatmap.3d.voxel.joke.1":"🔥 완전 미쳤어요! {{value}} tokens 산출! 대형 언어 모델을 훈련하는 건가요, 아니면 직접 컴파일러를 만드는 건가요?","heatmap.3d.voxel.joke.2":"🚀 서사시급 산출! 총 {{value}} tokens. 오늘의 산출량이면 지구를 한 바퀴 돌 수 있어요. AI마저 당신에게 놀랐습니다!","heatmap.3d.voxel.joke.3":"⚡ 폭발의 날! {{value}} tokens. 코드가 샘솟아 키보드에서 연기가 나기 시작합니다!","heatmap.3d.voxel.level3":"⚡ 생산성 대폭발 ({{value}} tokens)! 높은 효율과 집중력, 이 최고의 상태를 계속 유지하세요!","heatmap.3d.voxel.level2":"🌱 점점 무르익는 중 ({{value}} tokens)! 꾸준한 산출, 키 입력 하나하나가 아키텍처에 기여하고 있습니다.","heatmap.3d.voxel.level1":"🍃 티끌 모아 태산 ({{value}} tokens). 작은 커밋도 미래에 대한 투자입니다. 복리의 힘을 받아들이세요!","heatmap.3d.voxel.level0":"💤 재충전 중. 코딩하지 않는 날에도 영감은 조용히 자라납니다.","ipcheck.page.title":"Claude IP 확인","ipcheck.page.subtitle":"Claude에 접속하는 출구 IP와 함께 평판, 지리 정보, 로그인에 영향을 주거나 사용 제한을 유발할 수 있는 위험 신호를 점검하세요.","ipcheck.mask.toggle":"IP 숨기기","ipcheck.ipv6.warn":"IPv6가 감지되었습니다. IPv6로 Claude Code에 접속하는 것은 권장하지 않으며, 일부 검사 결과가 불완전할 수 있습니다.","ipcheck.ip.cn":"중국 출구 IPv4","ipcheck.ip.cloudflare":"Cloudflare 출구","ipcheck.ip.claude":"Claude 출구","ipcheck.ip.failed":"가져올 수 없음","ipcheck.ip.loading":"불러오는 중...","ipcheck.trust.title":"신뢰 점수","ipcheck.trust.subtitle":"Claude 위험 관리 관점에서의 IP 청결도","ipcheck.trust.no_data":"데이터 없음","ipcheck.trust.no_ip":"Claude 출구 IP가 감지되지 않아 점수를 매길 수 없습니다","ipcheck.trust.no_score":"이 IP에 대한 점수 데이터가 없습니다","ipcheck.trust.gauge.low":"0 고위험","ipcheck.trust.gauge.high":"100 신뢰됨","ipcheck.trust.label.pristine":"매우 깨끗함","ipcheck.trust.label.clean":"깨끗함","ipcheck.trust.label.good":"양호","ipcheck.trust.label.neutral":"중립","ipcheck.trust.label.suspicious":"의심스러움","ipcheck.trust.label.unreachable":"접근 불가","ipcheck.trust.text.excellent":"평판이 매우 우수함","ipcheck.trust.text.great":"평판이 우수함","ipcheck.trust.text.minor":"경미한 위험","ipcheck.trust.text.moderate":"보통 수준의 위험","ipcheck.trust.text.severe":"심각한 위험","ipcheck.trust.text.restricted":"제한 지역 — Claude가 엄격한 위험 관리를 적용합니다","ipcheck.trust.region_warn.title":"Claude 출구 IP가 {{region}}에 있습니다","ipcheck.trust.region_warn.body":"로그인을 피하세요. 계정 플래그 처리를 유발할 가능성이 높습니다.","ipcheck.trust.region_support":"Claude 지원 지역","ipcheck.trust.region.accessible":"접근 가능","ipcheck.common.unknown":"알 수 없음","ipcheck.props.title":"IP 속성","ipcheck.props.region":"지역","ipcheck.props.city":"도시","ipcheck.props.type":"유형","ipcheck.props.asn":"ASN","ipcheck.props.org":"ISP","ipcheck.props.residential":"가정용","ipcheck.props.datacenter":"데이터센터","ipcheck.security.title":"보안 검사","ipcheck.security.vpn":"VPN","ipcheck.security.proxy":"프록시","ipcheck.security.tor":"Tor","ipcheck.security.crawler":"크롤러","ipcheck.security.abuser":"악용 이력","ipcheck.security.proxy_flag":"프록시","ipcheck.security.crawler_yes":"예","ipcheck.security.crawler_no":"아니요","ipcheck.security.abuser_yes":"기록 있음","ipcheck.security.abuser_no":"기록 없음","ipcheck.security.clean":"감지되지 않음","ipcheck.avail.title":"Claude 가용성","ipcheck.avail.tooltip":"Claude 서버는 미국에 있으므로 아시아에서 100ms를 초과하는 지연은 정상입니다.","ipcheck.avail.refresh":"새로고침","ipcheck.avail.svc_row":"서비스 상태","ipcheck.avail.latency.normal":"정상","ipcheck.avail.latency.good":"양호","ipcheck.avail.latency.slow":"느림","ipcheck.avail.latency.unreachable":"접근 불가","ipcheck.avail.svc.none":"모든 시스템 정상","ipcheck.avail.svc.minor":"경미한 장애","ipcheck.avail.svc.major":"주요 장애","ipcheck.avail.svc.critical":"심각한 장애","ipcheck.avail.svc.maintenance":"점검 중","ipcheck.avail.svc.other":"서비스 이상","ipcheck.dns.title":"DNS 누출","ipcheck.dns.status":"상태","ipcheck.dns.outlet":"DNS 출구","ipcheck.dns.outlet_ip":"DNS 출구 IP","ipcheck.dns.isp":"제공업체","ipcheck.dns.leaked":"누출 가능성 있음","ipcheck.dns.no_leak":"누출이 감지되지 않음","ipcheck.dns.encrypted":"DNS 암호화 또는 비노출","ipcheck.dns.cn_tag":"중국 DNS","ipcheck.udp.title":"WebRTC UDP 누출","ipcheck.udp.status":"상태","ipcheck.udp.outlet":"UDP 출구","ipcheck.udp.outlet_ip":"UDP 출구 IP","ipcheck.udp.origin":"출처","ipcheck.udp.disabled":"WebRTC 비활성화됨","ipcheck.udp.no_leak":"누출이 감지되지 않음","ipcheck.udp.leaked":"누출 가능성 있음","ipcheck.udp.anomaly":"이상","ipcheck.device.title":"기기 정보","ipcheck.device.tz":"시간대","ipcheck.device.lang":"언어","ipcheck.device.os":"OS / 브라우저","ipcheck.device.touch":"터치","ipcheck.device.net":"네트워크 유형","ipcheck.device.dnt":"Do Not Track","ipcheck.device.webgl_render":"WebGL 렌더러","ipcheck.device.canvas_fp":"Canvas 지문","ipcheck.device.webgl_fp":"WebGL 지문","ipcheck.device.match":"일치","ipcheck.device.mismatch":"불일치","ipcheck.device.local":"로컬","ipcheck.device.estimate_suffix":"(추정)","ipcheck.device.diff_equal":"약간의 오차","ipcheck.device.diff_ahead":"Claude가 {{h}}시간 빠름","ipcheck.device.diff_behind":"Claude가 {{h}}시간 느림","ipcheck.device.lang_expected":"Claude 지역 일반적","ipcheck.device.touch_yes":"예","ipcheck.device.touch_no":"아니요","ipcheck.device.dnt_on":"켜짐","ipcheck.device.dnt_off":"꺼짐","ipcheck.device.dnt_unset":"설정 안 됨","ipcheck.device.net_unsupported":"감지되지 않음","ipcheck.device.unsupported":"지원되지 않음","ipcheck.history.title":"Claude 출구 IP 기록","ipcheck.history.subtitle":"이 브라우저에만 저장되며 최대 6개까지 보관됩니다","ipcheck.history.clear":"지우기","ipcheck.history.empty":"아직 기록이 없습니다","ipcheck.history.current":"현재","ipcheck.region.CN":"중국 본토","ipcheck.region.HK":"홍콩","ipcheck.region.MO":"마카오","ipcheck.region.RU":"러시아","ipcheck.region.KP":"북한","ipcheck.region.IR":"이란","ipcheck.region.SY":"시리아","ipcheck.region.CU":"쿠바","ipcheck.region.BY":"벨라루스","ipcheck.region.VE":"베네수엘라","leaderboard.profile_modal.close":"닫기","leaderboard.profile_modal.loading":"프로필 불러오는 중…","leaderboard.profile_modal.error":"프로필을 불러오지 못했습니다.","leaderboard.profile_modal.empty":"이 프로필은 공개되지 않았습니다.","leaderboard.profile_modal.row_aria":"{{name}}의 프로필 열기","leaderboard.profile_modal.rank":"#{{rank}}","leaderboard.profile.hero.rank_label":"순위","leaderboard.profile_modal.hero.total_tokens":"총 토큰","leaderboard.profile_modal.hero.total_cost":"총비용","leaderboard.profile_modal.hero.github":"GitHub 프로필","leaderboard.profile_modal.stat.total_cost":"총비용","leaderboard.profile_modal.stat.total_tokens":"총 토큰","leaderboard.profile_modal.stat.active_days":"활동 일수","leaderboard.profile_modal.stat.avg_per_day":"일 평균","leaderboard.profile_modal.streak.current":"현재 연속","leaderboard.profile_modal.streak.longest":"최장 연속","leaderboard.profile_modal.streak.days":"{{count}}일","leaderboard.profile_modal.best_day.title":"최고의 날","leaderboard.profile_modal.best_day.none":"—","leaderboard.profile_modal.models.count":"{{count}}개 모델 사용","leaderboard.profile_modal.models.favorite":"최애 모델","leaderboard.profile_modal.models.none":"추적된 모델 없음","leaderboard.profile_modal.heatmap.title":"활동 (최근 365일)","leaderboard.profile_modal.providers.title":"제공자별","leaderboard.profile_modal.providers.none":"이 기간에는 사용 데이터가 없습니다.","leaderboard.profile_modal.view_full":"전체 프로필 보기","local_only.title":"앱에서 사용 가능","local_only.body":"이 페이지는 사용자의 컴퓨터에 있는 데이터를 읽으므로 Mac 앱 또는 CLI 대시보드에서만 작동합니다.","local_only.open_app":"Mac 앱에서 열기","local_only.download":"Mac 앱 받기","dashboard.auth_gate.title":"Token Tracker 로그인","dashboard.auth_gate.subtitle":"로그인하여 클라우드에서 API 사용량, 비용 및 토큰 소비 트렌드를 동기화하고 확인하세요.","dashboard.auth_gate.button":"로그인","dashboard.expired_gate.title":"세션 만료됨","dashboard.expired_gate.subtitle":"세션이 만료되었습니다. 클라우드 대시보드를 계속 보려면 다시 로그인하세요.","dashboard.expired_gate.button":"다시 로그인","shared.app_name":"Token Tracker","dashboard.auth_gate.hero_title":"AI 에이전트의 모든 토큰 소비","dashboard.auth_gate.hero_subtitle":"명확하고 투명한 멀티 엔드포인트 제어","dashboard.auth_gate.desc":"Claude Code, Cursor, Gemini CLI 등 모든 주류 에이전트의 토큰 쿼터, 동시 실행 비용 및 대기 시간 통계를 퍼블릭 클라우드에서 안전하게 동기화하여 전례 없는 종합 시각화 분석을 제공합니다.","dashboard.auth_gate.feature.sync.title":"실시간 클라우드 동기화","dashboard.auth_gate.feature.sync.desc":"각 엔드포인트의 실행 비용을 자동으로 수집하고 프라이빗 클라우드에 단 몇 초 만에 안전하게 아카이브합니다.","dashboard.auth_gate.feature.anal.title":"다차원 대시보드 분석","dashboard.auth_gate.feature.anal.desc":"모델 분류, 시간 프레임별로 토큰 분포를 통계하여 비용 급증 및 소비 구성을 언제든지 추적할 수 있습니다.","dashboard.auth_gate.feature.guard.title":"로컬 우선의 자율성","dashboard.auth_gate.feature.guard.desc":"Localhost 모드에서는 모든 로그인 인증을 자동으로 건너뛰어 로컬 오프라인 디버깅 경험을 완벽하게 보호합니다.","dashboard.expired_gate.hero_title":"클라우드 세션 만료됨","dashboard.expired_gate.desc":"개인 정보 및 클라우드 드라이브 보안을 위해 활성 세션은 일정 기간 후 자동으로 종료됩니다. 대시보드를 즉시 복원하려면 다시 인증해 주세요.","dashboard.expired_gate.feature.sec.title":"안전한 보호","dashboard.expired_gate.feature.sec.desc":"암호화된 자격 증명은 만료 시 자동으로 파기되어 토큰 자산의 개인 정보를 철저히 보호합니다.","dashboard.expired_gate.feature.restore.title":"원활한 데이터 복원","dashboard.expired_gate.feature.restore.desc":"다시 로그인하면 터미널 훅을 재구성할 필요 없이 멀티 디바이스 실시간 대시보드가 자동으로 복원됩니다.","dashboard.expired_gate.feature.cloud.title":"교차 장치 동기화","dashboard.expired_gate.feature.cloud.desc":"동기화된 대시보드를 통해 어디서나 토큰 로그를 간편하게 확인하고 지출을 관리할 수 있습니다."},p8={"landing.handle.default":"VIBE_USER","landing.handle.special":"VOLT","landing.screenshot.alt":"TokenTracker 대시보드 스크린샷","landing.nav.login":"로그인","landing.nav.signup":"회원가입","landing.install.command":"npx --yes tokentracker-cli","landing.install.action.copy":"명령 복사","landing.install.action.copied":"복사됨","landing.meta.title":"Token Tracker — AI Agent CLI를 위한 토큰 사용량 추적기","landing.meta.description":"Claude Code, Cursor, Codex 등의 토큰 사용량을 자동으로 모니터링하세요. 로컬 우선, 개인정보 보호 중심, 수동 설정 불필요.","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/dashboard-dark.png","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker 공유","share.meta.description":"모델, 프로젝트, 기간별 토큰 사용량 인사이트가 담긴 Token Tracker 대시보드 스냅샷을 공유하세요.","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/dashboard-dark.png","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.handle.placeholder":"'{{handle}}' 입력해 보기","landing.rank.expectation":"예상 순위: {{rank}}","landing.rank.singularity":"정점","landing.rank.unranked":"순위 없음","landing.cta.primary":"대시보드 보기","landing.cta.secondary":"GitHub","landing.v2.hero.title_line1":"당신의 모든","landing.v2.hero.title_line2":"AI 토큰 추적","landing.v2.install.mac_cta":"macOS용 다운로드","landing.v2.install.win_cta":"Windows용 다운로드","landing.v2.install.desktop_cta":"데스크톱 앱 다운로드","landing.v2.install.os_macos":"macOS","landing.v2.install.os_windows":"Windows","landing.v2.install.availability":"macOS 및 Windows 지원","landing.v2.models.title":"지원하는 AI CLI 도구","landing.v2.compare.kicker":"매끄러운 추적","landing.v2.compare.title":"AI 사용량을 더 이상 추측하지 마세요.","landing.v2.compare.subtitle":"AI CLI 도구는 원본 사용량 데이터를 흩어진 로컬 파일에 숨겨둡니다. TokenTracker는 이를 로컬 퍼스트 대시보드로 실시간 정리합니다.","landing.v2.distill.body":"100% 로컬 처리. 프롬프트나 코드는 절대 수집하지 않습니다.","landing.v2.compare.with.title":"TOKEN TRACKER 사용 시","landing.v2.compare.with.p1":"통합된 사용량 대시보드","landing.v2.compare.with.p2":"실시간 토큰 지표","landing.v2.compare.with.p3":"100% 로컬, 개인정보 보장","landing.v2.compare.with.p4":"멀티 클라이언트 터미널 감사 추적","landing.v2.compare.without.title":"사용하지 않을 때","landing.v2.compare.without.p1":"흩어진 JSON 로그 파일","landing.v2.compare.without.p2":"토큰 소비량에 대한 깜깜이","landing.v2.compare.without.p3":"예상치 못한 API 청구서","landing.v2.compare.without.p4":"과거 감사 로그 부재","landing.v2.leaderboard.kicker":"글로벌 TOKEN 리더보드","landing.v2.leaderboard.title":"AI Token 효율성","landing.v2.leaderboard.subtitle":"로컬 AI Token 사용량을 익명으로 동기화하여 글로벌 효율성 리더보드에 참여할 수 있습니다. 전 세계 개발자들과 함께 모델 비용 효율성 및 호출 빈도를 벤치마킹하세요.","landing.v2.leaderboard.view_more":"전체 리더보드 보기","landing.v2.footer.line":"Token Tracker — 개발자가 만든, 개발자를 위한.","landing.v2.nav.status":"상태","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"CODEX","landing.v2.models.agent.claude_code":"CLAUDE CODE","landing.v2.models.agent.cursor":"CURSOR","landing.v2.models.agent.gemini":"GEMINI","landing.v2.models.agent.opencode":"OPENCODE","landing.v2.models.agent.openclaw":"OPENCLAW","landing.v2.cta.primary":"Dashboard","landing.v2.hero.subtagline":"Claude Code, Cursor, Codex 등의 토큰 사용량을 자동으로 모니터링하세요. 로컬 우선, 개인정보 보호 중심, 수동 설정 불필요.","leaderboard.profile.nav.back":"리더보드","leaderboard.profile.nav.download":"다운로드","leaderboard.title":"리더보드","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"전체 기간","leaderboard.generated_at":"{{ts}} 업데이트됨","leaderboard.period.week":"주","leaderboard.period.month":"월","leaderboard.period.total":"전체","leaderboard.me_label":"나","leaderboard.anon_label":"익명","leaderboard.error.unknown":"알 수 없는 오류","leaderboard.loading":"불러오는 중…","leaderboard.empty":"데이터 없음","leaderboard.column.rank":"순위","leaderboard.column.user":"사용자","leaderboard.column.total":"전체","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"GitHub Copilot","leaderboard.column.kimi":"Kimi Code","leaderboard.column.supplemental":"기타","leaderboard.column.est_cost":"예상 비용","leaderboard.signin_prompt":"로그인하여 리더보드에 참여하세요","leaderboard.signin_button":"로그인","leaderboard.sync_prompt":"클라우드 동기화를 켜면 순위에 표시됩니다","leaderboard.sync_button.idle":"켜고 동기화","leaderboard.sync_button.busy":"동기화 중...","leaderboard.pagination.page_size_label":"페이지당 행 수","leaderboard.pagination.prev":"이전","leaderboard.pagination.next":"다음","leaderboard.pagination.ellipsis":"…","leaderboard.pagination.page_unknown":"{{page}} 페이지","share.modal.title":"내 통계 공유","share.modal.subtitle":"포스터 스타일 카드를 생성해 어디든 공유하세요.","share.modal.close":"닫기","share.modal.action.x":"X에 공유","share.modal.action.download":"다운로드","share.modal.action.copy":"이미지 복사","share.modal.hint.x":"트윗에 이미지 붙여넣기","share.modal.hint.copy":"클립보드로","share.modal.name_label":"표시 이름","share.modal.name_placeholder":"이름을 입력하세요","share.modal.style_label":"스타일","share.modal.footer":"데이터는 항상 로컬에 보관됩니다 — 이미지는 브라우저에서 생성되며 절대 업로드되지 않습니다.","share.button.label":"공유","share.button.aria":"공유 카드 열기","share.toast.copied":"이미지가 클립보드에 복사되었습니다","share.toast.downloaded":"이미지가 저장되었습니다","share.toast.failed":"이미지를 생성하지 못했습니다","share.toast.working":"생성 중…","share.variant.neon":"네온","share.variant.broadsheet":"특집","share.date.month_year":"{{year}}년 {{month}}","share.issue.all_time":"전체 기간","share.month_short.jan":"1월","share.month_short.feb":"2월","share.month_short.mar":"3월","share.month_short.apr":"4월","share.month_short.may":"5월","share.month_short.jun":"6월","share.month_short.jul":"7월","share.month_short.aug":"8월","share.month_short.sep":"9월","share.month_short.oct":"10월","share.month_short.nov":"11월","share.month_short.dec":"12월","share.hook.top_loyal":"{{percent}}%를 {{name}}에 집중.","share.hook.days_record":"{{days}}일 기록.","share.hook.top_led":"{{name}} 선두 ({{percent}}%).","share.hook.multi_models":"{{count}}개 모델, {{days}}일에 걸쳐.","share.hook.days_with_model":"{{name}}와(과) 함께한 {{days}}일.","share.hook.new_chapter":"새로운 장의 시작.","share.card.broadsheet.issue":"호","share.card.broadsheet.by":"작성자","share.card.broadsheet.tracked_since":"추적 시작","share.card.broadsheet.total_tokens":"총 토큰","share.card.broadsheet.estimated_spend":"예상 지출","share.card.broadsheet.billable_days":"활동 {{days}}일","share.card.broadsheet.heatmap_title":"올해의 인쇄본","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}}일 기록","share.card.broadsheet.roster_title":"모델 명단","share.card.broadsheet.roster_subtitle":"정기적으로 사용하는 모델","share.card.broadsheet.empty":"한산한 한 주 — 윤전기가 조용했습니다.","share.card.broadsheet.global_rank":"전체 순위","share.card.broadsheet.active_days":"활동","share.card.broadsheet.days_count":"{{days}}일","share.card.broadsheet.track_yours":"내 것도 추적하기","share.card.annual.report_title":"토큰 리포트","share.card.annual.less":"적음","share.card.annual.more":"많음","share.card.annual.heatmap_title":"토큰 사용량 히트맵","share.card.annual.total_tokens":"총 토큰","share.card.annual.estimated_cost":"예상 비용","share.card.annual.longest_streak":"최장 연속","share.card.annual.days_count":"{{days}}일","share.card.annual.top_model":"인기 모델"},Xw="tokentracker-locale",as="system",ud="en",Jw="zh-CN",Qw="zh-TW",e2="ja",t2="ko",m8=/^zh[-_](hant|tw|hk|mo)\b/i;function n2(e){return/^zh(?:[-_]|$)/i.test(e)?m8.test(e)?Qw:Jw:/^ja(?:[-_]|$)/i.test(e)?e2:/^ko(?:[-_]|$)/i.test(e)?t2:null}function a2(e){return typeof e!="string"?ud:n2(e.trim())||ud}function Bd(e){return e===as?as:a2(e)}function g8(){return typeof navigator>"u"?[]:Array.isArray(navigator.languages)&&navigator.languages.length?navigator.languages.filter(e=>typeof e=="string"):typeof navigator.language=="string"?[navigator.language]:[]}function dd(e,t=g8()){const n=Bd(e);if(n!==as)return n;const a=t.map(i=>typeof i=="string"?i.trim():"").find(i=>i.length>0);return a&&n2(a)||ud}function fg(){return Bd(bl(Xw)||as)}function y8(e){return kl(Xw,Bd(e))}const v8=["key","module","page","component","slot","text"],b8={[Jw]:{...a8,...r8,...i8},[Qw]:{...o8,...s8,...l8},[e2]:{...c8,...u8,...d8},[t2]:{...h8,...f8,...p8}};let Gf=null,pg=dd(fg());function k8(e){const t=[];let n=[],a="",i=!1;for(let s=0;s<e.length;s+=1){const l=e[s];if(i){l==='"'?e[s+1]==='"'?(a+='"',s+=1):i=!1:a+=l;continue}if(l==='"'){i=!0;continue}if(l===","){n.push(a),a="";continue}if(l===`
990
- `){n.push(a),a="",n.every(u=>u.trim()==="")||t.push(n),n=[];continue}l!=="\r"&&(a+=l)}return n.push(a),n.every(s=>s.trim()==="")||t.push(n),t}function _8(e){const t=k8(e);if(!t.length)return{map:new Map,rows:[]};const n=t[0].map(u=>String(u).trim());if(v8.filter(u=>!n.includes(u)).length)return{map:new Map,rows:[]};const i=Object.fromEntries(n.map((u,h)=>[u,h])),s=[],l=new Map;return t.slice(1).forEach((u,h)=>{const f={key:String(u[i.key]||"").trim(),module:String(u[i.module]||"").trim(),page:String(u[i.page]||"").trim(),component:String(u[i.component]||"").trim(),slot:String(u[i.slot]||"").trim(),text:String(u[i.text]??"").trim()};f.key&&(l.has(f.key),l.set(f.key,f),s.push(f))}),{map:l,rows:s}}function w8(){return Gf||(Gf=_8(n8)),Gf}function x8(){return b8[pg]||{}}function P8(e){const t=x8()[String(e)];return typeof t=="string"&&t.trim()?t:null}function S8(e,t){return t?e.replace(/\{\{(\w+)\}\}/g,(n,a)=>t[a]==null?n:String(t[a])):e}function C8(e){return String(e).replace(/\\n/g,`
991
- `)}function T8(e,t){return P8(t)||e?.text||t}function E8(e){pg=a2(e)}function Tz(){return pg}function De(e,t){const a=w8().map.get(e);return S8(C8(T8(a,e)),t)}const r2=b.createContext(null);function A8(){return dd(fg())}function R8(e){typeof document>"u"||(document.documentElement.lang=e)}function ek(e,t){E8(e),t(n=>n===e?n:e)}function L8({children:e}){const[t,n]=b.useState(fg),[a,i]=b.useState(A8);b.useLayoutEffect(()=>{R8(a)},[a]),b.useLayoutEffect(()=>{Ca()&&_l("locale",t)},[t]),b.useLayoutEffect(()=>{if(t!==as||typeof window>"u")return;const u=()=>ek(dd(as),i);return window.addEventListener("languagechange",u),()=>window.removeEventListener("languagechange",u)},[t]);const s=b.useCallback(u=>{const h=Bd(u);ek(dd(h),i),n(h),y8(h),Ca()&&_l("locale",h)},[]),l=b.useMemo(()=>({locale:t,setLocale:s,resolvedLocale:a}),[t,a,s]);return T.jsx(r2.Provider,{value:l,children:e})}const D8="https://open.er-api.com/v6/latest/USD",I8=1440*60*1e3,M8=5e3;function N8(e,t=I8,n=Date.now()){return!e||!Number.isFinite(e)?!0:n-e>t}async function O8(e={}){const{timeoutMs:t=M8,fetchImpl:n,url:a=D8,codes:i=lg}=e,s=n??(typeof fetch<"u"?fetch:null);if(!s)throw new Error("fetch is not available");const l=typeof AbortController<"u"?new AbortController:null,u=l?setTimeout(()=>l.abort(),t):null;try{const h=await s(a,l?{signal:l.signal}:void 0);if(!h||!h.ok)throw new Error(`exchange rate fetch failed: ${h?.status??"no-response"}`);const p=(await h.json())?.rates;if(!p||typeof p!="object")throw new Error("exchange rate response missing rates");const g={USD:1};for(const v of i){if(v==="USD")continue;const _=p[v];ld(_)&&(g[v]=_)}if(Object.keys(g).length<=1)throw new Error("no supported currency rates in response");return{rates:g,fetchedAt:Date.now()}}finally{u&&clearTimeout(u)}}const j8=b.createContext(null);function tk(e,t,n){Ca()&&(_l("currency",e),_l("currencySymbol",n),ld(t)&&_l("exchangeRate",t))}function U8({children:e}){const[t,n]=b.useState(yA),a=b.useMemo(()=>kA(),[]),[i,s]=b.useState(a.rates),[l,u]=b.useState(a.source),[h,f]=b.useState(a.fetchedAt),p=b.useRef(!1),g=b.useRef(!1),v=b.useCallback((R,E,A)=>{s(R),u(E),f(A),_A({rates:R,source:E,fetchedAt:A})},[]),_=b.useCallback(async()=>{if(!p.current){p.current=!0;try{const{rates:R,fetchedAt:E}=await O8();v({...cg,...R},"fetched",E)}catch{}finally{p.current=!1}}},[v]),w=b.useCallback(R=>{const E=ug(R);n(E),vA(E);const A=Hf(i,E),U=Ou(E);tk(E,A,U)},[i]);b.useEffect(()=>{g.current||t!==Dl&&N8(h)&&(g.current=!0,_())},[t,h,_]),b.useEffect(()=>{const R=Hf(i,t),E=Ou(t);tk(t,R,E)},[t,i]);const S=b.useMemo(()=>Hf(i,t),[i,t]),P=b.useMemo(()=>Ou(t),[t]),D=b.useMemo(()=>({currency:t,rate:S,symbol:P,rates:i,rateSource:l,rateFetchedAt:h,setCurrency:w}),[t,S,P,i,l,h,w]);return T.jsx(j8.Provider,{value:D,children:e})}var hd={},z8=()=>{window.va||(window.va=function(...t){window.vaq||(window.vaq=[]),window.vaq.push(t)})},B8="@vercel/analytics",F8="2.0.1";function i2(){return typeof window<"u"}function o2(){try{const e="production"}catch{}return"production"}function V8(e="auto"){if(e==="auto"){window.vam=o2();return}window.vam=e}function H8(){return(i2()?window.vam:o2())||"production"}function mg(){return H8()==="development"}function $8(e){return e.scriptSrc?$o(e.scriptSrc):mg()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?$o(`${e.basePath}/insights/script.js`):"/_vercel/insights/script.js"}function W8(e,t){var n;let a=e;if(t)try{a={...(n=JSON.parse(t))==null?void 0:n.analytics,...e}}catch{}V8(a.mode);const i={sdkn:B8+(a.framework?`/${a.framework}`:""),sdkv:F8};return a.disableAutoTrack&&(i.disableAutoTrack="1"),a.viewEndpoint&&(i.viewEndpoint=$o(a.viewEndpoint)),a.eventEndpoint&&(i.eventEndpoint=$o(a.eventEndpoint)),a.sessionEndpoint&&(i.sessionEndpoint=$o(a.sessionEndpoint)),mg()&&a.debug===!1&&(i.debug="false"),a.dsn&&(i.dsn=a.dsn),a.endpoint?i.endpoint=a.endpoint:a.basePath&&(i.endpoint=$o(`${a.basePath}/insights`)),{beforeSend:a.beforeSend,src:$8(a),dataset:i}}function $o(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function G8(e={debug:!0},t){var n;if(!i2())return;const{beforeSend:a,src:i,dataset:s}=W8(e,t);if(z8(),a&&((n=window.va)==null||n.call(window,"beforeSend",a)),document.head.querySelector(`script[src*="${i}"]`))return;const l=document.createElement("script");l.src=i;for(const[u,h]of Object.entries(s))l.dataset[u]=h;l.defer=!0,l.onerror=()=>{const u=mg()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${i}. ${u}`)},document.head.appendChild(l)}function K8({route:e,path:t}){var n;(n=window.va)==null||n.call(window,"pageview",{route:e,path:t})}function q8(){if(!(typeof process>"u"||typeof hd>"u"))return hd.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function Y8(){if(!(typeof process>"u"||typeof hd>"u"))return hd.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function Z8(e){return b.useEffect(()=>{var t;e.beforeSend&&((t=window.va)==null||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),b.useEffect(()=>{G8({framework:e.framework||"react",basePath:e.basePath??q8(),...e.route!==void 0&&{disableAutoTrack:!0},...e},e.configString??Y8())},[]),b.useEffect(()=>{e.route&&e.path&&K8({route:e.route,path:e.path})},[e.route,e.path]),null}var fd={},X8=()=>{window.si||(window.si=function(...t){window.siq=window.siq||[],window.siq.push(t)})},J8="@vercel/speed-insights",Q8="2.0.0";function eR(){return typeof window<"u"}function tR(){try{const e="production"}catch{}return"production"}function s2(){return tR()==="development"}function nR(e){return e.scriptSrc?pd(e.scriptSrc):s2()?"https://va.vercel-scripts.com/v1/speed-insights/script.debug.js":e.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":e.basePath?pd(`${e.basePath}/speed-insights/script.js`):"/_vercel/speed-insights/script.js"}function aR(e,t){var n;let a=e;if(t)try{a={...(n=JSON.parse(t))==null?void 0:n.speedInsights,...e}}catch{}const i={sdkn:J8+(a.framework?`/${a.framework}`:""),sdkv:Q8};return a.sampleRate&&(i.sampleRate=a.sampleRate.toString()),a.route&&(i.route=a.route),s2()&&a.debug===!1&&(i.debug="false"),a.dsn&&(i.dsn=a.dsn),a.endpoint?i.endpoint=pd(a.endpoint):a.basePath&&(i.endpoint=pd(`${a.basePath}/speed-insights/vitals`)),{src:nR(a),beforeSend:a.beforeSend,dataset:i}}function pd(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function rR(e={},t){var n;if(!eR()||e.route===null)return null;X8();const{beforeSend:a,src:i,dataset:s}=aR(e,t);if(document.head.querySelector(`script[src*="${i}"]`))return null;a&&((n=window.si)==null||n.call(window,"beforeSend",a));const l=document.createElement("script");l.src=i,l.defer=!0;for(const[u,h]of Object.entries(s))l.dataset[u]=h;return l.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${i}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(l),{setRoute:u=>{l.dataset.route=u??void 0}}}function iR(){if(!(typeof process>"u"||typeof fd>"u"))return fd.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function oR(){if(!(typeof process>"u"||typeof fd>"u"))return fd.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function sR(e){b.useEffect(()=>{var n;e.beforeSend&&((n=window.si)==null||n.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]);const t=b.useRef(null);return b.useEffect(()=>{if(!t.current){const n=rR({framework:e.framework??"react",basePath:e.basePath??iR(),...e},e.configString??oR());n&&(t.current=n.setRoute)}},[e]),b.useEffect(()=>{t.current&&e.route&&t.current(e.route)},[e.route]),null}const l2=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();const lR=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const cR=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,a)=>a?a.toUpperCase():n.toLowerCase());const nk=e=>{const t=cR(e);return t.charAt(0).toUpperCase()+t.slice(1)};var Kf={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"};const uR=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},dR=b.createContext({}),hR=()=>b.useContext(dR),fR=b.forwardRef(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:a,className:i="",children:s,iconNode:l,...u},h)=>{const{size:f=24,strokeWidth:p=2,absoluteStrokeWidth:g=!1,color:v="currentColor",className:_=""}=hR()??{},w=a??g?Number(n??p)*24/Number(t??f):n??p;return b.createElement("svg",{ref:h,...Kf,width:t??f??Kf.width,height:t??f??Kf.height,stroke:e??v,strokeWidth:w,className:l2("lucide",_,i),...!s&&!uR(u)&&{"aria-hidden":"true"},...u},[...l.map(([S,P])=>b.createElement(S,P)),...Array.isArray(s)?s:[s]])});const an=(e,t)=>{const n=b.forwardRef(({className:a,...i},s)=>b.createElement(fR,{ref:s,iconNode:t,className:l2(`lucide-${lR(nk(e))}`,`lucide-${e}`,a),...i}));return n.displayName=nk(e),n};const pR=[["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"}]],mR=an("chart-column",pR);const gR=[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]],yR=an("corner-down-left",gR);const vR=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],bR=an("gauge",vR);const kR=[["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"}]],_R=an("globe",kR);const wR=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],xR=an("layout-grid",wR);const PR=[["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"}]],SR=an("mail",PR);const CR=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],TR=an("menu",CR);const ER=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],AR=an("monitor",ER);const RR=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],c2=an("moon",RR);const LR=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],DR=an("puzzle",LR);const IR=[["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"}]],MR=an("refresh-cw",IR);const NR=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],OR=an("search",NR);const jR=[["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"}]],UR=an("settings",jR);const zR=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],u2=an("sun",zR);const BR=[["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"}]],FR=an("triangle-alert",BR);const VR=[["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"}]],HR=an("trophy",VR);const $R=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],gg=an("x",$R);function WR({children:e,variant:t="primary",size:n="md",onClick:a,disabled:i=!1,className:s="",as:l="button",...u}){const h="inline-flex items-center justify-center font-medium transition-all duration-200 rounded-md focus:outline-none focus:ring-2 focus:ring-oai-blue/30 active:scale-[0.98] active:duration-100",f={primary:"bg-oai-black dark:bg-oai-white text-white dark:text-oai-black border border-transparent hover:bg-oai-gray-800 dark:hover:bg-oai-gray-200 active:bg-oai-gray-900 dark:active:bg-oai-gray-300 disabled:bg-oai-gray-300 dark:disabled:bg-oai-gray-700 disabled:text-oai-gray-500 dark:disabled:text-oai-gray-400 focus:ring-oai-brand/30 transition-colors duration-200",secondary:"bg-oai-white dark:bg-oai-gray-900 text-oai-black dark:text-oai-white border border-oai-gray-300 dark:border-oai-gray-700 hover:border-oai-brand hover:text-oai-brand active:bg-oai-gray-50 dark:active:bg-oai-gray-800 active:border-oai-brand-dark disabled:text-oai-gray-400 dark:disabled:text-oai-gray-500 disabled:border-oai-gray-200 dark:disabled:border-oai-gray-700 focus:ring-oai-brand/30 transition-colors duration-200",ghost:"bg-transparent text-oai-gray-600 dark:text-oai-gray-300 border border-transparent hover:text-oai-brand hover:bg-oai-brand-50/50 dark:hover:bg-oai-brand-950/30 active:bg-oai-brand-50 dark:active:bg-oai-brand-900/50 disabled:text-oai-gray-400 dark:disabled:text-oai-gray-500 focus:ring-oai-brand/30 transition-colors duration-200"},p={sm:"h-8 px-3 text-sm",md:"h-10 px-4 text-sm",lg:"h-12 px-6 text-base"},g=i?"cursor-not-allowed opacity-60":"cursor-pointer",v=`${h} ${f[t]} ${p[n]} ${g} ${s}`;return T.jsx(l,{className:v,onClick:a,disabled:i,...u,children:e})}class GR extends Xo.Component{constructor(t){super(t),this.state={error:null},this.handleReload=this.handleReload.bind(this)}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){console.error("ErrorBoundary caught an error:",t)}handleReload(){typeof window>"u"||window.location.reload()}render(){const{error:t}=this.state;if(!t)return this.props.children;const n=String(t?.message||t||""),a=n?De("shared.error.prefix",{error:n}):De("error.boundary.no_details");return T.jsx("div",{className:"flex min-h-screen items-center justify-center bg-oai-white p-6 font-oai text-oai-black antialiased dark:bg-oai-gray-950 dark:text-oai-white",children:T.jsxs("div",{className:"w-full max-w-lg rounded-xl border border-oai-gray-200 bg-white p-6 text-center shadow-sm dark:border-oai-gray-800 dark:bg-oai-gray-900",children:[T.jsx("div",{className:"mx-auto flex h-10 w-10 items-center justify-center rounded-full bg-amber-50 text-amber-600 dark:bg-amber-950/30 dark:text-amber-300",children:T.jsx(FR,{className:"h-5 w-5","aria-hidden":!0})}),T.jsx("div",{className:"mt-4 text-xs font-medium uppercase text-oai-gray-500 dark:text-oai-gray-400",children:De("error.boundary.title")}),T.jsx("h1",{className:"mt-2 text-xl font-semibold text-oai-black dark:text-white",children:De("error.boundary.subtitle")}),T.jsx("p",{className:"mt-2 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:De("error.boundary.hint")}),T.jsx("div",{className:"mt-4 max-h-32 overflow-auto rounded-lg border border-oai-gray-200 bg-oai-gray-50 px-3 py-2 text-left text-xs leading-5 text-oai-gray-600 dark:border-oai-gray-800 dark:bg-oai-gray-950 dark:text-oai-gray-300",children:a}),T.jsxs(WR,{type:"button",size:"md",onClick:this.handleReload,className:"mt-5",children:[T.jsx(MR,{className:"mr-2 h-4 w-4","aria-hidden":!0}),De("error.boundary.action.reload")]})]})})}}function Yl(){const e=b.useContext(r2);if(e===null)throw new Error("useLocale must be used within a LocaleProvider");return e}const Yp="tokentracker-theme",d2=b.createContext(null);function KR(){if(typeof window>"u")return"system";try{const e=localStorage.getItem(Yp);if(e==="light"||e==="dark"||e==="system")return e}catch{}return"system"}function hu(){return typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function qR(e){if(typeof document>"u")return;const t=document.documentElement;e==="dark"?t.classList.add("dark"):t.classList.remove("dark")}function YR({children:e}){const[t,n]=b.useState(KR),[a,i]=b.useState(()=>{if(t!=="system")return t;if(Ca()){const f=Xb();if(typeof f=="boolean")return f?"dark":"light"}return hu()}),s=b.useRef(t);b.useEffect(()=>{s.current=t},[t]),b.useEffect(()=>{qR(a)},[a]),b.useLayoutEffect(()=>{if(t==="system"){if(Ca()){const f=Xb();i(typeof f=="boolean"?f?"dark":"light":hu()),XA();return}i(hu())}else i(t)},[t]),b.useEffect(()=>Ca()?ZA(p=>{s.current==="system"&&i(p?"dark":"light")}):void 0,[]),b.useEffect(()=>{if(typeof window>"u"||t!=="system"||Ca())return;const f=window.matchMedia("(prefers-color-scheme: dark)"),p=g=>{const v=g.matches?"dark":"light";i(v)};return f.addEventListener?(f.addEventListener("change",p),()=>f.removeEventListener("change",p)):(f.addListener(p),()=>f.removeListener(p))},[t]),b.useEffect(()=>{const f=t==="system"&&!Ca()?hu():a;JA(f,t)},[a,t]);const l=b.useCallback(f=>{if(n(f),typeof window<"u")try{localStorage.setItem(Yp,f)}catch{}},[]),u=b.useCallback(()=>{l(f=>{const p=f==="dark"?"light":"dark";if(typeof window<"u")try{localStorage.setItem(Yp,p)}catch{}return p})},[]),h=b.useMemo(()=>({theme:t,setTheme:l,toggleTheme:u,resolvedTheme:a}),[t,l,u,a]);return T.jsx(d2.Provider,{value:h,children:e})}const h2=b.createContext({isOpen:!1,openLoginModal:()=>{},closeLoginModal:()=>{}});function ZR({children:e}){const[t,n]=b.useState(!1),a=b.useCallback(()=>n(!0),[]),i=b.useCallback(()=>n(!1),[]);return T.jsx(h2.Provider,{value:{isOpen:t,openLoginModal:a,closeLoginModal:i},children:e})}function f2(){return b.useContext(h2)}const yg=b.createContext({});function vg(e){const t=b.useRef(null);return t.current===null&&(t.current=e()),t.current}const XR=typeof window<"u",p2=XR?b.useLayoutEffect:b.useEffect,Fd=b.createContext(null);function bg(e,t){e.indexOf(t)===-1&&e.push(t)}function md(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const tr=(e,t,n)=>n>t?t:n<e?e:n;let kg=()=>{};const si={},m2=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),g2=e=>typeof e=="object"&&e!==null,y2=e=>/^0[^.\s]+$/u.test(e);function v2(e){let t;return()=>(t===void 0&&(t=e()),t)}const ia=e=>e,Zl=(...e)=>e.reduce((t,n)=>a=>n(t(a))),Ml=(e,t,n)=>{const a=t-e;return a?(n-e)/a:1};class _g{constructor(){this.subscriptions=[]}add(t){return bg(this.subscriptions,t),()=>md(this.subscriptions,t)}notify(t,n,a){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,a);else for(let s=0;s<i;s++){const l=this.subscriptions[s];l&&l(t,n,a)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Wn=e=>e*1e3,aa=e=>e/1e3,b2=(e,t)=>t?e*(1e3/t):0,k2=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,JR=1e-7,QR=12;function eL(e,t,n,a,i){let s,l,u=0;do l=t+(n-t)/2,s=k2(l,a,i)-e,s>0?n=l:t=l;while(Math.abs(s)>JR&&++u<QR);return l}function Xl(e,t,n,a){if(e===t&&n===a)return ia;const i=s=>eL(s,0,1,e,n);return s=>s===0||s===1?s:k2(i(s),t,a)}const _2=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,w2=e=>t=>1-e(1-t),x2=Xl(.33,1.53,.69,.99),wg=w2(x2),P2=_2(wg),S2=e=>e>=1?1:(e*=2)<1?.5*wg(e):.5*(2-Math.pow(2,-10*(e-1))),xg=e=>1-Math.sin(Math.acos(e)),C2=w2(xg),T2=_2(xg),tL=Xl(.42,0,1,1),nL=Xl(0,0,.58,1),E2=Xl(.42,0,.58,1),aL=e=>Array.isArray(e)&&typeof e[0]!="number",A2=e=>Array.isArray(e)&&typeof e[0]=="number",rL={linear:ia,easeIn:tL,easeInOut:E2,easeOut:nL,circIn:xg,circInOut:T2,circOut:C2,backIn:wg,backInOut:P2,backOut:x2,anticipate:S2},iL=e=>typeof e=="string",ak=e=>{if(A2(e)){kg(e.length===4);const[t,n,a,i]=e;return Xl(t,n,a,i)}else if(iL(e))return rL[e];return e},fu=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function oL(e,t){let n=new Set,a=new Set,i=!1,s=!1;const l=new WeakSet;let u={delta:0,timestamp:0,isProcessing:!1};function h(p){l.has(p)&&(f.schedule(p),e()),p(u)}const f={schedule:(p,g=!1,v=!1)=>{const w=v&&i?n:a;return g&&l.add(p),w.add(p),p},cancel:p=>{a.delete(p),l.delete(p)},process:p=>{if(u=p,i){s=!0;return}i=!0;const g=n;n=a,a=g,n.forEach(h),n.clear(),i=!1,s&&(s=!1,f.process(p))}};return f}const sL=40;function R2(e,t){let n=!1,a=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,l=fu.reduce((E,A)=>(E[A]=oL(s),E),{}),{setup:u,read:h,resolveKeyframes:f,preUpdate:p,update:g,preRender:v,render:_,postRender:w}=l,S=()=>{const E=si.useManualTiming,A=E?i.timestamp:performance.now();n=!1,E||(i.delta=a?1e3/60:Math.max(Math.min(A-i.timestamp,sL),1)),i.timestamp=A,i.isProcessing=!0,u.process(i),h.process(i),f.process(i),p.process(i),g.process(i),v.process(i),_.process(i),w.process(i),i.isProcessing=!1,n&&t&&(a=!1,e(S))},P=()=>{n=!0,a=!0,i.isProcessing||e(S)};return{schedule:fu.reduce((E,A)=>{const U=l[A];return E[A]=(F,j=!1,C=!1)=>(n||P(),U.schedule(F,j,C)),E},{}),cancel:E=>{for(let A=0;A<fu.length;A++)l[fu[A]].cancel(E)},state:i,steps:l}}const{schedule:vt,cancel:li,state:tn,steps:qf}=R2(typeof requestAnimationFrame<"u"?requestAnimationFrame:ia,!0);let Uu;function lL(){Uu=void 0}const bn={now:()=>(Uu===void 0&&bn.set(tn.isProcessing||si.useManualTiming?tn.timestamp:performance.now()),Uu),set:e=>{Uu=e,queueMicrotask(lL)}},L2=e=>t=>typeof t=="string"&&t.startsWith(e),D2=L2("--"),cL=L2("var(--"),Pg=e=>cL(e)?uL.test(e.split("/*")[0].trim()):!1,uL=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function rk(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const ps={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Nl={...ps,transform:e=>tr(0,1,e)},pu={...ps,default:1},wl=e=>Math.round(e*1e5)/1e5,Sg=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function dL(e){return e==null}const hL=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Cg=(e,t)=>n=>!!(typeof n=="string"&&hL.test(n)&&n.startsWith(e)||t&&!dL(n)&&Object.prototype.hasOwnProperty.call(n,t)),I2=(e,t,n)=>a=>{if(typeof a!="string")return a;const[i,s,l,u]=a.match(Sg);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(l),alpha:u!==void 0?parseFloat(u):1}},fL=e=>tr(0,255,e),Yf={...ps,transform:e=>Math.round(fL(e))},Ui={test:Cg("rgb","red"),parse:I2("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:a=1})=>"rgba("+Yf.transform(e)+", "+Yf.transform(t)+", "+Yf.transform(n)+", "+wl(Nl.transform(a))+")"};function pL(e){let t="",n="",a="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),a=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),a=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,a+=a,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(a,16),alpha:i?parseInt(i,16)/255:1}}const Zp={test:Cg("#"),parse:pL,transform:Ui.transform},Jl=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),kr=Jl("deg"),Ya=Jl("%"),Ce=Jl("px"),mL=Jl("vh"),gL=Jl("vw"),ik={...Ya,parse:e=>Ya.parse(e)/100,transform:e=>Ya.transform(e*100)},Wo={test:Cg("hsl","hue"),parse:I2("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:a=1})=>"hsla("+Math.round(e)+", "+Ya.transform(wl(t))+", "+Ya.transform(wl(n))+", "+wl(Nl.transform(a))+")"},Ft={test:e=>Ui.test(e)||Zp.test(e)||Wo.test(e),parse:e=>Ui.test(e)?Ui.parse(e):Wo.test(e)?Wo.parse(e):Zp.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ui.transform(e):Wo.transform(e),getAnimatableNone:e=>{const t=Ft.parse(e);return t.alpha=0,Ft.transform(t)}},yL=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function vL(e){return isNaN(e)&&typeof e=="string"&&(e.match(Sg)?.length||0)+(e.match(yL)?.length||0)>0}const M2="number",N2="color",bL="var",kL="var(",ok="${}",_L=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function rs(e){const t=e.toString(),n=[],a={color:[],number:[],var:[]},i=[];let s=0;const u=t.replace(_L,h=>(Ft.test(h)?(a.color.push(s),i.push(N2),n.push(Ft.parse(h))):h.startsWith(kL)?(a.var.push(s),i.push(bL),n.push(h)):(a.number.push(s),i.push(M2),n.push(parseFloat(h))),++s,ok)).split(ok);return{values:n,split:u,indexes:a,types:i}}function wL(e){return rs(e).values}function O2({split:e,types:t}){const n=e.length;return a=>{let i="";for(let s=0;s<n;s++)if(i+=e[s],a[s]!==void 0){const l=t[s];l===M2?i+=wl(a[s]):l===N2?i+=Ft.transform(a[s]):i+=a[s]}return i}}function xL(e){return O2(rs(e))}const PL=e=>typeof e=="number"?0:Ft.test(e)?Ft.getAnimatableNone(e):e,SL=(e,t)=>typeof e=="number"?t?.trim().endsWith("/")?e:0:PL(e);function CL(e){const t=rs(e);return O2(t)(t.values.map((a,i)=>SL(a,t.split[i])))}const Ea={test:vL,parse:wL,createTransformer:xL,getAnimatableNone:CL};function Zf(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function TL({hue:e,saturation:t,lightness:n,alpha:a}){e/=360,t/=100,n/=100;let i=0,s=0,l=0;if(!t)i=s=l=n;else{const u=n<.5?n*(1+t):n+t-n*t,h=2*n-u;i=Zf(h,u,e+1/3),s=Zf(h,u,e),l=Zf(h,u,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(l*255),alpha:a}}function gd(e,t){return n=>n>0?t:e}const yt=(e,t,n)=>e+(t-e)*n,Xf=(e,t,n)=>{const a=e*e,i=n*(t*t-a)+a;return i<0?0:Math.sqrt(i)},EL=[Zp,Ui,Wo],AL=e=>EL.find(t=>t.test(e));function sk(e){const t=AL(e);if(!t)return!1;let n=t.parse(e);return t===Wo&&(n=TL(n)),n}const lk=(e,t)=>{const n=sk(e),a=sk(t);if(!n||!a)return gd(e,t);const i={...n};return s=>(i.red=Xf(n.red,a.red,s),i.green=Xf(n.green,a.green,s),i.blue=Xf(n.blue,a.blue,s),i.alpha=yt(n.alpha,a.alpha,s),Ui.transform(i))},Xp=new Set(["none","hidden"]);function RL(e,t){return Xp.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function LL(e,t){return n=>yt(e,t,n)}function Tg(e){return typeof e=="number"?LL:typeof e=="string"?Pg(e)?gd:Ft.test(e)?lk:ML:Array.isArray(e)?j2:typeof e=="object"?Ft.test(e)?lk:DL:gd}function j2(e,t){const n=[...e],a=n.length,i=e.map((s,l)=>Tg(s)(s,t[l]));return s=>{for(let l=0;l<a;l++)n[l]=i[l](s);return n}}function DL(e,t){const n={...e,...t},a={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(a[i]=Tg(e[i])(e[i],t[i]));return i=>{for(const s in a)n[s]=a[s](i);return n}}function IL(e,t){const n=[],a={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const s=t.types[i],l=e.indexes[s][a[s]],u=e.values[l]??0;n[i]=u,a[s]++}return n}const ML=(e,t)=>{const n=Ea.createTransformer(t),a=rs(e),i=rs(t);return a.indexes.var.length===i.indexes.var.length&&a.indexes.color.length===i.indexes.color.length&&a.indexes.number.length>=i.indexes.number.length?Xp.has(e)&&!i.values.length||Xp.has(t)&&!a.values.length?RL(e,t):Zl(j2(IL(a,i),i.values),n):gd(e,t)};function U2(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?yt(e,t,n):Tg(e)(e,t)}const NL=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>vt.update(t,n),stop:()=>li(t),now:()=>tn.isProcessing?tn.timestamp:bn.now()}},z2=(e,t,n=10)=>{let a="";const i=Math.max(Math.round(t/n),2);for(let s=0;s<i;s++)a+=Math.round(e(s/(i-1))*1e4)/1e4+", ";return`linear(${a.substring(0,a.length-2)})`},yd=2e4;function Eg(e){let t=0;const n=50;let a=e.next(t);for(;!a.done&&t<yd;)t+=n,a=e.next(t);return t>=yd?1/0:t}function OL(e,t=100,n){const a=n({...e,keyframes:[0,t]}),i=Math.min(Eg(a),yd);return{type:"keyframes",ease:s=>a.next(i*s).value/t,duration:aa(i)}}const Mt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Jp(e,t){return e*Math.sqrt(1-t*t)}const jL=12;function UL(e,t,n){let a=n;for(let i=1;i<jL;i++)a=a-e(a)/t(a);return a}const Jf=.001;function zL({duration:e=Mt.duration,bounce:t=Mt.bounce,velocity:n=Mt.velocity,mass:a=Mt.mass}){let i,s,l=1-t;l=tr(Mt.minDamping,Mt.maxDamping,l),e=tr(Mt.minDuration,Mt.maxDuration,aa(e)),l<1?(i=f=>{const p=f*l,g=p*e,v=p-n,_=Jp(f,l),w=Math.exp(-g);return Jf-v/_*w},s=f=>{const g=f*l*e,v=g*n+n,_=Math.pow(l,2)*Math.pow(f,2)*e,w=Math.exp(-g),S=Jp(Math.pow(f,2),l);return(-i(f)+Jf>0?-1:1)*((v-_)*w)/S}):(i=f=>{const p=Math.exp(-f*e),g=(f-n)*e+1;return-Jf+p*g},s=f=>{const p=Math.exp(-f*e),g=(n-f)*(e*e);return p*g});const u=5/e,h=UL(i,s,u);if(e=Wn(e),isNaN(h))return{stiffness:Mt.stiffness,damping:Mt.damping,duration:e};{const f=Math.pow(h,2)*a;return{stiffness:f,damping:l*2*Math.sqrt(a*f),duration:e}}}const BL=["duration","bounce"],FL=["stiffness","damping","mass"];function ck(e,t){return t.some(n=>e[n]!==void 0)}function VL(e){let t={velocity:Mt.velocity,stiffness:Mt.stiffness,damping:Mt.damping,mass:Mt.mass,isResolvedFromDuration:!1,...e};if(!ck(e,FL)&&ck(e,BL))if(t.velocity=0,e.visualDuration){const n=e.visualDuration,a=2*Math.PI/(n*1.2),i=a*a,s=2*tr(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:Mt.mass,stiffness:i,damping:s}}else{const n=zL({...e,velocity:0});t={...t,...n,mass:Mt.mass},t.isResolvedFromDuration=!0}return t}function vd(e=Mt.visualDuration,t=Mt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:a,restDelta:i}=n;const s=n.keyframes[0],l=n.keyframes[n.keyframes.length-1],u={done:!1,value:s},{stiffness:h,damping:f,mass:p,duration:g,velocity:v,isResolvedFromDuration:_}=VL({...n,velocity:-aa(n.velocity||0)}),w=v||0,S=f/(2*Math.sqrt(h*p)),P=l-s,D=aa(Math.sqrt(h/p)),R=Math.abs(P)<5;a||(a=R?Mt.restSpeed.granular:Mt.restSpeed.default),i||(i=R?Mt.restDelta.granular:Mt.restDelta.default);let E,A,U,F,j,C;if(S<1)U=Jp(D,S),F=(w+S*D*P)/U,E=Y=>{const ce=Math.exp(-S*D*Y);return l-ce*(F*Math.sin(U*Y)+P*Math.cos(U*Y))},j=S*D*F+P*U,C=S*D*P-F*U,A=Y=>Math.exp(-S*D*Y)*(j*Math.sin(U*Y)+C*Math.cos(U*Y));else if(S===1){E=ce=>l-Math.exp(-D*ce)*(P+(w+D*P)*ce);const Y=w+D*P;A=ce=>Math.exp(-D*ce)*(D*Y*ce-w)}else{const Y=D*Math.sqrt(S*S-1);E=de=>{const he=Math.exp(-S*D*de),oe=Math.min(Y*de,300);return l-he*((w+S*D*P)*Math.sinh(oe)+Y*P*Math.cosh(oe))/Y};const ce=(w+S*D*P)/Y,re=S*D*ce-P*Y,fe=S*D*P-ce*Y;A=de=>{const he=Math.exp(-S*D*de),oe=Math.min(Y*de,300);return he*(re*Math.sinh(oe)+fe*Math.cosh(oe))}}const K={calculatedDuration:_&&g||null,velocity:Y=>Wn(A(Y)),next:Y=>{if(!_&&S<1){const re=Math.exp(-S*D*Y),fe=Math.sin(U*Y),de=Math.cos(U*Y),he=l-re*(F*fe+P*de),oe=Wn(re*(j*fe+C*de));return u.done=Math.abs(oe)<=a&&Math.abs(l-he)<=i,u.value=u.done?l:he,u}const ce=E(Y);if(_)u.done=Y>=g;else{const re=Wn(A(Y));u.done=Math.abs(re)<=a&&Math.abs(l-ce)<=i}return u.value=u.done?l:ce,u},toString:()=>{const Y=Math.min(Eg(K),yd),ce=z2(re=>K.next(Y*re).value,Y,30);return Y+"ms "+ce},toTransition:()=>{}};return K}vd.applyToOptions=e=>{const t=OL(e,100,vd);return e.ease=t.ease,e.duration=Wn(t.duration),e.type="keyframes",e};const HL=5;function B2(e,t,n){const a=Math.max(t-HL,0);return b2(n-e(a),t-a)}function Qp({keyframes:e,velocity:t=0,power:n=.8,timeConstant:a=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:l,min:u,max:h,restDelta:f=.5,restSpeed:p}){const g=e[0],v={done:!1,value:g},_=C=>u!==void 0&&C<u||h!==void 0&&C>h,w=C=>u===void 0?h:h===void 0||Math.abs(u-C)<Math.abs(h-C)?u:h;let S=n*t;const P=g+S,D=l===void 0?P:l(P);D!==P&&(S=D-g);const R=C=>-S*Math.exp(-C/a),E=C=>D+R(C),A=C=>{const K=R(C),Y=E(C);v.done=Math.abs(K)<=f,v.value=v.done?D:Y};let U,F;const j=C=>{_(v.value)&&(U=C,F=vd({keyframes:[v.value,w(v.value)],velocity:B2(E,C,v.value),damping:i,stiffness:s,restDelta:f,restSpeed:p}))};return j(0),{calculatedDuration:null,next:C=>{let K=!1;return!F&&U===void 0&&(K=!0,A(C),j(C)),U!==void 0&&C>=U?F.next(C-U):(!K&&A(C),v)}}}function $L(e,t,n){const a=[],i=n||si.mix||U2,s=e.length-1;for(let l=0;l<s;l++){let u=i(e[l],e[l+1]);if(t){const h=Array.isArray(t)?t[l]||ia:t;u=Zl(h,u)}a.push(u)}return a}function WL(e,t,{clamp:n=!0,ease:a,mixer:i}={}){const s=e.length;if(kg(s===t.length),s===1)return()=>t[0];if(s===2&&t[0]===t[1])return()=>t[1];const l=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const u=$L(t,a,i),h=u.length,f=p=>{if(l&&p<e[0])return t[0];let g=0;if(h>1)for(;g<e.length-2&&!(p<e[g+1]);g++);const v=Ml(e[g],e[g+1],p);return u[g](v)};return n?p=>f(tr(e[0],e[s-1],p)):f}function GL(e,t){const n=e[e.length-1];for(let a=1;a<=t;a++){const i=Ml(0,t,a);e.push(yt(n,1,i))}}function KL(e){const t=[0];return GL(t,e.length-1),t}function qL(e,t){return e.map(n=>n*t)}function YL(e,t){return e.map(()=>t||E2).splice(0,e.length-1)}function xl({duration:e=300,keyframes:t,times:n,ease:a="easeInOut"}){const i=aL(a)?a.map(ak):ak(a),s={done:!1,value:t[0]},l=qL(n&&n.length===t.length?n:KL(t),e),u=WL(l,t,{ease:Array.isArray(i)?i:YL(t,i)});return{calculatedDuration:e,next:h=>(s.value=u(h),s.done=h>=e,s)}}const ZL=e=>e!==null;function Vd(e,{repeat:t,repeatType:n="loop"},a,i=1){const s=e.filter(ZL),u=i<0||t&&n!=="loop"&&t%2===1?0:s.length-1;return!u||a===void 0?s[u]:a}const XL={decay:Qp,inertia:Qp,tween:xl,keyframes:xl,spring:vd};function F2(e){typeof e.type=="string"&&(e.type=XL[e.type])}class Ag{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const JL=e=>e/100;class bd extends Ag{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==bn.now()&&this.tick(bn.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;F2(t);const{type:n=xl,repeat:a=0,repeatDelay:i=0,repeatType:s,velocity:l=0}=t;let{keyframes:u}=t;const h=n||xl;h!==xl&&typeof u[0]!="number"&&(this.mixKeyframes=Zl(JL,U2(u[0],u[1])),u=[0,100]);const f=h({...t,keyframes:u});s==="mirror"&&(this.mirroredGenerator=h({...t,keyframes:[...u].reverse(),velocity:-l})),f.calculatedDuration===null&&(f.calculatedDuration=Eg(f));const{calculatedDuration:p}=f;this.calculatedDuration=p,this.resolvedDuration=p+i,this.totalDuration=this.resolvedDuration*(a+1)-i,this.generator=f}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:a,totalDuration:i,mixKeyframes:s,mirroredGenerator:l,resolvedDuration:u,calculatedDuration:h}=this;if(this.startTime===null)return a.next(0);const{delay:f=0,keyframes:p,repeat:g,repeatType:v,repeatDelay:_,type:w,onUpdate:S,finalKeyframe:P}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const D=this.currentTime-f*(this.playbackSpeed>=0?1:-1),R=this.playbackSpeed>=0?D<0:D>i;this.currentTime=Math.max(D,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let E=this.currentTime,A=a;if(g){const C=Math.min(this.currentTime,i)/u;let K=Math.floor(C),Y=C%1;!Y&&C>=1&&(Y=1),Y===1&&K--,K=Math.min(K,g+1),K%2&&(v==="reverse"?(Y=1-Y,_&&(Y-=_/u)):v==="mirror"&&(A=l)),E=tr(0,1,Y)*u}let U;R?(this.delayState.value=p[0],U=this.delayState):U=A.next(E),s&&!R&&(U.value=s(U.value));let{done:F}=U;!R&&h!==null&&(F=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const j=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&F);return j&&w!==Qp&&(U.value=Vd(p,this.options,P,this.speed)),S&&S(U.value),j&&this.finish(),U}then(t,n){return this.finished.then(t,n)}get duration(){return aa(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+aa(t)}get time(){return aa(this.currentTime)}set time(t){t=Wn(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){const t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);const n=this.generator.next(t).value;return B2(a=>this.generator.next(a).value,t,n)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;n&&this.driver&&this.updateTime(bn.now()),this.playbackSpeed=t,n&&this.driver&&(this.time=aa(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=NL,startTime:n}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),this.options.onPlay?.();const a=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=a):this.holdTime!==null?this.startTime=a-this.holdTime:this.startTime||(this.startTime=n??a),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(bn.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function QL(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}const zi=e=>e*180/Math.PI,em=e=>{const t=zi(Math.atan2(e[1],e[0]));return tm(t)},e7={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:em,rotateZ:em,skewX:e=>zi(Math.atan(e[1])),skewY:e=>zi(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},tm=e=>(e=e%360,e<0&&(e+=360),e),uk=em,dk=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),hk=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),t7={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:dk,scaleY:hk,scale:e=>(dk(e)+hk(e))/2,rotateX:e=>tm(zi(Math.atan2(e[6],e[5]))),rotateY:e=>tm(zi(Math.atan2(-e[2],e[0]))),rotateZ:uk,rotate:uk,skewX:e=>zi(Math.atan(e[4])),skewY:e=>zi(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function nm(e){return e.includes("scale")?1:0}function am(e,t){if(!e||e==="none")return nm(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let a,i;if(n)a=t7,i=n;else{const u=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);a=e7,i=u}if(!i)return nm(t);const s=a[t],l=i[1].split(",").map(a7);return typeof s=="function"?s(l):l[s]}const n7=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return am(n,t)};function a7(e){return parseFloat(e.trim())}const ms=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],gs=new Set([...ms,"pathRotation"]),fk=e=>e===ps||e===Ce,r7=new Set(["x","y","z"]),i7=ms.filter(e=>!r7.has(e));function o7(e){const t=[];return i7.forEach(n=>{const a=e.getValue(n);a!==void 0&&(t.push([n,a.get()]),a.set(n.startsWith("scale")?1:0))}),t}const ri={width:({x:e},{paddingLeft:t="0",paddingRight:n="0",boxSizing:a})=>{const i=e.max-e.min;return a==="border-box"?i:i-parseFloat(t)-parseFloat(n)},height:({y:e},{paddingTop:t="0",paddingBottom:n="0",boxSizing:a})=>{const i=e.max-e.min;return a==="border-box"?i:i-parseFloat(t)-parseFloat(n)},top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>am(t,"x"),y:(e,{transform:t})=>am(t,"y")};ri.translateX=ri.x;ri.translateY=ri.y;const Hi=new Set;let rm=!1,im=!1,om=!1;function V2(){if(im){const e=Array.from(Hi).filter(a=>a.needsMeasurement),t=new Set(e.map(a=>a.element)),n=new Map;t.forEach(a=>{const i=o7(a);i.length&&(n.set(a,i),a.render())}),e.forEach(a=>a.measureInitialState()),t.forEach(a=>{a.render();const i=n.get(a);i&&i.forEach(([s,l])=>{a.getValue(s)?.set(l)})}),e.forEach(a=>a.measureEndState()),e.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}im=!1,rm=!1,Hi.forEach(e=>e.complete(om)),Hi.clear()}function H2(){Hi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(im=!0)})}function s7(){om=!0,H2(),V2(),om=!1}class Rg{constructor(t,n,a,i,s,l=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=a,this.motionValue=i,this.element=s,this.isAsync=l}scheduleResolve(){this.state="scheduled",this.isAsync?(Hi.add(this),rm||(rm=!0,vt.read(H2),vt.resolveKeyframes(V2))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:a,motionValue:i}=this;if(t[0]===null){const s=i?.get(),l=t[t.length-1];if(s!==void 0)t[0]=s;else if(a&&n){const u=a.readValue(n,l);u!=null&&(t[0]=u)}t[0]===void 0&&(t[0]=l),i&&s===void 0&&i.set(t[0])}QL(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),Hi.delete(this)}cancel(){this.state==="scheduled"&&(Hi.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const l7=e=>e.startsWith("--");function $2(e,t,n){l7(t)?e.style.setProperty(t,n):e.style[t]=n}const c7={};function W2(e,t){const n=v2(e);return()=>c7[t]??n()}const u7=W2(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),G2=W2(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),ml=([e,t,n,a])=>`cubic-bezier(${e}, ${t}, ${n}, ${a})`,pk={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ml([0,.65,.55,1]),circOut:ml([.55,0,1,.45]),backIn:ml([.31,.01,.66,-.59]),backOut:ml([.33,1.53,.69,.99])};function K2(e,t){if(e)return typeof e=="function"?G2()?z2(e,t):"ease-out":A2(e)?ml(e):Array.isArray(e)?e.map(n=>K2(n,t)||pk.easeOut):pk[e]}function d7(e,t,n,{delay:a=0,duration:i=300,repeat:s=0,repeatType:l="loop",ease:u="easeOut",times:h}={},f=void 0){const p={[t]:n};h&&(p.offset=h);const g=K2(u,i);Array.isArray(g)&&(p.easing=g);const v={delay:a,duration:i,easing:Array.isArray(g)?"linear":g,fill:"both",iterations:s+1,direction:l==="reverse"?"alternate":"normal"};return f&&(v.pseudoElement=f),e.animate(p,v)}function q2(e){return typeof e=="function"&&"applyToOptions"in e}function h7({type:e,...t}){return q2(e)&&G2()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class Y2 extends Ag{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:n,name:a,keyframes:i,pseudoElement:s,allowFlatten:l=!1,finalKeyframe:u,onComplete:h}=t;this.isPseudoElement=!!s,this.allowFlatten=l,this.options=t,kg(typeof t.type!="string");const f=h7(t);this.animation=d7(n,a,i,f,s),f.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){const p=Vd(i,this.options,u,this.speed);this.updateMotionValue&&this.updateMotionValue(p),$2(n,a,p),this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return aa(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+aa(t)}get time(){return aa(Number(this.animation.currentTime)||0)}set time(t){const n=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Wn(t),n&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,rangeStart:n,rangeEnd:a,observe:i}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&u7()?(this.animation.timeline=t,n&&(this.animation.rangeStart=n),a&&(this.animation.rangeEnd=a),ia):i(this)}}const Z2={anticipate:S2,backInOut:P2,circInOut:T2};function f7(e){return e in Z2}function p7(e){typeof e.ease=="string"&&f7(e.ease)&&(e.ease=Z2[e.ease])}const Qf=10;class m7 extends Y2{constructor(t){p7(t),F2(t),super(t),t.startTime!==void 0&&t.autoplay!==!1&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:a,onComplete:i,element:s,...l}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const u=new bd({...l,autoplay:!1}),h=Math.max(Qf,bn.now()-this.startTime),f=tr(0,Qf,h-Qf),p=u.sample(h).value,{name:g}=this.options;s&&g&&$2(s,g,p),n.setWithVelocity(u.sample(Math.max(0,h-f)).value,p,f),u.stop()}}const mk=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Ea.test(e)||e==="0")&&!e.startsWith("url("));function g7(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function y7(e,t,n,a){const i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;const s=e[e.length-1],l=mk(i,t),u=mk(s,t);return!l||!u?!1:g7(e)||(n==="spring"||q2(n))&&a}function sm(e){e.duration=0,e.type="keyframes"}const X2=new Set(["opacity","clipPath","filter","transform"]),v7=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function b7(e){for(let t=0;t<e.length;t++)if(typeof e[t]=="string"&&v7.test(e[t]))return!0;return!1}const k7=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),_7=v2(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function w7(e){const{motionValue:t,name:n,repeatDelay:a,repeatType:i,damping:s,type:l,keyframes:u}=e;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:f,transformTemplate:p}=t.owner.getProps();return _7()&&n&&(X2.has(n)||k7.has(n)&&b7(u))&&(n!=="transform"||!p)&&!f&&!a&&i!=="mirror"&&s!==0&&l!=="inertia"}const x7=40;class P7 extends Ag{constructor({autoplay:t=!0,delay:n=0,type:a="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:l="loop",keyframes:u,name:h,motionValue:f,element:p,...g}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=bn.now();const v={autoplay:t,delay:n,type:a,repeat:i,repeatDelay:s,repeatType:l,name:h,motionValue:f,element:p,...g},_=p?.KeyframeResolver||Rg;this.keyframeResolver=new _(u,(w,S,P)=>this.onKeyframesResolved(w,S,v,!P),h,f,p),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,n,a,i){this.keyframeResolver=void 0;const{name:s,type:l,velocity:u,delay:h,isHandoff:f,onUpdate:p}=a;this.resolvedAt=bn.now();let g=!0;y7(t,s,l,u)||(g=!1,(si.instantAnimations||!h)&&p?.(Vd(t,a,n)),t[0]=t[t.length-1],sm(a),a.repeat=0);const _={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>x7?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...a,keyframes:t},w=g&&!f&&w7(_),S=_.motionValue?.owner?.current;let P;if(w)try{P=new m7({..._,element:S})}catch{P=new bd(_)}else P=new bd(_);P.finished.then(()=>{this.notifyFinished()}).catch(ia),this.pendingTimeline&&(this.stopTimeline=P.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=P}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),s7()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function J2(e,t,n,a=0,i=1){const s=Array.from(e).sort((f,p)=>f.sortNodePosition(p)).indexOf(t),l=e.size,u=(l-1)*a;return typeof n=="function"?n(s,l):i===1?s*a:u-s*a}const gk=30,S7=e=>!isNaN(parseFloat(e)),yk={current:void 0};class C7{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{const i=bn.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const s of this.dependents)s.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=bn.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=S7(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new _g);const a=this.events[t].add(n);return t==="change"?()=>{a(),vt.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,a){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-a}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return yk.current&&yk.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){const t=bn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>gk)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,gk);return b2(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function is(e,t){return new C7(e,t)}function Q2(e,t){if(e?.inherit&&t){const{inherit:n,...a}=e;return{...t,...a}}return e}function Lg(e,t){const n=e?.[t]??e?.default??e;return n!==e?Q2(n,e):n}const T7={type:"spring",stiffness:500,damping:25,restSpeed:10},E7=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),A7={type:"keyframes",duration:.8},R7={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},L7=(e,{keyframes:t})=>t.length>2?A7:gs.has(e)?e.startsWith("scale")?E7(t[1]):T7:R7,D7=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function I7(e){for(const t in e)if(!D7.has(t))return!0;return!1}const Dg=(e,t,n,a={},i,s)=>l=>{const u=Lg(a,e)||{},h=u.delay||a.delay||0;let{elapsed:f=0}=a;f=f-Wn(h);const p={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...u,delay:-f,onUpdate:v=>{t.set(v),u.onUpdate&&u.onUpdate(v)},onComplete:()=>{l(),u.onComplete&&u.onComplete()},name:e,motionValue:t,element:s?void 0:i};I7(u)||Object.assign(p,L7(e,p)),p.duration&&(p.duration=Wn(p.duration)),p.repeatDelay&&(p.repeatDelay=Wn(p.repeatDelay)),p.from!==void 0&&(p.keyframes[0]=p.from);let g=!1;if((p.type===!1||p.duration===0&&!p.repeatDelay)&&(sm(p),p.delay===0&&(g=!0)),(si.instantAnimations||si.skipAnimations||i?.shouldSkipAnimations||u.skipAnimations)&&(g=!0,sm(p),p.delay=0),p.allowFlatten=!u.type&&!u.ease,g&&!s&&t.get()!==void 0){const v=Vd(p.keyframes,u);if(v!==void 0){vt.update(()=>{p.onUpdate(v),p.onComplete()});return}}return u.isSync?new bd(p):new P7(p)},M7=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function N7(e){const t=M7.exec(e);if(!t)return[,];const[,n,a,i]=t;return[`--${n??a}`,i]}function ex(e,t,n=1){const[a,i]=N7(e);if(!a)return;const s=window.getComputedStyle(t).getPropertyValue(a);if(s){const l=s.trim();return m2(l)?parseFloat(l):l}return Pg(i)?ex(i,t,n+1):i}function vk(e){const t=[{},{}];return e?.values.forEach((n,a)=>{t[0][a]=n.get(),t[1][a]=n.getVelocity()}),t}function Ig(e,t,n,a){if(typeof t=="function"){const[i,s]=vk(a);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=vk(a);t=t(n!==void 0?n:e.custom,i,s)}return t}function $i(e,t,n){const a=e.getProps();return Ig(a,t,n!==void 0?n:a.custom,e)}const tx=new Set(["width","height","top","left","right","bottom",...ms]),lm=e=>Array.isArray(e);function O7(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,is(n))}function j7(e){return lm(e)?e[e.length-1]||0:e}function U7(e,t){const n=$i(e,t);let{transitionEnd:a={},transition:i={},...s}=n||{};s={...s,...a};for(const l in s){const u=j7(s[l]);O7(e,l,u)}}const nn=e=>!!(e&&e.getVelocity);function z7(e){return!!(nn(e)&&e.add)}function cm(e,t){const n=e.getValue("willChange");if(z7(n))return n.add(t);if(!n&&si.WillChange){const a=new si.WillChange("auto");e.addValue("willChange",a),a.add(t)}}function Mg(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const B7="framerAppearId",nx="data-"+Mg(B7);function ax(e){return e.props[nx]}function F7({protectedKeys:e,needsAnimating:t},n){const a=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,a}function rx(e,t,{delay:n=0,transitionOverride:a,type:i}={}){let{transition:s,transitionEnd:l,...u}=t;const h=e.getDefaultTransition();s=s?Q2(s,h):h;const f=s?.reduceMotion,p=s?.skipAnimations;a&&(s=a);const g=[],v=i&&e.animationState&&e.animationState.getState()[i],_=s?.path;_&&_.animateVisualElement(e,u,s,n,g);for(const w in u){const S=e.getValue(w,e.latestValues[w]??null),P=u[w];if(P===void 0||v&&F7(v,w))continue;const D={delay:n,...Lg(s||{},w)};p&&(D.skipAnimations=!0);const R=S.get();if(R!==void 0&&!S.isAnimating()&&!Array.isArray(P)&&P===R&&!D.velocity){vt.update(()=>S.set(P));continue}let E=!1;if(window.MotionHandoffAnimation){const F=ax(e);if(F){const j=window.MotionHandoffAnimation(F,w,vt);j!==null&&(D.startTime=j,E=!0)}}cm(e,w);const A=f??e.shouldReduceMotion;S.start(Dg(w,S,P,A&&tx.has(w)?{type:!1}:D,e,E));const U=S.animation;U&&g.push(U)}if(l){const w=()=>vt.update(()=>{l&&U7(e,l)});g.length?Promise.all(g).then(w):w()}return g}function um(e,t,n={}){const a=$i(e,t,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=a||{};n.transitionOverride&&(i=n.transitionOverride);const s=a?()=>Promise.all(rx(e,a,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(h=0)=>{const{delayChildren:f=0,staggerChildren:p,staggerDirection:g}=i;return V7(e,t,h,f,p,g,n)}:()=>Promise.resolve(),{when:u}=i;if(u){const[h,f]=u==="beforeChildren"?[s,l]:[l,s];return h().then(()=>f())}else return Promise.all([s(),l(n.delay)])}function V7(e,t,n=0,a=0,i=0,s=1,l){const u=[];for(const h of e.variantChildren)h.notify("AnimationStart",t),u.push(um(h,t,{...l,delay:n+(typeof a=="function"?0:a)+J2(e.variantChildren,h,a,i,s)}).then(()=>h.notify("AnimationComplete",t)));return Promise.all(u)}function H7(e,t,n={}){e.notify("AnimationStart",t);let a;if(Array.isArray(t)){const i=t.map(s=>um(e,s,n));a=Promise.all(i)}else if(typeof t=="string")a=um(e,t,n);else{const i=typeof t=="function"?$i(e,t,n.custom):t;a=Promise.all(rx(e,i,n))}return a.then(()=>{e.notify("AnimationComplete",t)})}const $7={test:e=>e==="auto",parse:e=>e},ix=e=>t=>t.test(e),ox=[ps,Ce,Ya,kr,gL,mL,$7],bk=e=>ox.find(ix(e));function W7(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||y2(e):!0}const G7=new Set(["brightness","contrast","saturate","opacity"]);function K7(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[a]=n.match(Sg)||[];if(!a)return e;const i=n.replace(a,"");let s=G7.has(t)?1:0;return a!==n&&(s*=100),t+"("+s+i+")"}const q7=/\b([a-z-]*)\(.*?\)/gu,dm={...Ea,getAnimatableNone:e=>{const t=e.match(q7);return t?t.map(K7).join(" "):e}},hm={...Ea,getAnimatableNone:e=>{const t=Ea.parse(e);return Ea.createTransformer(e)(t.map(a=>typeof a=="number"?0:typeof a=="object"?{...a,alpha:1}:a))}},kk={...ps,transform:Math.round},Y7={rotate:kr,pathRotation:kr,rotateX:kr,rotateY:kr,rotateZ:kr,scale:pu,scaleX:pu,scaleY:pu,scaleZ:pu,skew:kr,skewX:kr,skewY:kr,distance:Ce,translateX:Ce,translateY:Ce,translateZ:Ce,x:Ce,y:Ce,z:Ce,perspective:Ce,transformPerspective:Ce,opacity:Nl,originX:ik,originY:ik,originZ:Ce},kd={borderWidth:Ce,borderTopWidth:Ce,borderRightWidth:Ce,borderBottomWidth:Ce,borderLeftWidth:Ce,borderRadius:Ce,borderTopLeftRadius:Ce,borderTopRightRadius:Ce,borderBottomRightRadius:Ce,borderBottomLeftRadius:Ce,width:Ce,maxWidth:Ce,height:Ce,maxHeight:Ce,top:Ce,right:Ce,bottom:Ce,left:Ce,inset:Ce,insetBlock:Ce,insetBlockStart:Ce,insetBlockEnd:Ce,insetInline:Ce,insetInlineStart:Ce,insetInlineEnd:Ce,padding:Ce,paddingTop:Ce,paddingRight:Ce,paddingBottom:Ce,paddingLeft:Ce,paddingBlock:Ce,paddingBlockStart:Ce,paddingBlockEnd:Ce,paddingInline:Ce,paddingInlineStart:Ce,paddingInlineEnd:Ce,margin:Ce,marginTop:Ce,marginRight:Ce,marginBottom:Ce,marginLeft:Ce,marginBlock:Ce,marginBlockStart:Ce,marginBlockEnd:Ce,marginInline:Ce,marginInlineStart:Ce,marginInlineEnd:Ce,fontSize:Ce,backgroundPositionX:Ce,backgroundPositionY:Ce,...Y7,zIndex:kk,fillOpacity:Nl,strokeOpacity:Nl,numOctaves:kk},Z7={...kd,color:Ft,backgroundColor:Ft,outlineColor:Ft,fill:Ft,stroke:Ft,borderColor:Ft,borderTopColor:Ft,borderRightColor:Ft,borderBottomColor:Ft,borderLeftColor:Ft,filter:dm,WebkitFilter:dm,mask:hm,WebkitMask:hm},sx=e=>Z7[e],X7=new Set([dm,hm]);function lx(e,t){let n=sx(e);return X7.has(n)||(n=Ea),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const J7=new Set(["auto","none","0"]);function Q7(e,t,n){let a=0,i;for(;a<e.length&&!i;){const s=e[a];typeof s=="string"&&!J7.has(s)&&rs(s).values.length&&(i=e[a]),a++}if(i&&n)for(const s of t)e[s]=lx(n,i)}class eD extends Rg{constructor(t,n,a,i,s){super(t,n,a,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:a}=this;if(!n||!n.current)return;super.readKeyframes();for(let p=0;p<t.length;p++){let g=t[p];if(typeof g=="string"&&(g=g.trim(),Pg(g))){const v=ex(g,n.current);v!==void 0&&(t[p]=v),p===t.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!tx.has(a)||t.length!==2)return;const[i,s]=t,l=bk(i),u=bk(s),h=rk(i),f=rk(s);if(h!==f&&ri[a]){this.needsMeasurement=!0;return}if(l!==u)if(fk(l)&&fk(u))for(let p=0;p<t.length;p++){const g=t[p];typeof g=="string"&&(t[p]=parseFloat(g))}else ri[a]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,a=[];for(let i=0;i<t.length;i++)(t[i]===null||W7(t[i]))&&a.push(i);a.length&&Q7(t,a,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:a}=this;if(!t||!t.current)return;a==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=ri[a](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const i=n[n.length-1];i!==void 0&&t.getValue(a,i).jump(i,!1)}measureEndState(){const{element:t,name:n,unresolvedKeyframes:a}=this;if(!t||!t.current)return;const i=t.getValue(n);i&&i.jump(this.measuredOrigin,!1);const s=a.length-1,l=a[s];a[s]=ri[n](t.measureViewportBox(),window.getComputedStyle(t.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),this.removedTransforms?.length&&this.removedTransforms.forEach(([u,h])=>{t.getValue(u).set(h)}),this.resolveNoneKeyframes()}}function cx(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let a=document;const i=n?.[e]??a.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(a=>a!=null)}const fm=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function zu(e){return g2(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}const{schedule:Ng}=R2(queueMicrotask,!1),xa={x:!1,y:!1};function ux(){return xa.x||xa.y}function tD(e){return e==="x"||e==="y"?xa[e]?null:(xa[e]=!0,()=>{xa[e]=!1}):xa.x||xa.y?null:(xa.x=xa.y=!0,()=>{xa.x=xa.y=!1})}function dx(e,t){const n=cx(e),a=new AbortController,i={passive:!0,...t,signal:a.signal};return[n,i,()=>a.abort()]}function nD(e){return!(e.pointerType==="touch"||ux())}function aD(e,t,n={}){const[a,i,s]=dx(e,n);return a.forEach(l=>{let u=!1,h=!1,f;const p=()=>{l.removeEventListener("pointerleave",w)},g=P=>{f&&(f(P),f=void 0),p()},v=P=>{u=!1,window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),h&&(h=!1,g(P))},_=()=>{u=!0,window.addEventListener("pointerup",v,i),window.addEventListener("pointercancel",v,i)},w=P=>{if(P.pointerType!=="touch"){if(u){h=!0;return}g(P)}},S=P=>{if(!nD(P))return;h=!1;const D=t(l,P);typeof D=="function"&&(f=D,l.addEventListener("pointerleave",w,i))};l.addEventListener("pointerenter",S,i),l.addEventListener("pointerdown",_,i)}),s}const hx=(e,t)=>t?e===t?!0:hx(e,t.parentElement):!1,Og=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,rD=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function iD(e){return rD.has(e.tagName)||e.isContentEditable===!0}const oD=new Set(["INPUT","SELECT","TEXTAREA"]);function sD(e){return oD.has(e.tagName)||e.isContentEditable===!0}const Bu=new WeakSet;function _k(e){return t=>{t.key==="Enter"&&e(t)}}function ep(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const lD=(e,t)=>{const n=e.currentTarget;if(!n)return;const a=_k(()=>{if(Bu.has(n))return;ep(n,"down");const i=_k(()=>{ep(n,"up")}),s=()=>ep(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",a,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",a),t)};function wk(e){return Og(e)&&!ux()}const xk=new WeakSet;function cD(e,t,n={}){const[a,i,s]=dx(e,n),l=u=>{const h=u.currentTarget;if(!wk(u)||xk.has(u))return;Bu.add(h),n.stopPropagation&&xk.add(u);const f=t(h,u),p=(_,w)=>{window.removeEventListener("pointerup",g),window.removeEventListener("pointercancel",v),Bu.has(h)&&Bu.delete(h),wk(_)&&typeof f=="function"&&f(_,{success:w})},g=_=>{p(_,h===window||h===document||n.useGlobalTarget||hx(h,_.target))},v=_=>{p(_,!1)};window.addEventListener("pointerup",g,i),window.addEventListener("pointercancel",v,i)};return a.forEach(u=>{(n.useGlobalTarget?window:u).addEventListener("pointerdown",l,i),zu(u)&&(u.addEventListener("focus",f=>lD(f,i)),!iD(u)&&!u.hasAttribute("tabindex")&&(u.tabIndex=0))}),s}function jg(e){return g2(e)&&"ownerSVGElement"in e}const Fu=new WeakMap;let Vu;const fx=(e,t,n)=>(a,i)=>i&&i[0]?i[0][e+"Size"]:jg(a)&&"getBBox"in a?a.getBBox()[t]:a[n],uD=fx("inline","width","offsetWidth"),dD=fx("block","height","offsetHeight");function hD({target:e,borderBoxSize:t}){Fu.get(e)?.forEach(n=>{n(e,{get width(){return uD(e,t)},get height(){return dD(e,t)}})})}function fD(e){e.forEach(hD)}function pD(){typeof ResizeObserver>"u"||(Vu=new ResizeObserver(fD))}function mD(e,t){Vu||pD();const n=cx(e);return n.forEach(a=>{let i=Fu.get(a);i||(i=new Set,Fu.set(a,i)),i.add(t),Vu?.observe(a)}),()=>{n.forEach(a=>{const i=Fu.get(a);i?.delete(t),i?.size||Vu?.unobserve(a)})}}const Hu=new Set;let Go;function gD(){Go=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Hu.forEach(t=>t(e))},window.addEventListener("resize",Go)}function yD(e){return Hu.add(e),Go||gD(),()=>{Hu.delete(e),!Hu.size&&typeof Go=="function"&&(window.removeEventListener("resize",Go),Go=void 0)}}function Pk(e,t){return typeof e=="function"?yD(e):mD(e,t)}function vD(e){return jg(e)&&e.tagName==="svg"}const bD=[...ox,Ft,Ea],kD=e=>bD.find(ix(e)),Sk=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ko=()=>({x:Sk(),y:Sk()}),Ck=()=>({min:0,max:0}),Kt=()=>({x:Ck(),y:Ck()}),_D=new WeakMap;function Hd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Ol(e){return typeof e=="string"||Array.isArray(e)}const Ug=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],zg=["initial",...Ug];function $d(e){return Hd(e.animate)||zg.some(t=>Ol(e[t]))}function px(e){return!!($d(e)||e.variants)}function wD(e,t,n){for(const a in t){const i=t[a],s=n[a];if(nn(i))e.addValue(a,i);else if(nn(s))e.addValue(a,is(i,{owner:e}));else if(s!==i)if(e.hasValue(a)){const l=e.getValue(a);l.liveStyle===!0?l.jump(i):l.hasAnimated||l.set(i)}else{const l=e.getStaticValue(a);e.addValue(a,is(l!==void 0?l:i,{owner:e}))}}for(const a in n)t[a]===void 0&&e.removeValue(a);return t}const _d={current:null},Bg={current:!1},xD=typeof window<"u";function mx(){if(Bg.current=!0,!!xD)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>_d.current=e.matches;e.addEventListener("change",t),t()}else _d.current=!1}const Tk=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let wd={};function gx(e){wd=e}function PD(){return wd}class SD{scrapeMotionValuesFromProps(t,n,a){return{}}constructor({parent:t,props:n,presenceContext:a,reducedMotionConfig:i,skipAnimations:s,blockInitialAnimation:l,visualState:u},h={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=Rg,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const _=bn.now();this.renderScheduledAt<_&&(this.renderScheduledAt=_,vt.render(this.render,!1,!0))};const{latestValues:f,renderState:p}=u;this.latestValues=f,this.baseTarget={...f},this.initialValues=n.initial?{...f}:{},this.renderState=p,this.parent=t,this.props=n,this.presenceContext=a,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.skipAnimationsConfig=s,this.options=h,this.blockInitialAnimation=!!l,this.isControllingVariants=$d(n),this.isVariantNode=px(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:g,...v}=this.scrapeMotionValuesFromProps(n,{},this);for(const _ in v){const w=v[_];f[_]!==void 0&&nn(w)&&w.set(f[_])}}mount(t){if(this.hasBeenMounted)for(const n in this.initialValues)this.values.get(n)?.jump(this.initialValues[n]),this.latestValues[n]=this.initialValues[n];this.current=t,_D.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,a)=>this.bindToMotionValue(a,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Bg.current||mx(),this.shouldReduceMotion=_d.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),li(this.notifyUpdate),li(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),n.accelerate&&X2.has(t)&&this.current instanceof HTMLElement){const{factory:l,keyframes:u,times:h,ease:f,duration:p}=n.accelerate,g=new Y2({element:this.current,name:t,keyframes:u,times:h,ease:f,duration:Wn(p)}),v=l(g);this.valueSubscriptions.set(t,()=>{v(),g.cancel()});return}const a=gs.has(t);a&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&vt.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let s;typeof window<"u"&&window.MotionCheckAppearSync&&(s=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s&&s()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in wd){const n=wd[t];if(!n)continue;const{isEnabled:a,Feature:i}=n;if(!this.features[t]&&i&&a(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Kt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let a=0;a<Tk.length;a++){const i=Tk[a];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);const s="on"+i,l=t[s];l&&(this.propEventSubscriptions[i]=this.on(i,l))}this.prevMotionValues=wD(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const a=this.values.get(t);n!==a&&(a&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let a=this.values.get(t);return a===void 0&&n!==void 0&&(a=is(n===null?void 0:n,{owner:this}),this.addValue(t,a)),a}readValue(t,n){let a=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return a!=null&&(typeof a=="string"&&(m2(a)||y2(a))?a=parseFloat(a):!kD(a)&&Ea.test(n)&&(a=lx(t,n)),this.setBaseTarget(t,nn(a)?a.get():a)),nn(a)?a.get():a}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){const{initial:n}=this.props;let a;if(typeof n=="string"||typeof n=="object"){const s=Ig(this.props,n,this.presenceContext?.custom);s&&(a=s[t])}if(n&&a!==void 0)return a;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!nn(i)?i:this.initialValues[t]!==void 0&&a===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new _g),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){Ng.render(this.render)}}class yx extends SD{constructor(){super(...arguments),this.KeyframeResolver=eD}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){const a=t.style;return a?a[n]:void 0}removeValueFromRenderState(t,{vars:n,style:a}){delete n[t],delete a[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;nn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class ui{constructor(t){this.isMounted=!1,this.node=t}update(){}}function vx({top:e,left:t,right:n,bottom:a}){return{x:{min:t,max:n},y:{min:e,max:a}}}function CD({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function TD(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),a=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:a.y,right:a.x}}function tp(e){return e===void 0||e===1}function pm({scale:e,scaleX:t,scaleY:n}){return!tp(e)||!tp(t)||!tp(n)}function Ni(e){return pm(e)||bx(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function bx(e){return Ek(e.x)||Ek(e.y)}function Ek(e){return e&&e!=="0%"}function xd(e,t,n){const a=e-n,i=t*a;return n+i}function Ak(e,t,n,a,i){return i!==void 0&&(e=xd(e,i,a)),xd(e,n,a)+t}function mm(e,t=0,n=1,a,i){e.min=Ak(e.min,t,n,a,i),e.max=Ak(e.max,t,n,a,i)}function kx(e,{x:t,y:n}){mm(e.x,t.translate,t.scale,t.originPoint),mm(e.y,n.translate,n.scale,n.originPoint)}const Rk=.999999999999,Lk=1.0000000000001;function ED(e,t,n,a=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,l;for(let u=0;u<i;u++){s=n[u],l=s.projectionDelta;const{visualElement:h}=s.options;h&&h.props.style&&h.props.style.display==="contents"||(a&&s.options.layoutScroll&&s.scroll&&s!==s.root&&(Wa(e.x,-s.scroll.offset.x),Wa(e.y,-s.scroll.offset.y)),l&&(t.x*=l.x.scale,t.y*=l.y.scale,kx(e,l)),a&&Ni(s.latestValues)&&$u(e,s.latestValues,s.layout?.layoutBox))}t.x<Lk&&t.x>Rk&&(t.x=1),t.y<Lk&&t.y>Rk&&(t.y=1)}function Wa(e,t){e.min+=t,e.max+=t}function Dk(e,t,n,a,i=.5){const s=yt(e.min,e.max,i);mm(e,t,n,s,a)}function Ik(e,t){return typeof e=="string"?parseFloat(e)/100*(t.max-t.min):e}function $u(e,t,n){const a=n??e;Dk(e.x,Ik(t.x,a.x),t.scaleX,t.scale,t.originX),Dk(e.y,Ik(t.y,a.y),t.scaleY,t.scale,t.originY)}function _x(e,t){return vx(TD(e.getBoundingClientRect(),t))}function AD(e,t,n){const a=_x(e,n),{scroll:i}=t;return i&&(Wa(a.x,i.offset.x),Wa(a.y,i.offset.y)),a}const RD={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},LD=ms.length;function DD(e,t,n){let a="",i=!0;for(let l=0;l<LD;l++){const u=ms[l],h=e[u];if(h===void 0)continue;let f=!0;if(typeof h=="number")f=h===(u.startsWith("scale")?1:0);else{const p=parseFloat(h);f=u.startsWith("scale")?p===1:p===0}if(!f||n){const p=fm(h,kd[u]);if(!f){i=!1;const g=RD[u]||u;a+=`${g}(${p}) `}n&&(t[u]=p)}}const s=e.pathRotation;return s&&(i=!1,a+=`rotate(${fm(s,kd.pathRotation)}) `),a=a.trim(),n?a=n(t,i?"":a):i&&(a="none"),a}function Fg(e,t,n){const{style:a,vars:i,transformOrigin:s}=e;let l=!1,u=!1;for(const h in t){const f=t[h];if(gs.has(h)){l=!0;continue}else if(D2(h)){i[h]=f;continue}else{const p=fm(f,kd[h]);h.startsWith("origin")?(u=!0,s[h]=p):a[h]=p}}if(t.transform||(l||n?a.transform=DD(t,e.transform,n):a.transform&&(a.transform="none")),u){const{originX:h="50%",originY:f="50%",originZ:p=0}=s;a.transformOrigin=`${h} ${f} ${p}`}}function wx(e,{style:t,vars:n},a,i){const s=e.style;let l;for(l in t)s[l]=t[l];i?.applyProjectionStyles(s,a);for(l in n)s.setProperty(l,n[l])}function Mk(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const sl={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ce.test(e))e=parseFloat(e);else return e;const n=Mk(e,t.target.x),a=Mk(e,t.target.y);return`${n}% ${a}%`}},ID={correct:(e,{treeScale:t,projectionDelta:n})=>{const a=e,i=Ea.parse(e);if(i.length>5)return a;const s=Ea.createTransformer(e),l=typeof i[0]!="number"?1:0,u=n.x.scale*t.x,h=n.y.scale*t.y;i[0+l]/=u,i[1+l]/=h;const f=yt(u,h,.5);return typeof i[2+l]=="number"&&(i[2+l]/=f),typeof i[3+l]=="number"&&(i[3+l]/=f),s(i)}},gm={borderRadius:{...sl,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:sl,borderTopRightRadius:sl,borderBottomLeftRadius:sl,borderBottomRightRadius:sl,boxShadow:ID};function xx(e,{layout:t,layoutId:n}){return gs.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!gm[e]||e==="opacity")}function Vg(e,t,n){const a=e.style,i=t?.style,s={};if(!a)return s;for(const l in a)(nn(a[l])||i&&nn(i[l])||xx(l,e)||n?.getValue(l)?.liveStyle!==void 0)&&(s[l]=a[l]);return s}function MD(e){return window.getComputedStyle(e)}class ND extends yx{constructor(){super(...arguments),this.type="html",this.renderInstance=wx}readValueFromInstance(t,n){if(gs.has(n))return this.projection?.isProjecting?nm(n):n7(t,n);{const a=MD(t),i=(D2(n)?a.getPropertyValue(n):a[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return _x(t,n)}build(t,n,a){Fg(t,n,a.transformTemplate)}scrapeMotionValuesFromProps(t,n,a){return Vg(t,n,a)}}const OD={offset:"stroke-dashoffset",array:"stroke-dasharray"},jD={offset:"strokeDashoffset",array:"strokeDasharray"};function UD(e,t,n=1,a=0,i=!0){e.pathLength=1;const s=i?OD:jD;e[s.offset]=`${-a}`,e[s.array]=`${t} ${n}`}const zD=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function Px(e,{attrX:t,attrY:n,attrScale:a,pathLength:i,pathSpacing:s=1,pathOffset:l=0,...u},h,f,p){if(Fg(e,u,f),h){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:g,style:v}=e;g.transform&&(v.transform=g.transform,delete g.transform),(v.transform||g.transformOrigin)&&(v.transformOrigin=g.transformOrigin??"50% 50%",delete g.transformOrigin),v.transform&&(v.transformBox=p?.transformBox??"fill-box",delete g.transformBox);for(const _ of zD)g[_]!==void 0&&(v[_]=g[_],delete g[_]);t!==void 0&&(g.x=t),n!==void 0&&(g.y=n),a!==void 0&&(g.scale=a),i!==void 0&&UD(g,i,s,l,!1)}const Sx=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),Cx=e=>typeof e=="string"&&e.toLowerCase()==="svg";function BD(e,t,n,a){wx(e,t,void 0,a);for(const i in t.attrs)e.setAttribute(Sx.has(i)?i:Mg(i),t.attrs[i])}function Tx(e,t,n){const a=Vg(e,t,n);for(const i in e)if(nn(e[i])||nn(t[i])){const s=ms.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;a[s]=e[i]}return a}class FD extends yx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Kt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(gs.has(n)){const a=sx(n);return a&&a.default||0}return n=Sx.has(n)?n:Mg(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,a){return Tx(t,n,a)}build(t,n,a){Px(t,n,this.isSVGTag,a.transformTemplate,a.style)}renderInstance(t,n,a,i){BD(t,n,a,i)}mount(t){this.isSVGTag=Cx(t.tagName),super.mount(t)}}const VD=zg.length;function Ex(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Ex(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<VD;n++){const a=zg[n],i=e.props[a];(Ol(i)||i===!1)&&(t[a]=i)}return t}function Ax(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let a=0;a<n;a++)if(t[a]!==e[a])return!1;return!0}const HD=[...Ug].reverse(),$D=Ug.length;function WD(e){return t=>Promise.all(t.map(({animation:n,options:a})=>H7(e,n,a)))}function GD(e){let t=WD(e),n=Nk(),a=!0,i=!1;const s=f=>(p,g)=>{const v=$i(e,g,f==="exit"?e.presenceContext?.custom:void 0);if(v){const{transition:_,transitionEnd:w,...S}=v;p={...p,...S,...w}}return p};function l(f){t=f(e)}function u(f){const{props:p}=e,g=Ex(e.parent)||{},v=[],_=new Set;let w={},S=1/0;for(let D=0;D<$D;D++){const R=HD[D],E=n[R],A=p[R]!==void 0?p[R]:g[R],U=Ol(A),F=R===f?E.isActive:null;F===!1&&(S=D);let j=A===g[R]&&A!==p[R]&&U;if(j&&(a||i)&&e.manuallyAnimateOnMount&&(j=!1),E.protectedKeys={...w},!E.isActive&&F===null||!A&&!E.prevProp||Hd(A)||typeof A=="boolean")continue;if(R==="exit"&&E.isActive&&F!==!0){E.prevResolvedValues&&(w={...w,...E.prevResolvedValues});continue}const C=KD(E.prevProp,A);let K=C||R===f&&E.isActive&&!j&&U||D>S&&U,Y=!1;const ce=Array.isArray(A)?A:[A];let re=ce.reduce(s(R),{});F===!1&&(re={});const{prevResolvedValues:fe={}}=E,de={...fe,...re},he=Z=>{K=!0,_.has(Z)&&(Y=!0,_.delete(Z)),E.needsAnimating[Z]=!0;const J=e.getValue(Z);J&&(J.liveStyle=!1)};for(const Z in de){const J=re[Z],V=fe[Z];if(w.hasOwnProperty(Z))continue;let M=!1;lm(J)&&lm(V)?M=!Ax(J,V)||C:M=J!==V,M?J!=null?he(Z):_.add(Z):J!==void 0&&_.has(Z)?he(Z):E.protectedKeys[Z]=!0}E.prevProp=A,E.prevResolvedValues=re,E.isActive&&(w={...w,...re}),(a||i)&&e.blockInitialAnimation&&(K=!1);const oe=j&&C;K&&(!oe||Y)&&v.push(...ce.map(Z=>{const J={type:R};if(typeof Z=="string"&&(a||i)&&!oe&&e.manuallyAnimateOnMount&&e.parent){const{parent:V}=e,M=$i(V,Z);if(V.enteringChildren&&M){const{delayChildren:G}=M.transition||{};J.delay=J2(V.enteringChildren,e,G)}}return{animation:Z,options:J}}))}if(_.size){const D={};if(typeof p.initial!="boolean"){const R=$i(e,Array.isArray(p.initial)?p.initial[0]:p.initial);R&&R.transition&&(D.transition=R.transition)}_.forEach(R=>{const E=e.getBaseTarget(R),A=e.getValue(R);A&&(A.liveStyle=!0),D[R]=E??null}),v.push({animation:D})}let P=!!v.length;return a&&(p.initial===!1||p.initial===p.animate)&&!e.manuallyAnimateOnMount&&(P=!1),a=!1,i=!1,P?t(v):Promise.resolve()}function h(f,p){if(n[f].isActive===p)return Promise.resolve();e.variantChildren?.forEach(v=>v.animationState?.setActive(f,p)),n[f].isActive=p;const g=u(f);for(const v in n)n[v].protectedKeys={};return g}return{animateChanges:u,setActive:h,setAnimateFunction:l,getState:()=>n,reset:()=>{n=Nk(),i=!0}}}function KD(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Ax(t,e):!1}function Ri(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Nk(){return{animate:Ri(!0),whileInView:Ri(),whileHover:Ri(),whileTap:Ri(),whileDrag:Ri(),whileFocus:Ri(),exit:Ri()}}function ym(e,t){e.min=t.min,e.max=t.max}function ka(e,t){ym(e.x,t.x),ym(e.y,t.y)}function Ok(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const Rx=1e-4,qD=1-Rx,YD=1+Rx,Lx=.01,ZD=0-Lx,XD=0+Lx;function kn(e){return e.max-e.min}function JD(e,t,n){return Math.abs(e-t)<=n}function jk(e,t,n,a=.5){e.origin=a,e.originPoint=yt(t.min,t.max,e.origin),e.scale=kn(n)/kn(t),e.translate=yt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=qD&&e.scale<=YD||isNaN(e.scale))&&(e.scale=1),(e.translate>=ZD&&e.translate<=XD||isNaN(e.translate))&&(e.translate=0)}function Pl(e,t,n,a){jk(e.x,t.x,n.x,a?a.originX:void 0),jk(e.y,t.y,n.y,a?a.originY:void 0)}function Uk(e,t,n,a=0){const i=a?yt(n.min,n.max,a):n.min;e.min=i+t.min,e.max=e.min+kn(t)}function QD(e,t,n,a){Uk(e.x,t.x,n.x,a?.x),Uk(e.y,t.y,n.y,a?.y)}function zk(e,t,n,a=0){const i=a?yt(n.min,n.max,a):n.min;e.min=t.min-i,e.max=e.min+kn(t)}function Pd(e,t,n,a){zk(e.x,t.x,n.x,a?.x),zk(e.y,t.y,n.y,a?.y)}function Bk(e,t,n,a,i){return e-=t,e=xd(e,1/n,a),i!==void 0&&(e=xd(e,1/i,a)),e}function eI(e,t=0,n=1,a=.5,i,s=e,l=e){if(Ya.test(t)&&(t=parseFloat(t),t=yt(l.min,l.max,t/100)-l.min),typeof t!="number")return;let u=yt(s.min,s.max,a);e===s&&(u-=t),e.min=Bk(e.min,t,n,u,i),e.max=Bk(e.max,t,n,u,i)}function Fk(e,t,[n,a,i],s,l){eI(e,t[n],t[a],t[i],t.scale,s,l)}const tI=["x","scaleX","originX"],nI=["y","scaleY","originY"];function Vk(e,t,n,a){Fk(e.x,t,tI,n?n.x:void 0,a?a.x:void 0),Fk(e.y,t,nI,n?n.y:void 0,a?a.y:void 0)}function Hk(e){return e.translate===0&&e.scale===1}function Dx(e){return Hk(e.x)&&Hk(e.y)}function $k(e,t){return e.min===t.min&&e.max===t.max}function aI(e,t){return $k(e.x,t.x)&&$k(e.y,t.y)}function Wk(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ix(e,t){return Wk(e.x,t.x)&&Wk(e.y,t.y)}function Gk(e){return kn(e.x)/kn(e.y)}function Kk(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function $a(e){return[e("x"),e("y")]}function rI(e,t,n){let a="";const i=e.x.translate/t.x,s=e.y.translate/t.y,l=n?.z||0;if((i||s||l)&&(a=`translate3d(${i}px, ${s}px, ${l}px) `),(t.x!==1||t.y!==1)&&(a+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:f,rotate:p,pathRotation:g,rotateX:v,rotateY:_,skewX:w,skewY:S}=n;f&&(a=`perspective(${f}px) ${a}`),p&&(a+=`rotate(${p}deg) `),g&&(a+=`rotate(${g}deg) `),v&&(a+=`rotateX(${v}deg) `),_&&(a+=`rotateY(${_}deg) `),w&&(a+=`skewX(${w}deg) `),S&&(a+=`skewY(${S}deg) `)}const u=e.x.scale*t.x,h=e.y.scale*t.y;return(u!==1||h!==1)&&(a+=`scale(${u}, ${h})`),a||"none"}const Mx=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],iI=Mx.length,qk=e=>typeof e=="string"?parseFloat(e):e,Yk=e=>typeof e=="number"||Ce.test(e);function oI(e,t,n,a,i,s){i?(e.opacity=yt(0,n.opacity??1,sI(a)),e.opacityExit=yt(t.opacity??1,0,lI(a))):s&&(e.opacity=yt(t.opacity??1,n.opacity??1,a));for(let l=0;l<iI;l++){const u=Mx[l];let h=Zk(t,u),f=Zk(n,u);if(h===void 0&&f===void 0)continue;h||(h=0),f||(f=0),h===0||f===0||Yk(h)===Yk(f)?(e[u]=Math.max(yt(qk(h),qk(f),a),0),(Ya.test(f)||Ya.test(h))&&(e[u]+="%")):e[u]=f}(t.rotate||n.rotate)&&(e.rotate=yt(t.rotate||0,n.rotate||0,a))}function Zk(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const sI=Nx(0,.5,C2),lI=Nx(.5,.95,ia);function Nx(e,t,n){return a=>a<e?0:a>t?1:n(Ml(e,t,a))}function cI(e,t,n){const a=nn(e)?e:is(e);return a.start(Dg("",a,t,n)),a.animation}function jl(e,t,n,a={passive:!0}){return e.addEventListener(t,n,a),()=>e.removeEventListener(t,n)}const uI=(e,t)=>e.depth-t.depth;class dI{constructor(){this.children=[],this.isDirty=!1}add(t){bg(this.children,t),this.isDirty=!0}remove(t){md(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(uI),this.isDirty=!1,this.children.forEach(t)}}function hI(e,t){const n=bn.now(),a=({timestamp:i})=>{const s=i-n;s>=t&&(li(a),e(s-t))};return vt.setup(a,!0),()=>li(a)}function Wu(e){return nn(e)?e.get():e}class fI{constructor(){this.members=[]}add(t){bg(this.members,t);for(let n=this.members.length-1;n>=0;n--){const a=this.members[n];if(a===t||a===this.lead||a===this.prevLead)continue;const i=a.instance;(!i||i.isConnected===!1)&&!a.snapshot&&(md(this.members,a),a.unmount())}t.scheduleRender()}remove(t){if(md(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){for(let n=this.members.indexOf(t)-1;n>=0;n--){const a=this.members[n];if(a.isPresent!==!1&&a.instance?.isConnected!==!1)return this.promote(a),!0}return!1}promote(t,n){const a=this.lead;if(t!==a&&(this.prevLead=a,this.lead=t,t.show(),a)){a.updateSnapshot(),t.scheduleRender();const{layoutDependency:i}=a.options,{layoutDependency:s}=t.options;(i===void 0||i!==s)&&(t.resumeFrom=a,n&&(a.preserveOpacity=!0),a.snapshot&&(t.snapshot=a.snapshot,t.snapshot.latestValues=a.animationValues||a.latestValues),t.root?.isUpdating&&(t.isLayoutDirty=!0)),t.options.crossfade===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(t=>{t.options.onExitComplete?.(),t.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const Gu={hasAnimatedSinceResize:!0,hasEverUpdated:!1},np=["","X","Y","Z"],pI=1e3;let mI=0;function ap(e,t,n,a){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),a&&(a[e]=0))}function Ox(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ax(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",vt,!(i||s))}const{parent:a}=e;a&&!a.hasCheckedOptimisedAppear&&Ox(a)}function jx({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:a,resetTransform:i}){return class{constructor(l={},u=t?.()){this.id=mI++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(vI),this.nodes.forEach(PI),this.nodes.forEach(SI),this.nodes.forEach(bI)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=l,this.root=u?u.root||u:this,this.path=u?[...u.path,u]:[],this.parent=u,this.depth=u?u.depth+1:0;for(let h=0;h<this.path.length;h++)this.path[h].shouldResetTransform=!0;this.root===this&&(this.nodes=new dI)}addEventListener(l,u){return this.eventHandlers.has(l)||this.eventHandlers.set(l,new _g),this.eventHandlers.get(l).add(u)}notifyListeners(l,...u){const h=this.eventHandlers.get(l);h&&h.notify(...u)}hasListeners(l){return this.eventHandlers.has(l)}mount(l){if(this.instance)return;this.isSVG=jg(l)&&!vD(l),this.instance=l;const{layoutId:u,layout:h,visualElement:f}=this.options;if(f&&!f.current&&f.mount(l),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(h||u)&&(this.isLayoutDirty=!0),e){let p,g=0;const v=()=>this.root.updateBlockedByResize=!1;vt.read(()=>{g=window.innerWidth}),e(l,()=>{const _=window.innerWidth;_!==g&&(g=_,this.root.updateBlockedByResize=!0,p&&p(),p=hI(v,250),Gu.hasAnimatedSinceResize&&(Gu.hasAnimatedSinceResize=!1,this.nodes.forEach(Qk)))})}u&&this.root.registerSharedNode(u,this),this.options.animate!==!1&&f&&(u||h)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:g,hasRelativeLayoutChanged:v,layout:_})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=this.options.transition||f.getDefaultTransition()||RI,{onLayoutAnimationStart:S,onLayoutAnimationComplete:P}=f.getProps(),D=!this.targetLayout||!Ix(this.targetLayout,_),R=!g&&v;if(this.options.layoutRoot||this.resumeFrom||R||g&&(D||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const E={...Lg(w,"layout"),onPlay:S,onComplete:P};(f.shouldReduceMotion||this.options.layoutRoot)&&(E.delay=0,E.type=!1),this.startAnimation(E),this.setAnimationOrigin(p,R,E.path)}else g||Qk(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=_})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const l=this.getStack();l&&l.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),li(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(CI),this.animationId++)}getTransformTemplate(){const{visualElement:l}=this.options;return l&&l.getProps().transformTemplate}willUpdate(l=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Ox(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let p=0;p<this.path.length;p++){const g=this.path[p];g.shouldResetTransform=!0,(typeof g.latestValues.x=="string"||typeof g.latestValues.y=="string")&&(g.isLayoutDirty=!0),g.updateScroll("snapshot"),g.options.layoutRoot&&g.willUpdate(!1)}const{layoutId:u,layout:h}=this.options;if(u===void 0&&!h)return;const f=this.getTransformTemplate();this.prevTransformTemplateValue=f?f(this.latestValues,""):void 0,this.updateSnapshot(),l&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const h=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),h&&this.nodes.forEach(_I),this.nodes.forEach(Xk);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Jk);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(wI),this.nodes.forEach(xI),this.nodes.forEach(gI),this.nodes.forEach(yI)):this.nodes.forEach(Jk),this.clearAllSnapshots();const u=bn.now();tn.delta=tr(0,1e3/60,u-tn.timestamp),tn.timestamp=u,tn.isProcessing=!0,qf.update.process(tn),qf.preRender.process(tn),qf.render.process(tn),tn.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Ng.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(kI),this.sharedNodes.forEach(TI)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,vt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){vt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!kn(this.snapshot.measuredBox.x)&&!kn(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h<this.path.length;h++)this.path[h].updateScroll();const l=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Kt()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:u}=this.options;u&&u.notify("LayoutMeasure",this.layout.layoutBox,l?l.layoutBox:void 0)}updateScroll(l="measure"){let u=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===l&&(u=!1),u&&this.instance){const h=a(this.instance);this.scroll={animationId:this.root.animationId,phase:l,isRoot:h,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:h}}}resetTransform(){if(!i)return;const l=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,u=this.projectionDelta&&!Dx(this.projectionDelta),h=this.getTransformTemplate(),f=h?h(this.latestValues,""):void 0,p=f!==this.prevTransformTemplateValue;l&&this.instance&&(u||Ni(this.latestValues)||p)&&(i(this.instance,f),this.shouldResetTransform=!1,this.scheduleRender())}measure(l=!0){const u=this.measurePageBox();let h=this.removeElementScroll(u);return l&&(h=this.removeTransform(h)),LI(h),{animationId:this.root.animationId,measuredBox:u,layoutBox:h,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:l}=this.options;if(!l)return Kt();const u=l.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(DI))){const{scroll:f}=this.root;f&&(Wa(u.x,f.offset.x),Wa(u.y,f.offset.y))}return u}removeElementScroll(l){const u=Kt();if(ka(u,l),this.scroll?.wasRoot)return u;for(let h=0;h<this.path.length;h++){const f=this.path[h],{scroll:p,options:g}=f;f!==this.root&&p&&g.layoutScroll&&(p.wasRoot&&ka(u,l),Wa(u.x,p.offset.x),Wa(u.y,p.offset.y))}return u}applyTransform(l,u=!1,h){const f=h||Kt();ka(f,l);for(let p=0;p<this.path.length;p++){const g=this.path[p];!u&&g.options.layoutScroll&&g.scroll&&g!==g.root&&(Wa(f.x,-g.scroll.offset.x),Wa(f.y,-g.scroll.offset.y)),Ni(g.latestValues)&&$u(f,g.latestValues,g.layout?.layoutBox)}return Ni(this.latestValues)&&$u(f,this.latestValues,this.layout?.layoutBox),f}removeTransform(l){const u=Kt();ka(u,l);for(let h=0;h<this.path.length;h++){const f=this.path[h];if(!Ni(f.latestValues))continue;let p;f.instance&&(pm(f.latestValues)&&f.updateSnapshot(),p=Kt(),ka(p,f.measurePageBox())),Vk(u,f.latestValues,f.snapshot?.layoutBox,p)}return Ni(this.latestValues)&&Vk(u,this.latestValues),u}setTargetDelta(l){this.targetDelta=l,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(l){this.options={...this.options,...l,crossfade:l.crossfade!==void 0?l.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==tn.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(l=!1){const u=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=u.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=u.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=u.isSharedProjectionDirty);const h=!!this.resumingFrom||this!==u;if(!(l||h&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:p,layoutId:g}=this.options;if(!this.layout||!(p||g))return;this.resolvedRelativeTargetAt=tn.timestamp;const v=this.getClosestProjectingParent();v&&this.linkedParentVersion!==v.layoutVersion&&!v.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&v&&v.layout?this.createRelativeTarget(v,this.layout.layoutBox,v.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Kt(),this.targetWithTransforms=Kt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),QD(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):ka(this.target,this.layout.layoutBox),kx(this.target,this.targetDelta)):ka(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&v&&!!v.resumingFrom==!!this.resumingFrom&&!v.options.layoutScroll&&v.target&&this.animationProgress!==1?this.createRelativeTarget(v,this.target,v.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||pm(this.parent.latestValues)||bx(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(l,u,h){this.relativeParent=l,this.linkedParentVersion=l.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Kt(),this.relativeTargetOrigin=Kt(),Pd(this.relativeTargetOrigin,u,h,this.options.layoutAnchor||void 0),ka(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const l=this.getLead(),u=!!this.resumingFrom||this!==l;let h=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(h=!1),u&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(h=!1),this.resolvedRelativeTargetAt===tn.timestamp&&(h=!1),h)return;const{layout:f,layoutId:p}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(f||p))return;ka(this.layoutCorrected,this.layout.layoutBox);const g=this.treeScale.x,v=this.treeScale.y;ED(this.layoutCorrected,this.treeScale,this.path,u),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=Kt());const{target:_}=l;if(!_){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Ok(this.prevProjectionDelta.x,this.projectionDelta.x),Ok(this.prevProjectionDelta.y,this.projectionDelta.y)),Pl(this.projectionDelta,this.layoutCorrected,_,this.latestValues),(this.treeScale.x!==g||this.treeScale.y!==v||!Kk(this.projectionDelta.x,this.prevProjectionDelta.x)||!Kk(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",_))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(l=!0){if(this.options.visualElement?.scheduleRender(),l){const u=this.getStack();u&&u.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Ko(),this.projectionDelta=Ko(),this.projectionDeltaWithTransform=Ko()}setAnimationOrigin(l,u=!1,h){const f=this.snapshot,p=f?f.latestValues:{},g={...this.latestValues},v=Ko();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!u;const _=Kt(),w=f?f.source:void 0,S=this.layout?this.layout.source:void 0,P=w!==S,D=this.getStack(),R=!D||D.members.length<=1,E=!!(P&&!R&&this.options.crossfade===!0&&!this.path.some(AI));this.animationProgress=0;let A;const U=h?.interpolateProjection(l);this.mixTargetDelta=F=>{const j=F/1e3,C=U?.(j);C?(v.x.translate=C.x,v.x.scale=yt(l.x.scale,1,j),v.x.origin=l.x.origin,v.x.originPoint=l.x.originPoint,v.y.translate=C.y,v.y.scale=yt(l.y.scale,1,j),v.y.origin=l.y.origin,v.y.originPoint=l.y.originPoint):(e_(v.x,l.x,j),e_(v.y,l.y,j)),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Pd(_,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),EI(this.relativeTarget,this.relativeTargetOrigin,_,j),A&&aI(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=Kt()),ka(A,this.relativeTarget)),P&&(this.animationValues=g,oI(g,p,this.latestValues,j,E,R)),C&&C.rotate!==void 0&&(this.animationValues||(this.animationValues=g),this.animationValues.pathRotation=C.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=j},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(l){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(li(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=vt.update(()=>{Gu.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=is(0)),this.motionValue.jump(0,!1),this.currentAnimation=cI(this.motionValue,[0,1e3],{...l,velocity:0,isSync:!0,onUpdate:u=>{this.mixTargetDelta(u),l.onUpdate&&l.onUpdate(u)},onStop:()=>{},onComplete:()=>{l.onComplete&&l.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const l=this.getStack();l&&l.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(pI),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const l=this.getLead();let{targetWithTransforms:u,target:h,layout:f,latestValues:p}=l;if(!(!u||!h||!f)){if(this!==l&&this.layout&&f&&Ux(this.options.animationType,this.layout.layoutBox,f.layoutBox)){h=this.target||Kt();const g=kn(this.layout.layoutBox.x);h.x.min=l.target.x.min,h.x.max=h.x.min+g;const v=kn(this.layout.layoutBox.y);h.y.min=l.target.y.min,h.y.max=h.y.min+v}ka(u,h),$u(u,p),Pl(this.projectionDeltaWithTransform,this.layoutCorrected,u,p)}}registerSharedNode(l,u){this.sharedNodes.has(l)||this.sharedNodes.set(l,new fI),this.sharedNodes.get(l).add(u);const f=u.options.initialPromotionConfig;u.promote({transition:f?f.transition:void 0,preserveFollowOpacity:f&&f.shouldPreserveFollowOpacity?f.shouldPreserveFollowOpacity(u):void 0})}isLead(){const l=this.getStack();return l?l.lead===this:!0}getLead(){const{layoutId:l}=this.options;return l?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:l}=this.options;return l?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:l}=this.options;if(l)return this.root.sharedNodes.get(l)}promote({needsReset:l,transition:u,preserveFollowOpacity:h}={}){const f=this.getStack();f&&f.promote(this,h),l&&(this.projectionDelta=void 0,this.needsReset=!0),u&&this.setOptions({transition:u})}relegate(){const l=this.getStack();return l?l.relegate(this):!1}resetSkewAndRotation(){const{visualElement:l}=this.options;if(!l)return;let u=!1;const{latestValues:h}=l;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(u=!0),!u)return;const f={};h.z&&ap("z",l,f,this.animationValues);for(let p=0;p<np.length;p++)ap(`rotate${np[p]}`,l,f,this.animationValues),ap(`skew${np[p]}`,l,f,this.animationValues);l.render();for(const p in f)l.setStaticValue(p,f[p]),this.animationValues&&(this.animationValues[p]=f[p]);l.scheduleRender()}applyProjectionStyles(l,u){if(!this.instance||this.isSVG)return;if(!this.isVisible){l.visibility="hidden";return}const h=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,l.visibility="",l.opacity="",l.pointerEvents=Wu(u?.pointerEvents)||"",l.transform=h?h(this.latestValues,""):"none";return}const f=this.getLead();if(!this.projectionDelta||!this.layout||!f.target){this.options.layoutId&&(l.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,l.pointerEvents=Wu(u?.pointerEvents)||""),this.hasProjected&&!Ni(this.latestValues)&&(l.transform=h?h({},""):"none",this.hasProjected=!1);return}l.visibility="";const p=f.animationValues||f.latestValues;this.applyTransformsToTarget();let g=rI(this.projectionDeltaWithTransform,this.treeScale,p);h&&(g=h(p,g)),l.transform=g;const{x:v,y:_}=this.projectionDelta;l.transformOrigin=`${v.origin*100}% ${_.origin*100}% 0`,f.animationValues?l.opacity=f===this?p.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:p.opacityExit:l.opacity=f===this?p.opacity!==void 0?p.opacity:"":p.opacityExit!==void 0?p.opacityExit:0;for(const w in gm){if(p[w]===void 0)continue;const{correct:S,applyTo:P,isCSSVariable:D}=gm[w],R=g==="none"?p[w]:S(p[w],f);if(P){const E=P.length;for(let A=0;A<E;A++)l[P[A]]=R}else D?this.options.visualElement.renderState.vars[w]=R:l[w]=R}this.options.layoutId&&(l.pointerEvents=f===this?Wu(u?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(l=>l.currentAnimation?.stop()),this.root.nodes.forEach(Xk),this.root.sharedNodes.clear()}}}function gI(e){e.updateLayout()}function yI(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:a}=e.layout,{animationType:i}=e.options,s=t.source!==e.layout.source;if(i==="size")$a(p=>{const g=s?t.measuredBox[p]:t.layoutBox[p],v=kn(g);g.min=n[p].min,g.max=g.min+v});else if(i==="x"||i==="y"){const p=i==="x"?"y":"x";ym(s?t.measuredBox[p]:t.layoutBox[p],n[p])}else Ux(i,t.layoutBox,n)&&$a(p=>{const g=s?t.measuredBox[p]:t.layoutBox[p],v=kn(n[p]);g.max=g.min+v,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+v)});const l=Ko();Pl(l,n,t.layoutBox);const u=Ko();s?Pl(u,e.applyTransform(a,!0),t.measuredBox):Pl(u,n,t.layoutBox);const h=!Dx(l);let f=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:g,layout:v}=p;if(g&&v){const _=e.options.layoutAnchor||void 0,w=Kt();Pd(w,t.layoutBox,g.layoutBox,_);const S=Kt();Pd(S,n,v.layoutBox,_),Ix(w,S)||(f=!0),p.options.layoutRoot&&(e.relativeTarget=S,e.relativeTargetOrigin=w,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:t,delta:u,layoutDelta:l,hasLayoutChanged:h,hasRelativeLayoutChanged:f})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function vI(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function bI(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function kI(e){e.clearSnapshot()}function Xk(e){e.clearMeasurements()}function _I(e){e.isLayoutDirty=!0,e.updateLayout()}function Jk(e){e.isLayoutDirty=!1}function wI(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function xI(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Qk(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function PI(e){e.resolveTargetDelta()}function SI(e){e.calcProjection()}function CI(e){e.resetSkewAndRotation()}function TI(e){e.removeLeadSnapshot()}function e_(e,t,n){e.translate=yt(t.translate,0,n),e.scale=yt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function t_(e,t,n,a){e.min=yt(t.min,n.min,a),e.max=yt(t.max,n.max,a)}function EI(e,t,n,a){t_(e.x,t.x,n.x,a),t_(e.y,t.y,n.y,a)}function AI(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const RI={duration:.45,ease:[.4,0,.1,1]},n_=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),a_=n_("applewebkit/")&&!n_("chrome/")?Math.round:ia;function r_(e){e.min=a_(e.min),e.max=a_(e.max)}function LI(e){r_(e.x),r_(e.y)}function Ux(e,t,n){return e==="position"||e==="preserve-aspect"&&!JD(Gk(t),Gk(n),.2)}function DI(e){return e!==e.root&&e.scroll?.wasRoot}const II=jx({attachResizeListener:(e,t)=>jl(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),rp={current:void 0},zx=jx({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!rp.current){const e=new II({});e.mount(window),e.setOptions({layoutScroll:!0}),rp.current=e}return rp.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Hg=b.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function i_(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function MI(...e){return t=>{let n=!1;const a=e.map(i=>{const s=i_(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i<a.length;i++){const s=a[i];typeof s=="function"?s():i_(e[i],null)}}}}function NI(...e){return b.useCallback(MI(...e),e)}class OI extends b.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(zu(n)&&t.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const a=n.offsetParent,i=zu(a)&&a.offsetWidth||0,s=zu(a)&&a.offsetHeight||0,l=getComputedStyle(n),u=this.props.sizeRef.current;u.height=parseFloat(l.height),u.width=parseFloat(l.width),u.top=n.offsetTop,u.left=n.offsetLeft,u.right=i-u.width-u.left,u.bottom=s-u.height-u.top,u.direction=l.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function jI({children:e,isPresent:t,anchorX:n,anchorY:a,root:i,pop:s}){const l=b.useId(),u=b.useRef(null),h=b.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:f}=b.useContext(Hg),p=e.props?.ref??e?.ref,g=NI(u,p);return b.useInsertionEffect(()=>{const{width:v,height:_,top:w,left:S,right:P,bottom:D,direction:R}=h.current;if(t||s===!1||!u.current||!v||!_)return;const E=R==="rtl",A=n==="left"?E?`right: ${P}`:`left: ${S}`:E?`left: ${S}`:`right: ${P}`,U=a==="bottom"?`bottom: ${D}`:`top: ${w}`;u.current.dataset.motionPopId=l;const F=document.createElement("style");f&&(F.nonce=f);const j=i??document.head;return j.appendChild(F),F.sheet&&F.sheet.insertRule(`
992
- [data-motion-pop-id="${l}"] {
993
- position: absolute !important;
994
- width: ${v}px !important;
995
- height: ${_}px !important;
996
- ${A}px !important;
997
- ${U}px !important;
998
- }
999
- `),()=>{u.current?.removeAttribute("data-motion-pop-id"),j.contains(F)&&j.removeChild(F)}},[t]),T.jsx(OI,{isPresent:t,childRef:u,sizeRef:h,pop:s,children:s===!1?e:b.cloneElement(e,{ref:g})})}const UI=({children:e,initial:t,isPresent:n,onExitComplete:a,custom:i,presenceAffectsLayout:s,mode:l,anchorX:u,anchorY:h,root:f})=>{const p=vg(zI),g=b.useId();let v=!0,_=b.useMemo(()=>(v=!1,{id:g,initial:t,isPresent:n,custom:i,onExitComplete:w=>{p.set(w,!0);for(const S of p.values())if(!S)return;a&&a()},register:w=>(p.set(w,!1),()=>p.delete(w))}),[n,p,a]);return s&&v&&(_={..._}),b.useMemo(()=>{p.forEach((w,S)=>p.set(S,!1))},[n]),b.useEffect(()=>{!n&&!p.size&&a&&a()},[n]),e=T.jsx(jI,{pop:l==="popLayout",isPresent:n,anchorX:u,anchorY:h,root:f,children:e}),T.jsx(Fd.Provider,{value:_,children:e})};function zI(){return new Map}function Bx(e=!0){const t=b.useContext(Fd);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:a,register:i}=t,s=b.useId();b.useEffect(()=>{if(e)return i(s)},[e]);const l=b.useCallback(()=>e&&a&&a(s),[s,a,e]);return!n&&a?[!1,l]:[!0]}const mu=e=>e.key||"";function o_(e){const t=[];return b.Children.forEach(e,n=>{b.isValidElement(n)&&t.push(n)}),t}const Fx=({children:e,custom:t,initial:n=!0,onExitComplete:a,presenceAffectsLayout:i=!0,mode:s="sync",propagate:l=!1,anchorX:u="left",anchorY:h="top",root:f})=>{const[p,g]=Bx(l),v=b.useMemo(()=>o_(e),[e]),_=l&&!p?[]:v.map(mu),w=b.useRef(!0),S=b.useRef(v),P=vg(()=>new Map),D=b.useRef(new Set),[R,E]=b.useState(v),[A,U]=b.useState(v);p2(()=>{w.current=!1,S.current=v;for(let C=0;C<A.length;C++){const K=mu(A[C]);_.includes(K)?(P.delete(K),D.current.delete(K)):P.get(K)!==!0&&P.set(K,!1)}},[A,_.length,_.join("-")]);const F=[];if(v!==R){let C=[...v];for(let K=0;K<A.length;K++){const Y=A[K],ce=mu(Y);_.includes(ce)||(C.splice(K,0,Y),F.push(Y))}return s==="wait"&&F.length&&(C=F),U(o_(C)),E(v),null}const{forceRender:j}=b.useContext(yg);return T.jsx(T.Fragment,{children:A.map(C=>{const K=mu(C),Y=l&&!p?!1:v===A||_.includes(K),ce=()=>{if(D.current.has(K))return;if(P.has(K))D.current.add(K),P.set(K,!0);else return;let re=!0;P.forEach(fe=>{fe||(re=!1)}),re&&(j?.(),U(S.current),l&&g?.(),a&&a())};return T.jsx(UI,{isPresent:Y,initial:!w.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:s,root:f,onExitComplete:Y?void 0:ce,anchorX:u,anchorY:h,children:C},K)})})},Vx=b.createContext({strict:!1}),s_={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let l_=!1;function BI(){if(l_)return;const e={};for(const t in s_)e[t]={isEnabled:n=>s_[t].some(a=>!!n[a])};gx(e),l_=!0}function Hx(){return BI(),PD()}function FI(e){const t=Hx();for(const n in e)t[n]={...t[n],...e[n]};gx(t)}const VI=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Sd(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||VI.has(e)}let $x=e=>!Sd(e);function HI(e){typeof e=="function"&&($x=t=>t.startsWith("on")?!Sd(t):e(t))}try{HI(require("@emotion/is-prop-valid").default)}catch{}function $I(e,t,n){const a={};for(const i in e)i==="values"&&typeof e.values=="object"||nn(e[i])||($x(i)||n===!0&&Sd(i)||!t&&!Sd(i)||e.draggable&&i.startsWith("onDrag"))&&(a[i]=e[i]);return a}const Wd=b.createContext({});function WI(e,t){if($d(e)){const{initial:n,animate:a}=e;return{initial:n===!1||Ol(n)?n:void 0,animate:Ol(a)?a:void 0}}return e.inherit!==!1?t:{}}function GI(e){const{initial:t,animate:n}=WI(e,b.useContext(Wd));return b.useMemo(()=>({initial:t,animate:n}),[c_(t),c_(n)])}function c_(e){return Array.isArray(e)?e.join(" "):e}const $g=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Wx(e,t,n){for(const a in t)!nn(t[a])&&!xx(a,n)&&(e[a]=t[a])}function KI({transformTemplate:e},t){return b.useMemo(()=>{const n=$g();return Fg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function qI(e,t){const n=e.style||{},a={};return Wx(a,n,e),Object.assign(a,KI(e,t)),a}function YI(e,t){const n={},a=qI(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=a,n}const Gx=()=>({...$g(),attrs:{}});function ZI(e,t,n,a){const i=b.useMemo(()=>{const s=Gx();return Px(s,t,Cx(a),e.transformTemplate,e.style),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};Wx(s,e.style,e),i.style={...s,...i.style}}return i}const XI=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Wg(e){return typeof e!="string"||e.includes("-")?!1:!!(XI.indexOf(e)>-1||/[A-Z]/u.test(e))}function JI(e,t,n,{latestValues:a},i,s=!1,l){const h=(l??Wg(e)?ZI:YI)(t,a,i,e),f=$I(t,typeof e=="string",s),p=e!==b.Fragment?{...f,...h,ref:n}:{},{children:g}=t,v=b.useMemo(()=>nn(g)?g.get():g,[g]);return b.createElement(e,{...p,children:v})}function QI({scrapeMotionValuesFromProps:e,createRenderState:t},n,a,i){return{latestValues:eM(n,a,i,e),renderState:t()}}function eM(e,t,n,a){const i={},s=a(e,{});for(const v in s)i[v]=Wu(s[v]);let{initial:l,animate:u}=e;const h=$d(e),f=px(e);t&&f&&!h&&e.inherit!==!1&&(l===void 0&&(l=t.initial),u===void 0&&(u=t.animate));let p=n?n.initial===!1:!1;p=p||l===!1;const g=p?u:l;if(g&&typeof g!="boolean"&&!Hd(g)){const v=Array.isArray(g)?g:[g];for(let _=0;_<v.length;_++){const w=Ig(e,v[_]);if(w){const{transitionEnd:S,transition:P,...D}=w;for(const R in D){let E=D[R];if(Array.isArray(E)){const A=p?E.length-1:0;E=E[A]}E!==null&&(i[R]=E)}for(const R in S)i[R]=S[R]}}}return i}const Kx=e=>(t,n)=>{const a=b.useContext(Wd),i=b.useContext(Fd),s=()=>QI(e,t,a,i);return n?s():vg(s)},tM=Kx({scrapeMotionValuesFromProps:Vg,createRenderState:$g}),nM=Kx({scrapeMotionValuesFromProps:Tx,createRenderState:Gx}),aM=Symbol.for("motionComponentSymbol");function rM(e,t,n){const a=b.useRef(n);b.useInsertionEffect(()=>{a.current=n});const i=b.useRef(null);return b.useCallback(s=>{s&&e.onMount?.(s),t&&(s?t.mount(s):t.unmount());const l=a.current;if(typeof l=="function")if(s){const u=l(s);typeof u=="function"&&(i.current=u)}else i.current?(i.current(),i.current=null):l(s);else l&&(l.current=s)},[t])}const qx=b.createContext({});function Vo(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function iM(e,t,n,a,i,s){const{visualElement:l}=b.useContext(Wd),u=b.useContext(Vx),h=b.useContext(Fd),f=b.useContext(Hg),p=f.reducedMotion,g=f.skipAnimations,v=b.useRef(null),_=b.useRef(!1);a=a||u.renderer,!v.current&&a&&(v.current=a(e,{visualState:t,parent:l,props:n,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:p,skipAnimations:g,isSVG:s}),_.current&&v.current&&(v.current.manuallyAnimateOnMount=!0));const w=v.current,S=b.useContext(qx);w&&!w.projection&&i&&(w.type==="html"||w.type==="svg")&&oM(v.current,n,i,S);const P=b.useRef(!1);b.useInsertionEffect(()=>{w&&P.current&&w.update(n,h)});const D=n[nx],R=b.useRef(!!D&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(D)&&window.MotionHasOptimisedAnimation?.(D));return p2(()=>{_.current=!0,w&&(P.current=!0,window.MotionIsMounted=!0,w.updateFeatures(),w.scheduleRenderMicrotask(),R.current&&w.animationState&&w.animationState.animateChanges())}),b.useEffect(()=>{w&&(!R.current&&w.animationState&&w.animationState.animateChanges(),R.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(D)}),R.current=!1),w.enteringChildren=void 0)}),w}function oM(e,t,n,a){const{layoutId:i,layout:s,drag:l,dragConstraints:u,layoutScroll:h,layoutRoot:f,layoutAnchor:p,layoutCrossfade:g}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Yx(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!l||u&&Vo(u),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:a,crossfade:g,layoutScroll:h,layoutRoot:f,layoutAnchor:p})}function Yx(e){if(e)return e.options.allowProjection!==!1?e.projection:Yx(e.parent)}function ip(e,{forwardMotionProps:t=!1,type:n}={},a,i){a&&FI(a);const s=n?n==="svg":Wg(e),l=s?nM:tM;function u(f,p){let g;const v={...b.useContext(Hg),...f,layoutId:sM(f)},{isStatic:_}=v,w=GI(f),S=l(f,_);if(!_&&typeof window<"u"){lM();const P=cM(v);g=P.MeasureLayout,w.visualElement=iM(e,S,v,i,P.ProjectionNode,s)}return T.jsxs(Wd.Provider,{value:w,children:[g&&w.visualElement?T.jsx(g,{visualElement:w.visualElement,...v}):null,JI(e,f,rM(S,w.visualElement,p),S,_,t,s)]})}u.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const h=b.forwardRef(u);return h[aM]=e,h}function sM({layoutId:e}){const t=b.useContext(yg).id;return t&&e!==void 0?t+"-"+e:e}function lM(e,t){b.useContext(Vx).strict}function cM(e){const t=Hx(),{drag:n,layout:a}=t;if(!n&&!a)return{};const i={...n,...a};return{MeasureLayout:n?.isEnabled(e)||a?.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function uM(e,t){if(typeof Proxy>"u")return ip;const n=new Map,a=(s,l)=>ip(s,l,e,t),i=(s,l)=>a(s,l);return new Proxy(i,{get:(s,l)=>l==="create"?a:(n.has(l)||n.set(l,ip(l,void 0,e,t)),n.get(l))})}const dM=(e,t)=>t.isSVG??Wg(e)?new FD(t):new ND(t,{allowProjection:e!==b.Fragment});class hM extends ui{constructor(t){super(t),t.animationState||(t.animationState=GD(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Hd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let fM=0;class pM extends ui{constructor(){super(...arguments),this.id=fM++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===a)return;if(t&&a===!1){if(this.isExitComplete){const{initial:s,custom:l}=this.node.getProps();if(typeof s=="string"||typeof s=="object"&&s!==null&&!Array.isArray(s)){const u=$i(this.node,s,l);if(u){const{transition:h,transitionEnd:f,...p}=u;for(const g in p)this.node.getValue(g)?.jump(p[g])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const mM={animation:{Feature:hM},exit:{Feature:pM}};function Ql(e){return{point:{x:e.pageX,y:e.pageY}}}const gM=e=>t=>Og(t)&&e(t,Ql(t));function Sl(e,t,n,a){return jl(e,t,gM(n),a)}const Zx=({current:e})=>e?e.ownerDocument.defaultView:null,u_=(e,t)=>Math.abs(e-t);function yM(e,t){const n=u_(e.x,t.x),a=u_(e.y,t.y);return Math.sqrt(n**2+a**2)}const d_=new Set(["auto","scroll"]);class Xx{constructor(t,n,{transformPagePoint:a,contextWindow:i=window,dragSnapToOrigin:s=!1,distanceThreshold:l=3,element:u}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=_=>{this.handleScroll(_.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=gu(this.lastRawMoveEventInfo,this.transformPagePoint));const _=op(this.lastMoveEventInfo,this.history),w=this.startEvent!==null,S=yM(_.offset,{x:0,y:0})>=this.distanceThreshold;if(!w&&!S)return;const{point:P}=_,{timestamp:D}=tn;this.history.push({...P,timestamp:D});const{onStart:R,onMove:E}=this.handlers;w||(R&&R(this.lastMoveEvent,_),this.startEvent=this.lastMoveEvent),E&&E(this.lastMoveEvent,_)},this.handlePointerMove=(_,w)=>{this.lastMoveEvent=_,this.lastRawMoveEventInfo=w,this.lastMoveEventInfo=gu(w,this.transformPagePoint),vt.update(this.updatePoint,!0)},this.handlePointerUp=(_,w)=>{this.end();const{onEnd:S,onSessionEnd:P,resumeAnimation:D}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&D&&D(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const R=op(_.type==="pointercancel"?this.lastMoveEventInfo:gu(w,this.transformPagePoint),this.history);this.startEvent&&S&&S(_,R),P&&P(_,R)},!Og(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=a,this.distanceThreshold=l,this.contextWindow=i||window;const h=Ql(t),f=gu(h,this.transformPagePoint),{point:p}=f,{timestamp:g}=tn;this.history=[{...p,timestamp:g}];const{onSessionStart:v}=n;v&&v(t,op(f,this.history)),this.removeListeners=Zl(Sl(this.contextWindow,"pointermove",this.handlePointerMove),Sl(this.contextWindow,"pointerup",this.handlePointerUp),Sl(this.contextWindow,"pointercancel",this.handlePointerUp)),u&&this.startScrollTracking(u)}startScrollTracking(t){let n=t.parentElement;for(;n;){const a=getComputedStyle(n);(d_.has(a.overflowX)||d_.has(a.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const a=t===window,i=a?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},s={x:i.x-n.x,y:i.y-n.y};s.x===0&&s.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=s.x,this.lastMoveEventInfo.point.y+=s.y):this.history.length>0&&(this.history[0].x-=s.x,this.history[0].y-=s.y),this.scrollPositions.set(t,i),vt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),li(this.updatePoint)}}function gu(e,t){return t?{point:t(e.point)}:e}function h_(e,t){return{x:e.x-t.x,y:e.y-t.y}}function op({point:e},t){return{point:e,delta:h_(e,Jx(t)),offset:h_(e,vM(t)),velocity:bM(t,.1)}}function vM(e){return e[0]}function Jx(e){return e[e.length-1]}function bM(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,a=null;const i=Jx(e);for(;n>=0&&(a=e[n],!(i.timestamp-a.timestamp>Wn(t)));)n--;if(!a)return{x:0,y:0};a===e[0]&&e.length>2&&i.timestamp-a.timestamp>Wn(t)*2&&(a=e[1]);const s=aa(i.timestamp-a.timestamp);if(s===0)return{x:0,y:0};const l={x:(i.x-a.x)/s,y:(i.y-a.y)/s};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function kM(e,{min:t,max:n},a){return t!==void 0&&e<t?e=a?yt(t,e,a.min):Math.max(e,t):n!==void 0&&e>n&&(e=a?yt(n,e,a.max):Math.min(e,n)),e}function f_(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function _M(e,{top:t,left:n,bottom:a,right:i}){return{x:f_(e.x,n,i),y:f_(e.y,t,a)}}function p_(e,t){let n=t.min-e.min,a=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,a]=[a,n]),{min:n,max:a}}function wM(e,t){return{x:p_(e.x,t.x),y:p_(e.y,t.y)}}function xM(e,t){let n=.5;const a=kn(e),i=kn(t);return i>a?n=Ml(t.min,t.max-a,e.min):a>i&&(n=Ml(e.min,e.max-i,t.min)),tr(0,1,n)}function PM(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const vm=.35;function SM(e=vm){return e===!1?e=0:e===!0&&(e=vm),{x:m_(e,"left","right"),y:m_(e,"top","bottom")}}function m_(e,t,n){return{min:g_(e,t),max:g_(e,n)}}function g_(e,t){return typeof e=="number"?e:e[t]||0}const CM=new WeakMap;class TM{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Kt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:a}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const s=g=>{n&&this.snapToCursor(Ql(g).point),this.stopAnimation()},l=(g,v)=>{const{drag:_,dragPropagation:w,onDragStart:S}=this.getProps();if(_&&!w&&(this.openDragLock&&this.openDragLock(),this.openDragLock=tD(_),!this.openDragLock))return;this.latestPointerEvent=g,this.latestPanInfo=v,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),$a(D=>{let R=this.getAxisMotionValue(D).get()||0;if(Ya.test(R)){const{projection:E}=this.visualElement;if(E&&E.layout){const A=E.layout.layoutBox[D];A&&(R=kn(A)*(parseFloat(R)/100))}}this.originPoint[D]=R}),S&&vt.update(()=>S(g,v),!1,!0),cm(this.visualElement,"transform");const{animationState:P}=this.visualElement;P&&P.setActive("whileDrag",!0)},u=(g,v)=>{this.latestPointerEvent=g,this.latestPanInfo=v;const{dragPropagation:_,dragDirectionLock:w,onDirectionLock:S,onDrag:P}=this.getProps();if(!_&&!this.openDragLock)return;const{offset:D}=v;if(w&&this.currentDirection===null){this.currentDirection=AM(D),this.currentDirection!==null&&S&&S(this.currentDirection);return}this.updateAxis("x",v.point,D),this.updateAxis("y",v.point,D),this.visualElement.render(),P&&vt.update(()=>P(g,v),!1,!0)},h=(g,v)=>{this.latestPointerEvent=g,this.latestPanInfo=v,this.stop(g,v),this.latestPointerEvent=null,this.latestPanInfo=null},f=()=>{const{dragSnapToOrigin:g}=this.getProps();(g||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:p}=this.getProps();this.panSession=new Xx(t,{onSessionStart:s,onStart:l,onMove:u,onSessionEnd:h,resumeAnimation:f},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:p,distanceThreshold:a,contextWindow:Zx(this.visualElement),element:this.visualElement.current})}stop(t,n){const a=t||this.latestPointerEvent,i=n||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!i||!a)return;const{velocity:l}=i;this.startAnimation(l);const{onDragEnd:u}=this.getProps();u&&vt.postRender(()=>u(a,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,a){const{drag:i}=this.getProps();if(!a||!yu(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let l=this.originPoint[t]+a[t];this.constraints&&this.constraints[t]&&(l=kM(l,this.constraints[t],this.elastic[t])),s.set(l)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;t&&Vo(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&a?this.constraints=_M(a.layoutBox,t):this.constraints=!1,this.elastic=SM(n),i!==this.constraints&&!Vo(t)&&a&&this.constraints&&!this.hasMutatedConstraints&&$a(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=PM(a.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Vo(t))return!1;const a=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;i.root&&(i.root.scroll=void 0,i.root.updateScroll());const s=AD(a,i.root,this.visualElement.getTransformPagePoint());let l=wM(i.layout.layoutBox,s);if(n){const u=n(CD(l));this.hasMutatedConstraints=!!u,u&&(l=vx(u))}return l}startAnimation(t){const{drag:n,dragMomentum:a,dragElastic:i,dragTransition:s,dragSnapToOrigin:l,onDragTransitionEnd:u}=this.getProps(),h=this.constraints||{},f=$a(p=>{if(!yu(p,n,this.currentDirection))return;let g=h&&h[p]||{};(l===!0||l===p)&&(g={min:0,max:0});const v=i?200:1e6,_=i?40:1e7,w={type:"inertia",velocity:a?t[p]:0,bounceStiffness:v,bounceDamping:_,timeConstant:750,restDelta:1,restSpeed:10,...s,...g};return this.startAxisValueAnimation(p,w)});return Promise.all(f).then(u)}startAxisValueAnimation(t,n){const a=this.getAxisMotionValue(t);return cm(this.visualElement,t),a.start(Dg(t,a,0,n,this.visualElement,!1))}stopAnimation(){$a(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,i=this.visualElement.getProps()[n];return i||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){$a(n=>{const{drag:a}=this.getProps();if(!yu(n,a,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:l,max:u}=i.layout.layoutBox[n],h=s.get()||0;s.set(t[n]-yt(l,u,.5)+h)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:a}=this.visualElement;if(!Vo(n)||!a||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};$a(l=>{const u=this.getAxisMotionValue(l);if(u&&this.constraints!==!1){const h=u.get();i[l]=xM({min:h,max:h},this.constraints[l])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),$a(l=>{if(!yu(l,t,null))return;const u=this.getAxisMotionValue(l),{min:h,max:f}=this.constraints[l];u.set(yt(h,f,i[l]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;CM.set(this.visualElement,this);const t=this.visualElement.current,n=Sl(t,"pointerdown",f=>{const{drag:p,dragListener:g=!0}=this.getProps(),v=f.target,_=v!==t&&sD(v);p&&g&&!_&&this.start(f)});let a;const i=()=>{const{dragConstraints:f}=this.getProps();Vo(f)&&f.current&&(this.constraints=this.resolveRefConstraints(),a||(a=EM(t,f.current,()=>this.scalePositionWithinConstraints())))},{projection:s}=this.visualElement,l=s.addEventListener("measure",i);s&&!s.layout&&(s.root&&s.root.updateScroll(),s.updateLayout()),vt.read(i);const u=jl(window,"resize",()=>this.scalePositionWithinConstraints()),h=s.addEventListener("didUpdate",(({delta:f,hasLayoutChanged:p})=>{this.isDragging&&p&&($a(g=>{const v=this.getAxisMotionValue(g);v&&(this.originPoint[g]+=f[g].translate,v.set(v.get()+f[g].translate))}),this.visualElement.render())}));return()=>{u(),n(),l(),h&&h(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:a=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:l=vm,dragMomentum:u=!0}=t;return{...t,drag:n,dragDirectionLock:a,dragPropagation:i,dragConstraints:s,dragElastic:l,dragMomentum:u}}}function y_(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function EM(e,t,n){const a=Pk(e,y_(n)),i=Pk(t,y_(n));return()=>{a(),i()}}function yu(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function AM(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class RM extends ui{constructor(t){super(t),this.removeGroupControls=ia,this.removeListeners=ia,this.controls=new TM(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ia}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const sp=e=>(t,n)=>{e&&vt.update(()=>e(t,n),!1,!0)};class LM extends ui{constructor(){super(...arguments),this.removePointerDownListener=ia}onPointerDown(t){this.session=new Xx(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Zx(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:a,onPanEnd:i}=this.node.getProps();return{onSessionStart:sp(t),onStart:sp(n),onMove:sp(a),onEnd:(s,l)=>{delete this.session,i&&vt.postRender(()=>i(s,l))}}}mount(){this.removePointerDownListener=Sl(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let lp=!1;class DM extends b.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a,layoutId:i}=this.props,{projection:s}=t;s&&(n.group&&n.group.add(s),a&&a.register&&i&&a.register(s),lp&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Gu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:a,drag:i,isPresent:s}=this.props,{projection:l}=a;return l&&(l.isPresent=s,t.layoutDependency!==n&&l.setOptions({...l.options,layoutDependency:n}),lp=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==s?l.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?l.promote():l.relegate()||vt.postRender(()=>{const u=l.getStack();(!u||!u.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:a}=t;a&&(a.options.layoutAnchor=n,a.root.didUpdate(),Ng.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a}=this.props,{projection:i}=t;lp=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),a&&a.deregister&&a.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Qx(e){const[t,n]=Bx(),a=b.useContext(yg);return T.jsx(DM,{...e,layoutGroup:a,switchLayoutGroup:b.useContext(qx),isPresent:t,safeToRemove:n})}const IM={pan:{Feature:LM},drag:{Feature:RM,ProjectionNode:zx,MeasureLayout:Qx}};function v_(e,t,n){const{props:a}=e;e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=a[i];s&&vt.postRender(()=>s(t,Ql(t)))}class MM extends ui{mount(){const{current:t}=this.node;t&&(this.unmount=aD(t,(n,a)=>(v_(this.node,a,"Start"),i=>v_(this.node,i,"End"))))}unmount(){}}class NM extends ui{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Zl(jl(this.node.current,"focus",()=>this.onFocus()),jl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function b_(e,t,n){const{props:a}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&a.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=a[i];s&&vt.postRender(()=>s(t,Ql(t)))}class OM extends ui{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:a}=this.node.props;this.unmount=cD(t,(i,s)=>(b_(this.node,s,"Start"),(l,{success:u})=>b_(this.node,l,u?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:a?.tap===!1})}unmount(){}}const bm=new WeakMap,cp=new WeakMap,jM=e=>{const t=bm.get(e.target);t&&t(e)},UM=e=>{e.forEach(jM)};function zM({root:e,...t}){const n=e||document;cp.has(n)||cp.set(n,{});const a=cp.get(n),i=JSON.stringify(t);return a[i]||(a[i]=new IntersectionObserver(UM,{root:e,...t})),a[i]}function BM(e,t,n){const a=zM(t);return bm.set(e,n),a.observe(e),()=>{bm.delete(e),a.unobserve(e)}}const FM={some:0,all:1};class VM extends ui{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:t={}}=this.node.getProps(),{root:n,margin:a,amount:i="some",once:s}=t,l={root:n?n.current:void 0,rootMargin:a,threshold:typeof i=="number"?i:FM[i]},u=h=>{const{isIntersecting:f}=h;if(this.isInView===f||(this.isInView=f,s&&!f&&this.hasEnteredView))return;f&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",f);const{onViewportEnter:p,onViewportLeave:g}=this.node.getProps(),v=f?p:g;v&&v(h)};this.stopObserver=BM(this.node.current,l,u)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(HM(t,n))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function HM({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const $M={inView:{Feature:VM},tap:{Feature:OM},focus:{Feature:NM},hover:{Feature:MM}},WM={layout:{ProjectionNode:zx,MeasureLayout:Qx}},GM={...mM,...$M,...IM,...WM},Cl=uM(GM,dM);function KM(){!Bg.current&&mx();const[e]=b.useState(_d.current);return e}function eP(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=eP(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function qM(){for(var e,t,n=0,a="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=eP(e))&&(a&&(a+=" "),a+=t);return a}const YM=(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},ZM=(e,t)=>({classGroupId:e,validator:t}),tP=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Cd="-",k_=[],XM="arbitrary..",JM=e=>{const t=e9(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return QM(l);const u=l.split(Cd),h=u[0]===""&&u.length>1?1:0;return nP(u,h,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const h=a[l],f=n[l];return h?f?YM(f,h):h:f||k_}return n[l]||k_}}},nP=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const i=e[t],s=n.nextPart.get(i);if(s){const f=nP(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(Cd):e.slice(t).join(Cd),h=l.length;for(let f=0;f<h;f++){const p=l[f];if(p.validator(u))return p.classGroupId}},QM=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?XM+a:void 0})(),e9=e=>{const{theme:t,classGroups:n}=e;return t9(n,t)},t9=(e,t)=>{const n=tP();for(const a in e){const i=e[a];Gg(i,n,a,t)}return n},Gg=(e,t,n,a)=>{const i=e.length;for(let s=0;s<i;s++){const l=e[s];n9(l,t,n,a)}},n9=(e,t,n,a)=>{if(typeof e=="string"){a9(e,t,n);return}if(typeof e=="function"){r9(e,t,n,a);return}i9(e,t,n,a)},a9=(e,t,n)=>{const a=e===""?t:aP(t,e);a.classGroupId=n},r9=(e,t,n,a)=>{if(o9(e)){Gg(e(a),t,n,a);return}t.validators===null&&(t.validators=[]),t.validators.push(ZM(n,e))},i9=(e,t,n,a)=>{const i=Object.entries(e),s=i.length;for(let l=0;l<s;l++){const[u,h]=i[l];Gg(h,aP(t,u),n,a)}},aP=(e,t)=>{let n=e;const a=t.split(Cd),i=a.length;for(let s=0;s<i;s++){const l=a[s];let u=n.nextPart.get(l);u||(u=tP(),n.nextPart.set(l,u)),n=u}return n},o9=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,s9=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),a=Object.create(null);const i=(s,l)=>{n[s]=l,t++,t>e&&(t=0,a=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=a[s])!==void 0)return i(s,l),l},set(s,l){s in n?n[s]=l:i(s,l)}}},km="!",__=":",l9=[],w_=(e,t,n,a,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:a,isExternal:i}),c9=e=>{const{prefix:t,experimentalParseClassName:n}=e;let a=i=>{const s=[];let l=0,u=0,h=0,f;const p=i.length;for(let S=0;S<p;S++){const P=i[S];if(l===0&&u===0){if(P===__){s.push(i.slice(h,S)),h=S+1;continue}if(P==="/"){f=S;continue}}P==="["?l++:P==="]"?l--:P==="("?u++:P===")"&&u--}const g=s.length===0?i:i.slice(h);let v=g,_=!1;g.endsWith(km)?(v=g.slice(0,-1),_=!0):g.startsWith(km)&&(v=g.slice(1),_=!0);const w=f&&f>h?f-h:void 0;return w_(s,_,v,w)};if(t){const i=t+__,s=a;a=l=>l.startsWith(i)?s(l.slice(i.length)):w_(l9,!1,l,void 0,!0)}if(n){const i=a;a=s=>n({className:s,parseClassName:i})}return a},u9=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,a)=>{t.set(n,1e6+a)}),n=>{const a=[];let i=[];for(let s=0;s<n.length;s++){const l=n[s],u=l[0]==="[",h=t.has(l);u||h?(i.length>0&&(i.sort(),a.push(...i),i=[]),a.push(l)):i.push(l)}return i.length>0&&(i.sort(),a.push(...i)),a}},d9=e=>({cache:s9(e.cacheSize),parseClassName:c9(e),sortModifiers:u9(e),postfixLookupClassGroupIds:h9(e),...JM(e)}),h9=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},f9=/\s+/,p9=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:i,sortModifiers:s,postfixLookupClassGroupIds:l}=t,u=[],h=e.trim().split(f9);let f="";for(let p=h.length-1;p>=0;p-=1){const g=h[p],{isExternal:v,modifiers:_,hasImportantModifier:w,baseClassName:S,maybePostfixModifierPosition:P}=n(g);if(v){f=g+(f.length>0?" "+f:f);continue}let D=!!P,R;if(D){const j=S.substring(0,P);R=a(j);const C=R&&l[R]?a(S):void 0;C&&C!==R&&(R=C,D=!1)}else R=a(S);if(!R){if(!D){f=g+(f.length>0?" "+f:f);continue}if(R=a(S),!R){f=g+(f.length>0?" "+f:f);continue}D=!1}const E=_.length===0?"":_.length===1?_[0]:s(_).join(":"),A=w?E+km:E,U=A+R;if(u.indexOf(U)>-1)continue;u.push(U);const F=i(R,D);for(let j=0;j<F.length;++j){const C=F[j];u.push(A+C)}f=g+(f.length>0?" "+f:f)}return f},m9=(...e)=>{let t=0,n,a,i="";for(;t<e.length;)(n=e[t++])&&(a=rP(n))&&(i&&(i+=" "),i+=a);return i},rP=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;a++)e[a]&&(t=rP(e[a]))&&(n&&(n+=" "),n+=t);return n},g9=(e,...t)=>{let n,a,i,s;const l=h=>{const f=t.reduce((p,g)=>g(p),e());return n=d9(f),a=n.cache.get,i=n.cache.set,s=u,u(h)},u=h=>{const f=a(h);if(f)return f;const p=p9(h,n);return i(h,p),p};return s=l,(...h)=>s(m9(...h))},y9=[],Gt=e=>{const t=n=>n[e]||y9;return t.isThemeGetter=!0,t},iP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,oP=/^\((?:(\w[\w-]*):)?(.+)\)$/i,v9=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,b9=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,k9=/\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$/,_9=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,w9=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,x9=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Xr=e=>v9.test(e),Je=e=>!!e&&!Number.isNaN(Number(e)),Ba=e=>!!e&&Number.isInteger(Number(e)),up=e=>e.endsWith("%")&&Je(e.slice(0,-1)),vr=e=>b9.test(e),sP=()=>!0,P9=e=>k9.test(e)&&!_9.test(e),Kg=()=>!1,S9=e=>w9.test(e),C9=e=>x9.test(e),T9=e=>!_e(e)&&!xe(e),E9=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)),A9=e=>di(e,uP,Kg),_e=e=>iP.test(e),Li=e=>di(e,dP,P9),x_=e=>di(e,j9,Je),R9=e=>di(e,fP,sP),L9=e=>di(e,hP,Kg),P_=e=>di(e,lP,Kg),D9=e=>di(e,cP,C9),vu=e=>di(e,pP,S9),xe=e=>oP.test(e),ll=e=>to(e,dP),I9=e=>to(e,hP),S_=e=>to(e,lP),M9=e=>to(e,uP),N9=e=>to(e,cP),bu=e=>to(e,pP,!0),O9=e=>to(e,fP,!0),di=(e,t,n)=>{const a=iP.exec(e);return a?a[1]?t(a[1]):n(a[2]):!1},to=(e,t,n=!1)=>{const a=oP.exec(e);return a?a[1]?t(a[1]):n:!1},lP=e=>e==="position"||e==="percentage",cP=e=>e==="image"||e==="url",uP=e=>e==="length"||e==="size"||e==="bg-size",dP=e=>e==="length",j9=e=>e==="number",hP=e=>e==="family-name",fP=e=>e==="number"||e==="weight",pP=e=>e==="shadow",U9=()=>{const e=Gt("color"),t=Gt("font"),n=Gt("text"),a=Gt("font-weight"),i=Gt("tracking"),s=Gt("leading"),l=Gt("breakpoint"),u=Gt("container"),h=Gt("spacing"),f=Gt("radius"),p=Gt("shadow"),g=Gt("inset-shadow"),v=Gt("text-shadow"),_=Gt("drop-shadow"),w=Gt("blur"),S=Gt("perspective"),P=Gt("aspect"),D=Gt("ease"),R=Gt("animate"),E=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],U=()=>[...A(),xe,_e],F=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],C=()=>[xe,_e,h],K=()=>[Xr,"full","auto",...C()],Y=()=>[Ba,"none","subgrid",xe,_e],ce=()=>["auto",{span:["full",Ba,xe,_e]},Ba,xe,_e],re=()=>[Ba,"auto",xe,_e],fe=()=>["auto","min","max","fr",xe,_e],de=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],he=()=>["start","end","center","stretch","center-safe","end-safe"],oe=()=>["auto",...C()],X=()=>[Xr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],Z=()=>[Xr,"screen","full","dvw","lvw","svw","min","max","fit",...C()],J=()=>[Xr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],V=()=>[e,xe,_e],M=()=>[...A(),S_,P_,{position:[xe,_e]}],G=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ye=()=>["auto","cover","contain",M9,A9,{size:[xe,_e]}],me=()=>[up,ll,Li],pe=()=>["","none","full",f,xe,_e],ke=()=>["",Je,ll,Li],We=()=>["solid","dashed","dotted","double"],Xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Ue=()=>[Je,up,S_,P_],Dt=()=>["","none",w,xe,_e],rn=()=>["none",Je,xe,_e],Sn=()=>["none",Je,xe,_e],gt=()=>[Je,xe,_e],Ut=()=>[Xr,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[vr],breakpoint:[vr],color:[sP],container:[vr],"drop-shadow":[vr],ease:["in","out","in-out"],font:[T9],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[vr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[vr],shadow:[vr],spacing:["px",Je],text:[vr],"text-shadow":[vr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Xr,_e,xe,P]}],container:["container"],"container-type":[{"@container":["","normal","size",xe,_e]}],"container-named":[E9],columns:[{columns:[Je,_e,xe,u]}],"break-after":[{"break-after":E()}],"break-before":[{"break-before":E()}],"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:U()}],overflow:[{overflow:F()}],"overflow-x":[{"overflow-x":F()}],"overflow-y":[{"overflow-y":F()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:K()}],"inset-x":[{"inset-x":K()}],"inset-y":[{"inset-y":K()}],start:[{"inset-s":K(),start:K()}],end:[{"inset-e":K(),end:K()}],"inset-bs":[{"inset-bs":K()}],"inset-be":[{"inset-be":K()}],top:[{top:K()}],right:[{right:K()}],bottom:[{bottom:K()}],left:[{left:K()}],visibility:["visible","invisible","collapse"],z:[{z:[Ba,"auto",xe,_e]}],basis:[{basis:[Xr,"full","auto",u,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Je,Xr,"auto","initial","none",_e]}],grow:[{grow:["",Je,xe,_e]}],shrink:[{shrink:["",Je,xe,_e]}],order:[{order:[Ba,"first","last","none",xe,_e]}],"grid-cols":[{"grid-cols":Y()}],"col-start-end":[{col:ce()}],"col-start":[{"col-start":re()}],"col-end":[{"col-end":re()}],"grid-rows":[{"grid-rows":Y()}],"row-start-end":[{row:ce()}],"row-start":[{"row-start":re()}],"row-end":[{"row-end":re()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":fe()}],"auto-rows":[{"auto-rows":fe()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...de(),"normal"]}],"justify-items":[{"justify-items":[...he(),"normal"]}],"justify-self":[{"justify-self":["auto",...he()]}],"align-content":[{content:["normal",...de()]}],"align-items":[{items:[...he(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...he(),{baseline:["","last"]}]}],"place-content":[{"place-content":de()}],"place-items":[{"place-items":[...he(),"baseline"]}],"place-self":[{"place-self":["auto",...he()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:oe()}],mx:[{mx:oe()}],my:[{my:oe()}],ms:[{ms:oe()}],me:[{me:oe()}],mbs:[{mbs:oe()}],mbe:[{mbe:oe()}],mt:[{mt:oe()}],mr:[{mr:oe()}],mb:[{mb:oe()}],ml:[{ml:oe()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:X()}],"inline-size":[{inline:["auto",...Z()]}],"min-inline-size":[{"min-inline":["auto",...Z()]}],"max-inline-size":[{"max-inline":["none",...Z()]}],"block-size":[{block:["auto",...J()]}],"min-block-size":[{"min-block":["auto",...J()]}],"max-block-size":[{"max-block":["none",...J()]}],w:[{w:[u,"screen",...X()]}],"min-w":[{"min-w":[u,"screen","none",...X()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...X()]}],h:[{h:["screen","lh",...X()]}],"min-h":[{"min-h":["screen","lh","none",...X()]}],"max-h":[{"max-h":["screen","lh",...X()]}],"font-size":[{text:["base",n,ll,Li]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,O9,R9]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",up,_e]}],"font-family":[{font:[I9,L9,t]}],"font-features":[{"font-features":[_e]}],"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:[i,xe,_e]}],"line-clamp":[{"line-clamp":[Je,"none",xe,x_]}],leading:[{leading:[s,...C()]}],"list-image":[{"list-image":["none",xe,_e]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",xe,_e]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:V()}],"text-color":[{text:V()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...We(),"wavy"]}],"text-decoration-thickness":[{decoration:[Je,"from-font","auto",xe,Li]}],"text-decoration-color":[{decoration:V()}],"underline-offset":[{"underline-offset":[Je,"auto",xe,_e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"tab-size":[{tab:[Ba,xe,_e]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",xe,_e]}],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",xe,_e]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:M()}],"bg-repeat":[{bg:G()}],"bg-size":[{bg:ye()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ba,xe,_e],radial:["",xe,_e],conic:[Ba,xe,_e]},N9,D9]}],"bg-color":[{bg:V()}],"gradient-from-pos":[{from:me()}],"gradient-via-pos":[{via:me()}],"gradient-to-pos":[{to:me()}],"gradient-from":[{from:V()}],"gradient-via":[{via:V()}],"gradient-to":[{to:V()}],rounded:[{rounded:pe()}],"rounded-s":[{"rounded-s":pe()}],"rounded-e":[{"rounded-e":pe()}],"rounded-t":[{"rounded-t":pe()}],"rounded-r":[{"rounded-r":pe()}],"rounded-b":[{"rounded-b":pe()}],"rounded-l":[{"rounded-l":pe()}],"rounded-ss":[{"rounded-ss":pe()}],"rounded-se":[{"rounded-se":pe()}],"rounded-ee":[{"rounded-ee":pe()}],"rounded-es":[{"rounded-es":pe()}],"rounded-tl":[{"rounded-tl":pe()}],"rounded-tr":[{"rounded-tr":pe()}],"rounded-br":[{"rounded-br":pe()}],"rounded-bl":[{"rounded-bl":pe()}],"border-w":[{border:ke()}],"border-w-x":[{"border-x":ke()}],"border-w-y":[{"border-y":ke()}],"border-w-s":[{"border-s":ke()}],"border-w-e":[{"border-e":ke()}],"border-w-bs":[{"border-bs":ke()}],"border-w-be":[{"border-be":ke()}],"border-w-t":[{"border-t":ke()}],"border-w-r":[{"border-r":ke()}],"border-w-b":[{"border-b":ke()}],"border-w-l":[{"border-l":ke()}],"divide-x":[{"divide-x":ke()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ke()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...We(),"hidden","none"]}],"divide-style":[{divide:[...We(),"hidden","none"]}],"border-color":[{border:V()}],"border-color-x":[{"border-x":V()}],"border-color-y":[{"border-y":V()}],"border-color-s":[{"border-s":V()}],"border-color-e":[{"border-e":V()}],"border-color-bs":[{"border-bs":V()}],"border-color-be":[{"border-be":V()}],"border-color-t":[{"border-t":V()}],"border-color-r":[{"border-r":V()}],"border-color-b":[{"border-b":V()}],"border-color-l":[{"border-l":V()}],"divide-color":[{divide:V()}],"outline-style":[{outline:[...We(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Je,xe,_e]}],"outline-w":[{outline:["",Je,ll,Li]}],"outline-color":[{outline:V()}],shadow:[{shadow:["","none",p,bu,vu]}],"shadow-color":[{shadow:V()}],"inset-shadow":[{"inset-shadow":["none",g,bu,vu]}],"inset-shadow-color":[{"inset-shadow":V()}],"ring-w":[{ring:ke()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:V()}],"ring-offset-w":[{"ring-offset":[Je,Li]}],"ring-offset-color":[{"ring-offset":V()}],"inset-ring-w":[{"inset-ring":ke()}],"inset-ring-color":[{"inset-ring":V()}],"text-shadow":[{"text-shadow":["none",v,bu,vu]}],"text-shadow-color":[{"text-shadow":V()}],opacity:[{opacity:[Je,xe,_e]}],"mix-blend":[{"mix-blend":[...Xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Xe()}],"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":[Je]}],"mask-image-linear-from-pos":[{"mask-linear-from":Ue()}],"mask-image-linear-to-pos":[{"mask-linear-to":Ue()}],"mask-image-linear-from-color":[{"mask-linear-from":V()}],"mask-image-linear-to-color":[{"mask-linear-to":V()}],"mask-image-t-from-pos":[{"mask-t-from":Ue()}],"mask-image-t-to-pos":[{"mask-t-to":Ue()}],"mask-image-t-from-color":[{"mask-t-from":V()}],"mask-image-t-to-color":[{"mask-t-to":V()}],"mask-image-r-from-pos":[{"mask-r-from":Ue()}],"mask-image-r-to-pos":[{"mask-r-to":Ue()}],"mask-image-r-from-color":[{"mask-r-from":V()}],"mask-image-r-to-color":[{"mask-r-to":V()}],"mask-image-b-from-pos":[{"mask-b-from":Ue()}],"mask-image-b-to-pos":[{"mask-b-to":Ue()}],"mask-image-b-from-color":[{"mask-b-from":V()}],"mask-image-b-to-color":[{"mask-b-to":V()}],"mask-image-l-from-pos":[{"mask-l-from":Ue()}],"mask-image-l-to-pos":[{"mask-l-to":Ue()}],"mask-image-l-from-color":[{"mask-l-from":V()}],"mask-image-l-to-color":[{"mask-l-to":V()}],"mask-image-x-from-pos":[{"mask-x-from":Ue()}],"mask-image-x-to-pos":[{"mask-x-to":Ue()}],"mask-image-x-from-color":[{"mask-x-from":V()}],"mask-image-x-to-color":[{"mask-x-to":V()}],"mask-image-y-from-pos":[{"mask-y-from":Ue()}],"mask-image-y-to-pos":[{"mask-y-to":Ue()}],"mask-image-y-from-color":[{"mask-y-from":V()}],"mask-image-y-to-color":[{"mask-y-to":V()}],"mask-image-radial":[{"mask-radial":[xe,_e]}],"mask-image-radial-from-pos":[{"mask-radial-from":Ue()}],"mask-image-radial-to-pos":[{"mask-radial-to":Ue()}],"mask-image-radial-from-color":[{"mask-radial-from":V()}],"mask-image-radial-to-color":[{"mask-radial-to":V()}],"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":A()}],"mask-image-conic-pos":[{"mask-conic":[Je]}],"mask-image-conic-from-pos":[{"mask-conic-from":Ue()}],"mask-image-conic-to-pos":[{"mask-conic-to":Ue()}],"mask-image-conic-from-color":[{"mask-conic-from":V()}],"mask-image-conic-to-color":[{"mask-conic-to":V()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:M()}],"mask-repeat":[{mask:G()}],"mask-size":[{mask:ye()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",xe,_e]}],filter:[{filter:["","none",xe,_e]}],blur:[{blur:Dt()}],brightness:[{brightness:[Je,xe,_e]}],contrast:[{contrast:[Je,xe,_e]}],"drop-shadow":[{"drop-shadow":["","none",_,bu,vu]}],"drop-shadow-color":[{"drop-shadow":V()}],grayscale:[{grayscale:["",Je,xe,_e]}],"hue-rotate":[{"hue-rotate":[Je,xe,_e]}],invert:[{invert:["",Je,xe,_e]}],saturate:[{saturate:[Je,xe,_e]}],sepia:[{sepia:["",Je,xe,_e]}],"backdrop-filter":[{"backdrop-filter":["","none",xe,_e]}],"backdrop-blur":[{"backdrop-blur":Dt()}],"backdrop-brightness":[{"backdrop-brightness":[Je,xe,_e]}],"backdrop-contrast":[{"backdrop-contrast":[Je,xe,_e]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Je,xe,_e]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Je,xe,_e]}],"backdrop-invert":[{"backdrop-invert":["",Je,xe,_e]}],"backdrop-opacity":[{"backdrop-opacity":[Je,xe,_e]}],"backdrop-saturate":[{"backdrop-saturate":[Je,xe,_e]}],"backdrop-sepia":[{"backdrop-sepia":["",Je,xe,_e]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",xe,_e]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Je,"initial",xe,_e]}],ease:[{ease:["linear","initial",D,xe,_e]}],delay:[{delay:[Je,xe,_e]}],animate:[{animate:["none",R,xe,_e]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,xe,_e]}],"perspective-origin":[{"perspective-origin":U()}],rotate:[{rotate:rn()}],"rotate-x":[{"rotate-x":rn()}],"rotate-y":[{"rotate-y":rn()}],"rotate-z":[{"rotate-z":rn()}],scale:[{scale:Sn()}],"scale-x":[{"scale-x":Sn()}],"scale-y":[{"scale-y":Sn()}],"scale-z":[{"scale-z":Sn()}],"scale-3d":["scale-3d"],skew:[{skew:gt()}],"skew-x":[{"skew-x":gt()}],"skew-y":[{"skew-y":gt()}],transform:[{transform:[xe,_e,"","none","gpu","cpu"]}],"transform-origin":[{origin:U()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ut()}],"translate-x":[{"translate-x":Ut()}],"translate-y":[{"translate-y":Ut()}],"translate-z":[{"translate-z":Ut()}],"translate-none":["translate-none"],zoom:[{zoom:[Ba,xe,_e]}],accent:[{accent:V()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:V()}],"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",xe,_e]}],"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":V()}],"scrollbar-track-color":[{"scrollbar-track":V()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"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",xe,_e]}],fill:[{fill:["none",...V()]}],"stroke-w":[{stroke:[Je,ll,Li,x_]}],stroke:[{stroke:["none",...V()]}],"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"]}},z9=g9(U9);function St(...e){return z9(qM(e))}const B9=T.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[T.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"}),T.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"}),T.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.44 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),T.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"})]}),F9=T.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor",children:T.jsx("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12Z"})}),V9={google:B9,github:F9},H9={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",apple:"Apple"};function $9(e){return H9[e]||String(e||"").replace(/-/g," ")}function W9({title:e,subtitle:t,className:n="",onSuccess:a,hideLogo:i=!1}){Yl();const{enabled:s,signedIn:l,refreshUser:u,signInWithPassword:h,signUp:f,signInWithOAuth:p,getPublicAuthConfig:g}=eo(),[v,_]=b.useState("signin"),[w,S]=b.useState(""),[P,D]=b.useState(""),[R,E]=b.useState(""),[A,U]=b.useState(!1),[F,j]=b.useState(null),[C,K]=b.useState(null),[Y,ce]=b.useState(!1),[re,fe]=b.useState(!0),[de,he]=b.useState([]),[oe,X]=b.useState(8);b.useEffect(()=>{if(!s)return;let M=!0;return fe(!0),(async()=>{const{data:G,error:ye}=await g();if(M){if(ye||!G)he(["google","github"]);else{const me=Array.isArray(G.oAuthProviders)?G.oAuthProviders:[],pe=Array.isArray(G.customOAuthProviders)?G.customOAuthProviders:[];he([...me,...pe]),typeof G.passwordMinLength=="number"&&G.passwordMinLength>0&&X(G.passwordMinLength)}fe(!1)}})(),()=>{M=!1}},[s,g]),b.useEffect(()=>{l&&a&&a()},[l,a]);const Z=b.useMemo(()=>typeof window>"u"?"":!!window.webkit?.messageHandlers?.nativeOAuth?`${window.location.origin}/auth/callback`:`${window.location.origin}/`,[]),J=b.useCallback(async M=>{j(null),U(!0);try{const{error:G}=await p(M,Z);G&&j(G.message||String(G))}finally{U(!1)}},[p,Z]),V=b.useCallback(async M=>{M.preventDefault(),j(null),U(!0);try{if(v==="signup"){const{data:ye,error:me}=await f({email:w.trim(),password:P,name:R.trim()||void 0});if(me){j(me.message||String(me));return}if(ye?.requireEmailVerification){K(De("login.verify_email_pending")),_("signin");return}await u();return}const{error:G}=await h({email:w.trim(),password:P});if(G){j(G.message||String(G));return}await u()}finally{U(!1)}},[v,w,P,R,f,h,u]);return s?T.jsxs("div",{className:St("w-full bg-white dark:bg-oai-gray-950 p-6 transition-colors duration-200",n),children:[T.jsxs("div",{className:"text-center mb-6",children:[!i&&T.jsxs("div",{className:"flex items-center justify-center gap-2 mb-2",children:[T.jsx("img",{src:"/app-icon.png",alt:"",width:28,height:28,className:"rounded-md"}),T.jsx("span",{className:"text-lg font-semibold text-oai-black dark:text-white font-oai tracking-tight",children:De("shared.app_name")})]}),T.jsx("h2",{className:St("text-sm font-semibold text-oai-black dark:text-white tracking-tight mb-1",i&&"text-base font-bold md:text-lg"),children:e||De("login_modal.subtitle")}),t&&T.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1.5 leading-relaxed max-w-[320px] mx-auto",children:t})]}),C&&T.jsx("div",{className:"mb-4 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900/50 px-3 py-2 text-xs text-oai-gray-700 dark:text-oai-gray-300",children:C}),F&&T.jsx("p",{className:"mb-4 text-sm text-red-500 dark:text-red-400 text-center",role:"alert",children:F}),T.jsx("div",{className:"space-y-2.5 mb-5",children:re?T.jsxs("div",{className:"space-y-2.5",children:[T.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"}),T.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900/50 animate-pulse"})]}):de.map(M=>T.jsxs("button",{type:"button",disabled:A,onClick:()=>J(M),className:St("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors disabled:opacity-50","flex items-center justify-center gap-2.5"),children:[V9[M]||null,De("login.oauth.continue",{provider:$9(M)})]},M))}),Y?T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"relative mb-5",children:[T.jsx("div",{className:"absolute inset-0 flex items-center",children:T.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),T.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:T.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:De("login_modal.divider_email")})})]}),T.jsxs("div",{className:"flex rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 bg-oai-gray-50 dark:bg-oai-gray-900/50 mb-4",children:[T.jsx("button",{type:"button",className:St("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",v==="signin"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{_("signin"),j(null)},children:De("login.tab.sign_in")}),T.jsx("button",{type:"button",className:St("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",v==="signup"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{_("signup"),j(null)},children:De("login.tab.sign_up")})]}),T.jsxs("form",{onSubmit:V,className:"space-y-3",children:[v==="signup"&&T.jsxs("div",{children:[T.jsx("label",{htmlFor:"card-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:De("login.field.name")}),T.jsx("input",{id:"card-name",type:"text",autoComplete:"name",value:R,onChange:M=>E(M.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:De("login.field.name_placeholder")})]}),T.jsxs("div",{children:[T.jsx("label",{htmlFor:"card-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:De("login.field.email")}),T.jsx("input",{id:"card-email",type:"email",autoComplete:"email",required:!0,value:w,onChange:M=>S(M.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),T.jsxs("div",{children:[T.jsx("label",{htmlFor:"card-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:De("login.field.password")}),T.jsx("input",{id:"card-password",type:"password",autoComplete:v==="signup"?"new-password":"current-password",required:!0,minLength:v==="signup"?oe:void 0,value:P,onChange:M=>D(M.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),v==="signup"&&T.jsx("p",{className:"mt-1 text-xs text-oai-gray-400 dark:text-oai-gray-600",children:De("login.password_hint",{min:String(oe)})})]}),T.jsx("button",{type:"submit",disabled:A,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:De(v==="signup"?"login.submit.sign_up":"login.submit.sign_in")})]})]}):T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"relative mb-5",children:[T.jsx("div",{className:"absolute inset-0 flex items-center",children:T.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),T.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:T.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:De("login.divider")})})]}),T.jsxs("button",{type:"button",onClick:()=>ce(!0),className:St("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors","flex items-center justify-center gap-2.5"),children:[T.jsx(SR,{className:"h-[18px] w-[18px] text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75}),De("login_modal.continue_email")]})]})]}):null}function G9(){const{isOpen:e,closeLoginModal:t}=f2(),{enabled:n}=eo();return b.useEffect(()=>{if(!e)return;const a=i=>{i.key==="Escape"&&t()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e,t]),n?T.jsx(Fx,{children:e&&T.jsxs(Cl.div,{className:"fixed inset-0 z-[100] flex items-center justify-center p-4",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[T.jsx(Cl.div,{className:"absolute inset-0 bg-black/40 dark:bg-black/60",onClick:t,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}}),T.jsxs(Cl.div,{className:"relative w-full max-w-[420px] rounded-2xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-950 shadow-2xl overflow-hidden",initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},transition:{duration:.2},onClick:a=>a.stopPropagation(),children:[T.jsx("button",{type:"button",onClick:t,className:"absolute right-4 top-4 z-10 text-oai-gray-400 dark:text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors",children:T.jsx(gg,{className:"h-5 w-5"})}),T.jsx(W9,{onSuccess:t,className:"p-6 bg-transparent"})]})]})}):null}const K9={VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"},Az="https://tokentracker.statuspage.io/";function q9(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return"";const t=typeof import.meta<"u"?K9:void 0;return(t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||t?.VITE_INSFORGE_BASE_URL||er()).trim()}function Y9(){return er()}function Z9(e=""){if(typeof e!="string"||e.length===0)return!1;const t=new URLSearchParams(e),n=String(t.get("screenshot")||"").toLowerCase();return n==="1"||n==="true"}const X9=300*1e3,J9=720*60*1e3;function qg(e){return typeof e=="string"&&/^https?:\/\//i.test(e.trim())}function Q9(e,t=Date.now()){if(!e?.token||!e?.deviceId||!e?.issuedAt)return!0;const n=Date.parse(e.issuedAt);return Number.isFinite(n)?n+J9<=t:!0}async function mP(e,t){const n=er();if(!qg(n)||!e)return;const a=n.replace(/\/$/,""),i=ds(),s={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};i&&(s.apikey=i);try{await fetch(`${a}/functions/tokentracker-leaderboard-refresh`,{method:"POST",headers:s,body:JSON.stringify({period:"week",source:t})})}catch{}}async function eN(){try{const e=await fetch("/functions/tokentracker-machine-id",{headers:{Accept:"application/json"},cache:"no-store"});if(e.ok){const t=await e.json().catch(()=>null),n=typeof t?.machineId=="string"?t.machineId.trim():null;if(n&&n.length>=8)return n}}catch{}return null}async function tN(e){const t=er();if(!qg(t)||!e)return null;const n=t.replace(/\/$/,""),a=ds(),i={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};a&&(i.apikey=a);const s=typeof navigator<"u"&&typeof navigator.platform=="string"?navigator.platform:"web",l=await eN();if(!l)return null;const u=`Token Tracker (dashboard) #${l.slice(0,8)}`,h=await fetch(`${n}/functions/tokentracker-device-token-issue`,{method:"POST",headers:i,body:JSON.stringify({device_name:u,platform:s,machine_id:l})});if(!h.ok)return null;const f=await h.json().catch(()=>null),p=typeof f?.token=="string"?f.token:null,g=typeof f?.device_id=="string"?f.device_id:null;return!p||!g?null:{token:p,deviceId:g,issuedAt:typeof f?.created_at=="string"?f.created_at:new Date().toISOString()}}async function C_(e){const{deviceToken:t,insforgeBaseUrl:n}=e,a={deviceToken:t},i=n||er();qg(i)&&(a.insforgeBaseUrl=i.trim());const s=await Kl(),l=await fetch("/functions/tokentracker-local-sync",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...s},body:JSON.stringify(a)}),u=await l.json().catch(()=>({}));if(!l.ok){const h=typeof u.error=="string"?u.error:`HTTP ${l.status}`;throw new Error(h)}return u}async function T_(e){const t=await e();if(!t)return null;const n=Ew();if(n&&!Q9(n))return n;const a=await tN(t);return a?(iA(a),a):null}async function gP(e){let t=await e();if(!t)return null;let n=await T_(async()=>t);if(!n)return t;try{return await C_({deviceToken:n.token,insforgeBaseUrl:er()}),t}catch(a){if(!Ew()||(Aw(),t=await e(),!t)||(n=await T_(async()=>t),!n))throw a;return await C_({deviceToken:n.token,insforgeBaseUrl:er()}),t}}async function nN(e){const t=oA();if(Date.now()-t<X9)return;const n=await gP(e);n&&(Rw(Date.now()),await mP(n,"cloud-sync-auto"))}async function Rz(e){const t=await gP(e);t&&(Rw(Date.now()),await mP(t,"cloud-sync-now"))}function aN(e){const t=e.replace(/\/+$/,"")||"/";return t==="/share"||t==="/share.html"||t.startsWith("/share/")}function rN(e){const t=e.replace(/\/+$/,"")||"/";return t==="/login"||t==="/landing"||aN(t)?!1:t==="/"||t==="/dashboard"||t.startsWith("/leaderboard")}function iN(){const e=In(),t=eo(),n=b.useRef(!1);b.useEffect(()=>{if(!od()||!rN(e.pathname||"/")||!t.enabled||!t.signedIn||t.loading||!sd())return;let a=!1;const i=window.setTimeout(()=>{(async()=>{if(!(a||n.current)){n.current=!0;try{await nN(()=>t.getAccessToken())}catch(s){console.warn("[tokentracker] cloud usage sync:",s)}finally{n.current=!1}}})()},2500);return()=>{a=!0,window.clearTimeout(i)}},[e.pathname,t.enabled,t.signedIn,t.loading,t.getAccessToken])}function oN(){const e=b.useContext(d2);if(e===null)throw new Error("useTheme must be used within a ThemeProvider");return e}function sN({prefersReducedMotion:e,screenshotCapture:t}){return!(t||e)}function lN(e){if(!e||typeof e!="object")return null;const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.avatar_url||t.picture||n.avatar_url||e.avatar_url;return typeof a=="string"&&a.trim()?a.trim():null}function cN(e){return e?zd()?`/api/avatar-proxy?url=${encodeURIComponent(e)}`:e:null}function ku(e){const t=String(e||"").trim();if(!t)return"?";const n=t.split(/\s+/).filter(Boolean);return n.length>=2?(n[0][0]+n[n.length-1][0]).toUpperCase():t.slice(0,2).toUpperCase()}function E_({className:e,variant:t="header",collapsed:n=!1,onAfterAction:a}){Yl();const i=t==="sidebar",{enabled:s,loading:l,signedIn:u,user:h,displayName:f}=eo(),{openLoginModal:p}=f2(),g=ss(),v=b.useMemo(()=>lN(h),[h]),_=b.useMemo(()=>cN(v),[v]),[w,S]=Xo.useState(!1);if(Xo.useEffect(()=>{S(!1)},[_]),!s)return null;if(l)return T.jsx("div",{className:St("h-9 w-9 shrink-0 rounded-full bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse",e),"aria-hidden":!0});if(!u)return i?T.jsxs("button",{type:"button",onClick:()=>{p(),a?.()},className:St("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] font-medium text-oai-gray-700 dark:text-oai-gray-300 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 min-w-0",n?"h-8 w-8 justify-center px-0":"w-full",e),"aria-label":De("header.auth.sign_in_aria"),title:n?De("header.auth.sign_in_aria"):void 0,children:[T.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:T.jsx("img",{src:"/app-icon.png",alt:"",width:18,height:18,className:"h-[18px] w-[18px] rounded"})}),!n&&T.jsx("span",{className:"truncate flex-1 text-left",children:De("header.auth.sign_in_aria")})]}):T.jsx("button",{type:"button",onClick:p,className:St("shrink-0 inline-flex h-9 items-center justify-center gap-1.5 rounded-md px-4 text-sm font-medium transition-colors duration-200 ease-out shadow-sm ring-1 ring-oai-gray-200 dark:ring-white/10 bg-oai-gray-900 text-white hover:bg-oai-gray-800 active:bg-oai-gray-950 dark:bg-white dark:text-oai-gray-900 dark:hover:bg-oai-gray-100 dark:active:bg-oai-gray-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-oai-gray-950",e),"aria-label":De("header.auth.sign_in_aria"),children:De("header.auth.sign_in_aria")});const P=()=>{g("/settings"),a?.()};return T.jsx("div",{className:St(i?"relative flex w-full shrink-0 items-center":"relative flex shrink-0 items-center",e),children:T.jsxs("button",{type:"button",onClick:P,className:St(i?St("flex w-full items-center gap-2 rounded-md px-2 py-1.5 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 transition-colors min-w-0",n&&"justify-center px-0 py-0 h-9 w-9"):"flex items-center gap-2 rounded-md pl-1 pr-2 py-1 border border-transparent hover:bg-oai-gray-100 dark:hover:bg-oai-gray-900/80 hover:border-oai-gray-200 dark:hover:border-oai-gray-800 transition-colors"),"aria-label":De("header.auth.open_settings"),title:i&&n?f:void 0,children:[i?T.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:_&&!w?T.jsx("img",{src:_,alt:"",width:20,height:20,className:"h-5 w-5 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700",referrerPolicy:"no-referrer",onError:()=>S(!0)}):ku(f)==="?"?T.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-oai-brand-600/30 text-white ring-1 ring-oai-brand-500/50",children:T.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",className:"w-3 h-3 opacity-80",children:T.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})})}):T.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-oai-brand-600 text-[9px] font-semibold text-white ring-1 ring-oai-brand-500/50",children:ku(f)})}):_&&!w?T.jsx("img",{src:_,alt:"",width:32,height:32,className:"h-8 w-8 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700 shrink-0",referrerPolicy:"no-referrer",onError:()=>S(!0)}):ku(f)==="?"?T.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-oai-brand-600/30 text-white ring-1 ring-oai-brand-500/50",children:T.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",className:"w-4 h-4 opacity-80",children:T.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})})}):T.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-oai-brand-600 text-xs font-semibold text-white ring-1 ring-oai-brand-500/50",children:ku(f)}),i?!n&&T.jsx("span",{className:"truncate text-[13px] font-medium text-oai-gray-900 dark:text-oai-gray-200 flex-1 text-left min-w-0",children:f}):T.jsx("span",{className:"hidden sm:inline truncate text-sm font-medium text-oai-gray-900 dark:text-oai-gray-200 max-w-[120px]",children:f})]})})}const _m="tt.sidebarCollapsed";function yP(){return[{id:"general",label:De("nav.group.general"),items:[{id:"usage",to:"/dashboard",icon:mR,label:De("nav.usage")},{id:"limits",to:"/limits",icon:bR,label:De("nav.limits")},{id:"leaderboard",to:"/leaderboard",icon:HR,label:De("nav.leaderboard")}]},{id:"tools",label:De("nav.group.tools"),items:[{id:"widgets",to:"/widgets",icon:xR,label:De("nav.widgets")},{id:"skills",to:"/skills",icon:DR,label:De("nav.skills")},{id:"ip-check",to:"/ip-check",icon:_R,label:De("nav.ip_check")}]},{id:"account",label:De("nav.group.account"),items:[{id:"settings",to:"/settings",icon:UR,label:De("nav.settings")}]}]}function uN(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(_m)==="1"}catch{return!1}}function dN(){const[e,t]=b.useState(uN),n=b.useCallback(()=>{t(a=>{const i=!a;try{typeof window<"u"&&window.localStorage.setItem(_m,i?"1":"0")}catch{}return i})},[]);return b.useEffect(()=>{if(typeof window>"u")return;const a=i=>{i.key===_m&&t(i.newValue==="1")};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[]),{collapsed:e,toggle:n}}function hN(e,t){const n=e.replace(/\/+$/,"")||"/";return t==="/dashboard"?n==="/dashboard"||n==="/":t==="/leaderboard"?n==="/leaderboard"||n.startsWith("/leaderboard/"):n===t}function fN({label:e,collapsed:t,first:n}){return t?n?null:T.jsx("div",{className:"mx-2 my-2 h-px bg-oai-gray-200/70 dark:bg-oai-gray-800/70","aria-hidden":!0}):T.jsx("div",{className:St("px-3 pb-1 text-[10px] uppercase tracking-wider text-oai-gray-500 dark:text-oai-gray-500",n?"pt-2":"pt-4"),children:e})}function pN({item:e,collapsed:t,active:n,onClick:a}){const i=e.icon;return T.jsxs(Id,{to:e.to,onClick:a,title:t?e.label:void 0,"aria-current":n?"page":void 0,className:St("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] no-underline transition-colors",t&&"justify-center px-0 py-2",n?"bg-oai-gray-200/70 text-oai-black font-medium dark:bg-oai-gray-800 dark:text-white":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/50 hover:text-oai-black dark:hover:bg-oai-gray-800/60 dark:hover:text-white"),children:[T.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:T.jsx(i,{className:"h-[15px] w-[15px]","aria-hidden":!0})}),!t&&T.jsx("span",{className:"truncate",children:e.label})]})}function mN({as:e="button",title:t,onClick:n,href:a,children:i,className:s,...l}){const u=St("flex h-10 w-10 items-center justify-center rounded-lg text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",s);return e==="a"?T.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",title:t,"aria-label":t,className:u,...l,children:i}):T.jsx("button",{type:"button",title:t,"aria-label":t,onClick:n,className:u,...l,children:i})}function gN({repo:e="mm7894215/TokenTracker",glassChrome:t=!1}){const[n,a]=b.useState(null);return b.useEffect(()=>{if(typeof window>"u")return;const i=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;sN({prefersReducedMotion:i,screenshotCapture:!1})&&fetch(`https://api.github.com/repos/${e}`).then(s=>s.json()).then(s=>{s&&typeof s.stargazers_count=="number"&&a(s.stargazers_count)}).catch(()=>{})},[e]),T.jsxs("a",{href:`https://github.com/${e}`,target:"_blank",rel:"noopener noreferrer","aria-label":n!==null?`Star on GitHub (${n})`:"Star on GitHub",className:St("inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-xs font-medium transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",t?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:[T.jsx("svg",{height:"12",viewBox:"0 0 16 16",width:"12",className:"shrink-0 fill-current",children:T.jsx("path",{d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"})}),T.jsx("span",{children:"Star"}),n!==null&&T.jsx("span",{className:"text-[10px] text-oai-gray-500 dark:text-oai-gray-500 tabular-nums",children:n})]})}const yN=[{value:"light",label:"Light",Icon:u2},{value:"dark",label:"Dark",Icon:c2},{value:"system",label:"System",Icon:AR}];function vN({theme:e,resolvedTheme:t,onSetTheme:n,glassChrome:a=!1}){const[i,s]=b.useState(!1),l=b.useRef(null),u=t==="dark"?c2:u2;return b.useEffect(()=>{if(!i)return;const h=p=>{l.current&&!l.current.contains(p.target)&&s(!1)},f=p=>{p.key==="Escape"&&s(!1)};return document.addEventListener("mousedown",h),document.addEventListener("keydown",f),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",f)}},[i]),T.jsxs("div",{ref:l,className:"relative",children:[T.jsx("button",{type:"button","aria-label":"Theme","aria-expanded":i,"aria-haspopup":"menu",title:"Theme",onClick:()=>s(h=>!h),className:St("inline-flex h-7 w-7 items-center justify-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",a?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:T.jsx(u,{className:"h-3.5 w-3.5","aria-hidden":!0})}),i&&T.jsx("div",{role:"menu",className:"absolute bottom-full left-0 mb-2 z-50 min-w-[140px] py-1 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 shadow-lg",children:yN.map(({value:h,label:f,Icon:p})=>{const g=e===h;return T.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{n(h),s(!1)},className:St("flex w-full items-center gap-2.5 px-3 py-1.5 text-[13px] transition-colors",g?"text-oai-black dark:text-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800/60 hover:text-oai-black dark:hover:text-white"),children:[T.jsx(p,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),T.jsx("span",{children:f})]},h)})})]})}function vP({collapsed:e,onToggleCollapsed:t,onItemClick:n,showCloseButton:a=!1,onClose:i,glassChrome:s=!1}){const u=In()?.pathname||"/",{theme:h,resolvedTheme:f,setTheme:p}=oN(),{resolvedLocale:g}=Yl(),v=b.useMemo(()=>yP(),[g]);return T.jsxs(T.Fragment,{children:[T.jsx("div",{className:St("px-2 pt-2 pb-2",e&&"flex justify-center"),children:a?T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsx("div",{className:"flex-1 min-w-0",children:T.jsx(E_,{variant:"sidebar",collapsed:e,onAfterAction:n})}),T.jsx("button",{type:"button",onClick:i,"aria-label":De("nav.close_menu"),title:De("nav.close_menu"),className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-oai-gray-500 dark:text-oai-gray-500 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-gray-900 dark:hover:text-oai-gray-200 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",children:T.jsx(gg,{className:"h-4 w-4",strokeWidth:1.75,"aria-hidden":!0})})]}):T.jsx(E_,{variant:"sidebar",collapsed:e,onAfterAction:n})}),T.jsx("nav",{"aria-label":De("nav.nav_label"),className:"flex-1 px-2 pb-2 flex flex-col overflow-y-auto",children:v.map((_,w)=>T.jsxs("div",{className:"flex flex-col",children:[T.jsx(fN,{label:_.label,collapsed:e,first:w===0}),T.jsx("div",{className:"flex flex-col gap-0.5",children:_.items.filter(S=>!(S.to==="/widgets"&&hg())).map(S=>T.jsx(pN,{item:S,collapsed:e,active:hN(u,S.to),onClick:n},S.id))})]},_.id))}),T.jsxs("div",{className:St("flex items-center px-2 py-3",e?"flex-col justify-center gap-2":"justify-between gap-2"),children:[T.jsx(vN,{theme:h,resolvedTheme:f,onSetTheme:p,glassChrome:s}),T.jsx("div",{className:"flex items-center gap-1.5",children:!e&&T.jsx(gN,{glassChrome:s})})]})]})}function bN({collapsed:e,onToggleCollapsed:t}){const n=b.useMemo(()=>typeof window>"u"?!1:Ca()||zd(),[]);return T.jsx("aside",{"aria-label":De("nav.aside_label"),className:St("hidden lg:flex flex-col shrink-0 h-full min-h-0 transition-[width] duration-200",e?"w-[72px]":"w-[220px]"),children:T.jsx(vP,{collapsed:e,onToggleCollapsed:t,glassChrome:n})})}function kN({open:e,onClose:t}){return b.useEffect(()=>{if(!e)return;const n=a=>{a.key==="Escape"&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),b.useEffect(()=>{if(!e)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[e]),e?T.jsxs("div",{className:"lg:hidden fixed inset-0 z-[80] flex",children:[T.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:t,"aria-hidden":!0}),T.jsx("aside",{"aria-label":De("nav.aside_label"),className:"relative w-[260px] max-w-[80vw] flex flex-col bg-oai-white dark:bg-oai-gray-900 border-r border-oai-gray-200 dark:border-oai-gray-800 shadow-2xl",children:T.jsx(vP,{collapsed:!1,showCloseButton:!0,onClose:t,onItemClick:t})})]}):null}function _N({onOpenDrawer:e}){return T.jsxs("div",{className:"lg:hidden flex items-center justify-between gap-2 px-3 h-14 border-b border-oai-gray-200 dark:border-oai-gray-800",children:[T.jsx(mN,{title:De("nav.menu"),onClick:e,children:T.jsx(TR,{className:"h-5 w-5","aria-hidden":!0})}),T.jsxs(Id,{to:"/landing",className:"flex items-center gap-2 no-underline hover:opacity-80 transition-opacity","aria-label":"Token Tracker",children:[T.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),T.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:"Token Tracker"})]}),T.jsx("div",{className:"w-10 shrink-0","aria-hidden":!0})]})}function wN({children:e}){const{collapsed:t,toggle:n}=dN(),[a,i]=b.useState(!1),s=b.useCallback(()=>i(!0),[]),l=b.useCallback(()=>i(!1),[]),u=b.useMemo(()=>typeof window>"u"?!1:Ca()||zd(),[]);return T.jsxs("div",{className:St("fixed inset-0 flex flex-col text-oai-black dark:text-oai-white font-sans overflow-hidden",hg()&&"tt-native-glass-shell",u?"bg-transparent":"bg-oai-gray-100 dark:bg-oai-gray-950"),children:[u&&T.jsx("div",{className:"h-7 shrink-0",style:{WebkitAppRegion:"drag"},"aria-hidden":!0}),T.jsxs("div",{className:"flex-1 min-h-0 flex",children:[T.jsx(bN,{collapsed:t,onToggleCollapsed:n}),T.jsx(kN,{open:a,onClose:l}),T.jsx("div",{className:"flex-1 min-w-0 min-h-0 p-2 lg:pl-0 lg:pr-3 lg:pb-3 flex flex-col",children:T.jsxs("div",{className:St("flex-1 min-h-0 flex flex-col bg-oai-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-800 overflow-hidden",u?"tt-native-main-card":"rounded-2xl",!u&&"shadow-sm"),children:[T.jsx(_N,{onOpenDrawer:s}),T.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:e})]})})]})]})}function xN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.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"})})}function PN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",className:t,children:T.jsx("path",{d:"M8.086.457a6.105 6.105 0 013.046-.415c1.333.153 2.521.72 3.564 1.7a.117.117 0 00.107.029c1.408-.346 2.762-.224 4.061.366l.063.03.154.076c1.357.703 2.33 1.77 2.918 3.198.278.679.418 1.388.421 2.126a5.655 5.655 0 01-.18 1.631.167.167 0 00.04.155 5.982 5.982 0 011.578 2.891c.385 1.901-.01 3.615-1.183 5.14l-.182.22a6.063 6.063 0 01-2.934 1.851.162.162 0 00-.108.102c-.255.736-.511 1.364-.987 1.992-1.199 1.582-2.962 2.462-4.948 2.451-1.583-.008-2.986-.587-4.21-1.736a.145.145 0 00-.14-.032c-.518.167-1.04.191-1.604.185a5.924 5.924 0 01-2.595-.622 6.058 6.058 0 01-2.146-1.781c-.203-.269-.404-.522-.551-.821a7.74 7.74 0 01-.495-1.283 6.11 6.11 0 01-.017-3.064.166.166 0 00.008-.074.115.115 0 00-.037-.064 5.958 5.958 0 01-1.38-2.202 5.196 5.196 0 01-.333-1.589 6.915 6.915 0 01.188-2.132c.45-1.484 1.309-2.648 2.577-3.493.282-.188.55-.334.802-.438.286-.12.573-.22.861-.304a.129.129 0 00.087-.087A6.016 6.016 0 015.635 2.31C6.315 1.464 7.132.846 8.086.457zm-.804 7.85a.848.848 0 00-1.473.842l1.694 2.965-1.688 2.848a.849.849 0 001.46.864l1.94-3.272a.849.849 0 00.007-.854l-1.94-3.393zm5.446 6.24a.849.849 0 000 1.695h4.848a.849.849 0 000-1.696h-4.848z"})})}function SN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z"})})}function CN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"})})}function TN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"})})}function EN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 -1 22 28",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M4.125 20.149c-2.69 5.959 3.036 7.453 7.26 3.966 1.24 3.91 5.898.993 7.569-2.036 3.682-6.678 2.195-13.49 1.813-14.895-2.617-9.582-15.699-9.592-17.95.049-.526 1.687-.535 3.606-.833 5.598-.15 1.005-.256 1.646-.645 2.703-.223.607-.53 1.147-1.014 2.056-.75 1.412-.434 4.138 3.434 2.724v.001ZM11.895 11.332c-1.073 0-1.234-1.283-1.234-2.048 0-.69.124-1.239.358-1.586a1 1 0 0 1 .876-.462c.375 0 .697.158.924.47.259.354.395.9.395 1.578 0 1.283-.493 2.048-1.319 2.048Zm4.416 0c-1.073 0-1.234-1.283-1.234-2.048 0-.69.124-1.239.358-1.586a1 1 0 0 1 .876-.462c.375 0 .697.158.924.47.259.354.396.9.396 1.578 0 1.283-.494 2.048-1.32 2.048Z"})})}function AN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M16 6H8v12h8V6zm4 16H4V2h16v20z"})})}function RN({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:[T.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"}),T.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"})]})}function LN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:t,children:T.jsx("path",{d:"M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z"})})}function DN({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 64 60",fill:"none",className:t,"aria-hidden":"true",children:[T.jsx("path",{fill:"currentColor",d:"M37.2114 3.75318C37.6821 3.33106 37.7106 3.31457 38.0558 3.29385C38.6149 3.2531 39.1272 3.52199 39.9989 4.31564C42.0356 6.16652 44.8714 9.97183 46.6346 13.2212L47.3163 14.4819L48.2782 14.9605C49.2072 15.4299 50.7308 16.3923 51.3672 16.9085C51.655 17.1464 51.6956 17.1508 51.9947 17.0344C53.3454 16.5084 55.2803 17.206 56.9869 18.8432C58.5231 20.3155 59.9943 22.8312 60.558 24.9308C60.6403 25.2687 60.7493 25.9952 60.7891 26.5362C60.9177 28.4358 60.3092 29.9532 59.1362 30.64C58.8965 30.7784 58.8801 30.8158 58.8868 31.4132C58.9409 34.2583 58.1741 37.0985 56.6335 39.8679C54.8946 42.9773 51.7981 46.1938 47.6074 49.2243C45.357 50.8619 40.0323 53.964 37.6248 55.0532C31.8578 57.6496 27.2346 58.646 23.2188 58.154C20.8236 57.8638 18.1124 56.9287 16.5082 55.8433C16.086 55.5515 16.0191 55.5329 15.6966 55.6251C13.9793 56.1185 11.73 55.1053 9.81931 52.9844C9.05725 52.1366 7.82714 50.0548 7.42839 48.9409C6.50606 46.3339 6.68976 43.9816 7.91836 42.5767C8.23573 42.2149 8.2453 42.1995 8.17598 41.5912C8.06148 40.5951 8.00971 39.1206 8.06202 38.1692L8.10361 37.2803L6.76977 34.9212C4.70378 31.2451 3.3912 28.1582 2.88489 25.7998C2.61762 24.5066 2.63385 23.9324 2.96214 23.5078C3.16198 23.2515 3.81796 22.9866 4.60785 22.8407C6.59665 22.4917 10.9334 22.8076 15.7581 23.6595L16.259 23.7458L17.3608 22.7713C19.1891 21.1519 20.4038 20.244 22.6429 18.8478C24.9768 17.3876 27.6108 16.1858 30.577 15.2346L31.5295 14.9294L32.0526 13.5561C33.9257 8.61146 35.8437 4.96584 37.2114 3.75318ZM21.5208 29.0919C19.404 30.314 18.3453 30.9251 17.5676 31.6099C14.4179 34.3835 13.2414 38.777 14.5823 42.7537C14.9135 43.7357 15.5247 44.7942 16.7469 46.9111C17.9691 49.0279 18.5801 50.0865 19.2649 50.8643C22.0385 54.014 26.4316 55.1918 30.4084 53.8509C31.3904 53.5198 32.4489 52.9085 34.5657 51.6863L46.7442 44.6551C48.8613 43.4328 49.9205 42.8214 50.6983 42.1365C53.8479 39.363 55.0245 34.9695 53.6835 30.9927C53.3524 30.0107 52.7412 28.9522 51.519 26.8354C50.2968 24.7185 49.6858 23.66 49.0009 22.8822C46.2274 19.7325 41.8342 18.5547 37.8575 19.8956C36.8754 20.2267 35.8163 20.8383 33.6993 22.0606L21.5208 29.0919Z"}),T.jsx("g",{transform:"rotate(-30 22.6953 37.6011)",children:T.jsx("rect",{x:"22.6953",y:"37.6011",width:"4.81084",height:"9.99175",rx:"2.40542",fill:"currentColor"})}),T.jsx("g",{transform:"rotate(-30 35.6748 30.1074)",children:T.jsx("rect",{x:"35.6748",y:"30.1074",width:"4.81084",height:"9.99175",rx:"2.40542",fill:"currentColor"})})]})}function IN({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",className:t,children:[T.jsx("path",{d:"M5.938 12.835c.127-.039.285.02.373.143.028.038.036.092.046.14.003.014-.02.033-.04.05-.124-.098-.24-.194-.354-.291-.011-.01-.016-.027-.025-.042zM8.396 9.412c.195-.032.39-.06.588-.05a.54.54 0 01.148.026c.202.071.402.147.601.224.028.01.05.036.075.055l-.013.027a9.203 9.203 0 01-.26-.089c-.115-.038-.213-.077-.315-.098-.25-.05-.25-.046-.292-.014l.574.144c.275.139.55.276.823.417.042.022.09.057.107.098.026.06.063.076.117.072.066-.006.132-.017.213-.027l-.04.086c.051.08.142.02.216.064-.074.13-.247.09-.334.199l.061.074-.12.087c0 .106-.038.168-.306.243l.026.085-.196.042.07.124h-.25l-.007.137c-.081-.01-.161-.018-.244-.027l-.053.123c-.027-.008-.052-.011-.073-.023-.067-.038-.128-.056-.195.006-.019.017-.063.014-.093.008-.026-.006-.05-.029-.07-.042-.11.095-.11.095-.208.003-.057.046-.12.074-.186.011-.063.027-.123-.02-.178-.014-.07.007-.097-.035-.133-.07l-.13.033c-.013-.236-.194-.19-.34-.203.005-.072.05-.092.095-.094a.474.474 0 01.159.022c.164.05.32.12.496.138.203.021.405.029.601-.015.265-.059.52-.149.707-.365.049-.056.083-.127.117-.195.019-.038.02-.084-.02-.116a1.397 1.397 0 00-.382-.217c.024.12-.031.182-.115.221 0 .014-.004.025 0 .03.08.115.084.16-.007.267a1.39 1.39 0 01-.218.211.477.477 0 01-.641-.05 1.36 1.36 0 01-.133-.152c-.078-.107-.076-.108-.033-.236-.165-.08-.128-.226-.104-.364.008-.05.028-.096.049-.163-.04.014-.067.017-.087.032a.897.897 0 00-.316.357c-.007.016-.01.034-.02.047-.012.015-.034.038-.045.035-.02-.006-.037-.027-.05-.045-.008-.012-.007-.032-.012-.057h-.126l.053-.172a14.82 14.82 0 00-.039-.049l.11-.284c-.06.026-.091.044-.124.051-.03.007-.064 0-.095 0 0-.031-.01-.07.004-.092.149-.22.305-.428.593-.476z"}),T.jsx("path",{d:"M8.06 10.788c-.003-.038-.004-.075.037-.062.016.006.034.048.028.067-.01.04-.038.032-.064-.005z"}),T.jsx("path",{d:"M11.981.009c.226-.012.453-.011.679 0 .247.01.495.024.74.062.401.064.798.157 1.19.273.463.138.92.299 1.356.511a7.31 7.31 0 012.948 2.642c.292.469.536.963.739 1.479.219.556.446 1.11.623 1.683.204.654.329 1.326.458 1.997.097.504.182 1.01.29 1.511.156.722.329 1.44.494 2.16.186.812.4 1.615.63 2.415.102.355.193.713.282 1.072.11.436.202.876.254 1.323.031.278.066.557.073.837a7.56 7.56 0 01-.017.88c-.037.413-.1.818-.226 1.212a5.017 5.017 0 01-.915 1.649l-.13.156.018.023c.043-.023.088-.041.127-.068.2-.138.373-.307.531-.49.4-.46.721-.973.975-1.529a3.59 3.59 0 00.325-1.72c-.024-.424-.097-.834-.3-1.213-.013-.027-.015-.06-.03-.121.05.035.082.048.101.072.107.13.22.258.315.398.33.494.46 1.052.486 1.64a3.75 3.75 0 01-.47 1.97c-.36.655-.887 1.14-1.526 1.506-.193.111-.394.21-.595.308-.157.078-.248.211-.318.365a.522.522 0 00-.033.406.359.359 0 01.013.139c-.005.077-.077.155-.14.162-.054.006-.125-.043-.15-.116a1.206 1.206 0 01-.06-.233c-.04-.314-.155-.6-.308-.87a3.906 3.906 0 00-.73-.91 2.129 2.129 0 00-.897-.524 4.093 4.093 0 00-.692-.131c-.075-.008-.15-.04-.22.01.18.06.363.11.538.18.434.173.82.43 1.18.728.308.255.58.543.794.884.098.155.186.315.227.496.027.123.042.25.067.375.013.062-.002.109-.053.144-.047.033-.122.034-.163-.01a.455.455 0 01-.08-.14c-.03-.073-.038-.159-.078-.225a7.314 7.314 0 00-1.423-1.664c-.16-.137-.329-.26-.537-.323-.376-.114-.753-.203-1.15-.154-.213.025-.427.032-.64.053a1.6 1.6 0 00-.736.278 5.14 5.14 0 00-.834.72c-.329.342-.642.699-.955 1.055-.136.155-.264.319-.314.531a5.227 5.227 0 00-.012.051.096.096 0 01-.09.076h-.31c-.046 0-.082-.048-.072-.094.023-.108.045-.216.07-.324.075-.325.19-.635.368-.917.024-.039.04-.088.104-.08l.01.049.027.077c.28-.435.571-.834.996-1.135.283-.204.584-.378.89-.55a.196.196 0 00-.098-.002c-.162.043-.325.084-.485.134-.402.124-.764.33-1.11.566-.147.1-.298.193-.414.333a7.314 7.314 0 00-1.07 1.767.845.845 0 00-.04.12.075.075 0 01-.072.056h-.494c-.04 0-.062-.051-.036-.082.123-.14.246-.282.377-.415.275-.281.58-.532.777-.884.027-.048.063-.09.095-.135.238-.333.54-.607.818-.902.082-.086.175-.16.26-.24.029-.027.053-.057.079-.085l-.018-.025-.135.041c-.034.017-.07.031-.102.05-.248.144-.494.292-.743.433-.408.23-.825.439-1.209.711-.281.2-.591.358-.889.533-.02.012-.044.015-.08.028-.015-.135.143-.201.108-.336-.033.014-.064.02-.085.038-.111.096-.227.19-.328.296-.148.157-.284.325-.425.488-.125.143-.25.286-.373.431A.153.153 0 019.89 24H8.762a.316.316 0 00.016-.042c.028-.09.085-.172.083-.28-.091-.018-.162.001-.212.077a4.45 4.45 0 00-.136.215c-.01.016-.024.03-.042.03h-.093c-.019 0-.029-.022-.017-.037.071-.088.14-.178.209-.268.001-.002-.006-.012-.012-.024-.014.004-.03.006-.045.013-.176.09-.352.181-.527.274a.363.363 0 01-.168.042H5.202c-.026 0-.039-.036-.019-.053.21-.178.402-.374.558-.605.335-.496.538-1.047.667-1.629.004-.02-.003-.043-.006-.091-.037.048-.059.072-.076.1a1.943 1.943 0 01-.334.415c-.28.258-.59.448-.983.464-.297.012-.588 0-.865-.127-.46-.21-.722-.57-.794-1.072-.025-.17-.017-.171-.182-.219A3.513 3.513 0 011.97 20.6a2.286 2.286 0 01-.808-1.13 3.569 3.569 0 01-.16-1.245c.002-.034.016-.067.024-.1.032.023.046.043.05.066.033.153.059.308.096.46.086.355.257.664.516.92.258.256.571.419.91.532.358.118.717.138 1.07-.016a1.89 1.89 0 00.621-.452c.328-.348.533-.76.648-1.223.009-.034.005-.071.007-.11-.015.006-.026.006-.03.011-.031.05-.064.1-.093.152-.284.502-.679.887-1.196 1.135-.351.17-.718.255-1.11.159a1.607 1.607 0 01-.971-.64 2.006 2.006 0 01-.368-.924 2.903 2.903 0 01.02-.886c.05-.439.466-1.17.742-1.271-.02.063-.035.112-.053.16-.043.116-.097.227-.13.345a1.901 1.901 0 00-.05.82c.033.212.09.416.204.6.147.236.346.407.62.465.11.023.225.014.338.018a.576.576 0 00.386-.131c.164-.128.282-.292.366-.481.168-.375.24-.777.309-1.179.05-.296.093-.594.133-.893.039-.281.071-.563.104-.845.026-.232.048-.464.074-.696.024-.228.052-.455.076-.683.024-.227.047-.455.069-.683.013-.14.022-.28.034-.42l.037-.417c.022-.25.041-.5.065-.748.008-.082-.02-.132-.09-.177a2.46 2.46 0 01-.492-.418c-.1-.109-.188-.228-.282-.342-.035-.042-.056-.097-.116-.118a2.084 2.084 0 00.275.597c.06.092.131.176.196.265.063.086.182.115.234.226-.028.003-.046.01-.06.006a4.74 4.74 0 01-.22-.057 2.71 2.71 0 01-1.287-.819c-.435-.487-.656-1.076-.71-1.723a5.206 5.206 0 01.014-1.06c.072-.602.22-1.186.45-1.745.155-.376.338-.741.526-1.102.205-.393.466-.75.765-1.076.512-.559 1.104-1.024 1.726-1.448.717-.49 1.478-.898 2.277-1.233C8.244.828 8.767.632 9.31.494c.655-.166 1.31-.33 1.982-.415.229-.03.458-.058.688-.07zm-1.847 22.82c-.07.06-.147.111-.207.18-.238.27-.464.549-.668.869l-.044.108a.177.177 0 00.093-.057c.174-.19.351-.378.519-.574.104-.122.195-.255.288-.386.024-.034.03-.08.046-.12l-.027-.02zm1.65-3.695a5.51 5.51 0 00-.653.593l-.37.386a.963.963 0 01-.377.25 1.372 1.372 0 01-.467.09c-.044 0-.087.006-.151.012.028.058.043.097.064.131.15.242.301.482.45.724.136.22.276.438.399.666.068.125.105.267.156.404.077.027.14-.018.202-.048.29-.135.579-.274.867-.412.213-.101.437-.186.636-.31.347-.215.68-.455 1.018-.685.015-.01.026-.028.042-.046-.023-.019-.038-.037-.056-.044-.287-.111-.527-.3-.77-.482a5.319 5.319 0 01-.506-.42 1.757 1.757 0 01-.41-.653c-.019-.049-.045-.095-.075-.156zm-5.847.264c-.06.096-.097.194-.132.293a3.38 3.38 0 01-.555 1.01c-.2.25-.455.412-.762.493-.23.06-.464.076-.7.07-.048-.002-.097.002-.158.005.016.04.021.066.035.085.1.145.23.246.4.295.157.046.316.034.498.023.181-.037.343-.115.485-.234.238-.199.402-.454.536-.732.175-.363.264-.751.342-1.144.01-.053.008-.11.011-.164zm14.945-4.586c.008.029.016.057.027.107.024.155.051.31.072.464.03.219.067.437.078.657.017.344.027.689-.014 1.033-.037.315-.063.633-.116.946a6.153 6.153 0 01-.46 1.518c-.008.018-.01.039-.02.082.047-.03.077-.042.098-.064.085-.083.17-.167.248-.255.271-.305.458-.66.596-1.043.18-.498.228-1.011.145-1.531-.103-.65-.33-1.263-.597-1.881a9.055 9.055 0 00-.024-.055l-.033.022zM5.797 8.29a.26.26 0 00.018.153c.124.251.25.501.379.75.025.049.066.09.03.163-.284.06-.578.119-.88.255.059.038.097.06.132.087.042.032.112.058.09.12-.01.033-.075.048-.117.072.017.01.043.021.067.036.166.102.33.207.447.368.138.192.229.404.188.644-.079.469-.306.85-.69 1.132-.054.04-.106.083-.161.122a.243.243 0 00-.103.245.77.77 0 00.055.195c.083.196.22.35.375.492.083.076.159.164.222.257a.37.37 0 01.025.377c-.023.05-.05.099-.076.148-.03.06-.028.111.022.162.041.042.08.089.112.138.038.058.078.079.147.05a.486.486 0 01.333-.006c.16.046.302.126.444.21.13.077.264.149.4.219.067.035.14.05.219.026.071-.022.124.01.145.076.02.064-.003.108-.074.139-.07.03-.137.063-.209.088-.1.035-.201.073-.314.077-.013-.107.11-.088.127-.159-.206-.126-.643-.145-.801-.034.063.112.035.21-.096.313-.13-.1-.025-.202.002-.3a.209.209 0 00-.249.17c-.015.101.067.216.178.224.108.007.218-.005.326-.012.06-.005.12-.027.199 0-.103.123-.248.127-.357.19.002.05.07.086.019.131-.053.048-.095-.001-.132-.03-.08-.063-.16-.126-.231-.197a.474.474 0 01-.157-.311.52.52 0 00-.043-.172c-.032-.074-.032-.137.033-.19-.018-.03-.028-.053-.045-.072a1.222 1.222 0 01-.196-.369c-.053-.137-.046-.264.048-.381.024-.03.05-.06.064-.095a.664.664 0 00.047-.168c.017-.165-.064-.287-.182-.387-.186-.156-.36-.322-.46-.551-.005-.011-.024-.017-.037-.026-.011.017-.024.027-.025.038-.019.185-.045.37-.052.557-.014.377.058.743.162 1.104.118.41.289.798.488 1.173.267.502.537 1.002.812 1.5.055.098.13.189.208.27.198.202.452.272.724.273.202 0 .404-.006.605-.026.295-.03.59-.073.884-.113.183-.025.365-.057.548-.08.21-.026.38.073.522.21.16.156.305.327.447.5.22.265.397.56.554.867.05.098.07.1.147.03.13-.121.26-.242.394-.36.067-.059.088-.12.067-.213a3.535 3.535 0 01-.085-.796c.002-.157.006-.314.018-.471.015-.224.03-.45.06-.672a59.114 59.114 0 01.362-2.298c.087-.493.182-.984.268-1.477.06-.347.118-.694.162-1.043.034-.273.055-.55.063-.825.011-.332.003-.665.002-.998 0-.077.004-.155-.01-.23-.028-.142-.01-.155-.162-.19a5.826 5.826 0 00-.607-.107c-.146-.018-.207-.053-.221-.19-.006-.049-.025-.098-.041-.146-.009-.025-.024-.048-.046-.09l-.025.264c-.009.096-.029.116-.127.115-.055 0-.11-.008-.164-.008-.476 0-.952-.008-1.426.032-.095.008-.173-.015-.226-.103-.04-.066-.088-.126-.134-.186-.063-.084-.086-.093-.182-.06-.195.068-.388.138-.582.21a2.71 2.71 0 00-.675.394.986.986 0 01-.323.168c-.033.01-.07.008-.127.013.02-.066.024-.114.047-.15.064-.105.135-.205.205-.306.023-.033.049-.063.073-.095l-.015-.023-.201.037c-.146.04-.296.07-.437.122-.148.053-.266.023-.386-.072a3.623 3.623 0 01-.733-.786l-.093-.132zm8.592 8.963l-.147.09c-.22.134-.44.266-.659.402-.093.058-.184.12-.27.188-.085.07-.124.161-.072.272.047.1.093.2.147.294.047.08.124.138.213.147.11.01.228.012.336-.012.217-.05.372-.205.528-.357a.291.291 0 00.087-.308c-.046-.18-.079-.365-.118-.547-.011-.052-.027-.103-.045-.169zm-.257-2.409c-.12.291-.205.597-.325.91-.151.433-.294.87-.435 1.323.036-.01.054-.01.067-.018.261-.16.522-.324.785-.484.054-.033.071-.078.065-.138-.012-.13-.024-.262-.034-.393l-.068-.886c-.008-.103-.02-.206-.029-.31-.009 0-.017-.002-.026-.004zm3.081-8.13l.099.285c.08.231.159.463.24.714l.58 1.952c.187.63.372 1.262.558 1.893.114.382.235.762.343 1.146.072.257.126.519.186.799.044.206.087.413.127.64.034.106.023.226.077.325l.025-.006-.068-.362c-.038-.206-.077-.412-.113-.638-.015-.07-.029-.141-.046-.211-.095-.396-.177-.796-.29-1.187-.196-.685-.413-1.364-.618-2.046-.165-.549-.322-1.1-.488-1.648-.069-.227-.15-.45-.226-.695l-.117-.336c-.037-.107-.075-.216-.115-.322-.04-.106-.084-.21-.127-.314a7.558 7.558 0 01-.027.01zM6.225 14.304c-.063-.001-.115.014-.134.083a.35.35 0 00.41.012 4.533 4.533 0 00-.276-.095zM5.23 11.98c-.026-.027-.057-.048-.075.002-.012.032-.007.07-.01.113.082-.037.082-.037.085-.115zm.062-1.189a.135.135 0 00-.088.056.197.197 0 00-.025.11c.005.152.01.306.026.457a.751.751 0 00.066.218c.061.136.157.167.288.101.055-.027.06-.054.025-.11a4.52 4.52 0 01-.129-.211c-.015-.068-.066-.131-.033-.207.04-.09-.076-.116-.074-.19V10.874c-.003-.038-.006-.087-.056-.083zm-.017-.968a.867.867 0 00-.467.127c-.076.045-.084.07-.05.158.034.087.07.173.115.254.064.117.09.125.21.077a.657.657 0 01.336-.053c.202.022.357.136.504.264l.092.077c.007-.006.014-.013.022-.018-.019-.105-.035-.226-.149-.264-.157-.053-.324-.075-.508-.117l-.24-.005c.24-.169.452-.044.687.009-.063-.115-.153-.147-.23-.193-.082-.05-.17-.092-.25-.144-.06-.037-.12-.08-.072-.172zm10.233.325c-.23-.01-.427.08-.608.211-.034.026-.06.065-.105.117.087.026.15.046.232.065.044-.015.088-.03.13-.046.306-.114.61-.115.904.031.126.063.237.04.366-.005-.02-.031-.03-.054-.045-.071a.986.986 0 00-.448-.273c-.14-.044-.284-.024-.426-.03zM7.99 6.483a.308.308 0 00.002.133c.08.321.156.643.242.962.104.387.27.75.456 1.103.02.037.061.08.098.087a.404.404 0 00.253-.051l-.472-.84c-.23-.448-.405-.92-.579-1.394zM10.397.497c-.2-.008-.405.004-.603.034-.236.035-.47.087-.7.152-.287.08-.569.18-.852.273-.04.013-.074.038-.11.058.028.014.05.018.07.014.287-.068.58-.085.873-.09.134-.002.269.009.402.025.19.024.382.048.57.09.456.104.874.3 1.265.556.464.306.888.66 1.257 1.078.205.232.395.475.56.739.17.274.315.561.449.856.273.601.456 1.232.6 1.876.04.173.07.348.1.524.017.104.065.167.17.19.122.028.2.105.22.251-.003.102-.06.174-.129.24a1.065 1.065 0 00-.268.358.164.164 0 00.083-.039c.08-.086.162-.172.235-.265a.56.56 0 00.13-.333c.009-.05.022-.1.024-.15.007-.124-.017-.15-.143-.168-.025-.004-.049-.014-.073-.015-.082-.007-.125-.063-.137-.131-.033-.198-.004-.355.247-.408.086-.018.174-.03.26-.042.158-.023.315-.053.473-.067.14-.012.19.033.226.167.008.029.018.057.021.087.019.179-.008.225-.141.288-.027.013-.055.024-.078.042a.148.148 0 00-.051.067c-.039.144.073.382.206.445l.673.32c.023.011.05.015.075.023l.018-.026c-.015-.008-.032-.013-.044-.024a2.27 2.27 0 00-.544-.32 4.898 4.898 0 00-.173-.075.203.203 0 01-.126-.191c-.003-.085.045-.154.128-.187l.059-.025c.099-.044.118-.076.112-.187a.384.384 0 00-.008-.063c-.067-.294-.123-.59-.205-.88a9.478 9.478 0 00-.826-2.036 7.465 7.465 0 00-1.39-1.805 4.536 4.536 0 00-1.177-.824 3.656 3.656 0 00-1.016-.328 6.155 6.155 0 00-.712-.074zm6.719 5.955c.01.014.018.028.038.034l-.022-.044-.016.01zM4.103 3.917a.062.062 0 01-.03.012.455.455 0 01-.04.039c-.01.01-.02.02-.045.04l-.363.354c-.088.085-.17.178-.266.253-.284.22-.425.53-.544.855a.132.132 0 00-.007.071c.013.055.033.108.052.168l.074.026c-.017.056-.03.105-.047.152-.058.164-.118.327-.175.491-.005.015.008.036.019.077.08-.175.158-.33.225-.489.228-.544.484-1.074.819-1.561.09-.133.182-.266.283-.401.004-.006.007-.013.022-.03.001-.016.003-.032.015-.04l.008-.017zm12.976 2.408a.023.023 0 01.009.019.073.073 0 00-.006.01.188.188 0 00.007.02l.018.022c.002-.007.007-.016.005-.021-.003-.01-.012-.018-.02-.038a1.331 1.331 0 01-.013-.012zM4.199 4.48c-.003.004-.008.008-.027.014-.005.013-.011.025-.031.047a2.085 2.085 0 01-.124.167c-.048.07-.116.055-.181.041-.134-.028-.228.016-.287.143-.089.187-.187.37-.273.56-.049.108-.11.216-.118.36.081.003.154.007.228.008h.228a2.563 2.563 0 01-.079.264c-.01.052-.022.103-.033.155l.02.004c.018-.046.037-.092.067-.153.066-.142.13-.285.2-.426.02-.04.034-.1.116-.092 0 .043.004.084 0 .124-.005.045-.017.09-.028.143.141.043.086.174.115.269.102-.022.104-.195.248-.144v.205l.017.002.439-1.059c-.13 0-.246-.02-.358.033-.024.011-.058-.001-.108-.004.075-.15.139-.278.211-.417a.128.128 0 01.025-.036c0-.015-.001-.03.008-.038l.006-.02c-.005.006-.01.011-.028.017-.004.012-.009.024-.026.045a.085.085 0 01-.032.033c-.123.157-.09.164-.258.106-.079-.027-.078-.028-.047-.144.028-.046.056-.093.098-.15 0-.016-.001-.032.007-.042L4.2 4.48zm2.073-.67c-.003.006-.007.011-.027.016-.094.125-.194.246-.28.377-.155.238-.301.481-.451.723-.14.224-.345.368-.575.481-.017.008-.04.006-.079.011.012-.059.016-.109.033-.153a6.076 6.076 0 01.229-.518l-.007-.02a.138.138 0 01-.035.025c-.028.05-.055.1-.093.164-.26.424-.443.817-.442.95.024.004.048.011.073.013.177.013.188.007.26-.165.03-.07.077-.12.147-.15l.175-.07c.044-.018.085-.057.146-.032.003.05-.01.11.014.145.042.062.044.125.047.193.002.049.017.098.026.147.029-.034.039-.065.05-.097.142-.39.277-.782.428-1.17.1-.256.22-.504.33-.756.013-.03.013-.067.03-.092V3.81zm3.987-.34c0 .045.01.084.021.123.042.16.094.318.124.48.024.133.023.27.028.406 0 .033-.019.067-.032.11-.094-.058-.047-.158-.106-.215h-.125c-.015.072-.01.152-.046.2-.066.085-.155.154-.236.227-.043.038-.078.018-.103-.025l-.046-.087c-.065.035-.117.069-.172.093-.116.051-.235.095-.35.147-.085.038-.09.053-.07.147.014.075.034.148.047.223.013.072.05.109.123.124.233.05.462.115.657.265.058-.102.058-.102.168-.151.03-.014.06-.03.092-.042.08-.03.115-.017.15.06.023.048.041.098.066.158.06-.14-.042-.267.017-.416.157.18.24.39.375.567a.235.235 0 00.022-.098c.002-.124 0-.247.002-.371 0-.034.013-.067.02-.1l.032-.003c.11.155.13.354.226.52a3.036 3.036 0 00-.01-.392c-.004-.045 0-.074.05-.088.08.036.116.14.215.158-.03-.275-.423-1.137-.798-1.635-.114-.127-.2-.28-.34-.386zm-2.667.696c-.019.034-.03.05-.037.067-.061.185-.125.37-.18.556-.031.105-.087.169-.195.19-.09.019-.178.052-.268.073-.038.009-.089.015-.118-.003-.024-.016-.025-.069-.036-.106-.064.076-.082.087-.17.047-.133-.062-.262-.135-.393-.201-.048-.025-.093-.063-.17-.03-.043.12-.091.25-.137.382-.099.28-.087.242.095.453.046.048.102.03.154.023.054-.009.106-.03.16-.036.13-.013.26-.08.367-.015.204-.064.387-.122.571-.178.05-.015.089.005.114.054.022.042.034.093.082.121.038-.056-.013-.128.063-.178l.14.241-.042-1.46zm.278.358c-.096-.01-.107.01-.11.108-.002.038-.003.078.002.115.03.2.099.386.174.57.002.006.012.01.022.015l.078-.05c.052.036.081.088.153.088.205-.002.41.014.616.012.099-.001.158.042.205.12.018.03.024.077.088.066l-.08-.394c-.05-.195-.085-.395-.172-.589-.057.057-.114.068-.18.046a.72.72 0 00-.135-.028c-.22-.028-.44-.059-.66-.08zm10.254-1.727c.089.163.155.316.139.491-.016.168.026.342-.044.516-.047-.033-.088-.082-.112-.075-.117.035-.164-.057-.227-.115a4.772 4.772 0 01-.286-.29l-.104-.113a4.856 4.856 0 01-.023.019c.035.046.07.093.11.156.04.064.084.127.122.193.034.058.065.118.031.205-.082-.01-.164-.019-.246-.032-.06-.01-.101 0-.124.07-.031.098-.037.096-.15.09.02.042.036.08.057.116.041.074.03.138-.03.196-.06.06-.118.122-.178.181a.175.175 0 01-.185.046c-.222-.061-.447-.113-.67-.174-.032-.009-.063-.04-.086-.068-.03-.04-.052-.087-.08-.13-.044-.07-.09-.138-.136-.207a.18.18 0 00-.014.105c.012.127.03.253.035.38.005.1-.024.12-.121.104-.104-.017-.206-.04-.31-.058-.064-.012-.131-.028-.202.03l.081.208c.09 0 .166-.01.237.002a.819.819 0 01.458.251c.078.083.154.168.241.26l.018-.005c-.004-.006-.008-.013-.01-.04.014-.056-.062-.118.018-.178.031.03.064.057.088.09.058.078.111.159.169.257l.089.141.024-.013a2093.819 2093.819 0 01-.427-.934c.055.007.083.007.108.016.193.07.385.142.577.216.074.028.147.06.219.094.062.028.112.018.157-.033.05-.056.102-.112.154-.167.05-.051.095-.046.132.014.016.025.026.053.04.08.071.138.143.277.217.433l.159.308.025-.011c-.044-.106-.07-.218-.138-.334-.057-.182-.168-.346-.206-.545.136.034.362.326.567.732l.057.074.018-.011a1.563 1.563 0 01-.052-.127c-.046-.145-.097-.29-.136-.436-.022-.083-.036-.173.022-.26l.109.058-.026-.207.027-.016c.022.02.05.036.065.06.073.108.143.22.215.33.01.016.029.029.043.043-.036-.217-.2-.38-.229-.626l.155.112c.014-.166.012-.319.042-.465.032-.158-.023-.297-.063-.445.024.004.036.006.055.025.092.124.183.249.277.371.02.027.05.047.069.087l.04.063.019-.015a.293.293 0 01-.053-.082 27.922 27.922 0 01-.332-.49c-.221-.311-.363-.467-.485-.521zm-6.57.327c-.003.161.092.275.069.415l-.368.087c.09.139.032.237-.052.331-.05.057-.092.122-.143.178-.037.04-.046.078-.018.126l.16.275c.029.048.072.066.128.064.076-.003.152 0 .228-.001.116-.003.216.022.275.137.006.014.02.024.044.052.004-.059-.003-.098.01-.13.016-.04.04-.099.072-.108.084-.023.173-.024.26-.03.013-.001.027.018.04.029l.071.065c.019-.11-.082-.198-.024-.31l.126.04c-.026-.123-.07-.245-.071-.366 0-.123.051-.243.115-.36.107.062.16.156.234.253.183.265.36.533.494.834.165-.078.27.068.407.088-.003-.106-.133-.441-.197-.492a.142.142 0 00-.102-.028c-.06.011-.119.039-.191.063-.025-.039-.056-.078-.077-.122a3.936 3.936 0 00-.473-.783c-.076-.094-.16-.182-.228-.26l-.391.285c-.049.035-.094.03-.132-.017l-.169-.207c-.025-.03-.053-.059-.097-.108z"})]})}function MN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"currentColor",className:t,children:T.jsx("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"})})}function NN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,"aria-hidden":"true",children:T.jsx("g",{transform:"translate(3.4502, 3)",fill:"#9570BE",children:T.jsx("path",{d:"M3.17890888,3.6 L3.17890888,0 L16,0 L16,3.6 L3.17890888,3.6 Z M9.642,7.2 L9.64218223,10.8 L0,10.8 L0,3.6 L16,3.6 L16,7.2 L9.642,7.2 Z M3.17890888,18 L3.178,14.4 L0,14.4 L0,10.8 L16,10.8 L16,18 L3.17890888,18 Z",fillRule:"nonzero"})})})}function ON({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 120 90",fill:"currentColor",className:t,children:[T.jsx("rect",{x:"10",y:"8",width:"100",height:"12",rx:"2"}),T.jsx("rect",{x:"25",y:"20",width:"12",height:"62",rx:"2"}),T.jsx("rect",{x:"75",y:"20",width:"12",height:"45",rx:"2"}),T.jsx("rect",{x:"71",y:"55",width:"20",height:"16",rx:"3"}),T.jsx("rect",{x:"76",y:"71",width:"3",height:"8",rx:"1"}),T.jsx("rect",{x:"82",y:"71",width:"3",height:"8",rx:"1"})]})}function jN({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 120 90",fill:"currentColor",className:t,children:[T.jsx("rect",{x:"10",y:"8",width:"100",height:"12",rx:"2"}),T.jsx("rect",{x:"25",y:"20",width:"12",height:"62",rx:"2"}),T.jsx("rect",{x:"83",y:"20",width:"12",height:"62",rx:"2"})]})}function UN({size:e=16,className:t=""}){return T.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[T.jsx("path",{d:"M9 3v2"}),T.jsx("path",{d:"M15 3v2"}),T.jsx("rect",{x:"4",y:"6",width:"16",height:"13",rx:"3"}),T.jsx("circle",{cx:"9",cy:"13",r:"1.4",fill:"currentColor",stroke:"none"}),T.jsx("circle",{cx:"15",cy:"13",r:"1.4",fill:"currentColor",stroke:"none"}),T.jsx("path",{d:"M9 16h6"})]})}const zN={CLAUDE:xN,CODEBUDDY:DN,CODEX:PN,COPILOT:LN,CRAFT:NN,CURSOR:SN,DROID:UN,GEMINI:CN,GITHUB:MN,GROK:TN,HERMES:IN,KIMI:RN,KIRO:EN,OPENCODE:AN,OMP:ON,PI:jN},BN={ANTIGRAVITY:"/brand-logos/antigravity.svg",CLAUDE:"/brand-logos/claude-code.svg",CODEX:"/brand-logos/codex.svg",GEMINI:"/brand-logos/gemini.svg","KILO-CLI":"/brand-logos/kilo.svg","KILO-CODE":"/brand-logos/kilo.svg",OPENCLAW:"/brand-logos/openclaw.svg",OPENCODE:"/brand-logos/opencode.svg"};function FN({size:e=16,className:t=""}){return T.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:T.jsx("circle",{cx:"12",cy:"12",r:"7.5",strokeDasharray:"3 3"})})}function VN({provider:e,size:t=16,color:n,className:a=""}){const i=e?.toUpperCase?.()||"",s=BN[i];if(s)return T.jsx("img",{src:s,alt:"",width:t,height:t,className:a,style:{width:t,height:t,objectFit:"contain"},"aria-hidden":!0});const l=zN[i];return l?T.jsx(l,{size:t,className:a}):T.jsx(FN,{size:t,className:`text-oai-gray-400 dark:text-oai-gray-500 shrink-0 ${a}`})}const bP="tokentracker-skills";async function no(e){const t=new URL(`/functions/${bP}`,window.location.origin);if(e)for(const[i,s]of Object.entries(e))s!=null&&s!==""&&t.searchParams.set(i,String(s));const n=await fetch(t.toString(),{headers:{Accept:"application/json"},cache:"no-store"}),a=await n.json().catch(()=>null);if(!n.ok)throw new Error(a?.error||`Request failed with HTTP ${n.status}`);return a}async function hi(e){const t=await Kl(),n=await fetch(`/functions/${bP}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",...t},cache:"no-store",body:JSON.stringify(e)}),a=await n.json().catch(()=>null);if(!n.ok||a?.ok===!1)throw new Error(a?.error||`Request failed with HTTP ${n.status}`);return a}function HN(){return no({mode:"installed"})}function Lz(e={}){return no({mode:"discover",...e.force?{force:1}:{}})}function Dz(e,t=0,n=20){return no({mode:"search",q:e,offset:t,limit:n})}function Iz(){return no({mode:"repos"})}function Mz(e,t){return hi({action:"install",skill:e,targets:t})}function Nz(e){return hi({action:"uninstall",id:e})}function Oz(e){return hi({action:"restore",id:e})}function jz(e,t){return hi({action:"set_targets",id:e,targets:t})}function Uz(e,t){return hi({action:"import_local",directory:e,targets:t})}function zz(e,t){return hi({action:"delete_local",directory:e,targets:t||[]})}function Bz(e){return hi({action:"add_repo",repo:e})}function Fz(e,t){return hi({action:"remove_repo",owner:e,name:t})}function Vz(e={}){return no({mode:"popular",...e.force?{force:1}:{}})}function Hz(e={}){return no({mode:"updates",...e.force?{force:1}:{}})}function $z(e={}){return no({mode:"skill_usage",...e.force?{force:1}:{}})}const $N=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");function WN(){const e=ss(),t=KM(),[n,a]=b.useState(!1),[i,s]=b.useState(""),[l,u]=b.useState(0),[h,f]=b.useState([]),p=b.useRef(null),g=b.useRef(null);b.useEffect(()=>{const E=A=>{(A.metaKey||A.ctrlKey)&&(A.key==="k"||A.key==="K")&&(A.preventDefault(),a(F=>!F))};return window.addEventListener("keydown",E),()=>window.removeEventListener("keydown",E)},[]),b.useEffect(()=>{if(!n)return;s(""),u(0);const E=requestAnimationFrame(()=>p.current?.focus());return $N&&!h.length&&HN().then(A=>f(A?.skills||[])).catch(()=>f([])),()=>cancelAnimationFrame(E)},[n,h.length]);const v=b.useMemo(()=>{const E=yP().flatMap(U=>U.items.map(F=>({kind:"page",id:`page:${F.id}`,label:F.label,sub:De("cmdk.group.pages"),Icon:F.icon,run:()=>e(F.to)}))),A=(h||[]).map(U=>({kind:"skill",id:`skill:${U.id||U.directory}`,label:U.name||U.directory,sub:U.repoOwner&&U.repoName?`${U.repoOwner}/${U.repoName}`:De("cmdk.group.skills"),provider:(U.targets||[])[0]||"claude",run:()=>e(`/skills?skill=${encodeURIComponent(U.directory||U.id)}`)}));return[...E,...A]},[e,h]),_=b.useMemo(()=>{const E=i.trim().toLowerCase();return E?v.filter(A=>A.label.toLowerCase().includes(E)||String(A.sub||"").toLowerCase().includes(E)):v},[v,i]);b.useEffect(()=>{l>=_.length&&u(_.length?_.length-1:0)},[l,_.length]),b.useEffect(()=>{if(!n)return;g.current?.querySelector(`[data-cmdk-index="${l}"]`)?.scrollIntoView({block:"nearest"})},[l,n]);const w=b.useCallback(()=>a(!1),[]),S=b.useCallback(E=>{E&&(w(),E.run())},[w]),P=E=>{E.key==="ArrowDown"?(E.preventDefault(),u(A=>Math.min(A+1,Math.max(0,_.length-1)))):E.key==="ArrowUp"?(E.preventDefault(),u(A=>Math.max(A-1,0))):E.key==="Enter"?(E.preventDefault(),S(_[l])):E.key==="Escape"&&(E.preventDefault(),w())},D={duration:t?0:.12},R=t?{duration:0}:{type:"spring",stiffness:460,damping:34,mass:.6};return T.jsx(Fx,{children:n?T.jsxs(Cl.div,{className:"fixed inset-0 z-[120] flex items-start justify-center px-4 pt-[16vh]",initial:t?!1:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:D,children:[T.jsx("button",{type:"button","aria-label":De("cmdk.close"),onClick:w,className:"absolute inset-0 cursor-default bg-oai-black/40"}),T.jsxs(Cl.div,{role:"dialog","aria-modal":"true","aria-label":De("cmdk.open_aria"),initial:t?!1:{opacity:0,y:-8,scale:.985},animate:{opacity:1,y:0,scale:1},exit:t?{opacity:0}:{opacity:0,y:-8,scale:.985},transition:R,className:"relative w-full max-w-xl overflow-hidden rounded-2xl border border-oai-gray-200 bg-oai-white shadow-2xl dark:border-oai-gray-800 dark:bg-oai-gray-950",children:[T.jsxs("div",{className:"flex items-center gap-2.5 border-b border-oai-gray-200 px-4 dark:border-oai-gray-800",children:[T.jsx(OR,{className:"h-4 w-4 shrink-0 text-oai-gray-400","aria-hidden":!0}),T.jsx("input",{ref:p,type:"text",value:i,onChange:E=>{s(E.target.value),u(0)},onKeyDown:P,"aria-label":De("cmdk.placeholder"),"aria-controls":"cmdk-listbox","aria-activedescendant":_[l]?`cmdk-opt-${l}`:void 0,role:"combobox","aria-expanded":"true",placeholder:De("cmdk.placeholder"),className:"h-12 w-full bg-transparent text-sm text-oai-black placeholder:text-oai-gray-400 focus:outline-none dark:text-white"})]}),T.jsx("div",{ref:g,id:"cmdk-listbox",role:"listbox",className:"max-h-[min(56vh,22rem)] overflow-y-auto p-1.5",children:_.length===0?T.jsx("div",{className:"px-3 py-8 text-center text-sm text-oai-gray-500 dark:text-oai-gray-400",children:De("cmdk.empty")}):_.map((E,A)=>{const U=A===l;return T.jsxs("button",{type:"button",role:"option",id:`cmdk-opt-${A}`,"data-cmdk-index":A,"aria-selected":U,onMouseMove:()=>u(A),onClick:()=>S(E),className:St("flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm transition-colors",U?"bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800/70 dark:text-white":"text-oai-gray-700 dark:text-oai-gray-200"),children:[T.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center text-oai-gray-500 dark:text-oai-gray-400",children:E.kind==="skill"?T.jsx(VN,{provider:E.provider,size:16}):T.jsx(E.Icon,{className:"h-4 w-4","aria-hidden":!0})}),T.jsx("span",{className:"min-w-0 flex-1 truncate font-medium",children:E.label}),T.jsx("span",{className:"shrink-0 truncate text-xs text-oai-gray-400 dark:text-oai-gray-500",children:E.sub}),U?T.jsx(yR,{className:"h-3.5 w-3.5 shrink-0 text-oai-gray-400","aria-hidden":!0}):null]},E.id)})})]})]}):null})}const GN=[];function Yg(e){b.useEffect(e,GN)}const A_={};function ys(e,t){const n=b.useRef(A_);return n.current===A_&&(n.current=e(t)),n}function KN(e,t){return function(a,...i){const s=new URL(e);return s.searchParams.set("code",a.toString()),i.forEach(l=>s.searchParams.append("args[]",l)),`${t} error #${a}; visit ${s} for the full message.`}}const vs=KN("https://base-ui.com/production-error","Base UI"),Zg=b.createContext(void 0);function Xg(){const e=b.useContext(Zg);if(!e)throw new Error(vs(73));return e}const _a=(e,t,n,a,i,s,...l)=>{if(l.length>0)throw new Error(vs(1));let u;if(e&&t&&n&&a&&i&&s)u=(h,f,p,g)=>{const v=e(h,f,p,g),_=t(h,f,p,g),w=n(h,f,p,g),S=a(h,f,p,g),P=i(h,f,p,g);return s(v,_,w,S,P,f,p,g)};else if(e&&t&&n&&a&&i)u=(h,f,p,g)=>{const v=e(h,f,p,g),_=t(h,f,p,g),w=n(h,f,p,g),S=a(h,f,p,g);return i(v,_,w,S,f,p,g)};else if(e&&t&&n&&a)u=(h,f,p,g)=>{const v=e(h,f,p,g),_=t(h,f,p,g),w=n(h,f,p,g);return a(v,_,w,f,p,g)};else if(e&&t&&n)u=(h,f,p,g)=>{const v=e(h,f,p,g),_=t(h,f,p,g);return n(v,_,f,p,g)};else if(e&&t)u=(h,f,p,g)=>{const v=e(h,f,p,g);return t(v,f,p,g)};else if(e)u=e;else throw new Error("Missing arguments");return u};var dp={exports:{}},hp={};var R_;function qN(){if(R_)return hp;R_=1;var e=zl();function t(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,i=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(g,v){var _=v(),w=a({inst:{value:_,getSnapshot:v}}),S=w[0].inst,P=w[1];return s(function(){S.value=_,S.getSnapshot=v,h(S)&&P({inst:S})},[g,_,v]),i(function(){return h(S)&&P({inst:S}),g(function(){h(S)&&P({inst:S})})},[g]),l(_),_}function h(g){var v=g.getSnapshot;g=g.value;try{var _=v();return!n(g,_)}catch{return!0}}function f(g,v){return v()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return hp.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,hp}var L_;function kP(){return L_||(L_=1,dp.exports=qN()),dp.exports}var YN=kP(),fp={exports:{}},pp={};var D_;function ZN(){if(D_)return pp;D_=1;var e=zl(),t=kP();function n(f,p){return f===p&&(f!==0||1/f===1/p)||f!==f&&p!==p}var a=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,h=e.useDebugValue;return pp.useSyncExternalStoreWithSelector=function(f,p,g,v,_){var w=s(null);if(w.current===null){var S={hasValue:!1,value:null};w.current=S}else S=w.current;w=u(function(){function D(F){if(!R){if(R=!0,E=F,F=v(F),_!==void 0&&S.hasValue){var j=S.value;if(_(j,F))return A=j}return A=F}if(j=A,a(E,F))return j;var C=v(F);return _!==void 0&&_(j,C)?(E=F,j):(E=F,A=C)}var R=!1,E,A,U=g===void 0?null:g;return[function(){return D(p())},U===null?void 0:function(){return D(U())}]},[p,g,v,_]);var P=i(f,w[0],w[1]);return l(function(){S.hasValue=!0,S.value=P},[P]),h(P),P},pp}var I_;function XN(){return I_||(I_=1,fp.exports=ZN()),fp.exports}var JN=XN();const QN=parseInt(b.version,10);function Jg(e){return QN>=e}const eO=Jg(19),tO=eO?aO:rO;function _P(e,t,n,a,i){return tO(e,t,n,a,i)}function nO(e,t,n,a,i){const s=b.useCallback(()=>t(e.getSnapshot(),n,a,i),[e,t,n,a,i]);return YN.useSyncExternalStore(e.subscribe,s,s)}function aO(e,t,n,a,i){return nO(e,t,n,a,i)}function rO(e,t,n,a,i){return JN.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,s=>t(s,n,a,i))}class iO{constructor(t){this.state=t,this.listeners=new Set,this.updateTick=0}subscribe=t=>(this.listeners.add(t),()=>{this.listeners.delete(t)});getSnapshot=()=>this.state;setState(t){if(this.state===t)return;this.state=t,this.updateTick+=1;const n=this.updateTick;for(const a of this.listeners){if(n!==this.updateTick)return;a(t)}}update(t){for(const n in t)if(!Object.is(this.state[n],t[n])){this.setState({...this.state,...t});return}}set(t,n){Object.is(this.state[t],n)||this.setState({...this.state,[t]:n})}notifyAll(){const t={...this.state};this.setState(t)}use(t,n,a,i){return _P(this,t,n,a,i)}}const Qg={...J_},mp=Qg.useInsertionEffect,oO=mp&&mp!==Qg.useLayoutEffect?mp:e=>e();function Xi(e){const t=ys(sO).current;return t.next=e,oO(t.effect),t.trampoline}function sO(){const e={next:void 0,callback:lO,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function lO(){}const cO=()=>{},Ka=typeof document<"u"?b.useLayoutEffect:cO;function uO(){}const Wz=Object.freeze([]),Bi=Object.freeze({});class dO extends iO{constructor(t,n={},a){super(t),this.context=n,this.selectors=a}useSyncedValue(t,n){b.useDebugValue(t);const a=this;Ka(()=>{a.state[t]!==n&&a.set(t,n)},[a,t,n])}useSyncedValueWithCleanup(t,n){const a=this;Ka(()=>(a.state[t]!==n&&a.set(t,n),()=>{a.set(t,void 0)}),[a,t,n])}useSyncedValues(t){const n=this,a=Object.values(t);Ka(()=>{n.update(t)},[n,...a])}useControlledProp(t,n){b.useDebugValue(t);const a=this,i=n!==void 0;Ka(()=>{i&&!Object.is(a.state[t],n)&&a.setState({...a.state,[t]:n})},[a,t,n,i])}select(t,n,a,i){const s=this.selectors[t];return s(this.state,n,a,i)}useState(t,n,a,i){return b.useDebugValue(t),_P(this,this.selectors[t],n,a,i)}useContextCallback(t,n){b.useDebugValue(t);const a=Xi(n??uO);this.context[t]=a}useStateSetter(t){const n=b.useRef(void 0);return n.current===void 0&&(n.current=a=>{this.set(t,a)}),n.current}observe(t,n){let a;typeof t=="function"?a=t:a=this.selectors[t];let i=a(this.state);return n(i,i,this),this.subscribe(s=>{const l=a(s);if(!Object.is(i,l)){const u=i;i=l,n(l,u,this)}})}}function Gd(){return typeof window<"u"}function Aa(e){return e0(e)?(e.nodeName||"").toLowerCase():"#document"}function xr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function hO(e){var t;return(t=(e0(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function e0(e){return Gd()?e instanceof Node||e instanceof xr(e).Node:!1}function t0(e){return Gd()?e instanceof Element||e instanceof xr(e).Element:!1}function ci(e){return Gd()?e instanceof HTMLElement||e instanceof xr(e).HTMLElement:!1}function Td(e){return!Gd()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof xr(e).ShadowRoot}function wP(e){const{overflow:t,overflowX:n,overflowY:a,display:i}=Kd(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&i!=="inline"&&i!=="contents"}function Gz(e){return/^(table|td|th)$/.test(Aa(e))}function fO(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const pO=/transform|translate|scale|rotate|perspective|filter/,mO=/paint|layout|strict|content/,Di=e=>!!e&&e!=="none";let gp;function gO(e){const t=t0(e)?Kd(e):e;return Di(t.transform)||Di(t.translate)||Di(t.scale)||Di(t.rotate)||Di(t.perspective)||!yO()&&(Di(t.backdropFilter)||Di(t.filter))||pO.test(t.willChange||"")||mO.test(t.contain||"")}function Kz(e){let t=wm(e);for(;ci(t)&&!xP(t);){if(gO(t))return t;if(fO(t))return null;t=wm(t)}return null}function yO(){return gp==null&&(gp=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),gp}function xP(e){return/^(html|body|#document)$/.test(Aa(e))}function Kd(e){return xr(e).getComputedStyle(e)}function qz(e){return t0(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function wm(e){if(Aa(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Td(e)&&e.host||hO(e);return Td(t)?t.host:t}function PP(e){const t=wm(e);return xP(t)?e.ownerDocument?e.ownerDocument.body:e.body:ci(t)&&wP(t)?t:PP(t)}function M_(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=PP(e),s=i===((a=e.ownerDocument)==null?void 0:a.body),l=xr(i);if(s){const u=vO(l);return t.concat(l,l.visualViewport||[],wP(i)?i:[],u&&n?M_(u):[])}else return t.concat(i,M_(i,[],n))}function vO(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function SP(...e){return()=>{for(let t=0;t<e.length;t+=1){const n=e[t];n&&n()}}}function Ta(e){return e?.ownerDocument||document}function Fi(e,t,n,a){return e.addEventListener(t,n,a),()=>{e.removeEventListener(t,n,a)}}const _u=null;class bO{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=t=>{this.isScheduled=!1;const n=this.callbacks,a=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,a>0)for(let i=0;i<n.length;i+=1)n[i]?.(t)};request(t){const n=this.nextId;return this.nextId+=1,this.callbacks.push(t),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(t){const n=t-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}}const wu=new bO;class n0{static create(){return new n0}static request(t){return wu.request(t)}static cancel(t){return wu.cancel(t)}currentId=_u;request(t){this.cancel(),this.currentId=wu.request(()=>{this.currentId=_u,t()})}cancel=()=>{this.currentId!==_u&&(wu.cancel(this.currentId),this.currentId=_u)};disposeEffect=()=>this.cancel}function kO(){const e=ys(n0.create).current;return Yg(e.disposeEffect),e}const cl=0;class Ul{static create(){return new Ul}currentId=cl;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=cl,n()},t)}isStarted(){return this.currentId!==cl}clear=()=>{this.currentId!==cl&&(clearTimeout(this.currentId),this.currentId=cl)};disposeEffect=()=>this.clear}function _O(){const e=ys(Ul.create).current;return Yg(e.disposeEffect),e}let N_=0;function CP(e){return N_+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${N_}`}function yp(e,t){if(typeof e=="string")return{description:e};if(typeof e=="function"){const n=e(t);return typeof n=="string"?{description:n}:n}return e}const bs=typeof navigator<"u",vp=xO(),TP=SO(),EP=PO(),Yz=typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter:none"),Zz=vp.platform==="MacIntel"&&vp.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(vp.platform),wO=bs&&/apple/i.test(navigator.vendor),xm=bs&&/android/i.test(TP)||/android/i.test(EP);bs&&TP.toLowerCase().startsWith("mac")&&navigator.maxTouchPoints;const AP=EP.includes("jsdom/");function xO(){if(!bs)return{platform:"",maxTouchPoints:-1};const e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}function PO(){if(!bs)return"";const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function SO(){if(!bs)return"";const e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??""}const O_="data-base-ui-focusable",RP="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",bp="ArrowLeft",kp="ArrowRight",CO="ArrowUp",TO="ArrowDown";function Zo(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function Pr(e,t){if(!e||!t)return!1;const n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&Td(n)){let a=t;for(;a;){if(e===a)return!0;a=a.parentNode||a.host}}return!1}function Vi(e){return"composedPath"in e?e.composedPath()[0]:e.target}function Xz(e,t){if(!t0(e))return!1;const n=e;if(t.hasElement(n))return!n.hasAttribute("data-trigger-disabled");for(const[,a]of t.entries())if(Pr(a,n))return!a.hasAttribute("data-trigger-disabled");return!1}function Jz(e,t){if(t==null)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return n.target!=null&&t.contains(n.target)}function Qz(e){return e.matches("html,body")}function EO(e){return ci(e)&&e.matches(RP)}function eB(e){return e?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${RP}`)!=null}function tB(e){return e?e.getAttribute("role")==="combobox"&&EO(e):!1}function Pm(e){if(!e||AP)return!0;try{return e.matches(":focus-visible")}catch{return!0}}function nB(e){return e?e.hasAttribute(O_)?e:e.querySelector(`[${O_}]`)||e:null}function _p(e){e.preventDefault(),e.stopPropagation()}function aB(e){return"nativeEvent"in e}function rB(e){return e.pointerType===""&&e.isTrusted?!0:xm&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function iB(e){return AP?!1:!xm&&e.width===0&&e.height===0||xm&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function oB(e,t){const n=["mouse","pen"];return t||n.push("",void 0),n.includes(e)}function sB(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}const lB=["top","right","bottom","left"],AO=Math.min,RO=Math.max,cB=Math.round,wp=Math.floor,uB=e=>({x:e,y:e}),LO={left:"right",right:"left",bottom:"top",top:"bottom"};function dB(e,t,n){return RO(e,AO(t,n))}function hB(e,t){return typeof e=="function"?e(t):e}function LP(e){return e.split("-")[0]}function DP(e){return e.split("-")[1]}function DO(e){return e==="x"?"y":"x"}function IO(e){return e==="y"?"height":"width"}function MO(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function NO(e){return DO(MO(e))}function fB(e,t,n){n===void 0&&(n=!1);const a=DP(e),i=NO(e),s=IO(i);let l=i==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Cm(l)),[l,Cm(l)]}function pB(e){const t=Cm(e);return[Sm(e),t,Sm(t)]}function Sm(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const j_=["left","right"],U_=["right","left"],OO=["top","bottom"],jO=["bottom","top"];function UO(e,t,n){switch(e){case"top":case"bottom":return n?t?U_:j_:t?j_:U_;case"left":case"right":return t?OO:jO;default:return[]}}function mB(e,t,n,a){const i=DP(e);let s=UO(LP(e),n==="start",a);return i&&(s=s.map(l=>l+"-"+i),t&&(s=s.concat(s.map(Sm)))),s}function Cm(e){const t=LP(e);return LO[t]+e.slice(t.length)}function zO(e){return{top:0,right:0,bottom:0,left:0,...e}}function gB(e){return typeof e!="number"?zO(e):{top:e,right:e,bottom:e,left:e}}function yB(e){const{x:t,y:n,width:a,height:i}=e;return{width:a,height:i,top:n,left:t,right:t+a,bottom:n+i,x:t,y:n}}function xu(e,t,n){return Math.floor(e/t)!==n}function z_(e,t){return t<0||t>=e.length}function vB(e,t){return Pa(e.current,{disabledIndices:t})}function bB(e,t){return Pa(e.current,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function Pa(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:a,amount:i=1}={}){let s=t;do s+=n?-i:i;while(s>=0&&s<=e.length-1&&Tm(e,s,a));return s}function kB(e,{event:t,orientation:n,loopFocus:a,onLoop:i,rtl:s,cols:l,disabledIndices:u,minIndex:h,maxIndex:f,prevIndex:p,stopEvent:g=!1}){let v=p,_;if(t.key===CO?_="up":t.key===TO&&(_="down"),_){const w=[],S=[];let P=!1,D=0;{let K=null,Y=-1;e.forEach((ce,re)=>{if(ce==null)return;D+=1;const fe=ce.closest('[role="row"]');fe&&(P=!0),(fe!==K||Y===-1)&&(K=fe,Y+=1,w[Y]=[]),w[Y].push(re),S[re]=Y})}let R=!1,E=0;if(P)for(const K of w){const Y=K.length;Y>E&&(E=Y),Y!==l&&(R=!0)}const A=R&&D<e.length,U=E||l,F=K=>{if(!R||p===-1)return;const Y=S[p];if(Y==null)return;const ce=w[Y].indexOf(p),re=K==="up"?-1:1;for(let fe=Y+re,de=0;de<w.length;de+=1,fe+=re){if(fe<0||fe>=w.length){if(!a||A)return;if(fe=fe<0?w.length-1:0,i){const oe=Math.min(ce,w[fe].length-1),X=w[fe][oe]??w[fe][0],Z=i(t,p,X);fe=S[Z]??fe}}const he=w[fe];for(let oe=Math.min(ce,he.length-1);oe>=0;oe-=1){const X=he[oe];if(!Tm(e,X,u))return X}}},j=K=>{if(!A||p===-1)return;const Y=p%U,ce=K==="up"?-U:U,re=f-f%U,fe=wp(f/U)+1;for(let de=p-Y+ce,he=0;he<fe;he+=1,de+=ce){if(de<0||de>f){if(!a)return;de=de<0?re:0}const oe=Math.min(de+U-1,f);for(let X=Math.min(de+Y,oe);X>=de;X-=1)if(!Tm(e,X,u))return X}};g&&_p(t);const C=F(_)??j(_);if(C!==void 0)v=C;else if(p===-1)v=_==="up"?f:h;else if(v=Pa(e,{startingIndex:p,amount:U,decrement:_==="up",disabledIndices:u}),a){if(_==="up"&&(p-U<h||v<0)){const K=p%U,Y=f%U,ce=f-(Y-K);Y===K?v=f:v=Y>K?ce:ce-U,i&&(v=i(t,p,v))}_==="down"&&p+U>f&&(v=Pa(e,{startingIndex:p%U-U,amount:U,disabledIndices:u}),i&&(v=i(t,p,v)))}z_(e,v)&&(v=p)}if(n==="both"){const w=wp(p/l);t.key===(s?bp:kp)&&(g&&_p(t),p%l!==l-1?(v=Pa(e,{startingIndex:p,disabledIndices:u}),a&&xu(v,l,w)&&(v=Pa(e,{startingIndex:p-p%l-1,disabledIndices:u}),i&&(v=i(t,p,v)))):a&&(v=Pa(e,{startingIndex:p-p%l-1,disabledIndices:u}),i&&(v=i(t,p,v))),xu(v,l,w)&&(v=p)),t.key===(s?kp:bp)&&(g&&_p(t),p%l!==0?(v=Pa(e,{startingIndex:p,decrement:!0,disabledIndices:u}),a&&xu(v,l,w)&&(v=Pa(e,{startingIndex:p+(l-p%l),decrement:!0,disabledIndices:u}),i&&(v=i(t,p,v)))):a&&(v=Pa(e,{startingIndex:p+(l-p%l),decrement:!0,disabledIndices:u}),i&&(v=i(t,p,v))),xu(v,l,w)&&(v=p));const S=wp(f/l)===w;z_(e,v)&&(a&&S?(v=t.key===(s?kp:bp)?f:Pa(e,{startingIndex:p-p%l-1,disabledIndices:u}),i&&(v=i(t,p,v))):v=p)}return v}function _B(e,t,n){const a=[];let i=0;return e.forEach(({width:s,height:l},u)=>{let h=!1;for(;!h;){const f=[];for(let p=0;p<s;p+=1)for(let g=0;g<l;g+=1)f.push(i+p+g*t);i%t+s<=t&&f.every(p=>a[p]==null)?(f.forEach(p=>{a[p]=u}),h=!0):i+=1}}),[...a]}function wB(e,t,n,a,i){if(e===-1)return-1;const s=n.indexOf(e),l=t[e];switch(i){case"tl":return s;case"tr":return l?s+l.width-1:s;case"bl":return l?s+(l.height-1)*a:s;case"br":return n.lastIndexOf(e);default:return-1}}function xB(e,t){return t.flatMap((n,a)=>e.includes(n)?[a]:[])}function Tm(e,t,n){if(typeof n=="function"?n(t):n?.includes(t)??!1)return!0;const i=e[t];return i?IP(i)?!n&&(i.hasAttribute("disabled")||i.getAttribute("aria-disabled")==="true"):!0:!1}function BO(e){return e.visibility==="hidden"||e.visibility==="collapse"}function IP(e,t=e?Kd(e):null){return!e||!e.isConnected||!t||BO(t)?!1:typeof e.checkVisibility=="function"?e.checkVisibility():t.display!=="none"&&t.display!=="contents"}const FO='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function VO(e){const t=e.assignedSlot;if(t)return t;if(e.parentElement)return e.parentElement;const n=e.getRootNode();return Td(n)?n.host:null}function Em(e){for(const t of Array.from(e.children))if(Aa(t)==="summary")return t;return null}function HO(e,t){const n=Em(t);return!!n&&(e===n||Pr(n,e))}function MP(e){const t=e?Aa(e):"";return e!=null&&e.matches(FO)&&(t!=="summary"||e.parentElement!=null&&Aa(e.parentElement)==="details"&&Em(e.parentElement)===e)&&(t!=="details"||Em(e)==null)&&(t!=="input"||e.type!=="hidden")}function NP(e){if(!MP(e)||!e.isConnected||e.matches(":disabled"))return!1;for(let t=e;t;t=VO(t)){const n=t!==e,a=Aa(t)==="slot";if(t.hasAttribute("inert")||n&&Aa(t)==="details"&&!t.open&&!HO(e,t)||t.hasAttribute("hidden")||!a&&!$O(t,n))return!1}return!0}function $O(e,t){const n=Kd(e);return t?n.display!=="none":IP(e,n)}function OP(e){const t=e.tabIndex;if(t<0){const n=Aa(e);if(n==="details"||n==="audio"||n==="video"||ci(e)&&e.isContentEditable)return 0}return t}function xp(e){if(Aa(e)!=="input")return null;const t=e;return t.type==="radio"&&t.name!==""?t:null}function WO(e,t){const n=xp(e);if(!n)return!0;const a=t.find(i=>{const s=xp(i);return s?.name===n.name&&s.form===n.form&&s.checked});return a?a===n:t.find(i=>{const s=xp(i);return s?.name===n.name&&s.form===n.form})===n}function jP(e){if(ci(e)&&Aa(e)==="slot"){const t=e.assignedElements({flatten:!0});if(t.length>0)return t}return ci(e)&&e.shadowRoot?Array.from(e.shadowRoot.children):Array.from(e.children)}function UP(e,t){jP(e).forEach(n=>{MP(n)&&t.push(n),UP(n,t)})}function zP(e,t,n){jP(e).forEach(a=>{ci(a)&&a.matches(t)&&n.push(a),zP(a,t,n)})}function PB(e){return NP(e)&&OP(e)>=0}function GO(e){const t=[];return UP(e,t),t.filter(NP)}function a0(e){const t=GO(e);return t.filter(n=>OP(n)>=0&&WO(n,t))}function BP(e,t){const n=a0(e),a=n.length;if(a===0)return;const i=Zo(Ta(e)),s=n.indexOf(i),l=s===-1?t===1?0:a-1:s+t;return n[l]}function KO(e){return BP(Ta(e).body,1)||e}function qO(e){return BP(Ta(e).body,-1)||e}function FP(e,t){if(!e)return null;const n=a0(Ta(e).body),a=n.length;if(a===0)return null;const i=n.indexOf(e);if(i===-1)return null;const s=(i+t+a)%a;return n[s]}function SB(e){return FP(e,1)}function CB(e){return FP(e,-1)}function Pp(e,t){const n=t||e.currentTarget,a=e.relatedTarget;return!a||!Pr(n,a)}function YO(e){a0(e).forEach(n=>{n.dataset.tabindex=n.getAttribute("tabindex")||"",n.setAttribute("tabindex","-1")})}function B_(e){const t=[];zP(e,"[data-tabindex]",t),t.forEach(n=>{const a=n.dataset.tabindex;delete n.dataset.tabindex,a?n.setAttribute("tabindex",a):n.removeAttribute("tabindex")})}function Sp(e){const t=new Map;let n=0,a=0;return e.forEach((i,s)=>{const l=i.transitionStatus==="ending";t.set(i.id,{value:i,domIndex:s,visibleIndex:l?-1:n,offsetY:a}),a+=i.height||0,l||(n+=1)}),t}const Pu=e=>e.toastMetadata,Fa={toasts:_a(e=>e.toasts),isEmpty:_a(e=>e.toasts.length===0),toast:_a(Pu,(e,t)=>e.get(t)?.value),toastIndex:_a(Pu,(e,t)=>e.get(t)?.domIndex??-1),toastOffsetY:_a(Pu,(e,t)=>e.get(t)?.offsetY??0),toastVisibleIndex:_a(Pu,(e,t)=>e.get(t)?.visibleIndex??-1),hovering:_a(e=>e.hovering),focused:_a(e=>e.focused),expanded:_a(e=>e.hovering||e.focused),expandedOrOutOfFocus:_a(e=>e.hovering||e.focused||!e.isWindowFocused),prevFocusElement:_a(e=>e.prevFocusElement)};class ZO extends dO{timers=new Map;areTimersPaused=!1;constructor(t){super({...t,toastMetadata:Sp(t.toasts)},{},Fa)}setFocused(t){this.set("focused",t)}setHovering(t){this.set("hovering",t)}setIsWindowFocused(t){this.set("isWindowFocused",t)}setPrevFocusElement(t){this.set("prevFocusElement",t)}setViewport=t=>{this.set("viewport",t)};disposeEffect=()=>()=>{this.timers.forEach(t=>{t.timeout?.clear()}),this.timers.clear()};removeToast(t,n={}){const a=Fa.toastIndex(this.state,t);if(a===-1)return;const i=this.state.toasts[a];n.skipOnRemove||i?.onRemove?.();const s=[...this.state.toasts];s.splice(a,1),this.setToasts(s)}addToast=t=>{const{timeout:n,limit:a}=this.state,i=t.id||CP("toast");if(t.id){const f=Fa.toast(this.state,t.id);if(f)if(f.transitionStatus==="ending")this.removeToast(t.id,{skipOnRemove:!0});else{const{id:p,transitionStatus:g,...v}=t;return this.updateToastInternal(t.id,v,{resetTimer:!0,markUpdated:!0}),t.id}}const s={...t,id:i,updateKey:0,transitionStatus:"starting"},l=[s,...this.state.toasts],u=l.filter(f=>f.transitionStatus!=="ending");if(u.length>a){const f=u.length-a,p=u.slice(-f),g=new Set(p.map(v=>v.id));this.setToasts(l.map(v=>{const _=g.has(v.id);return v.limited!==_?{...v,limited:_}:v}))}else this.setToasts(l.map(f=>f.limited?{...f,limited:!1}:f));const h=s.timeout??n;return s.type!=="loading"&&h>0&&this.scheduleTimer(i,h,()=>this.closeToast(i)),Fa.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),i};updateToast=(t,n)=>{this.updateToastInternal(t,n,{markUpdated:!0})};updateToastInternal=(t,n,a={})=>{const{timeout:i,toasts:s}=this.state,l=Fa.toast(this.state,t)??null;if(!l||l.transitionStatus==="ending")return;const u={...l,...n,...a.markUpdated&&{updateKey:(l.updateKey??0)+1}};this.setToasts(s.map(S=>S.id===t?u:S));const h=u.timeout??i,f=l?.timeout??i,p=Object.hasOwn(n,"timeout"),g=u.transitionStatus!=="ending"&&u.type!=="loading"&&h>0,v=this.timers.has(t),_=f!==h,w=l?.type==="loading";if(!g&&v){this.timers.get(t)?.timeout?.clear(),this.timers.delete(t);return}if(g&&(!v||_||p||w||a.resetTimer)){const S=this.timers.get(t);S&&(S.timeout?.clear(),this.timers.delete(t)),this.scheduleTimer(t,h,()=>this.closeToast(t)),Fa.expandedOrOutOfFocus(this.state)&&this.pauseTimers()}};closeToast=t=>{const n=t===void 0,{limit:a,toasts:i}=this.state;let s;if(n)s=i,this.timers.forEach(f=>{f.timeout?.clear()}),this.timers.clear();else{const f=Fa.toast(this.state,t);if(!f)return;s=[f];const p=this.timers.get(t);p?.timeout&&(p.timeout.clear(),this.timers.delete(t))}let l=0;const u=i.map(f=>{if(n||f.id===t)return{...f,transitionStatus:"ending",height:0};if(f.transitionStatus==="ending")return f;const p=l>=a;return l+=1,f.limited!==p?{...f,limited:p}:f}),h={toasts:u,toastMetadata:Sp(u)};(n||i.length===1)&&(h.hovering=!1,h.focused=!1),this.update(h),s.forEach(f=>{f.transitionStatus!=="ending"&&f.onClose?.()}),this.handleFocusManagement(t)};promiseToast=(t,n)=>{const a=yp(n.loading),i=this.addToast({...a,type:"loading"}),s=t.then(l=>{const u=yp(n.success,l);return this.updateToast(i,{...u,type:"success",timeout:u.timeout}),l}).catch(l=>{const u=yp(n.error,l);return this.updateToast(i,{...u,type:"error",timeout:u.timeout}),Promise.reject(l)});return{}.hasOwnProperty.call(n,"setPromise")&&n.setPromise(s),s};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(t=>{if(t.timeout){t.timeout.clear();const n=Date.now()-t.start,a=t.delay-n;t.remaining=a>0?a:0}}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((t,n)=>{t.remaining=t.remaining>0?t.remaining:t.delay,t.timeout??=Ul.create(),t.timeout.start(t.remaining,()=>{this.timers.delete(n),t.callback()}),t.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=t=>{if(t.pointerType!=="touch")return;const n=Vi(t);Pr(this.state.viewport,n)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(t,n,a){const i=Date.now(),s=!Fa.expandedOrOutOfFocus(this.state),l=s?Ul.create():void 0;l?.start(n,()=>{this.timers.delete(t),a()}),this.timers.set(t,{timeout:l,start:s?i:0,delay:n,remaining:n,callback:a})}setToasts(t){const n={toasts:t,toastMetadata:Sp(t)};t.length===0&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(t){const n=Zo(Ta(this.state.viewport));if(!this.state.viewport||!Pr(this.state.viewport,n)||!Pm(n))return;if(t===void 0){this.restoreFocusToPrevElement();return}const a=Fa.toasts(this.state),i=Fa.toastIndex(this.state,t);let s=null,l=i+1;for(;l<a.length;){if(a[l].transitionStatus!=="ending"){s=a[l];break}l+=1}if(!s)for(l=i-1;l>=0;){if(a[l].transitionStatus!=="ending"){s=a[l];break}l-=1}s?s.ref?.current?.focus():this.restoreFocusToPrevElement()}}const XO=function(t){const{children:n,timeout:a=5e3,limit:i=3,toastManager:s}=t,l=ys(()=>new ZO({timeout:a,limit:i,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return Yg(l.disposeEffect),b.useEffect(function(){return s?s[" subscribe"](({action:f,options:p})=>{const g=p.id;f==="promise"&&p.promise?l.promiseToast(p.promise,p):f==="update"&&g?l.updateToast(g,p):f==="close"?l.closeToast(g):l.addToast(p)}):void 0},[l,s]),l.useSyncedValues({timeout:a,limit:i}),T.jsx(Zg.Provider,{value:l,children:n})},VP={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},HP={...VP,position:"fixed",top:0,left:0},TB={...VP,position:"absolute"},Tl=b.forwardRef(function(t,n){const[a,i]=b.useState();Ka(()=>{wO&&i("button")},[]);const s={tabIndex:0,role:a};return T.jsx("span",{...t,ref:n,style:HP,"aria-hidden":a?void 0:!0,...s,"data-base-ui-focus-guard":""})});function F_(e,t,n,a){const i=ys($P).current;return QO(i,e,t,n,a)&&WP(i,[e,t,n,a]),i.callback}function JO(e){const t=ys($P).current;return ej(t,e)&&WP(t,e),t.callback}function $P(){return{callback:null,cleanup:null,refs:[]}}function QO(e,t,n,a,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==a||e.refs[3]!==i}function ej(e,t){return e.refs.length!==t.length||e.refs.some((n,a)=>n!==t[a])}function WP(e,t){if(e.refs=t,t.every(n=>n==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),n!=null){const a=Array(t.length).fill(null);for(let i=0;i<t.length;i+=1){const s=t[i];if(s!=null)switch(typeof s){case"function":{const l=s(n);typeof l=="function"&&(a[i]=l);break}case"object":{s.current=n;break}}}e.cleanup=()=>{for(let i=0;i<t.length;i+=1){const s=t[i];if(s!=null)switch(typeof s){case"function":{const l=a[i];typeof l=="function"?l():s(null);break}case"object":{s.current=null;break}}}}}}}function V_(e){if(!b.isValidElement(e))return null;const t=e,n=t.props;return(Jg(19)?n?.ref:t.ref)??null}function Am(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function tj(e,t){const n={};for(const a in e){const i=e[a];if(t?.hasOwnProperty(a)){const s=t[a](i);s!=null&&Object.assign(n,s);continue}i===!0?n[`data-${a.toLowerCase()}`]="":i&&(n[`data-${a.toLowerCase()}`]=i.toString())}return n}function nj(e,t){return typeof e=="function"?e(t):e}function aj(e,t){return typeof e=="function"?e(t):e}const r0={};function i0(e,t,n,a,i){if(!n&&!a&&!i&&!e)return Ed(t);let s=Ed(e);return t&&(s=gl(s,t)),n&&(s=gl(s,n)),a&&(s=gl(s,a)),i&&(s=gl(s,i)),s}function rj(e){if(e.length===0)return r0;if(e.length===1)return Ed(e[0]);let t=Ed(e[0]);for(let n=1;n<e.length;n+=1)t=gl(t,e[n]);return t}function Ed(e){return o0(e)?{...KP(e,r0)}:ij(e)}function gl(e,t){return o0(t)?KP(t,e):oj(e,t)}function ij(e){const t={...e};for(const n in t){const a=t[n];GP(n,a)&&(t[n]=qP(a))}return t}function oj(e,t){if(!t)return e;for(const n in t){const a=t[n];switch(n){case"style":{e[n]=Am(e.style,a);break}case"className":{e[n]=YP(e.className,a);break}default:GP(n,a)?e[n]=sj(e[n],a):e[n]=a}}return e}function GP(e,t){const n=e.charCodeAt(0),a=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&a===110&&i>=65&&i<=90&&(typeof t=="function"||typeof t>"u")}function o0(e){return typeof e=="function"}function KP(e,t){return o0(e)?e(t):e??r0}function sj(e,t){return t?e?(...n)=>{const a=n[0];if(ZP(a)){const s=a;Ad(s);const l=t(...n);return s.baseUIHandlerPrevented||e?.(...n),l}const i=t(...n);return e?.(...n),i}:qP(t):e}function qP(e){return e&&((...t)=>{const n=t[0];return ZP(n)&&Ad(n),e(...t)})}function Ad(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function YP(e,t){return t?e?t+" "+e:t:e}function ZP(e){return e!=null&&typeof e=="object"&&"nativeEvent"in e}function ec(e,t,n={}){const a=t.render,i=lj(t,n);if(n.enabled===!1)return null;const s=n.state??Bi;return dj(e,a,i,s)}function lj(e,t={}){const{className:n,style:a,render:i}=e,{state:s=Bi,ref:l,props:u,stateAttributesMapping:h,enabled:f=!0}=t,p=f?nj(n,s):void 0,g=f?aj(a,s):void 0,v=f?tj(s,h):Bi,_=f&&u?cj(u):void 0,w=f?Am(v,_)??{}:Bi;return typeof document<"u"&&(f?Array.isArray(l)?w.ref=JO([w.ref,V_(i),...l]):w.ref=F_(w.ref,V_(i),l):F_(null,null)),f?(p!==void 0&&(w.className=YP(w.className,p)),g!==void 0&&(w.style=Am(w.style,g)),w):Bi}function cj(e){return Array.isArray(e)?rj(e):i0(void 0,e)}const uj=Symbol.for("react.lazy");function dj(e,t,n,a){if(t){if(typeof t=="function")return t(n,a);const i=i0(n,t.props);i.ref=n.ref;let s=t;return s?.$$typeof===uj&&(s=b.Children.toArray(t)[0]),b.cloneElement(s,i)}if(e&&typeof e=="string")return hj(e,n);throw new Error(vs(8))}function hj(e,t){return e==="button"?b.createElement("button",{type:"button",...t,key:t.key}):e==="img"?b.createElement("img",{alt:"",...t,key:t.key}):b.createElement(e,t)}let fj=(function(e){return e.frontmostHeight="--toast-frontmost-height",e})({});const pj=b.forwardRef(function(t,n){const{render:a,className:i,style:s,children:l,...u}=t,h=Xg(),f=_O(),p=b.useRef(!1),g=b.useRef(!1),v=b.useRef(!1),_=h.useState("isEmpty"),w=h.useState("toasts"),S=h.useState("focused"),P=h.useState("expanded"),D=h.useState("prevFocusElement"),R=w[0]?.height??0,E=b.useMemo(()=>w.some(X=>X.transitionStatus==="ending"),[w]),A=b.useMemo(()=>w.filter(X=>X.priority==="high"),[w]);b.useEffect(()=>{const X=h.state.viewport;if(!X)return;function Z(V){_||V.key==="F6"&&Vi(V)!==X&&(V.preventDefault(),h.setPrevFocusElement(Zo(Ta(X))),X?.focus({preventScroll:!0}),h.pauseTimers(),h.setFocused(!0))}const J=xr(X);return Fi(J,"keydown",Z)},[h,_]),b.useEffect(()=>{const X=h.state.viewport;if(!X||_)return;const Z=xr(X);function J(M){Vi(M)===Z&&(h.setIsWindowFocused(!1),h.pauseTimers())}function V(M){if(M.relatedTarget)return;const G=Vi(M),ye=Zo(Ta(X));(G===Z||!Pr(X,G)||!Pm(ye))&&h.resumeTimers(),f.start(0,()=>h.setIsWindowFocused(!0))}return SP(Fi(Z,"blur",J,!0),Fi(Z,"focus",V,!0))},[h,f,_]),b.useEffect(()=>{const X=h.state.viewport;if(!X||_)return;const Z=Ta(X);return Fi(Z,"pointerdown",h.handleDocumentPointerDown,!0)},[_,h]);function U(X){const Z=h.state.viewport;Z&&(p.current=!0,X.relatedTarget===Z?w[0]?.ref?.current?.focus():h.restoreFocusToPrevElement())}function F(X){X.key==="Tab"&&X.shiftKey&&Vi(X.nativeEvent)===h.state.viewport&&(X.preventDefault(),h.restoreFocusToPrevElement(),h.resumeTimers())}function j(){const X=h.state.toasts.some(Z=>Z.transitionStatus==="ending");!h.state.isWindowFocused||X||v.current||!g.current||(h.resumeTimers(),h.setHovering(!1),g.current=!1)}b.useEffect(j,[E,h]);function C(){h.pauseTimers(),h.setHovering(!0),g.current=!1}function K(){E||v.current?g.current=!0:(h.resumeTimers(),h.setHovering(!1))}function Y(X){X.pointerType==="touch"&&(v.current=!0)}function ce(X){X.pointerType==="touch"&&(v.current=!1,j())}function re(){if(p.current){p.current=!1;return}S||Pm(Zo(Ta(h.state.viewport)))&&(h.setFocused(!0),h.pauseTimers())}function fe(X){!S||Pr(h.state.viewport,X.relatedTarget)||(h.setFocused(!1),h.resumeTimers())}const de={tabIndex:-1,role:"region","aria-live":"polite","aria-atomic":!1,"aria-relevant":"additions text","aria-label":"Notifications",onMouseEnter:C,onMouseMove:C,onMouseLeave:K,onFocus:re,onBlur:fe,onKeyDown:F,onClick:re,onPointerDown:Y,onPointerUp:ce,onPointerCancel:ce},he={expanded:P},oe=ec("div",t,{ref:[n,h.setViewport],state:he,props:[de,{style:{[fj.frontmostHeight]:R?`${R}px`:void 0}},u,{children:T.jsxs(b.Fragment,{children:[!_&&D&&T.jsx(Tl,{onFocus:U}),l,!_&&D&&T.jsx(Tl,{onFocus:U})]})}]});return T.jsxs(b.Fragment,{children:[!_&&D&&T.jsx(Tl,{onFocus:U}),oe,!S&&A.length>0&&T.jsx("div",{style:HP,children:A.map(X=>T.jsxs("div",{role:"alert","aria-atomic":!0,children:[T.jsx("div",{children:X.title}),T.jsx("div",{children:X.description})]},X.id))})]})});function mj(e){return Jg(19)?e:e?"true":void 0}const XP=b.createContext(void 0);function JP(){const e=b.useContext(XP);if(!e)throw new Error(vs(66));return e}let s0=(function(e){return e.startingStyle="data-starting-style",e.endingStyle="data-ending-style",e})({});const gj={[s0.startingStyle]:""},yj={[s0.endingStyle]:""},vj={transitionStatus(e){return e==="starting"?gj:e==="ending"?yj:null}};function bj(e){return e==null?e:"current"in e?e.current:e}function kj(e,t=!1,n=!0){const a=kO();return Xi((i,s=null)=>{a.cancel();const l=bj(e);if(l==null)return;const u=l,h=()=>{ls.flushSync(i)};if(typeof u.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){i();return}function f(){Promise.all(u.getAnimations().map(p=>p.finished)).then(()=>{s?.aborted||h()}).catch(()=>{if(n){s?.aborted||h();return}const p=u.getAnimations();!s?.aborted&&p.length>0&&p.some(g=>g.pending||g.playState!=="finished")&&f()})}if(t){const p=s0.startingStyle;if(!u.hasAttribute(p)){a.request(f);return}const g=new MutationObserver(()=>{u.hasAttribute(p)||(g.disconnect(),f())});g.observe(u,{attributes:!0,attributeFilter:[p]}),s?.addEventListener("abort",()=>g.disconnect(),{once:!0});return}a.request(f)})}function _j(e){const{enabled:t=!0,open:n,ref:a,onComplete:i}=e,s=Xi(i),l=kj(a,n,!1);b.useEffect(()=>{if(!t)return;const u=new AbortController;return l(s,u.signal),()=>{u.abort()}},[t,n,s,l])}let Ii=(function(e){return e.index="--toast-index",e.offsetY="--toast-offset-y",e.height="--toast-height",e.swipeMovementX="--toast-swipe-movement-x",e.swipeMovementY="--toast-swipe-movement-y",e})({});const EB=500,AB={style:{transition:"none"}},RB="data-base-ui-click-trigger",wj="data-base-ui-swipe-ignore",xj="data-swipe-ignore",Pj=`[${wj}]`,Sj=`[${xj}]`,LB={fallbackAxisSide:"none"},DB={fallbackAxisSide:"end"},Cj={clipPath:"inset(50%)",position:"fixed",top:0,left:0};function H_(e,t,n){switch(e){case"up":return-n;case"down":return n;case"left":return-t;case"right":return t;default:return 0}}function Tj(e){const n=xr(e).getComputedStyle(e).transform;let a=0,i=0,s=1;if(n&&n!=="none"){const l=n.match(/matrix(?:3d)?\(([^)]+)\)/);if(l){const u=l[1].split(", ").map(parseFloat);u.length===6?(a=u[4],i=u[5],s=Math.sqrt(u[0]*u[0]+u[1]*u[1])):u.length===16&&(a=u[12],i=u[13],s=u[0])}}return{x:a,y:i,scale:s}}const Ej={...vj,swipeDirection(e){return e?{"data-swipe-direction":e}:null}},ul=40,Aj=10,Jr=.5,Rj=1,Lj=`${Pj},${Sj}`,Dj=b.forwardRef(function(t,n){const{toast:a,render:i,className:s,swipeDirection:l=["down","right"],style:u,...h}=t,f=a.positionerProps?.anchor!==void 0;let p=[];f||(p=Array.isArray(l)?l:[l]);const g=p.length>0,v=Xg(),[_,w]=b.useState(void 0),[S,P]=b.useState(!1),[D,R]=b.useState(!1),[E,A]=b.useState(!1),[U,F]=b.useState({x:0,y:0}),[j,C]=b.useState({x:0,y:0,scale:1}),[K,Y]=b.useState(),[ce,re]=b.useState(),[fe,de]=b.useState(null),he=b.useRef(null),oe=b.useRef({x:0,y:0}),X=b.useRef({x:0,y:0,scale:1}),Z=b.useRef(void 0),J=b.useRef(0),V=b.useRef(!1),M=b.useRef({x:0,y:0}),G=b.useRef(!1),ye=b.useRef({x:0,y:0}),me=b.useRef(null),pe=b.useRef(null),ke=v.useState("toastIndex",a.id),We=v.useState("toastVisibleIndex",a.id),Xe=v.useState("toastOffsetY",a.id),Ue=v.useState("focused"),Dt=v.useState("expanded");_j({open:a.transitionStatus!=="ending",ref:he,onComplete(){a.transitionStatus==="ending"&&v.removeToast(a.id)}});const rn=Xi((Ge=!1)=>{const $e=he.current;if(!$e)return;const ct=$e.style.height;$e.style.height="auto";const At=$e.offsetHeight;$e.style.height=ct;function bt(){v.updateToastInternal(a.id,{ref:he,height:At,...a.transitionStatus==="starting"?{transitionStatus:void 0}:{}})}Ge?ls.flushSync(bt):bt()});Ka(rn,[rn]);function Sn(Ge){ye.current=Ge,F(Ge)}Ka(()=>()=>{pe.current?.abort()},[]);function gt(Ge,$e){let ct=Ge,At=$e;return!p.includes("left")&&!p.includes("right")?ct=Ge>0?Ge**Jr:-(Math.abs(Ge)**Jr):(!p.includes("right")&&Ge>0&&(ct=Ge**Jr),!p.includes("left")&&Ge<0&&(ct=-(Math.abs(Ge)**Jr))),!p.includes("up")&&!p.includes("down")?At=$e>0?$e**Jr:-(Math.abs($e)**Jr):(!p.includes("down")&&$e>0&&(At=$e**Jr),!p.includes("up")&&$e<0&&(At=-(Math.abs($e)**Jr))),{x:ct,y:At}}const Ut=Xi(Ge=>{if(Ge.pointerId!==me.current)return;me.current=null,pe.current?.abort(),pe.current=null,P(!1),R(!1),de(null);const $e=X.current;if(Ge.type==="pointercancel"||V.current){Sn({x:$e.x,y:$e.y}),w(void 0);return}let ct=!1;const At=ye.current,bt=At.x-$e.x,mt=At.y-$e.y;let dt;for(const ua of p){switch(ua){case"right":bt>ul&&(ct=!0,dt="right");break;case"left":bt<-ul&&(ct=!0,dt="left");break;case"down":mt>ul&&(ct=!0,dt="down");break;case"up":mt<-ul&&(ct=!0,dt="up");break}if(ct)break}ct?(w(dt),A(!0),v.closeToast(a.id)):(Sn({x:$e.x,y:$e.y}),w(void 0))});function fi(Ge){if(Ge.button!==0)return;Ge.pointerType==="touch"&&v.pauseTimers();const $e=Vi(Ge.nativeEvent);if($e?$e.closest(`button,a,input,textarea,[role="button"],${Lj}`):!1)return;if(V.current=!1,Z.current=void 0,J.current=0,me.current=Ge.pointerId,oe.current={x:Ge.clientX,y:Ge.clientY},M.current=oe.current,he.current){const bt=Tj(he.current);X.current=bt,C(bt),Sn({x:bt.x,y:bt.y})}v.setHovering(!0),P(!0),R(!1),de(null),G.current=!0;const At=he.current;if(At){pe.current?.abort();const bt=new AbortController;pe.current=bt;const mt=Ta(At);mt.addEventListener("pointerup",Ut,{signal:bt.signal}),mt.addEventListener("pointercancel",Ut,{signal:bt.signal}),At.setPointerCapture?.(Ge.pointerId)}}function ao(Ge){if(Ge.pointerId!==me.current)return;Ge.preventDefault(),G.current&&(oe.current={x:Ge.clientX,y:Ge.clientY},G.current=!1);const{clientY:$e,clientX:ct,movementX:At,movementY:bt}=Ge;(bt<0&&$e>M.current.y||bt>0&&$e<M.current.y)&&(M.current={x:M.current.x,y:$e}),(At<0&&ct>M.current.x||At>0&&ct<M.current.x)&&(M.current={x:ct,y:M.current.y});const mt=ct-oe.current.x,dt=$e-oe.current.y,ua=$e-M.current.y,ks=ct-M.current.x;if(!D&&Math.sqrt(mt*mt+dt*dt)>=Rj&&(R(!0),fe===null)){const da=p.includes("left")||p.includes("right"),mi=p.includes("up")||p.includes("down");if(da&&mi){const Cr=Math.abs(mt),jn=Math.abs(dt);de(Cr>jn?"horizontal":"vertical")}}let qt;if(!Z.current)fe==="vertical"?dt>0?qt="down":dt<0&&(qt="up"):fe==="horizontal"?mt>0?qt="right":mt<0&&(qt="left"):Math.abs(mt)>=Math.abs(dt)?qt=mt>0?"right":"left":qt=dt>0?"down":"up",qt&&p.includes(qt)&&(Z.current=qt,J.current=H_(qt,mt,dt),w(qt));else{const Ia=Z.current,da=H_(Ia,ks,ua);da>ul?(V.current=!1,w(Ia)):!(p.includes("left")&&p.includes("right"))&&!(p.includes("up")&&p.includes("down"))&&J.current-da>=Aj&&(V.current=!0)}const or=gt(mt,dt);let mn=X.current.x,Da=X.current.y;fe==="horizontal"?(p.includes("left")||p.includes("right"))&&(mn+=or.x):(fe==="vertical"||(p.includes("left")||p.includes("right"))&&(mn+=or.x),(p.includes("up")||p.includes("down"))&&(Da+=or.y)),Sn({x:mn,y:Da})}function Nn(Ge){if(Ge.key==="Escape"){if(!he.current||!Pr(he.current,Zo(Ta(he.current))))return;v.closeToast(a.id)}}b.useEffect(()=>{if(!g)return;const Ge=he.current;if(!Ge)return;function $e(ct){Pr(Ge,Vi(ct))&&ct.preventDefault()}return Fi(Ge,"touchmove",$e,{passive:!1})},[g]);function ro(){if(!S&&U.x===j.x&&U.y===j.y&&!E)return{[Ii.swipeMovementX]:"0px",[Ii.swipeMovementY]:"0px"};const Ge=U.x-j.x,$e=U.y-j.y;return{transition:S?"none":void 0,transform:S?`translateX(${U.x}px) translateY(${U.y}px) scale(${j.scale})`:void 0,[Ii.swipeMovementX]:`${Ge}px`,[Ii.swipeMovementY]:`${$e}px`}}const Sr=a.priority==="high",La={role:Sr?"alertdialog":"dialog",tabIndex:0,"aria-modal":!1,"aria-labelledby":K,"aria-describedby":ce,"aria-hidden":Sr&&!Ue?!0:void 0,onPointerDown:g?fi:void 0,onPointerMove:g?ao:void 0,onPointerUp:g?Ut:void 0,onPointerCancel:g?Ut:void 0,onKeyDown:Nn,inert:mj(a.limited),style:{...ro(),[Ii.index]:a.transitionStatus==="ending"?ke:We,[Ii.offsetY]:`${Xe}px`,[Ii.height]:a.height?`${a.height}px`:void 0}},On=b.useMemo(()=>({rootRef:he,toast:a,titleId:K,setTitleId:Y,descriptionId:ce,setDescriptionId:re,swiping:S,swipeDirection:_,recalculateHeight:rn,index:ke,visibleIndex:We,expanded:Dt}),[a,K,ce,S,_,rn,ke,We,Dt]),pi={transitionStatus:a.transitionStatus,expanded:Dt,limited:a.limited||!1,type:a.type,swiping:On.swiping,swipeDirection:On.swipeDirection},io=ec("div",t,{ref:[n,On.rootRef],state:pi,stateAttributesMapping:Ej,props:[La,h]});return T.jsx(XP.Provider,{value:On,children:io})});let $_=0;function Ij(e,t="mui"){const[n,a]=b.useState(e),i=e||n;return b.useEffect(()=>{n==null&&($_+=1,a(`${t}-${$_}`))},[n,t]),i}const W_=Qg.useId;function QP(e,t){if(W_!==void 0){const n=W_();return e??(t?`${t}-${n}`:n)}return Ij(e,t)}const Mj=b.forwardRef(function(t,n){const{render:a,className:i,style:s,id:l,children:u,...h}=t,{toast:f,setTitleId:p}=JP(),g=u??f.title,v=!!g,_=QP(l);Ka(()=>{if(v)return p(_),()=>{p(void 0)}},[v,_,p]);const w={type:f.type},S=ec("h2",t,{ref:n,state:w,props:{...h,id:_,children:g}});return v?S:null}),Nj=b.createContext(void 0);function Oj(e=!1){const t=b.useContext(Nj);if(t===void 0&&!e)throw new Error(vs(16));return t}function jj(e){const{focusableWhenDisabled:t,disabled:n,composite:a=!1,tabIndex:i=0,isNativeButton:s}=e,l=a&&t!==!1,u=a&&t===!1;return{props:b.useMemo(()=>{const f={onKeyDown(p){n&&t&&p.key!=="Tab"&&p.preventDefault()}};return a||(f.tabIndex=i,!s&&n&&(f.tabIndex=t?i:-1)),(s&&(t||l)||!s&&n)&&(f["aria-disabled"]=n),s&&(!t||u)&&(f.disabled=n),f},[a,n,t,l,u,s,i])}}function Uj(e={}){const{disabled:t=!1,focusableWhenDisabled:n,tabIndex:a=0,native:i=!0,composite:s}=e,l=b.useRef(null),u=Oj(!0),h=s??u!==void 0,{props:f}=jj({focusableWhenDisabled:n,disabled:t,composite:h,tabIndex:a,isNativeButton:i}),p=b.useCallback(()=>{const _=l.current;Cp(_)&&h&&t&&f.disabled===void 0&&_.disabled&&(_.disabled=!1)},[t,f.disabled,h]);Ka(p,[p]);const g=b.useCallback((_={})=>{const{onClick:w,onMouseDown:S,onKeyUp:P,onKeyDown:D,onPointerDown:R,...E}=_;return i0({onClick(A){if(t){A.preventDefault();return}w?.(A)},onMouseDown(A){t||S?.(A)},onKeyDown(A){if(t||(Ad(A),D?.(A),A.baseUIHandlerPrevented))return;const U=A.target===A.currentTarget,F=A.currentTarget,j=Cp(F),C=!i&&zj(F),K=U&&(i?j:!C),Y=A.key==="Enter",ce=A.key===" ",re=F.getAttribute("role"),fe=re?.startsWith("menuitem")||re==="option"||re==="gridcell";if(U&&h&&ce){if(A.defaultPrevented&&fe)return;A.preventDefault(),C||i&&j?(F.click(),A.preventBaseUIHandler()):K&&(w?.(A),A.preventBaseUIHandler());return}K&&(!i&&(ce||Y)&&A.preventDefault(),!i&&Y&&w?.(A))},onKeyUp(A){if(!t){if(Ad(A),P?.(A),A.target===A.currentTarget&&i&&h&&Cp(A.currentTarget)&&A.key===" "){A.preventDefault();return}A.baseUIHandlerPrevented||A.target===A.currentTarget&&!i&&!h&&A.key===" "&&w?.(A)}},onPointerDown(A){if(t){A.preventDefault();return}R?.(A)}},i?{type:"button"}:{role:"button"},f,E)},[t,f,h,i]),v=Xi(_=>{l.current=_,p()});return{getButtonProps:g,buttonRef:v}}function Cp(e){return ci(e)&&e.tagName==="BUTTON"}function zj(e){return!!(e?.tagName==="A"&&e?.href)}const Bj=b.forwardRef(function(t,n){const{render:a,className:i,style:s,disabled:l,nativeButton:u=!0,...h}=t,f=Xg(),{toast:p}=JP(),g=f.useState("expanded"),[v,_]=b.useState(!1),{getButtonProps:w,buttonRef:S}=Uj({disabled:l,native:u}),P={type:p.type};return ec("button",t,{ref:[n,S],state:P,props:[{"aria-hidden":!g&&!v,onClick(){f.closeToast(p.id)},onFocus(){_(!0)},onBlur(){_(!1)}},h,w]})}),IB="none",MB="trigger-press",NB="trigger-hover",OB="outside-press",jB="item-press",UB="close-press",Fj="focus-out",zB="escape-key",BB="list-navigation",FB="cancel-open",VB="imperative-action",HB="window-resize";function Vj(e,t,n,a){let i=!1,s=!1;const l=Bi;return{reason:e,event:t??new Event("base-ui"),cancel(){i=!0},allowPropagation(){s=!0},get isCanceled(){return i},get isPropagationAllowed(){return s},trigger:n,...l}}function Hj(e){return`data-base-ui-${e}`}const eS=b.createContext(null),$j=()=>b.useContext(eS),Wj=Hj("portal");function tS(e={}){const{ref:t,container:n,componentProps:a=Bi,elementProps:i}=e,s=QP(),u=$j()?.portalNode,[h,f]=b.useState(null),[p,g]=b.useState(null),v=Xi(P=>{P!==null&&g(P)}),_=b.useRef(null);Ka(()=>{if(n===null){_.current&&(_.current=null,g(null),f(null));return}if(s==null)return;const P=(n&&(e0(n)?n:n.current))??u??document.body;if(P==null){_.current&&(_.current=null,g(null),f(null));return}_.current!==P&&(_.current=P,g(null),f(P))},[n,u,s]);const w=ec("div",a,{ref:[t,v],props:[{id:s,[Wj]:""},i]});return{portalNode:p,portalSubtree:h&&w?ls.createPortal(w,h):null}}const $B=b.forwardRef(function(t,n){const{render:a,className:i,style:s,children:l,container:u,renderGuards:h,...f}=t,{portalNode:p,portalSubtree:g}=tS({container:u,ref:n,componentProps:t,elementProps:f}),v=b.useRef(null),_=b.useRef(null),w=b.useRef(null),S=b.useRef(null),[P,D]=b.useState(null),R=b.useRef(!1),E=P?.modal,A=P?.open,U=typeof h=="boolean"?h:!!P&&!P.modal&&P.open&&!!p;b.useEffect(()=>{if(!p||E)return;function j(C){p&&C.relatedTarget&&Pp(C)&&(C.type==="focusin"?R.current&&(B_(p),R.current=!1):(YO(p),R.current=!0))}return SP(Fi(p,"focusin",j,!0),Fi(p,"focusout",j,!0))},[p,E]),b.useEffect(()=>{!p||A!==!1||(B_(p),R.current=!1)},[A,p]);const F=b.useMemo(()=>({beforeOutsideRef:v,afterOutsideRef:_,beforeInsideRef:w,afterInsideRef:S,portalNode:p,setFocusManagerState:D}),[p]);return T.jsxs(b.Fragment,{children:[g,T.jsxs(eS.Provider,{value:F,children:[U&&p&&T.jsx(Tl,{"data-type":"outside",ref:v,onFocus:j=>{if(Pp(j,p))w.current?.focus();else{const C=P?P.domReference:null;qO(C)?.focus()}}}),U&&p&&T.jsx("span",{"aria-owns":p.id,style:Cj}),p&&ls.createPortal(l,p),U&&p&&T.jsx(Tl,{"data-type":"outside",ref:_,onFocus:j=>{if(Pp(j,p))S.current?.focus();else{const C=P?P.domReference:null;KO(C)?.focus(),P?.closeOnFocusOut&&P?.onOpenChange(!1,Vj(Fj,j.nativeEvent))}}})]})]})}),Gj=b.forwardRef(function(t,n){const{children:a,container:i,className:s,render:l,style:u,...h}=t,{portalNode:f,portalSubtree:p}=tS({container:i,ref:n,componentProps:t,elementProps:h});return!p&&!f?null:T.jsxs(b.Fragment,{children:[p,f&&ls.createPortal(a,f)]})}),Kj=Gj;function qj(){const e=b.useContext(Zg);if(!e)throw new Error(vs(73));const t=e.useState("toasts");return b.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function Yj(){const e=new Set;function t(n){e.forEach(a=>a(n))}return{" subscribe":function(a){return e.add(a),()=>{e.delete(a)}},add(n){const a=n.id||CP("toast"),i={...n,id:a,transitionStatus:"starting"};return t({action:"add",options:i}),a},close(n){t({action:"close",options:{id:n}})},update(n,a){t({action:"update",options:{...a,id:n}})},promise(n,a){let i=n;return t({action:"promise",options:{...a,promise:n,setPromise(s){i=s}}}),i}}}const l0=Yj();function WB(e){return l0.add(e)}function Zj({children:e}){return T.jsxs(XO,{toastManager:l0,children:[e,T.jsx(Kj,{children:T.jsx(pj,{className:"fixed inset-x-0 top-6 z-[100] mx-auto flex w-full max-w-sm flex-col items-center gap-2 px-4 outline-none",children:T.jsx(Xj,{})})})]})}function Xj(){const{toasts:e}=qj();return e.map(t=>{const n=t.data?.onUndo;return T.jsxs(Dj,{toast:t,className:St("pointer-events-auto flex w-full items-center gap-3 rounded-xl border border-oai-gray-200 bg-oai-white px-4 py-3 shadow-xl transition-all duration-200 ease-out","data-[starting-style]:-translate-y-3 data-[starting-style]:opacity-0","data-[ending-style]:-translate-y-3 data-[ending-style]:opacity-0","dark:border-oai-gray-800 dark:bg-oai-gray-900"),children:[T.jsx(Mj,{className:"min-w-0 flex-1 text-sm font-medium text-oai-black dark:text-white"}),n?T.jsx("button",{type:"button",onClick:()=>{n(),l0.close(t.id)},className:"shrink-0 rounded-md px-2 py-1 text-xs font-semibold text-oai-gray-600 transition-colors hover:bg-oai-gray-100 hover:text-oai-black focus:outline-none focus:ring-2 focus:ring-oai-gray-400/30 dark:text-oai-gray-300 dark:hover:bg-oai-gray-800 dark:hover:text-white",children:De("shared.action.undo")}):null,T.jsx(Bj,{"aria-label":De("shared.action.dismiss"),className:"-mr-1 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md text-oai-gray-400 transition-colors hover:bg-oai-gray-100 hover:text-oai-black focus:outline-none focus:ring-2 focus:ring-oai-gray-400/30 dark:hover:bg-oai-gray-800 dark:hover:text-white",children:T.jsx(gg,{className:"h-3.5 w-3.5","aria-hidden":!0})})]},t.id)})}const c0=Object.freeze(["limits","leaderboard"]),Jj=Object.freeze({limits:"/limits",leaderboard:"/leaderboard"}),Qj=Object.freeze({limits:()=>xn(()=>import("./LimitsPage-D7m20XVf.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),leaderboard:()=>xn(()=>import("./LeaderboardPage-DKHvUmGb.js"),__vite__mapDeps([8,9,10,11,12,13]))}),nS="total",aS=0,G_=20,eU=Object.freeze([10,20,50,100]),tU="tokentracker:leaderboard:pageSize",nU=20,aU=Object.freeze(["dashboard-existing","silent-preload","page-load","manual-refresh"]);let K_=0,oa;class rU{constructor(t={}){this.limits=null,this.leaderboard=new Map,this.leaderboardMaxEntries=sU(t.leaderboardMaxEntries)}read(t,n){return tc(t),t==="limits"?!this.limits||this.limits.contextKey!==n?null:Ku(this.limits):n?Ku(this.leaderboard.get(n)):null}write(t,n={}){if(t.targetKey==="limits"){this.limits=t;return}this.leaderboard.has(t.contextKey)&&this.leaderboard.delete(t.contextKey),this.leaderboard.set(t.contextKey,t),this.evictLeaderboardEntries(n.activeContextKey||t.contextKey)}evictLeaderboardEntries(t=null){for(;this.leaderboard.size>this.leaderboardMaxEntries;){const n=Array.from(this.leaderboard.keys()).find(a=>a!==t)||this.leaderboard.keys().next().value;this.leaderboard.delete(n)}}snapshot(){return{limits:Ku(this.limits),leaderboard:{maxEntries:this.leaderboardMaxEntries,size:this.leaderboard.size,keys:Array.from(this.leaderboard.keys())}}}}class iU{constructor(t={}){K_+=1,this.sessionId=`dashboard-preload-${K_}`,this.createdAt=Date.now(),this.completedAt=null,this.startedAfterMainContentVisible=!1,this.cache=new rU(t),this.targets={limits:q_("limits"),leaderboard:q_("leaderboard")}}}function q_(e){return{key:e,route:Jj[e],resourceStatus:"idle",stateStatus:"idle",error:null,resourcePromise:null,resourceModule:null,resourceRequestId:0,statePromise:null,stateRequestId:0,pendingStateContextKey:null}}function oU(e={}){return new iU(e)}function sU(e){const t=Number(e);return!Number.isInteger(t)||t<1?nU:t}oa=oU();function tc(e){if(!c0.includes(e))throw new Error(`Unknown dashboard preload target: ${e}`)}function rS(e){return e?typeof e=="string"?e:e.message||String(e):null}function lU(e,t){return aU.includes(e)?e:t}function cU(e){const t=Number(e);return Number.isFinite(t)?t:Date.now()}function Ku(e){return e?{...e}:null}function Y_(){const e=c0.every(t=>{const n=oa.targets[t];return n.resourceStatus==="fulfilled"||n.resourceStatus==="rejected"});oa.completedAt=e?Date.now():null}function uU(){oa.startedAfterMainContentVisible=!0}function u0(e,t={}){tc(e);const n=Object.entries(t).filter(([,a])=>a!==void 0).sort(([a],[i])=>a.localeCompare(i)).map(([a,i])=>`${a}=${i===null?"null":String(i)}`);return`${e}:${n.join("|")}`}function dU(e,t={}){tc(e);const n=oa.targets[e];if(n.resourceStatus==="fulfilled")return Promise.resolve(n.resourceModule);if(n.resourceStatus==="pending"&&n.resourcePromise)return n.resourcePromise;const a=t.loader||Qj[e],i=n.resourceRequestId+1;n.resourceRequestId=i,n.resourceStatus="pending",n.error=null;const s=Promise.resolve().then(()=>a()).then(l=>n.resourceRequestId!==i||n.resourcePromise!==s?null:(n.resourceStatus="fulfilled",n.resourceModule=l,n.error=null,Y_(),l)).catch(l=>(n.resourceRequestId!==i||n.resourcePromise!==s||(n.resourceStatus="rejected",n.error=rS(l),Y_()),null));return n.resourcePromise=s,s}function hU(e={}){const t=e.loaders||{};return Promise.all(c0.map(n=>dU(n,{loader:t[n]})))}function iS(e,t){tc(e);const n=oa.targets[e],a=t?.status||"fulfilled",i={targetKey:e,status:a,data:t?.data??null,error:rS(t?.error),source:lU(t?.source,"silent-preload"),generatedAt:cU(t?.generatedAt),updatedAt:Date.now(),contextKey:t?.contextKey||u0(e,t?.context||{})};return n.stateStatus=a,a==="rejected"||a==="skipped"?n.error=i.error:a==="fulfilled"&&(n.error=null,oa.cache.write(i,{activeContextKey:t?.activeContextKey})),Ku(i)}function oS(e,t){return tc(e),oa.cache.read(e,t)}function GB(e,t={}){return iS("limits",{data:e,source:t.source||"dashboard-existing",contextKey:t.contextKey||sS(t.context||{}),generatedAt:t.generatedAt,status:t.status||"fulfilled",error:t.error})}function sS(e={}){return u0("limits",{state:"current",...e})}function KB(e=sS()){return oS("limits",e)}function Rm(e,t={}){return iS("leaderboard",{activeContextKey:t.activeContextKey,data:e,source:t.source||"silent-preload",contextKey:t.contextKey||d0(t.context||{}),generatedAt:t.generatedAt,status:t.status||"fulfilled",error:t.error})}function fU(e){return oS("leaderboard",e)}function lS(){if(typeof window>"u")return G_;try{const e=window.localStorage.getItem(tU),t=Number(e);if(eU.includes(t))return t}catch{}return G_}function cS(e={}){const t=e.userId;return t!==void 0?t||null:e.cloudUser?.id||null}function uS(e={}){return typeof e.accessMode=="string"&&e.accessMode.trim()?e.accessMode.trim():e.mockEnabled?"mock":e.baseUrl?"cloud":"unavailable"}function d0(e={}){const t=!!e.mockEnabled,n=e.baseUrl??"";return u0("leaderboard",{accessMode:uS({...e,baseUrl:n,mockEnabled:t}),baseUrl:n,mockEnabled:t,offset:e.offset??aS,pageSize:e.pageSize??lS(),period:e.period||nS,userId:cS(e)})}function Su(e,t){const n=oa.targets.leaderboard;return n.stateRequestId+=1,n.statePromise=null,n.pendingStateContextKey=null,Rm(null,{contextKey:t,status:"skipped",error:e})}function pU(e={}){const t=oa,n=!!e.mockEnabled,a=e.baseUrl??"",i=uS({...e,baseUrl:a,mockEnabled:n}),s=e.period||nS,l=e.pageSize??lS(),u=e.offset??aS,h=cS(e),f=d0({accessMode:i,baseUrl:a,mockEnabled:n,offset:u,pageSize:l,period:s,userId:h});if(!n&&e.authLoading)return Promise.resolve(Su("auth-loading",f));if(!n&&!e.signedIn&&i!=="public")return Promise.resolve(Su("not-signed-in",f));if(!n&&!a)return Promise.resolve(Su("missing-base-url",f));if(!n&&i==="unavailable")return Promise.resolve(Su("access-unavailable",f));const p=t.targets.leaderboard,g=fU(f);if(g)return Promise.resolve(g);if(p.stateStatus==="pending"&&p.statePromise&&p.pendingStateContextKey===f)return p.statePromise;const v=p.stateRequestId+1;p.stateRequestId=v,p.stateStatus="pending",p.pendingStateContextKey=f,p.error=null;const _=Promise.resolve().then(()=>YA({userId:h,period:s,limit:l,offset:u})).then(w=>oa!==t||p.stateRequestId!==v||p.statePromise!==_?null:(p.pendingStateContextKey=null,Rm(w,{contextKey:f}))).catch(w=>(oa!==t||p.stateRequestId!==v||p.statePromise!==_||(p.pendingStateContextKey=null,Rm(null,{contextKey:f,status:"rejected",error:w})),null));return p.statePromise=_,_}const mU=typeof window<"u"?window.location.search:"",Z_=new URLSearchParams(mU),Cu=Z_.get("insforge_code")||Z_.get("code")||null,gU=typeof window<"u"&&!!window.webkit?.messageHandlers?.nativeOAuth;function yU(){Yl();const{loading:e,signedIn:t}=eo(),n=ss(),[a,i]=b.useState("processing"),[s,l]=b.useState(null),u=b.useRef(!1);b.useEffect(()=>{if(!(!Cu||u.current)){if(u.current=!0,gU){l(!1);return}(async()=>{try{const p=await(await fetch("/api/auth-bridge/verifier")).json();l(!!p?.native)}catch{l(!1)}})()}},[]),b.useEffect(()=>{if(s!==!0||!Cu)return;i("redirecting");const f=setTimeout(()=>{window.location.href=`tokentracker://auth/callback?insforge_code=${encodeURIComponent(Cu)}`},200);return()=>clearTimeout(f)},[s]),b.useEffect(()=>{if(s!==!1||e)return;if(t){n("/dashboard",{replace:!0});return}const f=setTimeout(()=>{t||i("failed")},12e3);return()=>clearTimeout(f)},[s,e,t,n]),b.useEffect(()=>{if(!Cu&&s===null){const f=setTimeout(()=>i("failed"),3e3);return()=>clearTimeout(f)}},[s]);const h=()=>{n("/dashboard",{replace:!0})};return a==="processing"&&s!==!0&&(s===null||s===!1&&e)?T.jsx("div",{className:"min-h-screen bg-oai-gray-950"}):T.jsx("div",{className:"min-h-screen bg-oai-gray-950 text-white font-oai antialiased dark flex items-center justify-center",children:T.jsxs("div",{className:"text-center space-y-4 max-w-sm px-4",children:[a==="processing"&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"w-8 h-8 border-2 border-oai-gray-600 border-t-white rounded-full animate-spin mx-auto"}),T.jsx("p",{className:"text-oai-gray-400 text-sm",children:De("auth.callback.processing")})]}),a==="redirecting"&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"w-12 h-12 mx-auto rounded-full bg-green-500/15 flex items-center justify-center",children:T.jsx("svg",{className:"w-6 h-6 text-green-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:T.jsx("path",{d:"M20 6 9 17l-5-5"})})}),T.jsx("p",{className:"text-white text-sm font-medium",children:De("auth.callback.success")}),T.jsx("p",{className:"text-oai-gray-500 text-xs",children:De("auth.callback.redirecting")})]}),a==="failed"&&T.jsxs("div",{className:"space-y-3",children:[T.jsx("p",{className:"text-oai-gray-300 text-sm",children:De("auth.callback.failed")}),T.jsx("button",{type:"button",onClick:h,className:"px-4 py-2 rounded-lg bg-oai-gray-800 text-sm text-white hover:bg-oai-gray-700 transition-colors",children:De("auth.callback.close")})]})]})})}const vU=b.lazy(()=>xn(()=>import("./DashboardPage-BjOx4W82.js"),__vite__mapDeps([14,1,12,15,16,17,11,3,9,10,18,19,4])).then(e=>({default:e.DashboardPage}))),bU=b.lazy(()=>xn(()=>import("./IpCheckPage-DJtvaczo.js"),[])),kU=b.lazy(()=>xn(()=>import("./LandingPage-DVR_EDlv.js"),__vite__mapDeps([20,21,18])).then(e=>({default:e.LandingPage}))),_U=b.lazy(()=>xn(()=>import("./LeaderboardPage-DKHvUmGb.js"),__vite__mapDeps([8,9,10,11,12,13])).then(e=>({default:e.LeaderboardPage}))),wU=b.lazy(()=>xn(()=>import("./LeaderboardProfilePage-BK-1QWfg.js"),__vite__mapDeps([22,12,21,23,13,15,16,6,11,17,7])).then(e=>({default:e.LeaderboardProfilePage}))),xU=b.lazy(()=>xn(()=>import("./LimitsPage-D7m20XVf.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])).then(e=>({default:e.LimitsPage}))),PU=b.lazy(()=>xn(()=>import("./LoginPage-HQ8ks6KL.js"),[]).then(e=>({default:e.LoginPage}))),SU=b.lazy(()=>xn(()=>import("./DevicePage-Cfj34qew.js"),[])),CU=b.lazy(()=>xn(()=>import("./WrappedPage-BSWIQwdE.js"),[])),TU=b.lazy(()=>xn(()=>import("./SettingsPage-C3pgKsph.js"),__vite__mapDeps([24,2,25,3,11,12,9,10,16,7])).then(e=>({default:e.SettingsPage}))),EU=b.lazy(()=>xn(()=>import("./SkillsPage-C884cEOL.js"),__vite__mapDeps([26,5,6,7,3,17,11,16,12,19,10])).then(e=>({default:e.SkillsPage}))),AU=b.lazy(()=>xn(()=>import("./WidgetsPage-Wsg4rX9h.js"),__vite__mapDeps([27,9,10,11,25,3,4,6,7])).then(e=>({default:e.WidgetsPage})));function RU(){const{resolvedLocale:e}=Yl(),t=In(),n=eo();iN();const a=b.useRef(!1),i=b.useRef(!1),s=b.useRef(new Set),l=Pn(),u=b.useMemo(()=>typeof window>"u"?!1:Z9(window.location.search),[]),h=t?.pathname||"/",f=new URL(window.location.href),p=f.pathname.replace(/\/+$/,"")||"/",v=p.match(/^\/share\/([^/?#]+)$/i)?.[1]||null,_=f.searchParams.get("token")||null,w=v||_,S=p==="/share"||p==="/share.html"||p.startsWith("/share/"),P=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),D=h.replace(/\/+$/,"")||"/",R=D==="/"||D==="/dashboard",E=D==="/leaderboard",A=D.match(/^\/u\/([^/]+)$/i),U=A?A[1]:null,F=!!(n.enabled&&n.signedIn),j=P||F,C=!1,K=q9(),Y=!j&&!l&&!P,ce=l?"mock":n.loading?"unavailable":F?"cloud":j?"local":"unavailable",re=b.useCallback(()=>{if(!a.current||!l&&n.loading||!l&&!j)return;const pe={accessMode:ce,baseUrl:Y9(),mockEnabled:l,signedIn:j,authLoading:!!n.loading,userId:F&&n.user?.id||null},ke=d0(pe);s.current.has(ke)||(s.current.add(ke),pU(pe))},[F,n.loading,n.user?.id,ce,l,j]),fe=b.useCallback(()=>{R&&(a.current||(a.current=!0,uU()),i.current||(i.current=!0,hU()),re())},[R,re]);b.useEffect(()=>{re()},[re]);const de=b.useMemo(()=>!n.enabled||!F?null:{getAccessToken:()=>n.getAccessToken(),name:n.displayName||"",userId:n.user?.id||null},[F,n]);let he=P||l||u?"dashboard":"landing";D==="/landing"&&(he="landing"),D==="/dashboard"&&(he="dashboard"),E&&(he="dashboard"),U&&(he="dashboard");const oe=D==="/limits",X=D==="/settings",Z=D==="/skills",J=D==="/widgets",V=D==="/ip-check";(oe||X||Z||J||V)&&(he="dashboard");let M=vU;U?M=wU:D==="/leaderboard"?M=_U:oe?M=xU:X?M=TU:Z?M=EU:J?M=AU:V&&(M=bU);const G=!S&&!Y&&(D==="/dashboard"||D==="/"||E||oe||X||Z||J||V);if(!P&&!F&&!S&&!n.loading&&he==="dashboard"&&!E&&!U&&D!=="/login"&&D!=="/landing"&&D!=="/auth/callback"&&D!=="/auth/native-callback")return T.jsx(U4,{to:"/login",replace:!0});let me=null;if(D==="/auth/callback"||D==="/auth/native-callback")me=T.jsx(yU,{});else if(D==="/login")me=T.jsx(PU,{});else if(D==="/device")me=T.jsx(SU,{});else if(D==="/wrapped")me=T.jsx(CU,{});else if(he==="landing")me=T.jsx(kU,{signInUrl:"/login",signUpUrl:"/login"});else{const pe=T.jsx(M,{baseUrl:K,auth:de,signedIn:j,sessionSoftExpired:C,signOut:()=>n.enabled?n.signOut():Promise.resolve(),publicMode:S,publicToken:w,userId:U,signInUrl:"/login",signUpUrl:"/login",onMainContentVisible:fe},e);G?me=T.jsx(wN,{children:pe}):me=pe}return T.jsx(GR,{children:T.jsx(YR,{children:T.jsx(Zj,{children:T.jsxs(ZR,{children:[T.jsx(b.Suspense,{fallback:null,children:me}),G?T.jsx(WN,{}):null,T.jsx(G9,{}),T.jsx(Z8,{}),T.jsx(sR,{})]})})})})}const LU=uT([{path:"*",element:T.jsx(RU,{})}]);Q3.createRoot(document.getElementById("root")).render(T.jsx(Xo.StrictMode,{children:T.jsx(L8,{children:T.jsx(U8,{children:T.jsx(e8,{children:T.jsx(t8,{children:T.jsx(wT,{router:LU})})})})})}));export{xn as $,Ct as A,gz as B,ez as C,_z as D,cz as E,Bw as F,De as G,Ou as H,JU as I,XU as J,Dl as K,Id as L,WR as M,Tz as N,uz as O,VU as P,FU as Q,Xo as R,Fx as S,oN as T,VN as U,St as V,f2 as W,gg as X,eo as Y,hg as Z,W9 as _,ec as a,_l as a$,qU as a0,YA as a1,Yl as a2,Z9 as a3,ni as a4,Cz as a5,sz as a6,QU as a7,mA as a8,HU as a9,Rz as aA,zU as aB,az as aC,zd as aD,HR as aE,sN as aF,KB as aG,UR as aH,pz as aI,DU as aJ,Q6 as aK,yg as aL,od as aM,Yb as aN,nz as aO,u2 as aP,c2 as aQ,AR as aR,YU as aS,as as aT,ud as aU,Jw as aV,Qw as aW,e2 as aX,t2 as aY,MR as aZ,Ca as a_,$U as aa,GB as ab,lz as ac,ZU as ad,KU as ae,E_ as af,Az as ag,WL as ah,vt as ai,nn as aj,bd as ak,vg as al,is as am,Hg as an,p2 as ao,li as ap,yk as aq,ls as ar,In as as,ss as at,Y9 as au,sd as av,d0 as aw,fU as ax,Rm as ay,aA as az,Vj as b,mj as b$,Sz as b0,xz as b1,_P as b2,Ka as b3,vs as b4,ys as b5,uO as b6,F_ as b7,i0 as b8,Bi as b9,_O as bA,Xi as bB,t0 as bC,Ta as bD,SP as bE,Fi as bF,Vi as bG,eB as bH,Xz as bI,Pr as bJ,NB as bK,dO as bL,MB as bM,zB as bN,EB as bO,Fj as bP,_a as bQ,VB as bR,Pp as bS,SB as bT,KO as bU,CB as bV,RB as bW,Tl as bX,$B as bY,DB as bZ,kj as b_,xr as ba,TB as bb,HP as bc,IB as bd,_j as be,vj as bf,HN as bg,Iz as bh,Lz as bi,Vz as bj,Hz as bk,$z as bl,OR as bm,Dz as bn,Mz as bo,WB as bp,Nz as bq,zz as br,Oz as bs,jz as bt,Uz as bu,Fz as bv,Bz as bw,oB as bx,Yg as by,Ul as bz,an as c,AB as c$,ci as c0,j8 as c1,cg as c2,Pz as c3,wz as c4,kO as c5,EO as c6,hB as c7,LP as c8,MO as c9,wP as cA,qz as cB,vO as cC,wp as cD,yO as cE,QP as cF,nB as cG,tB as cH,z_ as cI,vB as cJ,bB as cK,Zo as cL,_p as cM,BB as cN,_B as cO,Tm as cP,kB as cQ,wB as cR,TO as cS,bp as cT,kp as cU,xB as cV,Pa as cW,rB as cX,iB as cY,CO as cZ,IP as c_,Cm as ca,pB as cb,mB as cc,fB as cd,DP as ce,AO as cf,RO as cg,NO as ch,gB as ci,yB as cj,lB as ck,IO as cl,dB as cm,DO as cn,hO as co,M_ as cp,uB as cq,cB as cr,Kd as cs,fO as ct,wm as cu,xP as cv,Gz as cw,gO as cx,Kz as cy,Aa as cz,UB as d,Zz as d0,Wz as d1,iO as d2,OB as d3,FB as d4,LB as d5,Yz as d6,HB as d7,jB as d8,Td as d9,$j as da,a0 as db,Hj as dc,bj as dd,qO as de,PB as df,GO as dg,Jz as dh,aB as di,Qz as dj,sB as dk,n0 as dl,O_ as dm,s0 as dn,iz as dp,oz as dq,rz as dr,er as ds,KM as e,BU as f,Fw as g,cA as h,Pn as i,T as j,kz as k,mz as l,Cl as m,PA as n,SA as o,yz as p,dz as q,b as r,GU as s,tz as t,Uj as u,vz as v,hz as w,bz as x,fz as y,WU as z};