From 1469a8207e12072d305f1289fe855ee4b27c4e25 Mon Sep 17 00:00:00 2001 From: manNomi Date: Sun, 1 Feb 2026 21:17:06 +0900 Subject: [PATCH 1/2] feat: add image fallback handling for university logos and news thumbnails --- apps/admin/.output/nitro.json | 15 + .../.output/public/assets/client-ByMMc4SQ.js | 6 + .../.output/public/assets/index-C5TecN1M.js | 1 + .../.output/public/assets/login-BFKyXQqT.js | 1 + .../.output/public/assets/main-CMD0s_Sp.js | 18 + .../.output/public/assets/styles-BHpgolea.css | 1 + apps/admin/.output/public/favicon.ico | Bin 0 -> 3870 bytes apps/admin/.output/public/logo192.png | Bin 0 -> 5347 bytes apps/admin/.output/public/logo512.png | Bin 0 -> 9664 bytes apps/admin/.output/public/manifest.json | 25 + apps/admin/.output/public/robots.txt | 3 + .../.output/public/tanstack-circle-logo.png | Bin 0 -> 265387 bytes .../public/tanstack-word-logo-white.svg | 1 + .../_chunks/_libs/@radix-ui/primitive.mjs | 11 + .../_libs/@radix-ui/react-collection.mjs | 69 + .../_libs/@radix-ui/react-compose-refs.mjs | 39 + .../_chunks/_libs/@radix-ui/react-context.mjs | 61 + .../_libs/@radix-ui/react-direction.mjs | 9 + .../_chunks/_libs/@radix-ui/react-id.mjs | 14 + .../_chunks/_libs/@radix-ui/react-label.mjs | 23 + .../_libs/@radix-ui/react-presence.mjs | 128 + .../_libs/@radix-ui/react-primitive.mjs | 70 + .../_libs/@radix-ui/react-roving-focus.mjs | 224 + .../_chunks/_libs/@radix-ui/react-slot.mjs | 186 + .../_chunks/_libs/@radix-ui/react-tabs.mjs | 189 + .../@radix-ui/react-use-callback-ref.mjs | 11 + .../react-use-controllable-state.mjs | 69 + .../@radix-ui/react-use-effect-event.mjs | 1 + .../@radix-ui/react-use-layout-effect.mjs | 6 + .../_chunks/_libs/@tanstack/history.mjs | 217 + .../_chunks/_libs/@tanstack/react-router.mjs | 1475 +++ .../_chunks/_libs/@tanstack/react-store.mjs | 1 + .../_chunks/_libs/@tanstack/router-core.mjs | 4773 +++++++ .../server/_chunks/_libs/@tanstack/store.mjs | 1 + .../.output/server/_chunks/_libs/asynckit.mjs | 220 + .../server/_chunks/_libs/combined-stream.mjs | 176 + .../.output/server/_chunks/_libs/debug.mjs | 547 + .../server/_chunks/_libs/follow-redirects.mjs | 530 + .../server/_chunks/_libs/form-data.mjs | 350 + .../server/_chunks/_libs/react-dom.mjs | 10781 ++++++++++++++++ .../server/_chunks/_libs/supports-color.mjs | 120 + apps/admin/.output/server/_libs/axios.mjs | 3467 +++++ .../server/_libs/call-bind-apply-helpers.mjs | 60 + .../server/_libs/class-variance-authority.mjs | 44 + apps/admin/.output/server/_libs/clsx.mjs | 16 + apps/admin/.output/server/_libs/cookie-es.mjs | 58 + apps/admin/.output/server/_libs/croner.mjs | 1 + apps/admin/.output/server/_libs/crossws.mjs | 1 + apps/admin/.output/server/_libs/date-fns.mjs | 1489 +++ .../.output/server/_libs/delayed-stream.mjs | 97 + .../.output/server/_libs/dunder-proto.mjs | 36 + .../server/_libs/es-define-property.mjs | 19 + apps/admin/.output/server/_libs/es-errors.mjs | 65 + .../.output/server/_libs/es-object-atoms.mjs | 11 + .../server/_libs/es-set-tostringtag.mjs | 39 + .../.output/server/_libs/function-bind.mjs | 88 + .../.output/server/_libs/get-intrinsic.mjs | 343 + apps/admin/.output/server/_libs/get-proto.mjs | 44 + apps/admin/.output/server/_libs/gopd.mjs | 27 + apps/admin/.output/server/_libs/h3.mjs | 403 + apps/admin/.output/server/_libs/has-flag.mjs | 16 + .../.output/server/_libs/has-symbols.mjs | 83 + .../.output/server/_libs/has-tostringtag.mjs | 15 + apps/admin/.output/server/_libs/hasown.mjs | 15 + apps/admin/.output/server/_libs/hookable.mjs | 1 + apps/admin/.output/server/_libs/isbot.mjs | 20 + .../.output/server/_libs/math-intrinsics.mjs | 81 + apps/admin/.output/server/_libs/mime-db.mjs | 2292 ++++ .../admin/.output/server/_libs/mime-types.mjs | 97 + apps/admin/.output/server/_libs/ms.mjs | 120 + apps/admin/.output/server/_libs/ohash.mjs | 1 + .../.output/server/_libs/proxy-from-env.mjs | 77 + apps/admin/.output/server/_libs/react.mjs | 510 + apps/admin/.output/server/_libs/rou3.mjs | 8 + .../.output/server/_libs/seroval-plugins.mjs | 58 + apps/admin/.output/server/_libs/seroval.mjs | 1765 +++ apps/admin/.output/server/_libs/sonner.mjs | 1086 ++ apps/admin/.output/server/_libs/srvx.mjs | 719 ++ .../.output/server/_libs/tailwind-merge.mjs | 3010 +++++ .../.output/server/_libs/tiny-invariant.mjs | 12 + .../.output/server/_libs/tiny-warning.mjs | 5 + apps/admin/.output/server/_libs/ufo.mjs | 54 + apps/admin/.output/server/_libs/unctx.mjs | 1 + apps/admin/.output/server/_libs/unstorage.mjs | 1 + .../server/_libs/use-sync-external-store.mjs | 1 + .../_tanstack-start-manifest_v-Cijt78HO.mjs | 4 + .../.output/server/_ssr/client-Bbw56rKA.mjs | 120 + .../.output/server/_ssr/index-DAUxcj3S.mjs | 629 + apps/admin/.output/server/_ssr/index.mjs | 1027 ++ .../.output/server/_ssr/login-CbYW89Za.mjs | 159 + .../.output/server/_ssr/router-D5H6tH2r.mjs | 181 + .../.output/server/_ssr/start-HYkvq4Ni.mjs | 4 + apps/admin/.output/server/favicon.ico | Bin 0 -> 3870 bytes apps/admin/.output/server/index.mjs | 445 + apps/admin/.output/server/logo192.png | Bin 0 -> 5347 bytes apps/admin/.output/server/logo512.png | Bin 0 -> 9664 bytes apps/admin/.output/server/manifest.json | 25 + apps/admin/.output/server/robots.txt | 3 + .../.output/server/tanstack-circle-logo.png | Bin 0 -> 265387 bytes .../server/tanstack-word-logo-white.svg | 1 + .../news-thumbnail-placeholder.svg | 18 + .../university-logo-placeholder.svg | 26 + apps/web/src/components/home/NewsCards.tsx | 46 +- .../components/ui/UniverSityCard/index.tsx | 6 +- apps/web/src/hooks/useImageFallback.ts | 20 + 105 files changed, 39421 insertions(+), 21 deletions(-) create mode 100644 apps/admin/.output/nitro.json create mode 100644 apps/admin/.output/public/assets/client-ByMMc4SQ.js create mode 100644 apps/admin/.output/public/assets/index-C5TecN1M.js create mode 100644 apps/admin/.output/public/assets/login-BFKyXQqT.js create mode 100644 apps/admin/.output/public/assets/main-CMD0s_Sp.js create mode 100644 apps/admin/.output/public/assets/styles-BHpgolea.css create mode 100644 apps/admin/.output/public/favicon.ico create mode 100644 apps/admin/.output/public/logo192.png create mode 100644 apps/admin/.output/public/logo512.png create mode 100644 apps/admin/.output/public/manifest.json create mode 100644 apps/admin/.output/public/robots.txt create mode 100644 apps/admin/.output/public/tanstack-circle-logo.png create mode 100644 apps/admin/.output/public/tanstack-word-logo-white.svg create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/primitive.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-collection.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-context.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-direction.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-id.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-label.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-presence.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-primitive.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-slot.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-tabs.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@tanstack/history.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@tanstack/react-router.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@tanstack/react-store.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@tanstack/router-core.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/@tanstack/store.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/asynckit.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/combined-stream.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/debug.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/follow-redirects.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/form-data.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/react-dom.mjs create mode 100644 apps/admin/.output/server/_chunks/_libs/supports-color.mjs create mode 100644 apps/admin/.output/server/_libs/axios.mjs create mode 100644 apps/admin/.output/server/_libs/call-bind-apply-helpers.mjs create mode 100644 apps/admin/.output/server/_libs/class-variance-authority.mjs create mode 100644 apps/admin/.output/server/_libs/clsx.mjs create mode 100644 apps/admin/.output/server/_libs/cookie-es.mjs create mode 100644 apps/admin/.output/server/_libs/croner.mjs create mode 100644 apps/admin/.output/server/_libs/crossws.mjs create mode 100644 apps/admin/.output/server/_libs/date-fns.mjs create mode 100644 apps/admin/.output/server/_libs/delayed-stream.mjs create mode 100644 apps/admin/.output/server/_libs/dunder-proto.mjs create mode 100644 apps/admin/.output/server/_libs/es-define-property.mjs create mode 100644 apps/admin/.output/server/_libs/es-errors.mjs create mode 100644 apps/admin/.output/server/_libs/es-object-atoms.mjs create mode 100644 apps/admin/.output/server/_libs/es-set-tostringtag.mjs create mode 100644 apps/admin/.output/server/_libs/function-bind.mjs create mode 100644 apps/admin/.output/server/_libs/get-intrinsic.mjs create mode 100644 apps/admin/.output/server/_libs/get-proto.mjs create mode 100644 apps/admin/.output/server/_libs/gopd.mjs create mode 100644 apps/admin/.output/server/_libs/h3.mjs create mode 100644 apps/admin/.output/server/_libs/has-flag.mjs create mode 100644 apps/admin/.output/server/_libs/has-symbols.mjs create mode 100644 apps/admin/.output/server/_libs/has-tostringtag.mjs create mode 100644 apps/admin/.output/server/_libs/hasown.mjs create mode 100644 apps/admin/.output/server/_libs/hookable.mjs create mode 100644 apps/admin/.output/server/_libs/isbot.mjs create mode 100644 apps/admin/.output/server/_libs/math-intrinsics.mjs create mode 100644 apps/admin/.output/server/_libs/mime-db.mjs create mode 100644 apps/admin/.output/server/_libs/mime-types.mjs create mode 100644 apps/admin/.output/server/_libs/ms.mjs create mode 100644 apps/admin/.output/server/_libs/ohash.mjs create mode 100644 apps/admin/.output/server/_libs/proxy-from-env.mjs create mode 100644 apps/admin/.output/server/_libs/react.mjs create mode 100644 apps/admin/.output/server/_libs/rou3.mjs create mode 100644 apps/admin/.output/server/_libs/seroval-plugins.mjs create mode 100644 apps/admin/.output/server/_libs/seroval.mjs create mode 100644 apps/admin/.output/server/_libs/sonner.mjs create mode 100644 apps/admin/.output/server/_libs/srvx.mjs create mode 100644 apps/admin/.output/server/_libs/tailwind-merge.mjs create mode 100644 apps/admin/.output/server/_libs/tiny-invariant.mjs create mode 100644 apps/admin/.output/server/_libs/tiny-warning.mjs create mode 100644 apps/admin/.output/server/_libs/ufo.mjs create mode 100644 apps/admin/.output/server/_libs/unctx.mjs create mode 100644 apps/admin/.output/server/_libs/unstorage.mjs create mode 100644 apps/admin/.output/server/_libs/use-sync-external-store.mjs create mode 100644 apps/admin/.output/server/_ssr/_tanstack-start-manifest_v-Cijt78HO.mjs create mode 100644 apps/admin/.output/server/_ssr/client-Bbw56rKA.mjs create mode 100644 apps/admin/.output/server/_ssr/index-DAUxcj3S.mjs create mode 100644 apps/admin/.output/server/_ssr/index.mjs create mode 100644 apps/admin/.output/server/_ssr/login-CbYW89Za.mjs create mode 100644 apps/admin/.output/server/_ssr/router-D5H6tH2r.mjs create mode 100644 apps/admin/.output/server/_ssr/start-HYkvq4Ni.mjs create mode 100644 apps/admin/.output/server/favicon.ico create mode 100644 apps/admin/.output/server/index.mjs create mode 100644 apps/admin/.output/server/logo192.png create mode 100644 apps/admin/.output/server/logo512.png create mode 100644 apps/admin/.output/server/manifest.json create mode 100644 apps/admin/.output/server/robots.txt create mode 100644 apps/admin/.output/server/tanstack-circle-logo.png create mode 100644 apps/admin/.output/server/tanstack-word-logo-white.svg create mode 100644 apps/web/public/svgs/placeholders/news-thumbnail-placeholder.svg create mode 100644 apps/web/public/svgs/placeholders/university-logo-placeholder.svg create mode 100644 apps/web/src/hooks/useImageFallback.ts diff --git a/apps/admin/.output/nitro.json b/apps/admin/.output/nitro.json new file mode 100644 index 00000000..afe33aae --- /dev/null +++ b/apps/admin/.output/nitro.json @@ -0,0 +1,15 @@ +{ + "date": "2026-02-01T08:38:48.706Z", + "preset": "node-server", + "framework": { + "name": "nitro", + "version": "" + }, + "versions": { + "nitro": "3.0.1-20260131-190432-654aa755" + }, + "commands": { + "preview": "node ./server/index.mjs" + }, + "config": {} +} \ No newline at end of file diff --git a/apps/admin/.output/public/assets/client-ByMMc4SQ.js b/apps/admin/.output/public/assets/client-ByMMc4SQ.js new file mode 100644 index 00000000..5d478a71 --- /dev/null +++ b/apps/admin/.output/public/assets/client-ByMMc4SQ.js @@ -0,0 +1,6 @@ +import{r as j,a as kr,j as He,l as Sr,i as We,c as Ot,d as Oe,e as Pe,s as Pt}from"./main-CMD0s_Sp.js";function st(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Nt(...e){return t=>{let r=!1;const n=e.map(o=>{const i=st(o,t);return!r&&typeof i=="function"&&(r=!0),i});if(r)return()=>{for(let o=0;o{let{children:i,...s}=n;_t(i)&&typeof Ne=="function"&&(i=Ne(i._payload));const a=j.Children.toArray(i),u=a.find(Or);if(u){const c=u.props.children,d=a.map(m=>m===u?j.Children.count(c)>1?j.Children.only(null):j.isValidElement(c)?c.props.children:null:m);return He.jsx(t,{...s,ref:o,children:j.isValidElement(c)?j.cloneElement(c,void 0,d):null})}return He.jsx(t,{...s,ref:o,children:i})});return r.displayName=`${e}.Slot`,r}var vr=Ar("Slot");function Cr(e){const t=j.forwardRef((r,n)=>{let{children:o,...i}=r;if(_t(o)&&typeof Ne=="function"&&(o=Ne(o._payload)),j.isValidElement(o)){const s=Nr(o),a=Pr(i,o.props);return o.type!==j.Fragment&&(a.ref=n?Nt(n,s):s),j.cloneElement(o,a)}return j.Children.count(o)>1?j.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Tr=Symbol("radix.slottable");function Or(e){return j.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Tr}function Pr(e,t){const r={...t};for(const n in t){const o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...a)=>{const u=i(...a);return o(...a),u}:o&&(r[n]=o):n==="style"?r[n]={...o,...i}:n==="className"&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}function Nr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function Ft(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,at=Lt,_r=(e,t)=>r=>{var n;if(t?.variants==null)return at(e,r?.class,r?.className);const{variants:o,defaultVariants:i}=t,s=Object.keys(o).map(c=>{const d=r?.[c],m=i?.[c];if(d===null)return null;const x=it(d)||it(m);return o[c][x]}),a=r&&Object.entries(r).reduce((c,d)=>{let[m,x]=d;return x===void 0||(c[m]=x),c},{}),u=t==null||(n=t.compoundVariants)===null||n===void 0?void 0:n.reduce((c,d)=>{let{class:m,className:x,...R}=d;return Object.entries(R).every(f=>{let[g,p]=f;return Array.isArray(p)?p.includes({...i,...a}[g]):{...i,...a}[g]===p})?[...c,m,x]:c},[]);return at(e,s,u,r?.class,r?.className)},Fr=(e,t)=>{const r=new Array(e.length+t.length);for(let n=0;n({classGroupId:e,validator:t}),zt=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),_e="-",lt=[],zr="arbitrary..",jr=e=>{const t=Br(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return Ur(s);const a=s.split(_e),u=a[0]===""&&a.length>1?1:0;return jt(a,u,t)},getConflictingClassGroupIds:(s,a)=>{if(a){const u=n[s],c=r[s];return u?c?Fr(c,u):u:c||lt}return r[s]||lt}}},jt=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const o=e[t],i=r.nextPart.get(o);if(i){const c=jt(e,t+1,i);if(c)return c}const s=r.validators;if(s===null)return;const a=t===0?e.join(_e):e.slice(t).join(_e),u=s.length;for(let c=0;ce.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),n=t.slice(0,r);return n?zr+n:void 0})(),Br=e=>{const{theme:t,classGroups:r}=e;return Ir(r,t)},Ir=(e,t)=>{const r=zt();for(const n in e){const o=e[n];Ze(o,r,n,t)}return r},Ze=(e,t,r,n)=>{const o=e.length;for(let i=0;i{if(typeof e=="string"){Mr(e,t,r);return}if(typeof e=="function"){qr(e,t,r,n);return}$r(e,t,r,n)},Mr=(e,t,r)=>{const n=e===""?t:Ut(t,e);n.classGroupId=r},qr=(e,t,r,n)=>{if(Vr(e)){Ze(e(n),t,r,n);return}t.validators===null&&(t.validators=[]),t.validators.push(Lr(r,e))},$r=(e,t,r,n)=>{const o=Object.entries(e),i=o.length;for(let s=0;s{let r=e;const n=t.split(_e),o=n.length;for(let i=0;i"isThemeGetter"in e&&e.isThemeGetter===!0,Hr=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null);const o=(i,s)=>{r[i]=s,t++,t>e&&(t=0,n=r,r=Object.create(null))};return{get(i){let s=r[i];if(s!==void 0)return s;if((s=n[i])!==void 0)return o(i,s),s},set(i,s){i in r?r[i]=s:o(i,s)}}},Ge="!",ct=":",Wr=[],ut=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),Gr=e=>{const{prefix:t,experimentalParseClassName:r}=e;let n=o=>{const i=[];let s=0,a=0,u=0,c;const d=o.length;for(let g=0;gu?c-u:void 0;return ut(i,R,x,f)};if(t){const o=t+ct,i=n;n=s=>s.startsWith(o)?i(s.slice(o.length)):ut(Wr,!1,s,void 0,!0)}if(r){const o=n;n=i=>r({className:i,parseClassName:o})}return n},Jr=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,n)=>{t.set(r,1e6+n)}),r=>{const n=[];let o=[];for(let i=0;i0&&(o.sort(),n.push(...o),o=[]),n.push(s)):o.push(s)}return o.length>0&&(o.sort(),n.push(...o)),n}},Kr=e=>({cache:Hr(e.cacheSize),parseClassName:Gr(e),sortModifiers:Jr(e),...jr(e)}),Xr=/\s+/,Yr=(e,t)=>{const{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:i}=t,s=[],a=e.trim().split(Xr);let u="";for(let c=a.length-1;c>=0;c-=1){const d=a[c],{isExternal:m,modifiers:x,hasImportantModifier:R,baseClassName:f,maybePostfixModifierPosition:g}=r(d);if(m){u=d+(u.length>0?" "+u:u);continue}let p=!!g,E=n(p?f.substring(0,g):f);if(!E){if(!p){u=d+(u.length>0?" "+u:u);continue}if(E=n(f),!E){u=d+(u.length>0?" "+u:u);continue}p=!1}const z=x.length===0?"":x.length===1?x[0]:i(x).join(":"),A=R?z+Ge:z,C=A+E;if(s.indexOf(C)>-1)continue;s.push(C);const N=o(E,p);for(let B=0;B0?" "+u:u)}return u},Zr=(...e)=>{let t=0,r,n,o="";for(;t{if(typeof e=="string")return e;let t,r="";for(let n=0;n{let r,n,o,i;const s=u=>{const c=t.reduce((d,m)=>m(d),e());return r=Kr(c),n=r.cache.get,o=r.cache.set,i=a,a(u)},a=u=>{const c=n(u);if(c)return c;const d=Yr(u,r);return o(u,d),d};return i=s,(...u)=>i(Zr(...u))},en=[],P=e=>{const t=r=>r[e]||en;return t.isThemeGetter=!0,t},It=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Dt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,tn=/^\d+\/\d+$/,rn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,nn=/\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$/,on=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,sn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,an=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,oe=e=>tn.test(e),S=e=>!!e&&!Number.isNaN(Number(e)),Z=e=>!!e&&Number.isInteger(Number(e)),De=e=>e.endsWith("%")&&S(e.slice(0,-1)),X=e=>rn.test(e),ln=()=>!0,cn=e=>nn.test(e)&&!on.test(e),Mt=()=>!1,un=e=>sn.test(e),dn=e=>an.test(e),fn=e=>!h(e)&&!b(e),pn=e=>ie(e,Vt,Mt),h=e=>It.test(e),ee=e=>ie(e,Ht,cn),Me=e=>ie(e,yn,S),dt=e=>ie(e,qt,Mt),mn=e=>ie(e,$t,dn),Ee=e=>ie(e,Wt,un),b=e=>Dt.test(e),pe=e=>ae(e,Ht),hn=e=>ae(e,wn),ft=e=>ae(e,qt),bn=e=>ae(e,Vt),gn=e=>ae(e,$t),Re=e=>ae(e,Wt,!0),ie=(e,t,r)=>{const n=It.exec(e);return n?n[1]?t(n[1]):r(n[2]):!1},ae=(e,t,r=!1)=>{const n=Dt.exec(e);return n?n[1]?t(n[1]):r:!1},qt=e=>e==="position"||e==="percentage",$t=e=>e==="image"||e==="url",Vt=e=>e==="length"||e==="size"||e==="bg-size",Ht=e=>e==="length",yn=e=>e==="number",wn=e=>e==="family-name",Wt=e=>e==="shadow",xn=()=>{const e=P("color"),t=P("font"),r=P("text"),n=P("font-weight"),o=P("tracking"),i=P("leading"),s=P("breakpoint"),a=P("container"),u=P("spacing"),c=P("radius"),d=P("shadow"),m=P("inset-shadow"),x=P("text-shadow"),R=P("drop-shadow"),f=P("blur"),g=P("perspective"),p=P("aspect"),E=P("ease"),z=P("animate"),A=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...C(),b,h],B=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto","contain","none"],w=()=>[b,h,u],I=()=>[oe,"full","auto",...w()],ue=()=>[Z,"none","subgrid",b,h],de=()=>["auto",{span:["full",Z,b,h]},Z,b,h],J=()=>[Z,"auto",b,h],Y=()=>["auto","min","max","fr",b,h],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],K=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...w()],H=()=>[oe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...w()],y=()=>[e,b,h],fe=()=>[...C(),ft,dt,{position:[b,h]}],we=()=>["no-repeat",{repeat:["","x","y","space","round"]}],$=()=>["auto","cover","contain",bn,pn,{size:[b,h]}],W=()=>[De,pe,ee],O=()=>["","none","full",c,b,h],F=()=>["",S,pe,ee],Q=()=>["solid","dashed","dotted","double"],nt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],L=()=>[S,De,ft,dt],ot=()=>["","none",f,b,h],xe=()=>["none",S,b,h],ke=()=>["none",S,b,h],Ie=()=>[S,b,h],Se=()=>[oe,"full",...w()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[X],breakpoint:[X],color:[ln],container:[X],"drop-shadow":[X],ease:["in","out","in-out"],font:[fn],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[X],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[X],shadow:[X],spacing:["px",S],text:[X],"text-shadow":[X],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",oe,h,b,p]}],container:["container"],columns:[{columns:[S,h,b,a]}],"break-after":[{"break-after":A()}],"break-before":[{"break-before":A()}],"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:N()}],overflow:[{overflow:B()}],"overflow-x":[{"overflow-x":B()}],"overflow-y":[{"overflow-y":B()}],overscroll:[{overscroll:_()}],"overscroll-x":[{"overscroll-x":_()}],"overscroll-y":[{"overscroll-y":_()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:I()}],"inset-x":[{"inset-x":I()}],"inset-y":[{"inset-y":I()}],start:[{start:I()}],end:[{end:I()}],top:[{top:I()}],right:[{right:I()}],bottom:[{bottom:I()}],left:[{left:I()}],visibility:["visible","invisible","collapse"],z:[{z:[Z,"auto",b,h]}],basis:[{basis:[oe,"full","auto",a,...w()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[S,oe,"auto","initial","none",h]}],grow:[{grow:["",S,b,h]}],shrink:[{shrink:["",S,b,h]}],order:[{order:[Z,"first","last","none",b,h]}],"grid-cols":[{"grid-cols":ue()}],"col-start-end":[{col:de()}],"col-start":[{"col-start":J()}],"col-end":[{"col-end":J()}],"grid-rows":[{"grid-rows":ue()}],"row-start-end":[{row:de()}],"row-start":[{"row-start":J()}],"row-end":[{"row-end":J()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Y()}],"auto-rows":[{"auto-rows":Y()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...K(),"normal"]}],"justify-self":[{"justify-self":["auto",...K()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...K(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...K(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...K(),"baseline"]}],"place-self":[{"place-self":["auto",...K()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":w()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":w()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],w:[{w:[a,"screen",...H()]}],"min-w":[{"min-w":[a,"screen","none",...H()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[s]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",r,pe,ee]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,b,Me]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",De,h]}],"font-family":[{font:[hn,h,t]}],"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:[o,b,h]}],"line-clamp":[{"line-clamp":[S,"none",b,Me]}],leading:[{leading:[i,...w()]}],"list-image":[{"list-image":["none",b,h]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",b,h]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:y()}],"text-color":[{text:y()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:[S,"from-font","auto",b,ee]}],"text-decoration-color":[{decoration:y()}],"underline-offset":[{"underline-offset":[S,"auto",b,h]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:w()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",b,h]}],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",b,h]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:fe()}],"bg-repeat":[{bg:we()}],"bg-size":[{bg:$()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Z,b,h],radial:["",b,h],conic:[Z,b,h]},gn,mn]}],"bg-color":[{bg:y()}],"gradient-from-pos":[{from:W()}],"gradient-via-pos":[{via:W()}],"gradient-to-pos":[{to:W()}],"gradient-from":[{from:y()}],"gradient-via":[{via:y()}],"gradient-to":[{to:y()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:F()}],"border-w-x":[{"border-x":F()}],"border-w-y":[{"border-y":F()}],"border-w-s":[{"border-s":F()}],"border-w-e":[{"border-e":F()}],"border-w-t":[{"border-t":F()}],"border-w-r":[{"border-r":F()}],"border-w-b":[{"border-b":F()}],"border-w-l":[{"border-l":F()}],"divide-x":[{"divide-x":F()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":F()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Q(),"hidden","none"]}],"divide-style":[{divide:[...Q(),"hidden","none"]}],"border-color":[{border:y()}],"border-color-x":[{"border-x":y()}],"border-color-y":[{"border-y":y()}],"border-color-s":[{"border-s":y()}],"border-color-e":[{"border-e":y()}],"border-color-t":[{"border-t":y()}],"border-color-r":[{"border-r":y()}],"border-color-b":[{"border-b":y()}],"border-color-l":[{"border-l":y()}],"divide-color":[{divide:y()}],"outline-style":[{outline:[...Q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[S,b,h]}],"outline-w":[{outline:["",S,pe,ee]}],"outline-color":[{outline:y()}],shadow:[{shadow:["","none",d,Re,Ee]}],"shadow-color":[{shadow:y()}],"inset-shadow":[{"inset-shadow":["none",m,Re,Ee]}],"inset-shadow-color":[{"inset-shadow":y()}],"ring-w":[{ring:F()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:y()}],"ring-offset-w":[{"ring-offset":[S,ee]}],"ring-offset-color":[{"ring-offset":y()}],"inset-ring-w":[{"inset-ring":F()}],"inset-ring-color":[{"inset-ring":y()}],"text-shadow":[{"text-shadow":["none",x,Re,Ee]}],"text-shadow-color":[{"text-shadow":y()}],opacity:[{opacity:[S,b,h]}],"mix-blend":[{"mix-blend":[...nt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":nt()}],"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":[S]}],"mask-image-linear-from-pos":[{"mask-linear-from":L()}],"mask-image-linear-to-pos":[{"mask-linear-to":L()}],"mask-image-linear-from-color":[{"mask-linear-from":y()}],"mask-image-linear-to-color":[{"mask-linear-to":y()}],"mask-image-t-from-pos":[{"mask-t-from":L()}],"mask-image-t-to-pos":[{"mask-t-to":L()}],"mask-image-t-from-color":[{"mask-t-from":y()}],"mask-image-t-to-color":[{"mask-t-to":y()}],"mask-image-r-from-pos":[{"mask-r-from":L()}],"mask-image-r-to-pos":[{"mask-r-to":L()}],"mask-image-r-from-color":[{"mask-r-from":y()}],"mask-image-r-to-color":[{"mask-r-to":y()}],"mask-image-b-from-pos":[{"mask-b-from":L()}],"mask-image-b-to-pos":[{"mask-b-to":L()}],"mask-image-b-from-color":[{"mask-b-from":y()}],"mask-image-b-to-color":[{"mask-b-to":y()}],"mask-image-l-from-pos":[{"mask-l-from":L()}],"mask-image-l-to-pos":[{"mask-l-to":L()}],"mask-image-l-from-color":[{"mask-l-from":y()}],"mask-image-l-to-color":[{"mask-l-to":y()}],"mask-image-x-from-pos":[{"mask-x-from":L()}],"mask-image-x-to-pos":[{"mask-x-to":L()}],"mask-image-x-from-color":[{"mask-x-from":y()}],"mask-image-x-to-color":[{"mask-x-to":y()}],"mask-image-y-from-pos":[{"mask-y-from":L()}],"mask-image-y-to-pos":[{"mask-y-to":L()}],"mask-image-y-from-color":[{"mask-y-from":y()}],"mask-image-y-to-color":[{"mask-y-to":y()}],"mask-image-radial":[{"mask-radial":[b,h]}],"mask-image-radial-from-pos":[{"mask-radial-from":L()}],"mask-image-radial-to-pos":[{"mask-radial-to":L()}],"mask-image-radial-from-color":[{"mask-radial-from":y()}],"mask-image-radial-to-color":[{"mask-radial-to":y()}],"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":C()}],"mask-image-conic-pos":[{"mask-conic":[S]}],"mask-image-conic-from-pos":[{"mask-conic-from":L()}],"mask-image-conic-to-pos":[{"mask-conic-to":L()}],"mask-image-conic-from-color":[{"mask-conic-from":y()}],"mask-image-conic-to-color":[{"mask-conic-to":y()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:fe()}],"mask-repeat":[{mask:we()}],"mask-size":[{mask:$()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",b,h]}],filter:[{filter:["","none",b,h]}],blur:[{blur:ot()}],brightness:[{brightness:[S,b,h]}],contrast:[{contrast:[S,b,h]}],"drop-shadow":[{"drop-shadow":["","none",R,Re,Ee]}],"drop-shadow-color":[{"drop-shadow":y()}],grayscale:[{grayscale:["",S,b,h]}],"hue-rotate":[{"hue-rotate":[S,b,h]}],invert:[{invert:["",S,b,h]}],saturate:[{saturate:[S,b,h]}],sepia:[{sepia:["",S,b,h]}],"backdrop-filter":[{"backdrop-filter":["","none",b,h]}],"backdrop-blur":[{"backdrop-blur":ot()}],"backdrop-brightness":[{"backdrop-brightness":[S,b,h]}],"backdrop-contrast":[{"backdrop-contrast":[S,b,h]}],"backdrop-grayscale":[{"backdrop-grayscale":["",S,b,h]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[S,b,h]}],"backdrop-invert":[{"backdrop-invert":["",S,b,h]}],"backdrop-opacity":[{"backdrop-opacity":[S,b,h]}],"backdrop-saturate":[{"backdrop-saturate":[S,b,h]}],"backdrop-sepia":[{"backdrop-sepia":["",S,b,h]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",b,h]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[S,"initial",b,h]}],ease:[{ease:["linear","initial",E,b,h]}],delay:[{delay:[S,b,h]}],animate:[{animate:["none",z,b,h]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[g,b,h]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:xe()}],"rotate-x":[{"rotate-x":xe()}],"rotate-y":[{"rotate-y":xe()}],"rotate-z":[{"rotate-z":xe()}],scale:[{scale:ke()}],"scale-x":[{"scale-x":ke()}],"scale-y":[{"scale-y":ke()}],"scale-z":[{"scale-z":ke()}],"scale-3d":["scale-3d"],skew:[{skew:Ie()}],"skew-x":[{"skew-x":Ie()}],"skew-y":[{"skew-y":Ie()}],transform:[{transform:[b,h,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Se()}],"translate-x":[{"translate-x":Se()}],"translate-y":[{"translate-y":Se()}],"translate-z":[{"translate-z":Se()}],"translate-none":["translate-none"],accent:[{accent:y()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:y()}],"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",b,h]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"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",b,h]}],fill:[{fill:["none",...y()]}],"stroke-w":[{stroke:[S,pe,ee,Me]}],stroke:[{stroke:["none",...y()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","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","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","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-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-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-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-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"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},kn=Qr(xn);function Sn(...e){return kn(Lt(e))}const En=_r("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Rn=j.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},i)=>{const s=n?vr:"button";return He.jsx(s,{className:Sn(En({variant:t,size:r,className:e})),ref:i,...o})});Rn.displayName="Button";function Gt(e,t){return function(){return e.apply(t,arguments)}}const{toString:An}=Object.prototype,{getPrototypeOf:Qe}=Object,{iterator:Le,toStringTag:Jt}=Symbol,ze=(e=>t=>{const r=An.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),V=e=>(e=e.toLowerCase(),t=>ze(t)===e),je=e=>t=>typeof t===e,{isArray:le}=Array,se=je("undefined");function he(e){return e!==null&&!se(e)&&e.constructor!==null&&!se(e.constructor)&&D(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Kt=V("ArrayBuffer");function vn(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Kt(e.buffer),t}const Cn=je("string"),D=je("function"),Xt=je("number"),be=e=>e!==null&&typeof e=="object",Tn=e=>e===!0||e===!1,ve=e=>{if(ze(e)!=="object")return!1;const t=Qe(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Jt in e)&&!(Le in e)},On=e=>{if(!be(e)||he(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},Pn=V("Date"),Nn=V("File"),_n=V("Blob"),Fn=V("FileList"),Ln=e=>be(e)&&D(e.pipe),zn=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||D(e.append)&&((t=ze(e))==="formdata"||t==="object"&&D(e.toString)&&e.toString()==="[object FormData]"))},jn=V("URLSearchParams"),[Un,Bn,In,Dn]=["ReadableStream","Request","Response","Headers"].map(V),Mn=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ge(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),le(e))for(n=0,o=e.length;n0;)if(o=r[n],t===o.toLowerCase())return o;return null}const te=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Zt=e=>!se(e)&&e!==te;function Je(){const{caseless:e,skipUndefined:t}=Zt(this)&&this||{},r={},n=(o,i)=>{const s=e&&Yt(r,i)||i;ve(r[s])&&ve(o)?r[s]=Je(r[s],o):ve(o)?r[s]=Je({},o):le(o)?r[s]=o.slice():(!t||!se(o))&&(r[s]=o)};for(let o=0,i=arguments.length;o(ge(t,(o,i)=>{r&&D(o)?e[i]=Gt(o,r):e[i]=o},{allOwnKeys:n}),e),$n=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Vn=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},Hn=(e,t,r,n)=>{let o,i,s;const a={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)s=o[i],(!n||n(s,e,t))&&!a[s]&&(t[s]=e[s],a[s]=!0);e=r!==!1&&Qe(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},Wn=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},Gn=e=>{if(!e)return null;if(le(e))return e;let t=e.length;if(!Xt(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},Jn=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Qe(Uint8Array)),Kn=(e,t)=>{const n=(e&&e[Le]).call(e);let o;for(;(o=n.next())&&!o.done;){const i=o.value;t.call(e,i[0],i[1])}},Xn=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},Yn=V("HTMLFormElement"),Zn=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),pt=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Qn=V("RegExp"),Qt=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};ge(r,(o,i)=>{let s;(s=t(o,i,e))!==!1&&(n[i]=s||o)}),Object.defineProperties(e,n)},eo=e=>{Qt(e,(t,r)=>{if(D(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(D(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},to=(e,t)=>{const r={},n=o=>{o.forEach(i=>{r[i]=!0})};return le(e)?n(e):n(String(e).split(t)),r},ro=()=>{},no=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function oo(e){return!!(e&&D(e.append)&&e[Jt]==="FormData"&&e[Le])}const so=e=>{const t=new Array(10),r=(n,o)=>{if(be(n)){if(t.indexOf(n)>=0)return;if(he(n))return n;if(!("toJSON"in n)){t[o]=n;const i=le(n)?[]:{};return ge(n,(s,a)=>{const u=r(s,o+1);!se(u)&&(i[a]=u)}),t[o]=void 0,i}}return n};return r(e,0)},io=V("AsyncFunction"),ao=e=>e&&(be(e)||D(e))&&D(e.then)&&D(e.catch),er=((e,t)=>e?setImmediate:t?((r,n)=>(te.addEventListener("message",({source:o,data:i})=>{o===te&&i===r&&n.length&&n.shift()()},!1),o=>{n.push(o),te.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",D(te.postMessage)),lo=typeof queueMicrotask<"u"?queueMicrotask.bind(te):typeof process<"u"&&process.nextTick||er,co=e=>e!=null&&D(e[Le]),l={isArray:le,isArrayBuffer:Kt,isBuffer:he,isFormData:zn,isArrayBufferView:vn,isString:Cn,isNumber:Xt,isBoolean:Tn,isObject:be,isPlainObject:ve,isEmptyObject:On,isReadableStream:Un,isRequest:Bn,isResponse:In,isHeaders:Dn,isUndefined:se,isDate:Pn,isFile:Nn,isBlob:_n,isRegExp:Qn,isFunction:D,isStream:Ln,isURLSearchParams:jn,isTypedArray:Jn,isFileList:Fn,forEach:ge,merge:Je,extend:qn,trim:Mn,stripBOM:$n,inherits:Vn,toFlatObject:Hn,kindOf:ze,kindOfTest:V,endsWith:Wn,toArray:Gn,forEachEntry:Kn,matchAll:Xn,isHTMLForm:Yn,hasOwnProperty:pt,hasOwnProp:pt,reduceDescriptors:Qt,freezeMethods:eo,toObjectSet:to,toCamelCase:Zn,noop:ro,toFiniteNumber:no,findKey:Yt,global:te,isContextDefined:Zt,isSpecCompliantForm:oo,toJSONObject:so,isAsyncFn:io,isThenable:ao,setImmediate:er,asap:lo,isIterable:co};function k(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}l.inherits(k,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:l.toJSONObject(this.config),code:this.code,status:this.status}}});const tr=k.prototype,rr={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{rr[e]={value:e}});Object.defineProperties(k,rr);Object.defineProperty(tr,"isAxiosError",{value:!0});k.from=(e,t,r,n,o,i)=>{const s=Object.create(tr);l.toFlatObject(e,s,function(d){return d!==Error.prototype},c=>c!=="isAxiosError");const a=e&&e.message?e.message:"Error",u=t==null&&e?e.code:t;return k.call(s,a,u,r,n,o),e&&s.cause==null&&Object.defineProperty(s,"cause",{value:e,configurable:!0}),s.name=e&&e.name||"Error",i&&Object.assign(s,i),s};const uo=null;function Ke(e){return l.isPlainObject(e)||l.isArray(e)}function nr(e){return l.endsWith(e,"[]")?e.slice(0,-2):e}function mt(e,t,r){return e?e.concat(t).map(function(o,i){return o=nr(o),!r&&i?"["+o+"]":o}).join(r?".":""):t}function fo(e){return l.isArray(e)&&!e.some(Ke)}const po=l.toFlatObject(l,{},null,function(t){return/^is[A-Z]/.test(t)});function Ue(e,t,r){if(!l.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=l.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,p){return!l.isUndefined(p[g])});const n=r.metaTokens,o=r.visitor||d,i=r.dots,s=r.indexes,u=(r.Blob||typeof Blob<"u"&&Blob)&&l.isSpecCompliantForm(t);if(!l.isFunction(o))throw new TypeError("visitor must be a function");function c(f){if(f===null)return"";if(l.isDate(f))return f.toISOString();if(l.isBoolean(f))return f.toString();if(!u&&l.isBlob(f))throw new k("Blob is not supported. Use a Buffer instead.");return l.isArrayBuffer(f)||l.isTypedArray(f)?u&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function d(f,g,p){let E=f;if(f&&!p&&typeof f=="object"){if(l.endsWith(g,"{}"))g=n?g:g.slice(0,-2),f=JSON.stringify(f);else if(l.isArray(f)&&fo(f)||(l.isFileList(f)||l.endsWith(g,"[]"))&&(E=l.toArray(f)))return g=nr(g),E.forEach(function(A,C){!(l.isUndefined(A)||A===null)&&t.append(s===!0?mt([g],C,i):s===null?g:g+"[]",c(A))}),!1}return Ke(f)?!0:(t.append(mt(p,g,i),c(f)),!1)}const m=[],x=Object.assign(po,{defaultVisitor:d,convertValue:c,isVisitable:Ke});function R(f,g){if(!l.isUndefined(f)){if(m.indexOf(f)!==-1)throw Error("Circular reference detected in "+g.join("."));m.push(f),l.forEach(f,function(E,z){(!(l.isUndefined(E)||E===null)&&o.call(t,E,l.isString(z)?z.trim():z,g,x))===!0&&R(E,g?g.concat(z):[z])}),m.pop()}}if(!l.isObject(e))throw new TypeError("data must be an object");return R(e),t}function ht(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function et(e,t){this._pairs=[],e&&Ue(e,this,t)}const or=et.prototype;or.append=function(t,r){this._pairs.push([t,r])};or.toString=function(t){const r=t?function(n){return t.call(this,n,ht)}:ht;return this._pairs.map(function(o){return r(o[0])+"="+r(o[1])},"").join("&")};function mo(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function sr(e,t,r){if(!t)return e;const n=r&&r.encode||mo;l.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let i;if(o?i=o(t,r):i=l.isURLSearchParams(t)?t.toString():new et(t,r).toString(n),i){const s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class bt{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){l.forEach(this.handlers,function(n){n!==null&&t(n)})}}const ir={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ho=typeof URLSearchParams<"u"?URLSearchParams:et,bo=typeof FormData<"u"?FormData:null,go=typeof Blob<"u"?Blob:null,yo={isBrowser:!0,classes:{URLSearchParams:ho,FormData:bo,Blob:go},protocols:["http","https","file","blob","url","data"]},tt=typeof window<"u"&&typeof document<"u",Xe=typeof navigator=="object"&&navigator||void 0,wo=tt&&(!Xe||["ReactNative","NativeScript","NS"].indexOf(Xe.product)<0),xo=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",ko=tt&&window.location.href||"http://localhost",So=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:tt,hasStandardBrowserEnv:wo,hasStandardBrowserWebWorkerEnv:xo,navigator:Xe,origin:ko},Symbol.toStringTag,{value:"Module"})),U={...So,...yo};function Eo(e,t){return Ue(e,new U.classes.URLSearchParams,{visitor:function(r,n,o,i){return U.isNode&&l.isBuffer(r)?(this.append(n,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function Ro(e){return l.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ao(e){const t={},r=Object.keys(e);let n;const o=r.length;let i;for(n=0;n=r.length;return s=!s&&l.isArray(o)?o.length:s,u?(l.hasOwnProp(o,s)?o[s]=[o[s],n]:o[s]=n,!a):((!o[s]||!l.isObject(o[s]))&&(o[s]=[]),t(r,n,o[s],i)&&l.isArray(o[s])&&(o[s]=Ao(o[s])),!a)}if(l.isFormData(e)&&l.isFunction(e.entries)){const r={};return l.forEachEntry(e,(n,o)=>{t(Ro(n),o,r,0)}),r}return null}function vo(e,t,r){if(l.isString(e))try{return(t||JSON.parse)(e),l.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const ye={transitional:ir,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",o=n.indexOf("application/json")>-1,i=l.isObject(t);if(i&&l.isHTMLForm(t)&&(t=new FormData(t)),l.isFormData(t))return o?JSON.stringify(ar(t)):t;if(l.isArrayBuffer(t)||l.isBuffer(t)||l.isStream(t)||l.isFile(t)||l.isBlob(t)||l.isReadableStream(t))return t;if(l.isArrayBufferView(t))return t.buffer;if(l.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return Eo(t,this.formSerializer).toString();if((a=l.isFileList(t))||n.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return Ue(a?{"files[]":t}:t,u&&new u,this.formSerializer)}}return i||o?(r.setContentType("application/json",!1),vo(t)):t}],transformResponse:[function(t){const r=this.transitional||ye.transitional,n=r&&r.forcedJSONParsing,o=this.responseType==="json";if(l.isResponse(t)||l.isReadableStream(t))return t;if(t&&l.isString(t)&&(n&&!this.responseType||o)){const s=!(r&&r.silentJSONParsing)&&o;try{return JSON.parse(t,this.parseReviver)}catch(a){if(s)throw a.name==="SyntaxError"?k.from(a,k.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:U.classes.FormData,Blob:U.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};l.forEach(["delete","get","head","post","put","patch"],e=>{ye.headers[e]={}});const Co=l.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),To=e=>{const t={};let r,n,o;return e&&e.split(` +`).forEach(function(s){o=s.indexOf(":"),r=s.substring(0,o).trim().toLowerCase(),n=s.substring(o+1).trim(),!(!r||t[r]&&Co[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},gt=Symbol("internals");function me(e){return e&&String(e).trim().toLowerCase()}function Ce(e){return e===!1||e==null?e:l.isArray(e)?e.map(Ce):String(e)}function Oo(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const Po=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function qe(e,t,r,n,o){if(l.isFunction(n))return n.call(this,t,r);if(o&&(t=r),!!l.isString(t)){if(l.isString(n))return t.indexOf(n)!==-1;if(l.isRegExp(n))return n.test(t)}}function No(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function _o(e,t){const r=l.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(o,i,s){return this[n].call(this,t,o,i,s)},configurable:!0})})}let M=class{constructor(t){t&&this.set(t)}set(t,r,n){const o=this;function i(a,u,c){const d=me(u);if(!d)throw new Error("header name must be a non-empty string");const m=l.findKey(o,d);(!m||o[m]===void 0||c===!0||c===void 0&&o[m]!==!1)&&(o[m||u]=Ce(a))}const s=(a,u)=>l.forEach(a,(c,d)=>i(c,d,u));if(l.isPlainObject(t)||t instanceof this.constructor)s(t,r);else if(l.isString(t)&&(t=t.trim())&&!Po(t))s(To(t),r);else if(l.isObject(t)&&l.isIterable(t)){let a={},u,c;for(const d of t){if(!l.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[c=d[0]]=(u=a[c])?l.isArray(u)?[...u,d[1]]:[u,d[1]]:d[1]}s(a,r)}else t!=null&&i(r,t,n);return this}get(t,r){if(t=me(t),t){const n=l.findKey(this,t);if(n){const o=this[n];if(!r)return o;if(r===!0)return Oo(o);if(l.isFunction(r))return r.call(this,o,n);if(l.isRegExp(r))return r.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=me(t),t){const n=l.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||qe(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let o=!1;function i(s){if(s=me(s),s){const a=l.findKey(n,s);a&&(!r||qe(n,n[a],a,r))&&(delete n[a],o=!0)}}return l.isArray(t)?t.forEach(i):i(t),o}clear(t){const r=Object.keys(this);let n=r.length,o=!1;for(;n--;){const i=r[n];(!t||qe(this,this[i],i,t,!0))&&(delete this[i],o=!0)}return o}normalize(t){const r=this,n={};return l.forEach(this,(o,i)=>{const s=l.findKey(n,i);if(s){r[s]=Ce(o),delete r[i];return}const a=t?No(i):String(i).trim();a!==i&&delete r[i],r[a]=Ce(o),n[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return l.forEach(this,(n,o)=>{n!=null&&n!==!1&&(r[o]=t&&l.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[gt]=this[gt]={accessors:{}}).accessors,o=this.prototype;function i(s){const a=me(s);n[a]||(_o(o,s),n[a]=!0)}return l.isArray(t)?t.forEach(i):i(t),this}};M.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);l.reduceDescriptors(M.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});l.freezeMethods(M);function $e(e,t){const r=this||ye,n=t||r,o=M.from(n.headers);let i=n.data;return l.forEach(e,function(a){i=a.call(r,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function lr(e){return!!(e&&e.__CANCEL__)}function ce(e,t,r){k.call(this,e??"canceled",k.ERR_CANCELED,t,r),this.name="CanceledError"}l.inherits(ce,k,{__CANCEL__:!0});function cr(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new k("Request failed with status code "+r.status,[k.ERR_BAD_REQUEST,k.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function Fo(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Lo(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o=0,i=0,s;return t=t!==void 0?t:1e3,function(u){const c=Date.now(),d=n[i];s||(s=c),r[o]=u,n[o]=c;let m=i,x=0;for(;m!==o;)x+=r[m++],m=m%e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),c-s{r=d,o=null,i&&(clearTimeout(i),i=null),e(...c)};return[(...c)=>{const d=Date.now(),m=d-r;m>=n?s(c,d):(o=c,i||(i=setTimeout(()=>{i=null,s(o)},n-m)))},()=>o&&s(o)]}const Fe=(e,t,r=3)=>{let n=0;const o=Lo(50,250);return zo(i=>{const s=i.loaded,a=i.lengthComputable?i.total:void 0,u=s-n,c=o(u),d=s<=a;n=s;const m={loaded:s,total:a,progress:a?s/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a&&d?(a-s)/c:void 0,event:i,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(m)},r)},yt=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},wt=e=>(...t)=>l.asap(()=>e(...t)),jo=U.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,U.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(U.origin),U.navigator&&/(msie|trident)/i.test(U.navigator.userAgent)):()=>!0,Uo=U.hasStandardBrowserEnv?{write(e,t,r,n,o,i,s){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];l.isNumber(r)&&a.push(`expires=${new Date(r).toUTCString()}`),l.isString(n)&&a.push(`path=${n}`),l.isString(o)&&a.push(`domain=${o}`),i===!0&&a.push("secure"),l.isString(s)&&a.push(`SameSite=${s}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function Bo(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Io(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function ur(e,t,r){let n=!Bo(t);return e&&(n||r==!1)?Io(e,t):t}const xt=e=>e instanceof M?{...e}:e;function ne(e,t){t=t||{};const r={};function n(c,d,m,x){return l.isPlainObject(c)&&l.isPlainObject(d)?l.merge.call({caseless:x},c,d):l.isPlainObject(d)?l.merge({},d):l.isArray(d)?d.slice():d}function o(c,d,m,x){if(l.isUndefined(d)){if(!l.isUndefined(c))return n(void 0,c,m,x)}else return n(c,d,m,x)}function i(c,d){if(!l.isUndefined(d))return n(void 0,d)}function s(c,d){if(l.isUndefined(d)){if(!l.isUndefined(c))return n(void 0,c)}else return n(void 0,d)}function a(c,d,m){if(m in t)return n(c,d);if(m in e)return n(void 0,c)}const u={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(c,d,m)=>o(xt(c),xt(d),m,!0)};return l.forEach(Object.keys({...e,...t}),function(d){const m=u[d]||o,x=m(e[d],t[d],d);l.isUndefined(x)&&m!==a||(r[d]=x)}),r}const dr=e=>{const t=ne({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:o,xsrfCookieName:i,headers:s,auth:a}=t;if(t.headers=s=M.from(s),t.url=sr(ur(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),l.isFormData(r)){if(U.hasStandardBrowserEnv||U.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(l.isFunction(r.getHeaders)){const u=r.getHeaders(),c=["content-type","content-length"];Object.entries(u).forEach(([d,m])=>{c.includes(d.toLowerCase())&&s.set(d,m)})}}if(U.hasStandardBrowserEnv&&(n&&l.isFunction(n)&&(n=n(t)),n||n!==!1&&jo(t.url))){const u=o&&i&&Uo.read(i);u&&s.set(o,u)}return t},Do=typeof XMLHttpRequest<"u",Mo=Do&&function(e){return new Promise(function(r,n){const o=dr(e);let i=o.data;const s=M.from(o.headers).normalize();let{responseType:a,onUploadProgress:u,onDownloadProgress:c}=o,d,m,x,R,f;function g(){R&&R(),f&&f(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let p=new XMLHttpRequest;p.open(o.method.toUpperCase(),o.url,!0),p.timeout=o.timeout;function E(){if(!p)return;const A=M.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),N={data:!a||a==="text"||a==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:A,config:e,request:p};cr(function(_){r(_),g()},function(_){n(_),g()},N),p=null}"onloadend"in p?p.onloadend=E:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(E)},p.onabort=function(){p&&(n(new k("Request aborted",k.ECONNABORTED,e,p)),p=null)},p.onerror=function(C){const N=C&&C.message?C.message:"Network Error",B=new k(N,k.ERR_NETWORK,e,p);B.event=C||null,n(B),p=null},p.ontimeout=function(){let C=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const N=o.transitional||ir;o.timeoutErrorMessage&&(C=o.timeoutErrorMessage),n(new k(C,N.clarifyTimeoutError?k.ETIMEDOUT:k.ECONNABORTED,e,p)),p=null},i===void 0&&s.setContentType(null),"setRequestHeader"in p&&l.forEach(s.toJSON(),function(C,N){p.setRequestHeader(N,C)}),l.isUndefined(o.withCredentials)||(p.withCredentials=!!o.withCredentials),a&&a!=="json"&&(p.responseType=o.responseType),c&&([x,f]=Fe(c,!0),p.addEventListener("progress",x)),u&&p.upload&&([m,R]=Fe(u),p.upload.addEventListener("progress",m),p.upload.addEventListener("loadend",R)),(o.cancelToken||o.signal)&&(d=A=>{p&&(n(!A||A.type?new ce(null,e,p):A),p.abort(),p=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));const z=Fo(o.url);if(z&&U.protocols.indexOf(z)===-1){n(new k("Unsupported protocol "+z+":",k.ERR_BAD_REQUEST,e));return}p.send(i||null)})},qo=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,o;const i=function(c){if(!o){o=!0,a();const d=c instanceof Error?c:this.reason;n.abort(d instanceof k?d:new ce(d instanceof Error?d.message:d))}};let s=t&&setTimeout(()=>{s=null,i(new k(`timeout ${t} of ms exceeded`,k.ETIMEDOUT))},t);const a=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),e=null)};e.forEach(c=>c.addEventListener("abort",i));const{signal:u}=n;return u.unsubscribe=()=>l.asap(a),u}},$o=function*(e,t){let r=e.byteLength;if(r{const o=Vo(e,t);let i=0,s,a=u=>{s||(s=!0,n&&n(u))};return new ReadableStream({async pull(u){try{const{done:c,value:d}=await o.next();if(c){a(),u.close();return}let m=d.byteLength;if(r){let x=i+=m;r(x)}u.enqueue(new Uint8Array(d))}catch(c){throw a(c),c}},cancel(u){return a(u),o.return()}},{highWaterMark:2})},St=64*1024,{isFunction:Ae}=l,Wo=(({Request:e,Response:t})=>({Request:e,Response:t}))(l.global),{ReadableStream:Et,TextEncoder:Rt}=l.global,At=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Go=e=>{e=l.merge.call({skipUndefined:!0},Wo,e);const{fetch:t,Request:r,Response:n}=e,o=t?Ae(t):typeof fetch=="function",i=Ae(r),s=Ae(n);if(!o)return!1;const a=o&&Ae(Et),u=o&&(typeof Rt=="function"?(f=>g=>f.encode(g))(new Rt):async f=>new Uint8Array(await new r(f).arrayBuffer())),c=i&&a&&At(()=>{let f=!1;const g=new r(U.origin,{body:new Et,method:"POST",get duplex(){return f=!0,"half"}}).headers.has("Content-Type");return f&&!g}),d=s&&a&&At(()=>l.isReadableStream(new n("").body)),m={stream:d&&(f=>f.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!m[f]&&(m[f]=(g,p)=>{let E=g&&g[f];if(E)return E.call(g);throw new k(`Response type '${f}' is not supported`,k.ERR_NOT_SUPPORT,p)})});const x=async f=>{if(f==null)return 0;if(l.isBlob(f))return f.size;if(l.isSpecCompliantForm(f))return(await new r(U.origin,{method:"POST",body:f}).arrayBuffer()).byteLength;if(l.isArrayBufferView(f)||l.isArrayBuffer(f))return f.byteLength;if(l.isURLSearchParams(f)&&(f=f+""),l.isString(f))return(await u(f)).byteLength},R=async(f,g)=>{const p=l.toFiniteNumber(f.getContentLength());return p??x(g)};return async f=>{let{url:g,method:p,data:E,signal:z,cancelToken:A,timeout:C,onDownloadProgress:N,onUploadProgress:B,responseType:_,headers:w,withCredentials:I="same-origin",fetchOptions:ue}=dr(f),de=t||fetch;_=_?(_+"").toLowerCase():"text";let J=qo([z,A&&A.toAbortSignal()],C),Y=null;const q=J&&J.unsubscribe&&(()=>{J.unsubscribe()});let K;try{if(B&&c&&p!=="get"&&p!=="head"&&(K=await R(w,E))!==0){let $=new r(g,{method:"POST",body:E,duplex:"half"}),W;if(l.isFormData(E)&&(W=$.headers.get("content-type"))&&w.setContentType(W),$.body){const[O,F]=yt(K,Fe(wt(B)));E=kt($.body,St,O,F)}}l.isString(I)||(I=I?"include":"omit");const T=i&&"credentials"in r.prototype,H={...ue,signal:J,method:p.toUpperCase(),headers:w.normalize().toJSON(),body:E,duplex:"half",credentials:T?I:void 0};Y=i&&new r(g,H);let y=await(i?de(Y,ue):de(g,H));const fe=d&&(_==="stream"||_==="response");if(d&&(N||fe&&q)){const $={};["status","statusText","headers"].forEach(Q=>{$[Q]=y[Q]});const W=l.toFiniteNumber(y.headers.get("content-length")),[O,F]=N&&yt(W,Fe(wt(N),!0))||[];y=new n(kt(y.body,St,O,()=>{F&&F(),q&&q()}),$)}_=_||"text";let we=await m[l.findKey(m,_)||"text"](y,f);return!fe&&q&&q(),await new Promise(($,W)=>{cr($,W,{data:we,headers:M.from(y.headers),status:y.status,statusText:y.statusText,config:f,request:Y})})}catch(T){throw q&&q(),T&&T.name==="TypeError"&&/Load failed|fetch/i.test(T.message)?Object.assign(new k("Network Error",k.ERR_NETWORK,f,Y),{cause:T.cause||T}):k.from(T,T&&T.code,f,Y)}}},Jo=new Map,fr=e=>{let t=e&&e.env||{};const{fetch:r,Request:n,Response:o}=t,i=[n,o,r];let s=i.length,a=s,u,c,d=Jo;for(;a--;)u=i[a],c=d.get(u),c===void 0&&d.set(u,c=a?new Map:Go(t)),d=c;return c};fr();const rt={http:uo,xhr:Mo,fetch:{get:fr}};l.forEach(rt,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const vt=e=>`- ${e}`,Ko=e=>l.isFunction(e)||e===null||e===!1;function Xo(e,t){e=l.isArray(e)?e:[e];const{length:r}=e;let n,o;const i={};for(let s=0;s`adapter ${u} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=r?s.length>1?`since : +`+s.map(vt).join(` +`):" "+vt(s[0]):"as no adapter specified";throw new k("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o}const pr={getAdapter:Xo,adapters:rt};function Ve(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ce(null,e)}function Ct(e){return Ve(e),e.headers=M.from(e.headers),e.data=$e.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),pr.getAdapter(e.adapter||ye.adapter,e)(e).then(function(n){return Ve(e),n.data=$e.call(e,e.transformResponse,n),n.headers=M.from(n.headers),n},function(n){return lr(n)||(Ve(e),n&&n.response&&(n.response.data=$e.call(e,e.transformResponse,n.response),n.response.headers=M.from(n.response.headers))),Promise.reject(n)})}const mr="1.13.2",Be={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Be[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Tt={};Be.transitional=function(t,r,n){function o(i,s){return"[Axios v"+mr+"] Transitional option '"+i+"'"+s+(n?". "+n:"")}return(i,s,a)=>{if(t===!1)throw new k(o(s," has been removed"+(r?" in "+r:"")),k.ERR_DEPRECATED);return r&&!Tt[s]&&(Tt[s]=!0,console.warn(o(s," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,s,a):!0}};Be.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function Yo(e,t,r){if(typeof e!="object")throw new k("options must be an object",k.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const i=n[o],s=t[i];if(s){const a=e[i],u=a===void 0||s(a,i,e);if(u!==!0)throw new k("option "+i+" must be "+u,k.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new k("Unknown option "+i,k.ERR_BAD_OPTION)}}const Te={assertOptions:Yo,validators:Be},G=Te.validators;let re=class{constructor(t){this.defaults=t||{},this.interceptors={request:new bt,response:new bt}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const i=o.stack?o.stack.replace(/^.+\n/,""):"";try{n.stack?i&&!String(n.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(n.stack+=` +`+i):n.stack=i}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=ne(this.defaults,r);const{transitional:n,paramsSerializer:o,headers:i}=r;n!==void 0&&Te.assertOptions(n,{silentJSONParsing:G.transitional(G.boolean),forcedJSONParsing:G.transitional(G.boolean),clarifyTimeoutError:G.transitional(G.boolean)},!1),o!=null&&(l.isFunction(o)?r.paramsSerializer={serialize:o}:Te.assertOptions(o,{encode:G.function,serialize:G.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),Te.assertOptions(r,{baseUrl:G.spelling("baseURL"),withXsrfToken:G.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let s=i&&l.merge(i.common,i[r.method]);i&&l.forEach(["delete","get","head","post","put","patch","common"],f=>{delete i[f]}),r.headers=M.concat(s,i);const a=[];let u=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(r)===!1||(u=u&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let d,m=0,x;if(!u){const f=[Ct.bind(this),void 0];for(f.unshift(...a),f.push(...c),x=f.length,d=Promise.resolve(r);m{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](o);n._listeners=null}),this.promise.then=o=>{let i;const s=new Promise(a=>{n.subscribe(a),i=a}).then(o);return s.cancel=function(){n.unsubscribe(i)},s},t(function(i,s,a){n.reason||(n.reason=new ce(i,s,a),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new hr(function(o){t=o}),cancel:t}}};function Qo(e){return function(r){return e.apply(null,r)}}function es(e){return l.isObject(e)&&e.isAxiosError===!0}const Ye={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ye).forEach(([e,t])=>{Ye[t]=e});function br(e){const t=new re(e),r=Gt(re.prototype.request,t);return l.extend(r,re.prototype,t,{allOwnKeys:!0}),l.extend(r,t,null,{allOwnKeys:!0}),r.create=function(o){return br(ne(e,o))},r}const v=br(ye);v.Axios=re;v.CanceledError=ce;v.CancelToken=Zo;v.isCancel=lr;v.VERSION=mr;v.toFormData=Ue;v.AxiosError=k;v.Cancel=v.CanceledError;v.all=function(t){return Promise.all(t)};v.spread=Qo;v.isAxiosError=es;v.mergeConfig=ne;v.AxiosHeaders=M;v.formToJSON=e=>ar(l.isHTMLForm(e)?new FormData(e):e);v.getAdapter=pr.getAdapter;v.HttpStatusCode=Ye;v.default=v;const{Axios:ss,AxiosError:is,CanceledError:as,isCancel:ls,CancelToken:cs,VERSION:us,all:ds,Cancel:fs,isAxiosError:ps,spread:ms,toFormData:hs,AxiosHeaders:bs,HttpStatusCode:gs,formToJSON:ys,getAdapter:ws,mergeConfig:xs}=v,ks=(e,t)=>xr.post("/auth/email/sign-in",{email:e,password:t}),gr=e=>xr.post("/admin/auth/reissue",{},{headers:{Authorization:`Bearer ${e}`}}),yr=e=>`Bearer ${e}`,wr=v.create({baseURL:void 0,withCredentials:!0});wr.interceptors.request.use(async e=>{const t={...e};let r=Sr();if(r===null||We(r)){const n=Ot();if(n===null||We(n))return Oe(),Pe(),e;await gr(n).then(o=>{r=o.data.accessToken,Pt(r)}).catch(o=>{Oe(),Pe(),console.error("인증 토큰 갱신중 오류가 발생했습니다",o)})}return r!==null&&(t.headers.Authorization=yr(r)),t},e=>Promise.reject(e));wr.interceptors.response.use(e=>e,async e=>{const t={...e};if(e.response?.status===401||e.response?.status===403){const r=Ot();if(r===null||We(r))throw Oe(),Pe(),t;try{const n=await gr(r).then(o=>o.data.accessToken);return Pt(n),e?.config.headers===void 0&&(t.config.headers={}),t.config.headers.Authorization=yr(n),await v.request(t.config)}catch{throw Oe(),Pe(),Error("로그인이 필요합니다")}}else throw t});const xr=v.create({baseURL:void 0});export{Rn as B,wr as a,Nt as b,Sn as c,Ar as d,_r as e,ks as f,rs as u}; diff --git a/apps/admin/.output/public/assets/index-C5TecN1M.js b/apps/admin/.output/public/assets/index-C5TecN1M.js new file mode 100644 index 00000000..0ccfb7da --- /dev/null +++ b/apps/admin/.output/public/assets/index-C5TecN1M.js @@ -0,0 +1 @@ +import{r as c,j as o,t as G,R as W,a as we}from"./main-CMD0s_Sp.js";import{c as O,a as Q,B as M,b as at,u as K}from"./client-ByMMc4SQ.js";const Te=6048e5,ot=864e5,he=Symbol.for("constructDateFrom");function A(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&he in e?e[he](t):e instanceof Date?new e.constructor(t):new Date(t)}function I(e,t){return A(t||e,e)}let st={};function Z(){return st}function U(e,t){const n=Z(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=I(e,t?.in),s=a.getDay(),u=(s=s.getTime()?r+1:n.getTime()>=l.getTime()?r:r-1}function ge(e){const t=I(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function it(e,...t){const n=A.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function pe(e,t){const n=I(e,t?.in);return n.setHours(0,0,0,0),n}function ct(e,t,n){const[r,a]=it(n?.in,e,t),s=pe(r),u=pe(a),l=+s-ge(s),m=+u-ge(u);return Math.round((l-m)/ot)}function ut(e,t){const n=Re(e,t),r=A(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),J(r)}function lt(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function dt(e){return!(!lt(e)&&typeof e!="number"||isNaN(+I(e)))}function ft(e,t){const n=I(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const mt={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},ht=(e,t,n)=>{let r;const a=mt[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function ne(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const gt={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pt={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},bt={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},yt={date:ne({formats:gt,defaultWidth:"full"}),time:ne({formats:pt,defaultWidth:"full"}),dateTime:ne({formats:bt,defaultWidth:"full"})},xt={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},St=(e,t,n,r)=>xt[e];function H(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const u=e.defaultFormattingWidth||e.defaultWidth,l=n?.width?String(n.width):u;a=e.formattingValues[l]||e.formattingValues[u]}else{const u=e.defaultWidth,l=n?.width?String(n.width):e.defaultWidth;a=e.values[l]||e.values[u]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const vt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},wt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Tt={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Rt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},jt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Nt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ct=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Pt={ordinalNumber:Ct,era:H({values:vt,defaultWidth:"wide"}),quarter:H({values:wt,defaultWidth:"wide",argumentCallback:e=>e-1}),month:H({values:Tt,defaultWidth:"wide"}),day:H({values:Rt,defaultWidth:"wide"}),dayPeriod:H({values:jt,defaultWidth:"wide",formattingValues:Nt,defaultFormattingWidth:"wide"})};function $(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const u=s[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],m=Array.isArray(l)?Mt(l,f=>f.test(u)):Et(l,f=>f.test(u));let h;h=e.valueCallback?e.valueCallback(m):m,h=n.valueCallback?n.valueCallback(h):h;const d=t.slice(u.length);return{value:h,rest:d}}}function Et(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Mt(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let u=e.valueCallback?e.valueCallback(s[0]):s[0];u=n.valueCallback?n.valueCallback(u):u;const l=t.slice(a.length);return{value:u,rest:l}}}const It=/^(\d+)(th|st|nd|rd)?/i,Dt=/\d+/i,Ft={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},kt={any:[/^b/i,/^(a|c)/i]},At={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},_t={any:[/1/i,/2/i,/3/i,/4/i]},Wt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Lt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Yt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Gt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},qt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Vt={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ht={ordinalNumber:Ot({matchPattern:It,parsePattern:Dt,valueCallback:e=>parseInt(e,10)}),era:$({matchPatterns:Ft,defaultMatchWidth:"wide",parsePatterns:kt,defaultParseWidth:"any"}),quarter:$({matchPatterns:At,defaultMatchWidth:"wide",parsePatterns:_t,defaultParseWidth:"any",valueCallback:e=>e+1}),month:$({matchPatterns:Wt,defaultMatchWidth:"wide",parsePatterns:Lt,defaultParseWidth:"any"}),day:$({matchPatterns:Yt,defaultMatchWidth:"wide",parsePatterns:Gt,defaultParseWidth:"any"}),dayPeriod:$({matchPatterns:qt,defaultMatchWidth:"any",parsePatterns:Vt,defaultParseWidth:"any"})},$t={code:"en-US",formatDistance:ht,formatLong:yt,formatRelative:St,localize:Pt,match:Ht,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ut(e,t){const n=I(e,t?.in);return ct(n,ft(n))+1}function Bt(e,t){const n=I(e,t?.in),r=+J(n)-+ut(n);return Math.round(r/Te)+1}function je(e,t){const n=I(e,t?.in),r=n.getFullYear(),a=Z(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,u=A(t?.in||e,0);u.setFullYear(r+1,0,s),u.setHours(0,0,0,0);const l=U(u,t),m=A(t?.in||e,0);m.setFullYear(r,0,s),m.setHours(0,0,0,0);const h=U(m,t);return+n>=+l?r+1:+n>=+h?r:r-1}function Qt(e,t){const n=Z(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=je(e,t),s=A(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),U(s,t)}function Xt(e,t){const n=I(e,t?.in),r=+U(n,t)-+Qt(n,t);return Math.round(r/Te)+1}function y(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const k={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return y(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):y(n+1,2)},d(e,t){return y(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return y(e.getHours()%12||12,t.length)},H(e,t){return y(e.getHours(),t.length)},m(e,t){return y(e.getMinutes(),t.length)},s(e,t){return y(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return y(a,t.length)}},Y={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},be={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return k.y(e,t)},Y:function(e,t,n,r){const a=je(e,r),s=a>0?a:1-a;if(t==="YY"){const u=s%100;return y(u,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):y(s,t.length)},R:function(e,t){const n=Re(e);return y(n,t.length)},u:function(e,t){const n=e.getFullYear();return y(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return y(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return y(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return k.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return y(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=Xt(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):y(a,t.length)},I:function(e,t,n){const r=Bt(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):y(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):k.d(e,t)},D:function(e,t,n){const r=Ut(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):y(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return y(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return y(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return y(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Y.noon:r===0?a=Y.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Y.evening:r>=12?a=Y.afternoon:r>=4?a=Y.morning:a=Y.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return k.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):k.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):y(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):y(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):k.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):k.s(e,t)},S:function(e,t){return k.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return xe(r);case"XXXX":case"XX":return L(r);default:return L(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return xe(r);case"xxxx":case"xx":return L(r);default:return L(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+ye(r,":");default:return"GMT"+L(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+ye(r,":");default:return"GMT"+L(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return y(r,t.length)},T:function(e,t,n){return y(+e,t.length)}};function ye(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+y(s,2)}function xe(e,t){return e%60===0?(e>0?"-":"+")+y(Math.abs(e)/60,2):L(e,t)}function L(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=y(Math.trunc(r/60),2),s=y(r%60,2);return n+a+t+s}const Se=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Ne=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Kt=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return Se(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",Se(r,t)).replace("{{time}}",Ne(a,t))},Jt={p:Ne,P:Kt},zt=/^D+$/,Zt=/^Y+$/,en=["D","DD","YY","YYYY"];function tn(e){return zt.test(e)}function nn(e){return Zt.test(e)}function rn(e,t,n){const r=an(e,t,n);if(console.warn(r),en.includes(e))throw new RangeError(r)}function an(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const on=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,sn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,cn=/^'([^]*?)'?$/,un=/''/g,ln=/[a-zA-Z]/;function Ce(e,t,n){const r=Z(),a=r.locale??$t,s=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,u=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,l=I(e,n?.in);if(!dt(l))throw new RangeError("Invalid time value");let m=t.match(sn).map(d=>{const f=d[0];if(f==="p"||f==="P"){const b=Jt[f];return b(d,a.formatLong)}return d}).join("").match(on).map(d=>{if(d==="''")return{isToken:!1,value:"'"};const f=d[0];if(f==="'")return{isToken:!1,value:dn(d)};if(be[f])return{isToken:!0,value:d};if(f.match(ln))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:d}});a.localize.preprocessor&&(m=a.localize.preprocessor(l,m));const h={firstWeekContainsDate:s,weekStartsOn:u,locale:a};return m.map(d=>{if(!d.isToken)return d.value;const f=d.value;(nn(f)||tn(f))&&rn(f,t,String(e));const b=be[f[0]];return b(l,f,a.localize,h)}).join("")}function dn(e){const t=e.match(cn);return t?t[1].replace(un,"'"):e}const ce=c.forwardRef(({className:e,...t},n)=>o.jsx("div",{className:"relative w-full overflow-auto",children:o.jsx("table",{ref:n,className:O("w-full caption-bottom text-sm",e),...t})}));ce.displayName="Table";const ue=c.forwardRef(({className:e,...t},n)=>o.jsx("thead",{ref:n,className:O("[&_tr]:border-b",e),...t}));ue.displayName="TableHeader";const le=c.forwardRef(({className:e,...t},n)=>o.jsx("tbody",{ref:n,className:O("[&_tr:last-child]:border-0",e),...t}));le.displayName="TableBody";const fn=c.forwardRef(({className:e,...t},n)=>o.jsx("tfoot",{ref:n,className:O("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));fn.displayName="TableFooter";const D=c.forwardRef(({className:e,...t},n)=>o.jsx("tr",{ref:n,className:O("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));D.displayName="TableRow";const j=c.forwardRef(({className:e,...t},n)=>o.jsx("th",{ref:n,className:O("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));j.displayName="TableHead";const w=c.forwardRef(({className:e,...t},n)=>o.jsx("td",{ref:n,className:O("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));w.displayName="TableCell";const mn=c.forwardRef(({className:e,...t},n)=>o.jsx("caption",{ref:n,className:O("mt-4 text-sm text-muted-foreground",e),...t}));mn.displayName="TableCaption";const q={getGpaScores:(e,t)=>Q.get("/admin/scores/gpas",{params:{...e,page:t}}).then(n=>n.data),updateGpaScore:(e,t,n,r)=>{if(!r)throw new Error("Score data is required");const a={gpa:r.gpaScoreStatusResponse.gpaResponse.gpa,gpaCriteria:r.gpaScoreStatusResponse.gpaResponse.gpaCriteria,verifyStatus:t,rejectedReason:n};return Q.put(`/admin/scores/gpas/${e}`,a)},getLanguageScores:(e,t)=>Q.get("/admin/scores/language-tests",{params:{...e,page:t}}).then(n=>n.data),updateLanguageScore:(e,t,n,r)=>{if(!r)throw new Error("Score data is required");const a={languageTestType:r.languageTestScoreStatusResponse.languageTestResponse.languageTestType,languageTestScore:r.languageTestScoreStatusResponse.languageTestResponse.languageTestScore,verifyStatus:t,rejectedReason:n};return Q.put(`/admin/scores/language-tests/${e}`,a)}};function Pe({currentStatus:e,onVerifyChange:t}){const[n,r]=c.useState(!1),[a,s]=c.useState(""),u=()=>{t("APPROVED")},l=()=>{n?(t("REJECTED",a),r(!1),s("")):r(!0)};return e!=="PENDING"?null:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:u,className:"rounded bg-green-500 px-3 py-1 text-white hover:bg-green-600",children:"승인"}),n?o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:a,onChange:m=>s(m.target.value),placeholder:"거절 사유",className:"rounded border px-2 py-1"}),o.jsx("button",{type:"button",onClick:l,className:"rounded bg-red-500 px-3 py-1 text-white hover:bg-red-600",children:"확인"})]}):o.jsx("button",{type:"button",onClick:l,className:"rounded bg-red-500 px-3 py-1 text-white hover:bg-red-600",children:"거절"})]})}const hn={PENDING:"bg-yellow-100 text-yellow-800",APPROVED:"bg-green-100 text-green-800",REJECTED:"bg-red-100 text-red-800"},gn={PENDING:"대기중",APPROVED:"승인됨",REJECTED:"거절됨"};function Ee({status:e}){return o.jsx("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${hn[e]}`,children:gn[e]})}const pn=void 0;function bn({verifyFilter:e}){const[t,n]=c.useState([]),[r,a]=c.useState(1),[s,u]=c.useState(1),[l,m]=c.useState(!1),[h,d]=c.useState(null),[f,b]=c.useState(0),[S,T]=c.useState(0),v=async()=>{m(!0);try{const i=await q.getGpaScores({verifyStatus:e},r);n(i.content),u(i.totalPages)}catch(i){console.error("Failed to fetch GPA scores:",i)}finally{m(!1)}};c.useEffect(()=>{v()},[e,r]);const p=async(i,g,P)=>{try{const E=t.find(N=>N.gpaScoreStatusResponse.id===i);await q.updateGpaScore(i,g,P,E),v()}catch(E){console.error("Failed to update GPA score:",E),G.error("성적 상태 업데이트에 실패했습니다")}},R=i=>{d(i.gpaScoreStatusResponse.id),b(i.gpaScoreStatusResponse.gpaResponse.gpa),T(i.gpaScoreStatusResponse.gpaResponse.gpaCriteria)},C=async i=>{try{await q.updateGpaScore(i.gpaScoreStatusResponse.id,i.gpaScoreStatusResponse.verifyStatus,i.gpaScoreStatusResponse.rejectedReason||void 0,{...i,gpaScoreStatusResponse:{...i.gpaScoreStatusResponse,gpaResponse:{...i.gpaScoreStatusResponse.gpaResponse,gpa:f,gpaCriteria:S}}}),d(null),v(),G.success("GPA가 수정되었습니다")}catch(g){console.error("Failed to update GPA:",g),G.error("GPA 수정에 실패했습니다")}},x=i=>{i<1||i>s||a(i)};return o.jsxs("div",{className:"rounded-lg border bg-white shadow",children:[o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(ce,{children:[o.jsx(ue,{children:o.jsxs(D,{children:[o.jsx(j,{children:"ID"}),o.jsx(j,{children:"닉네임"}),o.jsx(j,{children:"GPA"}),o.jsx(j,{children:"기준점수"}),o.jsx(j,{children:"상태"}),o.jsx(j,{children:"제출일"}),o.jsx(j,{children:"거절사유"}),o.jsx(j,{children:"인증파일"}),o.jsx(j,{children:"작업"})]})}),o.jsx(le,{children:l?o.jsx(D,{children:o.jsx(w,{colSpan:9,className:"text-center",children:o.jsxs("div",{className:"flex items-center justify-center",children:[o.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-b-2 border-gray-900"}),o.jsx("span",{className:"ml-2",children:"로딩중..."})]})})}):t.length===0?o.jsx(D,{children:o.jsx(w,{colSpan:9,className:"text-center text-gray-500",children:"데이터가 없습니다"})}):t.map(i=>o.jsxs(D,{className:"hover:bg-gray-50",children:[o.jsx(w,{children:i.gpaScoreStatusResponse.id}),o.jsx(w,{children:o.jsxs("div",{className:"flex items-center",children:[o.jsx("img",{src:i.siteUserResponse.profileImageUrl,alt:"프로필",className:"mr-2 h-8 w-8 rounded-full"}),i.siteUserResponse.nickname]})}),o.jsx(w,{children:h===i.gpaScoreStatusResponse.id?o.jsx("div",{className:"flex gap-2",children:o.jsx("input",{type:"number",step:"0.01",value:f,onChange:g=>b(Number.parseFloat(g.target.value)),className:"w-20 rounded border px-2 py-1"})}):i.gpaScoreStatusResponse.gpaResponse.gpa}),o.jsx(w,{children:h===i.gpaScoreStatusResponse.id?o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"number",step:"0.01",value:S,onChange:g=>T(Number.parseFloat(g.target.value)),className:"w-20 rounded border px-2 py-1"}),o.jsx(M,{onClick:()=>C(i),variant:"default",children:"저장"}),o.jsx(M,{onClick:()=>d(null),variant:"secondary",children:"취소"})]}):o.jsxs("div",{className:"flex gap-2",children:[i.gpaScoreStatusResponse.gpaResponse.gpaCriteria,o.jsx(M,{onClick:()=>R(i),variant:"secondary",children:"수정"})]})}),o.jsx(w,{children:o.jsx(Ee,{status:i.gpaScoreStatusResponse.verifyStatus})}),o.jsx(w,{children:Ce(new Date(i.gpaScoreStatusResponse.createdAt),"yyyy-MM-dd HH:mm")}),o.jsx(w,{children:i.gpaScoreStatusResponse.rejectedReason||"-"}),o.jsx(w,{children:o.jsx("a",{href:`${pn}${i.gpaScoreStatusResponse.gpaResponse.gpaReportUrl}`,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline",children:"파일 보기"})}),o.jsx(w,{children:o.jsx(Pe,{currentStatus:i.gpaScoreStatusResponse.verifyStatus,onVerifyChange:(g,P)=>p(i.gpaScoreStatusResponse.id,g,P)})})]},i.gpaScoreStatusResponse.id))})]})}),o.jsxs("div",{className:"mt-4 flex items-center justify-center gap-2 p-4",children:[o.jsx(M,{onClick:()=>x(r-1),disabled:r===1,variant:"secondary",children:"이전"}),Array.from({length:s},(i,g)=>o.jsx(M,{onClick:()=>x(g+1),variant:r===g+1?"default":"secondary",children:g+1},g+1)),o.jsx(M,{onClick:()=>x(r+1),disabled:r===s,variant:"secondary",children:"다음"})]})]})}const yn=void 0,ve=[{value:"TOEIC",label:"TOEIC"},{value:"TOEFL_IBT",label:"TOEFL IBT"},{value:"TOEFL_ITP",label:"TOEFL ITP"},{value:"IELTS",label:"IELTS"},{value:"JLPT",label:"JLPT"},{value:"NEW_HSK",label:"NEW HSK"},{value:"DALF",label:"DALF"},{value:"CEFR",label:"CEFR"},{value:"TCF",label:"TCF"},{value:"TEF",label:"TEF"},{value:"DUOLINGO",label:"DUOLINGO"},{value:"ETC",label:"기타"}];function xn({verifyFilter:e}){const[t,n]=c.useState([]),[r,a]=c.useState(1),[s,u]=c.useState(1),[l,m]=c.useState(!1),[h,d]=c.useState(null),[f,b]=c.useState(""),[S,T]=c.useState("TOEIC"),v=async()=>{m(!0);try{const i=await q.getLanguageScores({verifyStatus:e},r);n(i.content),u(i.totalPages)}catch(i){console.error("Failed to fetch Language scores:",i)}finally{m(!1)}};c.useEffect(()=>{v()},[e,r]);const p=async(i,g,P)=>{try{const E=t.find(N=>N.languageTestScoreStatusResponse.id===i);await q.updateLanguageScore(i,g,P,E),v()}catch(E){console.error("Failed to update Language score:",E),G.error("성적 상태 업데이트에 실패했습니다")}},R=i=>{d(i.languageTestScoreStatusResponse.id),b(i.languageTestScoreStatusResponse.languageTestResponse.languageTestScore),T(i.languageTestScoreStatusResponse.languageTestResponse.languageTestType)},C=async i=>{try{await q.updateLanguageScore(i.languageTestScoreStatusResponse.id,i.languageTestScoreStatusResponse.verifyStatus,i.languageTestScoreStatusResponse.rejectedReason||void 0,{...i,languageTestScoreStatusResponse:{...i.languageTestScoreStatusResponse,languageTestResponse:{...i.languageTestScoreStatusResponse.languageTestResponse,languageTestScore:f,languageTestType:S}}}),d(null),v(),G.success("어학성적이 수정되었습니다")}catch(g){console.error("Failed to update language score:",g),G.error("어학성적 수정에 실패했습니다")}},x=i=>{i<1||i>s||a(i)};return o.jsxs("div",{className:"rounded-lg border bg-white shadow",children:[o.jsx("div",{className:"overflow-x-auto",children:o.jsxs(ce,{children:[o.jsx(ue,{children:o.jsxs(D,{children:[o.jsx(j,{children:"ID"}),o.jsx(j,{children:"닉네임"}),o.jsx(j,{children:"시험종류"}),o.jsx(j,{children:"점수"}),o.jsx(j,{children:"상태"}),o.jsx(j,{children:"제출일"}),o.jsx(j,{children:"거절사유"}),o.jsx(j,{children:"인증파일"}),o.jsx(j,{children:"작업"})]})}),o.jsx(le,{children:l?o.jsx(D,{children:o.jsx(w,{colSpan:9,className:"text-center",children:o.jsxs("div",{className:"flex items-center justify-center",children:[o.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-b-2 border-gray-900"}),o.jsx("span",{className:"ml-2",children:"로딩중..."})]})})}):t.length===0?o.jsx(D,{children:o.jsx(w,{colSpan:9,className:"text-center text-gray-500",children:"데이터가 없습니다"})}):t.map(i=>o.jsxs(D,{className:"hover:bg-gray-50",children:[o.jsx(w,{children:i.languageTestScoreStatusResponse.id}),o.jsx(w,{children:o.jsxs("div",{className:"flex items-center",children:[o.jsx("img",{src:i.siteUserResponse.profileImageUrl,alt:"프로필",className:"mr-2 h-8 w-8 rounded-full"}),i.siteUserResponse.nickname]})}),o.jsx(w,{children:h===i.languageTestScoreStatusResponse.id?o.jsx("div",{className:"flex gap-2",children:o.jsx("select",{value:S,onChange:g=>T(g.target.value),className:"rounded border px-2 py-1",children:ve.map(g=>o.jsx("option",{value:g.value,children:g.label},g.value))})}):ve.find(g=>g.value===i.languageTestScoreStatusResponse.languageTestResponse.languageTestType)?.label||i.languageTestScoreStatusResponse.languageTestResponse.languageTestType}),o.jsx(w,{children:h===i.languageTestScoreStatusResponse.id?o.jsxs("div",{className:"flex gap-2",children:[o.jsx("input",{type:"text",value:f,onChange:g=>b(g.target.value),className:"w-20 rounded border px-2 py-1"}),o.jsx(M,{onClick:()=>C(i),variant:"default",children:"저장"}),o.jsx(M,{onClick:()=>d(null),variant:"secondary",children:"취소"})]}):o.jsxs("div",{className:"flex gap-2",children:[i.languageTestScoreStatusResponse.languageTestResponse.languageTestScore,o.jsx(M,{onClick:()=>R(i),variant:"secondary",children:"수정"})]})}),o.jsx(w,{children:o.jsx(Ee,{status:i.languageTestScoreStatusResponse.verifyStatus})}),o.jsx(w,{children:Ce(new Date(i.languageTestScoreStatusResponse.createdAt),"yyyy-MM-dd HH:mm")}),o.jsx(w,{children:i.languageTestScoreStatusResponse.rejectedReason||"-"}),o.jsx(w,{children:o.jsx("a",{href:`${yn}${i.languageTestScoreStatusResponse.languageTestResponse.languageTestReportUrl}`,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 hover:underline",children:"파일 보기"})}),o.jsx(w,{children:o.jsx(Pe,{currentStatus:i.languageTestScoreStatusResponse.verifyStatus,onVerifyChange:(g,P)=>p(i.languageTestScoreStatusResponse.id,g,P)})})]},i.languageTestScoreStatusResponse.id))})]})}),o.jsxs("div",{className:"mt-4 flex items-center justify-center gap-2 p-4",children:[o.jsx(M,{onClick:()=>x(r-1),disabled:r===1,variant:"secondary",children:"이전"}),Array.from({length:s},(i,g)=>o.jsx(M,{onClick:()=>x(g+1),variant:r===g+1?"default":"secondary",children:g+1},g+1)),o.jsx(M,{onClick:()=>x(r+1),disabled:r===s,variant:"secondary",children:"다음"})]})]})}function F(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function de(e,t=[]){let n=[];function r(s,u){const l=c.createContext(u),m=n.length;n=[...n,u];const h=f=>{const{scope:b,children:S,...T}=f,v=b?.[e]?.[m]||l,p=c.useMemo(()=>T,Object.values(T));return o.jsx(v.Provider,{value:p,children:S})};h.displayName=s+"Provider";function d(f,b){const S=b?.[e]?.[m]||l,T=c.useContext(S);if(T)return T;if(u!==void 0)return u;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[h,d]}const a=()=>{const s=n.map(u=>c.createContext(u));return function(l){const m=l?.[e]||s;return c.useMemo(()=>({[`__scope${e}`]:{...l,[e]:m}}),[l,m])}};return a.scopeName=e,[r,Sn(a,...t)]}function Sn(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const u=r.reduce((l,{useScope:m,scopeName:h})=>{const f=m(s)[`__scope${h}`];return{...l,...f}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:u}),[u])}};return n.scopeName=t.scopeName,n}function ae(e){const t=vn(e),n=c.forwardRef((r,a)=>{const{children:s,...u}=r,l=c.Children.toArray(s),m=l.find(Tn);if(m){const h=m.props.children,d=l.map(f=>f===m?c.Children.count(h)>1?c.Children.only(null):c.isValidElement(h)?h.props.children:null:f);return o.jsx(t,{...u,ref:a,children:c.isValidElement(h)?c.cloneElement(h,void 0,d):null})}return o.jsx(t,{...u,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vn(e){const t=c.forwardRef((n,r)=>{const{children:a,...s}=n;if(c.isValidElement(a)){const u=jn(a),l=Rn(s,a.props);return a.type!==c.Fragment&&(l.ref=r?at(r,u):u),c.cloneElement(a,l)}return c.Children.count(a)>1?c.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wn=Symbol("radix.slottable");function Tn(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===wn}function Rn(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...l)=>{const m=s(...l);return a(...l),m}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function jn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Nn(e){const t=e+"CollectionProvider",[n,r]=de(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),u=v=>{const{scope:p,children:R}=v,C=W.useRef(null),x=W.useRef(new Map).current;return o.jsx(a,{scope:p,itemMap:x,collectionRef:C,children:R})};u.displayName=t;const l=e+"CollectionSlot",m=ae(l),h=W.forwardRef((v,p)=>{const{scope:R,children:C}=v,x=s(l,R),i=K(p,x.collectionRef);return o.jsx(m,{ref:i,children:C})});h.displayName=l;const d=e+"CollectionItemSlot",f="data-radix-collection-item",b=ae(d),S=W.forwardRef((v,p)=>{const{scope:R,children:C,...x}=v,i=W.useRef(null),g=K(p,i),P=s(d,R);return W.useEffect(()=>(P.itemMap.set(i,{ref:i,...x}),()=>{P.itemMap.delete(i)})),o.jsx(b,{[f]:"",ref:g,children:C})});S.displayName=d;function T(v){const p=s(e+"CollectionConsumer",v);return W.useCallback(()=>{const C=p.collectionRef.current;if(!C)return[];const x=Array.from(C.querySelectorAll(`[${f}]`));return Array.from(p.itemMap.values()).sort((P,E)=>x.indexOf(P.ref.current)-x.indexOf(E.ref.current))},[p.collectionRef,p.itemMap])}return[{Provider:u,Slot:h,ItemSlot:S},T,r]}var z=globalThis?.document?c.useLayoutEffect:()=>{},Cn=we[" useId ".trim().toString()]||(()=>{}),Pn=0;function Me(e){const[t,n]=c.useState(Cn());return z(()=>{n(r=>r??String(Pn++))},[e]),e||(t?`radix-${t}`:"")}var En=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],V=En.reduce((e,t)=>{const n=ae(`Primitive.${t}`),r=c.forwardRef((a,s)=>{const{asChild:u,...l}=a,m=u?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),o.jsx(m,{...l,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Mn(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>t.current?.(...n),[])}var On=we[" useInsertionEffect ".trim().toString()]||z;function Oe({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,u]=In({defaultProp:t,onChange:n}),l=e!==void 0,m=l?e:a;{const d=c.useRef(e!==void 0);c.useEffect(()=>{const f=d.current;f!==l&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=l},[l,r])}const h=c.useCallback(d=>{if(l){const f=Dn(d)?d(e):d;f!==e&&u.current?.(f)}else s(d)},[l,e,s,u]);return[m,h]}function In({defaultProp:e,onChange:t}){const[n,r]=c.useState(e),a=c.useRef(n),s=c.useRef(t);return On(()=>{s.current=t},[t]),c.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function Dn(e){return typeof e=="function"}var Fn=c.createContext(void 0);function Ie(e){const t=c.useContext(Fn);return e||t||"ltr"}var re="rovingFocusGroup.onEntryFocus",kn={bubbles:!1,cancelable:!0},B="RovingFocusGroup",[oe,De,An]=Nn(B),[_n,Fe]=de(B,[An]),[Wn,Ln]=_n(B),ke=c.forwardRef((e,t)=>o.jsx(oe.Provider,{scope:e.__scopeRovingFocusGroup,children:o.jsx(oe.Slot,{scope:e.__scopeRovingFocusGroup,children:o.jsx(Yn,{...e,ref:t})})}));ke.displayName=B;var Yn=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:u,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:m,onEntryFocus:h,preventScrollOnEntryFocus:d=!1,...f}=e,b=c.useRef(null),S=K(t,b),T=Ie(s),[v,p]=Oe({prop:u,defaultProp:l??null,onChange:m,caller:B}),[R,C]=c.useState(!1),x=Mn(h),i=De(n),g=c.useRef(!1),[P,E]=c.useState(0);return c.useEffect(()=>{const N=b.current;if(N)return N.addEventListener(re,x),()=>N.removeEventListener(re,x)},[x]),o.jsx(Wn,{scope:n,orientation:r,dir:T,loop:a,currentTabStopId:v,onItemFocus:c.useCallback(N=>p(N),[p]),onItemShiftTab:c.useCallback(()=>C(!0),[]),onFocusableItemAdd:c.useCallback(()=>E(N=>N+1),[]),onFocusableItemRemove:c.useCallback(()=>E(N=>N-1),[]),children:o.jsx(V.div,{tabIndex:R||P===0?-1:0,"data-orientation":r,...f,ref:S,style:{outline:"none",...e.style},onMouseDown:F(e.onMouseDown,()=>{g.current=!0}),onFocus:F(e.onFocus,N=>{const et=!g.current;if(N.target===N.currentTarget&&et&&!R){const me=new CustomEvent(re,kn);if(N.currentTarget.dispatchEvent(me),!me.defaultPrevented){const te=i().filter(_=>_.focusable),tt=te.find(_=>_.active),nt=te.find(_=>_.id===v),rt=[tt,nt,...te].filter(Boolean).map(_=>_.ref.current);We(rt,d)}}g.current=!1}),onBlur:F(e.onBlur,()=>C(!1))})})}),Ae="RovingFocusGroupItem",_e=c.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:u,...l}=e,m=Me(),h=s||m,d=Ln(Ae,n),f=d.currentTabStopId===h,b=De(n),{onFocusableItemAdd:S,onFocusableItemRemove:T,currentTabStopId:v}=d;return c.useEffect(()=>{if(r)return S(),()=>T()},[r,S,T]),o.jsx(oe.ItemSlot,{scope:n,id:h,focusable:r,active:a,children:o.jsx(V.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...l,ref:t,onMouseDown:F(e.onMouseDown,p=>{r?d.onItemFocus(h):p.preventDefault()}),onFocus:F(e.onFocus,()=>d.onItemFocus(h)),onKeyDown:F(e.onKeyDown,p=>{if(p.key==="Tab"&&p.shiftKey){d.onItemShiftTab();return}if(p.target!==p.currentTarget)return;const R=Vn(p,d.orientation,d.dir);if(R!==void 0){if(p.metaKey||p.ctrlKey||p.altKey||p.shiftKey)return;p.preventDefault();let x=b().filter(i=>i.focusable).map(i=>i.ref.current);if(R==="last")x.reverse();else if(R==="prev"||R==="next"){R==="prev"&&x.reverse();const i=x.indexOf(p.currentTarget);x=d.loop?Hn(x,i+1):x.slice(i+1)}setTimeout(()=>We(x))}}),children:typeof u=="function"?u({isCurrentTabStop:f,hasTabStop:v!=null}):u})})});_e.displayName=Ae;var Gn={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function qn(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Vn(e,t,n){const r=qn(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Gn[r]}function We(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Hn(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var $n=ke,Un=_e;function Bn(e,t){return c.useReducer((n,r)=>t[n][r]??n,e)}var Le=e=>{const{present:t,children:n}=e,r=Qn(t),a=typeof n=="function"?n({present:r.isPresent}):c.Children.only(n),s=K(r.ref,Xn(a));return typeof n=="function"||r.isPresent?c.cloneElement(a,{ref:s}):null};Le.displayName="Presence";function Qn(e){const[t,n]=c.useState(),r=c.useRef(null),a=c.useRef(e),s=c.useRef("none"),u=e?"mounted":"unmounted",[l,m]=Bn(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const h=X(r.current);s.current=l==="mounted"?h:"none"},[l]),z(()=>{const h=r.current,d=a.current;if(d!==e){const b=s.current,S=X(h);e?m("MOUNT"):S==="none"||h?.display==="none"?m("UNMOUNT"):m(d&&b!==S?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,m]),z(()=>{if(t){let h;const d=t.ownerDocument.defaultView??window,f=S=>{const v=X(r.current).includes(CSS.escape(S.animationName));if(S.target===t&&v&&(m("ANIMATION_END"),!a.current)){const p=t.style.animationFillMode;t.style.animationFillMode="forwards",h=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=p)})}},b=S=>{S.target===t&&(s.current=X(r.current))};return t.addEventListener("animationstart",b),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(h),t.removeEventListener("animationstart",b),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else m("ANIMATION_END")},[t,m]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:c.useCallback(h=>{r.current=h?getComputedStyle(h):null,n(h)},[])}}function X(e){return e?.animationName||"none"}function Xn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ee="Tabs",[Kn]=de(ee,[Fe]),Ye=Fe(),[Jn,fe]=Kn(ee),Ge=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:u="horizontal",dir:l,activationMode:m="automatic",...h}=e,d=Ie(l),[f,b]=Oe({prop:r,onChange:a,defaultProp:s??"",caller:ee});return o.jsx(Jn,{scope:n,baseId:Me(),value:f,onValueChange:b,orientation:u,dir:d,activationMode:m,children:o.jsx(V.div,{dir:d,"data-orientation":u,...h,ref:t})})});Ge.displayName=ee;var qe="TabsList",Ve=c.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=fe(qe,n),u=Ye(n);return o.jsx($n,{asChild:!0,...u,orientation:s.orientation,dir:s.dir,loop:r,children:o.jsx(V.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});Ve.displayName=qe;var He="TabsTrigger",$e=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,u=fe(He,n),l=Ye(n),m=Qe(u.baseId,r),h=Xe(u.baseId,r),d=r===u.value;return o.jsx(Un,{asChild:!0,...l,focusable:!a,active:d,children:o.jsx(V.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":h,"data-state":d?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:m,...s,ref:t,onMouseDown:F(e.onMouseDown,f=>{!a&&f.button===0&&f.ctrlKey===!1?u.onValueChange(r):f.preventDefault()}),onKeyDown:F(e.onKeyDown,f=>{[" ","Enter"].includes(f.key)&&u.onValueChange(r)}),onFocus:F(e.onFocus,()=>{const f=u.activationMode!=="manual";!d&&!a&&f&&u.onValueChange(r)})})})});$e.displayName=He;var Ue="TabsContent",Be=c.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...u}=e,l=fe(Ue,n),m=Qe(l.baseId,r),h=Xe(l.baseId,r),d=r===l.value,f=c.useRef(d);return c.useEffect(()=>{const b=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(b)},[]),o.jsx(Le,{present:a||d,children:({present:b})=>o.jsx(V.div,{"data-state":d?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":m,hidden:!b,id:h,tabIndex:0,...u,ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0},children:b&&s})})});Be.displayName=Ue;function Qe(e,t){return`${e}-trigger-${t}`}function Xe(e,t){return`${e}-content-${t}`}var zn=Ge,Ke=Ve,Je=$e,ze=Be;const Zn=zn,Ze=c.forwardRef(({className:e,...t},n)=>o.jsx(Ke,{ref:n,className:O("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Ze.displayName=Ke.displayName;const se=c.forwardRef(({className:e,...t},n)=>o.jsx(Je,{ref:n,className:O("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));se.displayName=Je.displayName;const ie=c.forwardRef(({className:e,...t},n)=>o.jsx(ze,{ref:n,className:O("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));ie.displayName=ze.displayName;function rr(){const[e,t]=c.useState("PENDING");return o.jsxs("div",{className:"container mx-auto py-6",children:[o.jsx("h1",{className:"mb-6 text-2xl font-bold",children:"성적 관리"}),o.jsx("div",{className:"mb-4",children:o.jsxs("select",{value:e,onChange:n=>t(n.target.value),className:"rounded border p-2",children:[o.jsx("option",{value:"PENDING",children:"대기중"}),o.jsx("option",{value:"APPROVED",children:"승인됨"}),o.jsx("option",{value:"REJECTED",children:"거절됨"})]})}),o.jsxs(Zn,{defaultValue:"gpa",children:[o.jsxs(Ze,{children:[o.jsx(se,{value:"gpa",children:"GPA 성적"}),o.jsx(se,{value:"language",children:"어학성적"})]}),o.jsx(ie,{value:"gpa",children:o.jsx(bn,{verifyFilter:e})}),o.jsx(ie,{value:"language",children:o.jsx(xn,{verifyFilter:e})})]})]})}export{rr as component}; diff --git a/apps/admin/.output/public/assets/login-BFKyXQqT.js b/apps/admin/.output/public/assets/login-BFKyXQqT.js new file mode 100644 index 00000000..f934c735 --- /dev/null +++ b/apps/admin/.output/public/assets/login-BFKyXQqT.js @@ -0,0 +1 @@ +import{r,j as a,u as R,s as S,b as D,t as N}from"./main-CMD0s_Sp.js";import{c as i,d as P,e as L,B as T,f as k}from"./client-ByMMc4SQ.js";const b=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("rounded-xl border bg-card text-card-foreground shadow",t),...e}));b.displayName="Card";const h=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("flex flex-col space-y-1.5 p-6",t),...e}));h.displayName="CardHeader";const g=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("font-semibold leading-none tracking-tight",t),...e}));g.displayName="CardTitle";const v=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("text-sm text-muted-foreground",t),...e}));v.displayName="CardDescription";const w=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("p-6 pt-0",t),...e}));w.displayName="CardContent";const E=r.forwardRef(({className:t,...e},s)=>a.jsx("div",{ref:s,className:i("flex items-center p-6 pt-0",t),...e}));E.displayName="CardFooter";const u=r.forwardRef(({className:t,type:e,...s},o)=>a.jsx("input",{type:e,className:i("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:o,...s}));u.displayName="Input";var F=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],I=F.reduce((t,e)=>{const s=P(`Primitive.${e}`),o=r.forwardRef((c,d)=>{const{asChild:l,...m}=c,n=l?s:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(n,{...m,ref:d})});return o.displayName=`Primitive.${e}`,{...t,[e]:o}},{}),A="Label",y=r.forwardRef((t,e)=>a.jsx(I.label,{...t,ref:e,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(t.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));y.displayName=A;var j=y;const M=L("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),x=r.forwardRef(({className:t,...e},s)=>a.jsx(j,{ref:s,className:i(M(),t),...e}));x.displayName=j.displayName;function B(){const t=R(),[e,s]=r.useState(""),[o,c]=r.useState(""),[d,l]=r.useState(!1),m=async n=>{n.preventDefault(),l(!0);try{const p=await k(e,o),{accessToken:f,refreshToken:C}=p.data;S(f),D(C),N("로그인 성공",{description:"관리자 페이지로 이동합니다."}),t({to:"/scores"})}catch(p){const f=p;N.error("로그인 실패",{description:f.response?.data?.message||"로그인에 실패했습니다."})}finally{l(!1)}};return a.jsx("div",{className:"flex h-screen items-center justify-center bg-slate-50",children:a.jsxs(b,{className:"w-[360px]",children:[a.jsxs(h,{className:"space-y-1 pb-4",children:[a.jsx(g,{className:"text-center text-xl",children:"관리자 로그인"}),a.jsx(v,{className:"text-center text-sm",children:"솔리드 커넥션 관리자 페이지입니다"})]}),a.jsx(w,{children:a.jsxs("form",{onSubmit:m,className:"space-y-3",children:[a.jsxs("div",{className:"space-y-1",children:[a.jsx(x,{htmlFor:"email",className:"text-sm",children:"이메일"}),a.jsx(u,{id:"email",type:"email",placeholder:"admin@example.com",value:e,onChange:n=>s(n.target.value),disabled:d,required:!0,className:"h-9"})]}),a.jsxs("div",{className:"space-y-1",children:[a.jsx(x,{htmlFor:"password",className:"text-sm",children:"비밀번호"}),a.jsx(u,{id:"password",type:"password",value:o,onChange:n=>c(n.target.value),disabled:d,required:!0,className:"h-9"})]}),a.jsx(T,{type:"submit",className:"mt-2 h-9 w-full",disabled:d,children:d?"로그인 중...":"로그인"})]})})]})})}export{B as component}; diff --git a/apps/admin/.output/public/assets/main-CMD0s_Sp.js b/apps/admin/.output/public/assets/main-CMD0s_Sp.js new file mode 100644 index 00000000..1046f9c0 --- /dev/null +++ b/apps/admin/.output/public/assets/main-CMD0s_Sp.js @@ -0,0 +1,18 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-C5TecN1M.js","assets/client-ByMMc4SQ.js","assets/login-BFKyXQqT.js"])))=>i.map(i=>d[i]); +function ov(a,s){for(var i=0;io[c]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}function qy(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var hc={exports:{}},$i={};var Jm;function uv(){if(Jm)return $i;Jm=1;var a=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function i(o,c,f){var y=null;if(f!==void 0&&(y=""+f),c.key!==void 0&&(y=""+c.key),"key"in c){f={};for(var p in c)p!=="key"&&(f[p]=c[p])}else f=c;return c=f.ref,{$$typeof:a,type:o,key:y,ref:c!==void 0?c:null,props:f}}return $i.Fragment=s,$i.jsx=i,$i.jsxs=i,$i}var Fm;function cv(){return Fm||(Fm=1,hc.exports=uv()),hc.exports}var $=cv(),mc={exports:{}},mt={};var Pm;function fv(){if(Pm)return mt;Pm=1;var a=Symbol.for("react.transitional.element"),s=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),y=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),_=Symbol.iterator;function A(R){return R===null||typeof R!="object"?null:(R=_&&R[_]||R["@@iterator"],typeof R=="function"?R:null)}var O={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,z={};function U(R,j,X){this.props=R,this.context=j,this.refs=z,this.updater=X||O}U.prototype.isReactComponent={},U.prototype.setState=function(R,j){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,j,"setState")},U.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function J(){}J.prototype=U.prototype;function G(R,j,X){this.props=R,this.context=j,this.refs=z,this.updater=X||O}var V=G.prototype=new J;V.constructor=G,w(V,U.prototype),V.isPureReactComponent=!0;var I=Array.isArray;function W(){}var Z={H:null,A:null,T:null,S:null},Q=Object.prototype.hasOwnProperty;function P(R,j,X){var k=X.ref;return{$$typeof:a,type:R,key:j,ref:k!==void 0?k:null,props:X}}function dt(R,j){return P(R.type,j,R.props)}function it(R){return typeof R=="object"&&R!==null&&R.$$typeof===a}function ct(R){var j={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(X){return j[X]})}var at=/\/+/g;function bt(R,j){return typeof R=="object"&&R!==null&&R.key!=null?ct(""+R.key):j.toString(36)}function wt(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(W,W):(R.status="pending",R.then(function(j){R.status==="pending"&&(R.status="fulfilled",R.value=j)},function(j){R.status==="pending"&&(R.status="rejected",R.reason=j)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function N(R,j,X,k,tt){var rt=typeof R;(rt==="undefined"||rt==="boolean")&&(R=null);var yt=!1;if(R===null)yt=!0;else switch(rt){case"bigint":case"string":case"number":yt=!0;break;case"object":switch(R.$$typeof){case a:case s:yt=!0;break;case S:return yt=R._init,N(yt(R._payload),j,X,k,tt)}}if(yt)return tt=tt(R),yt=k===""?"."+bt(R,0):k,I(tt)?(X="",yt!=null&&(X=yt.replace(at,"$&/")+"/"),N(tt,j,X,"",function(be){return be})):tt!=null&&(it(tt)&&(tt=dt(tt,X+(tt.key==null||R&&R.key===tt.key?"":(""+tt.key).replace(at,"$&/")+"/")+yt)),j.push(tt)),1;yt=0;var ht=k===""?".":k+":";if(I(R))for(var At=0;At>>1,pt=N[St];if(0>>1;Stc(X,lt))kc(tt,X)?(N[St]=tt,N[k]=lt,St=k):(N[St]=X,N[j]=lt,St=j);else if(kc(tt,lt))N[St]=tt,N[k]=lt,St=k;else break t}}return K}function c(N,K){var lt=N.sortIndex-K.sortIndex;return lt!==0?lt:N.id-K.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;a.unstable_now=function(){return f.now()}}else{var y=Date,p=y.now();a.unstable_now=function(){return y.now()-p}}var g=[],m=[],S=1,h=null,_=3,A=!1,O=!1,w=!1,z=!1,U=typeof setTimeout=="function"?setTimeout:null,J=typeof clearTimeout=="function"?clearTimeout:null,G=typeof setImmediate<"u"?setImmediate:null;function V(N){for(var K=i(m);K!==null;){if(K.callback===null)o(m);else if(K.startTime<=N)o(m),K.sortIndex=K.expirationTime,s(g,K);else break;K=i(m)}}function I(N){if(w=!1,V(N),!O)if(i(g)!==null)O=!0,W||(W=!0,ct());else{var K=i(m);K!==null&&wt(I,K.startTime-N)}}var W=!1,Z=-1,Q=5,P=-1;function dt(){return z?!0:!(a.unstable_now()-PN&&dt());){var St=h.callback;if(typeof St=="function"){h.callback=null,_=h.priorityLevel;var pt=St(h.expirationTime<=N);if(N=a.unstable_now(),typeof pt=="function"){h.callback=pt,V(N),K=!0;break e}h===i(g)&&o(g),V(N)}else o(g);h=i(g)}if(h!==null)K=!0;else{var R=i(m);R!==null&&wt(I,R.startTime-N),K=!1}}break t}finally{h=null,_=lt,A=!1}K=void 0}}finally{K?ct():W=!1}}}var ct;if(typeof G=="function")ct=function(){G(it)};else if(typeof MessageChannel<"u"){var at=new MessageChannel,bt=at.port2;at.port1.onmessage=it,ct=function(){bt.postMessage(null)}}else ct=function(){U(it,0)};function wt(N,K){Z=U(function(){N(a.unstable_now())},K)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(N){N.callback=null},a.unstable_forceFrameRate=function(N){0>N||125St?(N.sortIndex=lt,s(m,N),i(g)===null&&N===i(m)&&(w?(J(Z),Z=-1):w=!0,wt(I,lt-St))):(N.sortIndex=pt,s(g,N),O||A||(O=!0,W||(W=!0,ct()))),N},a.unstable_shouldYield=dt,a.unstable_wrapCallback=function(N){var K=_;return function(){var lt=_;_=K;try{return N.apply(this,arguments)}finally{_=lt}}}})(gc)),gc}var Im;function mv(){return Im||(Im=1,pc.exports=hv()),pc.exports}var vc={exports:{}},ve={};var ty;function yv(){if(ty)return ve;ty=1;var a=fs();function s(g){var m="https://react.dev/errors/"+g;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(s){console.error(s)}}return a(),vc.exports=yv(),vc.exports}var ny;function pv(){if(ny)return Wi;ny=1;var a=mv(),s=fs(),i=Gy();function o(t){var e="https://react.dev/errors/"+t;if(1pt||(t.current=St[pt],St[pt]=null,pt--)}function X(t,e){pt++,St[pt]=t.current,t.current=e}var k=R(null),tt=R(null),rt=R(null),yt=R(null);function ht(t,e){switch(X(rt,e),X(tt,t),X(k,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?gm(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=gm(e),t=vm(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}j(k),X(k,t)}function At(){j(k),j(tt),j(rt)}function be(t){t.memoizedState!==null&&X(yt,t);var e=k.current,n=vm(e,t.type);e!==n&&(X(tt,t),X(k,n))}function Re(t){tt.current===t&&(j(k),j(tt)),yt.current===t&&(j(yt),Ki._currentValue=lt)}var Ye,za;function qe(t){if(Ye===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Ye=e&&e[1]||"",za=-1)":-1r||E[l]!==D[r]){var H=` +`+E[l].replace(" at new "," at ");return t.displayName&&H.includes("")&&(H=H.replace("",t.displayName)),H}while(1<=l&&0<=r);break}}}finally{Jn=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?qe(n):""}function xe(t,e){switch(t.tag){case 26:case 27:case 5:return qe(t.type);case 16:return qe("Lazy");case 13:return t.child!==e&&e!==null?qe("Suspense Fallback"):qe("Suspense");case 19:return qe("SuspenseList");case 0:case 15:return En(t.type,!1);case 11:return En(t.type.render,!1);case 1:return En(t.type,!0);case 31:return qe("Activity");default:return""}}function Tn(t){try{var e="",n=null;do e+=xe(t,n),n=t,t=t.return;while(t);return e}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Kt=Object.prototype.hasOwnProperty,Ca=a.unstable_scheduleCallback,Da=a.unstable_cancelCallback,se=a.unstable_shouldYield,dn=a.unstable_requestPaint,ce=a.unstable_now,si=a.unstable_getCurrentPriorityLevel,Dt=a.unstable_ImmediatePriority,te=a.unstable_UserBlockingPriority,ee=a.unstable_NormalPriority,Fn=a.unstable_LowPriority,Rn=a.unstable_IdlePriority,hs=a.log,Pn=a.unstable_setDisableYieldValue,Na=null,_e=null;function rn(t){if(typeof hs=="function"&&Pn(t),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(Na,t)}catch{}}var pe=Math.clz32?Math.clz32:hn,eo=Math.log,ri=Math.LN2;function hn(t){return t>>>=0,t===0?32:31-(eo(t)/ri|0)|0}var ul=256,cl=262144,La=4194304;function mn(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function ft(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var r=0,u=t.suspendedLanes,d=t.pingedLanes;t=t.warmLanes;var v=l&134217727;return v!==0?(l=v&~u,l!==0?r=mn(l):(d&=v,d!==0?r=mn(d):n||(n=v&~t,n!==0&&(r=mn(n))))):(v=l&~u,v!==0?r=mn(v):d!==0?r=mn(d):n||(n=l&~t,n!==0&&(r=mn(n)))),r===0?0:e!==0&&e!==r&&(e&u)===0&&(u=r&-r,n=e&-e,u>=n||u===32&&(n&4194048)!==0)?e:r}function Vt(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function re(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ge(){var t=La;return La<<=1,(La&62914560)===0&&(La=4194304),t}function $n(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Qt(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function we(t,e,n,l,r,u){var d=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var v=t.entanglements,E=t.expirationTimes,D=t.hiddenUpdates;for(n=d&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var ng=/[\n"\\]/g;function Fe(t){return t.replace(ng,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function so(t,e,n,l,r,u,d,v){t.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?t.type=d:t.removeAttribute("type"),e!=null?d==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Je(e)):t.value!==""+Je(e)&&(t.value=""+Je(e)):d!=="submit"&&d!=="reset"||t.removeAttribute("value"),e!=null?ro(t,d,Je(e)):n!=null?ro(t,d,Je(n)):l!=null&&t.removeAttribute("value"),r==null&&u!=null&&(t.defaultChecked=!!u),r!=null&&(t.checked=r&&typeof r!="function"&&typeof r!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?t.name=""+Je(v):t.removeAttribute("name")}function ff(t,e,n,l,r,u,d,v){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(t.type=u),e!=null||n!=null){if(!(u!=="submit"&&u!=="reset"||e!=null)){io(t);return}n=n!=null?""+Je(n):"",e=e!=null?""+Je(e):n,v||e===t.value||(t.value=e),t.defaultValue=e}l=l??r,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=v?t.checked:!!l,t.defaultChecked=!!l,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.name=d),io(t)}function ro(t,e,n){e==="number"&&ps(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function gl(t,e,n,l){if(t=t.options,e){e={};for(var r=0;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ho=!1;if(An)try{var fi={};Object.defineProperty(fi,"passive",{get:function(){ho=!0}}),window.addEventListener("test",fi,fi),window.removeEventListener("test",fi,fi)}catch{ho=!1}var In=null,mo=null,vs=null;function vf(){if(vs)return vs;var t,e=mo,n=e.length,l,r="value"in In?In.value:In.textContent,u=r.length;for(t=0;t=mi),Rf=" ",xf=!1;function wf(t,e){switch(t){case"keyup":return zg.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Af(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var _l=!1;function Dg(t,e){switch(t){case"compositionend":return Af(e);case"keypress":return e.which!==32?null:(xf=!0,Rf);case"textInput":return t=e.data,t===Rf&&xf?null:t;default:return null}}function Ng(t,e){if(_l)return t==="compositionend"||!So&&wf(t,e)?(t=vf(),vs=mo=In=null,_l=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=Uf(n)}}function Hf(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Hf(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function jf(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=ps(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=ps(t.document)}return e}function Eo(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var Gg=An&&"documentMode"in document&&11>=document.documentMode,El=null,To=null,vi=null,Ro=!1;function Yf(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ro||El==null||El!==ps(l)||(l=El,"selectionStart"in l&&Eo(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),vi&&gi(vi,l)||(vi=l,l=fr(To,"onSelect"),0>=d,r-=d,yn=1<<32-pe(e)+r|n<vt?(Rt=nt,nt=null):Rt=nt.sibling;var Ot=L(M,nt,C[vt],Y);if(Ot===null){nt===null&&(nt=Rt);break}t&&nt&&Ot.alternate===null&&e(M,nt),x=u(Ot,x,vt),Mt===null?st=Ot:Mt.sibling=Ot,Mt=Ot,nt=Rt}if(vt===C.length)return n(M,nt),xt&&On(M,vt),st;if(nt===null){for(;vtvt?(Rt=nt,nt=null):Rt=nt.sibling;var _a=L(M,nt,Ot.value,Y);if(_a===null){nt===null&&(nt=Rt);break}t&&nt&&_a.alternate===null&&e(M,nt),x=u(_a,x,vt),Mt===null?st=_a:Mt.sibling=_a,Mt=_a,nt=Rt}if(Ot.done)return n(M,nt),xt&&On(M,vt),st;if(nt===null){for(;!Ot.done;vt++,Ot=C.next())Ot=q(M,Ot.value,Y),Ot!==null&&(x=u(Ot,x,vt),Mt===null?st=Ot:Mt.sibling=Ot,Mt=Ot);return xt&&On(M,vt),st}for(nt=l(nt);!Ot.done;vt++,Ot=C.next())Ot=B(nt,M,vt,Ot.value,Y),Ot!==null&&(t&&Ot.alternate!==null&&nt.delete(Ot.key===null?vt:Ot.key),x=u(Ot,x,vt),Mt===null?st=Ot:Mt.sibling=Ot,Mt=Ot);return t&&nt.forEach(function(rv){return e(M,rv)}),xt&&On(M,vt),st}function Ht(M,x,C,Y){if(typeof C=="object"&&C!==null&&C.type===w&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case A:t:{for(var st=C.key;x!==null;){if(x.key===st){if(st=C.type,st===w){if(x.tag===7){n(M,x.sibling),Y=r(x,C.props.children),Y.return=M,M=Y;break t}}else if(x.elementType===st||typeof st=="object"&&st!==null&&st.$$typeof===Q&&ka(st)===x.type){n(M,x.sibling),Y=r(x,C.props),Ri(Y,C),Y.return=M,M=Y;break t}n(M,x);break}else e(M,x);x=x.sibling}C.type===w?(Y=Ga(C.props.children,M.mode,Y,C.key),Y.return=M,M=Y):(Y=Ms(C.type,C.key,C.props,null,M.mode,Y),Ri(Y,C),Y.return=M,M=Y)}return d(M);case O:t:{for(st=C.key;x!==null;){if(x.key===st)if(x.tag===4&&x.stateNode.containerInfo===C.containerInfo&&x.stateNode.implementation===C.implementation){n(M,x.sibling),Y=r(x,C.children||[]),Y.return=M,M=Y;break t}else{n(M,x);break}else e(M,x);x=x.sibling}Y=Co(C,M.mode,Y),Y.return=M,M=Y}return d(M);case Q:return C=ka(C),Ht(M,x,C,Y)}if(wt(C))return et(M,x,C,Y);if(ct(C)){if(st=ct(C),typeof st!="function")throw Error(o(150));return C=st.call(C),ut(M,x,C,Y)}if(typeof C.then=="function")return Ht(M,x,Us(C),Y);if(C.$$typeof===G)return Ht(M,x,Cs(M,C),Y);Bs(M,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,x!==null&&x.tag===6?(n(M,x.sibling),Y=r(x,C),Y.return=M,M=Y):(n(M,x),Y=zo(C,M.mode,Y),Y.return=M,M=Y),d(M)):n(M,x)}return function(M,x,C,Y){try{Ti=0;var st=Ht(M,x,C,Y);return Nl=null,st}catch(nt){if(nt===Dl||nt===Ns)throw nt;var Mt=Ve(29,nt,null,M.mode);return Mt.lanes=Y,Mt.return=M,Mt}}}var Ja=od(!0),ud=od(!1),la=!1;function Xo(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Qo(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function ia(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function sa(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(Ct&2)!==0){var r=l.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),l.pending=e,e=As(t),kf(t,null,n),e}return ws(t,l,e,n),As(t)}function xi(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Ae(t,n)}}function Zo(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var r=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};u===null?r=u=d:u=u.next=d,n=n.next}while(n!==null);u===null?r=u=e:u=u.next=e}else r=u=e;n={baseState:l.baseState,firstBaseUpdate:r,lastBaseUpdate:u,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var ko=!1;function wi(){if(ko){var t=Cl;if(t!==null)throw t}}function Ai(t,e,n,l){ko=!1;var r=t.updateQueue;la=!1;var u=r.firstBaseUpdate,d=r.lastBaseUpdate,v=r.shared.pending;if(v!==null){r.shared.pending=null;var E=v,D=E.next;E.next=null,d===null?u=D:d.next=D,d=E;var H=t.alternate;H!==null&&(H=H.updateQueue,v=H.lastBaseUpdate,v!==d&&(v===null?H.firstBaseUpdate=D:v.next=D,H.lastBaseUpdate=E))}if(u!==null){var q=r.baseState;d=0,H=D=E=null,v=u;do{var L=v.lane&-536870913,B=L!==v.lane;if(B?(Tt&L)===L:(l&L)===L){L!==0&&L===zl&&(ko=!0),H!==null&&(H=H.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});t:{var et=t,ut=v;L=e;var Ht=n;switch(ut.tag){case 1:if(et=ut.payload,typeof et=="function"){q=et.call(Ht,q,L);break t}q=et;break t;case 3:et.flags=et.flags&-65537|128;case 0:if(et=ut.payload,L=typeof et=="function"?et.call(Ht,q,L):et,L==null)break t;q=h({},q,L);break t;case 2:la=!0}}L=v.callback,L!==null&&(t.flags|=64,B&&(t.flags|=8192),B=r.callbacks,B===null?r.callbacks=[L]:B.push(L))}else B={lane:L,tag:v.tag,payload:v.payload,callback:v.callback,next:null},H===null?(D=H=B,E=q):H=H.next=B,d|=L;if(v=v.next,v===null){if(v=r.shared.pending,v===null)break;B=v,v=B.next,B.next=null,r.lastBaseUpdate=B,r.shared.pending=null}}while(!0);H===null&&(E=q),r.baseState=E,r.firstBaseUpdate=D,r.lastBaseUpdate=H,u===null&&(r.shared.lanes=0),fa|=d,t.lanes=d,t.memoizedState=q}}function cd(t,e){if(typeof t!="function")throw Error(o(191,t));t.call(e)}function fd(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;tu?u:8;var d=N.T,v={};N.T=v,fu(t,!1,e,n);try{var E=r(),D=N.S;if(D!==null&&D(v,E),E!==null&&typeof E=="object"&&typeof E.then=="function"){var H=Pg(E,l);zi(t,e,H,Ke(t))}else zi(t,e,l,Ke(t))}catch(q){zi(t,e,{then:function(){},status:"rejected",reason:q},Ke())}finally{K.p=u,d!==null&&v.types!==null&&(d.types=v.types),N.T=d}}function n0(){}function uu(t,e,n,l){if(t.tag!==5)throw Error(o(476));var r=Xd(t).queue;Vd(t,r,e,lt,n===null?n0:function(){return Qd(t),n(l)})}function Xd(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:lt,baseState:lt,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nn,lastRenderedState:lt},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function Qd(t){var e=Xd(t);e.next===null&&(e=t.alternate.memoizedState),zi(t,e.next.queue,{},Ke())}function cu(){return he(Ki)}function Zd(){return Ft().memoizedState}function kd(){return Ft().memoizedState}function a0(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=Ke();t=ia(n);var l=sa(e,t,n);l!==null&&(Ue(l,e,n),xi(l,e,n)),e={cache:Yo()},t.payload=e;return}e=e.return}}function l0(t,e,n){var l=Ke();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ks(t)?Jd(e,n):(n=Mo(t,e,n,l),n!==null&&(Ue(n,t,l),Fd(n,e,l)))}function Kd(t,e,n){var l=Ke();zi(t,e,n,l)}function zi(t,e,n,l){var r={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ks(t))Jd(e,r);else{var u=t.alternate;if(t.lanes===0&&(u===null||u.lanes===0)&&(u=e.lastRenderedReducer,u!==null))try{var d=e.lastRenderedState,v=u(d,n);if(r.hasEagerState=!0,r.eagerState=v,Ge(v,d))return ws(t,e,r,0),jt===null&&xs(),!1}catch{}if(n=Mo(t,e,r,l),n!==null)return Ue(n,t,l),Fd(n,e,l),!0}return!1}function fu(t,e,n,l){if(l={lane:2,revertLane:Xu(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ks(t)){if(e)throw Error(o(479))}else e=Mo(t,n,l,2),e!==null&&Ue(e,t,2)}function ks(t){var e=t.alternate;return t===gt||e!==null&&e===gt}function Jd(t,e){Ul=Ys=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Fd(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Ae(t,n)}}var Ci={readContext:he,use:Vs,useCallback:Zt,useContext:Zt,useEffect:Zt,useImperativeHandle:Zt,useLayoutEffect:Zt,useInsertionEffect:Zt,useMemo:Zt,useReducer:Zt,useRef:Zt,useState:Zt,useDebugValue:Zt,useDeferredValue:Zt,useTransition:Zt,useSyncExternalStore:Zt,useId:Zt,useHostTransitionStatus:Zt,useFormState:Zt,useActionState:Zt,useOptimistic:Zt,useMemoCache:Zt,useCacheRefresh:Zt};Ci.useEffectEvent=Zt;var Pd={readContext:he,use:Vs,useCallback:function(t,e){return Ee().memoizedState=[t,e===void 0?null:e],t},useContext:he,useEffect:Nd,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Qs(4194308,4,Hd.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Qs(4194308,4,t,e)},useInsertionEffect:function(t,e){Qs(4,2,t,e)},useMemo:function(t,e){var n=Ee();e=e===void 0?null:e;var l=t();if(Fa){rn(!0);try{t()}finally{rn(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=Ee();if(n!==void 0){var r=n(e);if(Fa){rn(!0);try{n(e)}finally{rn(!1)}}}else r=e;return l.memoizedState=l.baseState=r,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:r},l.queue=t,t=t.dispatch=l0.bind(null,gt,t),[l.memoizedState,t]},useRef:function(t){var e=Ee();return t={current:t},e.memoizedState=t},useState:function(t){t=lu(t);var e=t.queue,n=Kd.bind(null,gt,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:ru,useDeferredValue:function(t,e){var n=Ee();return ou(n,t,e)},useTransition:function(){var t=lu(!1);return t=Vd.bind(null,gt,t.queue,!0,!1),Ee().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=gt,r=Ee();if(xt){if(n===void 0)throw Error(o(407));n=n()}else{if(n=e(),jt===null)throw Error(o(349));(Tt&127)!==0||gd(l,e,n)}r.memoizedState=n;var u={value:n,getSnapshot:e};return r.queue=u,Nd(Sd.bind(null,l,u,t),[t]),l.flags|=2048,Hl(9,{destroy:void 0},vd.bind(null,l,u,n,e),null),n},useId:function(){var t=Ee(),e=jt.identifierPrefix;if(xt){var n=pn,l=yn;n=(l&~(1<<32-pe(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=qs++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof l.is=="string"?d.createElement("select",{is:l.is}):d.createElement("select"),l.multiple?u.multiple=!0:l.size&&(u.size=l.size);break;default:u=typeof l.is=="string"?d.createElement(r,{is:l.is}):d.createElement(r)}}u[fe]=e,u[Oe]=l;t:for(d=e.child;d!==null;){if(d.tag===5||d.tag===6)u.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break t;for(;d.sibling===null;){if(d.return===null||d.return===e)break t;d=d.return}d.sibling.return=d.return,d=d.sibling}e.stateNode=u;t:switch(ye(u,r,l),r){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break t;case"img":l=!0;break t;default:l=!1}l&&Un(e)}}return Gt(e),xu(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&Un(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(o(166));if(t=rt.current,Ml(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,r=de,r!==null)switch(r.tag){case 27:case 5:l=r.memoizedProps}t[fe]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||ym(t.nodeValue,n)),t||na(e,!0)}else t=dr(t).createTextNode(l),t[fe]=e,e.stateNode=t}return Gt(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=Ml(e),n!==null){if(t===null){if(!l)throw Error(o(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(o(557));t[fe]=e}else Va(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Gt(e),t=!1}else n=Uo(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(Qe(e),e):(Qe(e),null);if((e.flags&128)!==0)throw Error(o(558))}return Gt(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(r=Ml(e),l!==null&&l.dehydrated!==null){if(t===null){if(!r)throw Error(o(318));if(r=e.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(o(317));r[fe]=e}else Va(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Gt(e),r=!1}else r=Uo(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),r=!0;if(!r)return e.flags&256?(Qe(e),e):(Qe(e),null)}return Qe(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,r=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(r=l.alternate.memoizedState.cachePool.pool),u=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(u=l.memoizedState.cachePool.pool),u!==r&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),$s(e,e.updateQueue),Gt(e),null);case 4:return At(),t===null&&Ku(e.stateNode.containerInfo),Gt(e),null;case 10:return Cn(e.type),Gt(e),null;case 19:if(j(Jt),l=e.memoizedState,l===null)return Gt(e),null;if(r=(e.flags&128)!==0,u=l.rendering,u===null)if(r)Ni(l,!1);else{if(kt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(u=js(t),u!==null){for(e.flags|=128,Ni(l,!1),t=u.updateQueue,e.updateQueue=t,$s(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)Kf(n,t),n=n.sibling;return X(Jt,Jt.current&1|2),xt&&On(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&&ce()>nr&&(e.flags|=128,r=!0,Ni(l,!1),e.lanes=4194304)}else{if(!r)if(t=js(u),t!==null){if(e.flags|=128,r=!0,t=t.updateQueue,e.updateQueue=t,$s(e,t),Ni(l,!0),l.tail===null&&l.tailMode==="hidden"&&!u.alternate&&!xt)return Gt(e),null}else 2*ce()-l.renderingStartTime>nr&&n!==536870912&&(e.flags|=128,r=!0,Ni(l,!1),e.lanes=4194304);l.isBackwards?(u.sibling=e.child,e.child=u):(t=l.last,t!==null?t.sibling=u:e.child=u,l.last=u)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ce(),t.sibling=null,n=Jt.current,X(Jt,r?n&1|2:n&1),xt&&On(e,l.treeForkCount),t):(Gt(e),null);case 22:case 23:return Qe(e),Jo(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(Gt(e),e.subtreeFlags&6&&(e.flags|=8192)):Gt(e),n=e.updateQueue,n!==null&&$s(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&j(Za),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),Cn(Pt),Gt(e),null;case 25:return null;case 30:return null}throw Error(o(156,e.tag))}function u0(t,e){switch(No(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Cn(Pt),At(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Re(e),null;case 31:if(e.memoizedState!==null){if(Qe(e),e.alternate===null)throw Error(o(340));Va()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Qe(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(o(340));Va()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return j(Jt),null;case 4:return At(),null;case 10:return Cn(e.type),null;case 22:case 23:return Qe(e),Jo(),t!==null&&j(Za),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return Cn(Pt),null;case 25:return null;default:return null}}function bh(t,e){switch(No(e),e.tag){case 3:Cn(Pt),At();break;case 26:case 27:case 5:Re(e);break;case 4:At();break;case 31:e.memoizedState!==null&&Qe(e);break;case 13:Qe(e);break;case 19:j(Jt);break;case 10:Cn(e.type);break;case 22:case 23:Qe(e),Jo(),t!==null&&j(Za);break;case 24:Cn(Pt)}}function Li(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var r=l.next;n=r;do{if((n.tag&t)===t){l=void 0;var u=n.create,d=n.inst;l=u(),d.destroy=l}n=n.next}while(n!==r)}}catch(v){Lt(e,e.return,v)}}function ua(t,e,n){try{var l=e.updateQueue,r=l!==null?l.lastEffect:null;if(r!==null){var u=r.next;l=u;do{if((l.tag&t)===t){var d=l.inst,v=d.destroy;if(v!==void 0){d.destroy=void 0,r=e;var E=n,D=v;try{D()}catch(H){Lt(r,E,H)}}}l=l.next}while(l!==u)}}catch(H){Lt(e,e.return,H)}}function _h(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{fd(e,n)}catch(l){Lt(t,t.return,l)}}}function Eh(t,e,n){n.props=Pa(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){Lt(t,e,l)}}function Ui(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(r){Lt(t,e,r)}}function gn(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(r){Lt(t,e,r)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(r){Lt(t,e,r)}else n.current=null}function Th(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break t;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(r){Lt(t,t.return,r)}}function wu(t,e,n){try{var l=t.stateNode;C0(l,t.type,n,e),l[Oe]=e}catch(r){Lt(t,t.return,r)}}function Rh(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&pa(t.type)||t.tag===4}function Au(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||Rh(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&pa(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Mu(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=wn));else if(l!==4&&(l===27&&pa(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(Mu(t,e,n),t=t.sibling;t!==null;)Mu(t,e,n),t=t.sibling}function Ws(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&pa(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(Ws(t,e,n),t=t.sibling;t!==null;)Ws(t,e,n),t=t.sibling}function xh(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,r=e.attributes;r.length;)e.removeAttributeNode(r[0]);ye(e,l,n),e[fe]=t,e[Oe]=n}catch(u){Lt(t,t.return,u)}}var Bn=!1,It=!1,Ou=!1,wh=typeof WeakSet=="function"?WeakSet:Set,ue=null;function c0(t,e){if(t=t.containerInfo,Pu=Sr,t=jf(t),Eo(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else t:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var r=l.anchorOffset,u=l.focusNode;l=l.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break t}var d=0,v=-1,E=-1,D=0,H=0,q=t,L=null;e:for(;;){for(var B;q!==n||r!==0&&q.nodeType!==3||(v=d+r),q!==u||l!==0&&q.nodeType!==3||(E=d+l),q.nodeType===3&&(d+=q.nodeValue.length),(B=q.firstChild)!==null;)L=q,q=B;for(;;){if(q===t)break e;if(L===n&&++D===r&&(v=d),L===u&&++H===l&&(E=d),(B=q.nextSibling)!==null)break;q=L,L=q.parentNode}q=B}n=v===-1||E===-1?null:{start:v,end:E}}else n=null}n=n||{start:0,end:0}}else n=null;for($u={focusedElem:t,selectionRange:n},Sr=!1,ue=e;ue!==null;)if(e=ue,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,ue=t;else for(;ue!==null;){switch(e=ue,u=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),ye(u,l,n),u[fe]=t,oe(u),l=u;break t;case"link":var d=Dm("link","href",r).get(l+(n.href||""));if(d){for(var v=0;vHt&&(d=Ht,Ht=ut,ut=d);var M=Bf(v,ut),x=Bf(v,Ht);if(M&&x&&(B.rangeCount!==1||B.anchorNode!==M.node||B.anchorOffset!==M.offset||B.focusNode!==x.node||B.focusOffset!==x.offset)){var C=q.createRange();C.setStart(M.node,M.offset),B.removeAllRanges(),ut>Ht?(B.addRange(C),B.extend(x.node,x.offset)):(C.setEnd(x.node,x.offset),B.addRange(C))}}}}for(q=[],B=v;B=B.parentNode;)B.nodeType===1&&q.push({element:B,left:B.scrollLeft,top:B.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;vn?32:n,N.T=null,n=Bu,Bu=null;var u=ha,d=Gn;if(ne=0,Vl=ha=null,Gn=0,(Ct&6)!==0)throw Error(o(331));var v=Ct;if(Ct|=4,Hh(u.current),Lh(u,u.current,d,n),Ct=v,Gi(0,!1),_e&&typeof _e.onPostCommitFiberRoot=="function")try{_e.onPostCommitFiberRoot(Na,u)}catch{}return!0}finally{K.p=r,N.T=l,em(t,e)}}function am(t,e,n){e=$e(n,e),e=yu(t.stateNode,e,2),t=sa(t,e,2),t!==null&&(Qt(t,2),vn(t))}function Lt(t,e,n){if(t.tag===3)am(t,t,n);else for(;e!==null;){if(e.tag===3){am(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(da===null||!da.has(l))){t=$e(n,t),n=lh(2),l=sa(e,n,2),l!==null&&(ih(n,l,e,t),Qt(l,2),vn(l));break}}e=e.return}}function qu(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new h0;var r=new Set;l.set(e,r)}else r=l.get(e),r===void 0&&(r=new Set,l.set(e,r));r.has(n)||(Du=!0,r.add(n),t=v0.bind(null,t,e,n),e.then(t,t))}function v0(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,jt===t&&(Tt&n)===n&&(kt===4||kt===3&&(Tt&62914560)===Tt&&300>ce()-er?(Ct&2)===0&&Xl(t,0):Nu|=n,Gl===Tt&&(Gl=0)),vn(t)}function lm(t,e){e===0&&(e=ge()),t=qa(t,e),t!==null&&(Qt(t,e),vn(t))}function S0(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),lm(t,n)}function b0(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(o(314))}l!==null&&l.delete(e),lm(t,n)}function _0(t,e){return Ca(t,e)}var or=null,Zl=null,Gu=!1,ur=!1,Vu=!1,ya=0;function vn(t){t!==Zl&&t.next===null&&(Zl===null?or=Zl=t:Zl=Zl.next=t),ur=!0,Gu||(Gu=!0,T0())}function Gi(t,e){if(!Vu&&ur){Vu=!0;do for(var n=!1,l=or;l!==null;){if(t!==0){var r=l.pendingLanes;if(r===0)var u=0;else{var d=l.suspendedLanes,v=l.pingedLanes;u=(1<<31-pe(42|t)+1)-1,u&=r&~(d&~v),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(n=!0,om(l,u))}else u=Tt,u=ft(l,l===jt?u:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(u&3)===0||Vt(l,u)||(n=!0,om(l,u));l=l.next}while(n);Vu=!1}}function E0(){im()}function im(){ur=Gu=!1;var t=0;ya!==0&&N0()&&(t=ya);for(var e=ce(),n=null,l=or;l!==null;){var r=l.next,u=sm(l,e);u===0?(l.next=null,n===null?or=r:n.next=r,r===null&&(Zl=n)):(n=l,(t!==0||(u&3)!==0)&&(ur=!0)),l=r}ne!==0&&ne!==5||Gi(t),ya!==0&&(ya=0)}function sm(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,r=t.expirationTimes,u=t.pendingLanes&-62914561;0v)break;var H=E.transferSize,q=E.initiatorType;H&&pm(q)&&(E=E.responseEnd,d+=H*(E"u"?null:document;function Mm(t,e,n){var l=kl;if(l&&typeof e=="string"&&e){var r=Fe(e);r='link[rel="'+t+'"][href="'+r+'"]',typeof n=="string"&&(r+='[crossorigin="'+n+'"]'),Am.has(r)||(Am.add(r),t={rel:t,crossOrigin:n,href:e},l.querySelector(r)===null&&(e=l.createElement("link"),ye(e,"link",t),oe(e),l.head.appendChild(e)))}}function V0(t){Vn.D(t),Mm("dns-prefetch",t,null)}function X0(t,e){Vn.C(t,e),Mm("preconnect",t,e)}function Q0(t,e,n){Vn.L(t,e,n);var l=kl;if(l&&t&&e){var r='link[rel="preload"][as="'+Fe(e)+'"]';e==="image"&&n&&n.imageSrcSet?(r+='[imagesrcset="'+Fe(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(r+='[imagesizes="'+Fe(n.imageSizes)+'"]')):r+='[href="'+Fe(t)+'"]';var u=r;switch(e){case"style":u=Kl(t);break;case"script":u=Jl(t)}an.has(u)||(t=h({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),an.set(u,t),l.querySelector(r)!==null||e==="style"&&l.querySelector(Zi(u))||e==="script"&&l.querySelector(ki(u))||(e=l.createElement("link"),ye(e,"link",t),oe(e),l.head.appendChild(e)))}}function Z0(t,e){Vn.m(t,e);var n=kl;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",r='link[rel="modulepreload"][as="'+Fe(l)+'"][href="'+Fe(t)+'"]',u=r;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Jl(t)}if(!an.has(u)&&(t=h({rel:"modulepreload",href:t},e),an.set(u,t),n.querySelector(r)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(ki(u)))return}l=n.createElement("link"),ye(l,"link",t),oe(l),n.head.appendChild(l)}}}function k0(t,e,n){Vn.S(t,e,n);var l=kl;if(l&&t){var r=yl(l).hoistableStyles,u=Kl(t);e=e||"default";var d=r.get(u);if(!d){var v={loading:0,preload:null};if(d=l.querySelector(Zi(u)))v.loading=5;else{t=h({rel:"stylesheet",href:t,"data-precedence":e},n),(n=an.get(u))&&lc(t,n);var E=d=l.createElement("link");oe(E),ye(E,"link",t),E._p=new Promise(function(D,H){E.onload=D,E.onerror=H}),E.addEventListener("load",function(){v.loading|=1}),E.addEventListener("error",function(){v.loading|=2}),v.loading|=4,mr(d,e,l)}d={type:"stylesheet",instance:d,count:1,state:v},r.set(u,d)}}}function K0(t,e){Vn.X(t,e);var n=kl;if(n&&t){var l=yl(n).hoistableScripts,r=Jl(t),u=l.get(r);u||(u=n.querySelector(ki(r)),u||(t=h({src:t,async:!0},e),(e=an.get(r))&&ic(t,e),u=n.createElement("script"),oe(u),ye(u,"link",t),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(r,u))}}function J0(t,e){Vn.M(t,e);var n=kl;if(n&&t){var l=yl(n).hoistableScripts,r=Jl(t),u=l.get(r);u||(u=n.querySelector(ki(r)),u||(t=h({src:t,async:!0,type:"module"},e),(e=an.get(r))&&ic(t,e),u=n.createElement("script"),oe(u),ye(u,"link",t),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(r,u))}}function Om(t,e,n,l){var r=(r=rt.current)?hr(r):null;if(!r)throw Error(o(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=Kl(n.href),n=yl(r).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=Kl(n.href);var u=yl(r).hoistableStyles,d=u.get(t);if(d||(r=r.ownerDocument||r,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(t,d),(u=r.querySelector(Zi(t)))&&!u._p&&(d.instance=u,d.state.loading=5),an.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},an.set(t,n),u||F0(r,t,n,d.state))),e&&l===null)throw Error(o(528,""));return d}if(e&&l!==null)throw Error(o(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Jl(n),n=yl(r).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,t))}}function Kl(t){return'href="'+Fe(t)+'"'}function Zi(t){return'link[rel="stylesheet"]['+t+"]"}function zm(t){return h({},t,{"data-precedence":t.precedence,precedence:null})}function F0(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),ye(e,"link",n),oe(e),t.head.appendChild(e))}function Jl(t){return'[src="'+Fe(t)+'"]'}function ki(t){return"script[async]"+t}function Cm(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+Fe(n.href)+'"]');if(l)return e.instance=l,oe(l),l;var r=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),oe(l),ye(l,"style",r),mr(l,n.precedence,t),e.instance=l;case"stylesheet":r=Kl(n.href);var u=t.querySelector(Zi(r));if(u)return e.state.loading|=4,e.instance=u,oe(u),u;l=zm(n),(r=an.get(r))&&lc(l,r),u=(t.ownerDocument||t).createElement("link"),oe(u);var d=u;return d._p=new Promise(function(v,E){d.onload=v,d.onerror=E}),ye(u,"link",l),e.state.loading|=4,mr(u,n.precedence,t),e.instance=u;case"script":return u=Jl(n.src),(r=t.querySelector(ki(u)))?(e.instance=r,oe(r),r):(l=n,(r=an.get(u))&&(l=h({},n),ic(l,r)),t=t.ownerDocument||t,r=t.createElement("script"),oe(r),ye(r,"link",l),t.head.appendChild(r),e.instance=r);case"void":return null;default:throw Error(o(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,mr(l,n.precedence,t));return e.instance}function mr(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=l.length?l[l.length-1]:null,u=r,d=0;d title"):null)}function P0(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function Lm(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function $0(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var r=Kl(l.href),u=e.querySelector(Zi(r));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=pr.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=u,oe(u);return}u=e.ownerDocument||e,l=zm(l),(r=an.get(r))&&lc(l,r),u=u.createElement("link"),oe(u);var d=u;d._p=new Promise(function(v,E){d.onload=v,d.onerror=E}),ye(u,"link",l),n.instance=u}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=pr.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var sc=0;function W0(t,e){return t.stylesheets&&t.count===0&&vr(t,t.stylesheets),0sc?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(r)}}:null}function pr(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)vr(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var gr=null;function vr(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,gr=new Map,e.forEach(I0,t),gr=null,pr.call(t))}function I0(t,e){if(!(e.state.loading&4)){var n=gr.get(t);if(n)var l=n.get(null);else{n=new Map,gr.set(t,n);for(var r=t.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(s){console.error(s)}}return a(),yc.exports=pv(),yc.exports}var vv=gv();const Bc=new WeakMap,Sv=new WeakMap,Ur={current:[]};let Sc=!1,is=0;const ls=new Set,wr=new Map;function Vy(a){for(const s of a){if(Ur.current.includes(s))continue;Ur.current.push(s),s.recompute();const i=Sv.get(s);if(i)for(const o of i){const c=Bc.get(o);c?.length&&Vy(c)}}}function bv(a){const s={prevVal:a.prevState,currentVal:a.state};for(const i of a.listeners)i(s)}function _v(a){const s={prevVal:a.prevState,currentVal:a.state};for(const i of a.listeners)i(s)}function Xy(a){if(is>0&&!wr.has(a)&&wr.set(a,a.prevState),ls.add(a),!(is>0)&&!Sc)try{for(Sc=!0;ls.size>0;){const s=Array.from(ls);ls.clear();for(const i of s){const o=wr.get(i)??i.prevState;i.prevState=o,bv(i)}for(const i of s){const o=Bc.get(i);o&&(Ur.current.push(i),Vy(o))}for(const i of s){const o=Bc.get(i);if(o)for(const c of o)_v(c)}}}finally{Sc=!1,Ur.current=[],wr.clear()}}function Ev(a){is++;try{a()}finally{if(is--,is===0){const s=ls.values().next().value;s&&Xy(s)}}}function Tv(a){return typeof a=="function"}class Rv{constructor(s,i){this.listeners=new Set,this.subscribe=o=>{var c,f;this.listeners.add(o);const y=(f=(c=this.options)==null?void 0:c.onSubscribe)==null?void 0:f.call(c,o,this);return()=>{this.listeners.delete(o),y?.()}},this.prevState=s,this.state=s,this.options=i}setState(s){var i,o,c;this.prevState=this.state,(i=this.options)!=null&&i.updateFn?this.state=this.options.updateFn(this.prevState)(s):Tv(s)?this.state=s(this.prevState):this.state=s,(c=(o=this.options)==null?void 0:o.onUpdate)==null||c.call(o),Xy(this)}}const wa="__TSR_index",ly="popstate",iy="beforeunload";function xv(a){let s=a.getLocation();const i=new Set,o=y=>{s=a.getLocation(),i.forEach(p=>p({location:s,action:y}))},c=y=>{a.notifyOnIndexChange??!0?o(y):s=a.getLocation()},f=async({task:y,navigateOpts:p,...g})=>{if(p?.ignoreBlocker??!1){y();return}const S=a.getBlockers?.()??[],h=g.type==="PUSH"||g.type==="REPLACE";if(typeof document<"u"&&S.length&&h)for(const _ of S){const A=Br(g.path,g.state);if(await _.blockerFn({currentLocation:s,nextLocation:A,action:g.type})){a.onBlocked?.();return}}y()};return{get location(){return s},get length(){return a.getLength()},subscribers:i,subscribe:y=>(i.add(y),()=>{i.delete(y)}),push:(y,p,g)=>{const m=s.state[wa];p=sy(m+1,p),f({task:()=>{a.pushState(y,p),o({type:"PUSH"})},navigateOpts:g,type:"PUSH",path:y,state:p})},replace:(y,p,g)=>{const m=s.state[wa];p=sy(m,p),f({task:()=>{a.replaceState(y,p),o({type:"REPLACE"})},navigateOpts:g,type:"REPLACE",path:y,state:p})},go:(y,p)=>{f({task:()=>{a.go(y),c({type:"GO",index:y})},navigateOpts:p,type:"GO"})},back:y=>{f({task:()=>{a.back(y?.ignoreBlocker??!1),c({type:"BACK"})},navigateOpts:y,type:"BACK"})},forward:y=>{f({task:()=>{a.forward(y?.ignoreBlocker??!1),c({type:"FORWARD"})},navigateOpts:y,type:"FORWARD"})},canGoBack:()=>s.state[wa]!==0,createHref:y=>a.createHref(y),block:y=>{if(!a.setBlockers)return()=>{};const p=a.getBlockers?.()??[];return a.setBlockers([...p,y]),()=>{const g=a.getBlockers?.()??[];a.setBlockers?.(g.filter(m=>m!==y))}},flush:()=>a.flush?.(),destroy:()=>a.destroy?.(),notify:o}}function sy(a,s){s||(s={});const i=Vc();return{...s,key:i,__TSR_key:i,[wa]:a}}function wv(a){const s=typeof document<"u"?window:void 0,i=s.history.pushState,o=s.history.replaceState;let c=[];const f=()=>c,y=Q=>c=Q,p=(Q=>Q),g=(()=>Br(`${s.location.pathname}${s.location.search}${s.location.hash}`,s.history.state));if(!s.history.state?.__TSR_key&&!s.history.state?.key){const Q=Vc();s.history.replaceState({[wa]:0,key:Q,__TSR_key:Q},"")}let m=g(),S,h=!1,_=!1,A=!1,O=!1;const w=()=>m;let z,U;const J=()=>{z&&(Z._ignoreSubscribers=!0,(z.isPush?s.history.pushState:s.history.replaceState)(z.state,"",z.href),Z._ignoreSubscribers=!1,z=void 0,U=void 0,S=void 0)},G=(Q,P,dt)=>{const it=p(P);U||(S=m),m=Br(P,dt),z={href:it,state:dt,isPush:z?.isPush||Q==="push"},U||(U=Promise.resolve().then(()=>J()))},V=Q=>{m=g(),Z.notify({type:Q})},I=async()=>{if(_){_=!1;return}const Q=g(),P=Q.state[wa]-m.state[wa],dt=P===1,it=P===-1,ct=!dt&&!it||h;h=!1;const at=ct?"GO":it?"BACK":"FORWARD",bt=ct?{type:"GO",index:P}:{type:it?"BACK":"FORWARD"};if(A)A=!1;else{const wt=f();if(typeof document<"u"&&wt.length){for(const N of wt)if(await N.blockerFn({currentLocation:m,nextLocation:Q,action:at})){_=!0,s.history.go(1),Z.notify(bt);return}}}m=g(),Z.notify(bt)},W=Q=>{if(O){O=!1;return}let P=!1;const dt=f();if(typeof document<"u"&&dt.length)for(const it of dt){const ct=it.enableBeforeUnload??!0;if(ct===!0){P=!0;break}if(typeof ct=="function"&&ct()===!0){P=!0;break}}if(P)return Q.preventDefault(),Q.returnValue=""},Z=xv({getLocation:w,getLength:()=>s.history.length,pushState:(Q,P)=>G("push",Q,P),replaceState:(Q,P)=>G("replace",Q,P),back:Q=>(Q&&(A=!0),O=!0,s.history.back()),forward:Q=>{Q&&(A=!0),O=!0,s.history.forward()},go:Q=>{h=!0,s.history.go(Q)},createHref:Q=>p(Q),flush:J,destroy:()=>{s.history.pushState=i,s.history.replaceState=o,s.removeEventListener(iy,W,{capture:!0}),s.removeEventListener(ly,I)},onBlocked:()=>{S&&m!==S&&(m=S)},getBlockers:f,setBlockers:y,notifyOnIndexChange:!1});return s.addEventListener(iy,W,{capture:!0}),s.addEventListener(ly,I),s.history.pushState=function(...Q){const P=i.apply(s.history,Q);return Z._ignoreSubscribers||V("PUSH"),P},s.history.replaceState=function(...Q){const P=o.apply(s.history,Q);return Z._ignoreSubscribers||V("REPLACE"),P},Z}function Av(a){let s=a.replace(/[\x00-\x1f\x7f]/g,"");return s.startsWith("//")&&(s="/"+s.replace(/^\/+/,"")),s}function Br(a,s){const i=Av(a),o=i.indexOf("#"),c=i.indexOf("?"),f=Vc();return{href:i,pathname:i.substring(0,o>0?c>0?Math.min(o,c):o:c>0?c:i.length),hash:o>-1?i.substring(o):"",search:c>-1?i.slice(c,o===-1?void 0:o):"",state:s||{[wa]:0,key:f,__TSR_key:f}}}function Vc(){return(Math.random()+1).toString(36).substring(7)}const Mv=!1;function Il(a){let s;return Ev(()=>{s=a()}),s}function os(a){return a[a.length-1]}function Ov(a){return typeof a=="function"}function Ra(a,s){return Ov(a)?a(s):a}const zv=Object.prototype.hasOwnProperty,ry=Object.prototype.propertyIsEnumerable;function Be(a,s,i=0){if(a===s)return a;if(i>500)return s;const o=s,c=cy(a)&&cy(o);if(!c&&!(Hr(a)&&Hr(o)))return o;const f=c?a:oy(a);if(!f)return o;const y=c?o:oy(o);if(!y)return o;const p=f.length,g=y.length,m=c?new Array(g):{};let S=0;for(let h=0;h"u")return!0;const i=s.prototype;return!(!uy(i)||!i.hasOwnProperty("isPrototypeOf"))}function uy(a){return Object.prototype.toString.call(a)==="[object Object]"}function cy(a){return Array.isArray(a)&&a.length===Object.keys(a).length}function nl(a,s,i){if(a===s)return!0;if(typeof a!=typeof s)return!1;if(Array.isArray(a)&&Array.isArray(s)){if(a.length!==s.length)return!1;for(let o=0,c=a.length;oc||!nl(a[y],s[y],i)))return!1;return c===f}return!1}function ll(a){let s,i;const o=new Promise((c,f)=>{s=c,i=f});return o.status="pending",o.resolve=c=>{o.status="resolved",o.value=c,s(c),a?.(c)},o.reject=c=>{o.status="rejected",i(c)},o}function Cv(a){return typeof a?.message!="string"?!1:a.message.startsWith("Failed to fetch dynamically imported module")||a.message.startsWith("error loading dynamically imported module")||a.message.startsWith("Importing a module script failed")}function ti(a){return!!(a&&typeof a=="object"&&typeof a.then=="function")}function Dv(a){return a.replace(/[\x00-\x1f\x7f]/g,"")}function fy(a){let s;try{s=decodeURI(a)}catch{s=a.replaceAll(/%[0-9A-F]{2}/gi,i=>{try{return decodeURI(i)}catch{return i}})}return Dv(s)}const Qy=["http:","https:","mailto:","tel:"];function jr(a){if(!a)return!1;try{const s=new URL(a);return!Qy.includes(s.protocol)}catch{return!1}}const Nv={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Lv=/[&><\u2028\u2029]/g;function Uv(a){return a.replace(Lv,s=>Nv[s])}function Ii(a,s){if(!a||!/[%\\\x00-\x1f\x7f]/.test(a)&&!a.startsWith("//"))return a;const i=/%25|%5C/gi;let o=0,c="",f;for(;(f=i.exec(a))!==null;)c+=fy(a.slice(o,f.index))+f[0],o=i.lastIndex;return c=c+fy(o?a.slice(o):a),c.startsWith("//")&&(c="/"+c.replace(/^\/+/,"")),c}function Bv(a){return/\s|[^\u0000-\u007F]/.test(a)?a.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):a}var Hv="Invariant failed";function je(a,s){if(!a)throw new Error(Hv)}function Yr(a){const s=new Map;let i,o;const c=f=>{f.next&&(f.prev?(f.prev.next=f.next,f.next.prev=f.prev,f.next=void 0,o&&(o.next=f,f.prev=o)):(f.next.prev=void 0,i=f.next,f.next=void 0,o&&(f.prev=o,o.next=f)),o=f)};return{get(f){const y=s.get(f);if(y)return c(y),y.value},set(f,y){if(s.size>=a&&i){const g=i;s.delete(g.key),g.next&&(i=g.next,g.next.prev=void 0),g===o&&(o=void 0)}const p=s.get(f);if(p)p.value=y,c(p);else{const g={key:f,value:y,prev:o};o&&(o.next=g),o=g,i||(i=g),s.set(f,g)}},clear(){s.clear(),i=void 0,o=void 0}}}const ii=0,il=1,sl=2,us=3,Ia=4,Zy=5;function jv(a){const s=a.indexOf("{");if(s===-1)return null;const i=a.indexOf("}",s);return i===-1||s+1>=a.length?null:[s,i]}function Xc(a,s,i=new Uint16Array(6)){const o=a.indexOf("/",s),c=o===-1?a.length:o,f=a.substring(s,c);if(!f||!f.includes("$"))return i[0]=ii,i[1]=s,i[2]=s,i[3]=c,i[4]=c,i[5]=c,i;if(f==="$"){const p=a.length;return i[0]=sl,i[1]=s,i[2]=s,i[3]=p,i[4]=p,i[5]=p,i}if(f.charCodeAt(0)===36)return i[0]=il,i[1]=s,i[2]=s+1,i[3]=c,i[4]=c,i[5]=c,i;const y=jv(f);if(y){const[p,g]=y,m=f.charCodeAt(p+1);if(m===45){if(p+2!Q.skipOnParamError&&Q.caseSensitive===V&&Q.prefix===I&&Q.suffix===W);if(Z)O=Z;else{const Q=_c(il,i.fullPath??i.from,V,I,W);O=Q,Q.depth=f,Q.parent=c,c.dynamic??=[],c.dynamic.push(Q)}break}case us:{const J=g.substring(w,A[1]),G=g.substring(A[4],z),V=S&&!!(J||G),I=J?V?J:J.toLowerCase():void 0,W=G?V?G:G.toLowerCase():void 0,Z=!h&&c.optional?.find(Q=>!Q.skipOnParamError&&Q.caseSensitive===V&&Q.prefix===I&&Q.suffix===W);if(Z)O=Z;else{const Q=_c(us,i.fullPath??i.from,V,I,W);O=Q,Q.parent=c,Q.depth=f,c.optional??=[],c.optional.push(Q)}break}case sl:{const J=g.substring(w,A[1]),G=g.substring(A[4],z),V=S&&!!(J||G),I=J?V?J:J.toLowerCase():void 0,W=G?V?G:G.toLowerCase():void 0,Z=_c(sl,i.fullPath??i.from,V,I,W);O=Z,Z.parent=c,Z.depth=f,c.wildcard??=[],c.wildcard.push(Z)}}c=O}if(h&&i.children&&!i.isRoot&&i.id&&i.id.charCodeAt(i.id.lastIndexOf("/")+1)===95){const A=tl(i.fullPath??i.from);A.kind=Zy,A.parent=c,f++,A.depth=f,c.pathless??=[],c.pathless.push(A),c=A}const _=(i.path||!i.children)&&!i.isRoot;if(_&&g.endsWith("/")){const A=tl(i.fullPath??i.from);A.kind=Ia,A.parent=c,f++,A.depth=f,c.index=A,c=A}c.parse=i.options?.params?.parse??null,c.skipOnParamError=h,c.parsingPriority=i.options?.skipRouteOnParseError?.priority??0,_&&!c.route&&(c.route=i,c.fullPath=i.fullPath??i.from)}if(i.children)for(const g of i.children)Zr(a,s,g,p,c,f,y)}function bc(a,s){if(a.skipOnParamError&&!s.skipOnParamError)return-1;if(!a.skipOnParamError&&s.skipOnParamError)return 1;if(a.skipOnParamError&&s.skipOnParamError&&(a.parsingPriority||s.parsingPriority))return s.parsingPriority-a.parsingPriority;if(a.prefix&&s.prefix&&a.prefix!==s.prefix){if(a.prefix.startsWith(s.prefix))return-1;if(s.prefix.startsWith(a.prefix))return 1}if(a.suffix&&s.suffix&&a.suffix!==s.suffix){if(a.suffix.endsWith(s.suffix))return-1;if(s.suffix.endsWith(a.suffix))return 1}return a.prefix&&!s.prefix?-1:!a.prefix&&s.prefix?1:a.suffix&&!s.suffix?-1:!a.suffix&&s.suffix?1:a.caseSensitive&&!s.caseSensitive?-1:!a.caseSensitive&&s.caseSensitive?1:0}function Ea(a){if(a.pathless)for(const s of a.pathless)Ea(s);if(a.static)for(const s of a.static.values())Ea(s);if(a.staticInsensitive)for(const s of a.staticInsensitive.values())Ea(s);if(a.dynamic?.length){a.dynamic.sort(bc);for(const s of a.dynamic)Ea(s)}if(a.optional?.length){a.optional.sort(bc);for(const s of a.optional)Ea(s)}if(a.wildcard?.length){a.wildcard.sort(bc);for(const s of a.wildcard)Ea(s)}}function tl(a){return{kind:ii,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:a,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0}}function _c(a,s,i,o,c){return{kind:a,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:s,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0,caseSensitive:i,prefix:o,suffix:c}}function Yv(a,s){const i=tl("/"),o=new Uint16Array(6);for(const c of a)Zr(!1,o,c,1,i,0);Ea(i),s.masksTree=i,s.flatCache=Yr(1e3)}function qv(a,s){a||="/";const i=s.flatCache.get(a);if(i)return i;const o=Qc(a,s.masksTree);return s.flatCache.set(a,o),o}function Gv(a,s,i,o,c){a||="/",o||="/";const f=s?`case\0${a}`:a;let y=c.singleCache.get(f);if(!y){y=tl("/");const p=new Uint16Array(6);Zr(s,p,{from:a},1,y,0),c.singleCache.set(f,y)}return Qc(o,y,i)}function Vv(a,s,i=!1){const o=i?a:`nofuzz\0${a}`,c=s.matchCache.get(o);if(c!==void 0)return c;a||="/";let f;try{f=Qc(a,s.segmentTree,i)}catch(y){if(y instanceof URIError)f=null;else throw y}return f&&(f.branch=Zv(f.route)),s.matchCache.set(o,f),f}function Xv(a){return a==="/"?a:a.replace(/\/{1,}$/,"")}function Qv(a,s=!1,i){const o=tl(a.fullPath),c=new Uint16Array(6),f={},y={};let p=0;return Zr(s,c,a,1,o,0,m=>{if(i?.(m,p),je(!(m.id in f),`Duplicate routes found with id: ${String(m.id)}`),f[m.id]=m,p!==0&&m.path){const S=Xv(m.fullPath);(!y[S]||m.fullPath.endsWith("/"))&&(y[S]=m)}p++}),Ea(o),{processedTree:{segmentTree:o,singleCache:Yr(1e3),matchCache:Yr(1e3),flatCache:null,masksTree:null},routesById:f,routesByPath:y}}function Qc(a,s,i=!1){const o=a.split("/"),c=Kv(a,o,s,i);if(!c)return null;const[f]=ky(a,o,c);return{route:c.node.route,rawParams:f,parsedParams:c.parsedParams}}function ky(a,s,i){const o=kv(i.node);let c=null;const f={};let y=i.extract?.part??0,p=i.extract?.node??0,g=i.extract?.path??0,m=i.extract?.segment??0;for(;p=0;it--){const ct=_.optional[it];p.push({node:ct,index:A,skipped:P,depth:dt,statics:z,dynamics:U,optionals:J,extract:G,rawParams:V,parsedParams:I})}if(!W)for(let it=_.optional.length-1;it>=0;it--){const ct=_.optional[it],{prefix:at,suffix:bt}=ct;if(at||bt){const wt=ct.caseSensitive?Z:Q??=Z.toLowerCase();if(at&&!wt.startsWith(at)||bt&&!wt.endsWith(bt))continue}p.push({node:ct,index:A+1,skipped:O,depth:dt,statics:z,dynamics:U,optionals:J+1,extract:G,rawParams:V,parsedParams:I})}}if(!W&&_.dynamic&&Z)for(let P=_.dynamic.length-1;P>=0;P--){const dt=_.dynamic[P],{prefix:it,suffix:ct}=dt;if(it||ct){const at=dt.caseSensitive?Z:Q??=Z.toLowerCase();if(it&&!at.startsWith(it)||ct&&!at.endsWith(ct))continue}p.push({node:dt,index:A+1,skipped:O,depth:w+1,statics:z,dynamics:U+1,optionals:J,extract:G,rawParams:V,parsedParams:I})}if(!W&&_.staticInsensitive){const P=_.staticInsensitive.get(Q??=Z.toLowerCase());P&&p.push({node:P,index:A+1,skipped:O,depth:w+1,statics:z+1,dynamics:U,optionals:J,extract:G,rawParams:V,parsedParams:I})}if(!W&&_.static){const P=_.static.get(Z);P&&p.push({node:P,index:A+1,skipped:O,depth:w+1,statics:z+1,dynamics:U,optionals:J,extract:G,rawParams:V,parsedParams:I})}if(_.pathless){const P=w+1;for(let dt=_.pathless.length-1;dt>=0;dt--){const it=_.pathless[dt];p.push({node:it,index:A,skipped:O,depth:P,statics:z,dynamics:U,optionals:J,extract:G,rawParams:V,parsedParams:I})}}}if(S&&g)return ts(g,S)?S:g;if(S)return S;if(g)return g;if(o&&m){let h=m.index;for(let A=0;Aa.statics||s.statics===a.statics&&(s.dynamics>a.dynamics||s.dynamics===a.dynamics&&(s.optionals>a.optionals||s.optionals===a.optionals&&((s.node.kind===Ia)>(a.node.kind===Ia)||s.node.kind===Ia==(a.node.kind===Ia)&&s.depth>a.depth))):!0}function Cr(a){return Zc(a.filter(s=>s!==void 0).join("/"))}function Zc(a){return a.replace(/\/{2,}/g,"/")}function Ky(a){return a==="/"?a:a.replace(/^\/{1,}/,"")}function Qn(a){const s=a.length;return s>1&&a[s-1]==="/"?a.replace(/\/{1,}$/,""):a}function Jy(a){return Qn(Ky(a))}function qr(a,s){return a?.endsWith("/")&&a!=="/"&&a!==`${s}/`?a.slice(0,-1):a}function Jv(a,s,i){return qr(a,i)===qr(s,i)}function Fv({base:a,to:s,trailingSlash:i="never",cache:o}){const c=s.startsWith("/"),f=!c&&s===".";let y;if(o){y=c?s:f?a:a+"\0"+s;const h=o.get(y);if(h)return h}let p;if(f)p=a.split("/");else if(c)p=s.split("/");else{for(p=a.split("/");p.length>1&&os(p)==="";)p.pop();const h=s.split("/");for(let _=0,A=h.length;_1&&(os(p)===""?i==="never"&&p.pop():i==="always"&&p.push(""));let g,m="";for(let h=0;h0&&(m+="/");const _=p[h];if(!_)continue;g=Xc(_,0,g);const A=g[0];if(A===ii){m+=_;continue}const O=g[5],w=_.substring(0,g[1]),z=_.substring(g[4],O),U=_.substring(g[2],g[3]);A===il?m+=w||z?`${w}{$${U}}${z}`:`$${U}`:A===sl?m+=w||z?`${w}{$}${z}`:"$":m+=`${w}{-$${U}}${z}`}m=Zc(m);const S=m||"/";return y&&o&&o.set(y,S),S}function Pv(a){const s=new Map(a.map(c=>[encodeURIComponent(c),c])),i=Array.from(s.keys()).map(c=>c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),o=new RegExp(i,"g");return c=>c.replace(o,f=>s.get(f)??f)}function Tc(a,s,i){const o=s[a];return typeof o!="string"?o:a==="_splat"?/^[a-zA-Z0-9\-._~!/]*$/.test(o)?o:o.split("/").map(c=>dy(c,i)).join("/"):dy(o,i)}function Rc({path:a,params:s,decoder:i,server:o}){let c=!1;const f={};if(!a||a==="/")return{interpolatedPath:"/",usedParams:f,isMissingParams:c};if(!a.includes("$"))return{interpolatedPath:a,usedParams:f,isMissingParams:c};const y=a.length;let p=0,g,m="";for(;p{let i;return(...o)=>{i||(i=setTimeout(()=>{a(...o),i=null},s))}};function Iv(){const a=$v();if(!a)return null;const s=a.getItem(Hc);let i=s?JSON.parse(s):{};return{state:i,set:o=>{i=Ra(o,i)||i;try{a.setItem(Hc,JSON.stringify(i))}catch{console.warn("[ts-router] Could not persist scroll restoration state to sessionStorage.")}}}}const Ar=Iv(),tS=a=>a.state.__TSR_key||a.href;function eS(a){const s=[];let i;for(;i=a.parentNode;)s.push(`${a.tagName}:nth-child(${Array.prototype.indexOf.call(i.children,a)+1})`),a=i;return`${s.reverse().join(" > ")}`.toLowerCase()}let Gr=!1;function nS({storageKey:a,key:s,behavior:i,shouldScrollRestoration:o,scrollToTopSelectors:c,location:f}){let y;try{y=JSON.parse(sessionStorage.getItem(a)||"{}")}catch(m){console.error(m);return}const p=s||window.history.state?.__TSR_key,g=y[p];Gr=!0;t:{if(o&&g&&Object.keys(g).length>0){for(const h in g){const _=g[h];if(h==="window")window.scrollTo({top:_.scrollY,left:_.scrollX,behavior:i});else if(h){const A=document.querySelector(h);A&&(A.scrollLeft=_.scrollX,A.scrollTop=_.scrollY)}}break t}const m=(f??window.location).hash.split("#",2)[1];if(m){const h=window.history.state?.__hashScrollIntoViewOptions??!0;if(h){const _=document.getElementById(m);_&&_.scrollIntoView(h)}break t}const S={top:0,left:0,behavior:i};if(window.scrollTo(S),c)for(const h of c){if(h==="window")continue;const _=typeof h=="function"?h():document.querySelector(h);_&&_.scrollTo(S)}}Gr=!1}function aS(a,s){if(!Ar||((a.options.scrollRestoration??!1)&&(a.isScrollRestoring=!0),a.isScrollRestorationSetup||!Ar))return;a.isScrollRestorationSetup=!0,Gr=!1;const o=a.options.getScrollRestorationKey||tS;window.history.scrollRestoration="manual";const c=f=>{if(Gr||!a.isScrollRestoring)return;let y="";if(f.target===document||f.target===window)y="window";else{const g=f.target.getAttribute("data-scroll-restoration-id");g?y=`[data-scroll-restoration-id="${g}"]`:y=eS(f.target)}const p=o(a.state.location);Ar.set(g=>{const m=g[p]||={},S=m[y]||={};if(y==="window")S.scrollX=window.scrollX||0,S.scrollY=window.scrollY||0;else if(y){const h=document.querySelector(y);h&&(S.scrollX=h.scrollLeft||0,S.scrollY=h.scrollTop||0)}return g})};typeof document<"u"&&document.addEventListener("scroll",Wv(c,100),!0),a.subscribe("onRendered",f=>{const y=o(f.toLocation);if(!a.resetNextScroll){a.resetNextScroll=!0;return}typeof a.options.scrollRestoration=="function"&&!a.options.scrollRestoration({location:a.latestLocation})||(nS({storageKey:Hc,key:y,behavior:a.options.scrollRestorationBehavior,shouldScrollRestoration:a.isScrollRestoring,scrollToTopSelectors:a.options.scrollToTopSelectors,location:a.history.location}),a.isScrollRestoring&&Ar.set(p=>(p[y]||={},p)))})}function lS(a){if(typeof document<"u"&&document.querySelector){const s=a.state.location.state.__hashScrollIntoViewOptions??!0;if(s&&a.state.location.hash!==""){const i=document.getElementById(a.state.location.hash);i&&i.scrollIntoView(s)}}}function Fy(a,s=String){const i=new URLSearchParams;for(const o in a){const c=a[o];c!==void 0&&i.set(o,s(c))}return i.toString()}function xc(a){return a?a==="false"?!1:a==="true"?!0:+a*0===0&&+a+""===a?+a:a:""}function iS(a){const s=new URLSearchParams(a),i={};for(const[o,c]of s.entries()){const f=i[o];f==null?i[o]=xc(c):Array.isArray(f)?f.push(xc(c)):i[o]=[f,xc(c)]}return i}const sS=oS(JSON.parse),rS=uS(JSON.stringify,JSON.parse);function oS(a){return s=>{s[0]==="?"&&(s=s.substring(1));const i=iS(s);for(const o in i){const c=i[o];if(typeof c=="string")try{i[o]=a(c)}catch{}}return i}}function uS(a,s){const i=typeof s=="function";function o(c){if(typeof c=="object"&&c!==null)try{return a(c)}catch{}else if(i&&typeof c=="string")try{return s(c),a(c)}catch{}return c}return c=>{const f=Fy(c,o);return f?`?${f}`:""}}const ln="__root__";function kr(a){if(a.statusCode=a.statusCode||a.code||307,!a._builtLocation&&typeof a.href=="string"&&jr(a.href))throw new Error(`Redirect blocked: unsafe protocol in href "${a.href}". Only ${Qy.join(", ")} protocols are allowed.`);if(!a._builtLocation&&!a.reloadDocument&&typeof a.href=="string")try{new URL(a.href),a.reloadDocument=!0}catch{}const s=new Headers(a.headers);a.href&&s.get("Location")===null&&s.set("Location",a.href);const i=new Response(null,{status:a.statusCode,headers:s});if(i.options=a,a.throw)throw i;return i}function sn(a){return a instanceof Response&&!!a.options}function cS(a){if(a!==null&&typeof a=="object"&&a.isSerializedRedirect)return kr(a)}const Dr=a=>{if(!a.rendered)return a.rendered=!0,a.onReady?.()},Kr=(a,s)=>!!(a.preload&&!a.router.state.matches.some(i=>i.id===s)),ei=(a,s,i=!0)=>{const o={...a.router.options.context??{}},c=i?s:s-1;for(let f=0;f<=c;f++){const y=a.matches[f];if(!y)continue;const p=a.router.getMatch(y.id);p&&Object.assign(o,p.__routeContext,p.__beforeLoadContext)}return o},Py=(a,s)=>{const i=a.router.routesById[s.routeId??""]??a.router.routeTree;!i.options.notFoundComponent&&a.router.options?.defaultNotFoundComponent&&(i.options.notFoundComponent=a.router.options.defaultNotFoundComponent),je(i.options.notFoundComponent);const o=a.matches.find(c=>c.routeId===i.id);je(o,"Could not find match for route: "+i.id),a.updateMatch(o.id,c=>({...c,status:"notFound",error:s,isFetching:!1})),s.routerCode==="BEFORE_LOAD"&&i.parentRoute&&(s.routeId=i.parentRoute.id,Py(a,s))},xa=(a,s,i)=>{if(!(!sn(i)&&!Te(i))){if(sn(i)&&i.redirectHandled&&!i.options.reloadDocument)throw i;if(s){s._nonReactive.beforeLoadPromise?.resolve(),s._nonReactive.loaderPromise?.resolve(),s._nonReactive.beforeLoadPromise=void 0,s._nonReactive.loaderPromise=void 0;const o=sn(i)?"redirected":"notFound";s._nonReactive.error=i,a.updateMatch(s.id,c=>({...c,status:o,context:ei(a,s.index),isFetching:!1,error:i})),Te(i)&&!i.routeId&&(i.routeId=s.routeId),s._nonReactive.loadPromise?.resolve()}throw sn(i)?(a.rendered=!0,i.options._fromLocation=a.location,i.redirectHandled=!0,i=a.router.resolveRedirect(i),i):(Py(a,i),i)}},$y=(a,s)=>!!a.router.getMatch(s)._nonReactive.dehydrated,es=(a,s,i,o)=>{const{id:c,routeId:f}=a.matches[s],y=a.router.looseRoutesById[f];if(i instanceof Promise)throw i;i.routerCode=o,a.firstBadMatchIndex??=s,xa(a,a.router.getMatch(c),i);try{y.options.onError?.(i)}catch(p){i=p,xa(a,a.router.getMatch(c),i)}a.updateMatch(c,p=>(p._nonReactive.beforeLoadPromise?.resolve(),p._nonReactive.beforeLoadPromise=void 0,p._nonReactive.loadPromise?.resolve(),{...p,error:i,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},Wy=(a,s,i,o)=>{if(o._nonReactive.pendingTimeout!==void 0)return;const c=i.options.pendingMs??a.router.options.defaultPendingMs;if(!!(a.onReady&&!Kr(a,s)&&(i.options.loader||i.options.beforeLoad||ep(i))&&typeof c=="number"&&c!==1/0&&(i.options.pendingComponent??a.router.options?.defaultPendingComponent))){const y=setTimeout(()=>{Dr(a)},c);o._nonReactive.pendingTimeout=y}},fS=(a,s,i)=>{const o=a.router.getMatch(s);if(!o._nonReactive.beforeLoadPromise&&!o._nonReactive.loaderPromise)return;Wy(a,s,i,o);const c=()=>{const f=a.router.getMatch(s);f.preload&&(f.status==="redirected"||f.status==="notFound")&&xa(a,f,f.error)};return o._nonReactive.beforeLoadPromise?o._nonReactive.beforeLoadPromise.then(c):c()},dS=(a,s,i,o)=>{const c=a.router.getMatch(s),f=c._nonReactive.loadPromise;c._nonReactive.loadPromise=ll(()=>{f?.resolve()});const{paramsError:y,searchError:p}=c;y&&es(a,i,y,"PARSE_PARAMS"),p&&es(a,i,p,"VALIDATE_SEARCH"),Wy(a,s,o,c);const g=new AbortController;let m=!1;const S=()=>{m||(m=!0,a.updateMatch(s,V=>({...V,isFetching:"beforeLoad",fetchCount:V.fetchCount+1,abortController:g})))},h=()=>{c._nonReactive.beforeLoadPromise?.resolve(),c._nonReactive.beforeLoadPromise=void 0,a.updateMatch(s,V=>({...V,isFetching:!1}))};if(!o.options.beforeLoad){Il(()=>{S(),h()});return}c._nonReactive.beforeLoadPromise=ll();const _={...ei(a,i,!1),...c.__routeContext},{search:A,params:O,cause:w}=c,z=Kr(a,s),U={search:A,abortController:g,params:O,preload:z,context:_,location:a.location,navigate:V=>a.router.navigate({...V,_fromLocation:a.location}),buildLocation:a.router.buildLocation,cause:z?"preload":w,matches:a.matches,...a.router.options.additionalContext},J=V=>{if(V===void 0){Il(()=>{S(),h()});return}(sn(V)||Te(V))&&(S(),es(a,i,V,"BEFORE_LOAD")),Il(()=>{S(),a.updateMatch(s,I=>({...I,__beforeLoadContext:V})),h()})};let G;try{if(G=o.options.beforeLoad(U),ti(G))return S(),G.catch(V=>{es(a,i,V,"BEFORE_LOAD")}).then(J)}catch(V){S(),es(a,i,V,"BEFORE_LOAD")}J(G)},hS=(a,s)=>{const{id:i,routeId:o}=a.matches[s],c=a.router.looseRoutesById[o],f=()=>p(),y=()=>dS(a,i,s,c),p=()=>{if($y(a,i))return;const g=fS(a,i,c);return ti(g)?g.then(y):y()};return f()},mS=(a,s,i)=>{const o=a.router.getMatch(s);if(!o||!i.options.head&&!i.options.scripts&&!i.options.headers)return;const c={ssr:a.router.options.ssr,matches:a.matches,match:o,params:o.params,loaderData:o.loaderData};return Promise.all([i.options.head?.(c),i.options.scripts?.(c),i.options.headers?.(c)]).then(([f,y,p])=>{const g=f?.meta,m=f?.links,S=f?.scripts,h=f?.styles;return{meta:g,links:m,headScripts:S,headers:p,scripts:y,styles:h}})},Iy=(a,s,i,o)=>{const c=a.matchPromises[i-1],{params:f,loaderDeps:y,abortController:p,cause:g}=a.router.getMatch(s),m=ei(a,i),S=Kr(a,s);return{params:f,deps:y,preload:!!S,parentMatchPromise:c,abortController:p,context:m,location:a.location,navigate:h=>a.router.navigate({...h,_fromLocation:a.location}),cause:S?"preload":g,route:o,...a.router.options.additionalContext}},hy=async(a,s,i,o)=>{try{const c=a.router.getMatch(s);try{(!(Mv??a.router.isServer)||c.ssr===!0)&&tp(o);const f=o.options.loader?.(Iy(a,s,i,o)),y=o.options.loader&&ti(f);if((y||o._lazyPromise||o._componentsPromise||o.options.head||o.options.scripts||o.options.headers||c._nonReactive.minPendingPromise)&&a.updateMatch(s,m=>({...m,isFetching:"loader"})),o.options.loader){const m=y?await f:f;xa(a,a.router.getMatch(s),m),m!==void 0&&a.updateMatch(s,S=>({...S,loaderData:m}))}o._lazyPromise&&await o._lazyPromise;const g=c._nonReactive.minPendingPromise;g&&await g,o._componentsPromise&&await o._componentsPromise,a.updateMatch(s,m=>({...m,error:void 0,context:ei(a,i),status:"success",isFetching:!1,updatedAt:Date.now()}))}catch(f){let y=f;if(y?.name==="AbortError"){a.updateMatch(s,g=>({...g,status:g.status==="pending"?"success":g.status,isFetching:!1,context:ei(a,i)}));return}const p=c._nonReactive.minPendingPromise;p&&await p,Te(f)&&await o.options.notFoundComponent?.preload?.(),xa(a,a.router.getMatch(s),f);try{o.options.onError?.(f)}catch(g){y=g,xa(a,a.router.getMatch(s),g)}a.updateMatch(s,g=>({...g,error:y,context:ei(a,i),status:"error",isFetching:!1}))}}catch(c){const f=a.router.getMatch(s);f&&(f._nonReactive.loaderPromise=void 0),xa(a,f,c)}},yS=async(a,s)=>{const{id:i,routeId:o}=a.matches[s];let c=!1,f=!1;const y=a.router.looseRoutesById[o];if(!$y(a,i)){const m=a.router.getMatch(i);if(m._nonReactive.loaderPromise){if(m.status==="success"&&!a.sync&&!m.preload)return m;await m._nonReactive.loaderPromise;const S=a.router.getMatch(i),h=S._nonReactive.error||S.error;h&&xa(a,S,h)}else{const S=Date.now()-m.updatedAt,h=Kr(a,i),_=h?y.options.preloadStaleTime??a.router.options.defaultPreloadStaleTime??3e4:y.options.staleTime??a.router.options.defaultStaleTime??0,A=y.options.shouldReload,O=typeof A=="function"?A(Iy(a,i,s,y)):A,w=!!h&&!a.router.state.matches.some(G=>G.id===i),z=a.router.getMatch(i);z._nonReactive.loaderPromise=ll(),w!==z.preload&&a.updateMatch(i,G=>({...G,preload:w}));const{status:U,invalid:J}=z;c=U==="success"&&(J||(O??S>_)),h&&y.options.preload===!1||(c&&!a.sync?(f=!0,(async()=>{try{await hy(a,i,s,y);const G=a.router.getMatch(i);G._nonReactive.loaderPromise?.resolve(),G._nonReactive.loadPromise?.resolve(),G._nonReactive.loaderPromise=void 0}catch(G){sn(G)&&await a.router.navigate(G.options)}})()):(U!=="success"||c&&a.sync)&&await hy(a,i,s,y))}}const p=a.router.getMatch(i);f||(p._nonReactive.loaderPromise?.resolve(),p._nonReactive.loadPromise?.resolve()),clearTimeout(p._nonReactive.pendingTimeout),p._nonReactive.pendingTimeout=void 0,f||(p._nonReactive.loaderPromise=void 0),p._nonReactive.dehydrated=void 0;const g=f?p.isFetching:!1;return g!==p.isFetching||p.invalid!==!1?(a.updateMatch(i,m=>({...m,isFetching:g,invalid:!1})),a.router.getMatch(i)):p};async function my(a){const s=Object.assign(a,{matchPromises:[]});s.router.state.matches.some(i=>i._forcePending)&&Dr(s);try{for(let p=0;pp.status==="rejected").map(p=>p.reason);let f;for(const p of c){if(sn(p))throw p;!f&&Te(p)&&(f=p)}for(const p of s.matches){const{id:g,routeId:m}=p,S=s.router.looseRoutesById[m];try{const h=mS(s,g,S);if(h){const _=await h;s.updateMatch(g,A=>({...A,..._}))}}catch(h){console.error(`Error executing head for route ${m}:`,h)}}if(f)throw f;const y=Dr(s);ti(y)&&await y}catch(i){if(Te(i)&&!s.preload){const o=Dr(s);throw ti(o)&&await o,i}if(sn(i))throw i}return s.matches}async function tp(a){if(!a._lazyLoaded&&a._lazyPromise===void 0&&(a.lazyFn?a._lazyPromise=a.lazyFn().then(s=>{const{id:i,...o}=s.options;Object.assign(a.options,o),a._lazyLoaded=!0,a._lazyPromise=void 0}):a._lazyLoaded=!0),!a._componentsLoaded&&a._componentsPromise===void 0){const s=()=>{const i=[];for(const o of np){const c=a.options[o]?.preload;c&&i.push(c())}if(i.length)return Promise.all(i).then(()=>{a._componentsLoaded=!0,a._componentsPromise=void 0});a._componentsLoaded=!0,a._componentsPromise=void 0};a._componentsPromise=a._lazyPromise?a._lazyPromise.then(s):s()}return a._componentsPromise}function ep(a){for(const s of np)if(a.options[s]?.preload)return!0;return!1}const np=["component","errorComponent","pendingComponent","notFoundComponent"];function pS(a){return{input:({url:s})=>{for(const i of a)s=jc(i,s);return s},output:({url:s})=>{for(let i=a.length-1;i>=0;i--)s=ap(a[i],s);return s}}}function gS(a){const s=Jy(a.basepath),i=`/${s}`,o=`${i}/`,c=a.caseSensitive?i:i.toLowerCase(),f=a.caseSensitive?o:o.toLowerCase();return{input:({url:y})=>{const p=a.caseSensitive?y.pathname:y.pathname.toLowerCase();return p===c?y.pathname="/":p.startsWith(f)&&(y.pathname=y.pathname.slice(i.length)),y},output:({url:y})=>(y.pathname=Cr(["/",s,y.pathname]),y)}}function jc(a,s){const i=a?.input?.({url:s});if(i){if(typeof i=="string")return new URL(i);if(i instanceof URL)return i}return s}function ap(a,s){const i=a?.output?.({url:s});if(i){if(typeof i=="string")return new URL(i);if(i instanceof URL)return i}return s}function vS(a){return a instanceof Error?{name:a.name,message:a.message}:{data:a}}function al(a){const s=a.resolvedLocation,i=a.location,o=s?.pathname!==i.pathname,c=s?.href!==i.href,f=s?.hash!==i.hash;return{fromLocation:s,toLocation:i,pathChanged:o,hrefChanged:c,hashChanged:f}}class SS{constructor(s){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=i=>i(),this.update=i=>{i.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const o=this.options,c=this.basepath??o?.basepath??"/",f=this.basepath===void 0,y=o?.rewrite;if(this.options={...o,...i},this.isServer=this.options.isServer??typeof document>"u",this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=Pv(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=wv()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let _;this.resolvePathCache=Yr(1e3),_=this.buildRouteTree(),this.setRoutes(_)}!this.__store&&this.latestLocation&&(this.__store=new Rv(_S(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(_=>!["redirected"].includes(_.status))}}}),aS(this));let p=!1;const g=this.options.basepath??"/",m=this.options.rewrite;if(f||c!==g||y!==m){this.basepath=g;const _=[],A=Jy(g);A&&A!=="/"&&_.push(gS({basepath:g})),m&&_.push(m),this.rewrite=_.length===0?void 0:_.length===1?_[0]:pS(_),this.history&&this.updateLatestLocation(),p=!0}p&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const i=Qv(this.routeTree,this.options.caseSensitive,(o,c)=>{o.init({originalIndex:c})});return this.options.routeMasks&&Yv(this.options.routeMasks,i.processedTree),i},this.subscribe=(i,o)=>{const c={eventType:i,fn:o};return this.subscribers.add(c),()=>{this.subscribers.delete(c)}},this.emit=i=>{this.subscribers.forEach(o=>{o.eventType===i.type&&o.fn(i)})},this.parseLocation=(i,o)=>{const c=({pathname:g,search:m,hash:S,href:h,state:_})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(g)){const J=this.options.parseSearch(m),G=this.options.stringifySearch(J);return{href:g+G+S,publicHref:h,pathname:Ii(g),external:!1,searchStr:G,search:Be(o?.search,J),hash:Ii(S.slice(1)),state:Be(o?.state,_)}}const A=new URL(h,this.origin),O=jc(this.rewrite,A),w=this.options.parseSearch(O.search),z=this.options.stringifySearch(w);return O.search=z,{href:O.href.replace(O.origin,""),publicHref:h,pathname:Ii(O.pathname),external:!!this.rewrite&&O.origin!==this.origin,searchStr:z,search:Be(o?.search,w),hash:Ii(O.hash.slice(1)),state:Be(o?.state,_)}},f=c(i),{__tempLocation:y,__tempKey:p}=f.state;if(y&&(!p||p===this.tempLocationKey)){const g=c(y);return g.state.key=f.state.key,g.state.__TSR_key=f.state.__TSR_key,delete g.state.__tempLocation,{...g,maskedLocation:f}}return f},this.resolvePathWithBase=(i,o)=>Fv({base:i,to:Zc(o),trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(i,o,c)=>typeof i=="string"?this.matchRoutesInternal({pathname:i,search:o},c):this.matchRoutesInternal(i,o),this.getMatchedRoutes=i=>ES({pathname:i,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=i=>{const o=this.getMatch(i);o&&(o.abortController.abort(),clearTimeout(o._nonReactive.pendingTimeout),o._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const i=this.state.matches.filter(f=>f.status==="pending"),o=this.state.matches.filter(f=>f.isFetching==="loader");new Set([...this.state.pendingMatches??[],...i,...o]).forEach(f=>{this.cancelMatch(f.id)})},this.buildLocation=i=>{const o=(f={})=>{const y=f._fromLocation||this.pendingBuiltLocation||this.latestLocation,p=this.matchRoutesLightweight(y);f.from;const g=f.unsafeRelative==="path"?y.pathname:f.from??p.fullPath,m=this.resolvePathWithBase(g,"."),S=p.search,h={...p.params},_=f.to?this.resolvePathWithBase(m,`${f.to}`):this.resolvePathWithBase(m,"."),A=f.params===!1||f.params===null?{}:(f.params??!0)===!0?h:Object.assign(h,Ra(f.params,h)),O=Rc({path:_,params:A,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath,w=this.getMatchedRoutes(O);let z=w.matchedRoutes;(w.foundRoute?w.foundRoute.path!=="/"&&w.routeParams["**"]:Qn(O))&&this.options.notFoundRoute&&(z=[...z,this.options.notFoundRoute]);let J=!1;if(Object.keys(A).length>0)for(const at of z){const bt=at.options.params?.stringify??at.options.stringifyParams;bt&&(J=!0,Object.assign(A,bt(A)))}const G=i.leaveParams?_:Ii(J?Rc({path:_,params:A,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath:O);let V=S;if(i._includeValidateSearch&&this.options.search?.strict){const at={};z.forEach(bt=>{if(bt.options.validateSearch)try{Object.assign(at,Nr(bt.options.validateSearch,{...at,...V}))}catch{}}),V=at}V=TS({search:V,dest:f,destRoutes:z,_includeValidateSearch:i._includeValidateSearch}),V=Be(S,V);const I=this.options.stringifySearch(V),W=f.hash===!0?y.hash:f.hash?Ra(f.hash,y.hash):void 0,Z=W?`#${W}`:"";let Q=f.state===!0?y.state:f.state?Ra(f.state,y.state):{};Q=Be(y.state,Q);const P=`${G}${I}${Z}`;let dt,it,ct=!1;if(this.rewrite){const at=new URL(P,this.origin),bt=ap(this.rewrite,at);dt=at.href.replace(at.origin,""),bt.origin!==this.origin?(it=bt.href,ct=!0):it=bt.pathname+bt.search+bt.hash}else dt=Bv(P),it=dt;return{publicHref:it,href:dt,pathname:G,search:V,searchStr:I,state:Q,hash:W??"",external:ct,unmaskOnReload:f.unmaskOnReload}},c=(f={},y)=>{const p=o(f);let g=y?o(y):void 0;if(!g){const m={};if(this.options.routeMasks){const S=qv(p.pathname,this.processedTree);if(S){Object.assign(m,S.rawParams);const{from:h,params:_,...A}=S.route,O=_===!1||_===null?{}:(_??!0)===!0?m:Object.assign(m,Ra(_,m));y={from:i.from,...A,params:O},g=o(y)}}}return g&&(p.maskedLocation=g),p};return i.mask?c(i,{from:i.from,...i.mask}):c(i)},this.commitLocation=async({viewTransition:i,ignoreBlocker:o,...c})=>{const f=()=>{const g=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];g.forEach(S=>{c.state[S]=this.latestLocation.state[S]});const m=nl(c.state,this.latestLocation.state);return g.forEach(S=>{delete c.state[S]}),m},y=Qn(this.latestLocation.href)===Qn(c.href),p=this.commitLocationPromise;if(this.commitLocationPromise=ll(()=>{p?.resolve()}),y&&f())this.load();else{let{maskedLocation:g,hashScrollIntoView:m,...S}=c;g&&(S={...g,state:{...g.state,__tempKey:void 0,__tempLocation:{...S,search:S.searchStr,state:{...S.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(S.unmaskOnReload??this.options.unmaskOnReload??!1)&&(S.state.__tempKey=this.tempLocationKey)),S.state.__hashScrollIntoViewOptions=m??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=i,this.history[c.replace?"replace":"push"](S.publicHref,S.state,{ignoreBlocker:o})}return this.resetNextScroll=c.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:i,resetScroll:o,hashScrollIntoView:c,viewTransition:f,ignoreBlocker:y,href:p,...g}={})=>{if(p){const h=this.history.location.state.__TSR_index,_=Br(p,{__TSR_index:i?h:h+1}),A=new URL(_.pathname,this.origin),O=jc(this.rewrite,A);g.to=O.pathname,g.search=this.options.parseSearch(_.search),g.hash=_.hash.slice(1)}const m=this.buildLocation({...g,_includeValidateSearch:!0});this.pendingBuiltLocation=m;const S=this.commitLocation({...m,viewTransition:f,replace:i,resetScroll:o,hashScrollIntoView:c,ignoreBlocker:y});return Promise.resolve().then(()=>{this.pendingBuiltLocation===m&&(this.pendingBuiltLocation=void 0)}),S},this.navigate=async({to:i,reloadDocument:o,href:c,publicHref:f,...y})=>{let p=!1;if(c)try{new URL(`${c}`),p=!0}catch{}if(p&&!o&&(o=!0),o){if(i!==void 0||!c){const m=this.buildLocation({to:i,...y});c=c??m.publicHref,f=f??m.publicHref}const g=!p&&f?f:c;if(jr(g))return Promise.resolve();if(!y.ignoreBlocker){const S=this.history.getBlockers?.()??[];for(const h of S)if(h?.blockerFn&&await h.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:"PUSH"}))return Promise.resolve()}return y.replace?window.location.replace(g):window.location.href=g,Promise.resolve()}return this.buildAndCommitLocation({...y,href:c,to:i,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();const i=this.matchRoutes(this.latestLocation);this.__store.setState(o=>({...o,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:i,cachedMatches:o.cachedMatches.filter(c=>!i.some(f=>f.id===c.id))}))},this.load=async i=>{let o,c,f;for(f=new Promise(p=>{this.startTransition(async()=>{try{this.beforeLoad();const g=this.latestLocation,m=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...al({resolvedLocation:m,location:g})}),this.emit({type:"onBeforeLoad",...al({resolvedLocation:m,location:g})}),await my({router:this,sync:i?.sync,matches:this.state.pendingMatches,location:g,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let S=[],h=[],_=[];Il(()=>{this.__store.setState(A=>{const O=A.matches,w=A.pendingMatches||A.matches;return S=O.filter(z=>!w.some(U=>U.id===z.id)),h=w.filter(z=>!O.some(U=>U.id===z.id)),_=w.filter(z=>O.some(U=>U.id===z.id)),{...A,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...A.cachedMatches,...S.filter(z=>z.status!=="error"&&z.status!=="notFound")]}}),this.clearExpiredCache()}),[[S,"onLeave"],[h,"onEnter"],[_,"onStay"]].forEach(([A,O])=>{A.forEach(w=>{this.looseRoutesById[w.routeId].options[O]?.(w)})})})})}})}catch(g){sn(g)?(o=g,this.navigate({...o.options,replace:!0,ignoreBlocker:!0})):Te(g)&&(c=g),this.__store.setState(m=>({...m,statusCode:o?o.status:c?404:m.matches.some(S=>S.status==="error")?500:200,redirect:o}))}this.latestLoadPromise===f&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),p()})}),this.latestLoadPromise=f,await f;this.latestLoadPromise&&f!==this.latestLoadPromise;)await this.latestLoadPromise;let y;this.hasNotFoundMatch()?y=404:this.__store.state.matches.some(p=>p.status==="error")&&(y=500),y!==void 0&&this.__store.setState(p=>({...p,statusCode:y}))},this.startViewTransition=i=>{const o=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,o&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let c;if(typeof o=="object"&&this.isViewTransitionTypesSupported){const f=this.latestLocation,y=this.state.resolvedLocation,p=typeof o.types=="function"?o.types(al({resolvedLocation:y,location:f})):o.types;if(p===!1){i();return}c={update:i,types:p}}else c=i;document.startViewTransition(c)}else i()},this.updateMatch=(i,o)=>{this.startTransition(()=>{const c=this.state.pendingMatches?.some(f=>f.id===i)?"pendingMatches":this.state.matches.some(f=>f.id===i)?"matches":this.state.cachedMatches.some(f=>f.id===i)?"cachedMatches":"";c&&this.__store.setState(f=>({...f,[c]:f[c]?.map(y=>y.id===i?o(y):y)}))})},this.getMatch=i=>{const o=c=>c.id===i;return this.state.cachedMatches.find(o)??this.state.pendingMatches?.find(o)??this.state.matches.find(o)},this.invalidate=i=>{const o=c=>i?.filter?.(c)??!0?{...c,invalid:!0,...i?.forcePending||c.status==="error"||c.status==="notFound"?{status:"pending",error:void 0}:void 0}:c;return this.__store.setState(c=>({...c,matches:c.matches.map(o),cachedMatches:c.cachedMatches.map(o),pendingMatches:c.pendingMatches?.map(o)})),this.shouldViewTransition=!1,this.load({sync:i?.sync})},this.getParsedLocationHref=i=>i.publicHref||"/",this.resolveRedirect=i=>{const o=i.headers.get("Location");if(!i.options.href||i.options._builtLocation){const c=i.options._builtLocation??this.buildLocation(i.options),f=this.getParsedLocationHref(c);i.options.href=f,i.headers.set("Location",f)}else if(o)try{const c=new URL(o);if(this.origin&&c.origin===this.origin){const f=c.pathname+c.search+c.hash;i.options.href=f,i.headers.set("Location",f)}}catch{}return i.headers.get("Location")||i.headers.set("Location",i.options.href),i},this.clearCache=i=>{const o=i?.filter;o!==void 0?this.__store.setState(c=>({...c,cachedMatches:c.cachedMatches.filter(f=>!o(f))})):this.__store.setState(c=>({...c,cachedMatches:[]}))},this.clearExpiredCache=()=>{const i=o=>{const c=this.looseRoutesById[o.routeId];if(!c.options.loader)return!0;const f=(o.preload?c.options.preloadGcTime??this.options.defaultPreloadGcTime:c.options.gcTime??this.options.defaultGcTime)??300*1e3;return o.status==="error"?!0:Date.now()-o.updatedAt>=f};this.clearCache({filter:i})},this.loadRouteChunk=tp,this.preloadRoute=async i=>{const o=this.buildLocation(i);let c=this.matchRoutes(o,{throwOnError:!0,preload:!0,dest:i});const f=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(p=>p.id)),y=new Set([...f,...this.state.cachedMatches.map(p=>p.id)]);Il(()=>{c.forEach(p=>{y.has(p.id)||this.__store.setState(g=>({...g,cachedMatches:[...g.cachedMatches,p]}))})});try{return c=await my({router:this,matches:c,location:o,preload:!0,updateMatch:(p,g)=>{f.has(p)?c=c.map(m=>m.id===p?g(m):m):this.updateMatch(p,g)}}),c}catch(p){if(sn(p))return p.options.reloadDocument?void 0:await this.preloadRoute({...p.options,_fromLocation:o});Te(p)||console.error(p);return}},this.matchRoute=(i,o)=>{const c={...i,to:i.to?this.resolvePathWithBase(i.from||"",i.to):void 0,params:i.params||{},leaveParams:!0},f=this.buildLocation(c);if(o?.pending&&this.state.status!=="pending")return!1;const p=(o?.pending===void 0?!this.state.isLoading:o.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,g=Gv(f.pathname,o?.caseSensitive??!1,o?.fuzzy??!1,p.pathname,this.processedTree);return!g||i.params&&!nl(g.rawParams,i.params,{partial:!0})?!1:o?.includeSearch??!0?nl(p.search,f.search,{partial:!0})?g.rawParams:!1:g.rawParams},this.hasNotFoundMatch=()=>this.__store.state.matches.some(i=>i.status==="notFound"||i.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...s,caseSensitive:s.caseSensitive??!1,notFoundMode:s.notFoundMode??"fuzzy",stringifySearch:s.stringifySearch??rS,parseSearch:s.parseSearch??sS}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}setRoutes({routesById:s,routesByPath:i,processedTree:o}){this.routesById=s,this.routesByPath=i,this.processedTree=o;const c=this.options.notFoundRoute;c&&(c.init({originalIndex:99999999999}),this.routesById[c.id]=c)}get looseRoutesById(){return this.routesById}getParentContext(s){return s?.id?s.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(s,i){const o=this.getMatchedRoutes(s.pathname),{foundRoute:c,routeParams:f,parsedParams:y}=o;let{matchedRoutes:p}=o,g=!1;(c?c.path!=="/"&&f["**"]:Qn(s.pathname))&&(this.options.notFoundRoute?p=[...p,this.options.notFoundRoute]:g=!0);const m=g?xS(this.options.notFoundMode,p):void 0,S=new Array(p.length);for(let h=0;hat.routeId===_.id),Q=W?._strictParams??V;let P;if(!W)try{yy(_,V,y,Q)}catch(at){if(Te(at)||sn(at)?P=at:P=new bS(at.message,{cause:at}),i?.throwOnError)throw P}Object.assign(f,Q);const dt=Z?"stay":"enter";let it;if(W)it={...W,cause:dt,params:Z?Be(Z.params,f):f,_strictParams:Q,search:Be(Z?Z.search:W.search,O),_strictSearch:w};else{const at=_.options.loader||_.options.beforeLoad||_.lazyFn||ep(_)?"pending":"success";it={id:I,ssr:_.options.ssr,index:h,routeId:_.id,params:Z?Be(Z.params,f):f,_strictParams:Q,pathname:G,updatedAt:Date.now(),search:Z?Be(Z.search,O):O,_strictSearch:w,searchError:void 0,status:at,isFetching:!1,error:void 0,paramsError:P,__routeContext:void 0,_nonReactive:{loadPromise:ll()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:dt,loaderDeps:Z?Be(Z.loaderDeps,U):U,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:_.options.staticData||{},fullPath:_.fullPath}}i?.preload||(it.globalNotFound=m===_.id),it.searchError=z;const ct=this.getParentContext(A);it.context={...ct,...it.__routeContext,...it.__beforeLoadContext},S[h]=it}for(let h=0;hthis.navigate({...J,_fromLocation:s}),buildLocation:this.buildLocation,cause:_.cause,abortController:_.abortController,preload:!!_.preload,matches:S};_.__routeContext=A.options.context(U)??void 0}_.context={...z,..._.__routeContext,..._.__beforeLoadContext}}}return S}matchRoutesLightweight(s){const{matchedRoutes:i,routeParams:o,parsedParams:c}=this.getMatchedRoutes(s.pathname),f=os(i),y={...s.search};for(const S of i)try{Object.assign(y,Nr(S.options.validateSearch,y))}catch{}const p=os(this.state.matches),g=p&&p.routeId===f.id&&s.pathname===this.state.location.pathname;let m;if(g)m=p.params;else{const S={...o};for(const h of i)try{yy(h,o,c??{},S)}catch{}m=S}return{matchedRoutes:i,fullPath:f.fullPath,search:y,params:m}}}class Vr extends Error{}class bS extends Error{}function _S(a){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:a,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function Nr(a,s){if(a==null)return{};if("~standard"in a){const i=a["~standard"].validate(s);if(i instanceof Promise)throw new Vr("Async validation not supported");if(i.issues)throw new Vr(JSON.stringify(i.issues,void 0,2),{cause:i});return i.value}return"parse"in a?a.parse(s):typeof a=="function"?a(s):{}}function ES({pathname:a,routesById:s,processedTree:i}){const o={},c=Qn(a);let f,y;const p=Vv(c,i,!0);return p&&(f=p.route,Object.assign(o,p.rawParams),y=Object.assign({},p.parsedParams)),{matchedRoutes:p?.branch||[s[ln]],routeParams:o,foundRoute:f,parsedParams:y}}function TS({search:a,dest:s,destRoutes:i,_includeValidateSearch:o}){return RS(i)(a,s,o??!1)}function RS(a){const s={dest:null,_includeValidateSearch:!1,middlewares:[]};for(const c of a){if("search"in c.options)c.options.search?.middlewares&&s.middlewares.push(...c.options.search.middlewares);else if(c.options.preSearchFilters||c.options.postSearchFilters){const f=({search:y,next:p})=>{let g=y;"preSearchFilters"in c.options&&c.options.preSearchFilters&&(g=c.options.preSearchFilters.reduce((S,h)=>h(S),y));const m=p(g);return"postSearchFilters"in c.options&&c.options.postSearchFilters?c.options.postSearchFilters.reduce((S,h)=>h(S),m):m};s.middlewares.push(f)}if(c.options.validateSearch){const f=({search:y,next:p})=>{const g=p(y);if(!s._includeValidateSearch)return g;try{return{...g,...Nr(c.options.validateSearch,g)??void 0}}catch{return g}};s.middlewares.push(f)}}const i=({search:c})=>{const f=s.dest;return f.search?f.search===!0?c:Ra(f.search,c):{}};s.middlewares.push(i);const o=(c,f,y)=>{if(c>=y.length)return f;const p=y[c];return p({search:f,next:m=>o(c+1,m,y)})};return function(f,y,p){return s.dest=y,s._includeValidateSearch=p,o(0,f,s.middlewares)}}function xS(a,s){if(a!=="root")for(let i=s.length-1;i>=0;i--){const o=s[i];if(o.children)return o.id}return ln}function yy(a,s,i,o){const c=a.options.params?.parse??a.options.parseParams;if(c)if(a.options.skipRouteOnParseError)for(const f in s)f in i&&(o[f]=i[f]);else{const f=c(o);Object.assign(o,f)}}const bn=Symbol.for("TSR_DEFERRED_PROMISE");function wS(a,s){const i=a;return i[bn]||(i[bn]={status:"pending"},i.then(o=>{i[bn].status="success",i[bn].data=o}).catch(o=>{i[bn].status="error",i[bn].error={data:vS(o),__isServerError:!0}})),i}const AS="Error preloading route! ☝️";class lp{constructor(s){if(this.init=i=>{this.originalIndex=i.originalIndex;const o=this.options,c=!o?.path&&!o?.id;this.parentRoute=this.options.getParentRoute?.(),c?this._path=ln:this.parentRoute||je(!1);let f=c?ln:o?.path;f&&f!=="/"&&(f=Ky(f));const y=o?.id||f;let p=c?ln:Cr([this.parentRoute.id===ln?"":this.parentRoute.id,y]);f===ln&&(f="/"),p!==ln&&(p=Cr(["/",p]));const g=p===ln?"/":Cr([this.parentRoute.fullPath,f]);this._path=f,this._id=p,this._fullPath=g,this._to=Qn(g)},this.addChildren=i=>this._addFileChildren(i),this._addFileChildren=i=>(Array.isArray(i)&&(this.children=i),typeof i=="object"&&i!==null&&(this.children=Object.values(i)),this),this._addFileTypes=()=>this,this.updateLoader=i=>(Object.assign(this.options,i),this),this.update=i=>(Object.assign(this.options,i),this),this.lazy=i=>(this.lazyFn=i,this),this.redirect=i=>kr({from:this.fullPath,...i}),this.options=s||{},this.isRoot=!s?.getParentRoute,s?.id&&s?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class MS extends lp{constructor(s){super(s)}}var OS=(a=>(a[a.AggregateError=1]="AggregateError",a[a.ArrowFunction=2]="ArrowFunction",a[a.ErrorPrototypeStack=4]="ErrorPrototypeStack",a[a.ObjectAssign=8]="ObjectAssign",a[a.BigIntTypedArray=16]="BigIntTypedArray",a[a.RegExp=32]="RegExp",a))(OS||{}),Zn=Symbol.asyncIterator,ip=Symbol.hasInstance,ni=Symbol.isConcatSpreadable,kn=Symbol.iterator,sp=Symbol.match,rp=Symbol.matchAll,op=Symbol.replace,up=Symbol.search,cp=Symbol.species,fp=Symbol.split,dp=Symbol.toPrimitive,ai=Symbol.toStringTag,hp=Symbol.unscopables,mp={[Zn]:0,[ip]:1,[ni]:2,[kn]:3,[sp]:4,[rp]:5,[op]:6,[up]:7,[cp]:8,[fp]:9,[dp]:10,[ai]:11,[hp]:12},zS={0:Zn,1:ip,2:ni,3:kn,4:sp,5:rp,6:op,7:up,8:cp,9:fp,10:dp,11:ai,12:hp},b=void 0,CS={2:!0,3:!1,1:b,0:null,4:-0,5:Number.POSITIVE_INFINITY,6:Number.NEGATIVE_INFINITY,7:Number.NaN},DS={0:"Error",1:"EvalError",2:"RangeError",3:"ReferenceError",4:"SyntaxError",5:"TypeError",6:"URIError"},NS={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function zt(a,s,i,o,c,f,y,p,g,m,S,h){return{t:a,i:s,s:i,c:o,m:c,p:f,e:y,a:p,f:g,b:m,o:S,l:h}}function Aa(a){return zt(2,b,a,b,b,b,b,b,b,b,b,b)}var yp=Aa(2),pp=Aa(3),LS=Aa(1),US=Aa(0),BS=Aa(4),HS=Aa(5),jS=Aa(6),YS=Aa(7);function qS(a){switch(a){case'"':return'\\"';case"\\":return"\\\\";case` +`:return"\\n";case"\r":return"\\r";case"\b":return"\\b";case" ":return"\\t";case"\f":return"\\f";case"<":return"\\x3C";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return b}}function Ma(a){let s="",i=0,o;for(let c=0,f=a.length;cp1(a),Ep=class extends Error{constructor(a,s){super(g1(a)),this.cause=s}},py=class extends Ep{constructor(a){super("parsing",a)}},v1=class extends Ep{constructor(a){super("deserialization",a)}};function Kn(a){return`Seroval Error (specific: ${a})`}var Jr=class extends Error{constructor(s){super(Kn(1)),this.value=s}},Tp=class extends Error{constructor(s){super(Kn(2))}},S1=class extends Error{constructor(a){super(Kn(3))}},ds=class extends Error{constructor(a){super(Kn(4))}},b1=class extends Error{constructor(a){super(Kn(5)),this.value=a}},_1=class extends Error{constructor(a){super(Kn(6))}},E1=class extends Error{constructor(a){super(Kn(7))}},Oa=class extends Error{constructor(a){super(Kn(8))}},T1=class extends Error{constructor(s){super(Kn(9))}},R1=class{constructor(a,s){this.value=a,this.replacement=s}},Fr=()=>{let a={p:0,s:0,f:0};return a.p=new Promise((s,i)=>{a.s=s,a.f=i}),a},x1=(a,s)=>{a.s(s),a.p.s=1,a.p.v=s},w1=(a,s)=>{a.f(s),a.p.s=2,a.p.v=s};Fr.toString();x1.toString();w1.toString();var A1=()=>{let a=[],s=[],i=!0,o=!1,c=0,f=(g,m,S)=>{for(S=0;S{for(m=0,S=a.length;m(i&&(m=c++,s[m]=g),y(g),()=>{i&&(s[m]=s[c],s[c--]=void 0)});return{__SEROVAL_STREAM__:!0,on:g=>p(g),next:g=>{i&&(a.push(g),f(g,"next"))},throw:g=>{i&&(a.push(g),f(g,"throw"),i=!1,o=!1,s.length=0)},return:g=>{i&&(a.push(g),f(g,"return"),i=!1,o=!0,s.length=0)}}},M1=a=>s=>()=>{let i=0,o={[a]:()=>o,next:()=>{if(i>s.d)return{done:!0,value:void 0};let c=i++,f=s.v[c];if(c===s.t)throw f;return{done:c===s.d,value:f}}};return o},O1=(a,s)=>i=>()=>{let o=0,c=-1,f=!1,y=[],p=[],g=(S=0,h=p.length)=>{for(;S{let h=p.shift();h&&h.s({done:!1,value:S}),y.push(S)},throw:S=>{let h=p.shift();h&&h.f(S),g(),c=y.length,f=!0,y.push(S)},return:S=>{let h=p.shift();h&&h.s({done:!0,value:S}),g(),c=y.length,y.push(S)}});let m={[a]:()=>m,next:()=>{if(c===-1){let _=o++;if(_>=y.length){let A=s();return p.push(A),A.p}return{done:!1,value:y[_]}}if(o>c)return{done:!0,value:void 0};let S=o++,h=y[S];if(S!==c)return{done:!1,value:h};if(f)throw h;return{done:!0,value:h}}};return m},Rp=a=>{let s=atob(a),i=s.length,o=new Uint8Array(i);for(let c=0;c{}),s}var j1=O1(Zn,Fr);function Y1(a){return j1(a)}async function q1(a){try{return[1,await a]}catch(s){return[0,s]}}function G1(a,s){return{plugins:s.plugins,mode:a,marked:new Set,features:63^(s.disabledFeatures||0),refs:s.refs||new Map,depthLimit:s.depthLimit||1e3}}function Lr(a,s){a.marked.add(s)}function V1(a,s){let i=a.refs.size;return a.refs.set(s,i),i}function $r(a,s){let i=a.refs.get(s);return i!=null?(Lr(a,i),{type:1,value:JS(i)}):{type:0,value:V1(a,s)}}function Kc(a,s){let i=$r(a,s);return i.type===1?i:vp(s)?{type:2,value:WS(i.value,s)}:i}function el(a,s){let i=Kc(a,s);if(i.type!==0)return i.value;if(s in mp)return $S(i.value,s);throw new Jr(s)}function Wr(a,s){let i=$r(a,B1[s]);return i.type===1?i.value:zt(26,i.value,s,b,b,b,b,b,b,b,b,b)}function X1(a){let s=$r(a,L1);return s.type===1?s.value:zt(27,s.value,b,b,b,b,b,b,el(a,kn),b,b,b)}function Q1(a){let s=$r(a,U1);return s.type===1?s.value:zt(29,s.value,b,b,b,b,b,[Wr(a,1),el(a,Zn)],b,b,b,b)}function Z1(a,s,i,o){return zt(i?11:10,a,b,b,b,o,b,b,b,b,bp(s),b)}function k1(a,s,i,o){return zt(8,s,b,b,b,b,{k:i,v:o},b,Wr(a,0),b,b,b)}function K1(a,s,i){let o=new Uint8Array(i),c="";for(let f=0,y=o.length;f{Lr(this.base,s),le(this,a,p).then(g=>{f.push(f1(s,g))},g=>{c(g),y()})},throw:p=>{Lr(this.base,s),le(this,a,p).then(g=>{f.push(d1(s,g)),o(f),y()},g=>{c(g),y()})},return:p=>{Lr(this.base,s),le(this,a,p).then(g=>{f.push(h1(s,g)),o(f),y()},g=>{c(g),y()})}})}async function rb(a,s,i,o){return c1(i,Wr(a.base,4),await new Promise(sb.bind(a,s,i,o)))}async function ob(a,s,i,o){let c=[];for(let f=0,y=o.v.length;f(a[a.Vanilla=1]="Vanilla",a[a.Cross=2]="Cross",a))(db||{});function Ap(a,s){for(let i=0,o=s.length;i0)for(let f=0,y=i.v,p=c.length;fpb)throw new Oa(s);return ie(a,s.i,new RegExp(i,s.m))}throw new Tp(s)}function Cb(a,s,i){let o=ie(a,i.i,new Set);for(let c=0,f=i.a,y=f.length;cmb)throw new Oa(s);return ie(a,s.i,Rp(rl(s.s)))}function Lb(a,s,i){var o;let c=hb(i.c),f=Yt(a,s,i.f),y=(o=i.b)!=null?o:0;if(y<0||y>f.byteLength)throw new Oa(i);return ie(a,i.i,new c(f,y,i.l))}function Ub(a,s,i){var o;let c=Yt(a,s,i.f),f=(o=i.b)!=null?o:0;if(f<0||f>c.byteLength)throw new Oa(i);return ie(a,i.i,new DataView(c,f,i.l))}function Dp(a,s,i,o){if(i.p){let c=Cp(a,s,i.p,{});Object.defineProperties(o,Object.getOwnPropertyDescriptors(c))}return o}function Bb(a,s,i){let o=ie(a,i.i,new AggregateError([],rl(i.m)));return Dp(a,s,i,o)}function Hb(a,s,i){let o=Yc(i,NS,i.s),c=ie(a,i.i,new o(rl(i.m)));return Dp(a,s,i,c)}function jb(a,s,i){let o=Fr(),c=ie(a,i.i,o.p),f=Yt(a,s,i.f);return i.s?o.s(f):o.f(f),c}function Yb(a,s,i){return ie(a,i.i,Object(Yt(a,s,i.f)))}function qb(a,s,i){let o=a.base.plugins;if(o){let c=rl(i.c);for(let f=0,y=o.length;fa.base.depthLimit)throw new T1(a.base.depthLimit);switch(s+=1,i.t){case 2:return Yc(i,CS,i.s);case 0:return Number(i.s);case 1:return rl(String(i.s));case 3:if(String(i.s).length>yb)throw new Oa(i);return BigInt(i.s);case 4:return a.base.refs.get(i.i);case 18:return Tb(a,i);case 9:return Rb(a,s,i);case 10:case 11:return Mb(a,s,i);case 5:return Ob(a,i);case 6:return zb(a,i);case 7:return Cb(a,s,i);case 8:return Db(a,s,i);case 19:return Nb(a,i);case 16:case 15:return Lb(a,s,i);case 20:return Ub(a,s,i);case 14:return Bb(a,s,i);case 13:return Hb(a,s,i);case 12:return jb(a,s,i);case 17:return Yc(i,zS,i.s);case 21:return Yb(a,s,i);case 25:return qb(a,s,i);case 22:return Gb(a,i);case 23:return Vb(a,s,i);case 24:return Xb(a,s,i);case 28:return Qb(a,s,i);case 30:return Zb(a,s,i);case 31:return kb(a,s,i);case 32:return Kb(a,s,i);case 33:return Jb(a,s,i);case 34:return Fb(a,s,i);case 27:return Pb(a,s,i);case 29:return $b(a,s,i);case 35:return Wb(a,s,i);default:throw new Tp(i)}}function Ib(a,s){try{return Yt(a,0,s)}catch(i){throw new v1(i)}}var t_=()=>T;t_.toString();function Ac(a,s){let i=Mp(s.plugins),o=Sb({plugins:i,refs:s.refs,features:s.features,disabledFeatures:s.disabledFeatures});return Ib(o,a)}async function e_(a,s={}){let i=Mp(s.plugins),o=J1(1,{plugins:i,disabledFeatures:s.disabledFeatures});return{t:await fb(o,a),f:o.base.features,m:Array.from(o.base.marked)}}function n_(a){return{tag:"$TSR/t/"+a.key,test:a.test,parse:{sync(s,i){return i.parse(a.toSerializable(s))},async async(s,i){return await i.parse(a.toSerializable(s))},stream(s,i){return i.parse(a.toSerializable(s))}},serialize:void 0,deserialize(s,i){return a.fromSerializable(i.deserialize(s))}}}var Ta={},Np=a=>new ReadableStream({start:s=>{a.on({next:i=>{try{s.enqueue(i)}catch{}},throw:i=>{s.error(i)},return:()=>{try{s.close()}catch{}}})}}),a_={tag:"seroval-plugins/web/ReadableStreamFactory",test(a){return a===Ta},parse:{sync(){return Ta},async async(){return await Promise.resolve(Ta)},stream(){return Ta}},serialize(){return Np.toString()},deserialize(){return Ta}};function Sy(a){let s=ol(),i=a.getReader();async function o(){try{let c=await i.read();c.done?s.return(c.value):(s.next(c.value),await o())}catch(c){s.throw(c)}}return o().catch(()=>{}),s}var l_={tag:"seroval/plugins/web/ReadableStream",extends:[a_],test(a){return typeof ReadableStream>"u"?!1:a instanceof ReadableStream},parse:{sync(a,s){return{factory:s.parse(Ta),stream:s.parse(ol())}},async async(a,s){return{factory:await s.parse(Ta),stream:await s.parse(Sy(a))}},stream(a,s){return{factory:s.parse(Ta),stream:s.parse(Sy(a))}}},serialize(a,s){return"("+s.serialize(a.factory)+")("+s.serialize(a.stream)+")"},deserialize(a,s){let i=s.deserialize(a.stream);return Np(i)}},i_=l_;const s_={tag:"$TSR/Error",test(a){return a instanceof Error},parse:{sync(a,s){return{message:s.parse(a.message)}},async async(a,s){return{message:await s.parse(a.message)}},stream(a,s){return{message:s.parse(a.message)}}},serialize(a,s){return"new Error("+s.serialize(a.message)+")"},deserialize(a,s){return new Error(s.deserialize(a.message))}};class r_{constructor(s,i){this.stream=s,this.hint=i?.hint??"binary"}}const Xr=globalThis.Buffer,Lp=!!Xr&&typeof Xr.from=="function";function Up(a){if(a.length===0)return"";if(Lp)return Xr.from(a).toString("base64");const s=32768,i=[];for(let o=0;onew ReadableStream({start(s){a.on({next(i){try{s.enqueue(Bp(i))}catch{}},throw(i){s.error(i)},return(){try{s.close()}catch{}}})}}),u_=new TextEncoder,c_=a=>new ReadableStream({start(s){a.on({next(i){try{typeof i=="string"?s.enqueue(u_.encode(i)):s.enqueue(Bp(i.$b64))}catch{}},throw(i){s.error(i)},return(){try{s.close()}catch{}}})}}),f_="(s=>new ReadableStream({start(c){s.on({next(b){try{const d=atob(b),a=new Uint8Array(d.length);for(let i=0;i{const e=new TextEncoder();return new ReadableStream({start(c){s.on({next(v){try{if(typeof v==='string'){c.enqueue(e.encode(v))}else{const d=atob(v.$b64),a=new Uint8Array(d.length);for(let i=0;i{try{for(;;){const{done:o,value:c}=await i.read();if(o){s.return(void 0);break}s.next(Up(c))}}catch(o){s.throw(o)}finally{i.releaseLock()}})(),s}function _y(a){const s=ol(),i=a.getReader(),o=new TextDecoder("utf-8",{fatal:!0});return(async()=>{try{for(;;){const{done:c,value:f}=await i.read();if(c){try{const y=o.decode();y.length>0&&s.next(y)}catch{}s.return(void 0);break}try{const y=o.decode(f,{stream:!0});y.length>0&&s.next(y)}catch{s.next({$b64:Up(f)})}}}catch(c){s.throw(c)}finally{i.releaseLock()}})(),s}const h_={tag:"tss/RawStreamFactory",test(a){return a===ss},parse:{sync(){},async(){return Promise.resolve(void 0)},stream(){}},serialize(){return f_},deserialize(){return ss}},m_={tag:"tss/RawStreamFactoryText",test(a){return a===rs},parse:{sync(){},async(){return Promise.resolve(void 0)},stream(){}},serialize(){return d_},deserialize(){return rs}},y_={tag:"tss/RawStream",extends:[h_,m_],test(a){return a instanceof r_},parse:{sync(a,s){const i=a.hint==="text"?rs:ss;return{hint:a.hint,factory:s.parse(i),stream:s.parse(ol())}},async async(a,s){const i=a.hint==="text"?rs:ss,o=a.hint==="text"?_y(a.stream):by(a.stream);return{hint:a.hint,factory:await s.parse(i),stream:await s.parse(o)}},stream(a,s){const i=a.hint==="text"?rs:ss,o=a.hint==="text"?_y(a.stream):by(a.stream);return{hint:a.hint,factory:s.parse(i),stream:s.parse(o)}}},serialize(a,s){return"("+s.serialize(a.factory)+")("+s.serialize(a.stream)+")"},deserialize(a,s){const i=s.deserialize(a.stream);return a.hint==="text"?c_(i):o_(i)}};function p_(a){return{tag:"tss/RawStream",test:()=>!1,parse:{},serialize(){throw new Error("RawStreamDeserializePlugin.serialize should not be called. Client only deserializes.")},deserialize(s){return a(s.streamId)}}}const g_=[s_,y_,i_],v_="use",Qr=dv[v_],Or=typeof window<"u"?ot.useLayoutEffect:ot.useEffect;function Mc(a){const s=ot.useRef({value:a,prev:null}),i=s.current.value;return a!==i&&(s.current={value:a,prev:i}),s.current.prev}function S_(a,s,i={},o={}){ot.useEffect(()=>{if(!a.current||o.disabled||typeof IntersectionObserver!="function")return;const c=new IntersectionObserver(([f])=>{s(f)},i);return c.observe(a.current),()=>{c.disconnect()}},[s,i,o.disabled,a])}function b_(a){const s=ot.useRef(null);return ot.useImperativeHandle(a,()=>s.current,[]),s}function __({promise:a}){if(Qr)return Qr(a);const s=wS(a);if(s[bn].status==="pending")throw s;if(s[bn].status==="error")throw s[bn].error;return s[bn].data}function E_(a){const s=$.jsx(T_,{...a});return a.fallback?$.jsx(ot.Suspense,{fallback:a.fallback,children:s}):s}function T_(a){const s=__(a);return a.children(s)}function Fc(a){const s=a.errorComponent??Pc;return $.jsx(R_,{getResetKey:a.getResetKey,onCatch:a.onCatch,children:({error:i,reset:o})=>i?ot.createElement(s,{error:i,reset:o}):a.children})}class R_ extends ot.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(s){return{resetKey:s.getResetKey()}}static getDerivedStateFromError(s){return{error:s}}reset(){this.setState({error:null})}componentDidUpdate(s,i){i.error&&i.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(s,i){this.props.onCatch&&this.props.onCatch(s,i)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Pc({error:a}){const[s,i]=ot.useState(!1);return $.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[$.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[$.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),$.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>i(o=>!o),children:s?"Hide Error":"Show Error"})]}),$.jsx("div",{style:{height:".25rem"}}),s?$.jsx("div",{children:$.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:a.message?$.jsx("code",{children:a.message}):null})}):null]})}function x_({children:a,fallback:s=null}){return Hp()?$.jsx(F.Fragment,{children:a}):$.jsx(F.Fragment,{children:s})}function Hp(){return F.useSyncExternalStore(w_,()=>!0,()=>!1)}function w_(){return()=>{}}var Oc={exports:{}},zc={},Cc={exports:{}},Dc={};var Ey;function A_(){if(Ey)return Dc;Ey=1;var a=fs();function s(h,_){return h===_&&(h!==0||1/h===1/_)||h!==h&&_!==_}var i=typeof Object.is=="function"?Object.is:s,o=a.useState,c=a.useEffect,f=a.useLayoutEffect,y=a.useDebugValue;function p(h,_){var A=_(),O=o({inst:{value:A,getSnapshot:_}}),w=O[0].inst,z=O[1];return f(function(){w.value=A,w.getSnapshot=_,g(w)&&z({inst:w})},[h,A,_]),c(function(){return g(w)&&z({inst:w}),h(function(){g(w)&&z({inst:w})})},[h]),y(A),A}function g(h){var _=h.getSnapshot;h=h.value;try{var A=_();return!i(h,A)}catch{return!0}}function m(h,_){return _()}var S=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:p;return Dc.useSyncExternalStore=a.useSyncExternalStore!==void 0?a.useSyncExternalStore:S,Dc}var Ty;function M_(){return Ty||(Ty=1,Cc.exports=A_()),Cc.exports}var Ry;function O_(){if(Ry)return zc;Ry=1;var a=fs(),s=M_();function i(m,S){return m===S&&(m!==0||1/m===1/S)||m!==m&&S!==S}var o=typeof Object.is=="function"?Object.is:i,c=s.useSyncExternalStore,f=a.useRef,y=a.useEffect,p=a.useMemo,g=a.useDebugValue;return zc.useSyncExternalStoreWithSelector=function(m,S,h,_,A){var O=f(null);if(O.current===null){var w={hasValue:!1,value:null};O.current=w}else w=O.current;O=p(function(){function U(W){if(!J){if(J=!0,G=W,W=_(W),A!==void 0&&w.hasValue){var Z=w.value;if(A(Z,W))return V=Z}return V=W}if(Z=V,o(G,W))return Z;var Q=_(W);return A!==void 0&&A(Z,Q)?(G=W,Z):(G=W,V=Q)}var J=!1,G,V,I=h===void 0?null:h;return[function(){return U(S())},I===null?void 0:function(){return U(I())}]},[S,h,_,A]);var z=c(m,O[0],O[1]);return y(function(){w.hasValue=!0,w.value=z},[z]),g(z),z},zc}var xy;function z_(){return xy||(xy=1,Oc.exports=O_()),Oc.exports}var C_=z_();function D_(a,s=o=>o,i={}){const o=i.equal??N_;return C_.useSyncExternalStoreWithSelector(a.subscribe,()=>a.state,()=>a.state,s,o)}function N_(a,s){if(Object.is(a,s))return!0;if(typeof a!="object"||a===null||typeof s!="object"||s===null)return!1;if(a instanceof Map&&s instanceof Map){if(a.size!==s.size)return!1;for(const[o,c]of a)if(!s.has(o)||!Object.is(c,s.get(o)))return!1;return!0}if(a instanceof Set&&s instanceof Set){if(a.size!==s.size)return!1;for(const o of a)if(!s.has(o))return!1;return!0}if(a instanceof Date&&s instanceof Date)return a.getTime()===s.getTime();const i=wy(a);if(i.length!==wy(s).length)return!1;for(let o=0;o"u"?Nc:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=Nc,Nc)}function Se(a){const s=ot.useContext(jp());return a?.warn,s}function ae(a){const s=Se({warn:a?.router===void 0}),i=a?.router||s,o=ot.useRef(void 0);return D_(i.__store,c=>{if(a?.select){if(a.structuralSharing??i.options.defaultStructuralSharing){const f=Be(o.current,a.select(c));return o.current=f,f}return a.select(c)}return c})}const Ir=ot.createContext(void 0),L_=ot.createContext(void 0);function _n(a){const s=ot.useContext(a.from?L_:Ir);return ae({select:o=>{const c=o.matches.find(f=>a.from?a.from===f.routeId:f.id===s);if(je(!((a.shouldThrow??!0)&&!c),`Could not find ${a.from?`an active match from "${a.from}"`:"a nearest match!"}`),c!==void 0)return a.select?a.select(c):c},structuralSharing:a.structuralSharing})}function $c(a){return _n({from:a.from,strict:a.strict,structuralSharing:a.structuralSharing,select:s=>a.select?a.select(s.loaderData):s.loaderData})}function Wc(a){const{select:s,...i}=a;return _n({...i,select:o=>s?s(o.loaderDeps):o.loaderDeps})}function Ic(a){return _n({from:a.from,shouldThrow:a.shouldThrow,structuralSharing:a.structuralSharing,strict:a.strict,select:s=>{const i=a.strict===!1?s.params:s._strictParams;return a.select?a.select(i):i}})}function tf(a){return _n({from:a.from,strict:a.strict,shouldThrow:a.shouldThrow,structuralSharing:a.structuralSharing,select:s=>a.select?a.select(s.search):s.search})}function ef(a){const s=Se();return ot.useCallback(i=>s.navigate({...i,from:i.from??a?.from}),[a?.from,s])}var Yp=Gy();const U_=qy(Yp);function B_(a,s){const i=Se(),o=b_(s),{activeProps:c,inactiveProps:f,activeOptions:y,to:p,preload:g,preloadDelay:m,hashScrollIntoView:S,replace:h,startTransition:_,resetScroll:A,viewTransition:O,children:w,target:z,disabled:U,style:J,className:G,onClick:V,onFocus:I,onMouseEnter:W,onMouseLeave:Z,onTouchStart:Q,ignoreBlocker:P,params:dt,search:it,hash:ct,state:at,mask:bt,reloadDocument:wt,unsafeRelative:N,from:K,_fromLocation:lt,...St}=a,pt=Hp(),R=ae({select:Dt=>Dt.location.search,structuralSharing:!0}),j=a.from,X=ot.useMemo(()=>({...a,from:j}),[i,R,j,a._fromLocation,a.hash,a.to,a.search,a.params,a.state,a.mask,a.unsafeRelative]),k=ot.useMemo(()=>i.buildLocation({...X}),[i,X]),tt=k.maskedLocation?k.maskedLocation.publicHref:k.publicHref,rt=k.maskedLocation?k.maskedLocation.external:k.external,yt=ot.useMemo(()=>V_(tt,rt,i.history,U),[U,rt,tt,i.history]),ht=ot.useMemo(()=>{if(yt?.external)return jr(yt.href)?void 0:yt.href;if(!X_(p)&&!(typeof p!="string"||p.indexOf(":")===-1))try{return new URL(p),jr(p)?void 0:p}catch{}},[p,yt]),At=ae({select:Dt=>{if(ht)return!1;if(y?.exact){if(!Jv(Dt.location.pathname,k.pathname,i.basepath))return!1}else{const te=qr(Dt.location.pathname,i.basepath),ee=qr(k.pathname,i.basepath);if(!(te.startsWith(ee)&&(te.length===ee.length||te[ee.length]==="/")))return!1}return(y?.includeSearch??!0)&&!nl(Dt.location.search,k.search,{partial:!y?.exact,ignoreUndefined:!y?.explicitUndefined})?!1:y?.includeHash?pt&&Dt.location.hash===k.hash:!0}}),be=At?Ra(c,{})??H_:Lc,Re=At?Lc:Ra(f,{})??Lc,Ye=[G,be.className,Re.className].filter(Boolean).join(" "),za=(J||be.style||Re.style)&&{...J,...be.style,...Re.style},[qe,Jn]=ot.useState(!1),En=ot.useRef(!1),xe=a.reloadDocument||ht?!1:g??i.options.defaultPreload,Tn=m??i.options.defaultPreloadDelay??0,Kt=ot.useCallback(()=>{i.preloadRoute({...X}).catch(Dt=>{console.warn(Dt),console.warn(AS)})},[i,X]),Ca=ot.useCallback(Dt=>{Dt?.isIntersecting&&Kt()},[Kt]);S_(o,Ca,G_,{disabled:!!U||xe!=="viewport"}),ot.useEffect(()=>{En.current||!U&&xe==="render"&&(Kt(),En.current=!0)},[U,Kt,xe]);const Da=Dt=>{const te=Dt.currentTarget.getAttribute("target"),ee=z!==void 0?z:te;if(!U&&!Q_(Dt)&&!Dt.defaultPrevented&&(!ee||ee==="_self")&&Dt.button===0){Dt.preventDefault(),Yp.flushSync(()=>{Jn(!0)});const Fn=i.subscribe("onResolved",()=>{Fn(),Jn(!1)});i.navigate({...X,replace:h,resetScroll:A,hashScrollIntoView:S,startTransition:_,viewTransition:O,ignoreBlocker:P})}};if(ht)return{...St,ref:o,href:ht,...w&&{children:w},...z&&{target:z},...U&&{disabled:U},...J&&{style:J},...G&&{className:G},...V&&{onClick:V},...I&&{onFocus:I},...W&&{onMouseEnter:W},...Z&&{onMouseLeave:Z},...Q&&{onTouchStart:Q}};const se=Dt=>{U||xe&&Kt()},dn=se,ce=Dt=>{if(!(U||!xe))if(!Tn)Kt();else{const te=Dt.target;if(ns.has(te))return;const ee=setTimeout(()=>{ns.delete(te),Kt()},Tn);ns.set(te,ee)}},si=Dt=>{if(U||!xe||!Tn)return;const te=Dt.target,ee=ns.get(te);ee&&(clearTimeout(ee),ns.delete(te))};return{...St,...be,...Re,href:yt?.href,ref:o,onClick:as([V,Da]),onFocus:as([I,se]),onMouseEnter:as([W,ce]),onMouseLeave:as([Z,si]),onTouchStart:as([Q,dn]),disabled:!!U,target:z,...za&&{style:za},...Ye&&{className:Ye},...U&&j_,...At&&Y_,...pt&&qe&&q_}}const Lc={},H_={className:"active"},j_={role:"link","aria-disabled":!0},Y_={"data-status":"active","aria-current":"page"},q_={"data-transitioning":"transitioning"},ns=new WeakMap,G_={rootMargin:"100px"},as=a=>s=>{for(const i of a)if(i){if(s.defaultPrevented)return;i(s)}};function V_(a,s,i,o){if(!o)return s?{href:a,external:!0}:{href:i.createHref(a)||"/",external:!1}}function X_(a){if(typeof a!="string")return!1;const s=a.charCodeAt(0);return s===47?a.charCodeAt(1)!==47:s===46}const qp=ot.forwardRef((a,s)=>{const{_asChild:i,...o}=a,{type:c,...f}=B_(o,s),y=typeof o.children=="function"?o.children({isActive:f["data-status"]==="active"}):o.children;if(!i){const{disabled:p,...g}=f;return ot.createElement("a",g,y)}return ot.createElement(i,f,y)});function Q_(a){return!!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)}let Z_=class extends lp{constructor(s){super(s),this.useMatch=i=>_n({select:i?.select,from:this.id,structuralSharing:i?.structuralSharing}),this.useRouteContext=i=>_n({...i,from:this.id,select:o=>i?.select?i.select(o.context):o.context}),this.useSearch=i=>tf({select:i?.select,structuralSharing:i?.structuralSharing,from:this.id}),this.useParams=i=>Ic({select:i?.select,structuralSharing:i?.structuralSharing,from:this.id}),this.useLoaderDeps=i=>Wc({...i,from:this.id}),this.useLoaderData=i=>$c({...i,from:this.id}),this.useNavigate=()=>ef({from:this.fullPath}),this.Link=F.forwardRef((i,o)=>$.jsx(qp,{ref:o,from:this.fullPath,...i})),this.$$typeof=Symbol.for("react.memo")}};function k_(a){return new Z_(a)}class K_ extends MS{constructor(s){super(s),this.useMatch=i=>_n({select:i?.select,from:this.id,structuralSharing:i?.structuralSharing}),this.useRouteContext=i=>_n({...i,from:this.id,select:o=>i?.select?i.select(o.context):o.context}),this.useSearch=i=>tf({select:i?.select,structuralSharing:i?.structuralSharing,from:this.id}),this.useParams=i=>Ic({select:i?.select,structuralSharing:i?.structuralSharing,from:this.id}),this.useLoaderDeps=i=>Wc({...i,from:this.id}),this.useLoaderData=i=>$c({...i,from:this.id}),this.useNavigate=()=>ef({from:this.fullPath}),this.Link=F.forwardRef((i,o)=>$.jsx(qp,{ref:o,from:this.fullPath,...i})),this.$$typeof=Symbol.for("react.memo")}}function J_(a){return new K_(a)}function cs(a){return typeof a=="object"?new Ay(a,{silent:!0}).createRoute(a):new Ay(a,{silent:!0}).createRoute}class Ay{constructor(s,i){this.path=s,this.createRoute=o=>{this.silent;const c=k_(o);return c.isRoot=!1,c},this.silent=i?.silent}}class My{constructor(s){this.useMatch=i=>_n({select:i?.select,from:this.options.id,structuralSharing:i?.structuralSharing}),this.useRouteContext=i=>_n({from:this.options.id,select:o=>i?.select?i.select(o.context):o.context}),this.useSearch=i=>tf({select:i?.select,structuralSharing:i?.structuralSharing,from:this.options.id}),this.useParams=i=>Ic({select:i?.select,structuralSharing:i?.structuralSharing,from:this.options.id}),this.useLoaderDeps=i=>Wc({...i,from:this.options.id}),this.useLoaderData=i=>$c({...i,from:this.options.id}),this.useNavigate=()=>{const i=Se();return ef({from:i.routesById[this.options.id].fullPath})},this.options=s,this.$$typeof=Symbol.for("react.memo")}}function Oy(a){return typeof a=="object"?new My(a):s=>new My({id:a,...s})}function Gp(a,s){let i,o,c,f;const y=()=>(i||(i=a().then(g=>{i=void 0,o=g[s]}).catch(g=>{if(c=g,Cv(c)&&c instanceof Error&&typeof window<"u"&&typeof sessionStorage<"u"){const m=`tanstack_router_reload:${c.message}`;sessionStorage.getItem(m)||(sessionStorage.setItem(m,"1"),f=!0)}})),i),p=function(m){if(f)throw window.location.reload(),new Promise(()=>{});if(c)throw c;if(!o)if(Qr)Qr(y());else throw y();return ot.createElement(o,m)};return p.preload=y,p}function F_(){const a=Se(),s=ot.useRef({router:a,mounted:!1}),[i,o]=ot.useState(!1),{hasPendingMatches:c,isLoading:f}=ae({select:h=>({isLoading:h.isLoading,hasPendingMatches:h.matches.some(_=>_.status==="pending")}),structuralSharing:!0}),y=Mc(f),p=f||i||c,g=Mc(p),m=f||c,S=Mc(m);return a.startTransition=h=>{o(!0),ot.startTransition(()=>{h(),o(!1)})},ot.useEffect(()=>{const h=a.history.subscribe(a.load),_=a.buildLocation({to:a.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Qn(a.latestLocation.publicHref)!==Qn(_.publicHref)&&a.commitLocation({..._,replace:!0}),()=>{h()}},[a,a.history]),Or(()=>{if(typeof window<"u"&&a.ssr||s.current.router===a&&s.current.mounted)return;s.current={router:a,mounted:!0},(async()=>{try{await a.load()}catch(_){console.error(_)}})()},[a]),Or(()=>{y&&!f&&a.emit({type:"onLoad",...al(a.state)})},[y,a,f]),Or(()=>{S&&!m&&a.emit({type:"onBeforeRouteMount",...al(a.state)})},[m,S,a]),Or(()=>{if(g&&!p){const h=al(a.state);a.emit({type:"onResolved",...h}),a.__store.setState(_=>({..._,status:"idle",resolvedLocation:_.location})),h.hrefChanged&&lS(a)}},[p,g,a]),null}function P_(a){const s=ae({select:i=>`not-found-${i.location.pathname}-${i.status}`});return $.jsx(Fc,{getResetKey:()=>s,onCatch:(i,o)=>{if(Te(i))a.onCatch?.(i,o);else throw i},errorComponent:({error:i})=>{if(Te(i))return a.fallback?.(i);throw i},children:a.children})}function $_(){return $.jsx("p",{children:"Not Found"})}function $l(a){return $.jsx($.Fragment,{children:a.children})}function Vp(a,s,i){return s.options.notFoundComponent?$.jsx(s.options.notFoundComponent,{...i}):a.options.defaultNotFoundComponent?$.jsx(a.options.defaultNotFoundComponent,{...i}):$.jsx($_,{})}function W_(){return Se().isScrollRestoring,null}const Xp=ot.memo(function({matchId:s}){const i=Se(),o=ae({select:w=>{const z=w.matches.findIndex(J=>J.id===s),U=w.matches[z];return je(U),{routeId:U.routeId,ssr:U.ssr,_displayPending:U._displayPending,resetKey:w.loadedAt,parentRouteId:w.matches[z-1]?.routeId}},structuralSharing:!0}),c=i.routesById[o.routeId],f=c.options.pendingComponent??i.options.defaultPendingComponent,y=f?$.jsx(f,{}):null,p=c.options.errorComponent??i.options.defaultErrorComponent,g=c.options.onCatch??i.options.defaultOnCatch,m=c.isRoot?c.options.notFoundComponent??i.options.notFoundRoute?.options.component:c.options.notFoundComponent,S=o.ssr===!1||o.ssr==="data-only",h=(!c.isRoot||c.options.wrapInSuspense||S)&&(c.options.wrapInSuspense??f??(c.options.errorComponent?.preload||S))?ot.Suspense:$l,_=p?Fc:$l,A=m?P_:$l,O=c.isRoot?c.options.shellComponent??$l:$l;return $.jsxs(O,{children:[$.jsx(Ir.Provider,{value:s,children:$.jsx(h,{fallback:y,children:$.jsx(_,{getResetKey:()=>o.resetKey,errorComponent:p||Pc,onCatch:(w,z)=>{if(Te(w))throw w;g?.(w,z)},children:$.jsx(A,{fallback:w=>{if(!m||w.routeId&&w.routeId!==o.routeId||!w.routeId&&!c.isRoot)throw w;return ot.createElement(m,w)},children:S||o._displayPending?$.jsx(x_,{fallback:y,children:$.jsx(zy,{matchId:s})}):$.jsx(zy,{matchId:s})})})})}),o.parentRouteId===ln&&i.options.scrollRestoration?$.jsxs($.Fragment,{children:[$.jsx(I_,{}),$.jsx(W_,{})]}):null]})});function I_(){const a=Se(),s=ot.useRef(void 0);return $.jsx("script",{suppressHydrationWarning:!0,ref:i=>{i&&(s.current===void 0||s.current.href!==a.latestLocation.href)&&(a.emit({type:"onRendered",...al(a.state)}),s.current=a.latestLocation)}},a.latestLocation.state.__TSR_key)}const zy=ot.memo(function({matchId:s}){const i=Se(),{match:o,key:c,routeId:f}=ae({select:g=>{const m=g.matches.find(O=>O.id===s),S=m.routeId,_=(i.routesById[S].options.remountDeps??i.options.defaultRemountDeps)?.({routeId:S,loaderDeps:m.loaderDeps,params:m._strictParams,search:m._strictSearch});return{key:_?JSON.stringify(_):void 0,routeId:S,match:{id:m.id,status:m.status,error:m.error,invalid:m.invalid,_forcePending:m._forcePending,_displayPending:m._displayPending}}},structuralSharing:!0}),y=i.routesById[f],p=ot.useMemo(()=>{const g=y.options.component??i.options.defaultComponent;return g?$.jsx(g,{},c):$.jsx(t2,{})},[c,y.options.component,i.options.defaultComponent]);if(o._displayPending)throw i.getMatch(o.id)?._nonReactive.displayPendingPromise;if(o._forcePending)throw i.getMatch(o.id)?._nonReactive.minPendingPromise;if(o.status==="pending"){const g=y.options.pendingMinMs??i.options.defaultPendingMinMs;if(g){const m=i.getMatch(o.id);if(m&&!m._nonReactive.minPendingPromise){const S=ll();m._nonReactive.minPendingPromise=S,setTimeout(()=>{S.resolve(),m._nonReactive.minPendingPromise=void 0},g)}}throw i.getMatch(o.id)?._nonReactive.loadPromise}if(o.status==="notFound")return je(Te(o.error)),Vp(i,y,o.error);if(o.status==="redirected")throw je(sn(o.error)),i.getMatch(o.id)?._nonReactive.loadPromise;if(o.status==="error")throw o.error;return p}),t2=ot.memo(function(){const s=Se(),i=ot.useContext(Ir),o=ae({select:m=>m.matches.find(S=>S.id===i)?.routeId}),c=s.routesById[o],f=ae({select:m=>{const h=m.matches.find(_=>_.id===i);return je(h),h.globalNotFound}}),y=ae({select:m=>{const S=m.matches,h=S.findIndex(_=>_.id===i);return S[h+1]?.id}}),p=s.options.defaultPendingComponent?$.jsx(s.options.defaultPendingComponent,{}):null;if(f)return Vp(s,c,void 0);if(!y)return null;const g=$.jsx(Xp,{matchId:y});return o===ln?$.jsx(ot.Suspense,{fallback:p,children:g}):g});function e2(){const a=Se(),i=a.routesById[ln].options.pendingComponent??a.options.defaultPendingComponent,o=i?$.jsx(i,{}):null,c=typeof document<"u"&&a.ssr?$l:ot.Suspense,f=$.jsxs(c,{fallback:o,children:[$.jsx(F_,{}),$.jsx(n2,{})]});return a.options.InnerWrap?$.jsx(a.options.InnerWrap,{children:f}):f}function n2(){const a=Se(),s=ae({select:c=>c.matches[0]?.id}),i=ae({select:c=>c.loadedAt}),o=s?$.jsx(Xp,{matchId:s}):null;return $.jsx(Ir.Provider,{value:s,children:a.options.disableGlobalCatchBoundary?o:$.jsx(Fc,{getResetKey:()=>i,errorComponent:Pc,onCatch:c=>{c.message||c.toString()},children:o})})}const a2=a=>new l2(a);class l2 extends SS{constructor(s){super(s)}}typeof globalThis<"u"?(globalThis.createFileRoute=cs,globalThis.createLazyFileRoute=Oy):typeof window<"u"&&(window.createFileRoute=cs,window.createLazyFileRoute=Oy);function i2({router:a,children:s,...i}){Object.keys(i).length>0&&a.update({...a.options,...i,context:{...a.options.context,...i.context}});const o=jp(),c=$.jsx(o.Provider,{value:a,children:s});return a.options.Wrap?$.jsx(a.options.Wrap,{children:c}):c}function s2({router:a,...s}){return $.jsx(i2,{router:a,...s,children:$.jsx(e2,{})})}function Qp({tag:a,attrs:s,children:i,nonce:o}){switch(a){case"title":return $.jsx("title",{...s,suppressHydrationWarning:!0,children:i});case"meta":return $.jsx("meta",{...s,suppressHydrationWarning:!0});case"link":return $.jsx("link",{...s,nonce:o,suppressHydrationWarning:!0});case"style":return $.jsx("style",{...s,dangerouslySetInnerHTML:{__html:i},nonce:o});case"script":return $.jsx(r2,{attrs:s,children:i});default:return null}}function r2({attrs:a,children:s}){Se(),ot.useEffect(()=>{if(a?.src){const i=(()=>{try{const f=document.baseURI||window.location.href;return new URL(a.src,f).href}catch{return a.src}})();if(Array.from(document.querySelectorAll("script[src]")).find(f=>f.src===i))return;const c=document.createElement("script");for(const[f,y]of Object.entries(a))f!=="suppressHydrationWarning"&&y!==void 0&&y!==!1&&c.setAttribute(f,typeof y=="boolean"?"":String(y));return document.head.appendChild(c),()=>{c.parentNode&&c.parentNode.removeChild(c)}}if(typeof s=="string"){const i=typeof a?.type=="string"?a.type:"text/javascript",o=typeof a?.nonce=="string"?a.nonce:void 0;if(Array.from(document.querySelectorAll("script:not([src])")).find(y=>{if(!(y instanceof HTMLScriptElement))return!1;const p=y.getAttribute("type")??"text/javascript",g=y.getAttribute("nonce")??void 0;return y.textContent===s&&p===i&&g===o}))return;const f=document.createElement("script");if(f.textContent=s,a)for(const[y,p]of Object.entries(a))y!=="suppressHydrationWarning"&&p!==void 0&&p!==!1&&f.setAttribute(y,typeof p=="boolean"?"":String(p));return document.head.appendChild(f),()=>{f.parentNode&&f.parentNode.removeChild(f)}}},[a,s]);{const{src:i,...o}=a||{};return $.jsx("script",{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:""},...o})}}const o2=()=>{const a=Se(),s=a.options.ssr?.nonce,i=ae({select:g=>g.matches.map(m=>m.meta).filter(Boolean)}),o=ot.useMemo(()=>{const g=[],m={};let S;for(let h=i.length-1;h>=0;h--){const _=i[h];for(let A=_.length-1;A>=0;A--){const O=_[A];if(O)if(O.title)S||(S={tag:"title",children:O.title});else if("script:ld+json"in O)try{const w=JSON.stringify(O["script:ld+json"]);g.push({tag:"script",attrs:{type:"application/ld+json"},children:Uv(w)})}catch{}else{const w=O.name??O.property;if(w){if(m[w])continue;m[w]=!0}g.push({tag:"meta",attrs:{...O,nonce:s}})}}}return S&&g.push(S),s&&g.push({tag:"meta",attrs:{property:"csp-nonce",content:s}}),g.reverse(),g},[i,s]),c=ae({select:g=>{const m=g.matches.map(_=>_.links).filter(Boolean).flat(1).map(_=>({tag:"link",attrs:{..._,nonce:s}})),S=a.ssr?.manifest,h=g.matches.map(_=>S?.routes[_.routeId]?.assets??[]).filter(Boolean).flat(1).filter(_=>_.tag==="link").map(_=>({tag:"link",attrs:{..._.attrs,suppressHydrationWarning:!0,nonce:s}}));return[...m,...h]},structuralSharing:!0}),f=ae({select:g=>{const m=[];return g.matches.map(S=>a.looseRoutesById[S.routeId]).forEach(S=>a.ssr?.manifest?.routes[S.id]?.preloads?.filter(Boolean).forEach(h=>{m.push({tag:"link",attrs:{rel:"modulepreload",href:h,nonce:s}})})),m},structuralSharing:!0}),y=ae({select:g=>g.matches.map(m=>m.styles).flat(1).filter(Boolean).map(({children:m,...S})=>({tag:"style",attrs:{...S,nonce:s},children:m})),structuralSharing:!0}),p=ae({select:g=>g.matches.map(m=>m.headScripts).flat(1).filter(Boolean).map(({children:m,...S})=>({tag:"script",attrs:{...S,nonce:s},children:m})),structuralSharing:!0});return u2([...o,...f,...c,...y,...p],g=>JSON.stringify(g))};function u2(a,s){const i=new Set;return a.filter(o=>{const c=s(o);return i.has(c)?!1:(i.add(c),!0)})}function c2(){const a=o2(),i=Se().options.ssr?.nonce;return $.jsx($.Fragment,{children:a.map(o=>ot.createElement(Qp,{...o,key:`tsr-meta-${JSON.stringify(o)}`,nonce:i}))})}const f2=()=>{const a=Se(),s=a.options.ssr?.nonce,i=ae({select:y=>{const p=[],g=a.ssr?.manifest;return g?(y.matches.map(m=>a.looseRoutesById[m.routeId]).forEach(m=>g.routes[m.id]?.assets?.filter(S=>S.tag==="script").forEach(S=>{p.push({tag:"script",attrs:{...S.attrs,nonce:s},children:S.children})})),p):[]},structuralSharing:!0}),{scripts:o}=ae({select:y=>({scripts:y.matches.map(p=>p.scripts).flat(1).filter(Boolean).map(({children:p,...g})=>({tag:"script",attrs:{...g,suppressHydrationWarning:!0,nonce:s},children:p}))}),structuralSharing:!0});let c;a.serverSsr&&(c=a.serverSsr.takeBufferedScripts());const f=[...o,...i];return c&&f.unshift(c),$.jsx($.Fragment,{children:f.map((y,p)=>ot.createElement(Qp,{...y,key:`tsr-scripts-${y.tag}-${p}`}))})};function d2(a,s){a.id=s.i,a.__beforeLoadContext=s.b,a.loaderData=s.l,a.status=s.s,a.ssr=s.ssr,a.updatedAt=s.u,a.error=s.e}async function h2(a){je(window.$_TSR);const s=a.options.serializationAdapters;if(s?.length){const w=new Map;s.forEach(z=>{w.set(z.key,z.fromSerializable)}),window.$_TSR.t=w,window.$_TSR.buffer.forEach(z=>z())}window.$_TSR.initialized=!0,je(window.$_TSR.router);const{manifest:i,dehydratedData:o,lastMatchId:c}=window.$_TSR.router;a.ssr={manifest:i};const y=document.querySelector('meta[property="csp-nonce"]')?.content;a.options.ssr={nonce:y};const p=a.matchRoutes(a.state.location),g=Promise.all(p.map(w=>{const z=a.looseRoutesById[w.routeId];return a.loadRouteChunk(z)}));function m(w){const U=a.looseRoutesById[w.routeId].options.pendingMinMs??a.options.defaultPendingMinMs;if(U){const J=ll();w._nonReactive.minPendingPromise=J,w._forcePending=!0,setTimeout(()=>{J.resolve(),a.updateMatch(w.id,G=>(G._nonReactive.minPendingPromise=void 0,{...G,_forcePending:void 0}))},U)}}function S(w){const z=a.looseRoutesById[w.routeId];z&&(z.options.ssr=w.ssr)}let h;p.forEach(w=>{const z=window.$_TSR.router.matches.find(U=>U.i===w.id);if(!z){w._nonReactive.dehydrated=!1,w.ssr=!1,S(w);return}d2(w,z),S(w),w._nonReactive.dehydrated=w.ssr!==!1,(w.ssr==="data-only"||w.ssr===!1)&&h===void 0&&(h=w.index,m(w))}),a.__store.setState(w=>({...w,matches:p})),await a.options.hydrate?.(o),await Promise.all(a.state.matches.map(async w=>{try{const z=a.looseRoutesById[w.routeId],J=a.state.matches[w.index-1]?.context??a.options.context;if(z.options.context){const W={deps:w.loaderDeps,params:w.params,context:J??{},location:a.state.location,navigate:Z=>a.navigate({...Z,_fromLocation:a.state.location}),buildLocation:a.buildLocation,cause:w.cause,abortController:w.abortController,preload:!1,matches:p};w.__routeContext=z.options.context(W)??void 0}w.context={...J,...w.__routeContext,...w.__beforeLoadContext};const G={ssr:a.options.ssr,matches:a.state.matches,match:w,params:w.params,loaderData:w.loaderData},V=await z.options.head?.(G),I=await z.options.scripts?.(G);w.meta=V?.meta,w.links=V?.links,w.headScripts=V?.scripts,w.styles=V?.styles,w.scripts=I}catch(z){if(Te(z))w.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${w.routeId}`,z);else throw w.error=z,console.error(`Error during hydration for route ${w.routeId}:`,z),z}}));const _=p[p.length-1].id!==c;if(!p.some(w=>w.ssr===!1)&&!_)return p.forEach(w=>{w._nonReactive.dehydrated=void 0}),g;const O=Promise.resolve().then(()=>a.load()).catch(w=>{console.error("Error during router hydration:",w)});if(_){const w=p[1];je(w),m(w),w._displayPending=!0,w._nonReactive.displayPendingPromise=O,O.then(()=>{Il(()=>{a.__store.state.status==="pending"&&a.__store.setState(z=>({...z,status:"idle",resolvedLocation:z.location})),a.updateMatch(w.id,z=>({...z,_displayPending:void 0,displayPendingPromise:void 0}))})})}return g}const m2="__TSS_CONTEXT",qc=Symbol.for("TSS_SERVER_FUNCTION"),y2="x-tss-serialized",p2="x-tss-raw",Zp="application/x-tss-framed",Xn={JSON:0,CHUNK:1,END:2,ERROR:3},Pl=9,Cy=1,g2=/;\s*v=(\d+)/;function v2(a){const s=a.match(g2);return s?parseInt(s[1],10):void 0}function S2(a){const s=v2(a);if(s!==void 0&&s!==Cy)throw new Error(`Incompatible framed protocol version: server=${s}, client=${Cy}. Please ensure client and server are using compatible versions.`)}const kp=()=>window.__TSS_START_OPTIONS__;function b2(){return[...kp()?.serializationAdapters?.map(n_)??[],...g_]}const Dy=new TextDecoder,_2=new Uint8Array(0),Ny=16*1024*1024,Ly=32*1024*1024,Uy=1024,By=1e5;function E2(a){const s=new Map,i=new Map,o=new Set;let c=!1,f=null,y=0,p;const g=new ReadableStream({start(h){p=h},cancel(){c=!0;try{f?.cancel()}catch{}s.forEach(h=>{try{h.error(new Error("Framed response cancelled"))}catch{}}),s.clear(),i.clear(),o.clear()}});function m(h){const _=i.get(h);if(_)return _;if(o.has(h))return new ReadableStream({start(O){O.close()}});if(i.size>=Uy)throw new Error(`Too many raw streams in framed response (max ${Uy})`);const A=new ReadableStream({start(O){s.set(h,O)},cancel(){o.add(h),s.delete(h),i.delete(h)}});return i.set(h,A),A}function S(h){return m(h),s.get(h)}return(async()=>{const h=a.getReader();f=h;const _=[];let A=0;function O(){if(A=Pl){const Z=z[0],Q=(z[1]<<24|z[2]<<16|z[3]<<8|z[4])>>>0,P=(z[5]<<24|z[6]<<16|z[7]<<8|z[8])>>>0;return{type:Z,streamId:Q,length:P}}const U=new Uint8Array(Pl);let J=0,G=Pl;for(let Z=0;Z<_.length&&G>0;Z++){const Q=_[Z],P=Math.min(Q.length,G);U.set(Q.subarray(0,P),J),J+=P,G-=P}const V=U[0],I=(U[1]<<24|U[2]<<16|U[3]<<8|U[4])>>>0,W=(U[5]<<24|U[6]<<16|U[7]<<8|U[8])>>>0;return{type:V,streamId:I,length:W}}function w(z){if(z===0)return _2;const U=new Uint8Array(z);let J=0,G=z;for(;G>0&&_.length>0;){const V=_[0];if(!V)break;const I=Math.min(V.length,G);U.set(V.subarray(0,I),J),J+=I,G-=I,I===V.length?_.shift():_[0]=V.subarray(I)}return A-=z,U}try{for(;;){const{done:z,value:U}=await h.read();if(c||z)break;if(U){if(A+U.length>Ly)throw new Error(`Framed response buffer exceeded ${Ly} bytes`);for(_.push(U),A+=U.length;;){const J=O();if(!J)break;const{type:G,streamId:V,length:I}=J;if(G!==Xn.JSON&&G!==Xn.CHUNK&&G!==Xn.END&&G!==Xn.ERROR)throw new Error(`Unknown frame type: ${G}`);if(G===Xn.JSON){if(V!==0)throw new Error("Invalid JSON frame streamId (expected 0)")}else if(V===0)throw new Error("Invalid raw frame streamId (expected non-zero)");if(I>Ny)throw new Error(`Frame payload too large: ${I} bytes (max ${Ny})`);const W=Pl+I;if(ABy)throw new Error(`Too many frames in framed response (max ${By})`);w(Pl);const Z=w(I);switch(G){case Xn.JSON:{try{p.enqueue(Dy.decode(Z))}catch{}break}case Xn.CHUNK:{const Q=S(V);Q&&Q.enqueue(Z);break}case Xn.END:{const Q=S(V);if(o.add(V),Q){try{Q.close()}catch{}s.delete(V)}break}case Xn.ERROR:{const Q=S(V);if(o.add(V),Q){const P=Dy.decode(Z);Q.error(new Error(P)),s.delete(V)}break}}}}}if(A!==0)throw new Error("Incomplete frame at end of framed response");try{p.close()}catch{}s.forEach(z=>{try{z.close()}catch{}}),s.clear()}catch(z){try{p.error(z)}catch{}s.forEach(U=>{try{U.error(z)}catch{}}),s.clear()}finally{try{h.releaseLock()}catch{}f=null}})(),{getOrCreateStream:m,jsonChunks:g}}let li=null;const T2=Object.prototype.hasOwnProperty;function Kp(a){for(const s in a)if(T2.call(a,s))return!0;return!1}async function R2(a,s,i){li||(li=b2());const c=s[0],f=c.fetch??i,y=c.data instanceof FormData?"formData":"payload",p=c.headers?new Headers(c.headers):new Headers;if(p.set("x-tsr-serverFn","true"),y==="payload"&&p.set("accept",`${Zp}, application/x-ndjson, application/json`),c.method==="GET"){if(y==="formData")throw new Error("FormData is not supported with GET requests");const m=await Jp(c);if(m!==void 0){const S=Fy({payload:m});a.includes("?")?a+=`&${S}`:a+=`?${S}`}}let g;if(c.method==="POST"){const m=await x2(c);m?.contentType&&p.set("content-type",m.contentType),g=m?.body}return await w2(async()=>f(a,{method:c.method,headers:p,signal:c.signal,body:g}))}async function Jp(a){let s=!1;const i={};if(a.data!==void 0&&(s=!0,i.data=a.data),a.context&&Kp(a.context)&&(s=!0,i.context=a.context),s)return Fp(i)}async function Fp(a){return JSON.stringify(await Promise.resolve(e_(a,{plugins:li})))}async function x2(a){if(a.data instanceof FormData){let i;return a.context&&Kp(a.context)&&(i=await Fp(a.context)),i!==void 0&&a.data.set(m2,i),{body:a.data}}const s=await Jp(a);if(s)return{body:s,contentType:"application/json"}}async function w2(a){let s;try{s=await a()}catch(c){if(c instanceof Response)s=c;else throw console.log(c),c}if(s.headers.get(p2)==="true")return s;const i=s.headers.get("content-type");if(je(i),!!s.headers.get(y2)){let c;if(i.includes(Zp)){if(S2(i),!s.body)throw new Error("No response body for framed response");const{getOrCreateStream:f,jsonChunks:y}=E2(s.body),g=[p_(f),...li||[]],m=new Map;c=await M2({jsonStream:y,onMessage:S=>Ac(S,{refs:m,plugins:g}),onError(S,h){console.error(S,h)}})}else if(i.includes("application/x-ndjson")){const f=new Map;c=await A2({response:s,onMessage:y=>Ac(y,{refs:f,plugins:li}),onError(y,p){console.error(y,p)}})}else if(i.includes("application/json")){const f=await s.json();c=Ac(f,{plugins:li})}if(je(c),c instanceof Error)throw c;return c}if(i.includes("application/json")){const c=await s.json(),f=cS(c);if(f)throw f;if(Te(c))throw c;return c}if(!s.ok)throw new Error(await s.text());return s}async function A2({response:a,onMessage:s,onError:i}){if(!a.body)throw new Error("No response body");const o=a.body.pipeThrough(new TextDecoderStream).getReader();let c="",f=!1,y;for(;!f;){const{value:p,done:g}=await o.read();if(p&&(c+=p),c.length===0&&g)throw new Error("Stream ended before first object");if(c.endsWith(` +`)){const m=c.split(` +`).filter(Boolean),S=m[0];if(!S)throw new Error("No JSON line in the first chunk");y=JSON.parse(S),f=!0,c=m.slice(1).join(` +`)}else{const m=c.indexOf(` +`);if(m>=0){const S=c.slice(0,m).trim();c=c.slice(m+1),S.length>0&&(y=JSON.parse(S),f=!0)}}}return(async()=>{try{for(;;){const{value:p,done:g}=await o.read();p&&(c+=p);const m=c.lastIndexOf(` +`);if(m>=0){const S=c.slice(0,m);c=c.slice(m+1);const h=S.split(` +`).filter(Boolean);for(const _ of h)try{s(JSON.parse(_))}catch(A){i?.(`Invalid JSON line: ${_}`,A)}}if(g)break}}catch(p){i?.("Stream processing error:",p)}})(),s(y)}async function M2({jsonStream:a,onMessage:s,onError:i}){const o=a.getReader(),{value:c,done:f}=await o.read();if(f||!c)throw new Error("Stream ended before first object");const y=JSON.parse(c);return(async()=>{try{for(;;){const{value:p,done:g}=await o.read();if(g)break;if(p)try{s(JSON.parse(p))}catch(m){i?.(`Invalid JSON: ${p}`,m)}}}catch(p){i?.("Stream processing error:",p)}})(),s(y)}function O2(a){const s="/_serverFn/"+a;return Object.assign((...c)=>{const f=kp()?.serverFns?.fetch;return R2(s,c,f??fetch)},{url:s,serverFnMeta:{id:a},[qc]:!0})}const z2={key:"$TSS/serverfn",test:a=>typeof a!="function"||!(qc in a)?!1:!!a[qc],toSerializable:({serverFnMeta:a})=>({functionId:a.id}),fromSerializable:({functionId:a})=>O2(a)};function C2(a){if(typeof document>"u")return;let s=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",s.appendChild(i),i.styleSheet?i.styleSheet.cssText=a:i.appendChild(document.createTextNode(a))}const D2=a=>{switch(a){case"success":return U2;case"info":return H2;case"warning":return B2;case"error":return j2;default:return null}},N2=Array(12).fill(0),L2=({visible:a,className:s})=>F.createElement("div",{className:["sonner-loading-wrapper",s].filter(Boolean).join(" "),"data-visible":a},F.createElement("div",{className:"sonner-spinner"},N2.map((i,o)=>F.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${o}`})))),U2=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),B2=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),H2=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),j2=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},F.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Y2=F.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},F.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),F.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),q2=()=>{const[a,s]=F.useState(document.hidden);return F.useEffect(()=>{const i=()=>{s(document.hidden)};return document.addEventListener("visibilitychange",i),()=>window.removeEventListener("visibilitychange",i)},[]),a};let Gc=1;class G2{constructor(){this.subscribe=s=>(this.subscribers.push(s),()=>{const i=this.subscribers.indexOf(s);this.subscribers.splice(i,1)}),this.publish=s=>{this.subscribers.forEach(i=>i(s))},this.addToast=s=>{this.publish(s),this.toasts=[...this.toasts,s]},this.create=s=>{var i;const{message:o,...c}=s,f=typeof s?.id=="number"||((i=s.id)==null?void 0:i.length)>0?s.id:Gc++,y=this.toasts.find(g=>g.id===f),p=s.dismissible===void 0?!0:s.dismissible;return this.dismissedToasts.has(f)&&this.dismissedToasts.delete(f),y?this.toasts=this.toasts.map(g=>g.id===f?(this.publish({...g,...s,id:f,title:o}),{...g,...s,id:f,dismissible:p,title:o}):g):this.addToast({title:o,...c,dismissible:p,id:f}),f},this.dismiss=s=>(s?(this.dismissedToasts.add(s),requestAnimationFrame(()=>this.subscribers.forEach(i=>i({id:s,dismiss:!0})))):this.toasts.forEach(i=>{this.subscribers.forEach(o=>o({id:i.id,dismiss:!0}))}),s),this.message=(s,i)=>this.create({...i,message:s}),this.error=(s,i)=>this.create({...i,message:s,type:"error"}),this.success=(s,i)=>this.create({...i,type:"success",message:s}),this.info=(s,i)=>this.create({...i,type:"info",message:s}),this.warning=(s,i)=>this.create({...i,type:"warning",message:s}),this.loading=(s,i)=>this.create({...i,type:"loading",message:s}),this.promise=(s,i)=>{if(!i)return;let o;i.loading!==void 0&&(o=this.create({...i,promise:s,type:"loading",message:i.loading,description:typeof i.description!="function"?i.description:void 0}));const c=Promise.resolve(s instanceof Function?s():s);let f=o!==void 0,y;const p=c.then(async m=>{if(y=["resolve",m],F.isValidElement(m))f=!1,this.create({id:o,type:"default",message:m});else if(X2(m)&&!m.ok){f=!1;const h=typeof i.error=="function"?await i.error(`HTTP error! status: ${m.status}`):i.error,_=typeof i.description=="function"?await i.description(`HTTP error! status: ${m.status}`):i.description,O=typeof h=="object"&&!F.isValidElement(h)?h:{message:h};this.create({id:o,type:"error",description:_,...O})}else if(m instanceof Error){f=!1;const h=typeof i.error=="function"?await i.error(m):i.error,_=typeof i.description=="function"?await i.description(m):i.description,O=typeof h=="object"&&!F.isValidElement(h)?h:{message:h};this.create({id:o,type:"error",description:_,...O})}else if(i.success!==void 0){f=!1;const h=typeof i.success=="function"?await i.success(m):i.success,_=typeof i.description=="function"?await i.description(m):i.description,O=typeof h=="object"&&!F.isValidElement(h)?h:{message:h};this.create({id:o,type:"success",description:_,...O})}}).catch(async m=>{if(y=["reject",m],i.error!==void 0){f=!1;const S=typeof i.error=="function"?await i.error(m):i.error,h=typeof i.description=="function"?await i.description(m):i.description,A=typeof S=="object"&&!F.isValidElement(S)?S:{message:S};this.create({id:o,type:"error",description:h,...A})}}).finally(()=>{f&&(this.dismiss(o),o=void 0),i.finally==null||i.finally.call(i)}),g=()=>new Promise((m,S)=>p.then(()=>y[0]==="reject"?S(y[1]):m(y[1])).catch(S));return typeof o!="string"&&typeof o!="number"?{unwrap:g}:Object.assign(o,{unwrap:g})},this.custom=(s,i)=>{const o=i?.id||Gc++;return this.create({jsx:s(o),id:o,...i}),o},this.getActiveToasts=()=>this.toasts.filter(s=>!this.dismissedToasts.has(s.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const He=new G2,V2=(a,s)=>{const i=s?.id||Gc++;return He.addToast({title:a,...s,id:i}),i},X2=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",Q2=V2,Z2=()=>He.toasts,k2=()=>He.getActiveToasts(),OE=Object.assign(Q2,{success:He.success,info:He.info,warning:He.warning,error:He.error,custom:He.custom,message:He.message,promise:He.promise,dismiss:He.dismiss,loading:He.loading},{getHistory:Z2,getToasts:k2});C2("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function zr(a){return a.label!==void 0}const K2=3,J2="24px",F2="16px",Hy=4e3,P2=356,$2=14,W2=45,I2=200;function Sn(...a){return a.filter(Boolean).join(" ")}function tE(a){const[s,i]=a.split("-"),o=[];return s&&o.push(s),i&&o.push(i),o}const eE=a=>{var s,i,o,c,f,y,p,g,m;const{invert:S,toast:h,unstyled:_,interacting:A,setHeights:O,visibleToasts:w,heights:z,index:U,toasts:J,expanded:G,removeToast:V,defaultRichColors:I,closeButton:W,style:Z,cancelButtonStyle:Q,actionButtonStyle:P,className:dt="",descriptionClassName:it="",duration:ct,position:at,gap:bt,expandByDefault:wt,classNames:N,icons:K,closeButtonAriaLabel:lt="Close toast"}=a,[St,pt]=F.useState(null),[R,j]=F.useState(null),[X,k]=F.useState(!1),[tt,rt]=F.useState(!1),[yt,ht]=F.useState(!1),[At,be]=F.useState(!1),[Re,Ye]=F.useState(!1),[za,qe]=F.useState(0),[Jn,En]=F.useState(0),xe=F.useRef(h.duration||ct||Hy),Tn=F.useRef(null),Kt=F.useRef(null),Ca=U===0,Da=U+1<=w,se=h.type,dn=h.dismissible!==!1,ce=h.className||"",si=h.descriptionClassName||"",Dt=F.useMemo(()=>z.findIndex(ft=>ft.toastId===h.id)||0,[z,h.id]),te=F.useMemo(()=>{var ft;return(ft=h.closeButton)!=null?ft:W},[h.closeButton,W]),ee=F.useMemo(()=>h.duration||ct||Hy,[h.duration,ct]),Fn=F.useRef(0),Rn=F.useRef(0),hs=F.useRef(0),Pn=F.useRef(null),[Na,_e]=at.split("-"),rn=F.useMemo(()=>z.reduce((ft,Vt,re)=>re>=Dt?ft:ft+Vt.height,0),[z,Dt]),pe=q2(),eo=h.invert||S,ri=se==="loading";Rn.current=F.useMemo(()=>Dt*bt+rn,[Dt,rn]),F.useEffect(()=>{xe.current=ee},[ee]),F.useEffect(()=>{k(!0)},[]),F.useEffect(()=>{const ft=Kt.current;if(ft){const Vt=ft.getBoundingClientRect().height;return En(Vt),O(re=>[{toastId:h.id,height:Vt,position:h.position},...re]),()=>O(re=>re.filter(ge=>ge.toastId!==h.id))}},[O,h.id]),F.useLayoutEffect(()=>{if(!X)return;const ft=Kt.current,Vt=ft.style.height;ft.style.height="auto";const re=ft.getBoundingClientRect().height;ft.style.height=Vt,En(re),O(ge=>ge.find(Qt=>Qt.toastId===h.id)?ge.map(Qt=>Qt.toastId===h.id?{...Qt,height:re}:Qt):[{toastId:h.id,height:re,position:h.position},...ge])},[X,h.title,h.description,O,h.id,h.jsx,h.action,h.cancel]);const hn=F.useCallback(()=>{rt(!0),qe(Rn.current),O(ft=>ft.filter(Vt=>Vt.toastId!==h.id)),setTimeout(()=>{V(h)},I2)},[h,V,O,Rn]);F.useEffect(()=>{if(h.promise&&se==="loading"||h.duration===1/0||h.type==="loading")return;let ft;return G||A||pe?(()=>{if(hs.current{h.onAutoClose==null||h.onAutoClose.call(h,h),hn()},xe.current)),()=>clearTimeout(ft)},[G,A,h,se,pe,hn]),F.useEffect(()=>{h.delete&&(hn(),h.onDismiss==null||h.onDismiss.call(h,h))},[hn,h.delete]);function ul(){var ft;if(K?.loading){var Vt;return F.createElement("div",{className:Sn(N?.loader,h==null||(Vt=h.classNames)==null?void 0:Vt.loader,"sonner-loader"),"data-visible":se==="loading"},K.loading)}return F.createElement(L2,{className:Sn(N?.loader,h==null||(ft=h.classNames)==null?void 0:ft.loader),visible:se==="loading"})}const cl=h.icon||K?.[se]||D2(se);var La,mn;return F.createElement("li",{tabIndex:0,ref:Kt,className:Sn(dt,ce,N?.toast,h==null||(s=h.classNames)==null?void 0:s.toast,N?.default,N?.[se],h==null||(i=h.classNames)==null?void 0:i[se]),"data-sonner-toast":"","data-rich-colors":(La=h.richColors)!=null?La:I,"data-styled":!(h.jsx||h.unstyled||_),"data-mounted":X,"data-promise":!!h.promise,"data-swiped":Re,"data-removed":tt,"data-visible":Da,"data-y-position":Na,"data-x-position":_e,"data-index":U,"data-front":Ca,"data-swiping":yt,"data-dismissible":dn,"data-type":se,"data-invert":eo,"data-swipe-out":At,"data-swipe-direction":R,"data-expanded":!!(G||wt&&X),"data-testid":h.testId,style:{"--index":U,"--toasts-before":U,"--z-index":J.length-U,"--offset":`${tt?za:Rn.current}px`,"--initial-height":wt?"auto":`${Jn}px`,...Z,...h.style},onDragEnd:()=>{ht(!1),pt(null),Pn.current=null},onPointerDown:ft=>{ft.button!==2&&(ri||!dn||(Tn.current=new Date,qe(Rn.current),ft.target.setPointerCapture(ft.pointerId),ft.target.tagName!=="BUTTON"&&(ht(!0),Pn.current={x:ft.clientX,y:ft.clientY})))},onPointerUp:()=>{var ft,Vt,re;if(At||!dn)return;Pn.current=null;const ge=Number(((ft=Kt.current)==null?void 0:ft.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),$n=Number(((Vt=Kt.current)==null?void 0:Vt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Qt=new Date().getTime()-((re=Tn.current)==null?void 0:re.getTime()),we=St==="x"?ge:$n,Ua=Math.abs(we)/Qt;if(Math.abs(we)>=W2||Ua>.11){qe(Rn.current),h.onDismiss==null||h.onDismiss.call(h,h),j(St==="x"?ge>0?"right":"left":$n>0?"down":"up"),hn(),be(!0);return}else{var Ae,Me;(Ae=Kt.current)==null||Ae.style.setProperty("--swipe-amount-x","0px"),(Me=Kt.current)==null||Me.style.setProperty("--swipe-amount-y","0px")}Ye(!1),ht(!1),pt(null)},onPointerMove:ft=>{var Vt,re,ge;if(!Pn.current||!dn||((Vt=window.getSelection())==null?void 0:Vt.toString().length)>0)return;const Qt=ft.clientY-Pn.current.y,we=ft.clientX-Pn.current.x;var Ua;const Ae=(Ua=a.swipeDirections)!=null?Ua:tE(at);!St&&(Math.abs(we)>1||Math.abs(Qt)>1)&&pt(Math.abs(we)>Math.abs(Qt)?"x":"y");let Me={x:0,y:0};const fl=on=>1/(1.5+Math.abs(on)/20);if(St==="y"){if(Ae.includes("top")||Ae.includes("bottom"))if(Ae.includes("top")&&Qt<0||Ae.includes("bottom")&&Qt>0)Me.y=Qt;else{const on=Qt*fl(Qt);Me.y=Math.abs(on)0)Me.x=we;else{const on=we*fl(we);Me.x=Math.abs(on)0||Math.abs(Me.y)>0)&&Ye(!0),(re=Kt.current)==null||re.style.setProperty("--swipe-amount-x",`${Me.x}px`),(ge=Kt.current)==null||ge.style.setProperty("--swipe-amount-y",`${Me.y}px`)}},te&&!h.jsx&&se!=="loading"?F.createElement("button",{"aria-label":lt,"data-disabled":ri,"data-close-button":!0,onClick:ri||!dn?()=>{}:()=>{hn(),h.onDismiss==null||h.onDismiss.call(h,h)},className:Sn(N?.closeButton,h==null||(o=h.classNames)==null?void 0:o.closeButton)},(mn=K?.close)!=null?mn:Y2):null,(se||h.icon||h.promise)&&h.icon!==null&&(K?.[se]!==null||h.icon)?F.createElement("div",{"data-icon":"",className:Sn(N?.icon,h==null||(c=h.classNames)==null?void 0:c.icon)},h.promise||h.type==="loading"&&!h.icon?h.icon||ul():null,h.type!=="loading"?cl:null):null,F.createElement("div",{"data-content":"",className:Sn(N?.content,h==null||(f=h.classNames)==null?void 0:f.content)},F.createElement("div",{"data-title":"",className:Sn(N?.title,h==null||(y=h.classNames)==null?void 0:y.title)},h.jsx?h.jsx:typeof h.title=="function"?h.title():h.title),h.description?F.createElement("div",{"data-description":"",className:Sn(it,si,N?.description,h==null||(p=h.classNames)==null?void 0:p.description)},typeof h.description=="function"?h.description():h.description):null),F.isValidElement(h.cancel)?h.cancel:h.cancel&&zr(h.cancel)?F.createElement("button",{"data-button":!0,"data-cancel":!0,style:h.cancelButtonStyle||Q,onClick:ft=>{zr(h.cancel)&&dn&&(h.cancel.onClick==null||h.cancel.onClick.call(h.cancel,ft),hn())},className:Sn(N?.cancelButton,h==null||(g=h.classNames)==null?void 0:g.cancelButton)},h.cancel.label):null,F.isValidElement(h.action)?h.action:h.action&&zr(h.action)?F.createElement("button",{"data-button":!0,"data-action":!0,style:h.actionButtonStyle||P,onClick:ft=>{zr(h.action)&&(h.action.onClick==null||h.action.onClick.call(h.action,ft),!ft.defaultPrevented&&hn())},className:Sn(N?.actionButton,h==null||(m=h.classNames)==null?void 0:m.actionButton)},h.action.label):null)};function jy(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function nE(a,s){const i={};return[a,s].forEach((o,c)=>{const f=c===1,y=f?"--mobile-offset":"--offset",p=f?F2:J2;function g(m){["top","right","bottom","left"].forEach(S=>{i[`${y}-${S}`]=typeof m=="number"?`${m}px`:m})}typeof o=="number"||typeof o=="string"?g(o):typeof o=="object"?["top","right","bottom","left"].forEach(m=>{o[m]===void 0?i[`${y}-${m}`]=p:i[`${y}-${m}`]=typeof o[m]=="number"?`${o[m]}px`:o[m]}):g(p)}),i}const aE=F.forwardRef(function(s,i){const{id:o,invert:c,position:f="bottom-right",hotkey:y=["altKey","KeyT"],expand:p,closeButton:g,className:m,offset:S,mobileOffset:h,theme:_="light",richColors:A,duration:O,style:w,visibleToasts:z=K2,toastOptions:U,dir:J=jy(),gap:G=$2,icons:V,containerAriaLabel:I="Notifications"}=s,[W,Z]=F.useState([]),Q=F.useMemo(()=>o?W.filter(X=>X.toasterId===o):W.filter(X=>!X.toasterId),[W,o]),P=F.useMemo(()=>Array.from(new Set([f].concat(Q.filter(X=>X.position).map(X=>X.position)))),[Q,f]),[dt,it]=F.useState([]),[ct,at]=F.useState(!1),[bt,wt]=F.useState(!1),[N,K]=F.useState(_!=="system"?_:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),lt=F.useRef(null),St=y.join("+").replace(/Key/g,"").replace(/Digit/g,""),pt=F.useRef(null),R=F.useRef(!1),j=F.useCallback(X=>{Z(k=>{var tt;return(tt=k.find(rt=>rt.id===X.id))!=null&&tt.delete||He.dismiss(X.id),k.filter(({id:rt})=>rt!==X.id)})},[]);return F.useEffect(()=>He.subscribe(X=>{if(X.dismiss){requestAnimationFrame(()=>{Z(k=>k.map(tt=>tt.id===X.id?{...tt,delete:!0}:tt))});return}setTimeout(()=>{U_.flushSync(()=>{Z(k=>{const tt=k.findIndex(rt=>rt.id===X.id);return tt!==-1?[...k.slice(0,tt),{...k[tt],...X},...k.slice(tt+1)]:[X,...k]})})})}),[W]),F.useEffect(()=>{if(_!=="system"){K(_);return}if(_==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?K("dark"):K("light")),typeof window>"u")return;const X=window.matchMedia("(prefers-color-scheme: dark)");try{X.addEventListener("change",({matches:k})=>{K(k?"dark":"light")})}catch{X.addListener(({matches:tt})=>{try{K(tt?"dark":"light")}catch(rt){console.error(rt)}})}},[_]),F.useEffect(()=>{W.length<=1&&at(!1)},[W]),F.useEffect(()=>{const X=k=>{var tt;if(y.every(ht=>k[ht]||k.code===ht)){var yt;at(!0),(yt=lt.current)==null||yt.focus()}k.code==="Escape"&&(document.activeElement===lt.current||(tt=lt.current)!=null&&tt.contains(document.activeElement))&&at(!1)};return document.addEventListener("keydown",X),()=>document.removeEventListener("keydown",X)},[y]),F.useEffect(()=>{if(lt.current)return()=>{pt.current&&(pt.current.focus({preventScroll:!0}),pt.current=null,R.current=!1)}},[lt.current]),F.createElement("section",{ref:i,"aria-label":`${I} ${St}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},P.map((X,k)=>{var tt;const[rt,yt]=X.split("-");return Q.length?F.createElement("ol",{key:X,dir:J==="auto"?jy():J,tabIndex:-1,ref:lt,className:m,"data-sonner-toaster":!0,"data-sonner-theme":N,"data-y-position":rt,"data-x-position":yt,style:{"--front-toast-height":`${((tt=dt[0])==null?void 0:tt.height)||0}px`,"--width":`${P2}px`,"--gap":`${G}px`,...w,...nE(S,h)},onBlur:ht=>{R.current&&!ht.currentTarget.contains(ht.relatedTarget)&&(R.current=!1,pt.current&&(pt.current.focus({preventScroll:!0}),pt.current=null))},onFocus:ht=>{ht.target instanceof HTMLElement&&ht.target.dataset.dismissible==="false"||R.current||(R.current=!0,pt.current=ht.relatedTarget)},onMouseEnter:()=>at(!0),onMouseMove:()=>at(!0),onMouseLeave:()=>{bt||at(!1)},onDragEnd:()=>at(!1),onPointerDown:ht=>{ht.target instanceof HTMLElement&&ht.target.dataset.dismissible==="false"||wt(!0)},onPointerUp:()=>wt(!1)},Q.filter(ht=>!ht.position&&k===0||ht.position===X).map((ht,At)=>{var be,Re;return F.createElement(eE,{key:ht.id,icons:V,index:At,toast:ht,defaultRichColors:A,duration:(be=U?.duration)!=null?be:O,className:U?.className,descriptionClassName:U?.descriptionClassName,invert:c,visibleToasts:z,closeButton:(Re=U?.closeButton)!=null?Re:g,interacting:bt,position:X,style:U?.style,unstyled:U?.unstyled,classNames:U?.classNames,cancelButtonStyle:U?.cancelButtonStyle,actionButtonStyle:U?.actionButtonStyle,closeButtonAriaLabel:U?.closeButtonAriaLabel,removeToast:j,toasts:Q.filter(Ye=>Ye.position==ht.position),heights:dt.filter(Ye=>Ye.position==ht.position),setHeights:it,expandByDefault:p,gap:G,expanded:ct,swipeDirections:s.swipeDirections})})):null}))});function lE({children:a}){return $.jsx("div",{className:"min-h-screen bg-gray-100",children:$.jsx("main",{className:"p-6",children:a})})}const iE="/assets/styles-BHpgolea.css",to=J_({head:()=>({meta:[{charSet:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1"},{title:"Solid Connection Admin"}],links:[{rel:"stylesheet",href:iE}]}),shellComponent:sE});function sE({children:a}){return $.jsxs("html",{lang:"ko",children:[$.jsx("head",{children:$.jsx(c2,{})}),$.jsxs("body",{children:[$.jsx(lE,{children:a}),$.jsx(aE,{}),$.jsx(f2,{})]})]})}const rE=cs("/")({beforeLoad:()=>{throw kr({to:"/scores"})}}),oE="modulepreload",uE=function(a){return"/"+a},Yy={},Pp=function(s,i,o){let c=Promise.resolve();if(i&&i.length>0){let g=function(m){return Promise.all(m.map(S=>Promise.resolve(S).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const y=document.querySelector("meta[property=csp-nonce]"),p=y?.nonce||y?.getAttribute("nonce");c=g(i.map(m=>{if(m=uE(m),m in Yy)return;Yy[m]=!0;const S=m.endsWith(".css"),h=S?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${h}`))return;const _=document.createElement("link");if(_.rel=S?"stylesheet":oE,S||(_.as="script"),_.crossOrigin="",_.href=m,p&&_.setAttribute("nonce",p),document.head.appendChild(_),S)return new Promise((A,O)=>{_.addEventListener("load",A),_.addEventListener("error",()=>O(new Error(`Unable to preload CSS for ${m}`)))})}))}function f(y){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=y,window.dispatchEvent(p),!p.defaultPrevented)throw y}return c.then(y=>{for(const p of y||[])p.status==="rejected"&&f(p.reason);return s().catch(f)})},cE=a=>{if(!a)return!0;try{const s=JSON.parse(atob(a.split(".")[1])),i=Math.floor(Date.now()/1e3),{exp:o}=s;return o{try{return localStorage.getItem("refreshToken")}catch(a){return console.error("Could not load refresh token",a),null}},CE=a=>{try{localStorage.setItem("refreshToken",a)}catch(s){console.error("Could not save refresh token",s)}},DE=()=>{try{localStorage.removeItem("refreshToken")}catch(a){console.error("Could not remove refresh token",a)}},fE=()=>{try{return localStorage.getItem("accessToken")}catch(a){return console.error("Could not load access token",a),null}},NE=a=>{try{localStorage.setItem("accessToken",a)}catch(s){console.error("Could not save access token",s)}},LE=()=>{try{localStorage.removeItem("accessToken")}catch(a){console.error("Could not remove access token",a)}},dE=()=>Pp(()=>import("./index-C5TecN1M.js"),__vite__mapDeps([0,1])),hE=cs("/scores/")({beforeLoad:()=>{if(typeof window<"u"){const a=fE();if(!a||cE(a))throw kr({to:"/auth/login"})}},component:Gp(dE,"component")}),mE=()=>Pp(()=>import("./login-BFKyXQqT.js"),__vite__mapDeps([2,1])),yE=cs("/auth/login")({component:Gp(mE,"component")}),pE=rE.update({id:"/",path:"/",getParentRoute:()=>to}),gE=hE.update({id:"/scores/",path:"/scores/",getParentRoute:()=>to}),vE=yE.update({id:"/auth/login",path:"/auth/login",getParentRoute:()=>to}),SE={IndexRoute:pE,AuthLoginRoute:vE,ScoresIndexRoute:gE},bE=to._addFileChildren(SE),_E=()=>a2({routeTree:bE,context:{},scrollRestoration:!0,defaultPreloadStaleTime:0});async function EE(){const a=await _E();let s;return s=[],window.__TSS_START_OPTIONS__={serializationAdapters:s},s.push(z2),a.options.serializationAdapters&&s.push(...a.options.serializationAdapters),a.update({basepath:"",serializationAdapters:s}),a.state.matches.length||await h2(a),a}async function TE(){const a=await EE();return window.$_TSR?.h(),a}let Uc;function RE(){return Uc||(Uc=TE()),$.jsx(E_,{promise:Uc,children:a=>$.jsx(s2,{router:a})})}ot.startTransition(()=>{vv.hydrateRoot(document,$.jsx(ot.StrictMode,{children:$.jsx(RE,{})}))});export{F as R,dv as a,CE as b,zE as c,LE as d,DE as e,cE as i,$ as j,fE as l,ot as r,NE as s,OE as t,ef as u}; diff --git a/apps/admin/.output/public/assets/styles-BHpgolea.css b/apps/admin/.output/public/assets/styles-BHpgolea.css new file mode 100644 index 00000000..2f4bc332 --- /dev/null +++ b/apps/admin/.output/public/assets/styles-BHpgolea.css @@ -0,0 +1 @@ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-800:oklch(44.4% .177 26.899);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-100:oklch(96.2% .044 156.743);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-800:oklch(44.8% .119 151.328);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-slate-50:oklch(98.4% .003 247.858);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-2{margin-left:calc(var(--spacing)*2)}.flex{display:flex}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-20{width:calc(var(--spacing)*20)}.w-\[360px\]{width:360px}.w-full{width:100%}.caption-bottom{caption-side:bottom}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-gray-900{border-color:var(--color-gray-900)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-0{padding-top:calc(var(--spacing)*0)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-green-800{color:var(--color-green-800)}.text-red-800{color:var(--color-red-800)}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.underline-offset-4{text-underline-offset:4px}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media(hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-green-600:hover{background-color:var(--color-green-600)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}body{margin:calc(var(--spacing)*0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/apps/admin/.output/public/favicon.ico b/apps/admin/.output/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/apps/admin/.output/public/logo192.png b/apps/admin/.output/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/apps/admin/.output/public/manifest.json b/apps/admin/.output/public/manifest.json new file mode 100644 index 00000000..078ef501 --- /dev/null +++ b/apps/admin/.output/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "TanStack App", + "name": "Create TanStack App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/apps/admin/.output/public/robots.txt b/apps/admin/.output/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/apps/admin/.output/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/apps/admin/.output/public/tanstack-circle-logo.png b/apps/admin/.output/public/tanstack-circle-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9db3e67bade15d9ced50bdfc2393359c5f6f5712 GIT binary patch literal 265387 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ϟKoY=Snqfy1)i`l$#Yvv>#w{lM68ok2%j-k9O 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%0A(FZ&@S*K}LKE%X8U=5NC^*)q#N-fWN^U zr03mc$H(swnK8J1Z|Ehc%olxs1n0@pGq3ae?6J=R2G;<)Z?fO~zHxx%8xGvCs%%&l zm>XsfuTfU_-ZjdOAr3UFXaD$J-e>(-UsIQV46doeZN}%#tYmuF;N9N<1r`I7}L!w4UP^`ek*s#r%2f+v!O>Jj80ri=xa!L)bKkKl&*D5tc5rEOy zqYPg2H^X46HOU$tmMW3J^@U8~I?gh85s_^te1>H%yi;INx61FOQpH*#_AeYF{(J*B z0^At-TyRi;rT;uZqLztmtP~W?GbE5T4!~%0jM2&84DD6iaoe#{ifDk}?Jx@tgga>z@s?^6pq@_z5+F+4mDg;lD0VXBUs?tT0XaIXHwJQNJKXDj2 z4<#Fs?bOB=&J}viGoLCX^=;h=;0t&caeXH$n}1a$st(Wm0M88`=1)&R-ZO6tJ#B#q zR02XMF>9u{y?6!6u{MqdFU~-f%Y6wl=zY&PU;O(Q7vnJ+3eMsIz-8|;@RR+^^3AsK zTa^3zGijJ@+%T}@VP(%I_W2~)}_=z9;FmAtd9lO`-<0Kya zQ2=uQ?l@^0eiwkZ9LMg#jm-j=F3j-S*WZpW`>NOC%-MA{XdZS6kZUTXXB+McADf9S zhtuZUWkqmxZ-HNV=xOXU9ST(|HHaXACl_yt5nU8AW)obAaB&f|U8e@)Lc6Q73M$Rv z^QPj1n0=8X+a4p=i3D4A2*hk?K(xdBJO^v1QYz3TPcmxn+9c6JBpxK`Xewc+s=CdS zYw#5mn8CrQ4$S6C&#laENjj=$LiK{RtL_jSRSt_L;=2006D?yk@)#A~7A683M=--f zB}p(9Bzwxn0MQ1=g%P`Ie%!rR7D3B4YdQs4P1C~HW9)oj2KOWownGAu+8(rt;ig+6H-ypi=f@~6+2*-0%v4Q95p!CvgrZ}9;AEl#Ob5uHn zP+(ElsHzeNd!4EiivVrcB6#!=PSYkUb1duRM&oRxwr#r^Chm4@u5Z9cv0c61*#;08 zv%X3Hq}Sh{lZ-APbK$}C{Z`J*AAE)bZg@_LjD-Oy2G6aZEcPr{PT^p6U>VH$p{aMp zV%85N_01eF+xytTnF|C)>?;reQ>@8zW2EQ5-US>y%Ym0SWAb58vMOkDKpp_b!+D$9 zF9*DR>x`ZEm)TjI)pfWG19i^Ikca&E*jrOq=x4`uaDAh~?(Pi#{`=pJ6DKPi>@^TM z7Uz!lkrQi&*N(*os{rtY_TpQ47%S^n|978^7d>zq^`e0hZd#moFo6bx17LCQz#j1P z++#Lg8wp1b!(|LoP`62H+>zW9gqn2(%kWcWmhcZG@ejWX8N= z29-iiFc@K~_nKOPUQ4_I`sLWaVeCinsdPnwp-6-G~sqLJUpG zV@lIXM8|OiaTu2llfr2|H#a>NS~eYDB;2(+s34K9bgW+KeRP4&H-mO%9efb%bvq&Vy!3l0#A!9Zkh4^XmXi>}-d z%&rPH4;iDmsa=`4MZ8x;dl5XX)%t%&Dj;sF9Ov$bNInH?E{Uw~h#qP^KDSj@5_ zlL!Ud?Xe8i(iJvA34D0c6sX!-AzsSX}l)K#pJ$8K8Sk&$gNfn z-hS5vPd_omKl%Q*;CKI?Ps0BG0-^6K$(dz`S!c8Rb_}J>j1AR35pKzG)S(j(R|v-A625S75zDf7h(NS~2WJAQ zM9A1dJWO)qA|Lf|d=DuhOd8U*=sGBnX&WTtW-V6Y93kf6|Gd68F!;4GMw=C4TPt`p z7J8)E)4-dms3JICXAG9z@mf$dpxPyQ0GF>VboU@Spe%s3wF15nQ}@|(5Lo^~uA{Q@ zfN^>u1T#=IQ5G~m4_UI?SKPf=x9S2&rC8G@LY}N}^#^t^a)K}dK&hQ4Q@NG}LUmxW zNh-9A1Xs#_4r~+w#YRB8-65=d)Uu7Q{gYpf6KB@2ShV>0w?B#>e*1gzL~{Y>*S4^~ zn5D541&g**^>YUYadD}dDU0MvXtZQ}515Py(z)BT@MO>rl>C8CwiPT!y$(kS7$;eQ z(5}q*#M1IfLRdJ0IIW{{VvWn76c>v|aPj&Si_YPpk1nt_0ZyIp*xD$RI95Q?S4y-B z+R+sujqg!V7Ju!FihN>)FBNQ}610uS8&7;b#%0Oz$%E&&>JY7}u+DOWHzEG7Z!WUK z_s%nhWQXUZ8_U5M;`*7uSw=Ia>q!O!d6u`eo1t;Wj9?GjDjLNQKUZ4e19pwiWY^g) zH~g`~Onc^E!7&^+yFO&;R?jEDe{6?QnS9KysjF8>l*Z`?|Lwc*C%^SS;@crn2hUwG?|$(mPi_3GE$hV!>=qU&O|71&s7VJa_;`<-4f z2EcR{gU?}DMri|526pI*mN9l6o_clwr;} zq!uIq=cLubwS0=@ayCh&#n#)T7rpr!6N!jUj98L`vuo3C#l=Ed!WHC66r0HjtO9)q zdR_FO#^0_8h~t15jq!%w3)$}02jYxt8!_@GRac^QAV@UE_gO7CoJIPa3ke(rfrqzz zHCJYtc$!EN!7cq=B#5Iti|v9)!+P(z1Ce=1RG_5rP8=F-AJIN>jmO@_Lu@=-LGEt3 zWej?RC9^k3G)m)kh$bmmucAn$ABmtUOYD^nv+@#N^omc%c(a7mqV`#z`G$M2KJoZF zKe~sV@(^d%*ReaDB@kGoU7(9LB6hZ*wjBW9A3yf`^7q+)^4CwVlXp zPv^|qUd|g&nl~bvCX%d^lBB|Rd;!TAUGFSfA(xe4QU#n@ukg%%huhDUxN`Ln2L~le z^+q75yhn!)qJ;@u*VPxHg4`|!xGuG08-RjF^-;WDo6B`oLypRV+(1H(tpPnlWGoqI z;h^n7A#mAT;EZF;Qc6s_RW(fpEJQ3jdp5;(u@?l{$7Cu_P5{}Qlz}3aH)9yE2eQU+ z;%=Ddv@){ba^{9lMYxwo4zoYwC)9s^%)XR-Qby1^~Kq-v@5Sy0ua) zPWWy)*lA&xyPX*Jau}cboYPY55FFt_q$)-zvHLB);W``#RKDT*dQ-w67J7e z&uFl{Xn}V;cnJ^g9-<5pi@MdtDoP{(pnDt#n2Q{`&EYnDZegbsqM}lS#?4(Mh%g%u zPO@fiVrnxkc1CE*Nz%mgD!GcZw*qagDD4v4>aFT6?&_M10@g<**2bm!$CDzUOFRN_ zQDAl*lva6D18BxU@6+(xIF|^hG*$^kk)GMzZ!ujEpaiGJ?V8rvlt5xc<|VeBIuI8i z80Zv`kIH1)5@BuV=$419_e!o>3+kA55O$XX4u92cecO}uF9G=A zjg(W~bTmy(){-byL!wTQ1nLTo7orJ$juK8X`LjtpHytoJftH9{y5Z5JdM@_;QBu;0 z*aAh#hYm~)hLRimKqlgx-bgaW~(z6;KXqzVHp@cP~sllCmuCmTt9 z9Gy8pj@iyZ(O|!Q_ATe?3|odsC1Uq^%f=Rjq@#UvQf^o;5XM}b231qAS1_&XVgEK` z^WMCy&PTITN`Q-j>6UYYZLWdt+V#xGn+u_Q6G1))Nq;nx{k-8Cfug~Qnw(jZtUo{}iGL(e&- zWT5XbaPeEJWq8dF12mbhGg%ri8%w!KdAcsKvbVL60XN+T7t+$ZB`6rtx%B2}gpF~f zi(CVTg$wAshmX;0&WxXhAB2_5dt0nv6Db0f>|Wmq1vzyi>d?7sp!douNw1uEss+7m zvsM)oO!a8Sy9hpGLC&|V!>&6KlypE0r_vmyXP8TeX6Dd57$F}JwA*!3l}4aodM8w) zsjAV@sGVSsX@aNiRdCpztO4s0dmAlAx7~|3e)_Aiu~s2Q`mBtJng0B_P29J62EX#* zkD@3YMxjK3h{zp#fjjt&RFhIF&@QSI)UCeX)Uhz97oK)qoQ4(P@;tXdw{b@>YPNEQ z08&Y)GGr*#NwmX3-NE}xRiKMHDuqK?*th^W;vzhP^L%ZDI3tWrldUH|m_v{X4Hh^( zI)%zrW>+OZzt?{;kQIC82eBAgKE7{TyAa3;^X&;h@78$(6q3Ck$o#|Qb{-2j_vyH1=~ z!}V*2_~l=C9H-7yiY1QWZ~&eH@bkxEwryhg!N+mWIo}QBvjdDgIg6YqP@uzE7#I^1eZwP?$4Ere z(q&8_y@N65fX{f?Bx1ze`d6e$$_RL%?Ii|ikfdg91GIHS)2ft%Zivi~HUKI`stS*B z@an90b3De{xIhRV5fPo^dxb=hR1fL78LX11lDqSG4PgHo$sMInLVF=k@E1XF!d-#J z{Up*Y2|>jf`Kp2nVH?At6EPv#eGkgDka*IBAjoNYWqg0#tMA5F zz50{!E0-Tcg@CnkjEPEkN>$bBuDrq#m+=+%H zC{4hOEd9(&5QQPq=37Osi3UQ1V;hm*mJyhC(W@j-C7&g*wx$fs3Y@32T5a4QNV_EA zmMdASwu&uex#o-ZWh-DTa1v0JYuJkyuvi?@eE_AY{MHT1n7S;ZI%jNrbe!Nbl1iIs zdG;HOv>X`&HY9kWV=Ff^r zp}>DeCThfw$nzI7n)cZ|9GQk>r+|TE&C7e+kqG8xd{`M_D9d3R2$-igvSK?7u=cRx z_fTOR6#(=DDzO-_bDuH0vwn=Nt&9ymD}$v^!BmPpb(Ll8Fi=+~_TD3|ss85H)L}rH zzgv(U{TguEF5~3MG48tiLp|nU{P(ZLt6p^*+O~r? zRTymG)J8Q+bbZ5il8*m{cAk?=UVa)o(Y>p#{bFTG+r{UTha3pn(BV;Wd+R7?U%1rO}Sb zX&LKU0j4cFj!#0Urt+qg;JL!jXjUAu6hVg@?K~q-mf*m1M;t+#aMxhhDUg&lAYK>L zS8AXHTq__l$aQp3BYDXX(=g>ak;t>UF zYXQIG^$+0NUh(;Odgr<_zOR?-82JLF_bAK2yd47hwuHd8>7Y9b=X1f~w8LzwQcLb0 z6?6=7S?>r*Mc{8SOF{OBnO&uJGBXl~&eTbi%0{Znf$edDQ6aifA(RfYnKJWh`*p^{ zuMd;JB$bo-C|K`IG8ToBve2TX1ekrxLT2-Wsk}58NXVp7+Wx|G2Aey$STG1<3;Zs` z=nyE~0`kR|_bd?jXc_u;ToEMMU^bttqJdvQzMY=!z%(8jILFxg!FKVs(Azd+(col& z4&VkGoYaPfaI!^zxf9y+-KNSiIufzKI@$bdKx>$uKp0?SfY0YU4mrpfw5--{IeNMPcIQY~aWZq)QW2tsxOrySZPwlOqyfnl6FJILKEw&vN zT?1k$T|i>jk{~n!oNxu5-giPgSn|Nz?E3wn_AQj ziDH6I^xfS0kAhN{^-+cO@krH!D!m#_FxjZE*X-k&>(}6m4Ri#Oo>C(ZTWL9Yn`?!o zuRMBW4^#&@VLx;Cppu6s?yJ5122H2e)rqk8LO_|yYl{YflxIH)j9d|X1_?mf(i4rv z9m2FgRd^bLgNFYN8YhswfaU`Y+9zsYk{010=0}elST~TU77n0#HA%37)BH!lW3wEi zTmyE-9nQY!rFiY@UySwf80a#4ApoB0AutUjW042Tky9A(T3$4P<*SIvz=;`bXMk^5 zrNgqjZ2ryEeyj(B{qD0(GoWSju&M3MvxE`QntwyH*E1$|Hk7&Mkzx7-Yd4E?qDyuf z<7`dwutmNnZ&ehGH}bt4Xk~vA7cWl-|jUPmR8ePJw0qp z_Z=dF?d=H;4yJhTyDwsEyTE)FaSTTQ@LmA#0pM;W!1`_gTe!uC_fDPY#t8hr-~Y*Y z)vM2=X}BBi2%I9wZ5lkxz;Q*AxnZjQEGcfzGLn4x6KfXyikBzwm;x zaJmy~ZB(HslkL^UWP&jEsNDjOT-d>V8~5P%zxi`;ZEuQ8vjc=e_1{ztIes)|2W7lI zyys!%X4%4W5peq6D1t*ebq-G5ztAlX!Gq8_Egdma4QrDf!JFsKO3Jeg1UR;#5UjCm zrE@4kN*y~v+e8HcGcTB5=+OOQL{(L2iUvg&;LP`33Y>rhluD9(b5we)l?B!(0h3Xp z92i$6X3YUkz2+78)X#V|PM<%ak}85u8^4T`P%vU+V}!fzIEfdpoxzX4=iOM_C@?8X zw4G?XRW5LB2na7Z#wbk`kFFyR6_7}5o$-+wbAU&n#)Z9P_FI&W+8Dd>Z(PtGFoF^+ zJ#*;Lp$a8}4`^epc4G5|!=hd&6Lav;@g&-Bwrefwdy;gO(qRL%A_Q7M=tkHcZD73^ z12KX*z!rajsik9&+M$uI7QggLQPY zjT>UZ9xz7EsTJ&gzp*sECD=U>Amr@#xm1NQ&w;#rTvUC}PR>5_jXpOvC zdCvxk%=vQfIy3BoCkLf=ZHTDzD0W~&_B?r7cce9y_m5{yH8tvRUGw0R9hUAS{P2gK z#V@?=QEY4^q0KQJ`v89U<^h%o6JHMCPXH)!YY*KSR@Z{h_^i9}-~EA4!O4@8eh=fr zgO~9@Snb*VYhGhhSxJ(*9L_p?=*dGoa&1SiwK1aZ8l`R!M5@C8#7JH#f-7{8F6A4_ z0wIJY@G!$sBP|v2{0-Y!>x}i-n3k=~qBdS#QVVt_@dDY?gZjh^SRW;qJk@jO)fgL- z3Ja;RKdrIhPvgr!`BU)wKlkOhd}W4Td*UfH(jcI~qN`aJirgidXj^SJ%t5dKChFES z1SchT-@&Vc>FK<~qDhNqPvhUPzE5D6b{Y@s%K2{q-xRNA6Cp#*UN$oy~RW8V|-K@jwx^ARViEo>I+CT(E<0J1XJ$glg{ha49k zlh|gYivmk4nQ=Y%Pg2bMGLlJW00!o2%A{Z#a{q%p@9hOzrgG1Nz`&V-O;a`Hk_e{d zy9sKu`tr9ql+Gk59&Ar*6B=<_zuWvvppC3eTn6F{Tmi^;Uz&Z_z#8B)Bl{j>`c>Ab z;k3O%1gK@3_ zTRlv#o$}%eX9kP}3azNURVQ2og4zGRb9k`D2nNtg_XdAlzVRiDKOOy^O9 zbdpq-l}U<751;`s03x=PSLiuU#~!0^Xx>uzPoEzaOQQd#*04nMYfo+53@f?k%Xw=4~!(fv-dioh8 zcoIA3_#(Z9h%Mxv?HXwiZObr(>S^x-1SDV$K?h58?tftqZ-AeaOwRfY&-N82r?G~28G zh1M2o@Guptsq^^m$TIUG>5)K0=EXkZ!3$#V>v3vqkd7$1-@$z6 zq^V?0tY~vB>(0hBFfA}}AcjC#CQb&~Mt}@BvCbI?wX&PdZdOlVc)b_`U)i(PuFl@g zyqK@KOf&G-SB89D8V>fJkF7N|+x>}wHe=f1z{*u+frlTugvTG-RpCwB3Xb6z0r;0k zahv0hs2=?EjFj}2(KF2FQP1zV^8`XL{j<*u5uL?6cgSP!`gdK}fF7pxxAUXk6FBbN zo7W3Op~0{&TJ|oLlKt?ROB)u>ydBsf(cFuOB`}SjsSRV-f;+%y560)n=v@V; zjN6l{z^E!UI1lVMa|AcWEAO}quY2iTc*Tp(;KXKuy@M7zvjq*Es18eIVVu<=(~$#q z*e{k13Igd^T9)=%PL3w(7MNO9qBXeKsU_BnrsDD%d-~Js6cEKoDvP}i@|Ym3ahyfR z#UlHwlmC3sKzBH9$p|lSSk!{U!w!o*tz)u*BcL{yD`{*nHgFKdCe$`6@O=Ht@5bxz zxeHsx1PdkD6Wvt^0HxFSlDXd0T%tCCsg2qOm`)?6v#4tNwiWiJ;uG!^h9>W5i zv=D*S*Ja>A@?diWV)jw-gMl-EW1(*gy};~&Y+hopKF#N(RKp|9J64yd@3U*L^GKj> z02l;b_U^vmV9%MgqV3enVlOw=(^Qgt2WS+}c7U;~ZwwZ_&N=~-V=-i(=d|2mTg!0I*Zw{RtCQohz%u)2N>uBk`7X3N=d zT?tH^y2DFfb_Oqd`8i6o9FFOz0Q?S~yPJ_<1#WfwzW|)O)$VaZa5|}8!B#%ip2dO=_U7d#M=q*kr6!>3I^ZF)F(s1#*9 zDzH{o$)J5Q!l*3Kpu^5$iVbYxzyI_%;>$k!0o-wVj1ZF4=A)0#@MG`)5E_}Il!Em% zu;n<%?Z>1-6!CPXkd0pNa`qEb=uys)5%mNdBKCpy)90WYF_X+Qu>%#;)>J2-^Q)R z+Q9=Pa`mb@oGu#7XAVVCAd~_hoVJ@dxpCK&^URlvDSYA}L!oYSWORV-cpJ9EX$7C? zj0VACn538G%XVg&Es^AtJnzBM*>CB0O9DH$J~e59hre-75|gyqn4qVFC^xFRmcW5= zZe;Bp(#vNC#;Hd-DgFGRm9pPuVxr{H;R?`C;LavLP;3&*rfZ~pH*m@nHX#mMaD zpmRXR#btF)!7*=>kYo~@)fnQr&h#2=TQg;Vp=X_O*;@W+}j=j|L{95L-&gSetbwxIE=om+V=wZRRHI2HNdJWr}kH0 z@P#kJTfgsXP!xW3C)bQuJ60WI{Y@65s9NTu7v}h9Kl>3pIiJEy#NKp@w(UqTDv;Qz zy-AEJI?(F^_goqUI-v~AmD}W_F(7);tF+k?QzIhU4nF5;j}oE(09Qb$zjZWbr=)@y zh&$OF*2g6#WreCJu~7wdp~JO<1vdRAUU$#E_~JJ|fCuhfQ;Cano)dP&fBM;H@YjF- zm$9{$C=?b=jlv9l$WvxSLBS)beGDXl{s)a16b?lty1?%4)(Wz^sCGf>Dn@yYC}Hw0 zE^RQJ@3d^5Dv%;@7n&vzdnTC5kj(d*HgGF>seE4nh4VOU7r?BX ziyY8IIH7bBNgY%=(7&L90+kw#3WpH%I{gz0s)BB10IYA0(LVeb9{9R1#HasvZ-y(v za!Wp(d1US#lrV4ukoKueQ`RF-?Bn138mqbz6vzW0;jeMY^;wk8rvoYK$bKY&P6T9D0oyMf!uL9(TxOMv4^|l6?kC$ zQf#kRkfybbGLn3Y~NcpzM!FhoT4?i`g+~T4))K1>N4s+BxBwiPxnSbPR}& zWRbc+snlw{s+2HvV?5G$TopL%rr6sDKK1qc?lf|D3Ic=YJuiA*kba9cmIR`~sqr!;UXGL$2DB0Yi&`F$XvU{LV7_P-+&EBD;cQ_vqD%8V z0`4>;bpQ|}_>ex*IfuZOjS{WDW6CR{ML~=Fmb(TqD{$x=vfzrda4&UAk>IqS zB3!gxki>jcTc)@Q1&#PgEf5=c7ZAK)6heCE_5|A}HdOi-9JK8aJJGR%Ij|$0 zN|ra*gGv#76%j*HyA=_DCp9cphF$=n1kuG#rFkvYg0|_xqmyLQ6%kN(o!b9xj6J4n zKwB4T52iL*T|^+b6OUzEbP)<<#W}Qzv|RyetLY0&yBakbcn~Ob@kWXc$qcK#eP<@z zVyR)OC?=o~q)(P5xd1BzXY5l-W_Xost~Qp0a~aFnuQti0PIAM1!OH@B&gv|@2cgQ2 zF8fIlV)G?AM>5Y??L0tUo^|a z*p82vH8uBJXwOk7VM%-IDgxaNf9~9tB{_zJnCQ&_e#EfSDgeul*E5c{ZWp0-?8ZjG z8{TjiJKJ>UuvYAIUVbB?pJX4QO+48E6FxDJHtTRZvb182QnwxI7&-5GNMn*GlX=Ib zfo{jV18@PkGr%j4C7P^DaV`?J5eU9(#HRPwektJB+McU@zEW4>(T=hP8OMp$X9o z0Nc7Bqq2=tssfT=a>C7Z2N4kZ9OO;jH(z#+3xCwS*uG#}IZ*&Wr_Ox8AT}Lh19X+c z;&2Xsp~hr)6LMA{a~RhV0)WnJr_2t7i?}sK0jjyYmP4<%%^X#^j>*QlmO&Z-rV`E# zQ+d%?zip`74nTO8YSH5MGi&(D&we$=Zx8s%ryj(l^vb|5O@~Sg*+6{M-8O=#M&}*- zuxmVAC8%phL-nXYYFpb15a%J3EFp@vUnKa9dN0EJj;@1LI&IR-rHZyAO@vc=kg@Wd zIg}%h!`T9DEY%(?c$m#t`d0K^U215)+rcA}@U%d5f(DJv<~jShWa^)#VY@vd6ulS{ z;%#SRt^de$c=3iC<{uPZV`jv280dl6E<$_Wz=zlbYV%^eVXoml9%kTe6luJV6pPs; zWuQ^4n9duJw2L_?waZoyA{a-Y$+{R2y%Fr%e94>Eu4Z3m^)n}3Fc2gr{im-?<2tbC ztZWiUX$aoL;*JZ}~m<;*%dZiM2_{CuDm3HxQT z)-y@Anod=N239DwAjsoiqwIS^d_&{}12BnJpju2sTb~B0?7L_Nk`bc6wGTzmDR0JH z3014J6Fh$SAyimHlqM}OTpY=-L?ic1`r(a-Cqls->*W!Yk-mYSY@=GAKwv6dn0=K2 zClOvs*G$!9L(~=zTet5xyN=KM)R*Gq#wPydyWWLnqsGb61c!?n@Bv;NToVypfOyyr zz$gmTJ(2_P*-S_cQebo4s}Xt^Q{4ibN=!pQ8rM;)&f*hTLX7K0@B8#F*0F9nRby5~ zg`)U>xqGu%OOo?U?2E|Ev)rZbt-7@@y;Uz{b$9i`CfQ9kw8OSHX{x25m>$*R#M}aNAa4j67}?o;h>gsc(79fve%#R|GW5 zU_)iFhCnR(Z(R+)2GCuc`G{<#WJb0M6`Gd3rkz1U1F2@lG5m zX7(?1LmnKM4_JORk|!~-+)ysOPgQ4#Y8avY2wKAf zT$JyJWKY$xE-f@OR9CkKzV_NR%3o=Goq`_{+3?YZ z?B3)CC>XCfM$#1*!=Zk~t_58uGFBq8E)o(lN{}JMgxa||6Zj}SHSHS2rWxMPfShC` z0v!PoltQ;C%CBE#6PCBfd&?P9qgu5l?=$Zjv-Z8cF~?Cl#CvyF`113&@a79Q@Z6KT z)sIusCO;U)6mU513%+;vKJFu7H?}zL`;$?XX(%VmRycCm}%vzIXc(=cYkL-L3 zH`^!hPWJ=cKm6yo5}rd}0Tw%`hn#^IXR;w6TFhQN5%w=AychdJ#MxPd`PA;klA*6u zE1jcUj0yM(U`AS{4;5fo@n$jL*~iY|^4=Ldd2SE?<^TLoad`FsmuGuubA!Xx0@DC= z(+)?gh((`~az<}dEFh$6;H%HY?k!d;^tr{^?P^&cl%YvI_b5{;NOcX*6$%%c*@*hk zKxNuCuq!cOktzV4Pa_u7g1j-s-Fv+Oui3Pzb!tRuD9}enw2UMDE%umT0>p$K$H;w; z2vYolHu+fK4tYg@)6Vrqd*L1UYOD0?jy40O7_pSDOx+@55eVuE=a9B$0TYg2nGv48J@q{7|jJz>Qi{0VUj=uB5 zvZwlcaED7fUOs{J7hkx9r=Hrux4v}`kM>Yir~tSPU|)#yC#PT~vIo!O6pk1x#o^VD zT>&T~BP@+^ezn$yH9aw$gqoPjdEm*fIFh{XyD}7r{HYvDDQ303=VF}`kaCt6{476l zrPP23vY3V&YN8d;C^dT4qfizra06$KnQS8J#y8Q-KA48!#;pAyG}zsknVEne9o)xe z+QDyr;aR-=>?K@0yJ>l*6iIc;D2{jD@N4eiXoYXT^CM)_j*IAXZ{?FlBM|to`cCCH z;3N;sU?te@5vxUyoEj@b2sF6Bj;3&`#)x&5s39qtn;>llc3qb0jjE;zk3cQM76Fl# z)|bl_x^@HKdG~F6{nl-4-Z_gu`u@K`IS0h1Jz>K{BovlgE?a8;ZM63hG*ttmt?}&& zIy(|EEb$OW139nJnQQM=|C-ud*kgL=8|8J2J=+8q&xAO8O0-rA-j8NdnMwZ(sfy1HJBetFr5=LC(|{b8C?^HZ;R~A6jCyzQOGarU?VhU+x^5cq%2z@#j2z1RVmhfCWAB!+xXtSKgE|W{2ko7 z@HoEt?f(~d-}yJV{KQS9<6|plOoi04BJb~!>`Ah!S}HQcXlV!{3}vB<(SYtO&MWsl zEv3a&^K=x1tnsT)Unlr#_4ZP(C-bP7gYkqHo<5J?J@Y31*Z=zp{@J(x2yf#7E}YrK zymUCuy|w#hjF>bN94wc{vP~(29|%^@;|$!%y_xPfvn<%yY^)DMp|$)}$6`W8jMQE% zRLU?pt!6Oa3gw^rm@o;g`FZSCD{OBT93BPCHv*bm(2+`*ZL?!F6Tw{o3iC=aTV9K@ zK;QS6&N`G#%$*BJPVoZImSB`!Xpw%46Yi)&CTHd;ixLJ_K0`@g8IO&Q9pjv{IrbsV zcnB20%PDHp@q{eq>n@g|oRI2DVCyJ%K|h2Sh#<4TfyAD)ej-|=HGY(ZRYYYX2&HC^ z+IxsBhjV6N!_BQjL7q4ULiJ*~3Une9e1*}yCOB%p_6&<1;Dm=auFe<$e5c^>)7f-z z!s&PfdusUqv8U=-v!}8QzJ5B^)|H@&F^`-wUU~T{{+ECD9m&5v;)BGeSJnZn$k<<7 z0@wj?1E+K}glo^=y2ydxt-}Vz>;%RZ_>5E89J7);%o`X6neta!A0rfRy`3RQg+9yC zF;Ia~L80Sj$Y&{^5w)!h90XfXVGt=ZQAklTLEpZb6etO_@nNoJ>`VU4#=M$h*qq>K z)#KsAgg0(Hj$ixo^LYBkwmEd>q!Crgx4qiWC>`(JU*Mpxpdy+79a0qhJTlggR?d7f z=%qfg6#%tqR3I?VQkV~^Y>8FLL58_=wos`8Sx$l*N^~W| zyurZgyYD>2*Wdgs&a_i}_Yc2`_wU@n#?BU2iz8|YiV71Ae8`PQgIW%PNDD?4Bxr14 ztl}!Og`Si~fPkDbSDuZ)Ffd75H||avAYpKjYoIOWeI%!B(Ng`^>Rh zviyJb88j6F%9CYFUuYL88+fPeUK7kj!+bVDT4t;k+4`r?HC;jNr_AS5;d~*B-UvOR zr(9d4%6~>g8Bm-={jgYr1&sNd=K?}b^Hv9I#u?o$`UQD#ZHlcYh_m1f)l`J zeUUQj%>3l;hiL_DWNJfZI}tKMWQN%mh8hx>HpmfuX1SQ08ED+te3xbOCc?c>z-`b* zG6Xv)wBKKJ?)I4gj6;>8SO#Z(`0KN$V*Q?~*lQ6M#+pZrU2yN@KK%OYH$Y;}qZf1+ z(dpGSSPF3s1bzv?WnFuu)GJfTe&v;`=(^}S!eSo=mSlCVIAHvq^7MlYdX8~m8pW1Y z(@3OGXdwk+6klH;ip$MFM>Pzb<_->#NFC{Ym@pf#;+Guc{B+XBsx9~zVbwHqPO}YH9VGga%!VG&2z`v`zgTxhaxrid7FBEr9)lWOKOh zvv8utbTCdJL~NzNyex2)N(6-+6*FQ3&~$|5DHllM;AJRNcDdQaV(lRoy|oF!DBM_I zZ#!swP0|s`!ln8H=ZxE=3ebS_iDedW6Ue9`b1llyJH-OF`~;lX5Lq$Dk`5I)KvWxn zE(gANj-a6R7d4gxYFVV0xr0GEjQQ7$L9Bnj{<0r*&g&&wK(6H%VC8s^fYJi$-{`G= z%a17sl!CkjSe|6{gWfhUsB7k$KLR2!?s_Jk>`!i=abwc$GY%xVv_4k&aPFzTuF%@* z>bkz3Jb&et3SZh5r*=>dYeu3}SO>8DwPyfaI1PX`n?;Mi_|_AMb-Z$7D0acA2*!L9ieThk6Zn{$+=$I(H9&pq`Fe&c6e!52Pu9VyfDc^G{C zjJK~qg1N(a_x?ky08{f%NCrGYq%gAtSuM7OkQ548i*}04Hu)Oc6Z&N)g-Yy%U>lWK z4+3a`lne?u)5cY%pe{)x1Z+j`7V@W+{Dqt6%JNCx?tnT>}G9F zr`Rw`R>aim6so4`s#3C25A$Dm=k5v*_7i#&kWX0UY-3X%42n^|dJ;`is(>s@)g3vR zi4HrTbRA;bU}H0yU9?q75JV>HjnvRkIA(IN{8vWR%~lrZ8SlrB)S+Bs6kc5-IrrX zWmACK?BrU8%H!k+GuSrT{8(I3O?X|%Srk9-XOAFA;D~_$ZAcL;>K7}cC~7S4km_Xj zVw4}lEL(T5dt!RY*l9cgxtgC!Bk=hX>@!NEI4BnQA5ZJ|G?nASwWs>J`ugcPUsoS1 z%x5j0dHOt#jtvl>in#`2q-RAs_{k|)H;K&hqXk%I`^w@keEvzaO>|B^8Ss+_j0y0q zcOa>--umwPd}+aZbJ7?~1q4(PxvKsf5MVPGvI=8lXUj=0sVd}nWcp(qT0A!D!7`t? zY600&o0ASZ8yzle&2jO}7LLm?-hF?8Z@l>ie(9~7xOr`xg7)s~X`S`mAXzAc1_={0 zA{t8FERzLlNTLjFLD9N<$(&p&%vb{%| zQ8}DYNwS@2Vm4+uyn>~?%7}eu)R-S1{4sv<+}H5Ni&rrX$9V7Uw~^Bk=JQas(LzgT zEPsjs*fz4T-LP$GWYp5OArjEp^R)KfV0vc5P;eV0FYu6q z-NG>lvL#o=+{irh_!<18zw>GQ+DotFLfppN507w+gxO?@c{?-B(|OxqHto>04TUu& z`?pNM!C}FV?<{fWgK%_^ky8axDK$W9ka|mNeU|zPiVcG1Fj#PtQM@V;ollauh}kUQl#V@OCH$lmtit#)#tD!3m`)puZ{50J01IV3Uw2$3 zRM#RnnHWM)tPb?gjiX{+%OZCNSU^!6AjigCR~_q4IH3#wN0e4z&Vl~)8jK5=%CKKP z0VXo*P$-j7aAzV@jXG4B$Viv#@0w|;=T z_m|k%J_BSBY)Vr|TBICrWKo1@ZN@SYWHmq&Ylz@f3JXmB0$|N12q_Ve1NFvYx~azgofdsJ%M$TYDO3xP4bYn=?`1J;$lV}YEyGhaG-*SfCt*U61}>YM

I*}0(hLMj&cwJUXF3qrR6`tWTKseHuzWddRZrj#MoaLxK#3G6C@`eJ0yS_?W( zcTWwcu&27Zx_s8xRrS>PYMX#BeBlYpWplGVEeh5-2w=taT7)t%x_e6USEhM%c(BCw zxii)P5*C$5?1r)QE5|e^f?|KTXG1-A?jo3-(5@rphar2(fi-)cRH128&=G);nQ`I~ zeg)XZ0s2l0jWk}0w@}Wi#uyDqfva!oE2tt!tG0tCt!WBwZ%obQN|S(Vn`iL%KYbf- zJimvom6ly$#;muTNCz%V(!$VvJ54xTEph+&0jQ^lQnC!7k_t!9{i1a$Lgq#nqn5r9 zs}jI+RnRAyIw&P+1{Y9!P<@fP!UkqsM6*XEcmfi?Dosn1;KmYII~WBf1w2?h#QAm$ zUwh%Rc>e|VVyM&x~@5~ zy)~J2m`oa=^kO{a*S>!Z z|HHrhSNM~McQBn!3?+sXFeweHu3(QG0$GB^s9}lh(WAqHzF!%Y_1xJOlL_&T`~cd8 zgn}071VHvDTAuo=A{#c)reeE`;oc*#ozHx;-Vk}heg&x)B4;fh%i^T7T#akd(@dxgE zTymF@7htbdb!F36g}V_3bsAKA)bP<@SPRfuzdED2sR*#BeBL~TMYVqdq-e`|0#DTq zh}0scM&!^2MPeOmuCo5FgQv6aTApUbYvieh;42GVBqxam~) zRCtZYN3f^LERkZ45t%j_b=L#LsPfRYk5S%VxqS&Rc42cG0IMg4dTNcoLHCdZx2~QB zz}nhuaOb^*zxVZLD+oA2|02c0k?PsOir0q$pcMYN!zg(7qQ$>ettYWY3Dp zMr8yfQaI{e&}>DF0nFHfG|@sCgC2Wm%N198wB1K*}$%h6Y-VRb{G>XpSSE z+q#LDZeGGhOR8AOn6?pZ*CLq_*B;0cB&U^qfSO0q7B1AhPlPwARoFzd2xtSHKsU*# zwQZarb`4@1L@g1ENNp!-3PT=@-vCG^C1^|vK&Z{UFfSVpf%QP2joSI*vwQf}&%T5w zr`PeVgNNpJW@|DH6AWK#YU~Fmi zZ1S3bWkl}Cert}1wLPx&B~*kU)%c;Lf64j{&tCR*gur*slDG02gVL%b_;GwJ$xJD5 zoMMc9T6B(_S-%=fHivntUsw+ZuAp{>-?a1&wL=k$PV7iH3RmWOD_~`HV&CY!Af*fZ z=@o>c_a5MFC#oI2I~i4Qy(ZuYAX(2&{L9%>@u>Dx0ez;0Yfr^tMBAD%bQH|zot-UL zJ=!+lR1RUKm5RI`U_Ev^6fBYIKK|NOOeYN+Q!k0Wk;ZwfUQ@%XwJTZbK;-wFY%@;CKq18h6oS+u$zS^F5{-fN`MQqEU}-`qeI%9Xs82Y^eHD-|;l!b}GIiGG z3Aj?qP<^u|Cw>m{DKkTtsB=uhgL9oRY zG;#10)-%K0CRM6qYYGY0XDdrf#g0Uwg-r0xBOxO>Qw)K?D`v67BAkp&QHTWOkyJ>n z8*u9Ol6!OB{IymTwYkhL$aV-f3$eb&1$PCuWiEpKr)LEiRIgZ^;I&ww^*(Y9Vkui- zEQ&_70yeJF(i%0sy^Y6&zad>w-(!HlCx43t4S}yr%64?JeYTD$U+CO}>EKv{3QqIRk6(q#t_+GpIGsHeZcmLr z?Vif8zOERppX%xA3U6#&Yw_3q)<^K;AFrrfcPebcDNXfHg*Mn_MLa}&iCIzPAk)6ss1Ea%Yws$ zjQ8)ZaQB0-zuzPG0XdmM12thQ9kWl_WDBVoTfx+-7^v+g5z|>)>F|98?3ot8dlamY z(dT3^A%#$l-zN6G)k~B;6xOp)?uYCnC%8Sd2SP9uDj;%lO4|4dhuaJdx)W#IY@8 z+5wS!2g}d(OY5)n3n?-YEw;ctXI#@St4}QeiWS(9ice`z4Q@}xPrIkW?WqGWp4F$k zulgwlM(gUvd@(NB$6vc*sWQwCUe#B~5GGiKsP3$SD_3fSG9p=lyZIrdl7zzV|! z2u_$&g2;+BID97zSXuglROk33$ll99lW#Vi;Qa0xWPbTI9AWa^6%1I&-KXBGL#}bn z&l@+Nrc^_f8}rVD+Ar>GnQM_hyStCiT)K_l{DtRn?R;mGT2vd=PqF{v)5IY-5t~FV zBdC$LLK6dlkK8Meby?#~IuqL+lwE;wO#;DWp@1?@G{l-f`%tui4=M$K=|iP>@O>=b z2}h=|H6aW5y%oyxY$J^7*O!8rI+G>(gL{9D&s=#9Z{5CuStsG*&<4Ey<9BiY-G^3Q zn3L^n;5U*bCO^J~@*7!#srCq|S4`72jkR{$6vT$ITj&w6GQb*3QInT(fm3O94cRZ= zIAGKU%4<$o+1ckAP)L&HU%_afu{>Pi>{g3cpV`ANfAJRntGC|7&3p#G|NaA{ka2c% zinEhBHrgrX(+Q?+gEm$QXP;nlQ;TEZ{(i=t_j=sF-&a7L3UUwRRKqGIGnku5B%u}q z`VuU^X=hHO4LJ1`i*P(vS!dRL{oJY0)0A!%`7A@@4^K3{=lBu)RjK@CX2u zr`xdnMh=!q!tBa30R%J3U*muiPT}>r%oBkx#wsgN!6_4I1I~6! z6gp?)2`U@kWs{j@Q$MiG4zw0m&*H{!&|Z-VTLcFPfMkT!g8uX_^^rFCz;;BI`3(y} zR_-H1(7P=iw0Cjds$^P!9X4PJ#wsuCioke11xxnDK7@O!>c?v%^%TJJ_eSel3XJga z+N+frx4F@tCct`3*L1WaLR%96H%@^)Xx{P<4i*3+nxGD4Bcl}Wg46v;6i87UlCPcB7azrYLn*-!Z zM_P1zM`P`=HEA%Pwzzh73x|ti+&f(0vrjyQ-}oCZU~i||3~Jj5_0ZKUgC*W}MB za6(WJzsaTALNbuiB2(@t8gD711S@-WX3UXqpoBgL8-B@^oY=0hvWN(fjI2)9UnF&_ zG-~fbr&vB#CknBve{zDcluFcs)-{%fg7gtT-oKAGx|i{lS3iQS&4A@`s#;ZC)Z1=` zt?f-5FPHY7CInIw3EH^$HU=hS2o)7rQ67t$gNQY5N@WqY74Vg^0&-;mXMJr;zDi$( zuI@a~telrZmOO+U0UP^Tqj*&Kxj=%r8r;Z7E0hSFoke`|BNuS};v4wPAN>&j(|5j$ z@7#YEXE*0Kx3!6b<0X#zl>yEb`s!wG7!XdFdm#}G2J(b_DE zP=wM!i(=O2x?Hg^k*nwUqUt;!YpkL$4bLrB8orl+SPBKfqUhU&`-|2O8Ga6<0{jJ< zdn0?th|G`_mvqht6sgYMgCKvYd6a%k-dsmip1|0i3TI6oKI6aAJyq#c44>BZsp{(7 z<&oP`OuPQcCw67M;L!uD6@YFX!1B#<6-pfO=nnH=_JbcT@$Y{9d6V!*$(o1~wss(E z(BN8MbX)1cbMJIhfDQhzRE(Lgt~pIa?{t%kwQZnhX2JXbE@L2Q;A9R|<8LU?Pqs~8 zh|x_rz8`#4+t1?XK5-M5_vToxinV1yc7wV&nF(#A zY$2$6be^2^iJ6HQGWQ4y7*}C#0~Z8=YTwAoT(1u-wTC7nexB9Fe=OhKoeTT*xL2n1m?pB zwaX)5bhv7fFQNo!fm6SW2JH;|IUJ_3rk6vfrS$WH3?BpAJbL@WXF+6!~2Y>MA z@8bXbv+v^v2M=*}-l1!!I9^695V49G2g{YQ^+K-WKb3&@`h?Q=*xt^V&Kfh|O67!V z$TS8Z(e+KpM*RzIL^}mmX=Uuk4lSaD^nuc{DMFRY%XDR8Y$b3VkgON7))!>PUZV=q z5|gG_X3QHHf>~|q@J_iMc;E%+lEocfEuU#c1t>xLi^^08!bm*Uyw}{%)DUET@^PJq ze)$Uho@!kke0=c=K?K1{EW(WfFj|K^sB=aPl&|U>`GFK6+j%T!4NUC3sobKyCX}F>dCFkco*~LCwS%MRJ}j~G^%%T5pvOHNx9Xqq z{p_dQQ+fHXdQVkdp|k-6!K$-=5AzbOQ1ZkTYoNM)YuoAr`4Jx8tW^)FLZ0ja0jx(& z!4iq?^-o;IeBP3RF^-a>6ENqsQM*mv?@@%}=mqh7fMTBOz06laf{JmHH-(pDstZ-5 zi;*UXujp@YLO#8=6Jagp&KK|SlJbrl#{VJn5sdIqp zsk%m2*U>nVr+;F5iIZA`p7a|lxMMNMBY!Sr*GL{p0H_2mRG=G`%?k+V&$h` zay3r6v)SVL8|U!po7eEkD_61C%yH1$xHsEX85E^RTj)rbY^ z@oOS;JDWbvAgGsp()-3`Pu3f5lt6yOFodF5E^QQhTSn0$i*+vTIE@i|J|PM?R_b-; zvk1^S%z5Dry~@0SLPNkW0erH_oym~_s|z|0U|b-VV4e#v1p|UCu|Eg`ID)z=k;F)eP{?dqI69Z=R4qF=&>}C6m2 zd~g?^xcV6W{V%_Sk3D+hnx<$mjX*l;@n_%pAr=P<1FhMt#A_Fb4G^Mzfoifxd!J3#bY(&))b1Zq3djtpW~9kI(@-(<#nQXV~bfX@}HT_Fl=sEWf{h zKbvgU!^31B2s!iBg`f(7mf|`7+CpQ*)}NLprNHL`R;1|k#&+(|qD2?s%o)fGfWr8~ zEVdfF4Ai(w9fbjab;92IEe$rMWmvl=$r&+}-o>mZ%VNPD0w&4TP2kUg?J>*nJZI;r zd=9k2(x{1Z)_4{mmC}Lw3&_H=+UQ-GN^r(o^RRof+DpK;2yhiQKbU8Po&jaOL=~1W zyFz3dforMjhVI@gLBsyuO1n|Vk5S!+l34B$|A@bSYz6MjD08h&hcq|$A~}f z-5BV6RDcjg`Hni>nE0zDIZ{)ZRCcMEffGTRym)(?=Amn z7cpyFoSDtAyD`H%2mAQc^_TIx|IRCT`s$WQ#j&s!o*Ycg7BH4bzHe)%#Y0D?+Efvn z##k|ZLOn+-wYrkn2vrbSatjTzfknz_F<<-R#-uOuOc@H=m@4!h1Nv%2KJkuTOcSjT zObrEdVdEquAu8K6~s_Hh-=zQ4bZzF#0V>NmRC zsVzrsB6{~XN=?_an3(hCfC=q4O`C{Gh-d@Q+89V^+GtvbP170cLmP9}W}6vg7f8O{ zoItLg572K1%(8%)okOtzKz18E&jS<_%tb0~V9_Jwgx6j;i+}v{pTciE{~|uNbpc@s z9G8Txd581!4eU;*n8dcqWA&v{vKGMp{e<`LCLA6V^s7Pv_>4@U_gu&(=9rCLYh%6d zd&?_>l+B##M@#01T8ijOhe>Se#tsKwN*ERp#J-WvdRf=JP~Eo~DK3-taH)#kBr<|H&0 zoGmEtf@f_INL#qs1p)yCNdb=>e=OqX3H+dY(UZ zIs)zyhet~QARjeLjT)jvF!o_^-z`c~4PEapK%19>b2jO&0b{{C^)%qPx7pxa+u*P- zNC7gBf+9zg$*##R6sTxd5d|Vl#>uQ%?`_VpGi}YU+RGO|ir@KL&*R+Y1bshb2a3F0 zC`04tgs554!hwc76KayP6-zBkXTsTZlFWrL^{KM?xL6^h#xP130}w;Q>7g>D40b~h zy3df{Is(Lpmk=cde2tosvldp%iZ+Z|3Yc5^RluZa@y>&L__^!1@ad-?$Ie!VyZ|Uh zCV*M0)90p{8@gLAR#>KG9d9%Nka98*kWxV)^~AK`?3!IL*{^8}GyXc6MocEH$s0}E zrUEYWoipR)@*APXAg?ivKmn5MC;_r{CBuyZ1jwSM5J)Jt{1|)63oI~Ci#3i)LNL=4 z^>@F&#B5gZmDg_IcR&9Me)pAE@ap_L4vrTnZ8R4<7dEFjGnoLWZCCn$)iH3epYh(^ z9{UehNHp1ztxf6662;oK6tW3JK}r#ci{c}I zue|G@qXZRc94ZKi2^<1JlqJ54A6h&_Y2yZ+#dbsyz+<|>nwyKRi>)ha6X$^DMp4i{ zL(mu<)rikC7VBN@E$UVfK#lxRtUyccC6p~75WzBg*~kFK1YU~4cflF@i5C0u`{CYG zp?J`@0>Z98i?1gJbu6VC8-4DXa{wJcpOT>a_BskyfE*V-p?i-~{wm^6zI%+fKKD3g ztfb@H4#>@ZVnhk{4bZd8$McZ~dGfvjClX`#73&;P^8Jjppi;J>i!1DGG^kgiZkSnyNjJfZmu}$Kzx)jL&IBy`geIzf8pzrVAmE2c z>Xm#0s-1_6>ELTX?HUafnDNq{L^^+{3g(^NL@52 zC?Uxv;^Dm&`s0KcX@g>A;Hkbh6{|x+0Zm5KU>1TCmdj-E{wm?&64kFBH_k4aPsiGC z^n6>PD#gJ#UlL}>?$6|Za4Q^rc`u7#Wh@*q%)lp90|3l>(zIhzxf3Fwfxx!x zoG5R#4bKS_;MviD(r8S&4WDBhh>)oTjWH-Lp6X~pYhASb1>iiT!&6e&{)0XhNE2|( z0*jnmln+&GO~8fMB5nL)WtPNi0&X!z%^#chL2Vygc^x2v+SyTs9DoYpf5dkXJ_!GS02N)y^hwxiz^csaSxDKE|obC$@WZxptJ&L zOh>zAo3jqP-5fnNU}8jNJGR%bf@J4srBwLF>%|tGUmJs-N{! zCZ(=WXE>YDOJKDMI9etg9``stPB>Z=^gWrgk*(BpXxkRC2$ymqjrdE|Nj=B3bh~gFihu#42Q5 znr~reGUuxUS~Q5E`Wt+>-{bJGV6mce8etex2Vs65?OP-h?uCG5N;M%Gta3(E3ML6s z?ay+_B9`Y6G%3{kG7`!VFm8NN%{&B6MRRT_y9LI4ci?-4ZWK%MUwv4{{TA}XnSjq0 zD^EB#N$_rhlup3KDS2eK4v&AKBVt)R}0Kb#1~(@jGI?zkkz@p86bOF zVHe19!Mh;{VMLxsn`b-`&JUQkEzV452%#Z$iFaaxXW3A}Lp4P%coX zuvnZ8h*{fcv1fi!8&f7QEx|%4!Q{XqZH_(Y-^cCvGG2Y^3brQ^v1Dzss6no6fOp@y zhvohunyx|9brxcTz%=MMI+CJd7R=3>JNvJ|h?XUr!1Xc#i@xAs(c|D~iKA6P$`LV; zniW_zZN9_to@D?~tP@ypeJgFLqQG>H5^B(TCAwz~3HE&YJc2n@u z(|h>$KKUH}!)IT>#&Lr`*nbb(^N4HHEo?U(R;4$&w=Mf^goyZ z6Q#=m4gFR2IaB!|00iVEMI4tUx)L!%3sGDEQJzM?tE;O&w4-JSj6m1G5C*&N5X`X8 zJkN!`EJv-Mdzmk$@j+=u@RdNKSUwz2q__<blPOPT|K-#!oPD^05g2Sk>JjO;3L1obY7HJ*MP@jaT zegV@!WmS8QeIx@=S_M&w)PG*PZ)~3o>N`B5JvFS^Q{(zQb$xJYy-19&tNKiJReh=) z*025jr|{!<(rF61Um=FVItte1N3B5^0*D}iD_6GA%o^mJoe;a?^{>`I9T$jmXqV^G z4jRT%{p9m&v?CZ)4r%Jyrn$RSu+zadQlJRA^OGr?b@oK}I0a;h*@iuzcDQ_Y6S-L; z9VYzpr*7lZw=QCLvm>R86U%>1^ACfCIk+!fE>ub_3&{LZ))xbfHqzCM$M`1x$z8^*mGyqijE;560zI>S8m+gUBQSgb}zNm8G} z+SCFd_M-9-Ft6vzi?8$>xTq5>yWXFn{4(=!@Om&-6Ov1KLGBr_WB zzVeqcv z6B-veNBID{@2;~#ZcoKu*`6AH`aM;7d7$Okls*InUoWGAZ*NZUItATN*`oUnplgkt zimY`Tz~80N)*~xL+Xn1xH+b*v3cvl0mvQ;(R%N}A^yxd;uIu+t6(HWbH|sy%v5MW- zK?L-i?!ymq#T)Y}zVrPhe(%nKsk1LrPq0yta+ZZ{W5*0q3w*~QNb_;Z6htxw}ArJ z2&S~rHb%{|ewxI9Nd#tH{2+uH+NvTvn^b}KCLd$IwTnwHK820*Gn7RlRUv!ol;kst z-@xDlHw*8M1MKHf_ZP~``_}VvSpiDVyPgW5jS({Gupox>|<&f(zx z5x#kUA4j=hcVmJ!M;!M{%68E?34snNhCt!wgN&Y5(wnCC-$pmZX4B%ZJ;KfIBA%J= zVRIU)2tq02bH0f3>=tGTUKjs09>_9`0#F4Cnq#`>=Blpoehlz!s5}5jP+5H{g%xM> zYz+l~mDb$P&^_7e)B9ETHF>UGpE(vZhJ&8>K_7^k`|_0U59^*f9;Aph z!fhJVE2yrFb1s-|bT~R#;h+3>{|eWx%<;~h#c6=71mJ%J@HVGwX&iL?EP!7C&_6~-aoj0N_>#!dXa&)mk|c89#o2yiNg zV9aU0c(}wr|3AKid+!~Y^?VbqP8sskCHb9(RIN!vtwo>$t2SWX0u!Q~1{B3nIj8)W^>?NkN@ z-y5TfZZ}iY8r;VLo@sXR^mNzSJ*2`-x_I!wF*dR}6xClFx&xc`+kpY4b$|s7y3g|X zcj`R)HVuF*VQVbQhnxdLQJJDR-y`~|%m6Pe7_-0oEfv<^cYC0N(=vR`gQvry+ke zokslNM?F6G=Jl#USjzfNfUckB?kG zgR9emkcaqkt@7PNO7skv<+v!~`vlmkE3AS^VOQw{UfDZU6>V1)Oyk`vpbp zn}_=glfgo33mWZl4J}hQfna8vBHTYpICxmFII6bKQVMn4#m2@$pMgj_ zaEp|%v)aUNvtiW2(r1-TW0N7v`B_li)IL6DAp1=rE2zz6Lc_5Eo!uwB+kp}mQE`Um zsw2(}4wcK<(^4CFs+~YIoQ5USL5J$e!sTosWI7AC-wE*SK~ZuP2Q|OS6;+Q+s&01d zZLV`_UnwVeEm%)E^mg84Y9Z)ZjTOx&*^{%NJwj}DC;aUUn~IeuSw|pRzD|aUu>-(- z9&!*q0BQW;Y-atX?y2FC?x~9XJrB;-;|Di>WiDxTI+}zl08>Z?D|i{Kjne{HvuU*W z#ari1gHVob-6~cTM?k`v9Au0&fEY{IPrjTOk7>j(9v>)iO{e)UQ7|r$4Vufl6P%ki z=&eJ^(4tmd;RfG?QdwKm3Fea)$NdV|&TQl5$M>*%ra?+x=87@v%6M4Ul6}u)`GYuP)n}Sy02)w}lUke^Fd40RnPaP) zp^HJrRN;YjQ8 zas-d{{W=(jTq6`aO|^({5_7$)vE;4RtiKX^k0pCILar_4!GOX~U*&khcjm~;V;^iW|gK^j149l*MFIsmH$u*7pupT+jp1jypULWiI( zV~czzDzRg&c#>~njFI~~Tw0yGyp`%WW;C5F z%Vrd{x3itMO+>?MO%pMXE&lM}UHt6cNAR`V&*I{l8PF%OOysOr*v}T}#>%r?M8r5n z8xE0jZTH9q$YQUYIKXbW2pDK;fTjg4y8~0R*bcisiKX6;RY1OLGeTRx)^pEZ$YB0r ztp?s;3P&;Wc4LC#;(){0_$`cOpv}(FfABLBk%?U z^+#~^E+g&YvW5&Sv+P<2nSgl&@8DQAwW4@fD2xHUUj|sUr)90jt~?Uh&&-!=s0L)z z*b}H%#gyTPbx&2ky5`Hf20LK*K|_k`blTwck6*?A^)G&ibGt1LkMd~Ff0{0>s_9%V#Y3G&vQ- zw#O?s_Hbo7M?x`{XctTf+BD8KyB6EC8LsSZq0dV^e&#ZM>t|oYXKr0IaD@^$@l;Qh zS9Ni1Bds5`5m^ioNF()2(ARxdef0wdcsc+(Q($HeldWuY_Y)`@6$SFxwk7fXWUCbd zCFW{i%<7qF_sSbOw5r(ime#)XxH*}|UW_L9)Rll)>G1BsLp)oq;1_Ry1W#O?BbtD< zz$Y?TS66Q&6WagL_aETs!NSIAVEfuTDbOBiWj>aGmfo>jW0|4?=Eh7oSTMnRvI=?6 zKvvflqpnQa4p=O(JYLZ{dlp55<@D#C&7?Grr6g(>1M^J@$}28N+Tbq?S%HZ$pngDb?az>EP&@Hl zKyEC((z3IYHyj#d>Zy4s=cT+*ne3YJD1x=LE-k#bD0*`YBKF zd9@wy`?XDZ0N%?4Fq@945pWMQgGYuA~T4XU+l5pG6eaOZJ z+P2_mxx_cV^bDT9GDArOSL5YW{rsdrtRe8a7E7jA-D}VW2`xZ6L@8tL8Iv}duy#rr zF|=r!7L8a1^chHJ&h}Hqf&725N)g4*`J2r7LRl#TXmSxjZN*~N)|*h});corC!xh6 zt?=FbV|@MANAa^}3t3Ls%Z6KRTvm|1#(|ZF*x4m>pQOpmc6-DENWw z?{mCp(G4t5fW`;Y={hyX2~!nk}sB#8RUGYxfa5c{XsdTBUj( z$Vb!UQEWlBQr0)T&izeqC%44mIB_{@_R@XY2Wuw3Ed)&%F~ z6I|Zhz`4yCCXBOEZ1r$7x8n_HJ7k)6X zzabfgj^-LV3jtj$Xk)Iz@l8RnxWRmLhOQjo`0%JAvr?QqPSPf%1=kNm2duP6YSVNJ zrzj+R*3Y-hcP5shD9(kk%g^6~2ZqT}Zrq037XsP3~v(5Bgs4qtWv!ig*!Km5`gMRmY zuj}KKHYV1&-VFtxZ}Pz3QDC7m68ww-MXiaBivTE307!NGs=ot6@j!eGOpQ~MBF~er zCx*Zgc`&a1`^3Fa%oL^xlpcuiV?% zz~#vYVRI8Z^9J{i9^j4ZkK@hfu3+A^$h|<4%C7e*`1<&-7XMYqJk!`$Q*fI@h9)MU z^K2}ys~cOG8NkY*ej~+NsF#=NmoNwV?kmD>v@1n`Rnr3!iOq>%rKwIchqyM~!6%-&f!*CH@^K+3(t__7b%6}4?J~ae6uSa#Hfw{ z#wktqUbj)|z60%It?GU7&yTTjT(C?XONPD;bE@m`(Gt6}7GHh&F?{Xvb?ju|&hh}W z5HQI=T2-O#fw6;pf%lLlvZrT}P1@6=d?qF^=9@kIcClhteXb4O6}^=UnDS)bNxU*}?mCLbIw z@UMTokN1xbv3EA$;o=bc$4h+d@)P*Q*KXk2`6*(Mx~wiikdB^oxYgUwjgOm5J zO6l!OC-+I9&x$GQ<_(Qpc7G8fFsbJjZ%i6YyFjPdv8J0u3c@#NOz^!&LWlO!6>Oi~ zKsm9~1uZDxxef=awb1i9e>j;v|5fJ?Co>|=2p9X)!VsPF2iNXS-Cy%apivwV+fYnq zac^se%iSi99whwU;XPd1nqVVz=nyfB9kwQO?BfV;ZQQ_Pn;X@rEKNhGF2xBa^W0U< zm38DOYt|&!mSOC73n}gxME8=;7rgP9(C2W#{b7&d0kuGta#9eyC+mRZk9IOdrkPuB=C3zW(^@ z(p>9KV5|hvy#0Kc)EiGFjoW_j8&GaiQ8l|0oP36()t8A~u1}0!|MJTY?t4AmITdF* zr}A09epD=wLx-K%CcJg~W4!Xm|6_B##YcNRO2KI!1AtWkuK;)tKu93adKthEIbxp9 zv3{Y!{ez63{p1Q>dU3aM8cJ^(D(*p|%MFcK_Pn3Z@@JNSuP>Vc!);q|dDh|D#uWGV zfIEAks*%5V{W1Lf*+=ojx6gyNOxPi$LbAUfo&9j(WCh;y5D(*-7#Z4To@R(*J`ecM zJNIx9Mt^pP^Evw51G$)sK$>{SmQjkR;Hm(0i4!AYq*hTbl_Nw=A@fuptpYKHQ9I9s z$Ge!2QpEe8?&JFxui=-sZeVBoJcb87VhW@M1So&lZBM3|hCg2X+GE4|@pp>Vxdg33` zO4NcRAE?J%##7ZzaDj#kPfm#bkm%y);M3c`=MRiUzQ1MfRLf;M*j5?yd?4e=wEAXX#m%_CZ9cn>TmK!iQtFKgKB#CeUIT2oFD}Y9Dy$ zgT{#yXg0LZ5aur@bZ ze6l~_<(GExnTU%9yTGNUPi%Hkvzi)nsxBGeB zt~ogBF&`GD&do_Jm}PdeylrE1IksCAleOd6u{13!heCgd#RR~c7)PIfO|0@)>&*(@ z9rkc*`W^h@=5;)Mbrbn$fy4ooh*1Yvkc}Qv#A3*J@2x%j*J zz-R7qN(EF+8_=ez88`~EcLgh5tY$6RHlS%tvoHmuG`6*=+Jyxp`_dCTSNk+VoaX~lMD@pc{n8B2HQRXg z&I8;&{1_iCj&T3*2*11hUF^=L07gT;Q6^&2&yi!4L)z?uLCu2+xLvcHn^?X$?<{Fl zV~bX3d2i{wPfnhyvLoo&Q9L;qUGRAY`5I$vgTrO>>@|7dOadNvEC_u)4je7qXd32$ z;JgzBZUW4*`<*#sb&>y?y#gw&N8p3}-Yi(dj0@TMraiQi&u&h|Db1;xr_w>MMdOV0 zO~Ado2l&%pU&q}$hnP$fj^+iYc5wIa?*RS{pfncI0@yqgEACyY*WJg~u`xRbZVw7k zh&=VGaZ20eOS$sZzXf)PqV|8>I_R=1FA736KH35solQt4+e3?v(pI)n_SczxX4^P0 zXgY4vi7bJ?Ldpc1TqzlN%D`$@u(lGay8J9P)wbFGB4N?@m7^75*_T4H)X9=E1#E)! zhrzgDG0<{-h)6M2&Q;|CrHE;2vDY79_F#%%{pbmN@5&}(^%*GK1im+h^&Sd_VFXlR z2(|M?bLt$*fD9URG!Qw)MIe})oF=5vL_<^1L^H%!uazF=Bsw5A0ranyMw?h6Q>eI- zJ6qi#ZJ~K&z8@%XWIkLhaH*7G&&jyza=vs1b2%}xZS8MW!q-moZ*VK~cnc)PGH%(1 zjMZ}yKfS(GVXqF3 z978dqh(I1n1rfO~*8j4Vp+bQ&p$%DVRDofBpjIcxlluT__0*FyG6lVBSlegMg&JoL zkMZQiM=+TKL#Qrb%uP)hOSF0vI%u_G18uhFlge&fToofn!C>*B0Br!ecHE9j)qi1w z+xPeJn;XyI=FTS0wZVJ_Qd@{^$Y95^0ZKKlFlsKgU4vl16i;+?6R|Ky^?xw|_jqh6IaNS4ZgqwRh{#Cu1<+?Uws_lGf!cjVG{y!B<5E*c(!f=z*KgNd z0s7lq!ew9_n2&2~i(z>7dsIFvA8S*FXylm>=t_^r*E>ABGsAONws2!>iU!6-%|IA3 zfg04Vl-TmJe&N%dH%`#L@Dy(0ayqDhFUJ|)BaM{itm}}Ojso=T&jUo+fO3^$uZZ6j zL@Uuf8E@r(M%}gTMh(Q!yDH^cRib?XA>I&(AK;Cj;dl7}et-v_pqq@5X01Ki zBNMfyE7YtkZzfh|CNpt7PJ9funbD`>Mw4&*T!JJziOvPjInAO2o$^UUqN;x06l#<@ z>zh4D^>EhrAm8(llT5LgWbPq>GJxtV2XVNJbvr;k0Y-#-**8oYqKpui(l3p`)G~6; z<^TFj4KDRB+79VFwTPB|yk6nmn1rm|I;R{iC9MoI(g@(nQ za5&t^`5$b{4cn*Z-a#&zq>^yTCH)ciw8)nDUx8*xgpNc$K|vFZ-XxgR=?QlR%oKE( zi8Tr~j!4#A`hgO7E&a#jG2(4^{S1XJcK}9g|7d%p^8phF|7zDbvo+pdzQlU0Xj4;T zAc>i!RSWtqNzXDjEpd=5<%7JW=qxXXnt4S3z$VC^VMxBEQ)RP0#gt0hIhHW&aPa!Mq zxiQubL+o#)ZLDMCW~W%X-QrMvp&KxD6ld&XQLkY zGga+}o7)bp;dDLX;{2rVj-%l~+q1B#P!9NtaF@~ofnme}S=RYlmXl}vHnco(@Q>#~ z1}>L@xRLL#HapQW=W32Cxq^@}QB(+Sd;7#76Kmf>j(w*03ItNTI$PnzSm9PWBKgs< zf)|G)tOw>t>*W^TU!j*4L{r0X>5@C6%#7bNth#BiSssW}12$7YzLWSg6a{u{vJi z`IF;*Xc!KK=1v1kJy;F*xRrt($mm#0veLqW0?O&|#+WNg^Ih7YS@+Wk%^OL|8z^s- zqh}>}qim{tsSFa&K?_cVa4Nuk!?3{6HjY>4r?@;j!PGV|GaL;=kL;UU$8!oiMejtr z!I;6{!b=s`rNBcz>alozX06YcM`Ok5c#OddeqR5^=cAAK^5F`r;=MjgaiUuA&i+t$ zH9eLjSM}V;d>{3yt7mHZ!!w@l9z58_V+=B~Kp>D{!3bMo#fG&del#1{Aj1M=8Bb4l zSG^YzbVpv*5l2UHjr(zKQe(e}cZ1Va$5&s~0cMF9|2IKF zGui35Per64m>hkW{I+TGDj^Wc)FaDGRN=`iM41hN5=3iQ*}qJa^VagK>H zF@xLF4Rd5aYNZ0kYlLLn8V~b>YB;JU>a6=rUn_`r*F~rnz2l?l}T@;fjO?9oR73pDF2{l ztcs=_A!g%2zXv=Ow~`-Nl6vjHrr^P0L#5CCX|Oh`!I~LTa5u+PfY-017n0NYG;cquZ;kvl!w{OPD_ zUy3xvG+?TD_F#`_ef;dfevheaGh2V+VWEsan!GX(VYWS@r)Deon9)(uZr~l}*bK+^ z-BhqI^AN&j%=nkT`Ux)13i?$=B=Z9oc~W&q=UIZuhwJHt*RQS@g!a*%rR`Ic6!roU zWg+w%GvADYIRXWB0UI4cRpMp6qZGWN<)fYGz`vLqD^Opf*CW^m3cF+wLSR4G@0O)% z0E*zpC`s-*s1``)uNT&MugZS#T!~DVOvUwEv?=P##AlF2t9#x2;TsQdBTHf zi2j*!SNvb!A;T2OyJ6r}kk3*F>epjX*adytn#%yyzE~41 zOZY&8F72pl*7Lq@-Wz);IHh~HNu@IXF`7LWB-QtLFClaRhSQzgvW+?=^m zF_7dQ%?T1Rz6f|;;LT8MOEV^Sdk)e!d-MW_PSqkD-UoMV(f{qcu5+ZKfvV7ZR|ysmciJAIZs z?BeJLLRHI9HMktg2xyM*kCl^z2<#Msh*zc2e$Lr5v_0|?iUy-;U1&Zw)fBMBr;d*= zHu&ytzW{!23NCg#Tq7g!f+59=)`$JgsxN=Zzto+iT*h=K)UYQ_R8iV3|nJU{yo zKYRWNhpCUxVf`|?j;V~Rrlp7>V151a^)L~3&~y>yX3b%mo_Ca*t`ZnDpN zI)top^ZOXTi!uQ{f0RNQT1Ow_&b)UvB}phomhPIfG`=)sB0dt4&jn)It9iZoInG1= zzfI0-&;9$!(k|j5ZDD2glkp3>I{Y@f6*h!hIrLL-FcGV&q41_fc|J0}qCpgGk~~8d zUaF*3T1nQ6roJxP2T3QSf|QvnCYPdZ0}s}ri5A|RW;K*L7kKd5^4@@?SP9W^%8f(| z26?wNja0Y(wE7azYN5Yj9pXybxn_cEg6DV5Q~Mq9RDT$ZKkx52Ck)K# z)DR`^9O5*i2sa{N-Tg67OZn`Ra~#e#oN%&e_%+Tjo8}g#wPcerNxk}hWfx{5abTH= z*3E0)9?pJC8>=n|p-%GT{D6&C(fYao`;;4M3KET0{@Z?R_~0<($@vat0%`ysZuY>G zF?eYfR-vZn3lhk1I`G*<;07+Clm+@=A2ZI%jNhJK<4HWg-@f<^j~qJ#C0l#-eG9<%W?0VVPoqaEP)*8J3KCOhGJ4L2rFI z51MYl^&N|5UgK zv4)7di4m-&|M$#O+X_#;P2I+lZE&)K^iS5q&1M?q)pf&k_a?%Y7QyM>HCS_U+oz8Y zI6vEh58YsCkW5+x$ixuFz|Zjh4Nj6*gmYC;N8~9k83qs1Q>jNM2&GWDKD!k+GNu zhrd$#JoS!U37l;wTx_-|9r*Q|Yy91_Kfqsp{uGA^Xvd1^B7p=!3n_pYLBrq<_14i( zb>#py6I*##4ixe zL@n*2sd6Qf(#&HQaVAN|o34>z?@8P_4PK%P0yT0r6M#1tcKdA9S4uFpl0f2T@E)3T zlXddEKwU?8NFdg?$y56+d8%r-Nb8UgwPCj@yb6O`^C5($t5t zoTH~e2$cLTg3t}UW7M6dvIvg@mLU+iro{xrT+n+#tIqe2Ua7{5G^ac%_>5o~HRZHCe8g~I?cn;2&z zgdx@ubFs_|aVnQ*>op5j*cG!n>v>ZWqbYqv<%)y4j4`RnIVYrfuA<2ke<$7}f9{_@ zAsw2`U&4vlaUpWMj0608+GPGhp&c~hRh-m2!~zjc)2AC1eg9Rk%5%eCSEC5ycg<5h zvA&R(A0o$jzn$^%<8yrVYC!AUCsYGU(!B^+Q?~x2hdW%HZPFI~9vB#8BCcK%-eVxv zi44au?^TK<=kTY@6I|446AYUGPTe@hcR#@^uQ5U)f&dPl!*cyzJB z_dhttWts4@9`Whn0(EMjoX1>~fdCm?&#R2yX^F(Xo2TJ-b-tbPvR&abT;k_ne2&K- zY=C3U`vIsXO03#YapxSH;mSn!Er=ZAr9vq{6c9AEWQ%)8%^L<90u?cQvw*2EN%fLW zCr0-o2}mJqnihYo(oo7Y?jMcj3t<>5=Ao4k|7y^;W&Rq|m5^LtcT(s7sa2pE!~vOP z-cKR#V`IKwGkIBuVuN2~Fr7qjU{(aN>vz#!_;f&8N`13FiGw|fLJl}*NGmv2w_X<& zT0;dfG_dUwh{1PL;1_fZj9D_vbxf%&y;(};eE^+x++IIDbt99xBK`7=yt+E#@Zb#R^Nb#msOUF420FaQlw+Sj4v}WJ zh$YY9JmKMXGb()j`h=f<`~p9H@d)ke8uUM^G<|`6^JCgbqc3Xa$?SDeMnoVYqX&UR zj_K~XDGD9h&@;v{X+)-`0?!33~g zvvZSVu89zzf~$c~Sc{H=_i0ilNCxIiL_(*GR#a8Ln(nHMuaG)N>osk+nol(-Wl)vh zp5QR$ygvv{u1Ra?*4hrauMHX!EukK6a#2gMzdwWB|!%4~2{wO<*LN)3&mX zwv&By*l^Mo!3X4LK4Y1$-p5YYQh8ra&6(gdNW-MSQmn&qB4DM?Cn+=tMf3ED8L zVm+d!Q#4rLHcx#&KCY>CXd=X6KjV`p2g)e-EMQIf;ogpUgjvN(dKk@1lxmmlLstGe$n#&4!$n)1j?jN3@b%d&Rq=KWAnrD`9vha9(o^dS2ul){7!b;x-0wW zu*36v(E-QV#gx<4erDvOpOW82@s)ashh@utyl zyw>HKO-1CCh(ZoG51vW62j;J3yVUI1)JId0#A&`_=^2}t?u^HZ$qZoUFD%nF4A#v@ z5Hqc3Sxw3!xew}~lrRV;(}52X;ri=@Z-H6pCVowLD}hEED8xBLdl-MO ztQ5a{p6ZYA@2Qs`5P84zvkjhH?wKq3ZjUe;toull1GJowrD&e2Sg6U1s);{w%e;j? zg23F@sZm+3)?Js9^SVm44Q+u;pP zcvDaK>yMw~&%gIE`kQM+F9?K(sHojMBd3M%0zhjEAZS5G3YLc1GBynd=l2Sez&;D|zOEhK z%viPEnlq0;tf+OIvt63X$RK0Can&W{-%2-*lEV}8yzt@%Dc?#3O6H2 z{4n@$0$JcwzrX_X5~Iv)WI6Z&0qZ=>+(ZwxHxR^=yHGG8mvn&;BA;z_w zbaN?Yhh_-#=%OY|Q<=Sqh0yRoFrIDJO)tlvv7Ecr7FnBqUL4-XE%Nhwgk8 zV}#_xk7c1V5m>t0?zupG`r!e8^Yjw`@#-}`+%IOrX^NZNd>t)Q&H((E0}^3en|dEn zgXfzqE_Y}6?eU18T|U9zfBp&14}pHHC?W6_t--fl2xhSqr|&={|LnP5b|9VBd(Y&~ zC@DB`de%{IS zGFLjvTj9b-q{;koJ#%~CC!br$7(lS;DBTUu)zcZ z9|C9bP^W(bOF(nB0S(pc8ysIMr#T1sKVk))Jh=YR>@4E~XX#J;5$w=obDu6)P;7T^e-t( z(z=mAo)eTO)7EapX|+A)M9L znYenG2~&L)i!j45i!M}Ze;0{LI+=sfDEMu=Jm@#PU@d5ABVMteD&Bc4lQWWlcr zDVos)`5OZG5vT&Y>#e_U3 zB;8xbI#0#>@l+k_bw!DbCigz4?F3*m;cP$Ax^_P%!W|I~??J!{1bRN~h;WX9UhCj} zA#Qn12JJTYB?#r(uGFc+ZqY7+NU5OiR)C+Ili*D*D-m2tp3&v! zNTv~`ha&Ih7VG;C&!h{5yi4iycjHz$1gho9jm zpL~Qs!aV?frwtMrz2bk-T%x`nd5>Iw3i?o|*ZewwG;7w{&?@sLo+@yx9j8;psn)dM z1kfUV={p)Y&LzqyqgC{qMK=(=4E(L0&aWNWhZBV!l0%Yqz>%R$NuATF(XiS-Wm1lL zH?Y3f=y)}A@Z26E5CJ??a~UGANgE7!t`#QMQK5~QCd@gXnc3ZUk`KsG;X$*?cbEATBmrU zDHZZBtk+Ve-|amg+k4Vr@n|_HQ-mx8IuJg5m$aHl)zk}?yzj~awKAZVM7wR%n8=*p zk^1rUWo-wu-?!e-TBDW<9YFGi+J{4beM{G;itFo&H&^ee{blq zlz~8NotZgWzllH$4ypL@6~hdaDLU8%tz!ftFENl5F9$wq%>zApjIwp@MA+|>431p4 z@C&}*Hd;*DsMLfge2DqVK>>K6Q3ZlTNLz(qk-+8uHjn>=fVP822povh6sQxtoXgmo zHCdBrd%#w}1Jm-ImVuGJ_!L=Y!IQpGXmQc9u6-;OT17Dpo7)V+%ufRV3tl%^S=k-I z#bZE~q`Qgiqr+T;Xy!l?SZISUl@#yCQ#~%4Q3UD0IWwi>@wedNz_%)3?Qq9O#Nw+$ zC-;>ksqi~mQb;M(Sl&9{85}MZ*0efWS19uPB;Lm()bcvjv)$)~0^I+gphq)+^~Lh3 zLR#}oMt7vDx~|+2^;3*m&mW)TAI=})e~(8TrY$ZuJ46XExpUS>N9hf70K0jE{j|ZZ zO!)U#SNQU?XL$Nxm-tj<02~XOq*xfJ*5{ZhK2Wb6uitc>t~m!OchD>{Zjnr(N56re zIGqC5C*bPX-w9f8sg3gbE!9)QsV?S2q`>u-h|=C_CgXA0^P5Df$-zrxR$drzb5!Oe zKl?mn#_87Pr<0P;+2X3Ln;=&bU^Zn*&?A061=k~9#mkr37l`{QTIQOzs4^welXJET+Be6I-;|UDx4AzOXtlB zPEF%?J@{BQQ^8!YXqI}QAW-tT4Pg+AzgYB}o*+G}GWxKfHwez5~)rLmv>P>xn zevNvpI362%twX@-tpfFgdU{Jp_Q`o<7H_xfl0JFn@3Dotg=rA~Bb(ojZDW)h?`Kk~ zsISDj_bY|vK@sadM%C>29YQ$UD*kL>>9rd!6^ry$1bjD+>Qt>8tLB7Eb*RRA4!A1! z^^sf#KdP&?PQZJ`wC05_k2|OHcO5NaRlDQ0{Tx$5Ehs3e18o(g{N_yIIuA6vfzjf5 zA0!_z1Zy@F{^)%X3AG?@Aa+Brl9x5tS89zz1a+tJ1o@F70wC^!rz(k{DI{8|b%O9z zAif<97F58ByY%!r)ie>7(3eX+{|$APtGSTOR|`BA|_gLQ-Fxdw{qunUZjSk*L|780<+WkJmK08~J$zd4=}Do}|T z8t=_hy~~1(Bg7?0XDNgQf&K?qbBy1Z-o2^Pxv*GJd=I z2fsdljTcY1AOG7NV@7X=Jf@ipHpzpE@pAH(gJLBE&*SJjqF&r4G&@6cqR|c_L zDI&IpcA+6Q7}|)T3wSg|Y&yes6Bdd%nIcY?{Oqj7*-5+HYti=s7Bjj&BE$w(LhdA+ zv77hEAtQttma=AcXK3bk<~LQpFIqJv=JK2rgn|kwLtauKn>}S$18zg*gf4=QCmH0N z?#U1wgqy}TLD}<6B>M{-*q5ci1ZPs15wC-TRudDPwfZ$d^j9jR?0BfW3UaI^FU0hK zL&o@KWg?7H0!s)zF{YNDmox{#l1OIM>AB2*x7IOh_z6!G8b_(*7^qqIlQUNuFxbbT zVh8N1UJ*+ZZcBxVbUJwhg}RRzSl(BNS>xZiWZB!RjOVi*wWn&T^8uQmU>)lGgGCCvr_JM z7jU&u*M@?{SAau9SjbAa9IQ-M*R=~ZXggc-fN6@D#(*vc41I%cXb}5=aq6%+88B@- z49oR)GcDH}jN^!Y+8~Y_wBxwY7EKciWP|rVjKBo{J02eec4o;5+2qJok2eLL-;7Yc zQt8LwbIAfP=$`XILz5?ZPT`TK0>^45g)8?;F@}%J)gk1_ucqrC@amlE@ zloNd`5aR{F;>>9H*@*@~dYoy4aC&Y&{Hi#R+-8=hn}R7&heT}}!gztX5?nd4ct<#4 z%(RZExoWibFpNh^zMf`w@DgwnAcl|`Cadg+4(X%9JNco&2#UdcjNl9l z99S7RVo#-XCxmz*!L63{JiyxtduRsh-jnkfF2SM!uOP4!6QavP=zK}KQ%&`HIaj)J z#<1}u7cM^WRobiDg+L)T)6 z5q%TTMZ?%MnA#QzGd33S&G{27441~Z}e!(hlc7sPoN zAA3c`6EfH#w*U(ZHKFvU6%=?N1Usl0V?^v4v~7!Kp%5ct8xFyqn~2zrFaT+v);a-Y z(*wUx?bq{H-m4=lXD*{Bo<4!rfqnI)r1DMx1nD}C3{Gvz15A@v*-$aTtW{sQV^k#4 z-itTd`Z#9|sO$9zFj_!*syS8W95bR`j_kcOa;8rDzx4X+xl7l0an|^TTI!iA{mb7~ z%q_IXruu)b*V_b^cJY|1d1Hc^VW!Xb-y*psFT9ngtw}JY_ z>eKBt5)&Ks1IGyS{&XB9I(6{NsYTlUY{r;H8HNLnR7f+Po%Z+z^<@!7Bi!r^89;o>>Iy?l&50BKGz!7%Y=z$bHUjLpWb+VkY2XEgIVhi#3Qn6j0~M+x(sVE`;;q@se1p+U}Rp$rS9>ukSXSl1)r2D_VE zxPd1vTBg(pyh)ZZFji9t=Kk1?T8rl?;A|2$T5L>D-c>xeIAsE%tU^6d&IHK-2$dh- zN9ql^@*5y?-DH)|wuj zv}l4=+>np3t5P9p0CIz^5!YSvnrKn0FoihU?+Jr=Lf|zK7?kaVsGShlSYSkLX99pM zLM`|Uq%e+rV-On|bih_O+&qw#Hpi6l=JFK3yuO6J-{H!D(`mxRxJBCr{Q3Sp-dFCC%8D5+ex^SU>_B2%I1R@*E()KzYckAM+3Ll>EWGEqNVX4$p9u6)F=Imq+DU!QZLhghC$FBByNzX?s;>!YeDPECI$PoA<}6l*G@l z_|5xCp;h+ASh)5UB8gORxn| zAM4*mMUz1%vi6qgJEBvER0IyOW6Uee+lh)zz6tO-IrujAA$?-*fV2Y@XCb(haD6Aa zT%Jo+_>?0}L&lx3vq^v*9f)jG7*jEW=Ec+C43lz42eAZFelw?+Ng9@pkmS@$7pf>= zF0xrIRfJ3|%W7{a0Cqjr_z!)Jjo^e`e<`VUZ1);3JBs##hD z!Kq;O0@*2Qmu z_jP<%aUWYec`uto)Q_n=&(n|?j2fTW1*fca2OdMW)#$oa*4Z&wm*;d5K7Mq-VT5no z(&F<8VQMCIR}3a=>R_}uH^sEia~)Lzi-MCAjzgpu4Q)?gc0H#E+gZI98i?6>(bSzX zQ)Y6mt8heF8v?VJ*%SI)w zj0v>GtB^H;b~Q#TaM1&LAn)iZwhN3cP#9=|C3V%*Dk=zEn}Nr|g#J^>7bQp5vfoE; z^|}=x%z0NdxL~?L2V!O8yY&q98X%JLZ96b?xxv+uiF&MwTAVb>a*A?g6Lg1uD?Zve z#bTD}t-0Q%>+@0ujC@Ehhe0cwJ72AYUgjE?@l1HPuh7Xz)(TbDSkhBxq>TXejPHQp zs8p^%2#h6qH>FRgVy5@?k+b5O6e3X`SF5r@PJFs70^2E@_5IB3wJ3oRDhqmFn1s{d zq>U2@<-zh}>KghZ&t$8cf*1psi3c0-H$Qw2|L~I^;-`Q8r}(=c{~^BjU_)hMY&L|N?UCgv zC33-7NEUVq4^gC}2mRA=AQe~87Og_DI*lFe@;w?b&J7&tXUc*8WSm#*d*Zeo@WS`d^as@xKlSV37b$+7J!WoyjC$iw_1$-DL zKN4@Iml>w~z2eN`Z#cMHBiQD6Bt5hH(P$(v-9!yOgB{H(v=mV`>xA!`8T_Rqq_^*3m zE__3{!8>1A|LdC_`+Z=8F-_`#DgJa?g<6OS zp_HS%sNZUHiD0PcGFTy5!(fZTYkvG~s;p3@z{nC! zz0%w2#w%wj*LoOg3J3EjQSKD)gMi-H=P`sFUvXpUGaF2y<+*^c$(z0l^KAT`o42^g zNI6Hn4bFA%f*^wXUG#T~mqe|JA-E}igWS&2SH#~YL}AA&;|bTx;>O)ozEr*scO$im z%_Ir>nQTnA0O|nXcuocD+v~gJx84QF_3ysaZ+B`e!a})-RxFWB5*^63MzEEMwn!j` zP(7G>S{IHAZ*_yh@_zU>u!FiEJhXzDTvJ)p-}K{0%fdoLfOV4ltfG!epCJh{w$_<6 zN;TU#D{(v}5rK4XCXU) zAhr&iiViUA8|_ougWI95ao0|6+mlEtnJbTxY>-5DLEfAYOhyY>PxLuNnEUW@PphEc zmo`LT5!1d-!mqzm7WNPU5mda|46WyO{n%DrPiZehlVwQ`%MZxGlMyn}7^1`K;K|>6 zhD^0WKje18myd=0&Ju};!|iEFholwBaC&j+80O0jPj-a|WzK0iGSEgF2A z_B-aixldi^#O#{3sCzfywX(qas+&`lafbuevCsW27Nr5N5J4#Y$LicxasD_B^4-V4yBOz6DJ5kAd{5`c2Mu}@t}>+Tb-`UJSb z`9lz>pMg(6``z3Vr<)TV+)*_2?&?<@h=_j8(cPgyuUj=eZxRkMNPHX>$cYBKCs23m ztm^HF%!yfnLSTzqVBP|?$-wH`+t1oPRzWc;aErDpEp@2g7HnI9YvQ9=QW)U*JgP*Q z`n$=Grn_-&Z)X9uW2d*!>U9y!9hx0cn$hht`dx+cd$FxT<&wHe71IQ>$Yjp5zEc*k zB6gxhOO@+8I)Ldu&o-{deAWRLb~07Ul=DrjK$f3M>MI1Dlntr-S!}*Zgygo#8UyQw;_V$F7Gc9Q14PW1T7KD+gCpb|{z9Ie&$Z>thHC(vN{nmYnJYTIx) z6duG&V1LoisF)1pcnT#QRpw=$7Z!)o(S9jH*F?ijNVxW3f^y|1f@Aca20tj~eH*sz znEAWRVu7R{nVO3b{JUhkf(lZK#R2`jjtz(nz(gPsBUs06+!cibBMXh6 zripxltaTCsLrGCw3jw7D@>mO_4>Dn4UECxf&9^P}fXGty`$vd{N~s~rCaC7xw;31L zwgmC>J6O0|p~o!$p3fbrm@&Q&upYAu;Bka0isBIWo>V9KB&3Xsh=mNucO zAB@YVCGq$P1F&|Wc7zd_9zRwEoK8DtCdx8Vs|kIGyCOt?G}$D&PE}03qqv@^!l)x+ z?(D*XZ((5@DlzUFd*r?gRdCZXb8F5r7IR+@re7=~9IbmaY=FZWODO}&5|bGQThqjs zji)5NI?t=B= z3CPx*S?k6%?gTm4=haHyhy8-*fB;yFFCuP1d2o202?JJ)RYq|&d0UqRxlU3PBq-x^ zuU#@=mk>MQP2H)|NPg$jDyY!p^&P=qf{O}UeW#w(wyH4q!WaQWA%aa3W1u1$!V$E* zW`C4{ZqjO~0C83Yv@*4I)Zo@S*@ltPj}<^15LJjuAa-QF2HRZ0sM>e5uUlNBQE<~L zE)1|xka7rj%wRO^;DiGK&@vg!{GSf!-S0yGp7K26g6`wAYA{lW$6%5kTTp)(qTxbS z^kWCGZJ7HFZuTA5Z_2mF6J8x(0df-DbTG#Sbm=+)2MzM07~~XD!n( zuDP;EwChh=(Pe02XD@%e{7nF2EdxBqms+`~{3*M+R99rV0MkuC$9k-p#^MW`A)()i zV^L3TXNnSS`odJ|3$gy&3?k{<&AY_cZ1AZQSMx6RzTnLJ7a!qsKE}9Dk)9z@{5p2j z+gPFAk^T?>U4-Z0z$(RH)j6zKRltKo_o12E;oma1&{6>S_1fB{i&|~CP4k74Rnj8l z?`QZ?1TbG9h?uw*1=z3g6o60XFpV&=2}@<*bL4kg|Lo#1R6bEDT~Asp7HFMN)+H!b zJcsrrN}T8&H47sGmxlvJN4ji{H;O836$lIz8lYauc9=kBq7WF}531`@)dTcM6bi_R z7(lf%G8)5^3FK^(c`GCZv^vWHQ+9?i+v$APzumeQ!y- zGyp1Wf`^$VYA#fX)(H-{2wuqm=Z!m1XV?%o1MeNp73+G*XKG6 zzEYF`aaGDO3kk5`X%;9q7A>_6U1<2I$U-6ziUlam+TwNEM2B?y4 zG@|#R6Fm1m258Wf9KFBwqqcfAIKDAfS&7kuLiYOz3}pWe6te%1#`Ro9^aH5^Y(`cqr)}6bGg4M zg@>01Ja`az^a!~8Js`FhI37R65jTh|AjHDJNt?w6`NYJz9wZZb-!kNd{eeK1Of!Du<NpTnvehl0$3IPHS z*&#(h$ulq#OCnn2!%~yD@^*!ZKrC;GQsD_PxeMM++)p0(nv&ASF<7U31W+Nd${i^n zM>)^A#{#S?5Qvr;0|8X@&jSgd`uBs;g9N-6Q2S&QH438@v&uweAd9&Q156@45U3a^ z1S$*rJmC1Il#4hD&0ptoc1geDxh!cc1>CmnTkQheXW{j+aFr8R^$o7`DPH3lP8U}= z9R~JHjgAz{i!8o`GIA2E3HO7p^=iURfO~@`E(Nzp2fTz!1;iLcj1^(mT z{|isQe2Py#4gCC<5AgiO1&&7`=Z@3$Esn>5dhk9DkAEMR-@n8jPjEYS=IBHK*!W&T zzpVw1$|)l-E_Ce&Q&N`*r2$Kbd`LqEYq-TkIWzeuxi%!3Doi~$R2dACu~=3Dm@de} z`dj93tVOT8#hY+v(%ZT?v)an6syx;=*@avO9J%7=Oy8P&%zd<~ zSQ(N=ftOgowx@s)v%Izy6*snbLR|}L1>xt^xTpvOz`?e+8&f4-fk0&dtxom1AV&kh zDD6aLVy}q`;(`MG4~#&osD6y36@+=Ts6fNJ*nQahf+vgZZgRr)bGEDVI1Arg-Qv?{ zU*W5-e}&2?xOng!mv0K<8Lp3?!&`vjjq`5M>zC7!=}i098Ie);nk`26E+fski_R`ml3)Wi&9W94gb$TBs zukQVDe3RfQiAFYGpPh2Q6NWxHD}l`RSz%}M+^>CyLKzj+grR}i;LVFM?o~3n z9x=Kv2ij%W$Ffi<#FH`TdQ8D1WTGljUD@ae!&wtE2LZ)8gY;2_2Deu%NtW*378jD# zJHdfq0588i;^SX`h0mURiao!;J_1L42eFQ5h6TAxfINL;>oM^_Sz&JHNi zkDIJ&k#h{NTx5&2hGs4Zhph6!>%-!r#Pz+7?BjRsWYy9N>O)^WlRE3oMP!l`D6SA* z7DFHuR-v=*<}P8Qy?Nbqcq=trs3lF6dvjj)n5LLGxu@n%%+mYHVwB-^pxXkME#tV3 zL+6bm#MuYr312rLwHcbS1E7UZ22aNbR4a8j(VCo@cS**Z)PJhlknKCtw;2H3esha{l= zn&gwp%D!G88h@3UAXlVzvqJWuw(k=K0KIQkHRPgDbM|$r;absFp#%kP0N8v^6x?7UCD=jJqlnPEJ(853-5ut_F}EaC?Q2!TKZA^3s>eBc8j z2?-EcATo$JFc@qDp7D6{%$>RU+aMQ(*S}`i&%$I%wc1$hPmrT)l+!Eb@gchjC@Y)_sz9iV#Ly!S5(4!aIj>nXffF&B zN&8shC*7P2L<{#H?f8wazRT6#nN6vaq3u4n@aU28_FG%-zjuZ0je0n+-(E2vwpiU` zrj+#^#?5`I?y*A!7bq*hdVO62)3zsAs+9982{@dvz1QHH-_l}`?`TPg*)0eu8F=0j z&Z97XrP}Cr<2>eHLN^h|f<(AU$E{H2jEpqSNfI<6i3vInT5VByjVYME!o9=+((yC) zlaP{mE|`P6Dn67W{3fBbKoaM#P`(&$M}m1Ud!7W$bTL#le&W>v1f7?>cANkucHex76#nVqWv7{*GMEsYk$WO2-eGvMgSr7 zd(ktI1-q+mJ0>DkUq?Jd;!#L@UZyPwgKSMg5qLgmK*sXx$v%M0%S$p`Np1p_Oh~pQ zWKlm9zMcdN(2sX0oZ$5E7sFWCAB5W5sx_n2m<KsAu4;t%gv0)CJ#TsZw&9j&3kqlIciCRP%+Y3`zh-S^u>M;F zq6e4+lLi7#-iIX#sE(2&S0y-}fT)5C_a1C{|Lyy{{Nhcv`w3}UMiWO}ae*gi#(O`Q zxpsQs+HJ?`3^=072>5UfEoW@~j8Sj0Vt_gWBlrve1P(GyzHQHjK%uuwyhb3V9t+!1#MfQpVyyD zwNB_OfCL%~34*LX-EO@t@-ZxSzTTK&PQ`PMHCd1W;<>Xi&&G2~4jqG4fEDm}0Ixh# zrJ2Bulfv1R@mKx%pW?^A`~p51D$5te?ej|lai9^W3r!_ZD@g0;0rw;l14c*hjRd@! z1;7j)GT6t%u0;5WtkMg>*)$H6M-5?89|Lj>Lr$rXG1upKHYDsLQ6uGAs+jURwRV)T zu-zNq{lS4r2do-ao&9t`90Wt~kFtZRQ^Y9(ilbtTL!pRL)KP&_grNv3hK_|n^~0=c zxI0A(sNgs>R&a5}5e$b~!Pg8rBC1g9BF-?jMVy^uilF2eH%%PGE21NR{44MCm3vQE zZ`RC{ak)QmxvvZ;r$@q|0$OkccNo?KQYu~xQcf9;deK& zwcXtuCh|1CN(-Q!fnB6!ZMn32D!nTfP-WUz-g)OSPo8W!K3>D@3?f(yr-Vs!N)V=P zr3}W6n*}X`Sw$SA42TJgN2p(bD?YDL3TR-;w@BW~a+W;uLlhQsVJVto!|x=8XQj`~ zlY{8f+6P&rIe&}ZL{drgr#PUlrU%Ie7jxDELW{_MCo1OpdSKsE3{n9&J zKPo)AsywsQ8~gtN{+I#=Ts;ptuBdd7JF>u%yGU>UacLSB?iLX>K|)DRaO$NQk&=BC%3+?_ znzOC&>n%d%Sb`kjIA$#0uhuS3}I%&v5U3YMg?Yk} zPQEDQD*0$a1t54=rEwhFcL~d5rX}%8nB;YnUf-oJ^t!Vm6WaaA3F zd2Rxv!)(U+-gtCYKNPU$X{I#-HXX3Zo5pX#=K^vK%8u$4cLA}d@lPnwg)5+K3y8Kn z;9hVoAOmR2(gdk8Lh0vIMtm4ySmUb=jB6NHFpPL9xGD~Kr3G(Rq$(@c+&;O>t)rXV zKEBJ1)lEhp+3vSsfPps?($$r7@noj%4VvIw4-;60Iw7(Gbxf`>pK&jAk7NNPS!ji{ z6k{#-90mIrlM)$V-6598vvNp6Qy|%Rlk=@Xa!!0ktl!dv>hX9;i(G*D_zPf?)I*{= zJ$Z&@q`>)D?&K`&`PiF<2=2z<=5 zCEJVx1BpUb{Lnhi%EHHBk^rj715=VkpV9C|oZzW&}hMHF*qHe;^FTxTYmIXB^*$MD_<2QDvW4u=`RIPA8#&A9nTb*N4m zPS9({!Oxi|#T#w|^l4LI8K9IVFe#{l7SItWh$_MW!w6bHT7&Ne_Q1|ycYx}+3|QGP z%Ldmq$cQmwRdE}r`@(eYOlOtp3D}brx9v7R{kb3GFaGTB<1hZq@8z%f!cX&;f97}d z(=YuvMX$3v>`+(K6gAlIDj&Q(bM|1S9x8}%xVmJXW@+ z{hRG%n;u;HV@x>$MkxoY=jM0`oO4TYAT0?J?HRB=;ZQS($w|UkMP4sYzS+>9J9%gB zzAx#U|1s8feB@M?N9P;OD zD_+EnB$}rszKwXENCJAK?Fz>N3w8z^4}Szq84H7SIsk``P1vTO-8cZ|n2BfxlwjOX zqTpv9R`HxT7`Qv4!gfFL#@h#Wy28z8&Fj2;<1WAb z{RdRrF(?!S6n2wQ1dflC)mm|%5gAym2WqXTu8}e_9Uj7dr05aI3=VMuN~6s>IW{!M z_$=dmJW=7g1fY2sS6IA%Ec4UCqR2vdV*g7t8IYPv^ZQDGoJo$~jMyqkv0&}|Svi#87*jqM4Q%*#4fUpqCB66&dGAHLT0zIi`6iNx9DJAUJx$4C)s1O5-Hh(LA6 zsv+WlLam&v3hPzFS-K&EQgp-xR0Symx)N5lXL{4I`zO?Mr(QXBX4EG}eKfg`!u1!h)7!}H*RYp9hrIqJA3BFuF39LKzFgutJ9s#)7HgVpsuJ$HbWrTW+mJHb>WZ^WAru z%~%ZuF=sZxCTA#ce5|aG3j6(zvRb3iB3P^$6zVh~vO!H~odC=rGGDvIVJ~A)&)+BH z4l@1k)VkHR?1{5YEJK{EJq1@stY9*6hsiieaewrV3n^%C^GUzgA$X|?pzXMmB#9dN ze5{q=?U^r1^D$Q(SP-(s1E@bOUpGT*0&w@FOIg!fJRMvTALjluZ1a?T7>O&mXz=1uh~U2>?RO|g{D?g{mXhH) zpuN*YjD$o%EC_WH&2uT)+Oozfy4yy~T5Nys=LYjYcuwD!Jil*Kz<#*ECAe;fvM22t zJz~7Y6`W?{?T5~zxq!nw%}i6pYXuxPM=(?z2M|X95l2N(Q4~YP+TWl8qJpYY#M?e$ zEG5i~9eZUa6hOVQpOwvcOc77GX%b@Bgorn1G|mR@?#(6&vpEkhCw}|AC&;Ma6Z2d# zIu^~UBkiwgGE|J4N6I)V<`sZ46ts+hfGJf6SSwb~SU-M|l~x9fVJ?hy#mE|+N6IuX zP6K+S*xAhVcw)NTBRazEyYTXB=#9I`_1kdgC1}4nzKL&6Vcfv+DgHZ|(^KTdJIL#= za_|v5J41(pj01?`XcKk?0Tcxk0dOd06cpd@xV2vKa9?@6-(z)RElL$-p1>w!Tp35l zg(6CwX38)kDDFa8Z>V<0yss2FM##KmlW$hSHrGJJ@h1{jrkaU7CErq9=t@SbkZ7<7 zby3O7?72XPCjwbWG3rJfck_#q1)?lbpM<*i?Xq^og8-b){{oV}%LP4ylMAYn&`5Zq zr6Za1yyY;brb4_V{mO&07(sav`L>pX2Gw98kEJJQ*ND3hL`1 zpoQy1iD17Dddvl;+|(zzKp|n}l3m-iX_2cXk@NvF;l>vLw9!mQ4x)5PiBWsIcy!SX ztFdq&2?TS!J_$EkqM3;tS!Cu>$m`MhZ@e0!FwM^Q?>mnUO2OG4_SCszHn-wBcttvc zG3p@RD_n3?9YGjH7*r57ib7GEIT1=x01!v%?@q6%6nMaqEB#@$ol__*Mzh(RgJu-ecm zm=s-AoJ;fvr^sr=2Em3x%MFJ$;$^^BBRUL>I#SNI)F1qSsjQHfUST{w#SaIxC}IY6 z0y7E~ZNaw%K^)W_y>=ZxzQ*+69DV;j<9ZDaZWV1pR#(zG;*Q{WyS`2{gF9Py?wvhh zzu$7aTD9g^+Wf}Jsj%6MSe?%O@EmARJ4nXHo$mAFGqNcqxs7BLJl*C*j5jGU#YMY1;nVij1)W;7U>eSvytnK zG#X3(K0hY;`7rRUHy`pJ{IPFy_u9bu-ZAHyq|ieD0`OQnAnRGD?gIJddzW18<}9vV z&%vcK%{izok%ogwFE#5$U}Ai>&^uQm6!hn3q=UgcWW|O_6+1VMW`Y3zn5R0%wWN3~h3QK?_Gm1LlSR zMLQM`40mt0?RBYc%+;|88rYp$g=)@zb`FzcCd`vF&yD%L&R7eEY%^FD+ytvet%jLn zHa8(>KpM!q4@wq6v`Jg_9GJ2bKFPMv`ng_(;>zhD9BDIIA}ESi!GR)zs$ecugQ+@~ zd*i`l<1kgcepHY7aKPpR0!YKIxsMFjZ)3OLg{p`Rh&fUXnV-h|i3_R&f}kfSjMrXZ zc$Z9!F#tkTojK=^Cg#J00`q=LJ?wF-)X5Q9F$_D* z&!`5-03v|WBSU0?=p7(=w+cueZi?vi!BWVVo-M~gEr*x!5C%rFa9)8~J{j8)@~~Q= z&%1!hQmnq*k;o*QU-J3FSqORzSO{FMLE}`too9(NN*-va3O(T_vGW(AdL zZg=nHjb-*+ef+WCsFPzd@{kTsYqtnY=TRWhoKzG8WFc5H@xx2akI|cLiGVcmqVc2+ zvXqAy$_LP=&7DP+$6MvC$1{pBPZQHLQ|Ad4hXypq40%fEYLhXJ0OIs9PMl5^)SB2L zJGJ9(xLdnMC@4h>&Iw233F_9%nz*OuW(XyRA!Jk|+OBKaKvV#@e|F%l^K*vMUP(Ja zwOv~c!!cks!4Jl*BUrB#5kYWN6deXs!7#)N<7&okLbo%A_ugmz#Ag^k`AL{3WL$wLq6Je$Rgt22QA9`35i_Hl9>LKGm)nW*?Qb!x z*5Li!c{Qj_Q|XS@RxUTFh8!j~S~#C89~}17|JzIm?nXVpymzkM5Y|UZoo5t9O963; zj+9}b+LqarkFS13ROCe2?ob1H%g}$7Wbs2DsMM|$TVV>2fZ4KeG5~qM=eNo&lPZv5CzV^lg{*yoP9bULL@Ze$wp1B6=ZQ$Pq zF1vsQ|KPI*xr@N96Xo*Y{4IazbA0CYn|Kqj@{lWeScK(sg~b%@&Z5E8C$R^EXQ2s# zaF%kigg5QEtvTAwbIcL_+;~i~P(lf=i5?0ltcW83a+xhXx-hed`|A5GJCJd@u=M_O zFuhrhFGKQyx;F!=!Uty)U%y{j6=B{Vn5O1Q=oPDm*9zV*R%j+aY4>Rw7lCmQ27y`~ z!59RJ2#%peX>?6!QM3p}h1F`s`sj#Zb3_@BINDrtn1w;s^syxfoenuMZP+dzi2VT& zpa`QVzxvK2HtPX1!`i@SE}$Ul?XgM~VK(O&=lEFBQE)&@`ACo%6j0Oz1Ip<&?D1oK zzXArNIEaC36Slkq`BA9gwc^)qAP*kklfjRCnQ}D3JmF;k0c~E3=8m+G*KQ~} z4h_Gjluwb25ru-#o+rtoL&Lb12?Fie7y*MBG}g#6E+vjH5}%!!i_-h% z&ymCgC{e(O8uQGPFXcas3&bT8TwJ6qKO;XO3R26g?om39rb1cp#LMOk%`{v|BoR+N z|Dwq;3rDsfrG&EO^Ky>QitpUR{1_oT9?Xd$rO%FA@^jrm2jy#T+~+_2li%fqYa{p1 zpNoL?ZQwrywgmvV2K>Fi>RHC95fN^m4m{Z!fAe4XIX?f%TV244opu?m9*)QBm#^zv z1tEl=DWME~l@Q}&Md7U5-Yp4#BMU%2&pk_IK@;PW$0PLIYYuDWLLycoDQoPkgmPN0 z5y6244?~IXCUS2j&+D7Kj@GVSL_p?)jW-jK2uz2{`%fzK3~rTL4X-m|6&0t5gE*r& zqbfyUR9F{S55i`Eqm_J=M`2tG;{fYb;b^TKZ3^SMuvra^>;Ef{tX3nd&5F&@5$oe) z%1{tdv<$4q1D6LVcEW%GLCyaEG6a0o2uH!Ji6jVc{bbEsA6)U?_KI;B8kd(rYexgz zKoL}&iej^IGziCQWf%l^M^^=5Kt({o9m=?Z;|t`yLYb6Oo;K$S{ks!4piyLCj5<&s ze8Az8ud{mbE*vHp1RC4BH(?j)o>3x#)e5CB4kH&IJV4(5K4rDRy&~px$Vcy&(#j;W zfmL*_3}xWrQ2D|6LpH1RQ`|o;#%^nzo;oKd16q_iPlyf-LjiF_2Lz|?pP+sNtrd!b z*97+z0mlm{4}4kmEn#w9Op>ii@;I@wNUM`-H~Q~|aRyDoJ7svZoWiF&3=vW+bHHCE z6c{Zpk&b3qwj>r}D8D3>4QU)n;&r*u=ef|-_l0&B=*83UPD7pJTor*(5;b9Qeu`nR z!aO5DcU;QGr^S@3Kb<_av1uGW60rWa?{fG0$b<9wc~CTb1^CZ^eE|TDfxiv7{;Y!l z-Z>q3bXobE{=jGW;-_!pQ$>Y5Np#`tIj**rlMn@}exFFeplvIG#Wq#3<|~98zYqt3 z1iUVxECE~|z3n1#Y7{ig7X~`Qz55ok1vUAiSJP6|{)FK@^JbH+5!Qon zv{8=M%4V$`9S^Km1M5v;y&72!BjakM3?o_uEs9DjsyML1rX9kH0T3L}C};-YYAR<& zm*^lsM{|m|+X}-VtW5d!4<54`3({EJ-JNdI6AW+HD`u5d6*hyg83n-*5r$!fG)^#@ zXQrO6u&p(ifpo7YX}arA=Pj*1`+1j`2N*LP5>tYsI~b;VOGT8 z=vWw5f~a8z!>S-E;EHGgnK;bCN;WtS2qK*rG7mzZ$S2l76V(y1(PU^#6}4B7KB zEv7zh^CF)_bqq6L&}@t#P}F8#el zKC0YY*A9DV|L}Kgzc>~|0@J94bnODHcwqSV<$2sQO>1(TM5)oXNm_np%-)EltMLn8 zeUJa-Z5zu^ zQr4w+nzPo^0ZeH;v|O9T$N2Cvz`xU5z=WwfvkSw}0yB%ES}4*mJz5yFP>NC%h9Z=r z3@VI87>B|zz&I-7sxXd))u^lnVJL#AqJtnRs7Q}LERMV5W>j-%U~sd-SZ2(w@M@v_ zk*zuJ>M`d6Y8OglJK0=${q_kr#tl{-5di5=mX5Qo?l^F8;mO`PznVGhD`rkTOw@V8 zYsDLzvsDAuaA(F>2kcP69Crf?Ec_kV3$x*XiX!jd$F6oz2HdRm`I^RkbLiSIb;?UG zV#6_hnCJjwBSuDuag`iUcdnJf$*^HJ9ViGAG~O5IaCSB^9V+4luOGDm=C~P-AZ3jV zS6FeFogSCb0yDJ%y?i0uN)8gYEdHsqyu=xlgaC9vi@(k?dn)JSZ^Bd_y-;Gf9O)r; z`ZyE%q>+uOdAKoe`Qwhi9wT~K%US%!Jao-+=%QA4Cy!PF$#Xp5r~>PLh{h1+vV3gM z=hT*CoJb?22sDoaO+HT=VDhvk(I5{t52*AyN^oF^ZIZv!#d=2hp*@D}ZstJ?lQUO) zUM%hpff?Yr30P5KGtV`8X~fVop`jKAj$F7}zHf{mPV_|SInXHtj|fk3QZZCR3_#q2 zH-|xoSl8gSl7e5o51!`Xex7~EEn94#h%*bGI*Dd0oz!DYETDGHSnx24o-`3ip9{t{ z8Gy~w?wW^M0;iYZ-ecpPOW15ihN2AXHN$E}DIaN>hSf(V9uYwYWe`Czynrec6^bgW zv9LKBI65jH{{HYDXRnT9On&&AD}Z#qW9X7EDGpV^s#Qr=f|0fPtAaBRtqw-g`Xp_@Yv)Gw&x3 zS69^Co_d(E=BZ~pLGG^M?g1$m*r7rNYQ^UXnH`_K^&RPbXr36xBmC`m*uQ@dH3JuD z4g=r_hBR#(7}Oa|U>4?D(O2%GpZp^1CcGLT&6mLtcRC!ZVYynWfSYlB9C`8hI{W<& z6Qvq}v=BjAmdJ`k0smv^F4) zzrAkhnA8Qt_}u>N8phPjGt%hi0{OX?)H$X2N`f*w{hhYwkt~u8s0(weCLZn{!T<^3 zy-Dw97QJ6vxg_-2u5}4mKwT0_^Ld`7Ikodmo?RaJ{=G{84zu&D)3Si|9MaS(@$Q35 z=8FSG!0lti7J`qvQjad10b>>J>yeRNl0cgRH3$RoWk!ux4Uz9d0M@`@+pjg2>qM5+9yvO}pFH94&F|n(wt!-0V6=NX?uKAs6{!_< z!=-}El#O6N{zF`zKSBN*IcK+8b>V1D7fBP1R&t536K%6ry6COQvfXF$zVmrj~I@CWaL;oFe z1h^-jogO%^l@A51uYT_d0Q>2=X|Nsv1|8w8!0!is*Rv)YJzgp2JLAirxWP|-@dZwf zS744LAhq!O|3gx85WVFDw(c+h=AnH0 zInm281B~V>YRH3kLJqPgVIEHc(=L;rW}y;7`LWy~A`T)#Ql@rDoVg0`K7j{2C@Sox z%5Fb1&lBzyaR&?$!`p-;I3h;D5u74WN};t+GbIY5jw+}K4vb@=QDEXYjdu%gd1Q|QVW!dm~>2}3##B90FSIj z{Nf53M#?8&rry4WP8IFu9uV(B58!4{4RvEsXTQFN{qaA+YPCkkBcQ#N*2Y4+9@^wp zk;YY~3hMCI#g@nHI8_AILpY+?7_=5d zg5E5p0P5xQ+WS>ay_X|9d!BNl=R67dpV0!KAbk9L32{71aJ7kNUrJ}=*<*8WW_9wp zBa|%}ld?FEaj_Z8pC2Q^RY`KLgn26OOY!eGhUSi69i!a$g~f5KUvvyG=w(j=_><5! zkoWbZa*JVdzW?qy|MUlk@<^OSlY2x>jetplw@Qc`Au*dtqGoTIjMOxV5O3ie2`c2C!o7Wgh^}Qw zo*`giP)b)bxrq=X_Y|y&SwY&vA!tgH-~BmJ2<`7Eu0D}oE;2Jph7akf3-w*l0dQ;l zPG&Swil(K)aH=`(G;@#uidn_na2yBb`qAIuR5QG-LhC$(8P)_f7ss&nOv7;uz-Fd- z&By`R;abRrm`f3%UkPT-D& z)w$zz2Pgp?7o}F?dMUhi?FPH;C9N0HWbwwURoU%?d+!?$-=DFmVm>p^d**2eX4LtL zX}->Sb%5b9Gkfp>h_ z7VuVi1c2P?W7)hd8D21$QU!?f000S*bRhZ;+Og2j@_rcWhp;`&fN}fU$i6zyDZSmc zs`TP~kLQr~lXG0)XMXV>7uzY}e#r!?ET&pK?s*6G5Go*;+5#;>U`dZ1J-(m}U>QTR z1og355I|xljVrAn9FYnpc^d&ZK_IcjoEA-KaVvSuLK5{h$%hnZ9g+_rF*iocP-q8{ z{5_DcIa_F7PjFxKxPYoki!q2G^lD41Rs*IBSQEV5!Md5Q;jQh%3egfWb=;hr zH^Hli%&9)0D%AOmde{c97s8@Pcdzs5(-U?(W2J?n zLP2pC96<&_hl0CN-Ps{L+zDsrmFWQUZ0vV?rs+VPjCrp3Y}npm0A8H%GJy#y-Zh0t z0G}H&O=wwBuO_DV?=c(>sDgV%daSf|JqX=V!~vUTY(1i{y@FA(Y3d@kcgT`B4Un$5 z0OCjy#GRGGoudtFg$h7H5!^t`Q5W2W?N)g5z}a1Ov+#V_V>Tm=3Pg%hWnvy?82X|Q z6vRR(oy5%FbCz0)9y*-3Ue}#JG!IF}da?YL24)zMtQPx89L+re)ld&L4p1`3fhN zFNRjh!TcEDp`#~J%@g9#ba1t3YLr;F#4X%`1Wa#EuBFR_N6)m5A+(XDf|)32Yg=>2 z+x1Pq1WpsG1n@2#(eOTK!_&5-?li#zcf|~9HKw^@A^>=87$X2{WTw@?00e9OvHAfM z0HtFIEv(WrZ`-)a3tUE$Or|^yWR`YZYUPz18$SEOHGHZV%_J&M_div^R2zK6xvav& zi^|ouGS5z}mBVg_AedDQLmga4xUoX+OxRR$Eg;}eY1gd5h7_M?WGpbv*xT=7XIo%w zr&VZ}8#n93p;mD-1Sr)Q<_Y`sC)iI1{IEwwpntAtdp_dO?t^G+HU}--UTruk*SVS| za6TO)=pJPOlSRa( zSgxstI4(xJIY96z)_#9tCJ$F*0I@7N*GpUk_6ngAKN-hlxA?z@wBDiDQh%LLT$ZcG*c@o}E=C5uL!Yx-6^gh`71A=Bh7I8*iK z0r6adXXVF|8Io@WYBd0gD&{;70qY0AmX?&B9?|zX&nV62Y*qsR(_sb#Z#)y;FBB1<}Vj(tcpQ*rPGSO8t7cI>DP zB7Q7!B^=9}Xi6-UNfv>#iIlbE;v8{hIjA&-`B0E1bX4;`4Lnt@W;Uc>XDCfBq6uf1 z!CZ}69XDysqnHamHyoFMyMJ^Jf;E9a+%U6-=XVTcMw#7!nO-nJ1ynj7Eyt)txAi>y zNHiVNuVJnnui!^ty}?hu@)GY~Ub0!0c1cCiCX4{84YE|(;kq!V4$Sj}nRB>0XP#%AiE0A6#&u>cdmM*(?wSIN9B%<{6FHXR_h&3K zUPr2yIDSaRA|LUm(L7{enc%)m9GbJKYlyp=%nKIC?-F{2AXLUh_(Duu2g}+Lun0}D zT*%113fn%(ner__Ix=b-Btk3t;Ez%M= zI`Lu&_$vsVR}x;K=t&Y>Q9Y8Z#T>zcl6&D;T(uBapMhOB6JoLzNIah73i8!Ys#1^P zH5LTi?75kZo>1nv&w^$wdv3s&S)44QAZg&%g`}prvi_P71Pt5_2j~QK?HaH)I97A4 zR%Y|YspS}sxzmC19RymdQH@qiYv*-L7Vh8^?gJEOvWdwYP}~d%gJ^HNAiO5~#33pX zd_hZ$BLX&6UN|24-JiV0&}bXh;|d)HDjkqpR47F;6=safD%?9a9zEH!-yaa1?ZqWN zSFFxVb%O04W?_E$7=2|+-R^-A+WWMo4Mb@IS7YHHR;(xRH{U_Llb_PE;7@CTjc%UZ zZyE0#Gyd=o!+JyA?Xgn8x=;onD2TTEDIzV{wapw4g}b+2fb~sguT%$A5Y=WnHdF*q z9z3W#x<7N+&RCtHDAV=~ab=ziuSyw?n1^!?wgcG&Axc6YZaD>HhwF&nRGf4&H+XAX zmT5qI!9?hpRz4Muma&sw7Z%-pV#d>zLn5@raUl%~oYy1P7jjN6OHG9VI~FRP@~}m( z`i##jE^q_T-7`lgkNa{{UsMRhpxr{Q8I2}M3DG*zx+e?441?$ysrSc|9~?l1Czl7l z_0AIjc8BLCVEq8NBx~Wl(b^_=s0NPEh$E>02##Xy{kaQP zp;lwAhR@zKT#nU`jsr9^Bi{B`AHnui2Gk7LV$4A4+Gp!R;_~DW1o@f_ma&gjkNj~> zn{(i^H&*;bpZWBMLEG13p$v+6ZHh0!0Hggw*c&`JIQK7{^9!Szu;1_5UR>bQOg&VL z8FrPGZs4=9zjlUAh8F<=bwQzj7mYPu#}PHC-})vzxkBB$g47Ieb#Sw;4KqjQnQ9d) z%KEdP#*Rkn{t7JxGXv@2S~_M!@kZYvs$ih%eEQl6pE|kD<7tNp(1c*2m7y96>}TQr zJve(XbJ$I|3-e*eetQX4vAV~-FpdMhxxkp3JL0wEb8Jqcnp=NZu!=}_45%K>u;HBrOOlb4KVPWlAp8ywy4+5D;|FH| z?56*}1gxGe+reipVC@bSfH&TK!ujO{0-g#{621OHgDy5~q(ex;3rK&7MwiC%gbO73 zSS(u|M%6ok(jhXpFA0QgYjJRl{89-+ZY1&~BN6P!lViQic{}9lSECJV~_1j9kR#RYcE9CvLzSx$9h zHjsv^nyXQ*Y0FyMG&c8^!Cg=>yb3tjd`>+)fm#t6K|0S&&^Ru5uu8j5LTIKSw8jt~ zF5RQL&aB45kGyh&SJ!K` zod@@gizk(NcfipP1uUC)xKGTJp|XbcIlFR!4Qp@()!^6>VFZ9nV#>ETHf03Cd5)ZY zJ(H6Gvw*!J)r95vCd{Sl!XOm z_*N|&t1YyPv`oVP2q3Wzx#JNmSR%6i<-uxX368jH;)(DZlS~1SYie`HEZR1l+e3kE zcN0JVjfWiRa}}`O2By?R_GX2GKBJEZR^r{6MlVZ+LnRK_^3)2~yQ| zPWMj~<|Gpm6Z^Gvz8;cQVx;Xg3o7BnG@1%-l6ofQgCgYF7R<9G_xErtxv6&|JkS`| zF)?9y27K?{R*+*oAXS5lw~U}|AQC{3_DIQLbQy8I3GOr;RS(DDeZuH-PA9``zndws zUF+TiEf=iS)#{;92?z*D+vfz4%af?be!M{LD_|fLaO3XLz~^pX=TK)*K!onI2T}x7 z0Ko(f2$u)pY-{Yc6#zG5-cQszx4Kt+c4QdQTO;$)7M}%Nvlw!nbzTIeAn&|~i{@)%3QQA}f+SpUky}W#;O?y5xxG2!+VKtcvtbD4LVr#ZP;ty) zcL|qg##KFjUx5yab2@OoxNAyPQWg?go6D&u-vxRfRO1oO(k=S#R5*PDC z7KG$BfG zw+3bxyn3II-SKL;J60f?_W6|JT~^*iioni+Hu(Lq0Sh_Jk4koxH~Yv z4z@o)EqD)n*rOq;;AUu1j*d@QeeJ8%-3;=yxkp40>)btB9d8WTGEJ1DHNzJ_2X|j! zetZV&k%qf#V0UdoO@F>9Py`o2wD97|4Zd*a6&~$o_F@=DbwQf&ZC;v#vT=D;x&Oh; z`Qr&|A;Wf8Tk2F14ouUG`gPXpnW|5yGf)lJ(lJ@VZ9Xha`X;)?d!$|UbuaXPlkvpyJN*j)7yiL3O3haD7!dIvxh98ZLr^iem zyoX-ipbP>^pNMH-b_a^0gED{r`|Q8`1&;3Az-mRFS`8ZrPrn0E+zeNxjB5^$&!}Jj zChOa`vFXsXW1tT1&AjN)>V%l%Dp;M_D6Ef;`1)aHzIwz_DeZb~g1g~TP?6?23gW`i z@yxhcfmhsThO)vD6k%Km=6k9Og(IkQ(;$YIEdr9UqDvSjg?!-9{yS$U589VB!0>WM z>)&j8`Z8O490#2|rE~=S`t1G^u8p3U5;T{|bzx}Bj)yX2zkRt;gycRX%crZ9+7=MHO<7@8=PK z8R-zRRa;n@k;nFnb(J{C^-T2sAhYcYSR~<$Ij$lSASg*WSpXMGLJ(^?2_a-G!ji3` zlL^GqRrE4ms}C;j-X>0`xZ%(=FM?OV1w|2&)|#y30oA=TeTzb)XqYQl!(`3X zvG&XgRP%<{YV7US&aF@@K*eQ1+^7av1umIw1{rX#(3$R|_AbG~SnjcE3Fvu=Dg+P& zpDOF(eDUrPKXvPb{dSMw$e^Iw+P0!9ID)w{i?cK1;of-nF#b#=P6u||9R;J>o@rhoWd*|{CYfku@7lCd0^UjzN|>JW8L2N) z@@!xp*b@5hBve-d1)yyuIt}F@XU_;Kt?#P@CyazMDkrLLDd+E^CSK<$gd(ANkz^b; zmI4&FWC4Z|$KOuXkhAoAZbl`3;}*&lLI^3nJ{Ae6+p)-mTg45ewY8~J zTM-3CRl6Banhwi5Wq^65;;s79<|gadAB0*Bt46CwlYJT<>%$Cgw5?!1H=e9Q^_gnB zPWj;E$%LFi+T&yxP2bTh9_U4+x1A2yY}^{*r#^X?&mP}osy$Ys7H!|2qeTz}RGD$k zO?dl>^YH%6_Hv?{G1<)S>WcX=ff>HvbJ*`0Uwwh;^>ga{l$&+Sf;2BqfbsS%^jChH z`sfU8vPAl-a=$3Un$7Q>NLu_r7uQs50$lgu*;svEA)(6KtMPU7@QJ zrr`l~7;tkaLpPg<23nK_Q?M^M?;w$DDmnu7G1okJng)Rk31fO9csUVsnPa>ljmejf zVGG{No^e)1fy$n)tMwerW}yxS9>Chh0u)5Z$yxipjA$ySw@Aj=)a<4iNWO1tpZCJE zTFy++0pOlmVkCjlNY4nw#kOQn9|e=A$2K(7JI;SXUKgU1E)!ENC1}rfXnRsl1SQZONf&vL1k|3+Jq@R1(b_G z7mM3g=>%#~FiAR(1#S=tlUqu3=aH`@3SfyDFK|Q=%8=Rn&GNy)vWWTumC)XjyNAcY zO#~z-LdBq`1#qfmfoc5Y^S2d45ntafc<2YSArzir}ChKb8Ag-NI)CJ62 zb4U}MylJT%Yd9;~WKZMFGAff9R(r7FA_LSthutHXC%RWzZeGPbScH;QaB7;+$h@D% zw-g+yhPrU)WW$fVbeqHMjHQHe_vw|gi(n?4ADqWm&S7tufmf#<_IRy0PPGHR-!UT8 z*9!Y-!fWq1jce+udTAN($B&ub{Qxt;Wx%V$Y_D?3klms&fbq5z0hZf>`H_SM(9y4v6dl!8lheh{UoL&NdW@L1=MCJvVeYFju? z`z`Z4<2GZHBRVpyE|~NRbPS}B0t5n3OTFk)nwDI{9KP3RGKd-qh{8(1{Dd(9`u8V^ zV9?LcNkVBkB}dkTCo1qnWFC=3ZJgv*0SPNRO9jnkikRH1ImeVj_I>7rn|)l5*wutf zP{3M_B-?#oUfxPFuLY33wQc5gD)hdPC>r`P4I)XHQ!;@!$__CwblY5PCw~5$9{_N< zug_D!dXj0dpbJ><@f^}clNx{FoA-EfHGv48sW)@i-b`g12A;_EM6aHwgHEnSH-hFW z#?OI17<*=WyS}`-IFkkIizjg!JTwrDxip$f1 zkVO@h0wN4YYy8b0;JX906igN9{X@GW9=Nw|C6wvFdQ|+=uXDKb3FPbyD+Lqnx-zGG znF64QC<2HoS_bsdeLjDDO1X2FgHF_DBCO_3qbXgRZ9<*k?98~jG^YIo2yQcVns9e! zCLBe|4d&qtFAnnrIJCL}eJt`YK2*ddvDRu-jMu%U}2&pT0S8vA5@GB0Ptl zN^;^K0DcsxK;aoB1vct@aB2L_zwc9AKUqU{B!JrT)IsP7A!z{AY2dxe8Q1%M$+3sI z3KWDGrXc?~agZ3_D-F%?v}#kN|1EJPB`M~nCt0Rs$gym3GR=wOdOh>imt-!_QNt9} zyD8=>n5WVSB3mgY+AxVLE!uA3Y-hZ+RYVJuIlC5&xcdM)0?ou@?YTx#K@|oR$J;(A z0^p58z-V$AB91m7JkSFYtF%eHbG6`tBK z?HV9)=i2EJYajT{`wu8%L4a!Q908pHc503U29b%lhn9dvC+%KZ)EpWpG2Pfhr2P39i!G-*5mF^$P2O z>GV4C-V=sD^)uM(UqBty92ZAi=w?H@rjGs&>$K(8aKz)gw|M`ZHyNxjmJzGQDBVFu z0a3x-nI{l2R)aCFM|2p#X0!~@+ISpJFdkwyqP9kg(80i-Vo$qfo&KH1n5P=PJLxO^ zz#<>E0k|yTe96C8NI~cetZa5^W@W>%Dz~DOP%)=y}21DN933ES7}*6143L&Sb%xHK|uf z(!1MGc=Tk;zx*>_;}f^n9|GK+XPCNE;C~7HJWv1wC}DKn13wA;`OjLwGKWvzS@X4b zFZlca(jVg1^&^-KkvI`M(W4{h_lZJ~<{z8Kmm9o14A6ib5bszn34&BIdFS3F5eJn7 z)D&V|zaT^`$CAq99>%Tbo;I;_Ml1!MyZiUcB0x3g%Mk(dFhDwa9m!XdM$#^x$4`{3 zp3>Vv1pzJ&$~)VFnPTSbtuoJZyN@Ae2o5&m7)1b#QUq~F#h;#M5Zdiqo!cI7=cu4U z?|w+1Ukp0+mjU2Z3Sd^>f>6y`*ua9(K>e+4%moaJJDZhqd~F2{2tJMjr6?+e$@lQeG5*d(*$Y||pGE`PbRJ@G@!! zB7F|hCIr(phaw%<#js|0{D70!KE<0C2mEl(;1wtosfY@ty?0#DR+c(JDax>NRvT># zZl??bxZtXc!!fQ8z&7Y%1qf0ABc@;?&K8UW!6tqiVWRaeprjsbEby_#=Xn%XWWfV2 zj=!0JN3yS91EF5Q<*y5Mna6d&1E;t$z&#goROrWI$g@Ns?B0yYya)Yw+#duwveZN z&)9>o0~-Hb;J1Jw3RnPR+xa=*k3J6p>(!g<4=eW%{E;8x_KhRFRwNfdgY=TGra%H7 zDqQC*yNO0Hr4hNG;<<@-ECBc7pkHIt(u7-cP%n3h!){YC<*VP%CqFysM~js|Z~Kg&PAP z(!37=K~OCe0imKr5CCcBF?DdzAls|R)7{Uz>9STwTDu(P$}nE%c(n$bkcc;leN#Nw zSQ5@$&iZJD&lUH| zFpMxLK2?U(TQFW=Pk@VK%BEm40R>tE7Yq|Y#tr`90ebf~{=yxwnNbug1rbMDR~OoE zTHDMM!!U5TagF)Wp3QH5m2&4+o8t|!-l^OT36qcliZD|-p1@9yd1w2W!_^tr#tjEE zR)7LU9q>luVVDohvr*L8tYKJF z6>x&aFrn3ucrCrmw2USi%0$x`{_gKU>G$>UY)RT>LBdT1`IaHP^FTI=fDl0N0(k%3 z@!Eg}4#s8qK}0zmD*x+O-sZplrSEgH5*}~s^Pp(B2mCw0TlAKo1l^|ruK<5NuTjFDPLU4#lgeqzr(d@{Q}lbJPqg?g|m2V&cWr- zG#NV|xwjLpCa6{$7nWgG@dl1o9NbWPq?#hqCT*vvA|j2~svR>>?fps-1n4$HM_d|~ z$DnC68X;--QWU|xFq<(*;Z)b)AOur!-ant+*b%=qrIjD3mFuU+TwGQj?GNlQ*270- zR(e-3GgJyD&MXcts5wVN<@BV0f*Ys^r4&XTV5)F!q+ZSF6JZ=yxK`8)Xe$Sb36x>P z-@nIna)Q7566=#Ae7A=|TYu=q#{d;fpcvR(u^ZRWs|own-(a|P3l+ieehuxNIP~$u z0Y}>)UM|mApI+zTBs|`ov6hKZMg(gnO(+hi0E*L`A50im!sb|^6&G#it0TI>Z33>) zLqX;>3>6H3BnZ1ClvkPQi*WGcrf4e5KFvHup(c)1%jQKTra1QG1&LZ9g=HZj)i~vG zwlyE~NCY3xwRXr7&(@Nu)&ao7Jw#Go$Xvr2D$I;kY))$zY;UizA3QWn5t&Jis44LCSywxZxz`mevPc1+O#3jq=hh>SsTRU+riV4GEYJM7+<@ zZ7ZUcz6Sj3?6vbUyKZ%+kaB~h@*j+mF-dZ0ttWJnHW_zF@qf+I7$qW%| zKlx91Vlzv~XTJIp(3e@@vw5omL=nO)bv{PR=V82iedLi{)4tYnB{;Y=N|y zJY3syD6oY9#}V`$L!kBdLjS$=zQdflSm$KlVqKH@ABP-!l{-yXMpXodsq!EH^1Hlp zqFf%HTZo+R1Md=2$@QN6A>cDzI(s&$0K4j}hJnB8r(Wl1Gd4^E0GTW5f&e2x*6_Yy zbM{067rGyJ;Nk*uQ(?G2k)=GS>vK&|+bSKfY7n0-wC+;GI|F$8O$Qhw^uGoAyAwxSo!q;i2Vhn)SMY-Sj^ZQ7;|){=sv#cV zAs`FR3__B^drQxW=IW>wQSg~t$45LlIB%bCsajD4s{n!u&^`0Ooa#_rDAhS#!}0Nm z3__hNMTD{%5C+r-+k(OT#jr6m{tMa53UIOWGY+}1O2 zd~mmyC5?W(PdGU)AP^9xYr-Y50)+atd!(4#_&YwAzAp#Qlgv@sy+hqa`}xU`8t#`U zmNX+-&!6ppEI2Jlpx+SUfDtig37*+O+twHQl+f!{Lm9g{FxUR&6^{EBdDTRPi_3|B z_P_X5K5=Ws`xo=`0Js<6e+K^B_S7<@a6Ae^5lAng-WERoJY^m{dGe^y zSy%fGJFx=5q@hggG8?ykU=@j#s_B;PioWg+@FBNO*3{V$QByJO~xlVOG7T^OVZ<1THka;5{6;%ts!7=sU*Sq2|#O&RmsPi9CMVH z6HR#w^UyVt3pO6T7CrIc%gPzUwZ(ZZ4eb{Bp!#z(ltr@n(w9R7dETCg1oNGQ`6GdJ zsAtfXocGMF@3%PT=H6x^%Kax>{-yu%YrJqea_?e(9@;Af{&V0@10ztQfE9u6zYF;N zfIVZN`-gFW?p@COBY)Wsb9%f2b0l9)glgoC7&SuqM-j=?Bw&1G$?m^|4Ga5%E#3rV z0n?Od>-w=oI|1Rm?4F)$h4Mhav3}9JB(&4QYAeN#E!VaGoslLAAtl0K#9ZYVvk3GS zccyvb-X*+$P!MIV#$lQdHTvn-sp4pzK?D~^kS>sv0awEW#0%=qbh2T0dW!x0ud=>=iWNny z_UX*MQ)@`)N0Zj4sus%ZTwkrY7zW;W{4RGk8{8aqp#kh$Y1{ACM{HJBBaCYph63hD zQOYn-#c|fC7SJ<%UQ?zO-PLe?Hhi8S4XE{)G zSUqQ$v2+z31_5E&!%z@)syX+rly`TEi(vE2VXl}P)QX$o4K$^02nJ140igY+eH_EU z3~2-YY&0{VwXsB6T@(?ah#)Fmo1(&MJ+RrVS#MShgHp;s87k9!iP*>>BN9BUf*_lx z+&q&zOY{|O)GCC*RXW~Egerx57nN_FKjhkKwv}qn)m0njv zTo9CM6Fsuq@Gs8IGE+{Y*Mf89H${G!0NW#jW2{x&alnY3SM#e4G zROLK1$wGOFyD9dwSU)5znxy9(+`dF*(Q;Pi#Azg!!NN6*;QP4sL~BGsokK#lNxm2& z-e-yOE^<%>suxKV5z!*#nHI6tDSz+r9p+}zC^#+8cgrvng#A?cPk-S}{=N572zgnC5KboCHvrVr^20LGCmAb$)-K)$ z50&6a7~Z9X7Zcx`TLRpT0kA=(upSC3P6Z6daNG>*ap-zT$_nlf6nCMT<4=`E8H%#njI7rq<5yC>*8gBDyAS~kGDXL8r#HLMq7!RLvW1U`A=4v!~i_QK?jAvg*F`l78# zFE5>|GvlzUR5NUzuz7}RxbK*&gIq_~Pnd@b+?5`6f>uULNGDU0-~OA0?-S^;LG!V+ znP#Qt{`fE zVts;FP;3_h{Y5sW_j)GtOd!FI`<_+&*3Lm;Tsmj6(tUgw?iZBsT?ylt|u6fB6EEnyrFe z*^_f4;4wZkdC?K1o`7R>btn;7+l2_0Tv?+g&liLsZ9CGqTdBi94w@&y8H6^8EX=a7 znwCs>46iy3m@VWfoQosfUeDP)@ZJvQDjfC`b2Vn0aI0WV!|}AFfeI+z@Hyl3%ZoG(i8mg2tMjfpU%h|D|MC7~t{;tnbvFF=+#;<%m_7B(0b!-ES;2a(A8|s} znPIg;h5;HIv#)@MhF*^Nx`2RUhzW>)l!pO!J17Nt{Z-`T2%QbV5hN&3dS6x*01Uxz z-NwK5KEs0tuvww4+^(SR2>lMyHMeb#V_q3`U>G*MzdvxXf5Lj$P-xB#fJnkc#K{LVdEf)_{3hqB)2hQ5j!VQf7&NXFO;D zr`6grVXaTG%6T6M*P#)|7wST;Arwja&JxMB5W}@aKD247{9XUnpXL)c1|DrI&NECM zqyCGHqM;-LR+=t>za03&vlg(b!>gx-|KnQ^`6vF0A7QmBU@Y^D<|#1XW@f%bcxqcB zUW=$53m>~EU6mRpwp7gws3d^QC|LE5wdiu=p>ql3rv~$%lQ&wthxAo&c-Vp_P7&XO&-k_X*$JZn?QyFBq*W< zpJr~YN9uaRTjv)PCPuUiozlH5rA<(7PMsY$XSH%R$0Ozr3NTRA+qox{aSJkG(-G>l zww*&5nIr^G$~UASX*h~h@W@l>ZwR>qPArorpr6B4c-8|}aEgygY6VAm14=vxkA~`$gW~9AK{;J>ctt} zv^t`I7zj`eTdk0Bh5q{2ut48*$EtQZtmY!UDM|~v))$OYBK#t6fz?uM8K1|h9rQz5$CT6w+N=hSeH1KW^I@} z+dMq8<+ObPJS}_A$@4t?PRCPU4jLZ$xR8bMJSGX_cC4SoeiGUftQtT6%?|*$d_Do5 z3s8YKLaQxku=+(m2K>S20d!xfa5*`D{uf{5OD|tX7Q^8zGq^{W+HRH#lDz^1uLW`F z6#c!bdCa6lotc6;6P_uL)Dj`q6>0dG-1E;unaDL)kkujVPnp@5u&a4JbJRM^?=-J_?P2D7m&%n4>~=eL(~Q+hX9TSXPItvOiU{h4x-*u-pvtJq zI0|DC28Hzqt3l8aPB#Nbo5E^c7)Sjut0>j1na9BlhB8pSHp^rm5Zz#|bK|BhxbGQt z!=?&|#`tQP>-}Jp4&8C_Fqr@N@4y=FRQI>8fzK+f&^sY7_-Tuxijf zEW0@s$6crn?ut-3UCT%9G!*8!A`WFeFdrNp2g-?am>!{zPZ)+(w?t?o{WK^?YvlZb z!)`};WPOC`5pUl6fTPU{#W1(0#wl@!2EsQJY!AcAKkPd?4pcL&f)-lf=M_a~ zhH}OSmOiFgLE^F8RFz*Z;qQ#cDn37FE6*9+m&2vyroE+W za$z73xGi~GiiUENw4JB-?)Qv`g!mphvwQBaf=J8hd(P{Zhwxc&n&^LroxyA?N&9*5 zLN%amgEl_vL$w7el z4S(cEUqy?i8y5dC*ngIZe zKy$y60RlC=>fRQ)Q-J4QDtNCe`LWzYw}fXSUya1_K>UzW)nI>rv~8UKZP|S25ci3| z#K40?;o;tKuh`VQ2E`~iMF0UsC>TYQQDH2~pvqW;vA}8&RwImquqw)CRamc-VSu8r zS`|bDtYNp59t2qga|0SMUchmzQ98JJ(`2m>7Y4oLFpr$-DJq$;9e}5)Ss=LS$Ka`b zCEvE0CsH$MuGW0@-X*{O@PhMdtQGb)gTq`aWe`+pbubh~p5h8qyp_S+G2mF8qoabZ z3WDQi&6{$CxWUHIlQs5m$2gzj#XteHfz1ssikKr;TbO6$v!6uWF=h-&zUkh-LJc^%dmNIm7i^_5A#O;CSN+sezlOWES@FwAS2qlxJJX(ja9FI2MPc`*cToyEwFgqf-r=xhd zKE(d(ChLB!M952u<4s^SB&4UZK&RxnARfyg;aE;p^mNc|Ax7os=j6%=su_RXzxiia zd*zuExc3Ua1^jEk!)%7s1^>5i03SRLGvTf}gTR0DYwzIZUX#dPSOW0-;Y5&j}Rk%GmD{(gC$a)+YicnNhRaCV7{%Bv(hOKJ*RH5{3 zJEu+ZDorl#X2e?gaN7h4=Gn0(MAd4z`%_I<&2W3#ThdLrn)b{{Y>!~(i|^FKzJ>QI zKs*@#bVmSlc>8MNq8chtt0O9iEAy;O6VObjl2CRyKw~MNads0t**b?^#j8URsvFaO zMggye8|d-CeCL486)_-&W-~*EfuRE5dz<<3IkH~i8_uj9h}1uRq5WaV5K!$V3#&GdUjQ(k;#KBod$G{1$hB(L)_ zbH95C7ncP1w)u?yl zsT%{MHXyj+=D4lc+svjMu@Ml_fJX>iRf)zl0|zg^Q^{lUDr_g=XTJA{dxy%pDEnG5 z40XXwnC8lA6iR6(MF)}o?YcYQO^GBeE@R=^U>vUt!>ElP!x+Z_RFJAjapv0~Zx>d! z!3A*bpH+2qCSLogA_?;K2k9YX@-eP>= z1!RAqW5}cvh>Le28A0gbLbAkXHwNrV012{YEmuSjOOO7Amz#jwtdte33A6LLy0~7EEfFJKSdv>W+ znm_QR7y0~4*ZH_9();HwxpcL^3C&d}Q(H&AlR$2n*mz^-U&dhNnlhr-iGweA2Y&ou zqtQ$hNF)=qr^o%h%nJi*78)n7bAJ6Y9!tXcIZJ#Fj+Mkq#(KH%-aRg6>Do}=ktKtZ_QKW#-ge=9(&=!Zz z(Pl1cfshf9xiQ7BSdAB49x6A68>j#P5-|-PX3k`S>XT;9;4PZD&-bQYulU;iEkAev zf`d3K5vDrfK*eyJY7SL7T00;Z{ch3$SzsV2F3xO)LEw0B)`KvPBh?J|%4#(>F%{M) z8*F+453f_SK(Y2d3X0$WS}4Pa{pN3BufN9l%8U49xYZu=rYMM@)`?_A1lNIiw_~__ zm-&SknZEHI){h>*-8<;M3BFAzrg;N)!OKDD^QS>MOnl<*9p1d0d2;!Hm98kN%;t1?x=#5vn(53Ir`9vmdh_?=!JM_iMzZHK>9B&{z7Bn{AfIS(fP) z^8FD@wGg%@94GODCA}sQ0Fni!Xl{nftCYts?ANl4%{J}53oU)ZKC;52%BRRiTZc^zSD|u)G z^QW6p5|6DcK9U0-_*;;aQ9akb1R*K54-wxa3EQvt`(yxSmTchUUYefMRKUjptb5O% z;-qpCQ=*q>f(yycO%|!=d*_=^;GioG^GwAt7iyiMQ90B)fjH8D$m-xYU?>8j2#$y| zs8B>YXc~|KOhCj?oYLB_3<7{v8t~h32Q34=B?NOraoh^k92Y}}nahK6b9IZ6Zl)mi zd5;6R^@$dFx<869(~iW?-zqX3@jrj(KHt6EHX))?&GGh(<~7LG)x^<}uo}TD;NW=E z3My_6bhG2^FipZ~sjNp>Z3bjiY?>)$M8^W6_`$Fn1NP3IffZ5&7l{4A1oY^L`i<{k zKl&x)c#WDNW}x6Ay_!ucjb4h*+3afTQ3@-((quyJS$cv zhEh-yFwFyk=d=kuOS<=CFWk?byDaBc@2mHAEUd%n*k)vybJB@qJ6ANN`yYB$t9F zD>)$F0+`Q*s!B0^5ksTuu#!ZI9=h=aumVYSK7^y)d zF*l3}@eMOO(2*ksN?0MM0)OX&Yuj*cYJ$lJQAeOC+wH`E{e#DBF^U+~9cyOMrm4fN zG9C8JbK&Hqv{%~01A!yZFl((n#4(40Gpey3VRJNM=FGJ+u0~V`sylkLW+)G_^9|Gu zssc=i6c7OgQALLld3;8loZ;0M;b;ZkwLFR=6a;DBe4tuzRfcI#p<=JT#QyXy^56Zh z46nTa;US{dIh>x z9BFrTv=q=4${zDQutDm8xPfW{P=n>=vgGDOPdSnTpJ1>qMBzoF2b;v$t35>!w+AqH z8kjjTxy8E5(ikRjtjs|3VV}hN2WQ3$$Ed@uYpS4zzhAR z&o&jW{GET^7g!An&SJ`6crIb%3mrefF6Fl1AWduF^GNUEVC1H@cpZQRvramQEd^3e zu{Fyy3QkNB2)Uf%@u-+mX>Ddppv>if#V+}S;xlvb*Fsr4x#V^h-rX0@O_^)uFjcBI zu(>zEisnA=4JTxd;;1;%l^&=l(9MMs7UwQPQ7EOa=*yruU*uw5f~YX=E^S=>NY zlrnKR7}v@*R_#J8;L=3sb=FLimn$%xg+RM4tMb9c%>VGtV_co$POSz&#ppO-!%eul zG)_+khN9iErD^(*CMcjdjslKDg`*;ztcCT_h^V4wlmcZKP*aLHoI3TsQVuJ$jG!Pc zxC-E?H|^l&2)^-c>=UoS3%3vzILwF^#KJ1Ry(6STDcCfz+N|N$Eq0HdFuwZ^dhI&; zl(x#-Wzwl0=xwL~s<_RZuGXx^HTQNq?p-|O=H?WW3OM3|3s1GXI~0WVF^tDU!`=Z1 zQUno4Y`~-<49H&4Szy!-?3NInVUaOA38LFJt&;SyF$yt~u#ihGta)mN%(dx4ZrV=a zVbNrkU}Dhoj?6-UjngvD2HVAjGlN4 zak|oW`52ypi(WgCV71p@$ghJXvb|&!jPE`}`CDEG_mpA2dHP}Iv|X4BW;AnQ`x`Kv z>W1TZn_!&Y_U`tSqp68Jr8HH9>cVV*3D&#|#TAkA(cccU85M7ui|$coURxQJL!B{q z4mLBj_=gyQB1DL0;TVUqlf04uj2%RRC!#^qQlW+KJicOfXK=-v(Art=t!ukbtX3{B z9d~J_Ja5PSX^d(SP?#OIraZbbo?KK8`$}m*^8KMQ&lM4vrvtt|LSEQn!zDgdaP1l- z=vuQfGMpUazx{RmoqN>v1|JmhN-fe$qXm%GFBC_SvVyBEn-_1e`b+*iu5R97etbr| z3UFKK=Wt)T1^SLDx5_2zM zfXI#>=M%HwiIZy_w3Md3K!FZLD5VLzUFptl?e#g#s%#yaQmGk@i+hrQa* zM|(8`f2Oxep3297Nqrvp{ebeE(ht3Soj>;rFM>G&c~RV-Qfqc;U5Ot{J1C<18WMSlvd4tJresd zc@iSgZZ@;wNDrcF1ONT^9`ay5FbbV<#2oRDvR8xIa5Gem-PSoe7REtP1dEg=I4auz za%G-Cs&Tq;HtPZ+h&gV?c(lSNN3>9`O-$z%dAwq!BUK$`01OvJrGNwDfWG|>^L7U> z+(GZ$#I`$R7`j!jkAfzPu}BXbB)rt(R!Z&P;3U9E91)892K-_K;4`&44_~>AncH# zqVopb5BTUv7itnPbWGB-X#1IXlc~}#(cafozyVblMtl%l1XQ|XLlImHt^kz9yPepoE4uTnbynmwiXG(N*J%w5JZHngtGN{a?vqM0>&(u zag!65!RR81nNM<@vWK<_^=rT5tBdvQ#R`jjDayb5zkie8_`ws_`dmB+1$YAd3&2~w zK>yDLEC)8gU)i?L)J)ha&nItg_^W>MlTZzbcq;@T*%ukygJf^Pt09AEj#&vFxGtW#ze@Av5KmyydYFeOK< zkR{i2gmXA2wxJ**%u+a;lzTgv-I=R1*NVG6wTw~+p*FxdtqU1#&VVKe6#*4T6trPy zh7l;>?kECHuqdrtInBHyinM{ofNp{m5bf4!FBp#KKq;`Dw;ZwNxU9iv1fgMzLZ8)y z89DI%5KQ2f$jBm?4t#KN;JEg%4;AWD1Z24z6z2?TigMf{alIsDRZvAVp%Z=T}S zyBV;zFHPeK+KC-R3ywjZxV75w%I&+{+fKay;5~-o91p8zny%0VG^PrIQAVMR1t|lH zQ>&q+fD1zzaIUB*gRPKSK?ktjH!uSdx)?N{P+dSJ0dTi#!~vxVOgJF!FiprLh>wU2 zfC2?uwXsIY~^T$2bg84%ee7mzS=_WM*Foqojq*n-+S6;LH; zQ5FbJ(5*Krowdc7V5cUiH>VP6rpm`E{d&fpA15OcPZ!^k@OjQ9c|z1FFWfLW!~Fh0R;%}|ek3Ido#@4Y?-sYFMYq>qG!s}@iN1Zr*Gr6Yo1D0NhJ za>k`RVL#5y>xpTYnZ}7K=P(LVMr3xd3gdue!TT)$vKR4F!g4qqa*iv{&dcVB%sbfu zS;kIzC}T>SkhgUX{>~i<@_hsWYKfM?Gw!Uk?eq2tbs%ww@Tieo@Nkqkx#eEYW*|f1 zkALkw{+XZsdO*@Vvm`VtWDAi~mQ94qX#lpsUk`lZnTO12`8yA{{JziLjnWyy>9Gw3ksi;kk8K93H~@}It4asHw<`=YMYK?D zX7qv6VGZI9hO@S^DE82{QE98Rt=yxu}~)e5w8UBaZ<1rxQ3xWUVJkxzY^{jdEN zWw)iQMr0VE8j7@AD59+ow0$Doe2fZi6Gx)lJwD;i?c1@7@ncq}SFBF==*bQ}o<7_T$2;oi?4?o-imy-))DMxcS>kbDqUwp~m-v;azT#7#3%vl8$!+XF=R=3 zk;g^sDbA^JmpmOMfIgQxjuhoT`GxQDC%*AMr$smz&nx{$z#q>#*fPjHukD|H9zb_< zxK;#!U;o}i5Q$*Hwq5XYF$0&Ud4DX6+}%-t$$*lFrGexgBu%{g-E3N2`TOWM99jAG{S;HC;WO_Hj0c&`txgOZn z88<~-fS!q()j0M_cn{KZ42=WI?84c8=KeghlJ1z&ZqqeCy}KfGN`|6`?XlUw1)q$vR=7K}-|um2X1ExgpN0<`SCq{O^4s5He(xbx zMkocU1K!bJ*|sNhUGo%S*gEGLDdYh4n>V%c25Wz>Fh>mrsuQ z{0lGg^2?t@R>$o27wmUisyQMBH|4N{-KDYLR;)Ihn9W#qL}uJ)j1gJwv9iM?PEa9E zt42~w?Tax3T#0xXQAL{8bT=DM_J`lemu&YB*dKl;`$P72Mn%wZgO)-O{cx*gKv&1; zYJg3JlP$iQaaVFqs4SdUW+_OroqC}!mvjJrF4Tl& z4c0Oa>lFB_fxDYknCQ|VI_K@7ul&g z0Rd_B6lLIi@(+VM|KiydnibfV6uF)&wCK5K0k54HZFAa2N(CMX2tGYv+?{ zAaiNYR)Gpk2RJIQSqZ~fSPd(tX@W8^jw_grvL2A@%6xyKT&~&;*{~r48`wYjY_-e$h zHdA90MwIsa&Yk5Vs3=|(^U6>ww~mhZ#49he+T7$Y59}sqf4IWygt#9wLiVSPakC~_-*^fn0sM>=YJ-(V)RvBPO#%G7vGvWTHQja zATuHbq1Ro_aW}Yjjp4ob@ps-~zJ48j?M1{5nH@?2Q3P-t8x(M4u84!JRt%S0yf~{b zeGXoGjonn4e)*RfH^<1eB}uv_EjTa$F`(Pd5zf0T(a^ijK`py+(!^^Br1G(Mga|pVIty$^;E& zzXC;(=8<8d>?>Rxw!DA#gg4%Mz<1w!kN4hxo3pbIxV&;M_G|86Zg_aH;^Ly9wr8{6 zA!UcNMWj;1kYPr3hj4`%AlE75o`as_a*e?iW}`2pbiwQ=OVFUWBZAWtHuHqMG0a;=Kj-5C4pvXU@p7IbevP5i|lqrOtNz~!tdS4dQA}>jP zP5O5(-1!pwdX~bm@9&hI!CZ}9GZ~s#6JiXc zbD6mt3gDnP2q=OW2o6e1igdFEsscz8It)<(KvkN+B+$r5rPaZ_$3YYq9592fO|i!O zF3em}UAR@QF)AH`C25~;IW7!xQ>=RvNDaPqcHmFlJ4Z)B+?nT@E;u@3-2~SJL`nm7 zmxc{0MHm!@;>`1bYL1QyfY7zSsx%9hq6z?Wbp|(1*3v-UYor?PhKwV{1u_d7dl+H^3oknZ{J~9-vYVDejYjOb_|=xY>p~cCJw%3=74CWXhB7A-QhYj_%SjItOh6r zR2y}KK8>|P0We@!jjM|b&YoQH-n~b>`@v%_9#!nD!me<&RURFb%d5)aVC<*LeqXuT zf5d&JqO8V(76BZg;I3E|FhR_~E21kVpRnnQVLu?&VsZkw(Y3HktU@1S-tg%0vH;-D zyzV4nXkQeJ`l*TYz%n>}ImAyCcyjM|A*X^s=oqR62QH1E_#m+5Qf)T=FV8cPWZQ`; z@F4cG(43C`$KU)OfBc&taC==ipPc8E{xjfz0(e#$EPyWne-6($Iegd{7qjzwUcbp- z@cEZ$UPsHJJdouNBMMk1pbkim(UEX0PxHz>4Sn(p*xc^=jLL$IC7X(8& zB!a%9;A6qm*Z)l2qH|BhKnsuwLeaEp3m~fO9!r9)bTxA?L=eq|nUQyP!r2USotb9G z+xcQfV{va=L)@Wl>4AL_0Rf7%usBaqF?bU++Sv|8dw^i930~3%J9m1FJ_Hr$5D>>` zV0Ih~R0{`SENiY0E4)?^5QLomBf(<0B>Xdi%^uQZiRzaz)(QY zr@aTES<}321wql)MyeCnPCv~s-e5O9W+;jyD2j?x9S}hQa8SWan5$EO>nkV%<2W$Q zGvdOqF3k17YB*-N=3MU1V0*&4fxn~^uy!+@8?FlDfDQxv!Y^ajuTx&Riwj_ecz22s z0BvonidRFl00Q%YvRSeD+^49Y{1jJD_W1cZ!!#p4W5bB3f?K;+>n{Sc>jp2~y3GrB?s9tiBC@~EN>{8oVW=Bya;zG{3Ve+gN5{uhj!?aU z4=cQk__%_GJrgOo2<8eV%sXd)dEm*D1N*ZHws0axymEAl&z#=kwQDzd;q)fAuHR-D zj<|QWWp~))CYU*9#$kf(b_Sa%;*>!sgVSn>+uSs_GvWn$_c7Hn1ciV*K&YjiNaMlzn6QN&LLV?0G73J5ey#%uADL_PDjx@JH^3< zz}%@;Dy`pgxU*%20C*a`!_83@zIXqE|LD)W!Ee2H&Zxq!I?pNn)4;a@d6oj!4E*gp zhct??Gw1Hn!0-O#9d4a&u<8gb<8hWr-Vzqt3}+JV6FUo@PwaVz58ize_K{(waze(WEt)I%gF#0u)bq~Y%u*>P^uT+ z-Z_t}Vzn|iaJgZ))mB%B7DA^K!QFb3(TC~Q0s?s(ow`U?k$1J&^qRcWgI^5C?;)3*O^tl-jiEY!dH!eW$S27HIur+?^{yArE z49$Wwn;~=zhl$~nfqBEI(QsF^zYAIfmCF8V%TNBfe}orbd4X@g@hhy>r+_04hT{f; zcS-|oZDxwk#?2!*J}zh}PsQacGT`P6*VbqqIec%+=HwdchKM833I<}1iFP5UD0*~? z|CwK)e)`jtyLXUMV4j;fRsch^d(`2Iib2C=aX6p`!zW+EUwfH)cFFv!e+u6o7;fM0 z9-#oxiAXU7zzZS*Ev%4=bU?X-)fuhEx(pnzkGOU1IycvM*>IC}y~W0FGTJrDe2tYI zAqtk#TPzyx;~ zMY*t z1W28Z6%mt_U~#kG0Wy-LTvHUDyBI@X;xiUJtFz~XvS($>O`16c1F|$GvA!X&NjS3G5!7mZ9^d3qlh@wCw=~ zEr@i1RJ`3p8?(EEbr@O)YpYVJ46|}wj~P`EVrZO1=od+8E+XB9l!5O&+3~;MdrTP> zpwU{)xC>^0J8q6u!|6|=2@tBnAi_`vM2|TC_62|FZ~j~O%;)|r-g@JG&dwgN8jnD% z1=#LwCIv*i!}-kEh;Z{{pbUx@1)ITz)oP8+Go=)CHLyMG7`Df(1_$#l-_z&?=mM?- zh@$JG4*~18TBA3v!|4g^_ox|+BRB|6FcJp=Q-4}ZW|eaNgyB=4z`y)s?5rUF)qjkh zTt{x)f^lrmGqklmgESMc_VyiA|t9JDkCGuto(%0P8jNS%6x-y zzQt&_VA|kUpyylkYzr3$?5Z-I@7O=OM6M2uQ>BqFw_Bxf{_P=kD4lt z6Lx0(NPy~*I5oG1B-*1K2ikupfcl(2D>Auxj47v=X8zT z0-u$n+>Q~npJ0unDKJ@#x1Tx={KB{2^g3-Ip&JZk~#0Q@xY z^>f8k9tD8pDJ^O(T}*kStB-s0#dRSYyN&jLT~~_2H|ote*V2n zzPi2S`Z!RVFiHcoIu2q`9Ww(A5oy^`U>piE2&?rmkG}UVul(ds@rVDs-^=TFUtq_? zZ+`uMV>6zB8e*VDf!-ff9OxqN?hFI>EF&hg0| z@Y<@Why$Ht3>xi);;>#ZJbFU?_FK$XTjbg`?04fO5&6POr z^}{TFKxM{9#fpLsD2nb3d3?Y>xTL=G1b_1(_3@rd6|PoC98Rw@N#XG8U!mN;$LjVS ziVGqIhBeaOnHIr|KoO)24fyULJ;eFZJn_=W3GZJVc)Z_XW{ea>1gnlUT8_=8FpPrL ziaU+2#IQPpDQbJ{uw}j)*o@Z@0ftBD1KlR-Q91qI*WITr?z`q3i^79a|0Imanv^UeUOUFexpPkR&IpKG|cAMk%fIG+% z=umPhuRfvX@dqJ-)DxCq3wC57dLZVuZ6T%r3XFoFr=E9tn1PIfq7Nzy0Q(R+Cws26 zZ9b6X0$tG9<(jM<+;53jqG-TXMAL3R)_+@Q_@wQOltflUm~7_z=kS;{Zq8II)eLt7 z467By5d5Ru+FNiydY3TkZ0A5D)WoHMy9LY|y+dgrZfG85p_{cfa0kOX>17kV5T*Tz zA_z3|;f40A3L>Oa!`VxyLwEKFTiG_KNz(8~AVi z0`{G6vOUb4jU$KaC(N(E$oyx04u0M_QdFf2dk7+JzYF3p9S)q<$~bO#U!}n5@WFn?eIGHa>}ti@s=C&S z&;=)V$IaVqj0Vr@?A)DH0cpHg?PwQ-+W!u?cSdX#pglv{esjm0*P3|;R#*2XASlhO zf;YlP9Sp}Qw&8T#P~a(!I74w&C_=;eV5KvZOVKtTwF(tSRQcwk1OLPQhul6Inar8Z zum;q&-siEof?E?_=th?^P}I<}=JN3)ZhYbffAIJJVP3y^gZ;yIIXOAu`mGzhaqs(F zY~Nr#Uc+id1QY>r1VIrx-b&f+;Ks^1-V784Edz!z&lBtQ2HdIBp3O@)c=CfsoN$+- zpyHs4yCAI%1&~%JZ$YIQM|`uQ91aX${RW2*9#fA_8LpqACmSXgWS$Uf7wz#KQh zbi~&uus))cff0e@74quKl+V7#_+y`E{Ih=u`LW-HefF~)j@Ml64%GJ_GMt@L)*Dm` zO>>2K*F<#Xu0S>H<~4S|_s?PegMS2m|LPF$xo+OM#r^lL#UX zm=}%Yqp^IsDmStc;|r#_cuvN+o@js;g-XvuOIT+6bg~qMv;4H!UhzZ;`#p)Dn8&MZ zq7aX5#k+d}oVgl@*>E!iL!5S&;ne^^>Gu}A3lR#PJOPw0$abq`6SlNzhwyex5D~gy z)!((bL(8au(K)izF~EW9#-Ia+P^)lb*sv1A-I2NCb43o0ZVkBruJoxaSAt&_WGir0 z@JmIu1KU~ng|l;h^X!7V>w(FPd3KB@0E&WDFvD8brfouLVE;zVuv+urD^K|H@A>`w z1%LKWak2%QW(EpJ>l+*$-{lv7?(3XhpJ@UlG-1$YZ?OV9UTSB`I2k7!Wwk1ZwsxEi z04*cT!XS#=I&k^c$nmg2wBoIt?v8Xp9O=Yk;D%I?GCT<5p|zQf_(edaP!uHQm8 zN8pAD_@L-&{75ibtw7;0&0JpYIe&1U2jBi0XW#ryuD<)LOmF@Y_5ELGySvZXdf;$- zgTH*^Lmsa2)mQLaw~({P*fjO-FZ4yHXxk_*up5-^Ctk&W=<^Ie_GRR?7ty1U@pwfk z%HV~eLUBQc0y1D_z{`l%3O7#R6R+UrOyB-C<7xu}GCSgqR6}ZoTJc(uc}AwWX_)GV znf;7nob3;MaCN~nPi%&f%8a+Rl_DH%6pCZjFn8Qwu8x~C&xXw_)?DXE*PZb`X!LVV zCXEa2g%B{pa(JA0Oq1gh&Rf9j<}lV=Qze-feXMJEz9eN&!}@r@fN74*@6KAm!jLV> z$&;sT+OE-jF2bWXW;z#o6aMEz<$wLgJN(So-sR?M;Ni2!Um2jlzu)K?oR685|7U4O z=YKGsVQMV*0Q~klkGMSFQdIGrQXhz`8c#wbu>3$@!1GuVYG)~Yk9i(a2Z%uIp1qs6 zJSi8UetA2@uQrW9pEI^E3uMc}Ra)0zLtkQ#mspor*i1NG2qTnS6Mpye4Xn4;x-pV_ z1qC$GxQCF(No0;#453vCYqSdHU^op^MH8f2NF3VrA$v2WAZ>LI{anWZFnV(+0JHAd z`T?(kc!8lHLxEATu~1h~k1F+e#{RE-G&3Jh)T93^ADB-j=A#KtXD(#o-KzuFhJv+1 zSr}-A{;mZOLIjqE1+!XN-GmqJ-r!_im=6&%A$xsN$-vmj1Lk zTm=VA;qlhFyfUV#Vs(Z#$xhRR&lN$j?acbtio?+(_RN^90I+IZduqgmOv{GX3hNO) zS|bmiz}LTv{n|IFU;8fe*%cxKInCigA#U&3vc#j8feVvD2|1&)Ktv}7xSAU+v zTR#u){2YAmPh#Ku6V%_y_UpQKBSDoEefs&I~8dn-{-u@9nNS$H3eJ z6kI4=(>9;A><|5Q-;UMQ)m{HS=YRg^IqqCPs%}E>m^SH}W&4RYp_fjfZIF#?%J(G4 z1iYjBgzOi9A^B2~fed3JE=hj@jc+UAJ&&i*fc#BK^x1YJ>`i%v-Y$+xb zcT|9=4~%f}6has@if9Cdhhbc>`LOWx=dSZZfBtjae%^UFf53G05tpmGT(0hO{G75m zy3Z?r{Hq*XIYbvJT(!YDf(kMmNWyv+mQpwxh1D_yK}Em|j*$k%O-QSR9o*&qM=OTm z3I~f7QfADmx;;1|5g}(p6BCLml#J_uT)D>5h2gDtDX+Z7yger$2;0pi4?cXvd#}IC zn_v1BUi*bV&NqMQ$GHE?f0)gyKMNoHGDm!k)A2)=gEKA<7#1fSvEg+71_$ex8P8rr zF2BUZV&F2Z8Q*=#VzYvAfB{q!KJLm#fUKw#79yng-Y5O^Phnqr1^vWJ3{O7=<`hkM z(%m>nq<<<%=$QF1BHIZ`V8kHPNIT%L_$5iknsK8<{Tpc5kEp)RARSo> z{YAfi+kL9RB7S$pxPwlS60f{-pMUKqU*-F*FM0biKM8P^f*$oR0cU{lEe-?whCZbD z3UC*=_3d^OUKHnr>r3w6-+nAwN2y2`(cM&AC3M;!AlfRAH$tD4hg6T-y5hV67A@H5 z0RG@ExXp^b}VUqjO=^# zQ<~Y;~SrX+(RC?MftiW5^DR2&z_+)z)u zW$K7mfRzwTYF@f*g~1bUf{5=%*zMzvP!-cHfS2ZiCc(@}B4|=dE@T;ifpgpP^{3Zd zyx<@O8NgD;)$xUq(+uK>0w^kgI>{XOLOO63cF0%WRvx{7&W%qA=i3Rj1xcj}p}Ivh zTa;M|SDlA`(*R89Lb&|R1D^TIPPqR4U*yBZALLvit?FG`E#OE0lHb7>{^u9i+`rHA z=19~uu8^~#SOiB36ey$c?uBviAhTR0PEKdU6N4z5X~uC@%M+$Y&hf1)eE8j0}h_!J#lSox=9o@yB)i==1+M@BQRm9u08* z5o|sJJ%Dr#IJ||fzH8?;+!)v2pSiV$(_`iEKp95E#sh3PWf&F=3mhp#^oF zkJX-dcIUVTNc*mCL0c09r4HT#QvgCAPPsha@@sG32Vj#Ocb=8?A8iothE9mQsc!#g!4%$t0+;Ern z>tOY@t7N}^7v7t1wrL))cDX<$)_3;lr}JsuhaHX=7t%916)j)-V%aQkQJ>>Pzo-yl&i?n7MGbI_t z3T6s9Az4WUWGm>bs4KP+7Q?{&;DoRKg!1l3cR9JSWZqbOTt<|iIrwhsab2oHL{3(E z$RNz?iNjAF@cne2^`{?EL|B|8@;srM zKq7Sy1o$-;DooiZGaR6t9w<5p1xFpEIL5>eu-47hY$5xa8pUnAK{* zAfPrvQ3gv4g!;ZX(@?k=ChqEE-kLw;wa0Jr%Dvy@H}3s1U)HC&uXi{vx0p_zhC6r2 zSFds*C#f<#C^=((0_g?p3S|9|a^dK7 z#IRa|0%)|h_+O%J&V_lNNT=6HZ+?}{joYN>owNOsGu&RSP;&wk0p3Pp@8wIy?Ed$gNW-Jr$EE7Mdvy=z zsU?xq>1Xy>g*5icy>gh(zPdECe4jEYFH?-ZTOiR{8g9l5v%l`R06dC(gO)C$cd@< ztV~el13L2!i0J#{t>gBS_FVN^yNc}IQTsK3zFX7VD4TvtobF)lHV#4ngFt-0T`mp4 zwWgf4{2je81DBR3P`3dp&;l_HfI@&3$2D}AN~FqB2dmfb5?@hJZ);qK;V20c!7)Y= zB*M|%g@j-#(L5{goN{3~4mhQ{rxZjKFT}i2+))(O#9RtQdBmJS95V+77MfVTJ2JkX zc$_jzhmsOm6;B0WLLCre5J6I0e*qZ;cjbfo4|)CF4cBiSvYw`(Wi`54k&i#594;hhPU_&p|n78z9&s z`L(E$96UNUkr4)1i}2Q&liir+i91$6oN=)tnL(N%g=>0Fh%C_S*SR=f!#fXITnyNu zqb6YBVQs~L5}BCQVopKArEah_E{1_uF3z}DE?EuEph`~8FbLxyq){M&t1_9Oxu7~Q zdq(9tpS}4k&n%CScY+RwwpoTY2ScNvpt4-*V^H^n(gcJ)Z%1r+fyq#t?_< ziHb$Wy^9TCTs>Ox&b`f(at{K0k&3GAiEywQd9=S9kUD;QhT`zl@hNRL0(?@ztw{pq}G>$*l}r_(2SUmvSKIJn2e5fvU^ZuxJ% z_$EL3^$%I9@MyLt^u>;tNr(1P}mB#ZeJzBKm47S899I09Xid+zQ~R0uZ=BQmJWplpxaYMq4PODcck0 z{i}u1oMd3h5x{1{)DeVYjsfP7WoEHhvVC~KH-EkG-q+4KxwT?iX9VhpuYr5PB07y& zr$S8^6w9Q5-rVxpzhuGD4P%<70CWPLiK@Ub)JC#xIJq`5*@B1fCrX(}%Ng+zRH|l} zDuSTuxC>q&xpD0%v04qFLK4ACwYpgWRU?-z7avZHSC^dp$W?}0iSyx{52lB_dvV75 z=Q9tt&U(9K-Y&_LQf4S~xLDl?6?k003z&sPuNVl33PF^QZNU-TYC`bULKsKI1&RkK zGXod06%5C>6aL}Mc(x)PBy2N7Hkb`^K}v=xW7&{7yy!ay1wG;AYgRVEM zZN@em=1peWPR!Gmyv^i!%RFt!1~zBrufN05m%l=}a)mq>vK6w!WWIYw%prj5Vi@^A zoX@WxupW)&Fp?5Ta>fzTm{=?mtEHd`a=BohE-^pi^x!7neeHQ(JUwL${V@S>X)OPJ zK-HJ-5sLE!cb(G(Y5n82%i4W=t9tLrI95GZs}I(f zU}y~;Lc?=w?^Qn<9BZi{@j;b@42=amW04#pF0JuEI}Xe(30Mz?k64ce1NZNFlfo& zJ;Go&dasRuX!%C{uQ2V4%Jm}$oxW)59wAci05CdbZual;r`VtQyq{7>dXmfS@%n?e z(^lVx4u_%cmoI{v6DxeN% zbjU8KBmf8=m77yA5XDh&$Al0h1&hcULvVucRCU;Jgq(;(ygS~|$#e)VeC5uXF#|5l z$-x|(Aq${_0a*$qCuRz(!$UrJ4Zis+Yl;E8vUHQTi@3@Lz$V-6nIr8?kwW_1YHZXR*|7{2;5kGS>X5!-1ZB}D>! z3V=ji$91eXh2sHEj$%7^1ej+-aB?<^Z<%b(T1L(fN6rq`JT4P=FW0>PIP<|-=KM0V z-55D1iYbmqN*7}eODEZJ3@eTaAQoIZ!TU){!$P?$j~T26;a~|Q#R`!^CX^61GZ`aq zjqTl;bU$%8D89|ulwq3Dut??gOrB=gY?$YnJR5rV9_yDr!THq_)@K*U*#!?v#?IGl zwreh@4V&$j%k_rK?ZjrgA?F#t|A5Oc{00Y;a52KR%xp`c#Qh#d#g_{%7bABQd}F)i z^XvOOOqrA9EJk5@IIuieFfJ0qFjIVDTa3#LR}Y`&)7PHid+t2Lr>sPU7j7``JVbw&&`*6!&X+Nv9l*t8lNjmjm9` zUE^VCb+epa!tFMzNw<9a4H*XBmHBDv4q_n^!0YArAMu}j;TzmO9Qk0KpOkXD0{;r| zH6T4%nTEQL0|W54H1e?Dwkx}~Ox)WR{=&~Z#Yyzj)um)UyKH zzFdC|sIZRpsxg~3h3jV{x8}HeTxNZs=5<+bz3&nKv>r&@v)^8s1)=)UJ79S4wYB%H zW8vGUAZre-oP!7w^Dcr8Bj3C*-pnI|7*>pI0jjKkIq_GsPPj(|RXul96%zAE@ReLh zs+c=g0;E878^*DVO00(f$5nXL*o}a>;ZXt8VLeJyc#Ds1KrptwZQ;)IsN+JZw(e2qpOxfsjElDogS z<#+w5Y^6{9> zsK!J^RdA6i0xC)bHdM(q34pAIB5_}hVlV&)3&91ZDU;{SG-nbp%`@2wWroXp8QzD3 zWg_Q-%^90_+vn}PyS`$O3ne>wYs~8n(@US=;>sb9)|cdI!^3%I-du1wtyyn3AA_v* zyyoKag0&d7p5T>lviQYcBcGmA7%u}p%5)lYD!eAw2a-VEAu zaeErbjr&VG36B1t&A-17T=_AC72+xJn2i{ekpJ^0JO?*|^# zQawq4RZp@7ehBy!P`=%6LNjM$&gHZNS*yhmptwQGbaVW*#qANY`+&-uaA0p$a66~y z0x$2UEogzB`Cegk@EG@kqJ3e%`;sL${4(!oy>#jd?|_)59{c6$0Km3&^+i(qfdtYA zkxmOxI}#OjjcVqNhcoZkk^!e!CK~~;GBm(yHxj8!42=%lt&;V_0)-+0%!Jqw2oMtP zISW#&M5l`=hGHINK=3%XdCg6TDi%cNs=+Cw5GI|~IGh$d(89~lOe~8t1iwrGiZh$< zI^zN*59G3CwLIb8+avFOe$8}mVtFcTw^fN-tSZ}^6(G1xH9csRa32hEVs(ARXa8EK zEY7jn!Icu_HWT9ZMA>u)z)B(8Iah8Rvb=i07yteHT>st`^BgMg*se|tR6#WA5Mi5P z;czf2!>ADqpyXU|7i@MOJ<5FZ{mlJ!L8M^rgv%4hn6oikAr}WDtcKMU3xt)ka@sJ# zL(LvHs)yTAO=z@@a4%w}n8D%TB!yy7GR#w<6enjVmrULWmmh%N-D!Qz(@dFnfNGNq zImqid8{3?j6)qn=;KB84Tz>jlF2=&;`VrfY0o4W5_JZ}iWizkY%v;uFgDwh-Y}nV| zru^EgtX79STsWIF@pxgpV-v5eFZqqjb6)W^ALtez3MZp;XQ>$#bwg_InJx0Q@;m!cDj}=XuotbG1Jwp*vNivlAI) z;0UV5+vmd9^MV9m7VbEsh#~RPvTzL&V<>n}@5hG+Y5WKpRNRh$^afrxIM9?JYZk8w;#T|j#EQ@n6 zI-^1^M$SgIU7eR=m^s^XJQ@KIXx!STdLhcov^ z=WfYd&NJ5!;L1=K2gj0dRtmB><>t8HyKZ0O`)=Ok`)}RkQ`fI>=Wxl%kXQ<+XtY^} zn#;2W54AvnJzOHG$N_rRt$tt>v_JO~*P)Ndpbz-k^VSBW9iFIybb(Vd->VC6f#3dX z1^WF`4-h)|9=*q=Ont!X4d|1e8>RX9u6=4xqDO+i_)Bly<3Io6>zpo>`&)aG(S!d6 z@G3Ag?!hOLDyO|GUkE2YiC`a~;yC>2}S`?YWu) zbyGTMM;405D8-pwxY$fwyqEDJ$bpb8SC^{Cxm%E5iL3!aJ?53oTQk>QSb{sHfSFUwchds7 zIFW?~3&MRNK!!ON>kZ=}yzto-n>QWtq3L&OAb=xCSV7kX9&erXrhr8~8Wao5oeL2S z8g&-s0t$dg^Y}^JOQG)x@vh~ghUdheSIe8TySM8ZE+%I?+sETHdrS-4**Ra&Y}Xlc zm`Y*Fg-tOo-B`PEY0lb=4TY^ao5z=IW@mG4$>mts+6EhDY@E@QK{Lg+Z0AcZ*JoTj zc)+7K-{rwu@A4>L@Ni|^OKZ-CiHlU2)X{}-bdWe)3@8p{9Ahyqxpn0_pSX6N@49h= zm#$sorK_hrcXY_r#eyUdq(;OIpmw0tcQMuVOy$0|saPb&x*QtINTq*JN2h%!)lt|# zbQAOMx72%=E3x4yVOHaa0I2GqW;HwWe{4Kxj1;!zP zwP|p?Db=2g-;HouKLdL+wn;Htku;Zm2)}1S-XB>&)H>dV z9CtZkU2EC?e2^^=+anh2dxS~%KFB@2nZD?&ka^4zudD@i$K05#fIGzKR^=G#`^Y0Y zkXn6>CCwo^@w(0%%@d+uFmc==TgXA+aryvJ?g2~;3*L{3N5;cnfHDIIJHAx%1QOO8Lb-i*9IKKHDxiRY zsN*UmS+V)L@wvbEgh4N`x!|6F2)jc9XgS3MK@l}9mmTnu%x0TOsvKNV9?pr&w-UqY z1SnoW)Bz_1S5bD;$ptqfxpTM@B(VdN1*X}#+!_}fK0f}8V+gK-sGurTP(*d*iXf`g z$JUT&YlZ>!E=zzlw|d_(16RzeVCtBJA=VcW<^r1n*_>%IF1K*+-h|v&uKE&B&g3DH zpvI*b8*{b-W=fhNKiKm4FZnFzf6B8=GU4+jk}_@?f4pY<@Qky2k9hRnJ?_8#KKEaH zgUeUHPA)T-S5~aY8Im&$1Ba4Wq8ujYbfIJ~poctt?I~WkcAM|Hd6OS{`VODFam=$< zPdQyIScJ94b4Kt0z3h>3={@Ir

PA1kxM>X}C)4Cw|l0ri~kthJMgZmD5j;BYmD! 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

{Pegpj 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

oR9O3D4_(l&vOI_L+1e*rKJ`%!KeXK-?Z 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 literal 0 HcmV?d00001 diff --git a/apps/admin/.output/public/tanstack-word-logo-white.svg b/apps/admin/.output/public/tanstack-word-logo-white.svg new file mode 100644 index 00000000..b6ec5086 --- /dev/null +++ b/apps/admin/.output/public/tanstack-word-logo-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/primitive.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/primitive.mjs new file mode 100644 index 00000000..7ce0eece --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/primitive.mjs @@ -0,0 +1,11 @@ +function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { + return function handleEvent(event) { + originalEventHandler?.(event); + if (checkForDefaultPrevented === false || !event.defaultPrevented) { + return ourEventHandler?.(event); + } + }; +} +export { + composeEventHandlers as c +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-collection.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-collection.mjs new file mode 100644 index 00000000..d1971073 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-collection.mjs @@ -0,0 +1,69 @@ +import { R as React2, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { c as createContextScope } from "./react-context.mjs"; +import { u as useComposedRefs } from "./react-compose-refs.mjs"; +import { c as createSlot } from "./react-slot.mjs"; +function createCollection(name) { + const PROVIDER_NAME = name + "CollectionProvider"; + const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME); + const [CollectionProviderImpl, useCollectionContext] = createCollectionContext( + PROVIDER_NAME, + { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() } + ); + const CollectionProvider = (props) => { + const { scope, children } = props; + const ref = React2.useRef(null); + const itemMap = React2.useRef(/* @__PURE__ */ new Map()).current; + return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children }); + }; + CollectionProvider.displayName = PROVIDER_NAME; + const COLLECTION_SLOT_NAME = name + "CollectionSlot"; + const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME); + const CollectionSlot = React2.forwardRef( + (props, forwardedRef) => { + const { scope, children } = props; + const context = useCollectionContext(COLLECTION_SLOT_NAME, scope); + const composedRefs = useComposedRefs(forwardedRef, context.collectionRef); + return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionSlotImpl, { ref: composedRefs, children }); + } + ); + CollectionSlot.displayName = COLLECTION_SLOT_NAME; + const ITEM_SLOT_NAME = name + "CollectionItemSlot"; + const ITEM_DATA_ATTR = "data-radix-collection-item"; + const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME); + const CollectionItemSlot = React2.forwardRef( + (props, forwardedRef) => { + const { scope, children, ...itemData } = props; + const ref = React2.useRef(null); + const composedRefs = useComposedRefs(forwardedRef, ref); + const context = useCollectionContext(ITEM_SLOT_NAME, scope); + React2.useEffect(() => { + context.itemMap.set(ref, { ref, ...itemData }); + return () => void context.itemMap.delete(ref); + }); + return /* @__PURE__ */ jsxRuntimeExports.jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children }); + } + ); + CollectionItemSlot.displayName = ITEM_SLOT_NAME; + function useCollection(scope) { + const context = useCollectionContext(name + "CollectionConsumer", scope); + const getItems = React2.useCallback(() => { + const collectionNode = context.collectionRef.current; + if (!collectionNode) return []; + const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)); + const items = Array.from(context.itemMap.values()); + const orderedItems = items.sort( + (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current) + ); + return orderedItems; + }, [context.collectionRef, context.itemMap]); + return getItems; + } + return [ + { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot }, + useCollection, + createCollectionScope + ]; +} +export { + createCollection as c +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs new file mode 100644 index 00000000..e0b5c3b8 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs @@ -0,0 +1,39 @@ +import { r as reactExports } from "../../../_libs/react.mjs"; +function setRef(ref, value) { + if (typeof ref === "function") { + return ref(value); + } else if (ref !== null && ref !== void 0) { + ref.current = value; + } +} +function composeRefs(...refs) { + return (node) => { + let hasCleanup = false; + const cleanups = refs.map((ref) => { + const cleanup = setRef(ref, node); + if (!hasCleanup && typeof cleanup == "function") { + hasCleanup = true; + } + return cleanup; + }); + if (hasCleanup) { + return () => { + for (let i = 0; i < cleanups.length; i++) { + const cleanup = cleanups[i]; + if (typeof cleanup == "function") { + cleanup(); + } else { + setRef(refs[i], null); + } + } + }; + } + }; +} +function useComposedRefs(...refs) { + return reactExports.useCallback(composeRefs(...refs), refs); +} +export { + composeRefs as c, + useComposedRefs as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-context.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-context.mjs new file mode 100644 index 00000000..46e34f8c --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-context.mjs @@ -0,0 +1,61 @@ +import { r as reactExports, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +function createContextScope(scopeName, createContextScopeDeps = []) { + let defaultContexts = []; + function createContext3(rootComponentName, defaultContext) { + const BaseContext = reactExports.createContext(defaultContext); + const index = defaultContexts.length; + defaultContexts = [...defaultContexts, defaultContext]; + const Provider = (props) => { + const { scope, children, ...context } = props; + const Context = scope?.[scopeName]?.[index] || BaseContext; + const value = reactExports.useMemo(() => context, Object.values(context)); + return /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value, children }); + }; + Provider.displayName = rootComponentName + "Provider"; + function useContext2(consumerName, scope) { + const Context = scope?.[scopeName]?.[index] || BaseContext; + const context = reactExports.useContext(Context); + if (context) return context; + if (defaultContext !== void 0) return defaultContext; + throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); + } + return [Provider, useContext2]; + } + const createScope = () => { + const scopeContexts = defaultContexts.map((defaultContext) => { + return reactExports.createContext(defaultContext); + }); + return function useScope(scope) { + const contexts = scope?.[scopeName] || scopeContexts; + return reactExports.useMemo( + () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), + [scope, contexts] + ); + }; + }; + createScope.scopeName = scopeName; + return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)]; +} +function composeContextScopes(...scopes) { + const baseScope = scopes[0]; + if (scopes.length === 1) return baseScope; + const createScope = () => { + const scopeHooks = scopes.map((createScope2) => ({ + useScope: createScope2(), + scopeName: createScope2.scopeName + })); + return function useComposedScopes(overrideScopes) { + const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => { + const scopeProps = useScope(overrideScopes); + const currentScope = scopeProps[`__scope${scopeName}`]; + return { ...nextScopes2, ...currentScope }; + }, {}); + return reactExports.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]); + }; + }; + createScope.scopeName = baseScope.scopeName; + return createScope; +} +export { + createContextScope as c +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-direction.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-direction.mjs new file mode 100644 index 00000000..d8156e6c --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-direction.mjs @@ -0,0 +1,9 @@ +import { r as reactExports } from "../../../_libs/react.mjs"; +var DirectionContext = reactExports.createContext(void 0); +function useDirection(localDir) { + const globalDir = reactExports.useContext(DirectionContext); + return localDir || globalDir || "ltr"; +} +export { + useDirection as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-id.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-id.mjs new file mode 100644 index 00000000..8f2f5ff1 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-id.mjs @@ -0,0 +1,14 @@ +import { r as reactExports, a as React } from "../../../_libs/react.mjs"; +import { u as useLayoutEffect2 } from "./react-use-layout-effect.mjs"; +var useReactId = React[" useId ".trim().toString()] || (() => void 0); +var count = 0; +function useId(deterministicId) { + const [id, setId] = reactExports.useState(useReactId()); + useLayoutEffect2(() => { + setId((reactId) => reactId ?? String(count++)); + }, [deterministicId]); + return deterministicId || (id ? `radix-${id}` : ""); +} +export { + useId as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-label.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-label.mjs new file mode 100644 index 00000000..bc210b26 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-label.mjs @@ -0,0 +1,23 @@ +import { r as reactExports, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { P as Primitive } from "./react-primitive.mjs"; +var NAME = "Label"; +var Label = reactExports.forwardRef((props, forwardedRef) => { + return /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.label, + { + ...props, + ref: forwardedRef, + onMouseDown: (event) => { + const target = event.target; + if (target.closest("button, input, select, textarea")) return; + props.onMouseDown?.(event); + if (!event.defaultPrevented && event.detail > 1) event.preventDefault(); + } + } + ); +}); +Label.displayName = NAME; +var Root = Label; +export { + Root as R +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-presence.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-presence.mjs new file mode 100644 index 00000000..5a797bac --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-presence.mjs @@ -0,0 +1,128 @@ +import { r as reactExports } from "../../../_libs/react.mjs"; +import { u as useComposedRefs } from "./react-compose-refs.mjs"; +import { u as useLayoutEffect2 } from "./react-use-layout-effect.mjs"; +function useStateMachine(initialState, machine) { + return reactExports.useReducer((state, event) => { + const nextState = machine[state][event]; + return nextState ?? state; + }, initialState); +} +var Presence = (props) => { + const { present, children } = props; + const presence = usePresence(present); + const child = typeof children === "function" ? children({ present: presence.isPresent }) : reactExports.Children.only(children); + const ref = useComposedRefs(presence.ref, getElementRef(child)); + const forceMount = typeof children === "function"; + return forceMount || presence.isPresent ? reactExports.cloneElement(child, { ref }) : null; +}; +Presence.displayName = "Presence"; +function usePresence(present) { + const [node, setNode] = reactExports.useState(); + const stylesRef = reactExports.useRef(null); + const prevPresentRef = reactExports.useRef(present); + const prevAnimationNameRef = reactExports.useRef("none"); + const initialState = present ? "mounted" : "unmounted"; + const [state, send] = useStateMachine(initialState, { + mounted: { + UNMOUNT: "unmounted", + ANIMATION_OUT: "unmountSuspended" + }, + unmountSuspended: { + MOUNT: "mounted", + ANIMATION_END: "unmounted" + }, + unmounted: { + MOUNT: "mounted" + } + }); + reactExports.useEffect(() => { + const currentAnimationName = getAnimationName(stylesRef.current); + prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none"; + }, [state]); + useLayoutEffect2(() => { + const styles = stylesRef.current; + const wasPresent = prevPresentRef.current; + const hasPresentChanged = wasPresent !== present; + if (hasPresentChanged) { + const prevAnimationName = prevAnimationNameRef.current; + const currentAnimationName = getAnimationName(styles); + if (present) { + send("MOUNT"); + } else if (currentAnimationName === "none" || styles?.display === "none") { + send("UNMOUNT"); + } else { + const isAnimating = prevAnimationName !== currentAnimationName; + if (wasPresent && isAnimating) { + send("ANIMATION_OUT"); + } else { + send("UNMOUNT"); + } + } + prevPresentRef.current = present; + } + }, [present, send]); + useLayoutEffect2(() => { + if (node) { + let timeoutId; + const ownerWindow = node.ownerDocument.defaultView ?? window; + const handleAnimationEnd = (event) => { + const currentAnimationName = getAnimationName(stylesRef.current); + const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName)); + if (event.target === node && isCurrentAnimation) { + send("ANIMATION_END"); + if (!prevPresentRef.current) { + const currentFillMode = node.style.animationFillMode; + node.style.animationFillMode = "forwards"; + timeoutId = ownerWindow.setTimeout(() => { + if (node.style.animationFillMode === "forwards") { + node.style.animationFillMode = currentFillMode; + } + }); + } + } + }; + const handleAnimationStart = (event) => { + if (event.target === node) { + prevAnimationNameRef.current = getAnimationName(stylesRef.current); + } + }; + node.addEventListener("animationstart", handleAnimationStart); + node.addEventListener("animationcancel", handleAnimationEnd); + node.addEventListener("animationend", handleAnimationEnd); + return () => { + ownerWindow.clearTimeout(timeoutId); + node.removeEventListener("animationstart", handleAnimationStart); + node.removeEventListener("animationcancel", handleAnimationEnd); + node.removeEventListener("animationend", handleAnimationEnd); + }; + } else { + send("ANIMATION_END"); + } + }, [node, send]); + return { + isPresent: ["mounted", "unmountSuspended"].includes(state), + ref: reactExports.useCallback((node2) => { + stylesRef.current = node2 ? getComputedStyle(node2) : null; + setNode(node2); + }, []) + }; +} +function getAnimationName(styles) { + return styles?.animationName || "none"; +} +function getElementRef(element) { + let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; + let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.ref; + } + getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; + mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.props.ref; + } + return element.props.ref || element.ref; +} +export { + Presence as P +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-primitive.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-primitive.mjs new file mode 100644 index 00000000..1c418b4d --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-primitive.mjs @@ -0,0 +1,70 @@ +import { r as reactExports, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { c as createSlot, a as createSlot$1 } from "./react-slot.mjs"; +var NODES$1 = [ + "a", + "button", + "div", + "form", + "h2", + "h3", + "img", + "input", + "label", + "li", + "nav", + "ol", + "p", + "select", + "span", + "svg", + "ul" +]; +var Primitive$1 = NODES$1.reduce((primitive, node) => { + const Slot = createSlot(`Primitive.${node}`); + const Node = reactExports.forwardRef((props, forwardedRef) => { + const { asChild, ...primitiveProps } = props; + const Comp = asChild ? Slot : node; + if (typeof window !== "undefined") { + window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(Comp, { ...primitiveProps, ref: forwardedRef }); + }); + Node.displayName = `Primitive.${node}`; + return { ...primitive, [node]: Node }; +}, {}); +var NODES = [ + "a", + "button", + "div", + "form", + "h2", + "h3", + "img", + "input", + "label", + "li", + "nav", + "ol", + "p", + "select", + "span", + "svg", + "ul" +]; +var Primitive = NODES.reduce((primitive, node) => { + const Slot = createSlot$1(`Primitive.${node}`); + const Node = reactExports.forwardRef((props, forwardedRef) => { + const { asChild, ...primitiveProps } = props; + const Comp = asChild ? Slot : node; + if (typeof window !== "undefined") { + window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(Comp, { ...primitiveProps, ref: forwardedRef }); + }); + Node.displayName = `Primitive.${node}`; + return { ...primitive, [node]: Node }; +}, {}); +export { + Primitive as P, + Primitive$1 as a +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs new file mode 100644 index 00000000..a0d3927c --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs @@ -0,0 +1,224 @@ +import { r as reactExports, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { c as composeEventHandlers } from "./primitive.mjs"; +import { c as createCollection } from "./react-collection.mjs"; +import { u as useComposedRefs } from "./react-compose-refs.mjs"; +import { c as createContextScope } from "./react-context.mjs"; +import { u as useId } from "./react-id.mjs"; +import { a as Primitive } from "./react-primitive.mjs"; +import { u as useCallbackRef } from "./react-use-callback-ref.mjs"; +import { u as useControllableState } from "./react-use-controllable-state.mjs"; +import { u as useDirection } from "./react-direction.mjs"; +var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus"; +var EVENT_OPTIONS = { bubbles: false, cancelable: true }; +var GROUP_NAME = "RovingFocusGroup"; +var [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME); +var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope( + GROUP_NAME, + [createCollectionScope] +); +var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME); +var RovingFocusGroup = reactExports.forwardRef( + (props, forwardedRef) => { + return /* @__PURE__ */ jsxRuntimeExports.jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsxRuntimeExports.jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) }); + } +); +RovingFocusGroup.displayName = GROUP_NAME; +var RovingFocusGroupImpl = reactExports.forwardRef((props, forwardedRef) => { + const { + __scopeRovingFocusGroup, + orientation, + loop = false, + dir, + currentTabStopId: currentTabStopIdProp, + defaultCurrentTabStopId, + onCurrentTabStopIdChange, + onEntryFocus, + preventScrollOnEntryFocus = false, + ...groupProps + } = props; + const ref = reactExports.useRef(null); + const composedRefs = useComposedRefs(forwardedRef, ref); + const direction = useDirection(dir); + const [currentTabStopId, setCurrentTabStopId] = useControllableState({ + prop: currentTabStopIdProp, + defaultProp: defaultCurrentTabStopId ?? null, + onChange: onCurrentTabStopIdChange, + caller: GROUP_NAME + }); + const [isTabbingBackOut, setIsTabbingBackOut] = reactExports.useState(false); + const handleEntryFocus = useCallbackRef(onEntryFocus); + const getItems = useCollection(__scopeRovingFocusGroup); + const isClickFocusRef = reactExports.useRef(false); + const [focusableItemsCount, setFocusableItemsCount] = reactExports.useState(0); + reactExports.useEffect(() => { + const node = ref.current; + if (node) { + node.addEventListener(ENTRY_FOCUS, handleEntryFocus); + return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus); + } + }, [handleEntryFocus]); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + RovingFocusProvider, + { + scope: __scopeRovingFocusGroup, + orientation, + dir: direction, + loop, + currentTabStopId, + onItemFocus: reactExports.useCallback( + (tabStopId) => setCurrentTabStopId(tabStopId), + [setCurrentTabStopId] + ), + onItemShiftTab: reactExports.useCallback(() => setIsTabbingBackOut(true), []), + onFocusableItemAdd: reactExports.useCallback( + () => setFocusableItemsCount((prevCount) => prevCount + 1), + [] + ), + onFocusableItemRemove: reactExports.useCallback( + () => setFocusableItemsCount((prevCount) => prevCount - 1), + [] + ), + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.div, + { + tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0, + "data-orientation": orientation, + ...groupProps, + ref: composedRefs, + style: { outline: "none", ...props.style }, + onMouseDown: composeEventHandlers(props.onMouseDown, () => { + isClickFocusRef.current = true; + }), + onFocus: composeEventHandlers(props.onFocus, (event) => { + const isKeyboardFocus = !isClickFocusRef.current; + if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) { + const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS); + event.currentTarget.dispatchEvent(entryFocusEvent); + if (!entryFocusEvent.defaultPrevented) { + const items = getItems().filter((item) => item.focusable); + const activeItem = items.find((item) => item.active); + const currentItem = items.find((item) => item.id === currentTabStopId); + const candidateItems = [activeItem, currentItem, ...items].filter( + Boolean + ); + const candidateNodes = candidateItems.map((item) => item.ref.current); + focusFirst(candidateNodes, preventScrollOnEntryFocus); + } + } + isClickFocusRef.current = false; + }), + onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false)) + } + ) + } + ); +}); +var ITEM_NAME = "RovingFocusGroupItem"; +var RovingFocusGroupItem = reactExports.forwardRef( + (props, forwardedRef) => { + const { + __scopeRovingFocusGroup, + focusable = true, + active = false, + tabStopId, + children, + ...itemProps + } = props; + const autoId = useId(); + const id = tabStopId || autoId; + const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup); + const isCurrentTabStop = context.currentTabStopId === id; + const getItems = useCollection(__scopeRovingFocusGroup); + const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context; + reactExports.useEffect(() => { + if (focusable) { + onFocusableItemAdd(); + return () => onFocusableItemRemove(); + } + }, [focusable, onFocusableItemAdd, onFocusableItemRemove]); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + Collection.ItemSlot, + { + scope: __scopeRovingFocusGroup, + id, + focusable, + active, + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.span, + { + tabIndex: isCurrentTabStop ? 0 : -1, + "data-orientation": context.orientation, + ...itemProps, + ref: forwardedRef, + onMouseDown: composeEventHandlers(props.onMouseDown, (event) => { + if (!focusable) event.preventDefault(); + else context.onItemFocus(id); + }), + onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)), + onKeyDown: composeEventHandlers(props.onKeyDown, (event) => { + if (event.key === "Tab" && event.shiftKey) { + context.onItemShiftTab(); + return; + } + if (event.target !== event.currentTarget) return; + const focusIntent = getFocusIntent(event, context.orientation, context.dir); + if (focusIntent !== void 0) { + if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return; + event.preventDefault(); + const items = getItems().filter((item) => item.focusable); + let candidateNodes = items.map((item) => item.ref.current); + if (focusIntent === "last") candidateNodes.reverse(); + else if (focusIntent === "prev" || focusIntent === "next") { + if (focusIntent === "prev") candidateNodes.reverse(); + const currentIndex = candidateNodes.indexOf(event.currentTarget); + candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1); + } + setTimeout(() => focusFirst(candidateNodes)); + } + }), + children: typeof children === "function" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children + } + ) + } + ); + } +); +RovingFocusGroupItem.displayName = ITEM_NAME; +var MAP_KEY_TO_FOCUS_INTENT = { + ArrowLeft: "prev", + ArrowUp: "prev", + ArrowRight: "next", + ArrowDown: "next", + PageUp: "first", + Home: "first", + PageDown: "last", + End: "last" +}; +function getDirectionAwareKey(key, dir) { + if (dir !== "rtl") return key; + return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key; +} +function getFocusIntent(event, orientation, dir) { + const key = getDirectionAwareKey(event.key, dir); + if (orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) return void 0; + if (orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)) return void 0; + return MAP_KEY_TO_FOCUS_INTENT[key]; +} +function focusFirst(candidates, preventScroll = false) { + const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement; + for (const candidate of candidates) { + if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return; + candidate.focus({ preventScroll }); + if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return; + } +} +function wrapArray(array, startIndex) { + return array.map((_, index) => array[(startIndex + index) % array.length]); +} +var Root = RovingFocusGroup; +var Item = RovingFocusGroupItem; +export { + Item as I, + Root as R, + createRovingFocusGroupScope as c +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-slot.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-slot.mjs new file mode 100644 index 00000000..51c013d2 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-slot.mjs @@ -0,0 +1,186 @@ +import { r as reactExports, a as React, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { c as composeRefs } from "./react-compose-refs.mjs"; +var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"); +var use = React[" use ".trim().toString()]; +function isPromiseLike(value) { + return typeof value === "object" && value !== null && "then" in value; +} +function isLazyComponent(element) { + return element != null && typeof element === "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload); +} +// @__NO_SIDE_EFFECTS__ +function createSlot$1(ownerName) { + const SlotClone = /* @__PURE__ */ createSlotClone$1(ownerName); + const Slot2 = reactExports.forwardRef((props, forwardedRef) => { + let { children, ...slotProps } = props; + if (isLazyComponent(children) && typeof use === "function") { + children = use(children._payload); + } + const childrenArray = reactExports.Children.toArray(children); + const slottable = childrenArray.find(isSlottable$1); + if (slottable) { + const newElement = slottable.props.children; + const newChildren = childrenArray.map((child) => { + if (child === slottable) { + if (reactExports.Children.count(newElement) > 1) return reactExports.Children.only(null); + return reactExports.isValidElement(newElement) ? newElement.props.children : null; + } else { + return child; + } + }); + return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: reactExports.isValidElement(newElement) ? reactExports.cloneElement(newElement, void 0, newChildren) : null }); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children }); + }); + Slot2.displayName = `${ownerName}.Slot`; + return Slot2; +} +var Slot = /* @__PURE__ */ createSlot$1("Slot"); +// @__NO_SIDE_EFFECTS__ +function createSlotClone$1(ownerName) { + const SlotClone = reactExports.forwardRef((props, forwardedRef) => { + let { children, ...slotProps } = props; + if (isLazyComponent(children) && typeof use === "function") { + children = use(children._payload); + } + if (reactExports.isValidElement(children)) { + const childrenRef = getElementRef$1(children); + const props2 = mergeProps$1(slotProps, children.props); + if (children.type !== reactExports.Fragment) { + props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; + } + return reactExports.cloneElement(children, props2); + } + return reactExports.Children.count(children) > 1 ? reactExports.Children.only(null) : null; + }); + SlotClone.displayName = `${ownerName}.SlotClone`; + return SlotClone; +} +var SLOTTABLE_IDENTIFIER$1 = /* @__PURE__ */ Symbol("radix.slottable"); +function isSlottable$1(child) { + return reactExports.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER$1; +} +function mergeProps$1(slotProps, childProps) { + const overrideProps = { ...childProps }; + for (const propName in childProps) { + const slotPropValue = slotProps[propName]; + const childPropValue = childProps[propName]; + const isHandler = /^on[A-Z]/.test(propName); + if (isHandler) { + if (slotPropValue && childPropValue) { + overrideProps[propName] = (...args) => { + const result = childPropValue(...args); + slotPropValue(...args); + return result; + }; + } else if (slotPropValue) { + overrideProps[propName] = slotPropValue; + } + } else if (propName === "style") { + overrideProps[propName] = { ...slotPropValue, ...childPropValue }; + } else if (propName === "className") { + overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); + } + } + return { ...slotProps, ...overrideProps }; +} +function getElementRef$1(element) { + let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; + let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.ref; + } + getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; + mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.props.ref; + } + return element.props.ref || element.ref; +} +// @__NO_SIDE_EFFECTS__ +function createSlot(ownerName) { + const SlotClone = /* @__PURE__ */ createSlotClone(ownerName); + const Slot2 = reactExports.forwardRef((props, forwardedRef) => { + const { children, ...slotProps } = props; + const childrenArray = reactExports.Children.toArray(children); + const slottable = childrenArray.find(isSlottable); + if (slottable) { + const newElement = slottable.props.children; + const newChildren = childrenArray.map((child) => { + if (child === slottable) { + if (reactExports.Children.count(newElement) > 1) return reactExports.Children.only(null); + return reactExports.isValidElement(newElement) ? newElement.props.children : null; + } else { + return child; + } + }); + return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: reactExports.isValidElement(newElement) ? reactExports.cloneElement(newElement, void 0, newChildren) : null }); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children }); + }); + Slot2.displayName = `${ownerName}.Slot`; + return Slot2; +} +// @__NO_SIDE_EFFECTS__ +function createSlotClone(ownerName) { + const SlotClone = reactExports.forwardRef((props, forwardedRef) => { + const { children, ...slotProps } = props; + if (reactExports.isValidElement(children)) { + const childrenRef = getElementRef(children); + const props2 = mergeProps(slotProps, children.props); + if (children.type !== reactExports.Fragment) { + props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; + } + return reactExports.cloneElement(children, props2); + } + return reactExports.Children.count(children) > 1 ? reactExports.Children.only(null) : null; + }); + SlotClone.displayName = `${ownerName}.SlotClone`; + return SlotClone; +} +var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable"); +function isSlottable(child) { + return reactExports.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER; +} +function mergeProps(slotProps, childProps) { + const overrideProps = { ...childProps }; + for (const propName in childProps) { + const slotPropValue = slotProps[propName]; + const childPropValue = childProps[propName]; + const isHandler = /^on[A-Z]/.test(propName); + if (isHandler) { + if (slotPropValue && childPropValue) { + overrideProps[propName] = (...args) => { + const result = childPropValue(...args); + slotPropValue(...args); + return result; + }; + } else if (slotPropValue) { + overrideProps[propName] = slotPropValue; + } + } else if (propName === "style") { + overrideProps[propName] = { ...slotPropValue, ...childPropValue }; + } else if (propName === "className") { + overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); + } + } + return { ...slotProps, ...overrideProps }; +} +function getElementRef(element) { + let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; + let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.ref; + } + getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; + mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.props.ref; + } + return element.props.ref || element.ref; +} +export { + Slot as S, + createSlot$1 as a, + createSlot as c +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-tabs.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-tabs.mjs new file mode 100644 index 00000000..02491420 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-tabs.mjs @@ -0,0 +1,189 @@ +import { r as reactExports, j as jsxRuntimeExports } from "../../../_libs/react.mjs"; +import { c as composeEventHandlers } from "./primitive.mjs"; +import { c as createContextScope } from "./react-context.mjs"; +import { c as createRovingFocusGroupScope, R as Root, I as Item } from "./react-roving-focus.mjs"; +import { P as Presence } from "./react-presence.mjs"; +import { a as Primitive } from "./react-primitive.mjs"; +import { u as useDirection } from "./react-direction.mjs"; +import { u as useControllableState } from "./react-use-controllable-state.mjs"; +import { u as useId } from "./react-id.mjs"; +var TABS_NAME = "Tabs"; +var [createTabsContext] = createContextScope(TABS_NAME, [ + createRovingFocusGroupScope +]); +var useRovingFocusGroupScope = createRovingFocusGroupScope(); +var [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME); +var Tabs = reactExports.forwardRef( + (props, forwardedRef) => { + const { + __scopeTabs, + value: valueProp, + onValueChange, + defaultValue, + orientation = "horizontal", + dir, + activationMode = "automatic", + ...tabsProps + } = props; + const direction = useDirection(dir); + const [value, setValue] = useControllableState({ + prop: valueProp, + onChange: onValueChange, + defaultProp: defaultValue ?? "", + caller: TABS_NAME + }); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + TabsProvider, + { + scope: __scopeTabs, + baseId: useId(), + value, + onValueChange: setValue, + orientation, + dir: direction, + activationMode, + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.div, + { + dir: direction, + "data-orientation": orientation, + ...tabsProps, + ref: forwardedRef + } + ) + } + ); + } +); +Tabs.displayName = TABS_NAME; +var TAB_LIST_NAME = "TabsList"; +var TabsList = reactExports.forwardRef( + (props, forwardedRef) => { + const { __scopeTabs, loop = true, ...listProps } = props; + const context = useTabsContext(TAB_LIST_NAME, __scopeTabs); + const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + Root, + { + asChild: true, + ...rovingFocusGroupScope, + orientation: context.orientation, + dir: context.dir, + loop, + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.div, + { + role: "tablist", + "aria-orientation": context.orientation, + ...listProps, + ref: forwardedRef + } + ) + } + ); + } +); +TabsList.displayName = TAB_LIST_NAME; +var TRIGGER_NAME = "TabsTrigger"; +var TabsTrigger = reactExports.forwardRef( + (props, forwardedRef) => { + const { __scopeTabs, value, disabled = false, ...triggerProps } = props; + const context = useTabsContext(TRIGGER_NAME, __scopeTabs); + const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs); + const triggerId = makeTriggerId(context.baseId, value); + const contentId = makeContentId(context.baseId, value); + const isSelected = value === context.value; + return /* @__PURE__ */ jsxRuntimeExports.jsx( + Item, + { + asChild: true, + ...rovingFocusGroupScope, + focusable: !disabled, + active: isSelected, + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.button, + { + type: "button", + role: "tab", + "aria-selected": isSelected, + "aria-controls": contentId, + "data-state": isSelected ? "active" : "inactive", + "data-disabled": disabled ? "" : void 0, + disabled, + id: triggerId, + ...triggerProps, + ref: forwardedRef, + onMouseDown: composeEventHandlers(props.onMouseDown, (event) => { + if (!disabled && event.button === 0 && event.ctrlKey === false) { + context.onValueChange(value); + } else { + event.preventDefault(); + } + }), + onKeyDown: composeEventHandlers(props.onKeyDown, (event) => { + if ([" ", "Enter"].includes(event.key)) context.onValueChange(value); + }), + onFocus: composeEventHandlers(props.onFocus, () => { + const isAutomaticActivation = context.activationMode !== "manual"; + if (!isSelected && !disabled && isAutomaticActivation) { + context.onValueChange(value); + } + }) + } + ) + } + ); + } +); +TabsTrigger.displayName = TRIGGER_NAME; +var CONTENT_NAME = "TabsContent"; +var TabsContent = reactExports.forwardRef( + (props, forwardedRef) => { + const { __scopeTabs, value, forceMount, children, ...contentProps } = props; + const context = useTabsContext(CONTENT_NAME, __scopeTabs); + const triggerId = makeTriggerId(context.baseId, value); + const contentId = makeContentId(context.baseId, value); + const isSelected = value === context.value; + const isMountAnimationPreventedRef = reactExports.useRef(isSelected); + reactExports.useEffect(() => { + const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false); + return () => cancelAnimationFrame(rAF); + }, []); + return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsxRuntimeExports.jsx( + Primitive.div, + { + "data-state": isSelected ? "active" : "inactive", + "data-orientation": context.orientation, + role: "tabpanel", + "aria-labelledby": triggerId, + hidden: !present, + id: contentId, + tabIndex: 0, + ...contentProps, + ref: forwardedRef, + style: { + ...props.style, + animationDuration: isMountAnimationPreventedRef.current ? "0s" : void 0 + }, + children: present && children + } + ) }); + } +); +TabsContent.displayName = CONTENT_NAME; +function makeTriggerId(baseId, value) { + return `${baseId}-trigger-${value}`; +} +function makeContentId(baseId, value) { + return `${baseId}-content-${value}`; +} +var Root2 = Tabs; +var List = TabsList; +var Trigger = TabsTrigger; +var Content = TabsContent; +export { + Content as C, + List as L, + Root2 as R, + Trigger as T +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs new file mode 100644 index 00000000..1100120f --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs @@ -0,0 +1,11 @@ +import { r as reactExports } from "../../../_libs/react.mjs"; +function useCallbackRef(callback) { + const callbackRef = reactExports.useRef(callback); + reactExports.useEffect(() => { + callbackRef.current = callback; + }); + return reactExports.useMemo(() => (...args) => callbackRef.current?.(...args), []); +} +export { + useCallbackRef as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs new file mode 100644 index 00000000..0fd14df4 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs @@ -0,0 +1,69 @@ +import { r as reactExports, a as React } from "../../../_libs/react.mjs"; +import { u as useLayoutEffect2 } from "./react-use-layout-effect.mjs"; +var useInsertionEffect = React[" useInsertionEffect ".trim().toString()] || useLayoutEffect2; +function useControllableState({ + prop, + defaultProp, + onChange = () => { + }, + caller +}) { + const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({ + defaultProp, + onChange + }); + const isControlled = prop !== void 0; + const value = isControlled ? prop : uncontrolledProp; + { + const isControlledRef = reactExports.useRef(prop !== void 0); + reactExports.useEffect(() => { + const wasControlled = isControlledRef.current; + if (wasControlled !== isControlled) { + const from = wasControlled ? "controlled" : "uncontrolled"; + const to = isControlled ? "controlled" : "uncontrolled"; + console.warn( + `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.` + ); + } + isControlledRef.current = isControlled; + }, [isControlled, caller]); + } + const setValue = reactExports.useCallback( + (nextValue) => { + if (isControlled) { + const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue; + if (value2 !== prop) { + onChangeRef.current?.(value2); + } + } else { + setUncontrolledProp(nextValue); + } + }, + [isControlled, prop, setUncontrolledProp, onChangeRef] + ); + return [value, setValue]; +} +function useUncontrolledState({ + defaultProp, + onChange +}) { + const [value, setValue] = reactExports.useState(defaultProp); + const prevValueRef = reactExports.useRef(value); + const onChangeRef = reactExports.useRef(onChange); + useInsertionEffect(() => { + onChangeRef.current = onChange; + }, [onChange]); + reactExports.useEffect(() => { + if (prevValueRef.current !== value) { + onChangeRef.current?.(value); + prevValueRef.current = value; + } + }, [value, prevValueRef]); + return [value, setValue, onChangeRef]; +} +function isFunction(value) { + return typeof value === "function"; +} +export { + useControllableState as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs @@ -0,0 +1 @@ + diff --git a/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs new file mode 100644 index 00000000..0fa6f8b0 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs @@ -0,0 +1,6 @@ +import { r as reactExports } from "../../../_libs/react.mjs"; +var useLayoutEffect2 = globalThis?.document ? reactExports.useLayoutEffect : () => { +}; +export { + useLayoutEffect2 as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@tanstack/history.mjs b/apps/admin/.output/server/_chunks/_libs/@tanstack/history.mjs new file mode 100644 index 00000000..686db8ba --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@tanstack/history.mjs @@ -0,0 +1,217 @@ +const stateIndexKey = "__TSR_index"; +function createHistory(opts) { + let location = opts.getLocation(); + const subscribers = /* @__PURE__ */ new Set(); + const notify = (action) => { + location = opts.getLocation(); + subscribers.forEach((subscriber) => subscriber({ location, action })); + }; + const handleIndexChange = (action) => { + if (opts.notifyOnIndexChange ?? true) notify(action); + else location = opts.getLocation(); + }; + const tryNavigation = async ({ + task, + navigateOpts, + ...actionInfo + }) => { + const ignoreBlocker = navigateOpts?.ignoreBlocker ?? false; + if (ignoreBlocker) { + task(); + return; + } + const blockers = opts.getBlockers?.() ?? []; + const isPushOrReplace = actionInfo.type === "PUSH" || actionInfo.type === "REPLACE"; + if (typeof document !== "undefined" && blockers.length && isPushOrReplace) { + for (const blocker of blockers) { + const nextLocation = parseHref(actionInfo.path, actionInfo.state); + const isBlocked = await blocker.blockerFn({ + currentLocation: location, + nextLocation, + action: actionInfo.type + }); + if (isBlocked) { + opts.onBlocked?.(); + return; + } + } + } + task(); + }; + return { + get location() { + return location; + }, + get length() { + return opts.getLength(); + }, + subscribers, + subscribe: (cb) => { + subscribers.add(cb); + return () => { + subscribers.delete(cb); + }; + }, + push: (path, state, navigateOpts) => { + const currentIndex = location.state[stateIndexKey]; + state = assignKeyAndIndex(currentIndex + 1, state); + tryNavigation({ + task: () => { + opts.pushState(path, state); + notify({ type: "PUSH" }); + }, + navigateOpts, + type: "PUSH", + path, + state + }); + }, + replace: (path, state, navigateOpts) => { + const currentIndex = location.state[stateIndexKey]; + state = assignKeyAndIndex(currentIndex, state); + tryNavigation({ + task: () => { + opts.replaceState(path, state); + notify({ type: "REPLACE" }); + }, + navigateOpts, + type: "REPLACE", + path, + state + }); + }, + go: (index, navigateOpts) => { + tryNavigation({ + task: () => { + opts.go(index); + handleIndexChange({ type: "GO", index }); + }, + navigateOpts, + type: "GO" + }); + }, + back: (navigateOpts) => { + tryNavigation({ + task: () => { + opts.back(navigateOpts?.ignoreBlocker ?? false); + handleIndexChange({ type: "BACK" }); + }, + navigateOpts, + type: "BACK" + }); + }, + forward: (navigateOpts) => { + tryNavigation({ + task: () => { + opts.forward(navigateOpts?.ignoreBlocker ?? false); + handleIndexChange({ type: "FORWARD" }); + }, + navigateOpts, + type: "FORWARD" + }); + }, + canGoBack: () => location.state[stateIndexKey] !== 0, + createHref: (str) => opts.createHref(str), + block: (blocker) => { + if (!opts.setBlockers) return () => { + }; + const blockers = opts.getBlockers?.() ?? []; + opts.setBlockers([...blockers, blocker]); + return () => { + const blockers2 = opts.getBlockers?.() ?? []; + opts.setBlockers?.(blockers2.filter((b) => b !== blocker)); + }; + }, + flush: () => opts.flush?.(), + destroy: () => opts.destroy?.(), + notify + }; +} +function assignKeyAndIndex(index, state) { + if (!state) { + state = {}; + } + const key = createRandomKey(); + return { + ...state, + key, + // TODO: Remove in v2 - use __TSR_key instead + __TSR_key: key, + [stateIndexKey]: index + }; +} +function createMemoryHistory(opts = { + initialEntries: ["/"] +}) { + const entries = opts.initialEntries; + let index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1; + const states = entries.map( + (_entry, index2) => assignKeyAndIndex(index2, void 0) + ); + const getLocation = () => parseHref(entries[index], states[index]); + let blockers = []; + const _getBlockers = () => blockers; + const _setBlockers = (newBlockers) => blockers = newBlockers; + return createHistory({ + getLocation, + getLength: () => entries.length, + pushState: (path, state) => { + if (index < entries.length - 1) { + entries.splice(index + 1); + states.splice(index + 1); + } + states.push(state); + entries.push(path); + index = Math.max(entries.length - 1, 0); + }, + replaceState: (path, state) => { + states[index] = state; + entries[index] = path; + }, + back: () => { + index = Math.max(index - 1, 0); + }, + forward: () => { + index = Math.min(index + 1, entries.length - 1); + }, + go: (n) => { + index = Math.min(Math.max(index + n, 0), entries.length - 1); + }, + createHref: (path) => path, + getBlockers: _getBlockers, + setBlockers: _setBlockers + }); +} +function sanitizePath(path) { + let sanitized = path.replace(/[\x00-\x1f\x7f]/g, ""); + if (sanitized.startsWith("//")) { + sanitized = "/" + sanitized.replace(/^\/+/, ""); + } + return sanitized; +} +function parseHref(href, state) { + const sanitizedHref = sanitizePath(href); + const hashIndex = sanitizedHref.indexOf("#"); + const searchIndex = sanitizedHref.indexOf("?"); + const addedKey = createRandomKey(); + return { + href: sanitizedHref, + pathname: sanitizedHref.substring( + 0, + hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : sanitizedHref.length + ), + hash: hashIndex > -1 ? sanitizedHref.substring(hashIndex) : "", + search: searchIndex > -1 ? sanitizedHref.slice( + searchIndex, + hashIndex === -1 ? void 0 : hashIndex + ) : "", + state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey } + }; +} +function createRandomKey() { + return (Math.random() + 1).toString(36).substring(7); +} +export { + createMemoryHistory as c, + parseHref as p +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@tanstack/react-router.mjs b/apps/admin/.output/server/_chunks/_libs/@tanstack/react-router.mjs new file mode 100644 index 00000000..ae587773 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@tanstack/react-router.mjs @@ -0,0 +1,1475 @@ +import { j as jsxRuntimeExports, r as reactExports, a as React, R as React2 } from "../../../_libs/react.mjs"; +import { w as warning } from "../../../_libs/tiny-warning.mjs"; +import { i as isNotFound, d as defaultGetScrollRestorationKey, r as restoreScroll, e as escapeHtml, s as storageKey, a as rootRouteId, b as isRedirect, g as getLocationChangeInfo, t as transformReadableStreamWithRouter, c as transformPipeableStreamWithRouter, f as isDangerousProtocol, h as exactPathTest, j as removeTrailingSlash, k as deepEqual, l as functionalUpdate, B as BaseRootRoute, m as BaseRoute, n as isModuleNotFoundError, R as RouterCore } from "./router-core.mjs"; +import { i as invariant } from "../../../_libs/tiny-invariant.mjs"; +import { PassThrough } from "node:stream"; +import { R as ReactDOMServer } from "../react-dom.mjs"; +import { i as isbot } from "../../../_libs/isbot.mjs"; +function CatchBoundary(props) { + const errorComponent = props.errorComponent ?? ErrorComponent; + return /* @__PURE__ */ jsxRuntimeExports.jsx( + CatchBoundaryImpl, + { + getResetKey: props.getResetKey, + onCatch: props.onCatch, + children: ({ error, reset }) => { + if (error) { + return reactExports.createElement(errorComponent, { + error, + reset + }); + } + return props.children; + } + } + ); +} +class CatchBoundaryImpl extends reactExports.Component { + constructor() { + super(...arguments); + this.state = { error: null }; + } + static getDerivedStateFromProps(props) { + return { resetKey: props.getResetKey() }; + } + static getDerivedStateFromError(error) { + return { error }; + } + reset() { + this.setState({ error: null }); + } + componentDidUpdate(prevProps, prevState) { + if (prevState.error && prevState.resetKey !== this.state.resetKey) { + this.reset(); + } + } + componentDidCatch(error, errorInfo) { + if (this.props.onCatch) { + this.props.onCatch(error, errorInfo); + } + } + render() { + return this.props.children({ + error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error, + reset: () => { + this.reset(); + } + }); + } +} +function ErrorComponent({ error }) { + const [show, setShow] = reactExports.useState(false); + return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { padding: ".5rem", maxWidth: "100%" }, children: [ + /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: ".5rem" }, children: [ + /* @__PURE__ */ jsxRuntimeExports.jsx("strong", { style: { fontSize: "1rem" }, children: "Something went wrong!" }), + /* @__PURE__ */ jsxRuntimeExports.jsx( + "button", + { + style: { + appearance: "none", + fontSize: ".6em", + border: "1px solid currentColor", + padding: ".1rem .2rem", + fontWeight: "bold", + borderRadius: ".25rem" + }, + onClick: () => setShow((d) => !d), + children: show ? "Hide Error" : "Show Error" + } + ) + ] }), + /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { height: ".25rem" } }), + show ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx( + "pre", + { + style: { + fontSize: ".7em", + border: "1px solid red", + borderRadius: ".25rem", + padding: ".3rem", + color: "red", + overflow: "auto" + }, + children: error.message ? /* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: error.message }) : null + } + ) }) : null + ] }); +} +const routerContext = reactExports.createContext(null); +function getRouterContext() { + if (typeof document === "undefined") { + return routerContext; + } + if (window.__TSR_ROUTER_CONTEXT__) { + return window.__TSR_ROUTER_CONTEXT__; + } + window.__TSR_ROUTER_CONTEXT__ = routerContext; + return routerContext; +} +function useRouter(opts) { + const value = reactExports.useContext(getRouterContext()); + warning( + !((opts?.warn ?? true) && !value) + ); + return value; +} +function useRouterState(opts) { + const contextRouter = useRouter({ + warn: opts?.router === void 0 + }); + const router = opts?.router || contextRouter; + { + const state = router.state; + return opts?.select ? opts.select(state) : state; + } +} +const REACT_USE = "use"; +const reactUse = React[REACT_USE]; +function useForwardedRef(ref) { + const innerRef = reactExports.useRef(null); + reactExports.useImperativeHandle(ref, () => innerRef.current, []); + return innerRef; +} +const matchContext = reactExports.createContext(void 0); +const dummyMatchContext = reactExports.createContext( + void 0 +); +function CatchNotFound(props) { + const resetKey = useRouterState({ + select: (s) => `not-found-${s.location.pathname}-${s.status}` + }); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + CatchBoundary, + { + getResetKey: () => resetKey, + onCatch: (error, errorInfo) => { + if (isNotFound(error)) { + props.onCatch?.(error, errorInfo); + } else { + throw error; + } + }, + errorComponent: ({ error }) => { + if (isNotFound(error)) { + return props.fallback?.(error); + } else { + throw error; + } + }, + children: props.children + } + ); +} +function DefaultGlobalNotFound() { + return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Not Found" }); +} +function SafeFragment(props) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: props.children }); +} +function renderRouteNotFound(router, route, data) { + if (!route.options.notFoundComponent) { + if (router.options.defaultNotFoundComponent) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(router.options.defaultNotFoundComponent, { ...data }); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(DefaultGlobalNotFound, {}); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(route.options.notFoundComponent, { ...data }); +} +function ScriptOnce({ children }) { + const router = useRouter(); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + "script", + { + nonce: router.options.ssr?.nonce, + dangerouslySetInnerHTML: { + __html: children + ";document.currentScript.remove()" + } + } + ); +} +function ScrollRestoration() { + const router = useRouter(); + if (!router.isScrollRestoring || false) { + return null; + } + if (typeof router.options.scrollRestoration === "function") { + const shouldRestore = router.options.scrollRestoration({ + location: router.latestLocation + }); + if (!shouldRestore) { + return null; + } + } + const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey; + const userKey = getKey(router.latestLocation); + const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0; + const restoreScrollOptions = { + storageKey, + shouldScrollRestoration: true + }; + if (resolvedKey) { + restoreScrollOptions.key = resolvedKey; + } + return /* @__PURE__ */ jsxRuntimeExports.jsx( + ScriptOnce, + { + children: `(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})` + } + ); +} +function ClientOnly({ children, fallback = null }) { + return useHydrated() ? /* @__PURE__ */ jsxRuntimeExports.jsx(React2.Fragment, { children }) : /* @__PURE__ */ jsxRuntimeExports.jsx(React2.Fragment, { children: fallback }); +} +function useHydrated() { + return React2.useSyncExternalStore( + subscribe, + () => true, + () => false + ); +} +function subscribe() { + return () => { + }; +} +const Match = reactExports.memo(function MatchImpl({ + matchId +}) { + const router = useRouter(); + const matchState = useRouterState({ + select: (s) => { + const matchIndex = s.matches.findIndex((d) => d.id === matchId); + const match = s.matches[matchIndex]; + invariant( + match + ); + return { + routeId: match.routeId, + ssr: match.ssr, + _displayPending: match._displayPending, + resetKey: s.loadedAt, + parentRouteId: s.matches[matchIndex - 1]?.routeId + }; + }, + structuralSharing: true + }); + const route = router.routesById[matchState.routeId]; + const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent; + const pendingElement = PendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(PendingComponent, {}) : null; + const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent; + const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch; + const routeNotFoundComponent = route.isRoot ? ( + // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component + route.options.notFoundComponent ?? router.options.notFoundRoute?.options.component + ) : route.options.notFoundComponent; + const resolvedNoSsr = matchState.ssr === false || matchState.ssr === "data-only"; + const ResolvedSuspenseBoundary = ( + // If we're on the root route, allow forcefully wrapping in suspense + (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (route.options.errorComponent?.preload || resolvedNoSsr)) ? reactExports.Suspense : SafeFragment + ); + const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment; + const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment; + const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment; + return /* @__PURE__ */ jsxRuntimeExports.jsxs(ShellComponent, { children: [ + /* @__PURE__ */ jsxRuntimeExports.jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsxRuntimeExports.jsx( + ResolvedCatchBoundary, + { + getResetKey: () => matchState.resetKey, + errorComponent: routeErrorComponent || ErrorComponent, + onCatch: (error, errorInfo) => { + if (isNotFound(error)) throw error; + routeOnCatch?.(error, errorInfo); + }, + children: /* @__PURE__ */ jsxRuntimeExports.jsx( + ResolvedNotFoundBoundary, + { + fallback: (error) => { + if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot) + throw error; + return reactExports.createElement(routeNotFoundComponent, error); + }, + children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsxRuntimeExports.jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(MatchInner, { matchId }) + } + ) + } + ) }) }), + matchState.parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ + /* @__PURE__ */ jsxRuntimeExports.jsx(OnRendered, {}), + /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollRestoration, {}) + ] }) : null + ] }); +}); +function OnRendered() { + const router = useRouter(); + const prevLocationRef = reactExports.useRef( + void 0 + ); + return /* @__PURE__ */ jsxRuntimeExports.jsx( + "script", + { + suppressHydrationWarning: true, + ref: (el) => { + if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) { + router.emit({ + type: "onRendered", + ...getLocationChangeInfo(router.state) + }); + prevLocationRef.current = router.latestLocation; + } + } + }, + router.latestLocation.state.__TSR_key + ); +} +const MatchInner = reactExports.memo(function MatchInnerImpl({ + matchId +}) { + const router = useRouter(); + const { match, key, routeId } = useRouterState({ + select: (s) => { + const match2 = s.matches.find((d) => d.id === matchId); + const routeId2 = match2.routeId; + const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps; + const remountDeps = remountFn?.({ + routeId: routeId2, + loaderDeps: match2.loaderDeps, + params: match2._strictParams, + search: match2._strictSearch + }); + const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0; + return { + key: key2, + routeId: routeId2, + match: { + id: match2.id, + status: match2.status, + error: match2.error, + invalid: match2.invalid, + _forcePending: match2._forcePending, + _displayPending: match2._displayPending + } + }; + }, + structuralSharing: true + }); + const route = router.routesById[routeId]; + const out = reactExports.useMemo(() => { + const Comp = route.options.component ?? router.options.defaultComponent; + if (Comp) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(Comp, {}, key); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {}); + }, [key, route.options.component, router.options.defaultComponent]); + if (match._displayPending) { + throw router.getMatch(match.id)?._nonReactive.displayPendingPromise; + } + if (match._forcePending) { + throw router.getMatch(match.id)?._nonReactive.minPendingPromise; + } + if (match.status === "pending") { + const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs; + if (pendingMinMs) { + const routerMatch = router.getMatch(match.id); + if (routerMatch && !routerMatch._nonReactive.minPendingPromise) ; + } + throw router.getMatch(match.id)?._nonReactive.loadPromise; + } + if (match.status === "notFound") { + invariant(isNotFound(match.error)); + return renderRouteNotFound(router, route, match.error); + } + if (match.status === "redirected") { + invariant(isRedirect(match.error)); + throw router.getMatch(match.id)?._nonReactive.loadPromise; + } + if (match.status === "error") { + { + const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent; + return /* @__PURE__ */ jsxRuntimeExports.jsx( + RouteErrorComponent, + { + error: match.error, + reset: void 0, + info: { + componentStack: "" + } + } + ); + } + } + return out; +}); +const Outlet = reactExports.memo(function OutletImpl() { + const router = useRouter(); + const matchId = reactExports.useContext(matchContext); + const routeId = useRouterState({ + select: (s) => s.matches.find((d) => d.id === matchId)?.routeId + }); + const route = router.routesById[routeId]; + const parentGlobalNotFound = useRouterState({ + select: (s) => { + const matches = s.matches; + const parentMatch = matches.find((d) => d.id === matchId); + invariant( + parentMatch + ); + return parentMatch.globalNotFound; + } + }); + const childMatchId = useRouterState({ + select: (s) => { + const matches = s.matches; + const index = matches.findIndex((d) => d.id === matchId); + return matches[index + 1]?.id; + } + }); + const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(router.options.defaultPendingComponent, {}) : null; + if (parentGlobalNotFound) { + return renderRouteNotFound(router, route, void 0); + } + if (!childMatchId) { + return null; + } + const nextMatch = /* @__PURE__ */ jsxRuntimeExports.jsx(Match, { matchId: childMatchId }); + if (routeId === rootRouteId) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: pendingElement, children: nextMatch }); + } + return nextMatch; +}); +function Matches() { + const router = useRouter(); + const rootRoute = router.routesById[rootRouteId]; + const PendingComponent = rootRoute.options.pendingComponent ?? router.options.defaultPendingComponent; + const pendingElement = PendingComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(PendingComponent, {}) : null; + const ResolvedSuspense = SafeFragment; + const inner = /* @__PURE__ */ jsxRuntimeExports.jsxs(ResolvedSuspense, { fallback: pendingElement, children: [ + false, + /* @__PURE__ */ jsxRuntimeExports.jsx(MatchesInner, {}) + ] }); + return router.options.InnerWrap ? /* @__PURE__ */ jsxRuntimeExports.jsx(router.options.InnerWrap, { children: inner }) : inner; +} +function MatchesInner() { + const router = useRouter(); + const matchId = useRouterState({ + select: (s) => { + return s.matches[0]?.id; + } + }); + const resetKey = useRouterState({ + select: (s) => s.loadedAt + }); + const matchComponent = matchId ? /* @__PURE__ */ jsxRuntimeExports.jsx(Match, { matchId }) : null; + return /* @__PURE__ */ jsxRuntimeExports.jsx(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsxRuntimeExports.jsx( + CatchBoundary, + { + getResetKey: () => resetKey, + errorComponent: ErrorComponent, + onCatch: (error) => { + warning(false, error.message || error.toString()); + }, + children: matchComponent + } + ) }); +} +function RouterContextProvider({ + router, + children, + ...rest +}) { + if (Object.keys(rest).length > 0) { + router.update({ + ...router.options, + ...rest, + context: { + ...router.options.context, + ...rest.context + } + }); + } + const routerContext2 = getRouterContext(); + const provider = /* @__PURE__ */ jsxRuntimeExports.jsx(routerContext2.Provider, { value: router, children }); + if (router.options.Wrap) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(router.options.Wrap, { children: provider }); + } + return provider; +} +function RouterProvider({ router, ...rest }) { + return /* @__PURE__ */ jsxRuntimeExports.jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Matches, {}) }); +} +const renderRouterToStream = async ({ + request, + router, + responseHeaders, + children +}) => { + if (typeof ReactDOMServer.renderToReadableStream === "function") { + const stream = await ReactDOMServer.renderToReadableStream(children, { + signal: request.signal, + nonce: router.options.ssr?.nonce, + progressiveChunkSize: Number.POSITIVE_INFINITY + }); + if (isbot(request.headers.get("User-Agent"))) { + await stream.allReady; + } + const responseStream = transformReadableStreamWithRouter( + router, + stream + ); + return new Response(responseStream, { + status: router.state.statusCode, + headers: responseHeaders + }); + } + if (typeof ReactDOMServer.renderToPipeableStream === "function") { + const reactAppPassthrough = new PassThrough(); + try { + const pipeable = ReactDOMServer.renderToPipeableStream(children, { + nonce: router.options.ssr?.nonce, + progressiveChunkSize: Number.POSITIVE_INFINITY, + ...isbot(request.headers.get("User-Agent")) ? { + onAllReady() { + pipeable.pipe(reactAppPassthrough); + } + } : { + onShellReady() { + pipeable.pipe(reactAppPassthrough); + } + }, + onError: (error, info) => { + console.error("Error in renderToPipeableStream:", error, info); + if (!reactAppPassthrough.destroyed) { + reactAppPassthrough.destroy( + error instanceof Error ? error : new Error(String(error)) + ); + } + } + }); + } catch (e) { + console.error("Error in renderToPipeableStream:", e); + reactAppPassthrough.destroy(e instanceof Error ? e : new Error(String(e))); + } + const responseStream = transformPipeableStreamWithRouter( + router, + reactAppPassthrough + ); + return new Response(responseStream, { + status: router.state.statusCode, + headers: responseHeaders + }); + } + throw new Error( + "No renderToReadableStream or renderToPipeableStream found in react-dom/server. Ensure you are using a version of react-dom that supports streaming." + ); +}; +function useMatch(opts) { + const nearestMatchId = reactExports.useContext( + opts.from ? dummyMatchContext : matchContext + ); + const matchSelection = useRouterState({ + select: (state) => { + const match = state.matches.find( + (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId + ); + invariant( + !((opts.shouldThrow ?? true) && !match), + `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}` + ); + if (match === void 0) { + return void 0; + } + return opts.select ? opts.select(match) : match; + }, + structuralSharing: opts.structuralSharing + }); + return matchSelection; +} +function useLoaderData(opts) { + return useMatch({ + from: opts.from, + strict: opts.strict, + structuralSharing: opts.structuralSharing, + select: (s) => { + return opts.select ? opts.select(s.loaderData) : s.loaderData; + } + }); +} +function useLoaderDeps(opts) { + const { select, ...rest } = opts; + return useMatch({ + ...rest, + select: (s) => { + return select ? select(s.loaderDeps) : s.loaderDeps; + } + }); +} +function useParams(opts) { + return useMatch({ + from: opts.from, + shouldThrow: opts.shouldThrow, + structuralSharing: opts.structuralSharing, + strict: opts.strict, + select: (match) => { + const params = opts.strict === false ? match.params : match._strictParams; + return opts.select ? opts.select(params) : params; + } + }); +} +function useSearch(opts) { + return useMatch({ + from: opts.from, + strict: opts.strict, + shouldThrow: opts.shouldThrow, + structuralSharing: opts.structuralSharing, + select: (match) => { + return opts.select ? opts.select(match.search) : match.search; + } + }); +} +function useNavigate(_defaultOpts) { + const router = useRouter(); + return reactExports.useCallback( + (options) => { + return router.navigate({ + ...options, + from: options.from ?? _defaultOpts?.from + }); + }, + [_defaultOpts?.from, router] + ); +} +function useLinkProps(options, forwardedRef) { + const router = useRouter(); + const innerRef = useForwardedRef(forwardedRef); + const { + // custom props + activeProps, + inactiveProps, + activeOptions, + to, + preload: userPreload, + preloadDelay: userPreloadDelay, + hashScrollIntoView, + replace, + startTransition, + resetScroll, + viewTransition, + // element props + children, + target, + disabled, + style, + className, + onClick, + onFocus, + onMouseEnter, + onMouseLeave, + onTouchStart, + ignoreBlocker, + // prevent these from being returned + params: _params, + search: _search, + hash: _hash, + state: _state, + mask: _mask, + reloadDocument: _reloadDocument, + unsafeRelative: _unsafeRelative, + from: _from, + _fromLocation, + ...propsSafeToSpread + } = options; + { + const safeInternal = isSafeInternal(to); + if (typeof to === "string" && !safeInternal && // Quick checks to avoid `new URL` in common internal-like cases + to.indexOf(":") > -1) { + try { + new URL(to); + if (isDangerousProtocol(to)) { + if (false) ; + return { + ...propsSafeToSpread, + ref: innerRef, + href: void 0, + ...children && { children }, + ...target && { target }, + ...disabled && { disabled }, + ...style && { style }, + ...className && { className } + }; + } + return { + ...propsSafeToSpread, + ref: innerRef, + href: to, + ...children && { children }, + ...target && { target }, + ...disabled && { disabled }, + ...style && { style }, + ...className && { className } + }; + } catch { + } + } + const next2 = router.buildLocation({ ...options, from: options.from }); + const hrefOptionPublicHref2 = next2.maskedLocation ? next2.maskedLocation.publicHref : next2.publicHref; + const hrefOptionExternal2 = next2.maskedLocation ? next2.maskedLocation.external : next2.external; + const hrefOption2 = getHrefOption( + hrefOptionPublicHref2, + hrefOptionExternal2, + router.history, + disabled + ); + const externalLink2 = (() => { + if (hrefOption2?.external) { + if (isDangerousProtocol(hrefOption2.href)) { + return void 0; + } + return hrefOption2.href; + } + if (safeInternal) return void 0; + if (typeof to === "string" && to.indexOf(":") > -1) { + try { + new URL(to); + if (isDangerousProtocol(to)) { + if (false) ; + return void 0; + } + return to; + } catch { + } + } + return void 0; + })(); + const isActive2 = (() => { + if (externalLink2) return false; + const currentLocation = router.state.location; + const exact = activeOptions?.exact ?? false; + if (exact) { + const testExact = exactPathTest( + currentLocation.pathname, + next2.pathname, + router.basepath + ); + if (!testExact) { + return false; + } + } else { + const currentPathSplit = removeTrailingSlash( + currentLocation.pathname, + router.basepath + ); + const nextPathSplit = removeTrailingSlash( + next2.pathname, + router.basepath + ); + const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === "/"); + if (!pathIsFuzzyEqual) { + return false; + } + } + const includeSearch = activeOptions?.includeSearch ?? true; + if (includeSearch) { + if (currentLocation.search !== next2.search) { + const currentSearchEmpty = !currentLocation.search || typeof currentLocation.search === "object" && Object.keys(currentLocation.search).length === 0; + const nextSearchEmpty = !next2.search || typeof next2.search === "object" && Object.keys(next2.search).length === 0; + if (!(currentSearchEmpty && nextSearchEmpty)) { + const searchTest = deepEqual(currentLocation.search, next2.search, { + partial: !exact, + ignoreUndefined: !activeOptions?.explicitUndefined + }); + if (!searchTest) { + return false; + } + } + } + } + if (activeOptions?.includeHash) { + return false; + } + return true; + })(); + if (externalLink2) { + return { + ...propsSafeToSpread, + ref: innerRef, + href: externalLink2, + ...children && { children }, + ...target && { target }, + ...disabled && { disabled }, + ...style && { style }, + ...className && { className } + }; + } + const resolvedActiveProps2 = isActive2 ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT; + const resolvedInactiveProps2 = isActive2 ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT; + const resolvedStyle2 = (() => { + const baseStyle = style; + const activeStyle = resolvedActiveProps2.style; + const inactiveStyle = resolvedInactiveProps2.style; + if (!baseStyle && !activeStyle && !inactiveStyle) { + return void 0; + } + if (baseStyle && !activeStyle && !inactiveStyle) { + return baseStyle; + } + if (!baseStyle && activeStyle && !inactiveStyle) { + return activeStyle; + } + if (!baseStyle && !activeStyle && inactiveStyle) { + return inactiveStyle; + } + return { + ...baseStyle, + ...activeStyle, + ...inactiveStyle + }; + })(); + const resolvedClassName2 = (() => { + const baseClassName = className; + const activeClassName = resolvedActiveProps2.className; + const inactiveClassName = resolvedInactiveProps2.className; + if (!baseClassName && !activeClassName && !inactiveClassName) { + return ""; + } + let out = ""; + if (baseClassName) { + out = baseClassName; + } + if (activeClassName) { + out = out ? `${out} ${activeClassName}` : activeClassName; + } + if (inactiveClassName) { + out = out ? `${out} ${inactiveClassName}` : inactiveClassName; + } + return out; + })(); + return { + ...propsSafeToSpread, + ...resolvedActiveProps2, + ...resolvedInactiveProps2, + href: hrefOption2?.href, + ref: innerRef, + disabled: !!disabled, + target, + ...resolvedStyle2 && { style: resolvedStyle2 }, + ...resolvedClassName2 && { className: resolvedClassName2 }, + ...disabled && STATIC_DISABLED_PROPS, + ...isActive2 && STATIC_ACTIVE_PROPS + }; + } +} +const STATIC_EMPTY_OBJECT = {}; +const STATIC_ACTIVE_OBJECT = { className: "active" }; +const STATIC_DISABLED_PROPS = { role: "link", "aria-disabled": true }; +const STATIC_ACTIVE_PROPS = { "data-status": "active", "aria-current": "page" }; +function getHrefOption(publicHref, external, history, disabled) { + if (disabled) return void 0; + if (external) { + return { href: publicHref, external: true }; + } + return { + href: history.createHref(publicHref) || "/", + external: false + }; +} +function isSafeInternal(to) { + if (typeof to !== "string") return false; + const zero = to.charCodeAt(0); + if (zero === 47) return to.charCodeAt(1) !== 47; + return zero === 46; +} +const Link = reactExports.forwardRef( + (props, ref) => { + const { _asChild, ...rest } = props; + const { type: _type, ...linkProps } = useLinkProps(rest, ref); + const children = typeof rest.children === "function" ? rest.children({ + isActive: linkProps["data-status"] === "active" + }) : rest.children; + if (!_asChild) { + const { disabled: _, ...rest2 } = linkProps; + return reactExports.createElement("a", rest2, children); + } + return reactExports.createElement(_asChild, linkProps, children); + } +); +class Route extends BaseRoute { + /** + * @deprecated Use the `createRoute` function instead. + */ + constructor(options) { + super(options); + this.useMatch = (opts) => { + return useMatch({ + select: opts?.select, + from: this.id, + structuralSharing: opts?.structuralSharing + }); + }; + this.useRouteContext = (opts) => { + return useMatch({ + ...opts, + from: this.id, + select: (d) => opts?.select ? opts.select(d.context) : d.context + }); + }; + this.useSearch = (opts) => { + return useSearch({ + select: opts?.select, + structuralSharing: opts?.structuralSharing, + from: this.id + }); + }; + this.useParams = (opts) => { + return useParams({ + select: opts?.select, + structuralSharing: opts?.structuralSharing, + from: this.id + }); + }; + this.useLoaderDeps = (opts) => { + return useLoaderDeps({ ...opts, from: this.id }); + }; + this.useLoaderData = (opts) => { + return useLoaderData({ ...opts, from: this.id }); + }; + this.useNavigate = () => { + return useNavigate({ from: this.fullPath }); + }; + this.Link = React2.forwardRef( + (props, ref) => { + return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ref, from: this.fullPath, ...props }); + } + ); + this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); + } +} +function createRoute(options) { + return new Route( + // TODO: Help us TypeChris, you're our only hope! + options + ); +} +class RootRoute extends BaseRootRoute { + /** + * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead. + */ + constructor(options) { + super(options); + this.useMatch = (opts) => { + return useMatch({ + select: opts?.select, + from: this.id, + structuralSharing: opts?.structuralSharing + }); + }; + this.useRouteContext = (opts) => { + return useMatch({ + ...opts, + from: this.id, + select: (d) => opts?.select ? opts.select(d.context) : d.context + }); + }; + this.useSearch = (opts) => { + return useSearch({ + select: opts?.select, + structuralSharing: opts?.structuralSharing, + from: this.id + }); + }; + this.useParams = (opts) => { + return useParams({ + select: opts?.select, + structuralSharing: opts?.structuralSharing, + from: this.id + }); + }; + this.useLoaderDeps = (opts) => { + return useLoaderDeps({ ...opts, from: this.id }); + }; + this.useLoaderData = (opts) => { + return useLoaderData({ ...opts, from: this.id }); + }; + this.useNavigate = () => { + return useNavigate({ from: this.fullPath }); + }; + this.Link = React2.forwardRef( + (props, ref) => { + return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ref, from: this.fullPath, ...props }); + } + ); + this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); + } +} +function createRootRoute(options) { + return new RootRoute(options); +} +function createFileRoute(path) { + if (typeof path === "object") { + return new FileRoute(path, { + silent: true + }).createRoute(path); + } + return new FileRoute(path, { + silent: true + }).createRoute; +} +class FileRoute { + constructor(path, _opts) { + this.path = path; + this.createRoute = (options) => { + warning( + this.silent + ); + const route = createRoute(options); + route.isRoot = false; + return route; + }; + this.silent = _opts?.silent; + } +} +class LazyRoute { + constructor(opts) { + this.useMatch = (opts2) => { + return useMatch({ + select: opts2?.select, + from: this.options.id, + structuralSharing: opts2?.structuralSharing + }); + }; + this.useRouteContext = (opts2) => { + return useMatch({ + from: this.options.id, + select: (d) => opts2?.select ? opts2.select(d.context) : d.context + }); + }; + this.useSearch = (opts2) => { + return useSearch({ + select: opts2?.select, + structuralSharing: opts2?.structuralSharing, + from: this.options.id + }); + }; + this.useParams = (opts2) => { + return useParams({ + select: opts2?.select, + structuralSharing: opts2?.structuralSharing, + from: this.options.id + }); + }; + this.useLoaderDeps = (opts2) => { + return useLoaderDeps({ ...opts2, from: this.options.id }); + }; + this.useLoaderData = (opts2) => { + return useLoaderData({ ...opts2, from: this.options.id }); + }; + this.useNavigate = () => { + const router = useRouter(); + return useNavigate({ from: router.routesById[this.options.id].fullPath }); + }; + this.options = opts; + this.$$typeof = /* @__PURE__ */ Symbol.for("react.memo"); + } +} +function createLazyFileRoute(id) { + if (typeof id === "object") { + return new LazyRoute(id); + } + return (opts) => new LazyRoute({ id, ...opts }); +} +function lazyRouteComponent(importer, exportName) { + let loadPromise; + let comp; + let error; + let reload; + const load = () => { + if (!loadPromise) { + loadPromise = importer().then((res) => { + loadPromise = void 0; + comp = res[exportName]; + }).catch((err) => { + error = err; + if (isModuleNotFoundError(error)) { + if (error instanceof Error && typeof window !== "undefined" && typeof sessionStorage !== "undefined") { + const storageKey2 = `tanstack_router_reload:${error.message}`; + if (!sessionStorage.getItem(storageKey2)) { + sessionStorage.setItem(storageKey2, "1"); + reload = true; + } + } + } + }); + } + return loadPromise; + }; + const lazyComp = function Lazy(props) { + if (reload) { + window.location.reload(); + throw new Promise(() => { + }); + } + if (error) { + throw error; + } + if (!comp) { + if (reactUse) { + reactUse(load()); + } else { + throw load(); + } + } + return reactExports.createElement(comp, props); + }; + lazyComp.preload = load; + return lazyComp; +} +const createRouter = (options) => { + return new Router(options); +}; +class Router extends RouterCore { + constructor(options) { + super(options); + } +} +if (typeof globalThis !== "undefined") { + globalThis.createFileRoute = createFileRoute; + globalThis.createLazyFileRoute = createLazyFileRoute; +} else if (typeof window !== "undefined") { + window.createFileRoute = createFileRoute; + window.createLazyFileRoute = createLazyFileRoute; +} +function Asset({ + tag, + attrs, + children, + nonce +}) { + switch (tag) { + case "title": + return /* @__PURE__ */ jsxRuntimeExports.jsx("title", { ...attrs, suppressHydrationWarning: true, children }); + case "meta": + return /* @__PURE__ */ jsxRuntimeExports.jsx("meta", { ...attrs, suppressHydrationWarning: true }); + case "link": + return /* @__PURE__ */ jsxRuntimeExports.jsx("link", { ...attrs, nonce, suppressHydrationWarning: true }); + case "style": + return /* @__PURE__ */ jsxRuntimeExports.jsx( + "style", + { + ...attrs, + dangerouslySetInnerHTML: { __html: children }, + nonce + } + ); + case "script": + return /* @__PURE__ */ jsxRuntimeExports.jsx(Script, { attrs, children }); + default: + return null; + } +} +function Script({ + attrs, + children +}) { + useRouter(); + reactExports.useEffect(() => { + if (attrs?.src) { + const normSrc = (() => { + try { + const base = document.baseURI || window.location.href; + return new URL(attrs.src, base).href; + } catch { + return attrs.src; + } + })(); + const existingScript = Array.from( + document.querySelectorAll("script[src]") + ).find((el) => el.src === normSrc); + if (existingScript) { + return; + } + const script = document.createElement("script"); + for (const [key, value] of Object.entries(attrs)) { + if (key !== "suppressHydrationWarning" && value !== void 0 && value !== false) { + script.setAttribute( + key, + typeof value === "boolean" ? "" : String(value) + ); + } + } + document.head.appendChild(script); + return () => { + if (script.parentNode) { + script.parentNode.removeChild(script); + } + }; + } + if (typeof children === "string") { + const typeAttr = typeof attrs?.type === "string" ? attrs.type : "text/javascript"; + const nonceAttr = typeof attrs?.nonce === "string" ? attrs.nonce : void 0; + const existingScript = Array.from( + document.querySelectorAll("script:not([src])") + ).find((el) => { + if (!(el instanceof HTMLScriptElement)) return false; + const sType = el.getAttribute("type") ?? "text/javascript"; + const sNonce = el.getAttribute("nonce") ?? void 0; + return el.textContent === children && sType === typeAttr && sNonce === nonceAttr; + }); + if (existingScript) { + return; + } + const script = document.createElement("script"); + script.textContent = children; + if (attrs) { + for (const [key, value] of Object.entries(attrs)) { + if (key !== "suppressHydrationWarning" && value !== void 0 && value !== false) { + script.setAttribute( + key, + typeof value === "boolean" ? "" : String(value) + ); + } + } + } + document.head.appendChild(script); + return () => { + if (script.parentNode) { + script.parentNode.removeChild(script); + } + }; + } + return void 0; + }, [attrs, children]); + if (attrs?.src && typeof attrs.src === "string") { + return /* @__PURE__ */ jsxRuntimeExports.jsx("script", { ...attrs, suppressHydrationWarning: true }); + } + if (typeof children === "string") { + return /* @__PURE__ */ jsxRuntimeExports.jsx( + "script", + { + ...attrs, + dangerouslySetInnerHTML: { __html: children }, + suppressHydrationWarning: true + } + ); + } + return null; +} +const useTags = () => { + const router = useRouter(); + const nonce = router.options.ssr?.nonce; + const routeMeta = useRouterState({ + select: (state) => { + return state.matches.map((match) => match.meta).filter(Boolean); + } + }); + const meta = reactExports.useMemo(() => { + const resultMeta = []; + const metaByAttribute = {}; + let title; + for (let i = routeMeta.length - 1; i >= 0; i--) { + const metas = routeMeta[i]; + for (let j = metas.length - 1; j >= 0; j--) { + const m = metas[j]; + if (!m) continue; + if (m.title) { + if (!title) { + title = { + tag: "title", + children: m.title + }; + } + } else if ("script:ld+json" in m) { + try { + const json = JSON.stringify(m["script:ld+json"]); + resultMeta.push({ + tag: "script", + attrs: { + type: "application/ld+json" + }, + children: escapeHtml(json) + }); + } catch { + } + } else { + const attribute = m.name ?? m.property; + if (attribute) { + if (metaByAttribute[attribute]) { + continue; + } else { + metaByAttribute[attribute] = true; + } + } + resultMeta.push({ + tag: "meta", + attrs: { + ...m, + nonce + } + }); + } + } + } + if (title) { + resultMeta.push(title); + } + if (nonce) { + resultMeta.push({ + tag: "meta", + attrs: { + property: "csp-nonce", + content: nonce + } + }); + } + resultMeta.reverse(); + return resultMeta; + }, [routeMeta, nonce]); + const links = useRouterState({ + select: (state) => { + const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({ + tag: "link", + attrs: { + ...link, + nonce + } + })); + const manifest = router.ssr?.manifest; + const assets = state.matches.map((match) => manifest?.routes[match.routeId]?.assets ?? []).filter(Boolean).flat(1).filter((asset) => asset.tag === "link").map( + (asset) => ({ + tag: "link", + attrs: { + ...asset.attrs, + suppressHydrationWarning: true, + nonce + } + }) + ); + return [...constructed, ...assets]; + }, + structuralSharing: true + }); + const preloadLinks = useRouterState({ + select: (state) => { + const preloadLinks2 = []; + state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach( + (route) => router.ssr?.manifest?.routes[route.id]?.preloads?.filter(Boolean).forEach((preload) => { + preloadLinks2.push({ + tag: "link", + attrs: { + rel: "modulepreload", + href: preload, + nonce + } + }); + }) + ); + return preloadLinks2; + }, + structuralSharing: true + }); + const styles = useRouterState({ + select: (state) => state.matches.map((match) => match.styles).flat(1).filter(Boolean).map(({ children, ...attrs }) => ({ + tag: "style", + attrs: { + ...attrs, + nonce + }, + children + })), + structuralSharing: true + }); + const headScripts = useRouterState({ + select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({ + tag: "script", + attrs: { + ...script, + nonce + }, + children + })), + structuralSharing: true + }); + return uniqBy( + [ + ...meta, + ...preloadLinks, + ...links, + ...styles, + ...headScripts + ], + (d) => { + return JSON.stringify(d); + } + ); +}; +function uniqBy(arr, fn) { + const seen = /* @__PURE__ */ new Set(); + return arr.filter((item) => { + const key = fn(item); + if (seen.has(key)) { + return false; + } + seen.add(key); + return true; + }); +} +function HeadContent() { + const tags = useTags(); + const router = useRouter(); + const nonce = router.options.ssr?.nonce; + return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: tags.map((tag) => /* @__PURE__ */ reactExports.createElement(Asset, { ...tag, key: `tsr-meta-${JSON.stringify(tag)}`, nonce })) }); +} +const Scripts = () => { + const router = useRouter(); + const nonce = router.options.ssr?.nonce; + const assetScripts = useRouterState({ + select: (state) => { + const assetScripts2 = []; + const manifest = router.ssr?.manifest; + if (!manifest) { + return []; + } + state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach( + (route) => manifest.routes[route.id]?.assets?.filter((d) => d.tag === "script").forEach((asset) => { + assetScripts2.push({ + tag: "script", + attrs: { ...asset.attrs, nonce }, + children: asset.children + }); + }) + ); + return assetScripts2; + }, + structuralSharing: true + }); + const { scripts } = useRouterState({ + select: (state) => ({ + scripts: state.matches.map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({ + tag: "script", + attrs: { + ...script, + suppressHydrationWarning: true, + nonce + }, + children + })) + }), + structuralSharing: true + }); + let serverBufferedScript = void 0; + if (router.serverSsr) { + serverBufferedScript = router.serverSsr.takeBufferedScripts(); + } + const allScripts = [...scripts, ...assetScripts]; + if (serverBufferedScript) { + allScripts.unshift(serverBufferedScript); + } + return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: allScripts.map((asset, i) => /* @__PURE__ */ reactExports.createElement(Asset, { ...asset, key: `tsr-scripts-${asset.tag}-${i}` })) }); +}; +export { + HeadContent as H, + RouterProvider as R, + Scripts as S, + createRootRoute as a, + createFileRoute as b, + createRouter as c, + lazyRouteComponent as l, + renderRouterToStream as r, + useNavigate as u +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@tanstack/react-store.mjs b/apps/admin/.output/server/_chunks/_libs/@tanstack/react-store.mjs new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@tanstack/react-store.mjs @@ -0,0 +1 @@ + diff --git a/apps/admin/.output/server/_chunks/_libs/@tanstack/router-core.mjs b/apps/admin/.output/server/_chunks/_libs/@tanstack/router-core.mjs new file mode 100644 index 00000000..2930f7ce --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@tanstack/router-core.mjs @@ -0,0 +1,4773 @@ +import { s as splitSetCookieString } from "../../../_libs/cookie-es.mjs"; +import { p as parseHref } from "./history.mjs"; +import { i as invariant } from "../../../_libs/tiny-invariant.mjs"; +import { n as ni, t as te, c as cn, m as mn } from "../../../_libs/seroval.mjs"; +import { p } from "../../../_libs/seroval-plugins.mjs"; +import { ReadableStream as ReadableStream$1 } from "node:stream/web"; +import { Readable } from "node:stream"; +function toHeadersInstance(init) { + if (init instanceof Headers) { + return init; + } else if (Array.isArray(init)) { + return new Headers(init); + } else if (typeof init === "object") { + return new Headers(init); + } else { + return null; + } +} +function mergeHeaders(...headers) { + return headers.reduce((acc, header) => { + const headersInstance = toHeadersInstance(header); + if (!headersInstance) return acc; + for (const [key, value] of headersInstance.entries()) { + if (key === "set-cookie") { + const splitCookies = splitSetCookieString(value); + splitCookies.forEach((cookie) => acc.append("set-cookie", cookie)); + } else { + acc.set(key, value); + } + } + return acc; + }, new Headers()); +} +const isServer = true; +function batch(fn) { + { + return fn(); + } +} +function isNotFound(obj) { + return !!obj?.isNotFound; +} +function last(arr) { + return arr[arr.length - 1]; +} +function isFunction(d) { + return typeof d === "function"; +} +function functionalUpdate(updater, previous) { + if (isFunction(updater)) { + return updater(previous); + } + return updater; +} +function replaceEqualDeep(prev, _next, _depth = 0) { + { + return _next; + } +} +function isPlainObject(o) { + if (!hasObjectPrototype(o)) { + return false; + } + const ctor = o.constructor; + if (typeof ctor === "undefined") { + return true; + } + const prot = ctor.prototype; + if (!hasObjectPrototype(prot)) { + return false; + } + if (!prot.hasOwnProperty("isPrototypeOf")) { + return false; + } + return true; +} +function hasObjectPrototype(o) { + return Object.prototype.toString.call(o) === "[object Object]"; +} +function deepEqual(a, b, opts) { + if (a === b) { + return true; + } + if (typeof a !== typeof b) { + return false; + } + if (Array.isArray(a) && Array.isArray(b)) { + if (a.length !== b.length) return false; + for (let i = 0, l = a.length; i < l; i++) { + if (!deepEqual(a[i], b[i], opts)) return false; + } + return true; + } + if (isPlainObject(a) && isPlainObject(b)) { + const ignoreUndefined = opts?.ignoreUndefined ?? true; + if (opts?.partial) { + for (const k in b) { + if (!ignoreUndefined || b[k] !== void 0) { + if (!deepEqual(a[k], b[k], opts)) return false; + } + } + return true; + } + let aCount = 0; + if (!ignoreUndefined) { + aCount = Object.keys(a).length; + } else { + for (const k in a) { + if (a[k] !== void 0) aCount++; + } + } + let bCount = 0; + for (const k in b) { + if (!ignoreUndefined || b[k] !== void 0) { + bCount++; + if (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false; + } + } + return aCount === bCount; + } + return false; +} +function createControlledPromise(onResolve) { + let resolveLoadPromise; + let rejectLoadPromise; + const controlledPromise = new Promise((resolve, reject) => { + resolveLoadPromise = resolve; + rejectLoadPromise = reject; + }); + controlledPromise.status = "pending"; + controlledPromise.resolve = (value) => { + controlledPromise.status = "resolved"; + controlledPromise.value = value; + resolveLoadPromise(value); + onResolve?.(value); + }; + controlledPromise.reject = (e) => { + controlledPromise.status = "rejected"; + rejectLoadPromise(e); + }; + return controlledPromise; +} +function isModuleNotFoundError(error) { + if (typeof error?.message !== "string") return false; + return error.message.startsWith("Failed to fetch dynamically imported module") || error.message.startsWith("error loading dynamically imported module") || error.message.startsWith("Importing a module script failed"); +} +function isPromise(value) { + return Boolean( + value && typeof value === "object" && typeof value.then === "function" + ); +} +function sanitizePathSegment(segment) { + return segment.replace(/[\x00-\x1f\x7f]/g, ""); +} +function decodeSegment(segment) { + let decoded; + try { + decoded = decodeURI(segment); + } catch { + decoded = segment.replaceAll(/%[0-9A-F]{2}/gi, (match) => { + try { + return decodeURI(match); + } catch { + return match; + } + }); + } + return sanitizePathSegment(decoded); +} +const SAFE_URL_PROTOCOLS = ["http:", "https:", "mailto:", "tel:"]; +function isDangerousProtocol(url) { + if (!url) return false; + try { + const parsed = new URL(url); + return !SAFE_URL_PROTOCOLS.includes(parsed.protocol); + } catch { + return false; + } +} +const HTML_ESCAPE_LOOKUP = { + "&": "\\u0026", + ">": "\\u003e", + "<": "\\u003c", + "\u2028": "\\u2028", + "\u2029": "\\u2029" +}; +const HTML_ESCAPE_REGEX = /[&><\u2028\u2029]/g; +function escapeHtml(str) { + return str.replace(HTML_ESCAPE_REGEX, (match) => HTML_ESCAPE_LOOKUP[match]); +} +function decodePath(path, decodeIgnore) { + if (!path) return path; + if (!/[%\\\x00-\x1f\x7f]/.test(path) && !path.startsWith("//")) { + return path; + } + const re = /%25|%5C/gi; + let cursor = 0; + let result = ""; + let match; + while (null !== (match = re.exec(path))) { + result += decodeSegment(path.slice(cursor, match.index)) + match[0]; + cursor = re.lastIndex; + } + result = result + decodeSegment(cursor ? path.slice(cursor) : path); + if (result.startsWith("//")) { + result = "/" + result.replace(/^\/+/, ""); + } + return result; +} +function encodePathLikeUrl(path) { + if (!/\s|[^\u0000-\u007F]/.test(path)) return path; + return path.replace(/\s|[^\u0000-\u007F]/gu, encodeURIComponent); +} +function createLRUCache(max) { + const cache = /* @__PURE__ */ new Map(); + let oldest; + let newest; + const touch = (entry) => { + if (!entry.next) return; + if (!entry.prev) { + entry.next.prev = void 0; + oldest = entry.next; + entry.next = void 0; + if (newest) { + entry.prev = newest; + newest.next = entry; + } + } else { + entry.prev.next = entry.next; + entry.next.prev = entry.prev; + entry.next = void 0; + if (newest) { + newest.next = entry; + entry.prev = newest; + } + } + newest = entry; + }; + return { + get(key) { + const entry = cache.get(key); + if (!entry) return void 0; + touch(entry); + return entry.value; + }, + set(key, value) { + if (cache.size >= max && oldest) { + const toDelete = oldest; + cache.delete(toDelete.key); + if (toDelete.next) { + oldest = toDelete.next; + toDelete.next.prev = void 0; + } + if (toDelete === newest) { + newest = void 0; + } + } + const existing = cache.get(key); + if (existing) { + existing.value = value; + touch(existing); + } else { + const entry = { key, value, prev: newest }; + if (newest) newest.next = entry; + newest = entry; + if (!oldest) oldest = entry; + cache.set(key, entry); + } + }, + clear() { + cache.clear(); + oldest = void 0; + newest = void 0; + } + }; +} +const SEGMENT_TYPE_PATHNAME = 0; +const SEGMENT_TYPE_PARAM = 1; +const SEGMENT_TYPE_WILDCARD = 2; +const SEGMENT_TYPE_OPTIONAL_PARAM = 3; +const SEGMENT_TYPE_INDEX = 4; +const SEGMENT_TYPE_PATHLESS = 5; +function getOpenAndCloseBraces(part) { + const openBrace = part.indexOf("{"); + if (openBrace === -1) return null; + const closeBrace = part.indexOf("}", openBrace); + if (closeBrace === -1) return null; + const afterOpen = openBrace + 1; + if (afterOpen >= part.length) return null; + return [openBrace, closeBrace]; +} +function parseSegment(path, start, output = new Uint16Array(6)) { + const next = path.indexOf("/", start); + const end = next === -1 ? path.length : next; + const part = path.substring(start, end); + if (!part || !part.includes("$")) { + output[0] = SEGMENT_TYPE_PATHNAME; + output[1] = start; + output[2] = start; + output[3] = end; + output[4] = end; + output[5] = end; + return output; + } + if (part === "$") { + const total = path.length; + output[0] = SEGMENT_TYPE_WILDCARD; + output[1] = start; + output[2] = start; + output[3] = total; + output[4] = total; + output[5] = total; + return output; + } + if (part.charCodeAt(0) === 36) { + output[0] = SEGMENT_TYPE_PARAM; + output[1] = start; + output[2] = start + 1; + output[3] = end; + output[4] = end; + output[5] = end; + return output; + } + const braces = getOpenAndCloseBraces(part); + if (braces) { + const [openBrace, closeBrace] = braces; + const firstChar = part.charCodeAt(openBrace + 1); + if (firstChar === 45) { + if (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) { + const paramStart = openBrace + 3; + const paramEnd = closeBrace; + if (paramStart < paramEnd) { + output[0] = SEGMENT_TYPE_OPTIONAL_PARAM; + output[1] = start + openBrace; + output[2] = start + paramStart; + output[3] = start + paramEnd; + output[4] = start + closeBrace + 1; + output[5] = end; + return output; + } + } + } else if (firstChar === 36) { + const dollarPos = openBrace + 1; + const afterDollar = openBrace + 2; + if (afterDollar === closeBrace) { + output[0] = SEGMENT_TYPE_WILDCARD; + output[1] = start + openBrace; + output[2] = start + dollarPos; + output[3] = start + afterDollar; + output[4] = start + closeBrace + 1; + output[5] = path.length; + return output; + } + output[0] = SEGMENT_TYPE_PARAM; + output[1] = start + openBrace; + output[2] = start + afterDollar; + output[3] = start + closeBrace; + output[4] = start + closeBrace + 1; + output[5] = end; + return output; + } + } + output[0] = SEGMENT_TYPE_PATHNAME; + output[1] = start; + output[2] = start; + output[3] = end; + output[4] = end; + output[5] = end; + return output; +} +function parseSegments(defaultCaseSensitive, data, route, start, node, depth, onRoute) { + onRoute?.(route); + let cursor = start; + { + const path = route.fullPath ?? route.from; + const length = path.length; + const caseSensitive = route.options?.caseSensitive ?? defaultCaseSensitive; + const skipOnParamError = !!(route.options?.params?.parse && route.options?.skipRouteOnParseError?.params); + while (cursor < length) { + const segment = parseSegment(path, cursor, data); + let nextNode; + const start2 = cursor; + const end = segment[5]; + cursor = end + 1; + depth++; + const kind = segment[0]; + switch (kind) { + case SEGMENT_TYPE_PATHNAME: { + const value = path.substring(segment[2], segment[3]); + if (caseSensitive) { + const existingNode = node.static?.get(value); + if (existingNode) { + nextNode = existingNode; + } else { + node.static ??= /* @__PURE__ */ new Map(); + const next = createStaticNode( + route.fullPath ?? route.from + ); + next.parent = node; + next.depth = depth; + nextNode = next; + node.static.set(value, next); + } + } else { + const name = value.toLowerCase(); + const existingNode = node.staticInsensitive?.get(name); + if (existingNode) { + nextNode = existingNode; + } else { + node.staticInsensitive ??= /* @__PURE__ */ new Map(); + const next = createStaticNode( + route.fullPath ?? route.from + ); + next.parent = node; + next.depth = depth; + nextNode = next; + node.staticInsensitive.set(name, next); + } + } + break; + } + case SEGMENT_TYPE_PARAM: { + const prefix_raw = path.substring(start2, segment[1]); + const suffix_raw = path.substring(segment[4], end); + const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw); + const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase(); + const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase(); + const existingNode = !skipOnParamError && node.dynamic?.find( + (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix + ); + if (existingNode) { + nextNode = existingNode; + } else { + const next = createDynamicNode( + SEGMENT_TYPE_PARAM, + route.fullPath ?? route.from, + actuallyCaseSensitive, + prefix, + suffix + ); + nextNode = next; + next.depth = depth; + next.parent = node; + node.dynamic ??= []; + node.dynamic.push(next); + } + break; + } + case SEGMENT_TYPE_OPTIONAL_PARAM: { + const prefix_raw = path.substring(start2, segment[1]); + const suffix_raw = path.substring(segment[4], end); + const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw); + const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase(); + const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase(); + const existingNode = !skipOnParamError && node.optional?.find( + (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix + ); + if (existingNode) { + nextNode = existingNode; + } else { + const next = createDynamicNode( + SEGMENT_TYPE_OPTIONAL_PARAM, + route.fullPath ?? route.from, + actuallyCaseSensitive, + prefix, + suffix + ); + nextNode = next; + next.parent = node; + next.depth = depth; + node.optional ??= []; + node.optional.push(next); + } + break; + } + case SEGMENT_TYPE_WILDCARD: { + const prefix_raw = path.substring(start2, segment[1]); + const suffix_raw = path.substring(segment[4], end); + const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw); + const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase(); + const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase(); + const next = createDynamicNode( + SEGMENT_TYPE_WILDCARD, + route.fullPath ?? route.from, + actuallyCaseSensitive, + prefix, + suffix + ); + nextNode = next; + next.parent = node; + next.depth = depth; + node.wildcard ??= []; + node.wildcard.push(next); + } + } + node = nextNode; + } + if (skipOnParamError && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf("/") + 1) === 95) { + const pathlessNode = createStaticNode( + route.fullPath ?? route.from + ); + pathlessNode.kind = SEGMENT_TYPE_PATHLESS; + pathlessNode.parent = node; + depth++; + pathlessNode.depth = depth; + node.pathless ??= []; + node.pathless.push(pathlessNode); + node = pathlessNode; + } + const isLeaf = (route.path || !route.children) && !route.isRoot; + if (isLeaf && path.endsWith("/")) { + const indexNode = createStaticNode( + route.fullPath ?? route.from + ); + indexNode.kind = SEGMENT_TYPE_INDEX; + indexNode.parent = node; + depth++; + indexNode.depth = depth; + node.index = indexNode; + node = indexNode; + } + node.parse = route.options?.params?.parse ?? null; + node.skipOnParamError = skipOnParamError; + node.parsingPriority = route.options?.skipRouteOnParseError?.priority ?? 0; + if (isLeaf && !node.route) { + node.route = route; + node.fullPath = route.fullPath ?? route.from; + } + } + if (route.children) + for (const child of route.children) { + parseSegments( + defaultCaseSensitive, + data, + child, + cursor, + node, + depth, + onRoute + ); + } +} +function sortDynamic(a, b) { + if (a.skipOnParamError && !b.skipOnParamError) return -1; + if (!a.skipOnParamError && b.skipOnParamError) return 1; + if (a.skipOnParamError && b.skipOnParamError && (a.parsingPriority || b.parsingPriority)) + return b.parsingPriority - a.parsingPriority; + if (a.prefix && b.prefix && a.prefix !== b.prefix) { + if (a.prefix.startsWith(b.prefix)) return -1; + if (b.prefix.startsWith(a.prefix)) return 1; + } + if (a.suffix && b.suffix && a.suffix !== b.suffix) { + if (a.suffix.endsWith(b.suffix)) return -1; + if (b.suffix.endsWith(a.suffix)) return 1; + } + if (a.prefix && !b.prefix) return -1; + if (!a.prefix && b.prefix) return 1; + if (a.suffix && !b.suffix) return -1; + if (!a.suffix && b.suffix) return 1; + if (a.caseSensitive && !b.caseSensitive) return -1; + if (!a.caseSensitive && b.caseSensitive) return 1; + return 0; +} +function sortTreeNodes(node) { + if (node.pathless) { + for (const child of node.pathless) { + sortTreeNodes(child); + } + } + if (node.static) { + for (const child of node.static.values()) { + sortTreeNodes(child); + } + } + if (node.staticInsensitive) { + for (const child of node.staticInsensitive.values()) { + sortTreeNodes(child); + } + } + if (node.dynamic?.length) { + node.dynamic.sort(sortDynamic); + for (const child of node.dynamic) { + sortTreeNodes(child); + } + } + if (node.optional?.length) { + node.optional.sort(sortDynamic); + for (const child of node.optional) { + sortTreeNodes(child); + } + } + if (node.wildcard?.length) { + node.wildcard.sort(sortDynamic); + for (const child of node.wildcard) { + sortTreeNodes(child); + } + } +} +function createStaticNode(fullPath) { + return { + kind: SEGMENT_TYPE_PATHNAME, + depth: 0, + pathless: null, + index: null, + static: null, + staticInsensitive: null, + dynamic: null, + optional: null, + wildcard: null, + route: null, + fullPath, + parent: null, + parse: null, + skipOnParamError: false, + parsingPriority: 0 + }; +} +function createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) { + return { + kind, + depth: 0, + pathless: null, + index: null, + static: null, + staticInsensitive: null, + dynamic: null, + optional: null, + wildcard: null, + route: null, + fullPath, + parent: null, + parse: null, + skipOnParamError: false, + parsingPriority: 0, + caseSensitive, + prefix, + suffix + }; +} +function processRouteMasks(routeList, processedTree) { + const segmentTree = createStaticNode("/"); + const data = new Uint16Array(6); + for (const route of routeList) { + parseSegments(false, data, route, 1, segmentTree, 0); + } + sortTreeNodes(segmentTree); + processedTree.masksTree = segmentTree; + processedTree.flatCache = createLRUCache(1e3); +} +function findFlatMatch(path, processedTree) { + path ||= "/"; + const cached = processedTree.flatCache.get(path); + if (cached) return cached; + const result = findMatch(path, processedTree.masksTree); + processedTree.flatCache.set(path, result); + return result; +} +function findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) { + from ||= "/"; + path ||= "/"; + const key = caseSensitive ? `case\0${from}` : from; + let tree = processedTree.singleCache.get(key); + if (!tree) { + tree = createStaticNode("/"); + const data = new Uint16Array(6); + parseSegments(caseSensitive, data, { from }, 1, tree, 0); + processedTree.singleCache.set(key, tree); + } + return findMatch(path, tree, fuzzy); +} +function findRouteMatch(path, processedTree, fuzzy = false) { + const key = fuzzy ? path : `nofuzz\0${path}`; + const cached = processedTree.matchCache.get(key); + if (cached !== void 0) return cached; + path ||= "/"; + let result; + try { + result = findMatch( + path, + processedTree.segmentTree, + fuzzy + ); + } catch (err) { + if (err instanceof URIError) { + result = null; + } else { + throw err; + } + } + if (result) result.branch = buildRouteBranch(result.route); + processedTree.matchCache.set(key, result); + return result; +} +function trimPathRight$1(path) { + return path === "/" ? path : path.replace(/\/{1,}$/, ""); +} +function processRouteTree(routeTree, caseSensitive = false, initRoute) { + const segmentTree = createStaticNode(routeTree.fullPath); + const data = new Uint16Array(6); + const routesById = {}; + const routesByPath = {}; + let index = 0; + parseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, (route) => { + initRoute?.(route, index); + invariant( + !(route.id in routesById), + `Duplicate routes found with id: ${String(route.id)}` + ); + routesById[route.id] = route; + if (index !== 0 && route.path) { + const trimmedFullPath = trimPathRight$1(route.fullPath); + if (!routesByPath[trimmedFullPath] || route.fullPath.endsWith("/")) { + routesByPath[trimmedFullPath] = route; + } + } + index++; + }); + sortTreeNodes(segmentTree); + const processedTree = { + segmentTree, + singleCache: createLRUCache(1e3), + matchCache: createLRUCache(1e3), + flatCache: null, + masksTree: null + }; + return { + processedTree, + routesById, + routesByPath + }; +} +function findMatch(path, segmentTree, fuzzy = false) { + const parts = path.split("/"); + const leaf = getNodeMatch(path, parts, segmentTree, fuzzy); + if (!leaf) return null; + const [rawParams] = extractParams(path, parts, leaf); + return { + route: leaf.node.route, + rawParams, + parsedParams: leaf.parsedParams + }; +} +function extractParams(path, parts, leaf) { + const list = buildBranch(leaf.node); + let nodeParts = null; + const rawParams = {}; + let partIndex = leaf.extract?.part ?? 0; + let nodeIndex = leaf.extract?.node ?? 0; + let pathIndex = leaf.extract?.path ?? 0; + let segmentCount = leaf.extract?.segment ?? 0; + for (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) { + const node = list[nodeIndex]; + if (node.kind === SEGMENT_TYPE_INDEX) break; + if (node.kind === SEGMENT_TYPE_PATHLESS) { + segmentCount--; + partIndex--; + pathIndex--; + continue; + } + const part = parts[partIndex]; + const currentPathIndex = pathIndex; + if (part) pathIndex += part.length; + if (node.kind === SEGMENT_TYPE_PARAM) { + nodeParts ??= leaf.node.fullPath.split("/"); + const nodePart = nodeParts[segmentCount]; + const preLength = node.prefix?.length ?? 0; + const isCurlyBraced = nodePart.charCodeAt(preLength) === 123; + if (isCurlyBraced) { + const sufLength = node.suffix?.length ?? 0; + const name = nodePart.substring( + preLength + 2, + nodePart.length - sufLength - 1 + ); + const value = part.substring(preLength, part.length - sufLength); + rawParams[name] = decodeURIComponent(value); + } else { + const name = nodePart.substring(1); + rawParams[name] = decodeURIComponent(part); + } + } else if (node.kind === SEGMENT_TYPE_OPTIONAL_PARAM) { + if (leaf.skipped & 1 << nodeIndex) { + partIndex--; + pathIndex = currentPathIndex - 1; + continue; + } + nodeParts ??= leaf.node.fullPath.split("/"); + const nodePart = nodeParts[segmentCount]; + const preLength = node.prefix?.length ?? 0; + const sufLength = node.suffix?.length ?? 0; + const name = nodePart.substring( + preLength + 3, + nodePart.length - sufLength - 1 + ); + const value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part; + if (value) rawParams[name] = decodeURIComponent(value); + } else if (node.kind === SEGMENT_TYPE_WILDCARD) { + const n = node; + const value = path.substring( + currentPathIndex + (n.prefix?.length ?? 0), + path.length - (n.suffix?.length ?? 0) + ); + const splat = decodeURIComponent(value); + rawParams["*"] = splat; + rawParams._splat = splat; + break; + } + } + if (leaf.rawParams) Object.assign(rawParams, leaf.rawParams); + return [ + rawParams, + { + part: partIndex, + node: nodeIndex, + path: pathIndex, + segment: segmentCount + } + ]; +} +function buildRouteBranch(route) { + const list = [route]; + while (route.parentRoute) { + route = route.parentRoute; + list.push(route); + } + list.reverse(); + return list; +} +function buildBranch(node) { + const list = Array(node.depth + 1); + do { + list[node.depth] = node; + node = node.parent; + } while (node); + return list; +} +function getNodeMatch(path, parts, segmentTree, fuzzy) { + if (path === "/" && segmentTree.index) + return { node: segmentTree.index, skipped: 0 }; + const trailingSlash = !last(parts); + const pathIsIndex = trailingSlash && path !== "/"; + const partsLength = parts.length - (trailingSlash ? 1 : 0); + const stack = [ + { + node: segmentTree, + index: 1, + skipped: 0, + depth: 1, + statics: 1, + dynamics: 0, + optionals: 0 + } + ]; + let wildcardMatch = null; + let bestFuzzy = null; + let bestMatch = null; + while (stack.length) { + const frame = stack.pop(); + const { node, index, skipped, depth, statics, dynamics, optionals } = frame; + let { extract, rawParams, parsedParams } = frame; + if (node.skipOnParamError) { + const result = validateMatchParams(path, parts, frame); + if (!result) continue; + rawParams = frame.rawParams; + extract = frame.extract; + parsedParams = frame.parsedParams; + } + if (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) { + bestFuzzy = frame; + } + const isBeyondPath = index === partsLength; + if (isBeyondPath) { + if (node.route && !pathIsIndex && isFrameMoreSpecific(bestMatch, frame)) { + bestMatch = frame; + } + if (!node.optional && !node.wildcard && !node.index && !node.pathless) + continue; + } + const part = isBeyondPath ? void 0 : parts[index]; + let lowerPart; + if (isBeyondPath && node.index) { + const indexFrame = { + node: node.index, + index, + skipped, + depth: depth + 1, + statics, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }; + let indexValid = true; + if (node.index.skipOnParamError) { + const result = validateMatchParams(path, parts, indexFrame); + if (!result) indexValid = false; + } + if (indexValid) { + if (statics === partsLength && !dynamics && !optionals && !skipped) { + return indexFrame; + } + if (isFrameMoreSpecific(bestMatch, indexFrame)) { + bestMatch = indexFrame; + } + } + } + if (node.wildcard && isFrameMoreSpecific(wildcardMatch, frame)) { + for (const segment of node.wildcard) { + const { prefix, suffix } = segment; + if (prefix) { + if (isBeyondPath) continue; + const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase(); + if (!casePart.startsWith(prefix)) continue; + } + if (suffix) { + if (isBeyondPath) continue; + const end = parts.slice(index).join("/").slice(-suffix.length); + const casePart = segment.caseSensitive ? end : end.toLowerCase(); + if (casePart !== suffix) continue; + } + const frame2 = { + node: segment, + index: partsLength, + skipped, + depth, + statics, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }; + if (segment.skipOnParamError) { + const result = validateMatchParams(path, parts, frame2); + if (!result) continue; + } + wildcardMatch = frame2; + break; + } + } + if (node.optional) { + const nextSkipped = skipped | 1 << depth; + const nextDepth = depth + 1; + for (let i = node.optional.length - 1; i >= 0; i--) { + const segment = node.optional[i]; + stack.push({ + node: segment, + index, + skipped: nextSkipped, + depth: nextDepth, + statics, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }); + } + if (!isBeyondPath) { + for (let i = node.optional.length - 1; i >= 0; i--) { + const segment = node.optional[i]; + const { prefix, suffix } = segment; + if (prefix || suffix) { + const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase(); + if (prefix && !casePart.startsWith(prefix)) continue; + if (suffix && !casePart.endsWith(suffix)) continue; + } + stack.push({ + node: segment, + index: index + 1, + skipped, + depth: nextDepth, + statics, + dynamics, + optionals: optionals + 1, + extract, + rawParams, + parsedParams + }); + } + } + } + if (!isBeyondPath && node.dynamic && part) { + for (let i = node.dynamic.length - 1; i >= 0; i--) { + const segment = node.dynamic[i]; + const { prefix, suffix } = segment; + if (prefix || suffix) { + const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase(); + if (prefix && !casePart.startsWith(prefix)) continue; + if (suffix && !casePart.endsWith(suffix)) continue; + } + stack.push({ + node: segment, + index: index + 1, + skipped, + depth: depth + 1, + statics, + dynamics: dynamics + 1, + optionals, + extract, + rawParams, + parsedParams + }); + } + } + if (!isBeyondPath && node.staticInsensitive) { + const match = node.staticInsensitive.get( + lowerPart ??= part.toLowerCase() + ); + if (match) { + stack.push({ + node: match, + index: index + 1, + skipped, + depth: depth + 1, + statics: statics + 1, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }); + } + } + if (!isBeyondPath && node.static) { + const match = node.static.get(part); + if (match) { + stack.push({ + node: match, + index: index + 1, + skipped, + depth: depth + 1, + statics: statics + 1, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }); + } + } + if (node.pathless) { + const nextDepth = depth + 1; + for (let i = node.pathless.length - 1; i >= 0; i--) { + const segment = node.pathless[i]; + stack.push({ + node: segment, + index, + skipped, + depth: nextDepth, + statics, + dynamics, + optionals, + extract, + rawParams, + parsedParams + }); + } + } + } + if (bestMatch && wildcardMatch) { + return isFrameMoreSpecific(wildcardMatch, bestMatch) ? bestMatch : wildcardMatch; + } + if (bestMatch) return bestMatch; + if (wildcardMatch) return wildcardMatch; + if (fuzzy && bestFuzzy) { + let sliceIndex = bestFuzzy.index; + for (let i = 0; i < bestFuzzy.index; i++) { + sliceIndex += parts[i].length; + } + const splat = sliceIndex === path.length ? "/" : path.slice(sliceIndex); + bestFuzzy.rawParams ??= {}; + bestFuzzy.rawParams["**"] = decodeURIComponent(splat); + return bestFuzzy; + } + return null; +} +function validateMatchParams(path, parts, frame) { + try { + const [rawParams, state] = extractParams(path, parts, frame); + frame.rawParams = rawParams; + frame.extract = state; + const parsed = frame.node.parse(rawParams); + frame.parsedParams = Object.assign({}, frame.parsedParams, parsed); + return true; + } catch { + return null; + } +} +function isFrameMoreSpecific(prev, next) { + if (!prev) return true; + return next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.depth > prev.depth))); +} +function joinPaths(paths) { + return cleanPath( + paths.filter((val) => { + return val !== void 0; + }).join("/") + ); +} +function cleanPath(path) { + return path.replace(/\/{2,}/g, "/"); +} +function trimPathLeft(path) { + return path === "/" ? path : path.replace(/^\/{1,}/, ""); +} +function trimPathRight(path) { + const len = path.length; + return len > 1 && path[len - 1] === "/" ? path.replace(/\/{1,}$/, "") : path; +} +function trimPath(path) { + return trimPathRight(trimPathLeft(path)); +} +function removeTrailingSlash(value, basepath) { + if (value?.endsWith("/") && value !== "/" && value !== `${basepath}/`) { + return value.slice(0, -1); + } + return value; +} +function exactPathTest(pathName1, pathName2, basepath) { + return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath); +} +function resolvePath({ + base, + to, + trailingSlash = "never", + cache +}) { + const isAbsolute = to.startsWith("/"); + const isBase = !isAbsolute && to === "."; + let key; + if (cache) { + key = isAbsolute ? to : isBase ? base : base + "\0" + to; + const cached = cache.get(key); + if (cached) return cached; + } + let baseSegments; + if (isBase) { + baseSegments = base.split("/"); + } else if (isAbsolute) { + baseSegments = to.split("/"); + } else { + baseSegments = base.split("/"); + while (baseSegments.length > 1 && last(baseSegments) === "") { + baseSegments.pop(); + } + const toSegments = to.split("/"); + for (let index = 0, length = toSegments.length; index < length; index++) { + const value = toSegments[index]; + if (value === "") { + if (!index) { + baseSegments = [value]; + } else if (index === length - 1) { + baseSegments.push(value); + } else ; + } else if (value === "..") { + baseSegments.pop(); + } else if (value === ".") ; + else { + baseSegments.push(value); + } + } + } + if (baseSegments.length > 1) { + if (last(baseSegments) === "") { + if (trailingSlash === "never") { + baseSegments.pop(); + } + } else if (trailingSlash === "always") { + baseSegments.push(""); + } + } + let segment; + let joined = ""; + for (let i = 0; i < baseSegments.length; i++) { + if (i > 0) joined += "/"; + const part = baseSegments[i]; + if (!part) continue; + segment = parseSegment(part, 0, segment); + const kind = segment[0]; + if (kind === SEGMENT_TYPE_PATHNAME) { + joined += part; + continue; + } + const end = segment[5]; + const prefix = part.substring(0, segment[1]); + const suffix = part.substring(segment[4], end); + const value = part.substring(segment[2], segment[3]); + if (kind === SEGMENT_TYPE_PARAM) { + joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`; + } else if (kind === SEGMENT_TYPE_WILDCARD) { + joined += prefix || suffix ? `${prefix}{$}${suffix}` : "$"; + } else { + joined += `${prefix}{-$${value}}${suffix}`; + } + } + joined = cleanPath(joined); + const result = joined || "/"; + if (key && cache) cache.set(key, result); + return result; +} +function compileDecodeCharMap(pathParamsAllowedCharacters) { + const charMap = new Map( + pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char]) + ); + const pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"); + const regex = new RegExp(pattern, "g"); + return (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match); +} +function encodeParam(key, params, decoder) { + const value = params[key]; + if (typeof value !== "string") return value; + if (key === "_splat") { + if (/^[a-zA-Z0-9\-._~!/]*$/.test(value)) return value; + return value.split("/").map((segment) => encodePathParam(segment, decoder)).join("/"); + } else { + return encodePathParam(value, decoder); + } +} +function interpolatePath({ + path, + params, + decoder, + server +}) { + let isMissingParams = false; + const usedParams = {}; + if (!path || path === "/") + return { interpolatedPath: "/", usedParams, isMissingParams }; + if (!path.includes("$")) + return { interpolatedPath: path, usedParams, isMissingParams }; + { + if (path.indexOf("{") === -1) { + const length2 = path.length; + let cursor2 = 0; + let joined2 = ""; + while (cursor2 < length2) { + while (cursor2 < length2 && path.charCodeAt(cursor2) === 47) cursor2++; + if (cursor2 >= length2) break; + const start = cursor2; + let end = path.indexOf("/", cursor2); + if (end === -1) end = length2; + cursor2 = end; + const part = path.substring(start, end); + if (!part) continue; + if (part.charCodeAt(0) === 36) { + if (part.length === 1) { + const splat = params._splat; + usedParams._splat = splat; + usedParams["*"] = splat; + if (!splat) { + isMissingParams = true; + continue; + } + const value = encodeParam("_splat", params, decoder); + joined2 += "/" + value; + } else { + const key = part.substring(1); + if (!isMissingParams && !(key in params)) { + isMissingParams = true; + } + usedParams[key] = params[key]; + const value = encodeParam(key, params, decoder) ?? "undefined"; + joined2 += "/" + value; + } + } else { + joined2 += "/" + part; + } + } + if (path.endsWith("/")) joined2 += "/"; + const interpolatedPath2 = joined2 || "/"; + return { usedParams, interpolatedPath: interpolatedPath2, isMissingParams }; + } + } + const length = path.length; + let cursor = 0; + let segment; + let joined = ""; + while (cursor < length) { + const start = cursor; + segment = parseSegment(path, start, segment); + const end = segment[5]; + cursor = end + 1; + if (start === end) continue; + const kind = segment[0]; + if (kind === SEGMENT_TYPE_PATHNAME) { + joined += "/" + path.substring(start, end); + continue; + } + if (kind === SEGMENT_TYPE_WILDCARD) { + const splat = params._splat; + usedParams._splat = splat; + usedParams["*"] = splat; + const prefix = path.substring(start, segment[1]); + const suffix = path.substring(segment[4], end); + if (!splat) { + isMissingParams = true; + if (prefix || suffix) { + joined += "/" + prefix + suffix; + } + continue; + } + const value = encodeParam("_splat", params, decoder); + joined += "/" + prefix + value + suffix; + continue; + } + if (kind === SEGMENT_TYPE_PARAM) { + const key = path.substring(segment[2], segment[3]); + if (!isMissingParams && !(key in params)) { + isMissingParams = true; + } + usedParams[key] = params[key]; + const prefix = path.substring(start, segment[1]); + const suffix = path.substring(segment[4], end); + const value = encodeParam(key, params, decoder) ?? "undefined"; + joined += "/" + prefix + value + suffix; + continue; + } + if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) { + const key = path.substring(segment[2], segment[3]); + const valueRaw = params[key]; + if (valueRaw == null) continue; + usedParams[key] = valueRaw; + const prefix = path.substring(start, segment[1]); + const suffix = path.substring(segment[4], end); + const value = encodeParam(key, params, decoder) ?? ""; + joined += "/" + prefix + value + suffix; + continue; + } + } + if (path.endsWith("/")) joined += "/"; + const interpolatedPath = joined || "/"; + return { usedParams, interpolatedPath, isMissingParams }; +} +function encodePathParam(value, decoder) { + const encoded = encodeURIComponent(value); + return decoder?.(encoded) ?? encoded; +} +function getSafeSessionStorage() { + try { + if (typeof window !== "undefined" && typeof window.sessionStorage === "object") { + return window.sessionStorage; + } + } catch { + } + return void 0; +} +const storageKey = "tsr-scroll-restoration-v1_3"; +function createScrollRestorationCache() { + const safeSessionStorage = getSafeSessionStorage(); + if (!safeSessionStorage) { + return null; + } + const persistedState = safeSessionStorage.getItem(storageKey); + let state = persistedState ? JSON.parse(persistedState) : {}; + return { + state, + // This setter is simply to make sure that we set the sessionStorage right + // after the state is updated. It doesn't necessarily need to be a functional + // update. + set: (updater) => { + state = functionalUpdate(updater, state) || state; + try { + safeSessionStorage.setItem(storageKey, JSON.stringify(state)); + } catch { + console.warn( + "[ts-router] Could not persist scroll restoration state to sessionStorage." + ); + } + } + }; +} +createScrollRestorationCache(); +const defaultGetScrollRestorationKey = (location) => { + return location.state.__TSR_key || location.href; +}; +function restoreScroll({ + storageKey: storageKey2, + key, + behavior, + shouldScrollRestoration, + scrollToTopSelectors, + location +}) { + let byKey; + try { + byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); + } catch (error) { + console.error(error); + return; + } + const resolvedKey = key || window.history.state?.__TSR_key; + const elementEntries = byKey[resolvedKey]; + scroll: { + if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) { + for (const elementSelector in elementEntries) { + const entry = elementEntries[elementSelector]; + if (elementSelector === "window") { + window.scrollTo({ + top: entry.scrollY, + left: entry.scrollX, + behavior + }); + } else if (elementSelector) { + const element = document.querySelector(elementSelector); + if (element) { + element.scrollLeft = entry.scrollX; + element.scrollTop = entry.scrollY; + } + } + } + break scroll; + } + const hash = (location ?? window.location).hash.split("#", 2)[1]; + if (hash) { + const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true; + if (hashScrollIntoViewOptions) { + const el = document.getElementById(hash); + if (el) { + el.scrollIntoView(hashScrollIntoViewOptions); + } + } + break scroll; + } + const scrollOptions = { top: 0, left: 0, behavior }; + window.scrollTo(scrollOptions); + if (scrollToTopSelectors) { + for (const selector of scrollToTopSelectors) { + if (selector === "window") continue; + const element = typeof selector === "function" ? selector() : document.querySelector(selector); + if (element) element.scrollTo(scrollOptions); + } + } + } +} +function encode(obj, stringify = String) { + const result = new URLSearchParams(); + for (const key in obj) { + const val = obj[key]; + if (val !== void 0) { + result.set(key, stringify(val)); + } + } + return result.toString(); +} +function toValue(str) { + if (!str) return ""; + if (str === "false") return false; + if (str === "true") return true; + return +str * 0 === 0 && +str + "" === str ? +str : str; +} +function decode(str) { + const searchParams = new URLSearchParams(str); + const result = {}; + for (const [key, value] of searchParams.entries()) { + const previousValue = result[key]; + if (previousValue == null) { + result[key] = toValue(value); + } else if (Array.isArray(previousValue)) { + previousValue.push(toValue(value)); + } else { + result[key] = [previousValue, toValue(value)]; + } + } + return result; +} +const defaultParseSearch = parseSearchWith(JSON.parse); +const defaultStringifySearch = stringifySearchWith( + JSON.stringify, + JSON.parse +); +function parseSearchWith(parser) { + return (searchStr) => { + if (searchStr[0] === "?") { + searchStr = searchStr.substring(1); + } + const query = decode(searchStr); + for (const key in query) { + const value = query[key]; + if (typeof value === "string") { + try { + query[key] = parser(value); + } catch (_err) { + } + } + } + return query; + }; +} +function stringifySearchWith(stringify, parser) { + const hasParser = typeof parser === "function"; + function stringifyValue(val) { + if (typeof val === "object" && val !== null) { + try { + return stringify(val); + } catch (_err) { + } + } else if (hasParser && typeof val === "string") { + try { + parser(val); + return stringify(val); + } catch (_err) { + } + } + return val; + } + return (search) => { + const searchStr = encode(search, stringifyValue); + return searchStr ? `?${searchStr}` : ""; + }; +} +const rootRouteId = "__root__"; +function redirect(opts) { + opts.statusCode = opts.statusCode || opts.code || 307; + if (!opts._builtLocation && typeof opts.href === "string" && isDangerousProtocol(opts.href)) { + throw new Error( + `Redirect blocked: unsafe protocol in href "${opts.href}". Only ${SAFE_URL_PROTOCOLS.join(", ")} protocols are allowed.` + ); + } + if (!opts._builtLocation && !opts.reloadDocument && typeof opts.href === "string") { + try { + new URL(opts.href); + opts.reloadDocument = true; + } catch { + } + } + const headers = new Headers(opts.headers); + if (opts.href && headers.get("Location") === null) { + headers.set("Location", opts.href); + } + const response = new Response(null, { + status: opts.statusCode, + headers + }); + response.options = opts; + if (opts.throw) { + throw response; + } + return response; +} +function isRedirect(obj) { + return obj instanceof Response && !!obj.options; +} +function isResolvedRedirect(obj) { + return isRedirect(obj) && !!obj.options.href; +} +const triggerOnReady = (inner) => { + if (!inner.rendered) { + inner.rendered = true; + return inner.onReady?.(); + } +}; +const resolvePreload = (inner, matchId) => { + return !!(inner.preload && !inner.router.state.matches.some((d) => d.id === matchId)); +}; +const buildMatchContext = (inner, index, includeCurrentMatch = true) => { + const context = { + ...inner.router.options.context ?? {} + }; + const end = includeCurrentMatch ? index : index - 1; + for (let i = 0; i <= end; i++) { + const innerMatch = inner.matches[i]; + if (!innerMatch) continue; + const m = inner.router.getMatch(innerMatch.id); + if (!m) continue; + Object.assign(context, m.__routeContext, m.__beforeLoadContext); + } + return context; +}; +const _handleNotFound = (inner, err) => { + const routeCursor = inner.router.routesById[err.routeId ?? ""] ?? inner.router.routeTree; + if (!routeCursor.options.notFoundComponent && inner.router.options?.defaultNotFoundComponent) { + routeCursor.options.notFoundComponent = inner.router.options.defaultNotFoundComponent; + } + invariant( + routeCursor.options.notFoundComponent + ); + const matchForRoute = inner.matches.find((m) => m.routeId === routeCursor.id); + invariant(matchForRoute, "Could not find match for route: " + routeCursor.id); + inner.updateMatch(matchForRoute.id, (prev) => ({ + ...prev, + status: "notFound", + error: err, + isFetching: false + })); + if (err.routerCode === "BEFORE_LOAD" && routeCursor.parentRoute) { + err.routeId = routeCursor.parentRoute.id; + _handleNotFound(inner, err); + } +}; +const handleRedirectAndNotFound = (inner, match, err) => { + if (!isRedirect(err) && !isNotFound(err)) return; + if (isRedirect(err) && err.redirectHandled && !err.options.reloadDocument) { + throw err; + } + if (match) { + match._nonReactive.beforeLoadPromise?.resolve(); + match._nonReactive.loaderPromise?.resolve(); + match._nonReactive.beforeLoadPromise = void 0; + match._nonReactive.loaderPromise = void 0; + const status = isRedirect(err) ? "redirected" : "notFound"; + match._nonReactive.error = err; + inner.updateMatch(match.id, (prev) => ({ + ...prev, + status, + context: buildMatchContext(inner, match.index), + isFetching: false, + error: err + })); + if (isNotFound(err) && !err.routeId) { + err.routeId = match.routeId; + } + match._nonReactive.loadPromise?.resolve(); + } + if (isRedirect(err)) { + inner.rendered = true; + err.options._fromLocation = inner.location; + err.redirectHandled = true; + err = inner.router.resolveRedirect(err); + throw err; + } else { + _handleNotFound(inner, err); + throw err; + } +}; +const shouldSkipLoader = (inner, matchId) => { + const match = inner.router.getMatch(matchId); + if (match.ssr === false) { + return true; + } + return false; +}; +const handleSerialError = (inner, index, err, routerCode) => { + const { id: matchId, routeId } = inner.matches[index]; + const route = inner.router.looseRoutesById[routeId]; + if (err instanceof Promise) { + throw err; + } + err.routerCode = routerCode; + inner.firstBadMatchIndex ??= index; + handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err); + try { + route.options.onError?.(err); + } catch (errorHandlerErr) { + err = errorHandlerErr; + handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err); + } + inner.updateMatch(matchId, (prev) => { + prev._nonReactive.beforeLoadPromise?.resolve(); + prev._nonReactive.beforeLoadPromise = void 0; + prev._nonReactive.loadPromise?.resolve(); + return { + ...prev, + error: err, + status: "error", + isFetching: false, + updatedAt: Date.now(), + abortController: new AbortController() + }; + }); +}; +const isBeforeLoadSsr = (inner, matchId, index, route) => { + const existingMatch = inner.router.getMatch(matchId); + const parentMatchId = inner.matches[index - 1]?.id; + const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0; + if (inner.router.isShell()) { + existingMatch.ssr = route.id === rootRouteId; + return; + } + if (parentMatch?.ssr === false) { + existingMatch.ssr = false; + return; + } + const parentOverride = (tempSsr2) => { + if (tempSsr2 === true && parentMatch?.ssr === "data-only") { + return "data-only"; + } + return tempSsr2; + }; + const defaultSsr = inner.router.options.defaultSsr ?? true; + if (route.options.ssr === void 0) { + existingMatch.ssr = parentOverride(defaultSsr); + return; + } + if (typeof route.options.ssr !== "function") { + existingMatch.ssr = parentOverride(route.options.ssr); + return; + } + const { search, params } = existingMatch; + const ssrFnContext = { + search: makeMaybe(search, existingMatch.searchError), + params: makeMaybe(params, existingMatch.paramsError), + location: inner.location, + matches: inner.matches.map((match) => ({ + index: match.index, + pathname: match.pathname, + fullPath: match.fullPath, + staticData: match.staticData, + id: match.id, + routeId: match.routeId, + search: makeMaybe(match.search, match.searchError), + params: makeMaybe(match.params, match.paramsError), + ssr: match.ssr + })) + }; + const tempSsr = route.options.ssr(ssrFnContext); + if (isPromise(tempSsr)) { + return tempSsr.then((ssr) => { + existingMatch.ssr = parentOverride(ssr ?? defaultSsr); + }); + } + existingMatch.ssr = parentOverride(tempSsr ?? defaultSsr); + return; +}; +const setupPendingTimeout = (inner, matchId, route, match) => { + if (match._nonReactive.pendingTimeout !== void 0) return; + route.options.pendingMs ?? inner.router.options.defaultPendingMs; + !!(inner.onReady && false); +}; +const preBeforeLoadSetup = (inner, matchId, route) => { + const existingMatch = inner.router.getMatch(matchId); + if (!existingMatch._nonReactive.beforeLoadPromise && !existingMatch._nonReactive.loaderPromise) + return; + setupPendingTimeout(inner, matchId, route, existingMatch); + const then = () => { + const match = inner.router.getMatch(matchId); + if (match.preload && (match.status === "redirected" || match.status === "notFound")) { + handleRedirectAndNotFound(inner, match, match.error); + } + }; + return existingMatch._nonReactive.beforeLoadPromise ? existingMatch._nonReactive.beforeLoadPromise.then(then) : then(); +}; +const executeBeforeLoad = (inner, matchId, index, route) => { + const match = inner.router.getMatch(matchId); + const prevLoadPromise = match._nonReactive.loadPromise; + match._nonReactive.loadPromise = createControlledPromise(() => { + prevLoadPromise?.resolve(); + }); + const { paramsError, searchError } = match; + if (paramsError) { + handleSerialError(inner, index, paramsError, "PARSE_PARAMS"); + } + if (searchError) { + handleSerialError(inner, index, searchError, "VALIDATE_SEARCH"); + } + setupPendingTimeout(inner, matchId, route, match); + const abortController = new AbortController(); + let isPending = false; + const pending = () => { + if (isPending) return; + isPending = true; + inner.updateMatch(matchId, (prev) => ({ + ...prev, + isFetching: "beforeLoad", + fetchCount: prev.fetchCount + 1, + abortController + // Note: We intentionally don't update context here. + // Context should only be updated after beforeLoad resolves to avoid + // components seeing incomplete context during async beforeLoad execution. + })); + }; + const resolve = () => { + match._nonReactive.beforeLoadPromise?.resolve(); + match._nonReactive.beforeLoadPromise = void 0; + inner.updateMatch(matchId, (prev) => ({ + ...prev, + isFetching: false + })); + }; + if (!route.options.beforeLoad) { + batch(() => { + pending(); + resolve(); + }); + return; + } + match._nonReactive.beforeLoadPromise = createControlledPromise(); + const context = { + ...buildMatchContext(inner, index, false), + ...match.__routeContext + }; + const { search, params, cause } = match; + const preload = resolvePreload(inner, matchId); + const beforeLoadFnContext = { + search, + abortController, + params, + preload, + context, + location: inner.location, + navigate: (opts) => inner.router.navigate({ + ...opts, + _fromLocation: inner.location + }), + buildLocation: inner.router.buildLocation, + cause: preload ? "preload" : cause, + matches: inner.matches, + ...inner.router.options.additionalContext + }; + const updateContext = (beforeLoadContext2) => { + if (beforeLoadContext2 === void 0) { + batch(() => { + pending(); + resolve(); + }); + return; + } + if (isRedirect(beforeLoadContext2) || isNotFound(beforeLoadContext2)) { + pending(); + handleSerialError(inner, index, beforeLoadContext2, "BEFORE_LOAD"); + } + batch(() => { + pending(); + inner.updateMatch(matchId, (prev) => ({ + ...prev, + __beforeLoadContext: beforeLoadContext2 + })); + resolve(); + }); + }; + let beforeLoadContext; + try { + beforeLoadContext = route.options.beforeLoad(beforeLoadFnContext); + if (isPromise(beforeLoadContext)) { + pending(); + return beforeLoadContext.catch((err) => { + handleSerialError(inner, index, err, "BEFORE_LOAD"); + }).then(updateContext); + } + } catch (err) { + pending(); + handleSerialError(inner, index, err, "BEFORE_LOAD"); + } + updateContext(beforeLoadContext); + return; +}; +const handleBeforeLoad = (inner, index) => { + const { id: matchId, routeId } = inner.matches[index]; + const route = inner.router.looseRoutesById[routeId]; + const serverSsr = () => { + { + const maybePromise = isBeforeLoadSsr(inner, matchId, index, route); + if (isPromise(maybePromise)) return maybePromise.then(queueExecution); + } + return queueExecution(); + }; + const execute = () => executeBeforeLoad(inner, matchId, index, route); + const queueExecution = () => { + if (shouldSkipLoader(inner, matchId)) return; + const result = preBeforeLoadSetup(inner, matchId, route); + return isPromise(result) ? result.then(execute) : execute(); + }; + return serverSsr(); +}; +const executeHead = (inner, matchId, route) => { + const match = inner.router.getMatch(matchId); + if (!match) { + return; + } + if (!route.options.head && !route.options.scripts && !route.options.headers) { + return; + } + const assetContext = { + ssr: inner.router.options.ssr, + matches: inner.matches, + match, + params: match.params, + loaderData: match.loaderData + }; + return Promise.all([ + route.options.head?.(assetContext), + route.options.scripts?.(assetContext), + route.options.headers?.(assetContext) + ]).then(([headFnContent, scripts, headers]) => { + const meta = headFnContent?.meta; + const links = headFnContent?.links; + const headScripts = headFnContent?.scripts; + const styles = headFnContent?.styles; + return { + meta, + links, + headScripts, + headers, + scripts, + styles + }; + }); +}; +const getLoaderContext = (inner, matchId, index, route) => { + const parentMatchPromise = inner.matchPromises[index - 1]; + const { params, loaderDeps, abortController, cause } = inner.router.getMatch(matchId); + const context = buildMatchContext(inner, index); + const preload = resolvePreload(inner, matchId); + return { + params, + deps: loaderDeps, + preload: !!preload, + parentMatchPromise, + abortController, + context, + location: inner.location, + navigate: (opts) => inner.router.navigate({ + ...opts, + _fromLocation: inner.location + }), + cause: preload ? "preload" : cause, + route, + ...inner.router.options.additionalContext + }; +}; +const runLoader = async (inner, matchId, index, route) => { + try { + const match = inner.router.getMatch(matchId); + try { + if (!(isServer ?? inner.router.isServer) || match.ssr === true) { + loadRouteChunk(route); + } + const loaderResult = route.options.loader?.( + getLoaderContext(inner, matchId, index, route) + ); + const loaderResultIsPromise = route.options.loader && isPromise(loaderResult); + const willLoadSomething = !!(loaderResultIsPromise || route._lazyPromise || route._componentsPromise || route.options.head || route.options.scripts || route.options.headers || match._nonReactive.minPendingPromise); + if (willLoadSomething) { + inner.updateMatch(matchId, (prev) => ({ + ...prev, + isFetching: "loader" + })); + } + if (route.options.loader) { + const loaderData = loaderResultIsPromise ? await loaderResult : loaderResult; + handleRedirectAndNotFound( + inner, + inner.router.getMatch(matchId), + loaderData + ); + if (loaderData !== void 0) { + inner.updateMatch(matchId, (prev) => ({ + ...prev, + loaderData + })); + } + } + if (route._lazyPromise) await route._lazyPromise; + const pendingPromise = match._nonReactive.minPendingPromise; + if (pendingPromise) await pendingPromise; + if (route._componentsPromise) await route._componentsPromise; + inner.updateMatch(matchId, (prev) => ({ + ...prev, + error: void 0, + context: buildMatchContext(inner, index), + status: "success", + isFetching: false, + updatedAt: Date.now() + })); + } catch (e) { + let error = e; + if (error?.name === "AbortError") { + inner.updateMatch(matchId, (prev) => ({ + ...prev, + status: prev.status === "pending" ? "success" : prev.status, + isFetching: false, + context: buildMatchContext(inner, index) + })); + return; + } + const pendingPromise = match._nonReactive.minPendingPromise; + if (pendingPromise) await pendingPromise; + if (isNotFound(e)) { + await route.options.notFoundComponent?.preload?.(); + } + handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), e); + try { + route.options.onError?.(e); + } catch (onErrorError) { + error = onErrorError; + handleRedirectAndNotFound( + inner, + inner.router.getMatch(matchId), + onErrorError + ); + } + inner.updateMatch(matchId, (prev) => ({ + ...prev, + error, + context: buildMatchContext(inner, index), + status: "error", + isFetching: false + })); + } + } catch (err) { + const match = inner.router.getMatch(matchId); + if (match) { + match._nonReactive.loaderPromise = void 0; + } + handleRedirectAndNotFound(inner, match, err); + } +}; +const loadRouteMatch = async (inner, index) => { + const { id: matchId, routeId } = inner.matches[index]; + let loaderShouldRunAsync = false; + let loaderIsRunningAsync = false; + const route = inner.router.looseRoutesById[routeId]; + if (shouldSkipLoader(inner, matchId)) { + { + return inner.router.getMatch(matchId); + } + } else { + const prevMatch = inner.router.getMatch(matchId); + if (prevMatch._nonReactive.loaderPromise) { + if (prevMatch.status === "success" && !inner.sync && !prevMatch.preload) { + return prevMatch; + } + await prevMatch._nonReactive.loaderPromise; + const match2 = inner.router.getMatch(matchId); + const error = match2._nonReactive.error || match2.error; + if (error) { + handleRedirectAndNotFound(inner, match2, error); + } + } else { + const age = Date.now() - prevMatch.updatedAt; + const preload = resolvePreload(inner, matchId); + const staleAge = preload ? route.options.preloadStaleTime ?? inner.router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? inner.router.options.defaultStaleTime ?? 0; + const shouldReloadOption = route.options.shouldReload; + const shouldReload = typeof shouldReloadOption === "function" ? shouldReloadOption(getLoaderContext(inner, matchId, index, route)) : shouldReloadOption; + const nextPreload = !!preload && !inner.router.state.matches.some((d) => d.id === matchId); + const match2 = inner.router.getMatch(matchId); + match2._nonReactive.loaderPromise = createControlledPromise(); + if (nextPreload !== match2.preload) { + inner.updateMatch(matchId, (prev) => ({ + ...prev, + preload: nextPreload + })); + } + const { status, invalid } = match2; + loaderShouldRunAsync = status === "success" && (invalid || (shouldReload ?? age > staleAge)); + if (preload && route.options.preload === false) ; + else if (loaderShouldRunAsync && !inner.sync) { + loaderIsRunningAsync = true; + (async () => { + try { + await runLoader(inner, matchId, index, route); + const match3 = inner.router.getMatch(matchId); + match3._nonReactive.loaderPromise?.resolve(); + match3._nonReactive.loadPromise?.resolve(); + match3._nonReactive.loaderPromise = void 0; + } catch (err) { + if (isRedirect(err)) { + await inner.router.navigate(err.options); + } + } + })(); + } else if (status !== "success" || loaderShouldRunAsync && inner.sync) { + await runLoader(inner, matchId, index, route); + } + } + } + const match = inner.router.getMatch(matchId); + if (!loaderIsRunningAsync) { + match._nonReactive.loaderPromise?.resolve(); + match._nonReactive.loadPromise?.resolve(); + } + clearTimeout(match._nonReactive.pendingTimeout); + match._nonReactive.pendingTimeout = void 0; + if (!loaderIsRunningAsync) match._nonReactive.loaderPromise = void 0; + match._nonReactive.dehydrated = void 0; + const nextIsFetching = loaderIsRunningAsync ? match.isFetching : false; + if (nextIsFetching !== match.isFetching || match.invalid !== false) { + inner.updateMatch(matchId, (prev) => ({ + ...prev, + isFetching: nextIsFetching, + invalid: false + })); + return inner.router.getMatch(matchId); + } else { + return match; + } +}; +async function loadMatches(arg) { + const inner = Object.assign(arg, { + matchPromises: [] + }); + try { + for (let i = 0; i < inner.matches.length; i++) { + const beforeLoad = handleBeforeLoad(inner, i); + if (isPromise(beforeLoad)) await beforeLoad; + } + const max = inner.firstBadMatchIndex ?? inner.matches.length; + for (let i = 0; i < max; i++) { + inner.matchPromises.push(loadRouteMatch(inner, i)); + } + const results = await Promise.allSettled(inner.matchPromises); + const failures = results.filter( + (result) => result.status === "rejected" + ).map((result) => result.reason); + let firstNotFound; + for (const err of failures) { + if (isRedirect(err)) { + throw err; + } + if (!firstNotFound && isNotFound(err)) { + firstNotFound = err; + } + } + for (const match of inner.matches) { + const { id: matchId, routeId } = match; + const route = inner.router.looseRoutesById[routeId]; + try { + const headResult = executeHead(inner, matchId, route); + if (headResult) { + const head = await headResult; + inner.updateMatch(matchId, (prev) => ({ + ...prev, + ...head + })); + } + } catch (err) { + console.error(`Error executing head for route ${routeId}:`, err); + } + } + if (firstNotFound) { + throw firstNotFound; + } + const readyPromise = triggerOnReady(inner); + if (isPromise(readyPromise)) await readyPromise; + } catch (err) { + if (isNotFound(err) && !inner.preload) { + const readyPromise = triggerOnReady(inner); + if (isPromise(readyPromise)) await readyPromise; + throw err; + } + if (isRedirect(err)) { + throw err; + } + } + return inner.matches; +} +async function loadRouteChunk(route) { + if (!route._lazyLoaded && route._lazyPromise === void 0) { + if (route.lazyFn) { + route._lazyPromise = route.lazyFn().then((lazyRoute) => { + const { id: _id, ...options } = lazyRoute.options; + Object.assign(route.options, options); + route._lazyLoaded = true; + route._lazyPromise = void 0; + }); + } else { + route._lazyLoaded = true; + } + } + if (!route._componentsLoaded && route._componentsPromise === void 0) { + const loadComponents = () => { + const preloads = []; + for (const type of componentTypes) { + const preload = route.options[type]?.preload; + if (preload) preloads.push(preload()); + } + if (preloads.length) + return Promise.all(preloads).then(() => { + route._componentsLoaded = true; + route._componentsPromise = void 0; + }); + route._componentsLoaded = true; + route._componentsPromise = void 0; + return; + }; + route._componentsPromise = route._lazyPromise ? route._lazyPromise.then(loadComponents) : loadComponents(); + } + return route._componentsPromise; +} +function makeMaybe(value, error) { + if (error) { + return { status: "error", error }; + } + return { status: "success", value }; +} +function routeNeedsPreload(route) { + for (const componentType of componentTypes) { + if (route.options[componentType]?.preload) { + return true; + } + } + return false; +} +const componentTypes = [ + "component", + "errorComponent", + "pendingComponent", + "notFoundComponent" +]; +function composeRewrites(rewrites) { + return { + input: ({ url }) => { + for (const rewrite of rewrites) { + url = executeRewriteInput(rewrite, url); + } + return url; + }, + output: ({ url }) => { + for (let i = rewrites.length - 1; i >= 0; i--) { + url = executeRewriteOutput(rewrites[i], url); + } + return url; + } + }; +} +function rewriteBasepath(opts) { + const trimmedBasepath = trimPath(opts.basepath); + const normalizedBasepath = `/${trimmedBasepath}`; + const normalizedBasepathWithSlash = `${normalizedBasepath}/`; + const checkBasepath = opts.caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase(); + const checkBasepathWithSlash = opts.caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase(); + return { + input: ({ url }) => { + const pathname = opts.caseSensitive ? url.pathname : url.pathname.toLowerCase(); + if (pathname === checkBasepath) { + url.pathname = "/"; + } else if (pathname.startsWith(checkBasepathWithSlash)) { + url.pathname = url.pathname.slice(normalizedBasepath.length); + } + return url; + }, + output: ({ url }) => { + url.pathname = joinPaths(["/", trimmedBasepath, url.pathname]); + return url; + } + }; +} +function executeRewriteInput(rewrite, url) { + const res = rewrite?.input?.({ url }); + if (res) { + if (typeof res === "string") { + return new URL(res); + } else if (res instanceof URL) { + return res; + } + } + return url; +} +function executeRewriteOutput(rewrite, url) { + const res = rewrite?.output?.({ url }); + if (res) { + if (typeof res === "string") { + return new URL(res); + } else if (res instanceof URL) { + return res; + } + } + return url; +} +function getLocationChangeInfo(routerState) { + const fromLocation = routerState.resolvedLocation; + const toLocation = routerState.location; + const pathChanged = fromLocation?.pathname !== toLocation.pathname; + const hrefChanged = fromLocation?.href !== toLocation.href; + const hashChanged = fromLocation?.hash !== toLocation.hash; + return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged }; +} +function createServerStore(initialState) { + const store = { + state: initialState, + setState: (updater) => { + store.state = updater(store.state); + } + }; + return store; +} +class RouterCore { + /** + * @deprecated Use the `createRouter` function instead + */ + constructor(options) { + this.tempLocationKey = `${Math.round( + Math.random() * 1e7 + )}`; + this.resetNextScroll = true; + this.shouldViewTransition = void 0; + this.isViewTransitionTypesSupported = void 0; + this.subscribers = /* @__PURE__ */ new Set(); + this.isScrollRestoring = false; + this.isScrollRestorationSetup = false; + this.startTransition = (fn) => fn(); + this.update = (newOptions) => { + if (newOptions.notFoundRoute) { + console.warn( + "The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info." + ); + } + const prevOptions = this.options; + const prevBasepath = this.basepath ?? prevOptions?.basepath ?? "/"; + const basepathWasUnset = this.basepath === void 0; + const prevRewriteOption = prevOptions?.rewrite; + this.options = { + ...prevOptions, + ...newOptions + }; + this.isServer = this.options.isServer ?? typeof document === "undefined"; + if (this.options.pathParamsAllowedCharacters) + this.pathParamsDecoder = compileDecodeCharMap( + this.options.pathParamsAllowedCharacters + ); + if (!this.history || this.options.history && this.options.history !== this.history) { + if (!this.options.history) ; + else { + this.history = this.options.history; + } + } + this.origin = this.options.origin; + if (!this.origin) { + { + this.origin = "http://localhost"; + } + } + if (this.history) { + this.updateLatestLocation(); + } + if (this.options.routeTree !== this.routeTree) { + this.routeTree = this.options.routeTree; + let processRouteTreeResult; + if (globalThis.__TSR_CACHE__ && globalThis.__TSR_CACHE__.routeTree === this.routeTree) { + const cached = globalThis.__TSR_CACHE__; + this.resolvePathCache = cached.resolvePathCache; + processRouteTreeResult = cached.processRouteTreeResult; + } else { + this.resolvePathCache = createLRUCache(1e3); + processRouteTreeResult = this.buildRouteTree(); + if (globalThis.__TSR_CACHE__ === void 0) { + globalThis.__TSR_CACHE__ = { + routeTree: this.routeTree, + processRouteTreeResult, + resolvePathCache: this.resolvePathCache + }; + } + } + this.setRoutes(processRouteTreeResult); + } + if (!this.__store && this.latestLocation) { + { + this.__store = createServerStore( + getInitialRouterState(this.latestLocation) + ); + } + } + let needsLocationUpdate = false; + const nextBasepath = this.options.basepath ?? "/"; + const nextRewriteOption = this.options.rewrite; + const basepathChanged = basepathWasUnset || prevBasepath !== nextBasepath; + const rewriteChanged = prevRewriteOption !== nextRewriteOption; + if (basepathChanged || rewriteChanged) { + this.basepath = nextBasepath; + const rewrites = []; + const trimmed = trimPath(nextBasepath); + if (trimmed && trimmed !== "/") { + rewrites.push( + rewriteBasepath({ + basepath: nextBasepath + }) + ); + } + if (nextRewriteOption) { + rewrites.push(nextRewriteOption); + } + this.rewrite = rewrites.length === 0 ? void 0 : rewrites.length === 1 ? rewrites[0] : composeRewrites(rewrites); + if (this.history) { + this.updateLatestLocation(); + } + needsLocationUpdate = true; + } + if (needsLocationUpdate && this.__store) { + this.__store.state = { + ...this.state, + location: this.latestLocation + }; + } + if (typeof window !== "undefined" && "CSS" in window && typeof window.CSS?.supports === "function") { + this.isViewTransitionTypesSupported = window.CSS.supports( + "selector(:active-view-transition-type(a)" + ); + } + }; + this.updateLatestLocation = () => { + this.latestLocation = this.parseLocation( + this.history.location, + this.latestLocation + ); + }; + this.buildRouteTree = () => { + const result = processRouteTree( + this.routeTree, + this.options.caseSensitive, + (route, i) => { + route.init({ + originalIndex: i + }); + } + ); + if (this.options.routeMasks) { + processRouteMasks(this.options.routeMasks, result.processedTree); + } + return result; + }; + this.subscribe = (eventType, fn) => { + const listener = { + eventType, + fn + }; + this.subscribers.add(listener); + return () => { + this.subscribers.delete(listener); + }; + }; + this.emit = (routerEvent) => { + this.subscribers.forEach((listener) => { + if (listener.eventType === routerEvent.type) { + listener.fn(routerEvent); + } + }); + }; + this.parseLocation = (locationToParse, previousLocation) => { + const parse = ({ + pathname, + search, + hash, + href, + state + }) => { + if (!this.rewrite && !/[ \x00-\x1f\x7f\u0080-\uffff]/.test(pathname)) { + const parsedSearch2 = this.options.parseSearch(search); + const searchStr2 = this.options.stringifySearch(parsedSearch2); + return { + href: pathname + searchStr2 + hash, + publicHref: href, + pathname: decodePath(pathname), + external: false, + searchStr: searchStr2, + search: replaceEqualDeep( + previousLocation?.search, + parsedSearch2 + ), + hash: decodePath(hash.slice(1)), + state: replaceEqualDeep(previousLocation?.state, state) + }; + } + const fullUrl = new URL(href, this.origin); + const url = executeRewriteInput(this.rewrite, fullUrl); + const parsedSearch = this.options.parseSearch(url.search); + const searchStr = this.options.stringifySearch(parsedSearch); + url.search = searchStr; + const fullPath = url.href.replace(url.origin, ""); + return { + href: fullPath, + publicHref: href, + pathname: decodePath(url.pathname), + external: !!this.rewrite && url.origin !== this.origin, + searchStr, + search: replaceEqualDeep(previousLocation?.search, parsedSearch), + hash: decodePath(url.hash.slice(1)), + state: replaceEqualDeep(previousLocation?.state, state) + }; + }; + const location = parse(locationToParse); + const { __tempLocation, __tempKey } = location.state; + if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) { + const parsedTempLocation = parse(__tempLocation); + parsedTempLocation.state.key = location.state.key; + parsedTempLocation.state.__TSR_key = location.state.__TSR_key; + delete parsedTempLocation.state.__tempLocation; + return { + ...parsedTempLocation, + maskedLocation: location + }; + } + return location; + }; + this.resolvePathWithBase = (from, path) => { + const resolvedPath = resolvePath({ + base: from, + to: cleanPath(path), + trailingSlash: this.options.trailingSlash, + cache: this.resolvePathCache + }); + return resolvedPath; + }; + this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => { + if (typeof pathnameOrNext === "string") { + return this.matchRoutesInternal( + { + pathname: pathnameOrNext, + search: locationSearchOrOpts + }, + opts + ); + } + return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts); + }; + this.getMatchedRoutes = (pathname) => { + return getMatchedRoutes({ + pathname, + routesById: this.routesById, + processedTree: this.processedTree + }); + }; + this.cancelMatch = (id) => { + const match = this.getMatch(id); + if (!match) return; + match.abortController.abort(); + clearTimeout(match._nonReactive.pendingTimeout); + match._nonReactive.pendingTimeout = void 0; + }; + this.cancelMatches = () => { + const currentPendingMatches = this.state.matches.filter( + (match) => match.status === "pending" + ); + const currentLoadingMatches = this.state.matches.filter( + (match) => match.isFetching === "loader" + ); + const matchesToCancelArray = /* @__PURE__ */ new Set([ + ...this.state.pendingMatches ?? [], + ...currentPendingMatches, + ...currentLoadingMatches + ]); + matchesToCancelArray.forEach((match) => { + this.cancelMatch(match.id); + }); + }; + this.buildLocation = (opts) => { + const build = (dest = {}) => { + const currentLocation = dest._fromLocation || this.pendingBuiltLocation || this.latestLocation; + const lightweightResult = this.matchRoutesLightweight(currentLocation); + if (dest.from && false) ; + const defaultedFromPath = dest.unsafeRelative === "path" ? currentLocation.pathname : dest.from ?? lightweightResult.fullPath; + const fromPath = this.resolvePathWithBase(defaultedFromPath, "."); + const fromSearch = lightweightResult.search; + const fromParams = { ...lightweightResult.params }; + const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, "."); + const nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : Object.assign( + fromParams, + functionalUpdate(dest.params, fromParams) + ); + const interpolatedNextTo = interpolatePath({ + path: nextTo, + params: nextParams, + decoder: this.pathParamsDecoder, + server: this.isServer + }).interpolatedPath; + const destMatchResult = this.getMatchedRoutes(interpolatedNextTo); + let destRoutes = destMatchResult.matchedRoutes; + const isGlobalNotFound = destMatchResult.foundRoute ? destMatchResult.foundRoute.path !== "/" && destMatchResult.routeParams["**"] : trimPathRight(interpolatedNextTo); + if (isGlobalNotFound && this.options.notFoundRoute) { + destRoutes = [...destRoutes, this.options.notFoundRoute]; + } + let changedParams = false; + if (Object.keys(nextParams).length > 0) { + for (const route of destRoutes) { + const fn = route.options.params?.stringify ?? route.options.stringifyParams; + if (fn) { + changedParams = true; + Object.assign(nextParams, fn(nextParams)); + } + } + } + const nextPathname = opts.leaveParams ? ( + // Use the original template path for interpolation + // This preserves the original parameter syntax including optional parameters + nextTo + ) : decodePath( + !changedParams ? interpolatedNextTo : interpolatePath({ + path: nextTo, + params: nextParams, + decoder: this.pathParamsDecoder, + server: this.isServer + }).interpolatedPath + ); + let nextSearch = fromSearch; + if (opts._includeValidateSearch && this.options.search?.strict) { + const validatedSearch = {}; + destRoutes.forEach((route) => { + if (route.options.validateSearch) { + try { + Object.assign( + validatedSearch, + validateSearch(route.options.validateSearch, { + ...validatedSearch, + ...nextSearch + }) + ); + } catch { + } + } + }); + nextSearch = validatedSearch; + } + nextSearch = applySearchMiddleware({ + search: nextSearch, + dest, + destRoutes, + _includeValidateSearch: opts._includeValidateSearch + }); + nextSearch = replaceEqualDeep(fromSearch, nextSearch); + const searchStr = this.options.stringifySearch(nextSearch); + const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0; + const hashStr = hash ? `#${hash}` : ""; + let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {}; + nextState = replaceEqualDeep(currentLocation.state, nextState); + const fullPath = `${nextPathname}${searchStr}${hashStr}`; + let href; + let publicHref; + let external = false; + if (this.rewrite) { + const url = new URL(fullPath, this.origin); + const rewrittenUrl = executeRewriteOutput(this.rewrite, url); + href = url.href.replace(url.origin, ""); + if (rewrittenUrl.origin !== this.origin) { + publicHref = rewrittenUrl.href; + external = true; + } else { + publicHref = rewrittenUrl.pathname + rewrittenUrl.search + rewrittenUrl.hash; + } + } else { + href = encodePathLikeUrl(fullPath); + publicHref = href; + } + return { + publicHref, + href, + pathname: nextPathname, + search: nextSearch, + searchStr, + state: nextState, + hash: hash ?? "", + external, + unmaskOnReload: dest.unmaskOnReload + }; + }; + const buildWithMatches = (dest = {}, maskedDest) => { + const next = build(dest); + let maskedNext = maskedDest ? build(maskedDest) : void 0; + if (!maskedNext) { + const params = {}; + if (this.options.routeMasks) { + const match = findFlatMatch( + next.pathname, + this.processedTree + ); + if (match) { + Object.assign(params, match.rawParams); + const { + from: _from, + params: maskParams, + ...maskProps + } = match.route; + const nextParams = maskParams === false || maskParams === null ? {} : (maskParams ?? true) === true ? params : Object.assign(params, functionalUpdate(maskParams, params)); + maskedDest = { + from: opts.from, + ...maskProps, + params: nextParams + }; + maskedNext = build(maskedDest); + } + } + } + if (maskedNext) { + next.maskedLocation = maskedNext; + } + return next; + }; + if (opts.mask) { + return buildWithMatches(opts, { + from: opts.from, + ...opts.mask + }); + } + return buildWithMatches(opts); + }; + this.commitLocation = async ({ + viewTransition, + ignoreBlocker, + ...next + }) => { + const isSameState = () => { + const ignoredProps = [ + "key", + // TODO: Remove in v2 - use __TSR_key instead + "__TSR_key", + "__TSR_index", + "__hashScrollIntoViewOptions" + ]; + ignoredProps.forEach((prop) => { + next.state[prop] = this.latestLocation.state[prop]; + }); + const isEqual = deepEqual(next.state, this.latestLocation.state); + ignoredProps.forEach((prop) => { + delete next.state[prop]; + }); + return isEqual; + }; + const isSameUrl = trimPathRight(this.latestLocation.href) === trimPathRight(next.href); + const previousCommitPromise = this.commitLocationPromise; + this.commitLocationPromise = createControlledPromise(() => { + previousCommitPromise?.resolve(); + }); + if (isSameUrl && isSameState()) { + this.load(); + } else { + let { + // eslint-disable-next-line prefer-const + maskedLocation, + // eslint-disable-next-line prefer-const + hashScrollIntoView, + ...nextHistory + } = next; + if (maskedLocation) { + nextHistory = { + ...maskedLocation, + state: { + ...maskedLocation.state, + __tempKey: void 0, + __tempLocation: { + ...nextHistory, + search: nextHistory.searchStr, + state: { + ...nextHistory.state, + __tempKey: void 0, + __tempLocation: void 0, + __TSR_key: void 0, + key: void 0 + // TODO: Remove in v2 - use __TSR_key instead + } + } + } + }; + if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) { + nextHistory.state.__tempKey = this.tempLocationKey; + } + } + nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true; + this.shouldViewTransition = viewTransition; + this.history[next.replace ? "replace" : "push"]( + nextHistory.publicHref, + nextHistory.state, + { ignoreBlocker } + ); + } + this.resetNextScroll = next.resetScroll ?? true; + if (!this.history.subscribers.size) { + this.load(); + } + return this.commitLocationPromise; + }; + this.buildAndCommitLocation = ({ + replace, + resetScroll, + hashScrollIntoView, + viewTransition, + ignoreBlocker, + href, + ...rest + } = {}) => { + if (href) { + const currentIndex = this.history.location.state.__TSR_index; + const parsed = parseHref(href, { + __TSR_index: replace ? currentIndex : currentIndex + 1 + }); + const hrefUrl = new URL(parsed.pathname, this.origin); + const rewrittenUrl = executeRewriteInput(this.rewrite, hrefUrl); + rest.to = rewrittenUrl.pathname; + rest.search = this.options.parseSearch(parsed.search); + rest.hash = parsed.hash.slice(1); + } + const location = this.buildLocation({ + ...rest, + _includeValidateSearch: true + }); + this.pendingBuiltLocation = location; + const commitPromise = this.commitLocation({ + ...location, + viewTransition, + replace, + resetScroll, + hashScrollIntoView, + ignoreBlocker + }); + Promise.resolve().then(() => { + if (this.pendingBuiltLocation === location) { + this.pendingBuiltLocation = void 0; + } + }); + return commitPromise; + }; + this.navigate = async ({ + to, + reloadDocument, + href, + publicHref, + ...rest + }) => { + let hrefIsUrl = false; + if (href) { + try { + new URL(`${href}`); + hrefIsUrl = true; + } catch { + } + } + if (hrefIsUrl && !reloadDocument) { + reloadDocument = true; + } + if (reloadDocument) { + if (to !== void 0 || !href) { + const location = this.buildLocation({ to, ...rest }); + href = href ?? location.publicHref; + publicHref = publicHref ?? location.publicHref; + } + const reloadHref = !hrefIsUrl && publicHref ? publicHref : href; + if (isDangerousProtocol(reloadHref)) { + return Promise.resolve(); + } + if (!rest.ignoreBlocker) { + const historyWithBlockers = this.history; + const blockers = historyWithBlockers.getBlockers?.() ?? []; + for (const blocker of blockers) { + if (blocker?.blockerFn) { + const shouldBlock = await blocker.blockerFn({ + currentLocation: this.latestLocation, + nextLocation: this.latestLocation, + // External URLs don't have a next location in our router + action: "PUSH" + }); + if (shouldBlock) { + return Promise.resolve(); + } + } + } + } + if (rest.replace) { + window.location.replace(reloadHref); + } else { + window.location.href = reloadHref; + } + return Promise.resolve(); + } + return this.buildAndCommitLocation({ + ...rest, + href, + to, + _isNavigate: true + }); + }; + this.beforeLoad = () => { + this.cancelMatches(); + this.updateLatestLocation(); + { + const nextLocation = this.buildLocation({ + to: this.latestLocation.pathname, + search: true, + params: true, + hash: true, + state: true, + _includeValidateSearch: true + }); + if (this.latestLocation.publicHref !== nextLocation.publicHref) { + const href = this.getParsedLocationHref(nextLocation); + if (nextLocation.external) { + throw redirect({ href }); + } else { + throw redirect({ href, _builtLocation: nextLocation }); + } + } + } + const pendingMatches = this.matchRoutes(this.latestLocation); + this.__store.setState((s) => ({ + ...s, + status: "pending", + statusCode: 200, + isLoading: true, + location: this.latestLocation, + pendingMatches, + // If a cached moved to pendingMatches, remove it from cachedMatches + cachedMatches: s.cachedMatches.filter( + (d) => !pendingMatches.some((e) => e.id === d.id) + ) + })); + }; + this.load = async (opts) => { + let redirect2; + let notFound; + let loadPromise; + loadPromise = new Promise((resolve) => { + this.startTransition(async () => { + try { + this.beforeLoad(); + const next = this.latestLocation; + const prevLocation = this.state.resolvedLocation; + if (!this.state.redirect) { + this.emit({ + type: "onBeforeNavigate", + ...getLocationChangeInfo({ + resolvedLocation: prevLocation, + location: next + }) + }); + } + this.emit({ + type: "onBeforeLoad", + ...getLocationChangeInfo({ + resolvedLocation: prevLocation, + location: next + }) + }); + await loadMatches({ + router: this, + sync: opts?.sync, + matches: this.state.pendingMatches, + location: next, + updateMatch: this.updateMatch, + // eslint-disable-next-line @typescript-eslint/require-await + onReady: async () => { + this.startTransition(() => { + this.startViewTransition(async () => { + let exitingMatches = []; + let enteringMatches = []; + let stayingMatches = []; + batch(() => { + this.__store.setState((s) => { + const previousMatches = s.matches; + const newMatches = s.pendingMatches || s.matches; + exitingMatches = previousMatches.filter( + (match) => !newMatches.some((d) => d.id === match.id) + ); + enteringMatches = newMatches.filter( + (match) => !previousMatches.some((d) => d.id === match.id) + ); + stayingMatches = newMatches.filter( + (match) => previousMatches.some((d) => d.id === match.id) + ); + return { + ...s, + isLoading: false, + loadedAt: Date.now(), + matches: newMatches, + pendingMatches: void 0, + /** + * When committing new matches, cache any exiting matches that are still usable. + * Routes that resolved with `status: 'error'` or `status: 'notFound'` are + * deliberately excluded from `cachedMatches` so that subsequent invalidations + * or reloads re-run their loaders instead of reusing the failed/not-found data. + */ + cachedMatches: [ + ...s.cachedMatches, + ...exitingMatches.filter( + (d) => d.status !== "error" && d.status !== "notFound" + ) + ] + }; + }); + this.clearExpiredCache(); + }); + [ + [exitingMatches, "onLeave"], + [enteringMatches, "onEnter"], + [stayingMatches, "onStay"] + ].forEach(([matches, hook]) => { + matches.forEach((match) => { + this.looseRoutesById[match.routeId].options[hook]?.( + match + ); + }); + }); + }); + }); + } + }); + } catch (err) { + if (isRedirect(err)) { + redirect2 = err; + } else if (isNotFound(err)) { + notFound = err; + } + this.__store.setState((s) => ({ + ...s, + statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === "error") ? 500 : 200, + redirect: redirect2 + })); + } + if (this.latestLoadPromise === loadPromise) { + this.commitLocationPromise?.resolve(); + this.latestLoadPromise = void 0; + this.commitLocationPromise = void 0; + } + resolve(); + }); + }); + this.latestLoadPromise = loadPromise; + await loadPromise; + while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) { + await this.latestLoadPromise; + } + let newStatusCode = void 0; + if (this.hasNotFoundMatch()) { + newStatusCode = 404; + } else if (this.__store.state.matches.some((d) => d.status === "error")) { + newStatusCode = 500; + } + if (newStatusCode !== void 0) { + this.__store.setState((s) => ({ + ...s, + statusCode: newStatusCode + })); + } + }; + this.startViewTransition = (fn) => { + const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition; + this.shouldViewTransition = void 0; + if (shouldViewTransition && typeof document !== "undefined" && "startViewTransition" in document && typeof document.startViewTransition === "function") { + let startViewTransitionParams; + if (typeof shouldViewTransition === "object" && this.isViewTransitionTypesSupported) { + const next = this.latestLocation; + const prevLocation = this.state.resolvedLocation; + const resolvedViewTransitionTypes = typeof shouldViewTransition.types === "function" ? shouldViewTransition.types( + getLocationChangeInfo({ + resolvedLocation: prevLocation, + location: next + }) + ) : shouldViewTransition.types; + if (resolvedViewTransitionTypes === false) { + fn(); + return; + } + startViewTransitionParams = { + update: fn, + types: resolvedViewTransitionTypes + }; + } else { + startViewTransitionParams = fn; + } + document.startViewTransition(startViewTransitionParams); + } else { + fn(); + } + }; + this.updateMatch = (id, updater) => { + this.startTransition(() => { + const matchesKey = this.state.pendingMatches?.some((d) => d.id === id) ? "pendingMatches" : this.state.matches.some((d) => d.id === id) ? "matches" : this.state.cachedMatches.some((d) => d.id === id) ? "cachedMatches" : ""; + if (matchesKey) { + this.__store.setState((s) => ({ + ...s, + [matchesKey]: s[matchesKey]?.map( + (d) => d.id === id ? updater(d) : d + ) + })); + } + }); + }; + this.getMatch = (matchId) => { + const findFn = (d) => d.id === matchId; + return this.state.cachedMatches.find(findFn) ?? this.state.pendingMatches?.find(findFn) ?? this.state.matches.find(findFn); + }; + this.invalidate = (opts) => { + const invalidate = (d) => { + if (opts?.filter?.(d) ?? true) { + return { + ...d, + invalid: true, + ...opts?.forcePending || d.status === "error" || d.status === "notFound" ? { status: "pending", error: void 0 } : void 0 + }; + } + return d; + }; + this.__store.setState((s) => ({ + ...s, + matches: s.matches.map(invalidate), + cachedMatches: s.cachedMatches.map(invalidate), + pendingMatches: s.pendingMatches?.map(invalidate) + })); + this.shouldViewTransition = false; + return this.load({ sync: opts?.sync }); + }; + this.getParsedLocationHref = (location) => { + return location.publicHref || "/"; + }; + this.resolveRedirect = (redirect2) => { + const locationHeader = redirect2.headers.get("Location"); + if (!redirect2.options.href || redirect2.options._builtLocation) { + const location = redirect2.options._builtLocation ?? this.buildLocation(redirect2.options); + const href = this.getParsedLocationHref(location); + redirect2.options.href = href; + redirect2.headers.set("Location", href); + } else if (locationHeader) { + try { + const url = new URL(locationHeader); + if (this.origin && url.origin === this.origin) { + const href = url.pathname + url.search + url.hash; + redirect2.options.href = href; + redirect2.headers.set("Location", href); + } + } catch { + } + } + if (!redirect2.headers.get("Location")) { + redirect2.headers.set("Location", redirect2.options.href); + } + return redirect2; + }; + this.clearCache = (opts) => { + const filter = opts?.filter; + if (filter !== void 0) { + this.__store.setState((s) => { + return { + ...s, + cachedMatches: s.cachedMatches.filter( + (m) => !filter(m) + ) + }; + }); + } else { + this.__store.setState((s) => { + return { + ...s, + cachedMatches: [] + }; + }); + } + }; + this.clearExpiredCache = () => { + const filter = (d) => { + const route = this.looseRoutesById[d.routeId]; + if (!route.options.loader) { + return true; + } + const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3; + const isError = d.status === "error"; + if (isError) return true; + const gcEligible = Date.now() - d.updatedAt >= gcTime; + return gcEligible; + }; + this.clearCache({ filter }); + }; + this.loadRouteChunk = loadRouteChunk; + this.preloadRoute = async (opts) => { + const next = this.buildLocation(opts); + let matches = this.matchRoutes(next, { + throwOnError: true, + preload: true, + dest: opts + }); + const activeMatchIds = new Set( + [...this.state.matches, ...this.state.pendingMatches ?? []].map( + (d) => d.id + ) + ); + const loadedMatchIds = /* @__PURE__ */ new Set([ + ...activeMatchIds, + ...this.state.cachedMatches.map((d) => d.id) + ]); + batch(() => { + matches.forEach((match) => { + if (!loadedMatchIds.has(match.id)) { + this.__store.setState((s) => ({ + ...s, + cachedMatches: [...s.cachedMatches, match] + })); + } + }); + }); + try { + matches = await loadMatches({ + router: this, + matches, + location: next, + preload: true, + updateMatch: (id, updater) => { + if (activeMatchIds.has(id)) { + matches = matches.map((d) => d.id === id ? updater(d) : d); + } else { + this.updateMatch(id, updater); + } + } + }); + return matches; + } catch (err) { + if (isRedirect(err)) { + if (err.options.reloadDocument) { + return void 0; + } + return await this.preloadRoute({ + ...err.options, + _fromLocation: next + }); + } + if (!isNotFound(err)) { + console.error(err); + } + return void 0; + } + }; + this.matchRoute = (location, opts) => { + const matchLocation = { + ...location, + to: location.to ? this.resolvePathWithBase( + location.from || "", + location.to + ) : void 0, + params: location.params || {}, + leaveParams: true + }; + const next = this.buildLocation(matchLocation); + if (opts?.pending && this.state.status !== "pending") { + return false; + } + const pending = opts?.pending === void 0 ? !this.state.isLoading : opts.pending; + const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location; + const match = findSingleMatch( + next.pathname, + opts?.caseSensitive ?? false, + opts?.fuzzy ?? false, + baseLocation.pathname, + this.processedTree + ); + if (!match) { + return false; + } + if (location.params) { + if (!deepEqual(match.rawParams, location.params, { partial: true })) { + return false; + } + } + if (opts?.includeSearch ?? true) { + return deepEqual(baseLocation.search, next.search, { partial: true }) ? match.rawParams : false; + } + return match.rawParams; + }; + this.hasNotFoundMatch = () => { + return this.__store.state.matches.some( + (d) => d.status === "notFound" || d.globalNotFound + ); + }; + this.update({ + defaultPreloadDelay: 50, + defaultPendingMs: 1e3, + defaultPendingMinMs: 500, + context: void 0, + ...options, + caseSensitive: options.caseSensitive ?? false, + notFoundMode: options.notFoundMode ?? "fuzzy", + stringifySearch: options.stringifySearch ?? defaultStringifySearch, + parseSearch: options.parseSearch ?? defaultParseSearch + }); + if (typeof document !== "undefined") { + self.__TSR_ROUTER__ = this; + } + } + isShell() { + return !!this.options.isShell; + } + isPrerendering() { + return !!this.options.isPrerendering; + } + get state() { + return this.__store.state; + } + setRoutes({ + routesById, + routesByPath, + processedTree + }) { + this.routesById = routesById; + this.routesByPath = routesByPath; + this.processedTree = processedTree; + const notFoundRoute = this.options.notFoundRoute; + if (notFoundRoute) { + notFoundRoute.init({ + originalIndex: 99999999999 + }); + this.routesById[notFoundRoute.id] = notFoundRoute; + } + } + get looseRoutesById() { + return this.routesById; + } + getParentContext(parentMatch) { + const parentMatchId = parentMatch?.id; + const parentContext = !parentMatchId ? this.options.context ?? void 0 : parentMatch.context ?? this.options.context ?? void 0; + return parentContext; + } + matchRoutesInternal(next, opts) { + const matchedRoutesResult = this.getMatchedRoutes(next.pathname); + const { foundRoute, routeParams, parsedParams } = matchedRoutesResult; + let { matchedRoutes } = matchedRoutesResult; + let isGlobalNotFound = false; + if ( + // If we found a route, and it's not an index route and we have left over path + foundRoute ? foundRoute.path !== "/" && routeParams["**"] : ( + // Or if we didn't find a route and we have left over path + trimPathRight(next.pathname) + ) + ) { + if (this.options.notFoundRoute) { + matchedRoutes = [...matchedRoutes, this.options.notFoundRoute]; + } else { + isGlobalNotFound = true; + } + } + const globalNotFoundRouteId = isGlobalNotFound ? findGlobalNotFoundRouteId(this.options.notFoundMode, matchedRoutes) : void 0; + const matches = new Array(matchedRoutes.length); + for (let index = 0; index < matchedRoutes.length; index++) { + const route = matchedRoutes[index]; + const parentMatch = matches[index - 1]; + let preMatchSearch; + let strictMatchSearch; + let searchError; + { + const parentSearch = parentMatch?.search ?? next.search; + const parentStrictSearch = parentMatch?._strictSearch ?? void 0; + try { + const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0; + preMatchSearch = { + ...parentSearch, + ...strictSearch + }; + strictMatchSearch = { ...parentStrictSearch, ...strictSearch }; + searchError = void 0; + } catch (err) { + let searchParamError = err; + if (!(err instanceof SearchParamError)) { + searchParamError = new SearchParamError(err.message, { + cause: err + }); + } + if (opts?.throwOnError) { + throw searchParamError; + } + preMatchSearch = parentSearch; + strictMatchSearch = {}; + searchError = searchParamError; + } + } + const loaderDeps = route.options.loaderDeps?.({ + search: preMatchSearch + }) ?? ""; + const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : ""; + const { interpolatedPath, usedParams } = interpolatePath({ + path: route.fullPath, + params: routeParams, + decoder: this.pathParamsDecoder, + server: this.isServer + }); + const matchId = ( + // route.id for disambiguation + route.id + // interpolatedPath for param changes + interpolatedPath + // explicit deps + loaderDepsHash + ); + const existingMatch = this.getMatch(matchId); + const previousMatch = this.state.matches.find( + (d) => d.routeId === route.id + ); + const strictParams = existingMatch?._strictParams ?? usedParams; + let paramsError = void 0; + if (!existingMatch) { + try { + extractStrictParams(route, usedParams, parsedParams, strictParams); + } catch (err) { + if (isNotFound(err) || isRedirect(err)) { + paramsError = err; + } else { + paramsError = new PathParamError(err.message, { + cause: err + }); + } + if (opts?.throwOnError) { + throw paramsError; + } + } + } + Object.assign(routeParams, strictParams); + const cause = previousMatch ? "stay" : "enter"; + let match; + if (existingMatch) { + match = { + ...existingMatch, + cause, + params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams, + _strictParams: strictParams, + search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch), + _strictSearch: strictMatchSearch + }; + } else { + const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? "pending" : "success"; + match = { + id: matchId, + ssr: void 0, + index, + routeId: route.id, + params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams, + _strictParams: strictParams, + pathname: interpolatedPath, + updatedAt: Date.now(), + search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch, + _strictSearch: strictMatchSearch, + searchError: void 0, + status, + isFetching: false, + error: void 0, + paramsError, + __routeContext: void 0, + _nonReactive: { + loadPromise: createControlledPromise() + }, + __beforeLoadContext: void 0, + context: {}, + abortController: new AbortController(), + fetchCount: 0, + cause, + loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps, + invalid: false, + preload: false, + links: void 0, + scripts: void 0, + headScripts: void 0, + meta: void 0, + staticData: route.options.staticData || {}, + fullPath: route.fullPath + }; + } + if (!opts?.preload) { + match.globalNotFound = globalNotFoundRouteId === route.id; + } + match.searchError = searchError; + const parentContext = this.getParentContext(parentMatch); + match.context = { + ...parentContext, + ...match.__routeContext, + ...match.__beforeLoadContext + }; + matches[index] = match; + } + for (let index = 0; index < matches.length; index++) { + const match = matches[index]; + const route = this.looseRoutesById[match.routeId]; + const existingMatch = this.getMatch(match.id); + if (!existingMatch) { + const parentMatch = matches[index - 1]; + const parentContext = this.getParentContext(parentMatch); + if (route.options.context) { + const contextFnContext = { + deps: match.loaderDeps, + params: match.params, + context: parentContext ?? {}, + location: next, + navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }), + buildLocation: this.buildLocation, + cause: match.cause, + abortController: match.abortController, + preload: !!match.preload, + matches + }; + match.__routeContext = route.options.context(contextFnContext) ?? void 0; + } + match.context = { + ...parentContext, + ...match.__routeContext, + ...match.__beforeLoadContext + }; + } + } + return matches; + } + /** + * Lightweight route matching for buildLocation. + * Only computes fullPath, accumulated search, and params - skipping expensive + * operations like AbortController, ControlledPromise, loaderDeps, and full match objects. + */ + matchRoutesLightweight(location) { + const { matchedRoutes, routeParams, parsedParams } = this.getMatchedRoutes( + location.pathname + ); + const lastRoute = last(matchedRoutes); + const accumulatedSearch = { ...location.search }; + for (const route of matchedRoutes) { + try { + Object.assign( + accumulatedSearch, + validateSearch(route.options.validateSearch, accumulatedSearch) + ); + } catch { + } + } + const lastStateMatch = last(this.state.matches); + const canReuseParams = lastStateMatch && lastStateMatch.routeId === lastRoute.id && location.pathname === this.state.location.pathname; + let params; + if (canReuseParams) { + params = lastStateMatch.params; + } else { + const strictParams = { ...routeParams }; + for (const route of matchedRoutes) { + try { + extractStrictParams( + route, + routeParams, + parsedParams ?? {}, + strictParams + ); + } catch { + } + } + params = strictParams; + } + return { + matchedRoutes, + fullPath: lastRoute.fullPath, + search: accumulatedSearch, + params + }; + } +} +class SearchParamError extends Error { +} +class PathParamError extends Error { +} +function getInitialRouterState(location) { + return { + loadedAt: 0, + isLoading: false, + isTransitioning: false, + status: "idle", + resolvedLocation: void 0, + location, + matches: [], + pendingMatches: [], + cachedMatches: [], + statusCode: 200 + }; +} +function validateSearch(validateSearch2, input) { + if (validateSearch2 == null) return {}; + if ("~standard" in validateSearch2) { + const result = validateSearch2["~standard"].validate(input); + if (result instanceof Promise) + throw new SearchParamError("Async validation not supported"); + if (result.issues) + throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), { + cause: result + }); + return result.value; + } + if ("parse" in validateSearch2) { + return validateSearch2.parse(input); + } + if (typeof validateSearch2 === "function") { + return validateSearch2(input); + } + return {}; +} +function getMatchedRoutes({ + pathname, + routesById, + processedTree +}) { + const routeParams = {}; + const trimmedPath = trimPathRight(pathname); + let foundRoute = void 0; + let parsedParams = void 0; + const match = findRouteMatch(trimmedPath, processedTree, true); + if (match) { + foundRoute = match.route; + Object.assign(routeParams, match.rawParams); + parsedParams = Object.assign({}, match.parsedParams); + } + const matchedRoutes = match?.branch || [routesById[rootRouteId]]; + return { matchedRoutes, routeParams, foundRoute, parsedParams }; +} +function applySearchMiddleware({ + search, + dest, + destRoutes, + _includeValidateSearch +}) { + const middleware = buildMiddlewareChain(destRoutes); + return middleware(search, dest, _includeValidateSearch ?? false); +} +function buildMiddlewareChain(destRoutes) { + const context = { + dest: null, + _includeValidateSearch: false, + middlewares: [] + }; + for (const route of destRoutes) { + if ("search" in route.options) { + if (route.options.search?.middlewares) { + context.middlewares.push(...route.options.search.middlewares); + } + } else if (route.options.preSearchFilters || route.options.postSearchFilters) { + const legacyMiddleware = ({ search, next }) => { + let nextSearch = search; + if ("preSearchFilters" in route.options && route.options.preSearchFilters) { + nextSearch = route.options.preSearchFilters.reduce( + (prev, next2) => next2(prev), + search + ); + } + const result = next(nextSearch); + if ("postSearchFilters" in route.options && route.options.postSearchFilters) { + return route.options.postSearchFilters.reduce( + (prev, next2) => next2(prev), + result + ); + } + return result; + }; + context.middlewares.push(legacyMiddleware); + } + if (route.options.validateSearch) { + const validate = ({ search, next }) => { + const result = next(search); + if (!context._includeValidateSearch) return result; + try { + const validatedSearch = { + ...result, + ...validateSearch(route.options.validateSearch, result) ?? void 0 + }; + return validatedSearch; + } catch { + return result; + } + }; + context.middlewares.push(validate); + } + } + const final = ({ search }) => { + const dest = context.dest; + if (!dest.search) { + return {}; + } + if (dest.search === true) { + return search; + } + return functionalUpdate(dest.search, search); + }; + context.middlewares.push(final); + const applyNext = (index, currentSearch, middlewares) => { + if (index >= middlewares.length) { + return currentSearch; + } + const middleware = middlewares[index]; + const next = (newSearch) => { + return applyNext(index + 1, newSearch, middlewares); + }; + return middleware({ search: currentSearch, next }); + }; + return function middleware(search, dest, _includeValidateSearch) { + context.dest = dest; + context._includeValidateSearch = _includeValidateSearch; + return applyNext(0, search, context.middlewares); + }; +} +function findGlobalNotFoundRouteId(notFoundMode, routes) { + if (notFoundMode !== "root") { + for (let i = routes.length - 1; i >= 0; i--) { + const route = routes[i]; + if (route.children) { + return route.id; + } + } + } + return rootRouteId; +} +function extractStrictParams(route, referenceParams, parsedParams, accumulatedParams) { + const parseParams = route.options.params?.parse ?? route.options.parseParams; + if (parseParams) { + if (route.options.skipRouteOnParseError) { + for (const key in referenceParams) { + if (key in parsedParams) { + accumulatedParams[key] = parsedParams[key]; + } + } + } else { + const result = parseParams(accumulatedParams); + Object.assign(accumulatedParams, result); + } + } +} +class BaseRoute { + constructor(options) { + this.init = (opts) => { + this.originalIndex = opts.originalIndex; + const options2 = this.options; + const isRoot = !options2?.path && !options2?.id; + this.parentRoute = this.options.getParentRoute?.(); + if (isRoot) { + this._path = rootRouteId; + } else if (!this.parentRoute) { + invariant( + false + ); + } + let path = isRoot ? rootRouteId : options2?.path; + if (path && path !== "/") { + path = trimPathLeft(path); + } + const customId = options2?.id || path; + let id = isRoot ? rootRouteId : joinPaths([ + this.parentRoute.id === rootRouteId ? "" : this.parentRoute.id, + customId + ]); + if (path === rootRouteId) { + path = "/"; + } + if (id !== rootRouteId) { + id = joinPaths(["/", id]); + } + const fullPath = id === rootRouteId ? "/" : joinPaths([this.parentRoute.fullPath, path]); + this._path = path; + this._id = id; + this._fullPath = fullPath; + this._to = trimPathRight(fullPath); + }; + this.addChildren = (children) => { + return this._addFileChildren(children); + }; + this._addFileChildren = (children) => { + if (Array.isArray(children)) { + this.children = children; + } + if (typeof children === "object" && children !== null) { + this.children = Object.values(children); + } + return this; + }; + this._addFileTypes = () => { + return this; + }; + this.updateLoader = (options2) => { + Object.assign(this.options, options2); + return this; + }; + this.update = (options2) => { + Object.assign(this.options, options2); + return this; + }; + this.lazy = (lazyFn) => { + this.lazyFn = lazyFn; + return this; + }; + this.redirect = (opts) => redirect({ from: this.fullPath, ...opts }); + this.options = options || {}; + this.isRoot = !options?.getParentRoute; + if (options?.id && options?.path) { + throw new Error(`Route cannot have both an 'id' and a 'path' option.`); + } + } + get to() { + return this._to; + } + get id() { + return this._id; + } + get path() { + return this._path; + } + get fullPath() { + return this._fullPath; + } +} +class BaseRootRoute extends BaseRoute { + constructor(options) { + super(options); + } +} +const GLOBAL_TSR = "$_TSR"; +const TSR_SCRIPT_BARRIER_ID = "$tsr-stream-barrier"; +function createSerializationAdapter(opts) { + return opts; +} +function makeSsrSerovalPlugin(serializationAdapter, options) { + return ni({ + tag: "$TSR/t/" + serializationAdapter.key, + test: serializationAdapter.test, + parse: { + stream(value, ctx) { + return ctx.parse(serializationAdapter.toSerializable(value)); + } + }, + serialize(node, ctx) { + options.didRun = true; + return GLOBAL_TSR + '.t.get("' + serializationAdapter.key + '")(' + ctx.serialize(node) + ")"; + }, + // we never deserialize on the server during SSR + deserialize: void 0 + }); +} +function makeSerovalPlugin(serializationAdapter) { + return ni({ + tag: "$TSR/t/" + serializationAdapter.key, + test: serializationAdapter.test, + parse: { + sync(value, ctx) { + return ctx.parse(serializationAdapter.toSerializable(value)); + }, + async async(value, ctx) { + return await ctx.parse(serializationAdapter.toSerializable(value)); + }, + stream(value, ctx) { + return ctx.parse(serializationAdapter.toSerializable(value)); + } + }, + // we don't generate JS code outside of SSR (for now) + serialize: void 0, + deserialize(node, ctx) { + return serializationAdapter.fromSerializable(ctx.deserialize(node)); + } + }); +} +const ShallowErrorPlugin = /* @__PURE__ */ ni({ + tag: "$TSR/Error", + test(value) { + return value instanceof Error; + }, + parse: { + sync(value, ctx) { + return { + message: ctx.parse(value.message) + }; + }, + async async(value, ctx) { + return { + message: await ctx.parse(value.message) + }; + }, + stream(value, ctx) { + return { + message: ctx.parse(value.message) + }; + } + }, + serialize(node, ctx) { + return "new Error(" + ctx.serialize(node.message) + ")"; + }, + deserialize(node, ctx) { + return new Error(ctx.deserialize(node.message)); + } +}); +class RawStream { + constructor(stream, options) { + this.stream = stream; + this.hint = options?.hint ?? "binary"; + } +} +const BufferCtor = globalThis.Buffer; +const hasNodeBuffer = !!BufferCtor && typeof BufferCtor.from === "function"; +function uint8ArrayToBase64(bytes) { + if (bytes.length === 0) return ""; + if (hasNodeBuffer) { + return BufferCtor.from(bytes).toString("base64"); + } + const CHUNK_SIZE = 32768; + const chunks = []; + for (let i = 0; i < bytes.length; i += CHUNK_SIZE) { + const chunk = bytes.subarray(i, i + CHUNK_SIZE); + chunks.push(String.fromCharCode.apply(null, chunk)); + } + return btoa(chunks.join("")); +} +function base64ToUint8Array(base64) { + if (base64.length === 0) return new Uint8Array(0); + if (hasNodeBuffer) { + const buf = BufferCtor.from(base64, "base64"); + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + } + const binary = atob(base64); + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) { + bytes[i] = binary.charCodeAt(i); + } + return bytes; +} +const RAW_STREAM_FACTORY_BINARY = /* @__PURE__ */ Object.create(null); +const RAW_STREAM_FACTORY_TEXT = /* @__PURE__ */ Object.create(null); +const RAW_STREAM_FACTORY_CONSTRUCTOR_BINARY = (stream) => new ReadableStream({ + start(controller) { + stream.on({ + next(base64) { + try { + controller.enqueue(base64ToUint8Array(base64)); + } catch { + } + }, + throw(error) { + controller.error(error); + }, + return() { + try { + controller.close(); + } catch { + } + } + }); + } +}); +const textEncoderForFactory = new TextEncoder(); +const RAW_STREAM_FACTORY_CONSTRUCTOR_TEXT = (stream) => { + return new ReadableStream({ + start(controller) { + stream.on({ + next(value) { + try { + if (typeof value === "string") { + controller.enqueue(textEncoderForFactory.encode(value)); + } else { + controller.enqueue(base64ToUint8Array(value.$b64)); + } + } catch { + } + }, + throw(error) { + controller.error(error); + }, + return() { + try { + controller.close(); + } catch { + } + } + }); + } + }); +}; +const FACTORY_BINARY = `(s=>new ReadableStream({start(c){s.on({next(b){try{const d=atob(b),a=new Uint8Array(d.length);for(let i=0;i{const e=new TextEncoder();return new ReadableStream({start(c){s.on({next(v){try{if(typeof v==='string'){c.enqueue(e.encode(v))}else{const d=atob(v.$b64),a=new Uint8Array(d.length);for(let i=0;i { + try { + while (true) { + const { done, value } = await reader.read(); + if (done) { + stream.return(void 0); + break; + } + stream.next(uint8ArrayToBase64(value)); + } + } catch (error) { + stream.throw(error); + } finally { + reader.releaseLock(); + } + })(); + return stream; +} +function toTextStream(readable) { + const stream = te(); + const reader = readable.getReader(); + const decoder = new TextDecoder("utf-8", { fatal: true }); + (async () => { + try { + while (true) { + const { done, value } = await reader.read(); + if (done) { + try { + const remaining = decoder.decode(); + if (remaining.length > 0) { + stream.next(remaining); + } + } catch { + } + stream.return(void 0); + break; + } + try { + const text = decoder.decode(value, { stream: true }); + if (text.length > 0) { + stream.next(text); + } + } catch { + stream.next({ $b64: uint8ArrayToBase64(value) }); + } + } + } catch (error) { + stream.throw(error); + } finally { + reader.releaseLock(); + } + })(); + return stream; +} +const RawStreamFactoryBinaryPlugin = ni({ + tag: "tss/RawStreamFactory", + test(value) { + return value === RAW_STREAM_FACTORY_BINARY; + }, + parse: { + sync() { + return void 0; + }, + async() { + return Promise.resolve(void 0); + }, + stream() { + return void 0; + } + }, + serialize() { + return FACTORY_BINARY; + }, + deserialize() { + return RAW_STREAM_FACTORY_BINARY; + } +}); +const RawStreamFactoryTextPlugin = ni({ + tag: "tss/RawStreamFactoryText", + test(value) { + return value === RAW_STREAM_FACTORY_TEXT; + }, + parse: { + sync() { + return void 0; + }, + async() { + return Promise.resolve(void 0); + }, + stream() { + return void 0; + } + }, + serialize() { + return FACTORY_TEXT; + }, + deserialize() { + return RAW_STREAM_FACTORY_TEXT; + } +}); +const RawStreamSSRPlugin = ni({ + tag: "tss/RawStream", + extends: [RawStreamFactoryBinaryPlugin, RawStreamFactoryTextPlugin], + test(value) { + return value instanceof RawStream; + }, + parse: { + sync(value, ctx) { + const factory = value.hint === "text" ? RAW_STREAM_FACTORY_TEXT : RAW_STREAM_FACTORY_BINARY; + return { + hint: value.hint, + factory: ctx.parse(factory), + stream: ctx.parse(te()) + }; + }, + async async(value, ctx) { + const factory = value.hint === "text" ? RAW_STREAM_FACTORY_TEXT : RAW_STREAM_FACTORY_BINARY; + const encodedStream = value.hint === "text" ? toTextStream(value.stream) : toBinaryStream(value.stream); + return { + hint: value.hint, + factory: await ctx.parse(factory), + stream: await ctx.parse(encodedStream) + }; + }, + stream(value, ctx) { + const factory = value.hint === "text" ? RAW_STREAM_FACTORY_TEXT : RAW_STREAM_FACTORY_BINARY; + const encodedStream = value.hint === "text" ? toTextStream(value.stream) : toBinaryStream(value.stream); + return { + hint: value.hint, + factory: ctx.parse(factory), + stream: ctx.parse(encodedStream) + }; + } + }, + serialize(node, ctx) { + return "(" + ctx.serialize(node.factory) + ")(" + ctx.serialize(node.stream) + ")"; + }, + deserialize(node, ctx) { + const stream = ctx.deserialize(node.stream); + return node.hint === "text" ? RAW_STREAM_FACTORY_CONSTRUCTOR_TEXT(stream) : RAW_STREAM_FACTORY_CONSTRUCTOR_BINARY(stream); + } +}); +function createRawStreamRPCPlugin(onRawStream) { + let nextStreamId = 1; + return ni({ + tag: "tss/RawStream", + test(value) { + return value instanceof RawStream; + }, + parse: { + async(value) { + const streamId = nextStreamId++; + onRawStream(streamId, value.stream); + return Promise.resolve({ streamId }); + }, + stream(value) { + const streamId = nextStreamId++; + onRawStream(streamId, value.stream); + return { streamId }; + } + }, + serialize() { + throw new Error( + "RawStreamRPCPlugin.serialize should not be called. RPC uses JSON serialization, not JS code generation." + ); + }, + deserialize() { + throw new Error( + "RawStreamRPCPlugin.deserialize should not be called. Use createRawStreamDeserializePlugin on client." + ); + } + }); +} +const defaultSerovalPlugins = [ + ShallowErrorPlugin, + // RawStreamSSRPlugin must come before ReadableStreamPlugin to match first + RawStreamSSRPlugin, + // ReadableStreamNode is not exported by seroval + p +]; +const minifiedTsrBootStrapScript = "self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};\n"; +const SCOPE_ID = "tsr"; +const TSR_PREFIX = GLOBAL_TSR + ".router="; +const P_PREFIX = GLOBAL_TSR + ".p(()=>"; +const P_SUFFIX = ")"; +function dehydrateMatch(match) { + const dehydratedMatch = { + i: match.id, + u: match.updatedAt, + s: match.status + }; + const properties = [ + ["__beforeLoadContext", "b"], + ["loaderData", "l"], + ["error", "e"], + ["ssr", "ssr"] + ]; + for (const [key, shorthand] of properties) { + if (match[key] !== void 0) { + dehydratedMatch[shorthand] = match[key]; + } + } + return dehydratedMatch; +} +const INITIAL_SCRIPTS = [ + mn(SCOPE_ID), + minifiedTsrBootStrapScript +]; +class ScriptBuffer { + constructor(router) { + this._scriptBarrierLifted = false; + this._cleanedUp = false; + this._pendingMicrotask = false; + this.router = router; + this._queue = INITIAL_SCRIPTS.slice(); + } + enqueue(script) { + if (this._cleanedUp) return; + this._queue.push(script); + if (this._scriptBarrierLifted && !this._pendingMicrotask) { + this._pendingMicrotask = true; + queueMicrotask(() => { + this._pendingMicrotask = false; + this.injectBufferedScripts(); + }); + } + } + liftBarrier() { + if (this._scriptBarrierLifted || this._cleanedUp) return; + this._scriptBarrierLifted = true; + if (this._queue.length > 0 && !this._pendingMicrotask) { + this._pendingMicrotask = true; + queueMicrotask(() => { + this._pendingMicrotask = false; + this.injectBufferedScripts(); + }); + } + } + /** + * Flushes any pending scripts synchronously. + * Call this before emitting onSerializationFinished to ensure all scripts are injected. + * + * IMPORTANT: Only injects if the barrier has been lifted. Before the barrier is lifted, + * scripts should remain in the queue so takeBufferedScripts() can retrieve them + */ + flush() { + if (!this._scriptBarrierLifted) return; + if (this._cleanedUp) return; + this._pendingMicrotask = false; + const scriptsToInject = this.takeAll(); + if (scriptsToInject && this.router?.serverSsr) { + this.router.serverSsr.injectScript(scriptsToInject); + } + } + takeAll() { + const bufferedScripts = this._queue; + this._queue = []; + if (bufferedScripts.length === 0) { + return void 0; + } + if (bufferedScripts.length === 1) { + return bufferedScripts[0] + ";document.currentScript.remove()"; + } + return bufferedScripts.join(";") + ";document.currentScript.remove()"; + } + injectBufferedScripts() { + if (this._cleanedUp) return; + if (this._queue.length === 0) return; + const scriptsToInject = this.takeAll(); + if (scriptsToInject && this.router?.serverSsr) { + this.router.serverSsr.injectScript(scriptsToInject); + } + } + cleanup() { + this._cleanedUp = true; + this._queue = []; + this.router = void 0; + } +} +const MANIFEST_CACHE_SIZE = 100; +const manifestCaches = /* @__PURE__ */ new WeakMap(); +function getManifestCache(manifest) { + const cache = manifestCaches.get(manifest); + if (cache) return cache; + const newCache = createLRUCache(MANIFEST_CACHE_SIZE); + manifestCaches.set(manifest, newCache); + return newCache; +} +function attachRouterServerSsrUtils({ + router, + manifest +}) { + router.ssr = { + manifest + }; + let _dehydrated = false; + let _serializationFinished = false; + const renderFinishedListeners = []; + const serializationFinishedListeners = []; + const scriptBuffer = new ScriptBuffer(router); + let injectedHtmlBuffer = ""; + router.serverSsr = { + injectHtml: (html) => { + if (!html) return; + injectedHtmlBuffer += html; + router.emit({ + type: "onInjectedHtml" + }); + }, + injectScript: (script) => { + if (!script) return; + const html = `${script}<\/script>`; + router.serverSsr.injectHtml(html); + }, + dehydrate: async () => { + invariant(!_dehydrated); + let matchesToDehydrate = router.state.matches; + if (router.isShell()) { + matchesToDehydrate = matchesToDehydrate.slice(0, 1); + } + const matches = matchesToDehydrate.map(dehydrateMatch); + let manifestToDehydrate = void 0; + if (manifest) { + const currentRouteIdsList = matchesToDehydrate.map((m) => m.routeId); + const manifestCacheKey = currentRouteIdsList.join("\0"); + let filteredRoutes; + { + filteredRoutes = getManifestCache(manifest).get(manifestCacheKey); + } + if (!filteredRoutes) { + const currentRouteIds = new Set(currentRouteIdsList); + const nextFilteredRoutes = {}; + for (const routeId in manifest.routes) { + const routeManifest = manifest.routes[routeId]; + if (currentRouteIds.has(routeId)) { + nextFilteredRoutes[routeId] = routeManifest; + } else if (routeManifest.assets && routeManifest.assets.length > 0) { + nextFilteredRoutes[routeId] = { + assets: routeManifest.assets + }; + } + } + { + getManifestCache(manifest).set(manifestCacheKey, nextFilteredRoutes); + } + filteredRoutes = nextFilteredRoutes; + } + manifestToDehydrate = { + routes: filteredRoutes + }; + } + const dehydratedRouter = { + manifest: manifestToDehydrate, + matches + }; + const lastMatchId = matchesToDehydrate[matchesToDehydrate.length - 1]?.id; + if (lastMatchId) { + dehydratedRouter.lastMatchId = lastMatchId; + } + const dehydratedData = await router.options.dehydrate?.(); + if (dehydratedData) { + dehydratedRouter.dehydratedData = dehydratedData; + } + _dehydrated = true; + const trackPlugins = { didRun: false }; + const serializationAdapters = router.options.serializationAdapters; + const plugins = serializationAdapters ? serializationAdapters.map((t) => makeSsrSerovalPlugin(t, trackPlugins)).concat(defaultSerovalPlugins) : defaultSerovalPlugins; + const signalSerializationComplete = () => { + _serializationFinished = true; + try { + serializationFinishedListeners.forEach((l) => l()); + router.emit({ type: "onSerializationFinished" }); + } catch (err) { + console.error("Serialization listener error:", err); + } finally { + serializationFinishedListeners.length = 0; + renderFinishedListeners.length = 0; + } + }; + cn(dehydratedRouter, { + refs: /* @__PURE__ */ new Map(), + plugins, + onSerialize: (data, initial) => { + let serialized = initial ? TSR_PREFIX + data : data; + if (trackPlugins.didRun) { + serialized = P_PREFIX + serialized + P_SUFFIX; + } + scriptBuffer.enqueue(serialized); + }, + scopeId: SCOPE_ID, + onDone: () => { + scriptBuffer.enqueue(GLOBAL_TSR + ".e()"); + scriptBuffer.flush(); + signalSerializationComplete(); + }, + onError: (err) => { + console.error("Serialization error:", err); + signalSerializationComplete(); + } + }); + }, + isDehydrated() { + return _dehydrated; + }, + isSerializationFinished() { + return _serializationFinished; + }, + onRenderFinished: (listener) => renderFinishedListeners.push(listener), + onSerializationFinished: (listener) => serializationFinishedListeners.push(listener), + setRenderFinished: () => { + try { + renderFinishedListeners.forEach((l) => l()); + } catch (err) { + console.error("Error in render finished listener:", err); + } finally { + renderFinishedListeners.length = 0; + } + scriptBuffer.liftBarrier(); + }, + takeBufferedScripts() { + const scripts = scriptBuffer.takeAll(); + const serverBufferedScript = { + tag: "script", + attrs: { + nonce: router.options.ssr?.nonce, + className: "$tsr", + id: TSR_SCRIPT_BARRIER_ID + }, + children: scripts + }; + return serverBufferedScript; + }, + liftScriptBarrier() { + scriptBuffer.liftBarrier(); + }, + takeBufferedHtml() { + if (!injectedHtmlBuffer) { + return void 0; + } + const buffered = injectedHtmlBuffer; + injectedHtmlBuffer = ""; + return buffered; + }, + cleanup() { + if (!router.serverSsr) return; + renderFinishedListeners.length = 0; + serializationFinishedListeners.length = 0; + injectedHtmlBuffer = ""; + scriptBuffer.cleanup(); + router.serverSsr = void 0; + } + }; +} +function getOrigin(request) { + try { + return new URL(request.url).origin; + } catch { + } + return "http://localhost"; +} +function getNormalizedURL(url, base) { + if (typeof url === "string") url = url.replace("\\", "%5C"); + const rawUrl = new URL(url, base); + const decodedPathname = decodePath(rawUrl.pathname); + const searchParams = new URLSearchParams(rawUrl.search); + const normalizedHref = decodedPathname + (searchParams.size > 0 ? "?" : "") + searchParams.toString() + rawUrl.hash; + return new URL(normalizedHref, rawUrl.origin); +} +function defineHandlerCallback(handler) { + return handler; +} +function transformReadableStreamWithRouter(router, routerStream) { + return transformStreamWithRouter(router, routerStream); +} +function transformPipeableStreamWithRouter(router, routerStream) { + return Readable.fromWeb( + transformStreamWithRouter(router, Readable.toWeb(routerStream)) + ); +} +const BODY_END_TAG = ""; +const HTML_END_TAG = ""; +const MIN_CLOSING_TAG_LENGTH = 4; +const DEFAULT_SERIALIZATION_TIMEOUT_MS = 6e4; +const DEFAULT_LIFETIME_TIMEOUT_MS = 6e4; +const textEncoder = new TextEncoder(); +function findLastClosingTagEnd(str) { + const len = str.length; + if (len < MIN_CLOSING_TAG_LENGTH) return -1; + let i = len - 1; + while (i >= MIN_CLOSING_TAG_LENGTH - 1) { + if (str.charCodeAt(i) === 62) { + let j = i - 1; + while (j >= 1) { + const code = str.charCodeAt(j); + if (code >= 97 && code <= 122 || // a-z + code >= 65 && code <= 90 || // A-Z + code >= 48 && code <= 57 || // 0-9 + code === 95 || // _ + code === 58 || // : + code === 46 || // . + code === 45) { + j--; + } else { + break; + } + } + const tagNameStart = j + 1; + if (tagNameStart < i) { + const startCode = str.charCodeAt(tagNameStart); + if (startCode >= 97 && startCode <= 122 || startCode >= 65 && startCode <= 90) { + if (j >= 1 && str.charCodeAt(j) === 47 && str.charCodeAt(j - 1) === 60) { + return i + 1; + } + } + } + } + i--; + } + return -1; +} +function transformStreamWithRouter(router, appStream, opts) { + const serializationAlreadyFinished = router.serverSsr?.isSerializationFinished() ?? false; + const initialBufferedHtml = router.serverSsr?.takeBufferedHtml(); + if (serializationAlreadyFinished && !initialBufferedHtml) { + let cleanedUp2 = false; + let controller2; + let isStreamClosed2 = false; + let lifetimeTimeoutHandle2; + const cleanup2 = () => { + if (cleanedUp2) return; + cleanedUp2 = true; + if (lifetimeTimeoutHandle2 !== void 0) { + clearTimeout(lifetimeTimeoutHandle2); + lifetimeTimeoutHandle2 = void 0; + } + router.serverSsr?.cleanup(); + }; + const safeClose2 = () => { + if (isStreamClosed2) return; + isStreamClosed2 = true; + try { + controller2?.close(); + } catch { + } + }; + const safeError2 = (error) => { + if (isStreamClosed2) return; + isStreamClosed2 = true; + try { + controller2?.error(error); + } catch { + } + }; + const lifetimeMs2 = DEFAULT_LIFETIME_TIMEOUT_MS; + lifetimeTimeoutHandle2 = setTimeout(() => { + if (!cleanedUp2 && !isStreamClosed2) { + console.warn( + `SSR stream transform exceeded maximum lifetime (${lifetimeMs2}ms), forcing cleanup` + ); + safeError2(new Error("Stream lifetime exceeded")); + cleanup2(); + } + }, lifetimeMs2); + const stream2 = new ReadableStream$1({ + start(c) { + controller2 = c; + }, + cancel() { + isStreamClosed2 = true; + cleanup2(); + } + }); + (async () => { + const reader = appStream.getReader(); + try { + while (true) { + const { done, value } = await reader.read(); + if (done) break; + if (cleanedUp2 || isStreamClosed2) return; + controller2?.enqueue(value); + } + if (cleanedUp2 || isStreamClosed2) return; + router.serverSsr?.setRenderFinished(); + safeClose2(); + cleanup2(); + } catch (error) { + if (cleanedUp2) return; + console.error("Error reading appStream:", error); + router.serverSsr?.setRenderFinished(); + safeError2(error); + cleanup2(); + } finally { + reader.releaseLock(); + } + })().catch((error) => { + if (cleanedUp2) return; + console.error("Error in stream transform:", error); + safeError2(error); + cleanup2(); + }); + return stream2; + } + let stopListeningToInjectedHtml; + let stopListeningToSerializationFinished; + let serializationTimeoutHandle; + let lifetimeTimeoutHandle; + let cleanedUp = false; + let controller; + let isStreamClosed = false; + const textDecoder = new TextDecoder(); + let pendingRouterHtml = initialBufferedHtml ?? ""; + let leftover = ""; + let pendingClosingTags = ""; + const MAX_LEFTOVER_CHARS = 2048; + let isAppRendering = true; + let streamBarrierLifted = false; + let serializationFinished = serializationAlreadyFinished; + function safeEnqueue(chunk) { + if (isStreamClosed) return; + if (typeof chunk === "string") { + controller.enqueue(textEncoder.encode(chunk)); + } else { + controller.enqueue(chunk); + } + } + function safeClose() { + if (isStreamClosed) return; + isStreamClosed = true; + try { + controller.close(); + } catch { + } + } + function safeError(error) { + if (isStreamClosed) return; + isStreamClosed = true; + try { + controller.error(error); + } catch { + } + } + function cleanup() { + if (cleanedUp) return; + cleanedUp = true; + try { + stopListeningToInjectedHtml?.(); + stopListeningToSerializationFinished?.(); + } catch { + } + stopListeningToInjectedHtml = void 0; + stopListeningToSerializationFinished = void 0; + if (serializationTimeoutHandle !== void 0) { + clearTimeout(serializationTimeoutHandle); + serializationTimeoutHandle = void 0; + } + if (lifetimeTimeoutHandle !== void 0) { + clearTimeout(lifetimeTimeoutHandle); + lifetimeTimeoutHandle = void 0; + } + pendingRouterHtml = ""; + leftover = ""; + pendingClosingTags = ""; + router.serverSsr?.cleanup(); + } + const stream = new ReadableStream$1({ + start(c) { + controller = c; + }, + cancel() { + isStreamClosed = true; + cleanup(); + } + }); + function flushPendingRouterHtml() { + if (!pendingRouterHtml) return; + safeEnqueue(pendingRouterHtml); + pendingRouterHtml = ""; + } + function appendRouterHtml(html) { + if (!html) return; + pendingRouterHtml += html; + } + function tryFinish() { + if (isAppRendering || !serializationFinished) return; + if (cleanedUp || isStreamClosed) return; + if (serializationTimeoutHandle !== void 0) { + clearTimeout(serializationTimeoutHandle); + serializationTimeoutHandle = void 0; + } + const decoderRemainder = textDecoder.decode(); + if (leftover) safeEnqueue(leftover); + if (decoderRemainder) safeEnqueue(decoderRemainder); + flushPendingRouterHtml(); + if (pendingClosingTags) safeEnqueue(pendingClosingTags); + safeClose(); + cleanup(); + } + const lifetimeMs = DEFAULT_LIFETIME_TIMEOUT_MS; + lifetimeTimeoutHandle = setTimeout(() => { + if (!cleanedUp && !isStreamClosed) { + console.warn( + `SSR stream transform exceeded maximum lifetime (${lifetimeMs}ms), forcing cleanup` + ); + safeError(new Error("Stream lifetime exceeded")); + cleanup(); + } + }, lifetimeMs); + if (!serializationAlreadyFinished) { + stopListeningToInjectedHtml = router.subscribe("onInjectedHtml", () => { + if (cleanedUp || isStreamClosed) return; + const html = router.serverSsr?.takeBufferedHtml(); + if (!html) return; + if (isAppRendering || leftover || pendingClosingTags) { + appendRouterHtml(html); + } else { + safeEnqueue(html); + } + }); + stopListeningToSerializationFinished = router.subscribe( + "onSerializationFinished", + () => { + serializationFinished = true; + tryFinish(); + } + ); + } + (async () => { + const reader = appStream.getReader(); + try { + while (true) { + const { done, value } = await reader.read(); + if (done) break; + if (cleanedUp || isStreamClosed) return; + const text = value instanceof Uint8Array ? textDecoder.decode(value, { stream: true }) : String(value); + const chunkString = leftover ? leftover + text : text; + if (!streamBarrierLifted) { + if (chunkString.includes(TSR_SCRIPT_BARRIER_ID)) { + streamBarrierLifted = true; + router.serverSsr?.liftScriptBarrier(); + } + } + if (pendingClosingTags) { + pendingClosingTags += chunkString; + leftover = ""; + continue; + } + const bodyEndIndex = chunkString.indexOf(BODY_END_TAG); + const htmlEndIndex = chunkString.indexOf(HTML_END_TAG); + if (bodyEndIndex !== -1 && htmlEndIndex !== -1 && bodyEndIndex < htmlEndIndex) { + pendingClosingTags = chunkString.slice(bodyEndIndex); + safeEnqueue(chunkString.slice(0, bodyEndIndex)); + flushPendingRouterHtml(); + leftover = ""; + continue; + } + const lastClosingTagEnd = findLastClosingTagEnd(chunkString); + if (lastClosingTagEnd > 0) { + safeEnqueue(chunkString.slice(0, lastClosingTagEnd)); + flushPendingRouterHtml(); + leftover = chunkString.slice(lastClosingTagEnd); + if (leftover.length > MAX_LEFTOVER_CHARS) { + safeEnqueue(leftover.slice(0, leftover.length - MAX_LEFTOVER_CHARS)); + leftover = leftover.slice(-MAX_LEFTOVER_CHARS); + } + } else { + const combined = chunkString; + if (combined.length > MAX_LEFTOVER_CHARS) { + const flushUpto = combined.length - MAX_LEFTOVER_CHARS; + safeEnqueue(combined.slice(0, flushUpto)); + leftover = combined.slice(flushUpto); + } else { + leftover = combined; + } + } + } + if (cleanedUp || isStreamClosed) return; + isAppRendering = false; + router.serverSsr?.setRenderFinished(); + if (serializationFinished) { + tryFinish(); + } else { + const timeoutMs = opts?.timeoutMs ?? DEFAULT_SERIALIZATION_TIMEOUT_MS; + serializationTimeoutHandle = setTimeout(() => { + if (!cleanedUp && !isStreamClosed) { + console.error("Serialization timeout after app render finished"); + safeError( + new Error("Serialization timeout after app render finished") + ); + cleanup(); + } + }, timeoutMs); + } + } catch (error) { + if (cleanedUp) return; + console.error("Error reading appStream:", error); + isAppRendering = false; + router.serverSsr?.setRenderFinished(); + safeError(error); + cleanup(); + } finally { + reader.releaseLock(); + } + })().catch((error) => { + if (cleanedUp) return; + console.error("Error in stream transform:", error); + safeError(error); + cleanup(); + }); + return stream; +} +export { + makeSerovalPlugin as A, + BaseRootRoute as B, + defineHandlerCallback as C, + redirect as D, + RouterCore as R, + rootRouteId as a, + isRedirect as b, + transformPipeableStreamWithRouter as c, + defaultGetScrollRestorationKey as d, + escapeHtml as e, + isDangerousProtocol as f, + getLocationChangeInfo as g, + exactPathTest as h, + isNotFound as i, + removeTrailingSlash as j, + deepEqual as k, + functionalUpdate as l, + BaseRoute as m, + isModuleNotFoundError as n, + getNormalizedURL as o, + getOrigin as p, + createSerializationAdapter as q, + restoreScroll as r, + storageKey as s, + transformReadableStreamWithRouter as t, + attachRouterServerSsrUtils as u, + createRawStreamRPCPlugin as v, + isResolvedRedirect as w, + mergeHeaders as x, + executeRewriteInput as y, + defaultSerovalPlugins as z +}; diff --git a/apps/admin/.output/server/_chunks/_libs/@tanstack/store.mjs b/apps/admin/.output/server/_chunks/_libs/@tanstack/store.mjs new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/@tanstack/store.mjs @@ -0,0 +1 @@ + diff --git a/apps/admin/.output/server/_chunks/_libs/asynckit.mjs b/apps/admin/.output/server/_chunks/_libs/asynckit.mjs new file mode 100644 index 00000000..fe4ce605 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/asynckit.mjs @@ -0,0 +1,220 @@ +function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; +} +var defer_1; +var hasRequiredDefer; +function requireDefer() { + if (hasRequiredDefer) return defer_1; + hasRequiredDefer = 1; + defer_1 = defer; + function defer(fn) { + var nextTick = typeof setImmediate == "function" ? setImmediate : typeof process == "object" && typeof process.nextTick == "function" ? process.nextTick : null; + if (nextTick) { + nextTick(fn); + } else { + setTimeout(fn, 0); + } + } + return defer_1; +} +var async_1; +var hasRequiredAsync; +function requireAsync() { + if (hasRequiredAsync) return async_1; + hasRequiredAsync = 1; + var defer = /* @__PURE__ */ requireDefer(); + async_1 = async; + function async(callback) { + var isAsync = false; + defer(function() { + isAsync = true; + }); + return function async_callback(err, result) { + if (isAsync) { + callback(err, result); + } else { + defer(function nextTick_callback() { + callback(err, result); + }); + } + }; + } + return async_1; +} +var abort_1; +var hasRequiredAbort; +function requireAbort() { + if (hasRequiredAbort) return abort_1; + hasRequiredAbort = 1; + abort_1 = abort; + function abort(state) { + Object.keys(state.jobs).forEach(clean.bind(state)); + state.jobs = {}; + } + function clean(key) { + if (typeof this.jobs[key] == "function") { + this.jobs[key](); + } + } + return abort_1; +} +var iterate_1; +var hasRequiredIterate; +function requireIterate() { + if (hasRequiredIterate) return iterate_1; + hasRequiredIterate = 1; + var async = /* @__PURE__ */ requireAsync(), abort = /* @__PURE__ */ requireAbort(); + iterate_1 = iterate; + function iterate(list, iterator, state, callback) { + var key = state["keyedList"] ? state["keyedList"][state.index] : state.index; + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) { + if (!(key in state.jobs)) { + return; + } + delete state.jobs[key]; + if (error) { + abort(state); + } else { + state.results[key] = output; + } + callback(error, state.results); + }); + } + function runJob(iterator, key, item, callback) { + var aborter; + if (iterator.length == 2) { + aborter = iterator(item, async(callback)); + } else { + aborter = iterator(item, key, async(callback)); + } + return aborter; + } + return iterate_1; +} +var state_1; +var hasRequiredState; +function requireState() { + if (hasRequiredState) return state_1; + hasRequiredState = 1; + state_1 = state; + function state(list, sortMethod) { + var isNamedList = !Array.isArray(list), initState = { + index: 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs: {}, + results: isNamedList ? {} : [], + size: isNamedList ? Object.keys(list).length : list.length + }; + if (sortMethod) { + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) { + return sortMethod(list[a], list[b]); + }); + } + return initState; + } + return state_1; +} +var terminator_1; +var hasRequiredTerminator; +function requireTerminator() { + if (hasRequiredTerminator) return terminator_1; + hasRequiredTerminator = 1; + var abort = /* @__PURE__ */ requireAbort(), async = /* @__PURE__ */ requireAsync(); + terminator_1 = terminator; + function terminator(callback) { + if (!Object.keys(this.jobs).length) { + return; + } + this.index = this.size; + abort(this); + async(callback)(null, this.results); + } + return terminator_1; +} +var parallel_1; +var hasRequiredParallel; +function requireParallel() { + if (hasRequiredParallel) return parallel_1; + hasRequiredParallel = 1; + var iterate = /* @__PURE__ */ requireIterate(), initState = /* @__PURE__ */ requireState(), terminator = /* @__PURE__ */ requireTerminator(); + parallel_1 = parallel; + function parallel(list, iterator, callback) { + var state = initState(list); + while (state.index < (state["keyedList"] || list).length) { + iterate(list, iterator, state, function(error, result) { + if (error) { + callback(error, result); + return; + } + if (Object.keys(state.jobs).length === 0) { + callback(null, state.results); + return; + } + }); + state.index++; + } + return terminator.bind(state, callback); + } + return parallel_1; +} +var serialOrdered = { exports: {} }; +var hasRequiredSerialOrdered; +function requireSerialOrdered() { + if (hasRequiredSerialOrdered) return serialOrdered.exports; + hasRequiredSerialOrdered = 1; + var iterate = /* @__PURE__ */ requireIterate(), initState = /* @__PURE__ */ requireState(), terminator = /* @__PURE__ */ requireTerminator(); + serialOrdered.exports = serialOrdered$1; + serialOrdered.exports.ascending = ascending; + serialOrdered.exports.descending = descending; + function serialOrdered$1(list, iterator, sortMethod, callback) { + var state = initState(list, sortMethod); + iterate(list, iterator, state, function iteratorHandler(error, result) { + if (error) { + callback(error, result); + return; + } + state.index++; + if (state.index < (state["keyedList"] || list).length) { + iterate(list, iterator, state, iteratorHandler); + return; + } + callback(null, state.results); + }); + return terminator.bind(state, callback); + } + function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : 0; + } + function descending(a, b) { + return -1 * ascending(a, b); + } + return serialOrdered.exports; +} +var serial_1; +var hasRequiredSerial; +function requireSerial() { + if (hasRequiredSerial) return serial_1; + hasRequiredSerial = 1; + var serialOrdered2 = /* @__PURE__ */ requireSerialOrdered(); + serial_1 = serial; + function serial(list, iterator, callback) { + return serialOrdered2(list, iterator, null, callback); + } + return serial_1; +} +var asynckit; +var hasRequiredAsynckit; +function requireAsynckit() { + if (hasRequiredAsynckit) return asynckit; + hasRequiredAsynckit = 1; + asynckit = { + parallel: /* @__PURE__ */ requireParallel(), + serial: /* @__PURE__ */ requireSerial(), + serialOrdered: /* @__PURE__ */ requireSerialOrdered() + }; + return asynckit; +} +export { + getDefaultExportFromCjs as g, + requireAsynckit as r +}; diff --git a/apps/admin/.output/server/_chunks/_libs/combined-stream.mjs b/apps/admin/.output/server/_chunks/_libs/combined-stream.mjs new file mode 100644 index 00000000..e573dca0 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/combined-stream.mjs @@ -0,0 +1,176 @@ +import require$$1 from "util"; +import stream from "stream"; +import { r as requireDelayed_stream } from "../../_libs/delayed-stream.mjs"; +var combined_stream; +var hasRequiredCombined_stream; +function requireCombined_stream() { + if (hasRequiredCombined_stream) return combined_stream; + hasRequiredCombined_stream = 1; + var util = require$$1; + var Stream = stream.Stream; + var DelayedStream = /* @__PURE__ */ requireDelayed_stream(); + combined_stream = CombinedStream; + function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + this._released = false; + this._streams = []; + this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; + } + util.inherits(CombinedStream, Stream); + CombinedStream.create = function(options) { + var combinedStream = new this(); + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + return combinedStream; + }; + CombinedStream.isStreamLike = function(stream2) { + return typeof stream2 !== "function" && typeof stream2 !== "string" && typeof stream2 !== "boolean" && typeof stream2 !== "number" && !Buffer.isBuffer(stream2); + }; + CombinedStream.prototype.append = function(stream2) { + var isStreamLike = CombinedStream.isStreamLike(stream2); + if (isStreamLike) { + if (!(stream2 instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream2, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams + }); + stream2.on("data", this._checkDataSize.bind(this)); + stream2 = newStream; + } + this._handleErrors(stream2); + if (this.pauseStreams) { + stream2.pause(); + } + } + this._streams.push(stream2); + return this; + }; + CombinedStream.prototype.pipe = function(dest, options) { + Stream.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; + }; + CombinedStream.prototype._getNext = function() { + this._currentStream = null; + if (this._insideLoop) { + this._pendingNext = true; + return; + } + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } + }; + CombinedStream.prototype._realGetNext = function() { + var stream2 = this._streams.shift(); + if (typeof stream2 == "undefined") { + this.end(); + return; + } + if (typeof stream2 !== "function") { + this._pipeNext(stream2); + return; + } + var getStream = stream2; + getStream((function(stream3) { + var isStreamLike = CombinedStream.isStreamLike(stream3); + if (isStreamLike) { + stream3.on("data", this._checkDataSize.bind(this)); + this._handleErrors(stream3); + } + this._pipeNext(stream3); + }).bind(this)); + }; + CombinedStream.prototype._pipeNext = function(stream2) { + this._currentStream = stream2; + var isStreamLike = CombinedStream.isStreamLike(stream2); + if (isStreamLike) { + stream2.on("end", this._getNext.bind(this)); + stream2.pipe(this, { end: false }); + return; + } + var value = stream2; + this.write(value); + this._getNext(); + }; + CombinedStream.prototype._handleErrors = function(stream2) { + var self = this; + stream2.on("error", function(err) { + self._emitError(err); + }); + }; + CombinedStream.prototype.write = function(data) { + this.emit("data", data); + }; + CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + if (this.pauseStreams && this._currentStream && typeof this._currentStream.pause == "function") this._currentStream.pause(); + this.emit("pause"); + }; + CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + if (this.pauseStreams && this._currentStream && typeof this._currentStream.resume == "function") this._currentStream.resume(); + this.emit("resume"); + }; + CombinedStream.prototype.end = function() { + this._reset(); + this.emit("end"); + }; + CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit("close"); + }; + CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; + }; + CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + var message = "DelayedStream#maxDataSize of " + this.maxDataSize + " bytes exceeded."; + this._emitError(new Error(message)); + }; + CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + var self = this; + this._streams.forEach(function(stream2) { + if (!stream2.dataSize) { + return; + } + self.dataSize += stream2.dataSize; + }); + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } + }; + CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit("error", err); + }; + return combined_stream; +} +export { + requireCombined_stream as r +}; diff --git a/apps/admin/.output/server/_chunks/_libs/debug.mjs b/apps/admin/.output/server/_chunks/_libs/debug.mjs new file mode 100644 index 00000000..e77de4d6 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/debug.mjs @@ -0,0 +1,547 @@ +import { r as requireMs } from "../../_libs/ms.mjs"; +import require$$1$1 from "tty"; +import require$$1 from "util"; +import { r as requireSupportsColor } from "./supports-color.mjs"; +var src = { exports: {} }; +var browser = { exports: {} }; +var common; +var hasRequiredCommon; +function requireCommon() { + if (hasRequiredCommon) return common; + hasRequiredCommon = 1; + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = /* @__PURE__ */ requireMs(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self = debug; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self, args); + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean); + for (const ns of split) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; + } + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + common = setup; + return common; +} +var hasRequiredBrowser; +function requireBrowser() { + if (hasRequiredBrowser) return browser.exports; + hasRequiredBrowser = 1; + (function(module, exports$1) { + exports$1.formatArgs = formatArgs; + exports$1.save = save; + exports$1.load = load; + exports$1.useColors = useColors; + exports$1.storage = localstorage(); + exports$1.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports$1.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + exports$1.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports$1.storage.setItem("debug", namespaces); + } else { + exports$1.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports$1.storage.getItem("debug") || exports$1.storage.getItem("DEBUG"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module.exports = /* @__PURE__ */ requireCommon()(exports$1); + const { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + })(browser, browser.exports); + return browser.exports; +} +var node = { exports: {} }; +var hasRequiredNode; +function requireNode() { + if (hasRequiredNode) return node.exports; + hasRequiredNode = 1; + (function(module, exports$1) { + const tty = require$$1$1; + const util = require$$1; + exports$1.init = init; + exports$1.log = log; + exports$1.formatArgs = formatArgs; + exports$1.save = save; + exports$1.load = load; + exports$1.useColors = useColors; + exports$1.destroy = util.deprecate( + () => { + }, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + exports$1.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor = /* @__PURE__ */ requireSupportsColor(); + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports$1.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + } + exports$1.inspectOpts = Object.keys(process.env).filter((key) => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports$1.inspectOpts ? Boolean(exports$1.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + function getDate() { + if (exports$1.inspectOpts.hideDate) { + return ""; + } + return (/* @__PURE__ */ new Date()).toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util.formatWithOptions(exports$1.inspectOpts, ...args) + "\n"); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + function load() { + return process.env.DEBUG; + } + function init(debug) { + debug.inspectOpts = {}; + const keys = Object.keys(exports$1.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports$1.inspectOpts[keys[i]]; + } + } + module.exports = /* @__PURE__ */ requireCommon()(exports$1); + const { formatters } = module.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + })(node, node.exports); + return node.exports; +} +var hasRequiredSrc; +function requireSrc() { + if (hasRequiredSrc) return src.exports; + hasRequiredSrc = 1; + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + src.exports = /* @__PURE__ */ requireBrowser(); + } else { + src.exports = /* @__PURE__ */ requireNode(); + } + return src.exports; +} +export { + requireSrc as r +}; diff --git a/apps/admin/.output/server/_chunks/_libs/follow-redirects.mjs b/apps/admin/.output/server/_chunks/_libs/follow-redirects.mjs new file mode 100644 index 00000000..ad3d9cb8 --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/follow-redirects.mjs @@ -0,0 +1,530 @@ +import { g as getDefaultExportFromCjs } from "./asynckit.mjs"; +import require$$0 from "url"; +import require$$3 from "http"; +import require$$4$1 from "https"; +import stream from "stream"; +import require$$4 from "assert"; +import { r as requireSrc } from "./debug.mjs"; +var followRedirects$1 = { exports: {} }; +var debug_1; +var hasRequiredDebug; +function requireDebug() { + if (hasRequiredDebug) return debug_1; + hasRequiredDebug = 1; + var debug; + debug_1 = function() { + if (!debug) { + try { + debug = /* @__PURE__ */ requireSrc()("follow-redirects"); + } catch (error) { + } + if (typeof debug !== "function") { + debug = function() { + }; + } + } + debug.apply(null, arguments); + }; + return debug_1; +} +var hasRequiredFollowRedirects; +function requireFollowRedirects() { + if (hasRequiredFollowRedirects) return followRedirects$1.exports; + hasRequiredFollowRedirects = 1; + var url = require$$0; + var URL = url.URL; + var http = require$$3; + var https = require$$4$1; + var Writable = stream.Writable; + var assert = require$$4; + var debug = /* @__PURE__ */ requireDebug(); + (function detectUnsupportedEnvironment() { + var looksLikeNode = typeof process !== "undefined"; + var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined"; + var looksLikeV8 = isFunction(Error.captureStackTrace); + if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) { + console.warn("The follow-redirects package should be excluded from browser builds."); + } + })(); + var useNativeURL = false; + try { + assert(new URL("")); + } catch (error) { + useNativeURL = error.code === "ERR_INVALID_URL"; + } + var preservedUrlFields = [ + "auth", + "host", + "hostname", + "href", + "path", + "pathname", + "port", + "protocol", + "query", + "search", + "hash" + ]; + var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; + var eventHandlers = /* @__PURE__ */ Object.create(null); + events.forEach(function(event) { + eventHandlers[event] = function(arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; + }); + var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError + ); + var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" + ); + var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded", + RedirectionError + ); + var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" + ); + var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" + ); + var destroy = Writable.prototype.destroy || noop; + function RedirectableRequest(options, responseCallback) { + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + if (responseCallback) { + this.on("response", responseCallback); + } + var self = this; + this._onNativeResponse = function(response) { + try { + self._processResponse(response); + } catch (cause) { + self.emit("error", cause instanceof RedirectionError ? cause : new RedirectionError({ cause })); + } + }; + this._performRequest(); + } + RedirectableRequest.prototype = Object.create(Writable.prototype); + RedirectableRequest.prototype.abort = function() { + destroyRequest(this._currentRequest); + this._currentRequest.abort(); + this.emit("abort"); + }; + RedirectableRequest.prototype.destroy = function(error) { + destroyRequest(this._currentRequest, error); + destroy.call(this, error); + return this; + }; + RedirectableRequest.prototype.write = function(data, encoding, callback) { + if (this._ending) { + throw new WriteAfterEndError(); + } + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data, encoding }); + this._currentRequest.write(data, encoding, callback); + } else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } + }; + RedirectableRequest.prototype.end = function(data, encoding, callback) { + if (isFunction(data)) { + callback = data; + data = encoding = null; + } else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function() { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } + }; + RedirectableRequest.prototype.setHeader = function(name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); + }; + RedirectableRequest.prototype.removeHeader = function(name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); + }; + RedirectableRequest.prototype.setTimeout = function(msecs, callback) { + var self = this; + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function() { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + function clearTimer() { + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + self.removeListener("close", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + if (callback) { + this.on("timeout", callback); + } + if (this.socket) { + startTimer(this.socket); + } else { + this._currentRequest.once("socket", startTimer); + } + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + this.on("close", clearTimer); + return this; + }; + [ + "flushHeaders", + "getHeader", + "setNoDelay", + "setSocketKeepAlive" + ].forEach(function(method) { + RedirectableRequest.prototype[method] = function(a, b) { + return this._currentRequest[method](a, b); + }; + }); + ["aborted", "connection", "socket"].forEach(function(property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function() { + return this._currentRequest[property]; + } + }); + }); + RedirectableRequest.prototype._sanitizeOptions = function(options) { + if (!options.headers) { + options.headers = {}; + } + if (options.host) { + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } + }; + RedirectableRequest.prototype._performRequest = function() { + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + throw new TypeError("Unsupported protocol " + protocol); + } + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + var request = this._currentRequest = nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + this._currentUrl = /^\//.test(this._options.path) ? url.format(this._options) : ( + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path + ); + if (this._isRedirect) { + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + if (request === self._currentRequest) { + if (error) { + self.emit("error", error); + } else if (i < buffers.length) { + var buffer = buffers[i++]; + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } else if (self._ended) { + request.end(); + } + } + })(); + } + }; + RedirectableRequest.prototype._processResponse = function(response) { + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode + }); + } + var location = response.headers.location; + if (!location || this._options.followRedirects === false || statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + this._requestBodyBuffers = []; + return; + } + destroyRequest(this._currentRequest); + response.destroy(); + if (++this._redirectCount > this._options.maxRedirects) { + throw new TooManyRedirectsError(); + } + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host") + }, this._options.headers); + } + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + var currentUrlParts = parseUrl(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url.format(Object.assign(currentUrlParts, { host: currentHost })); + var redirectUrl = resolveUrl(location, currentUrl); + debug("redirecting to", redirectUrl.href); + this._isRedirect = true; + spreadUrlObject(redirectUrl, this._options); + if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) { + removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers); + } + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode + }; + var requestDetails = { + url: currentUrl, + method, + headers: requestHeaders + }; + beforeRedirect(this._options, responseDetails, requestDetails); + this._sanitizeOptions(this._options); + } + this._performRequest(); + }; + function wrap(protocols) { + var exports$1 = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024 + }; + var nativeProtocols = {}; + Object.keys(protocols).forEach(function(scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports$1[scheme] = Object.create(nativeProtocol); + function request(input, options, callback) { + if (isURL(input)) { + input = spreadUrlObject(input); + } else if (isString(input)) { + input = spreadUrlObject(parseUrl(input)); + } else { + callback = options; + options = validateUrl(input); + input = { protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + options = Object.assign({ + maxRedirects: exports$1.maxRedirects, + maxBodyLength: exports$1.maxBodyLength + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true } + }); + }); + return exports$1; + } + function noop() { + } + function parseUrl(input) { + var parsed; + if (useNativeURL) { + parsed = new URL(input); + } else { + parsed = validateUrl(url.parse(input)); + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + } + return parsed; + } + function resolveUrl(relative, base) { + return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative)); + } + function validateUrl(input) { + if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) { + throw new InvalidUrlError({ input: input.href || input }); + } + if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) { + throw new InvalidUrlError({ input: input.href || input }); + } + return input; + } + function spreadUrlObject(urlObject, target) { + var spread = target || {}; + for (var key of preservedUrlFields) { + spread[key] = urlObject[key]; + } + if (spread.hostname.startsWith("[")) { + spread.hostname = spread.hostname.slice(1, -1); + } + if (spread.port !== "") { + spread.port = Number(spread.port); + } + spread.path = spread.search ? spread.pathname + spread.search : spread.pathname; + return spread; + } + function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return lastValue === null || typeof lastValue === "undefined" ? void 0 : String(lastValue).trim(); + } + function createErrorType(code, message, baseClass) { + function CustomError(properties) { + if (isFunction(Error.captureStackTrace)) { + Error.captureStackTrace(this, this.constructor); + } + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + CustomError.prototype = new (baseClass || Error)(); + Object.defineProperties(CustomError.prototype, { + constructor: { + value: CustomError, + enumerable: false + }, + name: { + value: "Error [" + code + "]", + enumerable: false + } + }); + return CustomError; + } + function destroyRequest(request, error) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.destroy(error); + } + function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); + } + function isString(value) { + return typeof value === "string" || value instanceof String; + } + function isFunction(value) { + return typeof value === "function"; + } + function isBuffer(value) { + return typeof value === "object" && "length" in value; + } + function isURL(value) { + return URL && value instanceof URL; + } + followRedirects$1.exports = wrap({ http, https }); + followRedirects$1.exports.wrap = wrap; + return followRedirects$1.exports; +} +var followRedirectsExports = /* @__PURE__ */ requireFollowRedirects(); +const followRedirects = /* @__PURE__ */ getDefaultExportFromCjs(followRedirectsExports); +export { + followRedirects as f +}; diff --git a/apps/admin/.output/server/_chunks/_libs/form-data.mjs b/apps/admin/.output/server/_chunks/_libs/form-data.mjs new file mode 100644 index 00000000..fc0e373f --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/form-data.mjs @@ -0,0 +1,350 @@ +import { r as requireAsynckit, g as getDefaultExportFromCjs } from "./asynckit.mjs"; +import { r as requireCombined_stream } from "./combined-stream.mjs"; +import require$$1 from "util"; +import require$$1$1 from "path"; +import require$$3 from "http"; +import require$$4 from "https"; +import require$$0 from "url"; +import require$$6 from "fs"; +import stream from "stream"; +import require$$1$2 from "crypto"; +import { r as requireMimeTypes } from "../../_libs/mime-types.mjs"; +import { r as requireEsSetTostringtag } from "../../_libs/es-set-tostringtag.mjs"; +import { r as requireHasown } from "../../_libs/hasown.mjs"; +var populate; +var hasRequiredPopulate; +function requirePopulate() { + if (hasRequiredPopulate) return populate; + hasRequiredPopulate = 1; + populate = function(dst, src) { + Object.keys(src).forEach(function(prop) { + dst[prop] = dst[prop] || src[prop]; + }); + return dst; + }; + return populate; +} +var form_data; +var hasRequiredForm_data; +function requireForm_data() { + if (hasRequiredForm_data) return form_data; + hasRequiredForm_data = 1; + var CombinedStream = /* @__PURE__ */ requireCombined_stream(); + var util = require$$1; + var path = require$$1$1; + var http = require$$3; + var https = require$$4; + var parseUrl = require$$0.parse; + var fs = require$$6; + var Stream = stream.Stream; + var crypto = require$$1$2; + var mime = /* @__PURE__ */ requireMimeTypes(); + var asynckit = /* @__PURE__ */ requireAsynckit(); + var setToStringTag = /* @__PURE__ */ requireEsSetTostringtag(); + var hasOwn = /* @__PURE__ */ requireHasown(); + var populate2 = /* @__PURE__ */ requirePopulate(); + function FormData2(options) { + if (!(this instanceof FormData2)) { + return new FormData2(options); + } + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + CombinedStream.call(this); + options = options || {}; + for (var option in options) { + this[option] = options[option]; + } + } + util.inherits(FormData2, CombinedStream); + FormData2.LINE_BREAK = "\r\n"; + FormData2.DEFAULT_CONTENT_TYPE = "application/octet-stream"; + FormData2.prototype.append = function(field, value, options) { + options = options || {}; + if (typeof options === "string") { + options = { filename: options }; + } + var append = CombinedStream.prototype.append.bind(this); + if (typeof value === "number" || value == null) { + value = String(value); + } + if (Array.isArray(value)) { + this._error(new Error("Arrays are not supported.")); + return; + } + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + append(header); + append(value); + append(footer); + this._trackLength(header, value, options); + }; + FormData2.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + if (options.knownLength != null) { + valueLength += Number(options.knownLength); + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === "string") { + valueLength = Buffer.byteLength(value); + } + this._valueLength += valueLength; + this._overheadLength += Buffer.byteLength(header) + FormData2.LINE_BREAK.length; + if (!value || !value.path && !(value.readable && hasOwn(value, "httpVersion")) && !(value instanceof Stream)) { + return; + } + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } + }; + FormData2.prototype._lengthRetriever = function(value, callback) { + if (hasOwn(value, "fd")) { + if (value.end != void 0 && value.end != Infinity && value.start != void 0) { + callback(null, value.end + 1 - (value.start ? value.start : 0)); + } else { + fs.stat(value.path, function(err, stat) { + if (err) { + callback(err); + return; + } + var fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + } else if (hasOwn(value, "httpVersion")) { + callback(null, Number(value.headers["content-length"])); + } else if (hasOwn(value, "httpModule")) { + value.on("response", function(response) { + value.pause(); + callback(null, Number(response.headers["content-length"])); + }); + value.resume(); + } else { + callback("Unknown stream"); + } + }; + FormData2.prototype._multiPartHeader = function(field, value, options) { + if (typeof options.header === "string") { + return options.header; + } + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + var contents = ""; + var headers = { + // add custom disposition as third element or keep it two elements if not + "Content-Disposition": ["form-data", 'name="' + field + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + "Content-Type": [].concat(contentType || []) + }; + if (typeof options.header === "object") { + populate2(headers, options.header); + } + var header; + for (var prop in headers) { + if (hasOwn(headers, prop)) { + header = headers[prop]; + if (header == null) { + continue; + } + if (!Array.isArray(header)) { + header = [header]; + } + if (header.length) { + contents += prop + ": " + header.join("; ") + FormData2.LINE_BREAK; + } + } + } + return "--" + this.getBoundary() + FormData2.LINE_BREAK + contents + FormData2.LINE_BREAK; + }; + FormData2.prototype._getContentDisposition = function(value, options) { + var filename; + if (typeof options.filepath === "string") { + filename = path.normalize(options.filepath).replace(/\\/g, "/"); + } else if (options.filename || value && (value.name || value.path)) { + filename = path.basename(options.filename || value && (value.name || value.path)); + } else if (value && value.readable && hasOwn(value, "httpVersion")) { + filename = path.basename(value.client._httpMessage.path || ""); + } + if (filename) { + return 'filename="' + filename + '"'; + } + }; + FormData2.prototype._getContentType = function(value, options) { + var contentType = options.contentType; + if (!contentType && value && value.name) { + contentType = mime.lookup(value.name); + } + if (!contentType && value && value.path) { + contentType = mime.lookup(value.path); + } + if (!contentType && value && value.readable && hasOwn(value, "httpVersion")) { + contentType = value.headers["content-type"]; + } + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + if (!contentType && value && typeof value === "object") { + contentType = FormData2.DEFAULT_CONTENT_TYPE; + } + return contentType; + }; + FormData2.prototype._multiPartFooter = function() { + return (function(next) { + var footer = FormData2.LINE_BREAK; + var lastPart = this._streams.length === 0; + if (lastPart) { + footer += this._lastBoundary(); + } + next(footer); + }).bind(this); + }; + FormData2.prototype._lastBoundary = function() { + return "--" + this.getBoundary() + "--" + FormData2.LINE_BREAK; + }; + FormData2.prototype.getHeaders = function(userHeaders) { + var header; + var formHeaders = { + "content-type": "multipart/form-data; boundary=" + this.getBoundary() + }; + for (header in userHeaders) { + if (hasOwn(userHeaders, header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + return formHeaders; + }; + FormData2.prototype.setBoundary = function(boundary) { + if (typeof boundary !== "string") { + throw new TypeError("FormData boundary must be a string"); + } + this._boundary = boundary; + }; + FormData2.prototype.getBoundary = function() { + if (!this._boundary) { + this._generateBoundary(); + } + return this._boundary; + }; + FormData2.prototype.getBuffer = function() { + var dataBuffer = new Buffer.alloc(0); + var boundary = this.getBoundary(); + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== "function") { + if (Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]); + } else { + dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]); + } + if (typeof this._streams[i] !== "string" || this._streams[i].substring(2, boundary.length + 2) !== boundary) { + dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData2.LINE_BREAK)]); + } + } + } + return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]); + }; + FormData2.prototype._generateBoundary = function() { + this._boundary = "--------------------------" + crypto.randomBytes(12).toString("hex"); + }; + FormData2.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + if (!this.hasKnownLength()) { + this._error(new Error("Cannot calculate proper length in synchronous way.")); + } + return knownLength; + }; + FormData2.prototype.hasKnownLength = function() { + var hasKnownLength = true; + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + return hasKnownLength; + }; + FormData2.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) { + if (err) { + cb(err); + return; + } + values.forEach(function(length) { + knownLength += length; + }); + cb(null, knownLength); + }); + }; + FormData2.prototype.submit = function(params, cb) { + var request; + var options; + var defaults = { method: "post" }; + if (typeof params === "string") { + params = parseUrl(params); + options = populate2({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + } else { + options = populate2(params, defaults); + if (!options.port) { + options.port = options.protocol === "https:" ? 443 : 80; + } + } + options.headers = this.getHeaders(params.headers); + if (options.protocol === "https:") { + request = https.request(options); + } else { + request = http.request(options); + } + this.getLength((function(err, length) { + if (err && err !== "Unknown stream") { + this._error(err); + return; + } + if (length) { + request.setHeader("Content-Length", length); + } + this.pipe(request); + if (cb) { + var onResponse; + var callback = function(error, responce) { + request.removeListener("error", callback); + request.removeListener("response", onResponse); + return cb.call(this, error, responce); + }; + onResponse = callback.bind(this, null); + request.on("error", callback); + request.on("response", onResponse); + } + }).bind(this)); + return request; + }; + FormData2.prototype._error = function(err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit("error", err); + } + }; + FormData2.prototype.toString = function() { + return "[object FormData]"; + }; + setToStringTag(FormData2.prototype, "FormData"); + form_data = FormData2; + return form_data; +} +var form_dataExports = /* @__PURE__ */ requireForm_data(); +const FormData = /* @__PURE__ */ getDefaultExportFromCjs(form_dataExports); +export { + FormData as F +}; diff --git a/apps/admin/.output/server/_chunks/_libs/react-dom.mjs b/apps/admin/.output/server/_chunks/_libs/react-dom.mjs new file mode 100644 index 00000000..77aac42f --- /dev/null +++ b/apps/admin/.output/server/_chunks/_libs/react-dom.mjs @@ -0,0 +1,10781 @@ +import { g as getDefaultExportFromCjs } from "./asynckit.mjs"; +import { b as requireReact } from "../../_libs/react.mjs"; +import require$$1 from "util"; +import require$$1$1 from "crypto"; +import require$$2 from "async_hooks"; +import stream from "stream"; +var server_node = {}; +var reactDomServerLegacy_node_production = {}; +var reactDom = { exports: {} }; +var reactDom_production = {}; +var hasRequiredReactDom_production; +function requireReactDom_production() { + if (hasRequiredReactDom_production) return reactDom_production; + hasRequiredReactDom_production = 1; + var React = /* @__PURE__ */ requireReact(); + function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + } + function noop() { + } + var Internals = { + d: { + f: noop, + r: function() { + throw Error(formatProdErrorMessage(522)); + }, + D: noop, + C: noop, + L: noop, + m: noop, + X: noop, + S: noop, + M: noop + }, + p: 0, + findDOMNode: null + }, REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"); + function createPortal$1(children, containerInfo, implementation) { + var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children, + containerInfo, + implementation + }; + } + var ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + function getCrossOriginStringAs(as, input) { + if ("font" === as) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; + } + reactDom_production.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals; + reactDom_production.createPortal = function(children, container) { + var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType) + throw Error(formatProdErrorMessage(299)); + return createPortal$1(children, container, null, key); + }; + reactDom_production.flushSync = function(fn) { + var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p; + try { + if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn(); + } finally { + ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f(); + } + }; + reactDom_production.preconnect = function(href, options) { + "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options)); + }; + reactDom_production.prefetchDNS = function(href) { + "string" === typeof href && Internals.d.D(href); + }; + reactDom_production.preinit = function(href, options) { + if ("string" === typeof href && options && "string" === typeof options.as) { + var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0; + "style" === as ? Internals.d.S( + href, + "string" === typeof options.precedence ? options.precedence : void 0, + { + crossOrigin, + integrity, + fetchPriority + } + ) : "script" === as && Internals.d.X(href, { + crossOrigin, + integrity, + fetchPriority, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + }; + reactDom_production.preinitModule = function(href, options) { + if ("string" === typeof href) + if ("object" === typeof options && null !== options) { + if (null == options.as || "script" === options.as) { + var crossOrigin = getCrossOriginStringAs( + options.as, + options.crossOrigin + ); + Internals.d.M(href, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + } else null == options && Internals.d.M(href); + }; + reactDom_production.preload = function(href, options) { + if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) { + var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin); + Internals.d.L(href, as, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0, + type: "string" === typeof options.type ? options.type : void 0, + fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0, + referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0, + imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0, + imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0, + media: "string" === typeof options.media ? options.media : void 0 + }); + } + }; + reactDom_production.preloadModule = function(href, options) { + if ("string" === typeof href) + if (options) { + var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin); + Internals.d.m(href, { + as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0, + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0 + }); + } else Internals.d.m(href); + }; + reactDom_production.requestFormReset = function(form) { + Internals.d.r(form); + }; + reactDom_production.unstable_batchedUpdates = function(fn, a) { + return fn(a); + }; + reactDom_production.useFormState = function(action, initialState, permalink) { + return ReactSharedInternals.H.useFormState(action, initialState, permalink); + }; + reactDom_production.useFormStatus = function() { + return ReactSharedInternals.H.useHostTransitionStatus(); + }; + reactDom_production.version = "19.2.4"; + return reactDom_production; +} +var hasRequiredReactDom; +function requireReactDom() { + if (hasRequiredReactDom) return reactDom.exports; + hasRequiredReactDom = 1; + function checkDCE() { + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") { + return; + } + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); + } catch (err) { + console.error(err); + } + } + { + checkDCE(); + reactDom.exports = /* @__PURE__ */ requireReactDom_production(); + } + return reactDom.exports; +} +var hasRequiredReactDomServerLegacy_node_production; +function requireReactDomServerLegacy_node_production() { + if (hasRequiredReactDomServerLegacy_node_production) return reactDomServerLegacy_node_production; + hasRequiredReactDomServerLegacy_node_production = 1; + var React = /* @__PURE__ */ requireReact(), ReactDOM2 = /* @__PURE__ */ requireReactDom(), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"), REACT_SCOPE_TYPE = /* @__PURE__ */ Symbol.for("react.scope"), REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity"), REACT_LEGACY_HIDDEN_TYPE = /* @__PURE__ */ Symbol.for("react.legacy_hidden"), REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel"), REACT_VIEW_TRANSITION_TYPE = /* @__PURE__ */ Symbol.for("react.view_transition"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + var isArrayImpl = Array.isArray; + function murmurhash3_32_gc(key, seed) { + var remainder = key.length & 3; + var bytes = key.length - remainder; + var h1 = seed; + for (seed = 0; seed < bytes; ) { + var k1 = key.charCodeAt(seed) & 255 | (key.charCodeAt(++seed) & 255) << 8 | (key.charCodeAt(++seed) & 255) << 16 | (key.charCodeAt(++seed) & 255) << 24; + ++seed; + k1 = 3432918353 * (k1 & 65535) + ((3432918353 * (k1 >>> 16) & 65535) << 16) & 4294967295; + k1 = k1 << 15 | k1 >>> 17; + k1 = 461845907 * (k1 & 65535) + ((461845907 * (k1 >>> 16) & 65535) << 16) & 4294967295; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = 5 * (h1 & 65535) + ((5 * (h1 >>> 16) & 65535) << 16) & 4294967295; + h1 = (h1 & 65535) + 27492 + (((h1 >>> 16) + 58964 & 65535) << 16); + } + k1 = 0; + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(seed + 2) & 255) << 16; + case 2: + k1 ^= (key.charCodeAt(seed + 1) & 255) << 8; + case 1: + k1 ^= key.charCodeAt(seed) & 255, k1 = 3432918353 * (k1 & 65535) + ((3432918353 * (k1 >>> 16) & 65535) << 16) & 4294967295, k1 = k1 << 15 | k1 >>> 17, h1 ^= 461845907 * (k1 & 65535) + ((461845907 * (k1 >>> 16) & 65535) << 16) & 4294967295; + } + h1 ^= key.length; + h1 ^= h1 >>> 16; + h1 = 2246822507 * (h1 & 65535) + ((2246822507 * (h1 >>> 16) & 65535) << 16) & 4294967295; + h1 ^= h1 >>> 13; + h1 = 3266489909 * (h1 & 65535) + ((3266489909 * (h1 >>> 16) & 65535) << 16) & 4294967295; + return (h1 ^ h1 >>> 16) >>> 0; + } + var assign = Object.assign, hasOwnProperty = Object.prototype.hasOwnProperty, VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), illegalAttributeNameCache = {}, validatedAttributeNameCache = {}; + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return true; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return false; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return validatedAttributeNameCache[attributeName] = true; + illegalAttributeNameCache[attributeName] = true; + return false; + } + var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), aliases = /* @__PURE__ */ new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), matchHtmlRegExp = /["'&<>]/; + function escapeTextForBrowser(text) { + if ("boolean" === typeof text || "number" === typeof text || "bigint" === typeof text) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", index, lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; + } + var uppercasePattern = /([A-Z])/g, msPattern = /^ms-/, isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; + function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" : url; + } + var ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactDOMSharedInternals = ReactDOM2.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, sharedNotPendingObject = { + pending: false, + data: null, + method: null, + action: null + }, previousDispatcher = ReactDOMSharedInternals.d; + ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript + }; + var PRELOAD_NO_CREDS = [], currentlyFlushingRenderState = null, scriptRegex = /(<\/|<)(s)(cript)/gi; + function scriptReplacer(match, prefix2, s, suffix2) { + return "" + prefix2 + ("s" === s ? "\\u0073" : "\\u0053") + suffix2; + } + function createResumableState(identifierPrefix, externalRuntimeConfig, bootstrapScriptContent, bootstrapScripts, bootstrapModules) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules, + instructions: 0, + hasBody: false, + hasHtml: false, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; + } + function createFormatContext(insertionMode, selectedValue, tagScope, viewTransition) { + return { + insertionMode, + selectedValue, + tagScope, + viewTransition + }; + } + function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode ? createFormatContext(2, null, subtreeScope, null) : parentContext.tagScope !== subtreeScope ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) : parentContext; + } + function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition ? null : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; + } + function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); + } + function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && "none" !== resumableState.share && (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); + } + var styleNameCache = /* @__PURE__ */ new Map(); + function pushStyleAttribute(target, style) { + if ("object" !== typeof style) + throw Error( + "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX." + ); + var isFirst = true, styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if (null != styleValue && "boolean" !== typeof styleValue && "" !== styleValue) { + if (0 === styleName.indexOf("--")) { + var nameChunk = escapeTextForBrowser(styleName); + styleValue = escapeTextForBrowser(("" + styleValue).trim()); + } else + nameChunk = styleNameCache.get(styleName), void 0 === nameChunk && (nameChunk = escapeTextForBrowser( + styleName.replace(uppercasePattern, "-$1").toLowerCase().replace(msPattern, "-ms-") + ), styleNameCache.set(styleName, nameChunk)), styleValue = "number" === typeof styleValue ? 0 === styleValue || unitlessNumbers.has(styleName) ? "" + styleValue : styleValue + "px" : escapeTextForBrowser(("" + styleValue).trim()); + isFirst ? (isFirst = false, target.push(' style="', nameChunk, ":", styleValue)) : target.push(";", nameChunk, ":", styleValue); + } + } + isFirst || target.push('"'); + } + function pushBooleanAttribute(target, name, value) { + value && "function" !== typeof value && "symbol" !== typeof value && target.push(" ", name, '=""'); + } + function pushStringAttribute(target, name, value) { + "function" !== typeof value && "symbol" !== typeof value && "boolean" !== typeof value && target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + } + var actionJavaScriptURL = escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" + ); + function pushAdditionalFormField(value, key) { + this.push('"); + } + function validateAdditionalFormField(value) { + if ("string" !== typeof value) + throw Error( + "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration." + ); + } + function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; + } + function pushFormActionAttribute(target, resumableState, renderState, formAction, formEncType, formMethod, formTarget, name) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields ? (name = customFields.name, formAction = customFields.action || "", formEncType = customFields.encType, formMethod = customFields.method, formTarget = customFields.target, formData = customFields.data) : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'), formTarget = formMethod = formEncType = formAction = name = null, injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; + } + function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if (null == value || "function" === typeof value || "symbol" === typeof value || "boolean" === typeof value) + break; + value = sanitizeURL("" + value); + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ("function" === typeof value || "symbol" === typeof value || "boolean" === typeof value) + break; + value = sanitizeURL("" + value); + target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"'); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && "symbol" !== typeof value && target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && "function" !== typeof value && "symbol" !== typeof value && target.push(" ", name, '=""'); + break; + case "capture": + case "download": + true === value ? target.push(" ", name, '=""') : false !== value && "function" !== typeof value && "symbol" !== typeof value && target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && "symbol" !== typeof value && !isNaN(value) && 1 <= value && target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "rowSpan": + case "start": + "function" === typeof value || "symbol" === typeof value || isNaN(value) || target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if (!(2 < name.length) || "o" !== name[0] && "O" !== name[0] || "n" !== name[1] && "N" !== name[1]) { + if (name = aliases.get(name) || name, isAttributeNameSafe(name)) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + } + } + } + } + function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + innerHTML = innerHTML.__html; + null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML); + } + } + function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function(child) { + null != child && (content += child); + }); + return content; + } + function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length ? (bootstrapChunks.push(renderState.startInlineScript), pushCompletedShellIdAttribute(bootstrapChunks, resumableState), bootstrapChunks.push( + ">", + `addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error('React form unexpectedly submitted.')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`, + "<\/script>" + )) : bootstrapChunks.unshift( + renderState.startInlineScript, + ">", + `addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error('React form unexpectedly submitted.')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`, + "<\/script>" + ); + } + } + function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; + } + var styleRegex = /(<\/|<)(s)(tyle)/gi; + function styleReplacer(match, prefix2, s, suffix2) { + return "" + prefix2 + ("s" === s ? "\\73 " : "\\53 ") + suffix2; + } + function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + tag + " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; + } + function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, innerHTML = null, propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + props = Array.isArray(children) ? 2 > children.length ? children[0] : null : children; + "function" !== typeof props && "symbol" !== typeof props && null !== props && void 0 !== props && target.push(escapeTextForBrowser("" + props)); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; + } + function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, innerHTML = null, propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && target.push(("" + children).replace(scriptRegex, scriptReplacer)); + target.push(endChunkForTag("script")); + return null; + } + function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = tag = null, propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return tag; + } + function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = tag = null, propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag ? (target.push(escapeTextForBrowser(tag)), null) : tag; + } + var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, validatedTagCache = /* @__PURE__ */ new Map(); + function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag); + tagStartChunk = "<" + tag; + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; + } + function pushStartInstance(target$jscomp$0, type, props, resumableState, renderState, preambleState, hoistableState, formatContext, textEmbedded) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, innerHTML = null, propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue ? pushStringAttribute(target$jscomp$0, "href", "") : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(escapeTextForBrowser(children)); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, innerHTML$jscomp$0 = null, propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, value = null, selected = null, innerHTML$jscomp$1 = null, propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = null !== value ? "" + value : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(' selected=""'); + break; + } + } + else + "" + selectedValue === stringValue && target$jscomp$0.push(' selected=""'); + } else selected && target$jscomp$0.push(' selected=""'); + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, defaultValue = null, children$jscomp$2 = null, propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error( + "`dangerouslySetInnerHTML` does not make sense on