1import{A as O,a as Q,b as B,c as ce,d as de,e as me,f as fe,g as P,h as he,i as pe,j as Re,k as z,l as L,n as Z,o as ye,p as ge,q as F,r as q,s as we,t as ee,u as Ee,v as _e,w as xe,x as ve,z as Se}from"/build/_shared/chunk-O36BWQFS.js";import{b as A}from"/build/_shared/chunk-ZRCR2KKS.js";import{e as N}from"/build/_shared/chunk-ADMCF34Z.js";var k=N(A());O();function y(){return y=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},y.apply(this,arguments)}var s=N(A());O();var f=N(A());O();var J=class extends f.default.Component{constructor(r){super(r),this.state={error:r.error||null,location:r.location}}static getDerivedStateFromError(r){return{error:r}}static getDerivedStateFromProps(r,t){return t.location!==r.location?{error:r.error||null,location:r.location}:{error:r.error||t.error,location:t.location}}render(){return this.state.error?f.default.createElement(this.props.component,{error:this.state.error}):this.props.children}};function T({error:e}){return f.default.useEffect(()=>{console.error(e)},[e]),f.default.createElement("html",{lang:"en"},f.default.createElement("head",null,f.default.createElement("meta",{charSet:"utf-8"}),f.default.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"}),f.default.createElement("title",null,"Application Error!")),f.default.createElement("body",null,f.default.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},f.default.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),e.stack?f.default.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},e.stack):null),f.default.createElement("script",{dangerouslySetInnerHTML:{__html:` 2 console.log( 3 "\u{1F4BF} Hey developer\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information." 4 ); 5 `}})))}function be(){let e=F();if(P(e))return f.default.createElement(Le,{caught:e});if(e instanceof Error)return f.default.createElement(T,{error:e});{let r=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);return f.default.createElement(T,{error:new Error(r)})}}var Me=f.default.createContext(void 0);function Ce(){return(0,f.useContext)(Me)}function ke({catch:e,component:r,children:t}){return e?f.default.createElement(Me.Provider,{value:e},f.default.createElement(r,null)):f.default.createElement(f.default.Fragment,null,t)}function De(){let e=Ce();return f.default.createElement(Le,{caught:e})}function Le({caught:e}){return f.default.createElement("html",{lang:"en"},f.default.createElement("head",null,f.default.createElement("meta",{charSet:"utf-8"}),f.default.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"}),f.default.createElement("title",null,"Unhandled Thrown Response!")),f.default.createElement("body",null,f.default.createElement("h1",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},e.status," ",e.statusText),f.default.createElement("script",{dangerouslySetInnerHTML:{__html:` 6 console.log( 7 "\u{1F4BF} Hey developer\u{1F44B}. You can provide a way better UX than this when your app throws 404s (and other responses). Check out https://remix.run/guides/not-found for more information." 8 ); 9 `}})))}function S(e,r){if(e===!1||e===null||typeof e>"u")throw new Error(r)}O();async function X(e,r){if(e.id in r)return r[e.id];try{let t=await import(e.module);return r[e.id]=t,t}catch{return window.location.reload(),new Promise(()=>{})}}function Oe(e,r,t){let o=e.map(a=>{var i;let l=r[a.route.id];return((i=l.links)===null||i===void 0?void 0:i.call(l))||[]}).flat(1),n=at(e,t);return st(o,n)}async function Te(e){if(!e.links)return;let r=e.links();if(!r)return;let t=[];for(let n of r)!W(n)&&n.rel==="stylesheet"&&t.push({...n,rel:"preload",as:"style"});let o=t.filter(n=>(!n.media||window.matchMedia(n.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${n.href}"]`));await Promise.all(o.map(ot))}async function ot(e){return new Promise(r=>{let t=document.createElement("link");Object.assign(t,e);function o(){document.head.contains(t)&&document.head.removeChild(t)}t.onload=()=>{o(),r()},t.onerror=()=>{o(),r()},document.head.appendChild(t)})}function W(e){return e!=null&&typeof e.page=="string"}function it(e){return e==null?!1:e.href==null?e.rel==="preload"&&(typeof e.imageSrcSet=="string"||typeof e.imagesrcset=="string")&&(typeof e.imageSizes=="string"||typeof e.imagesizes=="string"):typeof e.rel=="string"&&typeof e.href=="string"}async function $e(e,r,t){return(await Promise.all(e.map(async n=>{let a=await X(r.routes[n.route.id],t);return a.links?a.links():[]}))).flat(1).filter(it).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="preload"?{...n,rel:"prefetch"}:{...n,rel:"prefetch",as:"style"})}function te(e,r,t,o,n,a){let i=Pe(e),l=(m,d)=>
9t[d]?m.route.id!==t[d].route.id:!0,c=(m,d)=>{var h;return t[d].pathname!==m.pathname||((h=t[d].route.path)===null||h===void 0?void 0:h.endsWith("*"))&&t[d].params["*"]!==m.params["*"]};return a==="data"&&n.search!==i.search?r.filter((m,d)=>{if(!o.routes[m.route.id].hasLoader)return!1;if(l(m,d)||c(m,d))return!0;if(m.route.shouldRevalidate){var g;let p=m.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:((g=t[0])===null||g===void 0?void 0:g.params)||{},nextUrl:new URL(e,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof p=="boolean")return p}return!0}):r.filter((m,d)=>{let h=o.routes[m.route.id];return(a==="assets"||h.hasLoader)&&(l(m,d)||c(m,d))})}function Ne(e,r,t){let o=Pe(e);return re(r.filter(n=>t.routes[n.route.id].hasLoader).map(n=>{let{pathname:a,search:i}=o,l=new URLSearchParams(i);return l.set("_data",n.route.id),`${a}?${l}`}))}function Ae(e,r){return re(e.map(t=>{let o=r.routes[t.route.id],n=[o.module];return o.imports&&(n=n.concat(o.imports)),n}).flat(1))}function at(e,r){return re(e.map(t=>{let o=r.routes[t.route.id],n=[o.module];return o.imports&&(n=n.concat(o.imports)),n}).flat(1))}function re(e){return[...new Set(e)]}function st(e,r){let t=new Set,o=new Set(r);return e.reduce((n,a)=>{if(!W(a)&&a.as==="script"&&a.href&&o.has(a.href))return n;let l=JSON.stringify(a);return t.has(l)||(t.add(l),n.push(a)),n},[])}function Pe(e){let r=Q(e);return r.search===void 0&&(r.search=""),r}var lt={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ut=/[&><\u2028\u2029]/g;function H(e){return e.replace(ut,r=>lt[r])}function ne(e){return{__html:e}}function He(){let e=s.useContext(pe);return S(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function I(){let e=s.useContext(Re);return S(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var j=s.createContext(void 0);j.displayName="Remix";function b(){let e=s.useContext(j);return S(e,"You must render this element inside a <Remix> element"),e}function Ue({id:e}){let{routeModules:r,future:t}=b();S(r,`Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules. 10Check this link for more details: 11https://remix.run/pages/gotchas#server-code-in-client-bundles`);let{default:o,ErrorBoundary:n,CatchBoundary:a}=r[e];return!o&&(n||!t.v2_errorBoundary&&a)&&(o=ee),S(o,`Route "${e}" has no component! Please go add a \`default\` export in the route module file. 12If you were trying to navigate or submit to a resource route, use \`<a>\` instead of \`<Link>\` or \`<Form reloadDocument>\`.`),s.createElement(o,null)}function Ie({id:e}){let{future:r,routeModules:t}=b();S(t,`Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules. 13Check this link for more details: 14https://remix.run/pages/gotchas#server-code-in-client-bundles`);let o=F(),{CatchBoundary:n,ErrorBoundary:a}=t[e];if(r.v2_errorBoundary){if(e==="root"&&(a||(a=be)),a)return s.createElement(a,null);throw o}if(e==="root"&&(n||(n=De),a||(a=T)),P(o)){let i=o;if(i!=null&&i.error&&i.status!==404&&a)return s.createElement(a,{error:i.error});if(n)return s.createElement(ke,{catch:o,component:n})}if(o instanceof Error&&a)return s.createElement(a,{error:o});throw o}function je(e,r){let[t,o]=s.useState(!1),[n,a]=s.useState(!1),{onFocus:i,onBlur:l,onMouseEnter:c,onMouseLeave:u,onTouchStart:m}=r,d=s.useRef(null);s.useEffect(()=>{if(e==="render"&&a(!0),e==="viewport"){let p=D=>{D.forEach(Y=>{a(Y.isIntersecting)})},x=new IntersectionObserver(p,{threshold:.5});return d.current&&x.observe(d.current),()=>{x.disconnect()}}},[e]);let h=()=>{e==="intent"&&o(!0)},g=()=>{e==="intent"&&(o(!1),a(!1))};return s.useEffect(()=>{if(t){let p=setTimeout(()=>{a(!0)},100);return()=>{clearTimeout(p)}}},[t]),[n,d,{onFocus:U(i,h),onBlur:U(l,g),onMouseEnter:U(c,h),onMouseLeave:U(u,g),onTouchStart:U(m,h)}]}var Be=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ze=s.forwardRef(({to:e,prefetch:r="none",...t},o)=>{let n=typeof e=="string"&&Be.test(e),a=z(e),[i,l,c]=je(r,t);return s.createElement(s.Fragment,null,s.createElement(ve,y({},t,c,{ref:We(o,l),to:e})),i&&!n?s.createElement(V,{page:a}):null)});ze.displayName="NavLink";var Je=s.forwardRef(({to:e,prefetch:r="none",...t},o)=>{let n=typeof e=="string"&&Be.test(e),a=z(e),[i,l,c]=je(r,t);return s.createElement(s.Fragment,null,s.createElement(xe,y({},t,c,{ref:We(o,l),to:e})),i&&!n?s.createElement(V,{page:a}):null)});Je.displayName="Link";function U(e,r){return t=>{e&&e(t),t.defaultPrevented||r(t)}}var ct="\u26A0\uFE0F REMIX FUTURE CHANGE: The behavior of links `imagesizes` and `imagesrcset` will be changing in v2. Only the React camel case versions will be valid. Please change to `imageSizes` and `imageSrcSet`. For instructions on making this change see https://remix.run/docs/en/v1.15.0/pages/v2#links-imagesizes-and-imagesrcset";function dt(){let{manifest:e,routeModules:r}=b(),{errors:t,matches:o}=I(),n=t?o.slice(0,o.findIndex(i=>t[i.route.id])+1):o,a=s.useMemo(()=>Oe(n,r,e),[n,r,e]);return s.useEffect(()=>{a.some(i=>"imagesizes"in i||"imagesrcset"in i)&&void 0},[a]),s.createElement(s.Fragment,null,a.map(i=>{if(W(i))return s.createElement(V,y({key:i.page},i));let l=null;return"useId"in s?(i.imagesrcset&&(i.imageSrcSet=l=i.imagesrcset,delete i.imagesrcset),i.imagesizes&&(i.imageSizes=i.imagesizes,delete i.imagesizes)
14):(i.imageSrcSet&&(i.imagesrcset=l=i.imageSrcSet,delete i.imageSrcSet),i.imageSizes&&(i.imagesizes=i.imageSizes,delete i.imageSizes)),s.createElement("link",y({key:i.rel+(i.href||"")+(l||"")},i))}))}function V({page:e,...r}){let{router:t}=He(),o=s.useMemo(()=>B(t.routes,e),[t.routes,e]);return o?s.createElement(ft,y({page:e,matches:o},r)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function mt(e){let{manifest:r,routeModules:t}=b(),[o,n]=s.useState([]);return s.useEffect(()=>{let a=!1;return $e(e,r,t).then(i=>{a||n(i)}),()=>{a=!0}},[e,r,t]),o}function ft({page:e,matches:r,...t}){let o=L(),{manifest:n}=b(),{matches:a}=I(),i=s.useMemo(()=>te(e,r,a,n,o,"data"),[e,r,a,n,o]),l=s.useMemo(()=>te(e,r,a,n,o,"assets"),[e,r,a,n,o]),c=s.useMemo(()=>Ne(e,i,n),[i,e,n]),u=s.useMemo(()=>Ae(l,n),[l,n]),m=mt(l);return s.createElement(s.Fragment,null,c.map(d=>s.createElement("link",y({key:d,rel:"prefetch",as:"fetch",href:d},t))),u.map(d=>s.createElement("link",y({key:d,rel:"modulepreload",href:d},t))),m.map(d=>s.createElement("link",y({key:d.href},d))))}function ht(){let{routeModules:e}=b(),{errors:r,matches:t,loaderData:o}=I(),n=L(),a=r?t.slice(0,t.findIndex(c=>r[c.route.id])+1):t,i={},l={};for(let c of a){let u=c.route.id,m=o[u],d=c.params,h=e[u];if(h.meta){let g=typeof h.meta=="function"?h.meta({data:m,parentsData:l,params:d,location:n}):h.meta;if(g&&Array.isArray(g))throw new Error("The route at "+c.route.path+" returns an array. This is only supported with the `v2_meta` future flag in the Remix config. Either set the flag to `true` or update the route's meta function to return an object.\n\nTo reference the v1 meta function API, see https://remix.run/route/meta");Object.assign(i,g)}l[u]=m}return s.createElement(s.Fragment,null,Object.entries(i).map(([c,u])=>{if(!u)return null;if(["charset","charSet"].includes(c))return s.createElement("meta",{key:"charSet",charSet:u});if(c==="title")return s.createElement("title",{key:"title"},String(u));let m=/^(og|music|video|article|book|profile|fb):.+$/.test(c);return[u].flat().map(d=>m?s.createElement("meta",{property:c,content:d,key:c+d}):typeof d=="string"?s.createElement("meta",{name:c,content:d,key:c+d}):s.createElement("meta",y({key:c+JSON.stringify(d)},d)))}))}function pt(){let{routeModules:e}=b(),{errors:r,matches:t,loaderData:o}=I(),n=L(),a=r?t.slice(0,t.findIndex(u=>r[u.route.id])+1):t,i=[],l=null,c=[];for(let u=0;u<a.length;u++){let m=a[u],d=m.route.id,h=o[d],g=m.params,p=e[d],x=[],D={id:d,data:h,meta:[],params:m.params,pathname:m.pathname,handle:m.route.handle,get route(){return console.warn("The meta function in "+m.route.path+" accesses the `route` property on `matches`. This is deprecated and will be removed in Remix version 2. See"),m.route}};if(c[u]=D,p!=null&&p.meta?x=typeof p.meta=="function"?p.meta({data:h,params:g,location:n,matches:c}):Array.isArray(p.meta)?[...p.meta]:p.meta:l&&(x=[...l]),x=x||[],!Array.isArray(x))throw new Error("The `v2_meta` API is enabled in the Remix config, but the route at "+m.route.path+` returns an invalid value. In v2, all route meta functions must return an array of meta objects. 15 16To reference the v1 meta function API, see https://remix.run/route/meta`);D.meta=x,c[u]=D,i=[...x],l=i}return s.createElement(s.Fragment,null,i.flat().map(u=>{if(!u)return null;if("tagName"in u){let m=u.tagName;return delete u.tagName,Rt(m)?s.createElement(m,y({key:JSON.stringify(u)},u)):(console.warn(`A meta object uses an invalid tagName: ${m}. Expected either 'link' or 'meta'`),null)}if("title"in u)return s.createElement("title",{key:"title"},String(u.title));if("charset"in u&&(u.charSet??(u.charSet=u.charset),delete u.charset),"charSet"in u&&u.charSet!=null)return typeof u.charSet=="string"?s.createElement("meta",{key:"charSet",charSet:u.charSet}):null;if("script:ld+json"in u){let m=null;try{m=JSON.stringify(u["script:ld+json"])}catch{}return m!=null&&s.createElement("script",{key:"script:ld+json",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(u["script:ld+json"])}})}return s.createElement("meta",y({key:JSON.stringify(u)},u))}))}function Rt(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function yt(){let{future:e}=b();return e!=null&&e.v2_meta?s.createElement(pt,null):s.createElement(ht,null)}function Xe(e){return s.createElement(Ee,e)}var oe=!1;function gt(e){let{manifest:r,serverHandoffString:t,abortDelay:o,serializeError:n}=b(),{router:a,static:i,staticContext:l}=He(),{matches:c}=I(),u=Z();s.useEffect(()=>{oe=!0},[]);let m=(R,w)=>{let E;return n&&w instanceof Error?E=n(w):E=w,`${JSON.stringify(R)}:__remixContext.p(!1, ${H(JSON.stringify(E))})`},d=(R,w,E)=>{let v;try{v=JSON.stringify(E)}catch(_){return m(w,_)}return`${JSON.stringify(w)}:__remixContext.p(${H(v)})`},h=(R,w,E)=>{let v;return n&&E instanceof Error?v=n(E):v=E,`__remixContext.r(${JSON.stringify(R)}, ${JSON.stringify(w)}, !1, ${H(JSON.stringify(v))})`},g=(R,w,E)=>{let v;try{v=JSON.stringify(E)}catch(_){return h(R,w,_)}return`__remixContext.r(${JSON.stringify(R)}, ${JSON.stringify(w)}, ${H(v)})`},p=[],x=s.useMemo(()=>{var R;let w=l?`window.__remixContext = ${t};`:" ",E=l?.activeDeferreds;w+=E?["__remixContext.p = function(v,e,p,x) {"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error"); 17 x.stack=undefined;`," p=Promise.reject(x);"," } else {"," p=Promise.resolve(v);"," }"," return p;","};","__remixContext.n = function(i,k) {"," __remixContext.t = __remixContext.t || {};"," __remixContext.t[i] = __remixContext.t[i] || {};"," let p = new Promise((r, e) => {__remixContext.t[i][k] = {r:(v)=>{r(v);},e:(v)=>{e(v);}};});",typeof o=="number"?`setTimeout(() => {if(typeof p._error !== "undefined" || typeof p._data !== "undefined"){return;} __remixContext.t[i][k].e(new Error("Server timeout."))}, ${o});`:""," return p;","};","__remixContext.r = function(i,k,v,e,p,x) {"," p = __remixContext.t[i][k];"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error"); 18 x.stack=undefined;`," p.e(x);"," } else {"," p.r(v);"," }","};"].join(` 19`)+Object.entries(E).map(([_,M])=>{let rt=new Set(M.pendingKeys),nt=M.deferredKeys.map(C=>{if(rt.has(C))return p.push(s.createElement(Fe,{key:`${_} | ${C}`,deferredData:M,routeId:_,dataKey:C,scriptProps:e,serializeData:g,serializeError:h})),`${JSON.stringify(C)}:__remixContext.n(${JSON.stringify(_)}, ${JSON.stringify(C)})`;{let K=M.data[C];return typeof K._error<"u"?m(C,K._error):d(_,C,K._data)}}).join(`, 20`);return`Object.assign(__remixContext.state.loaderData[${JSON.stringify(_)}], {${nt}});`}).join(` 21`)+(p.length>0?`__remixContext.a=${p.length};`:""):"";let v=i?`${(R=r.hmr)!==null&&R!==void 0&&R.runtime?`import ${JSON.stringify(r.hmr.runtime)};`:""}import ${JSON.stringify(r.url)}; 22${c.map((_,M)=>`import * as route${M} from ${JSON.stringify(r.routes[_.route.id].module)};`).join(` 23`)} 24window.__remixRouteModules = {${c.map((_,M)=>`${JSON.stringify(_.route.id)}:route${M}`).join(",")}}; 25 26import(${JSON.stringify(r.entry.module)});`:" ";return s.createElement(s.Fragment,null,s.createElement("script",y({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:ne(w),type:void 0})),s.createElement("script",y({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:ne(v),type:"module",async:!0})))},[]);if(!i&&typeof __remixContext=="object"&&__remixContext.a)for(let R=0;R<__remixContext.a;R++)p.push(s.createElement(Fe,{key:R,scriptProps:e,serializeData:g,serializeError:h}));let D=s.useMemo(()=>
26{if(u.location){let R=B(a.routes,u.location);return S(R,`No routes match path "${u.location.pathname}"`),R}return[]},[u.location,a.routes]),Y=c.concat(D).map(R=>{let w=r.routes[R.route.id];return(w.imports||[]).concat([w.module])}).flat(1),tt=oe?[]:r.entry.imports.concat(Y);return oe?null:s.createElement(s.Fragment,null,s.createElement("link",{rel:"modulepreload",href:r.entry.module,crossOrigin:e.crossOrigin}),Et(tt).map(R=>s.createElement("link",{key:R,rel:"modulepreload",href:R,crossOrigin:e.crossOrigin})),x,p)}function Fe({dataKey:e,deferredData:r,routeId:t,scriptProps:o,serializeData:n,serializeError:a}){return typeof document>"u"&&r&&e&&t&&S(r.pendingKeys.includes(e),`Deferred data for route ${t} with key ${e} was not pending but tried to render a script for it.`),s.createElement(s.Suspense,{fallback:typeof document>"u"&&r&&e&&t?null:s.createElement("script",y({},o,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&r&&e&&t?s.createElement(Xe,{resolve:r.data[e],errorElement:s.createElement(wt,{dataKey:e,routeId:t,scriptProps:o,serializeError:a}),children:i=>s.createElement("script",y({},o,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,i)}}))}):s.createElement("script",y({},o,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function wt({dataKey:e,routeId:r,scriptProps:t,serializeError:o}){let n=q();return s.createElement("script",y({},t,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:o(r,e,n)}}))}function Et(e){return[...new Set(e)]}function ie(){let{routeModules:e}=b(),r=ye();return s.useMemo(()=>r.map(t=>({id:t.id,pathname:t.pathname,params:t.params,data:t.data,handle:e[t.id].handle})),[r,e])}function _t(){return ge()}var xt=()=>null;function We(...e){return r=>{e.forEach(t=>{typeof t=="function"?t(r):t!=null&&(t.current=r)})}}he();function Ve(e){if(!e)return null;let r=Object.entries(e),t={};for(let[o,n]of r)if(n&&n.__type==="RouteErrorResponse")t[o]=new fe(n.status,n.statusText,n.data,n.internal===!0);else if(n&&n.__type==="Error"){if(n.__subType){let a=window[n.__subType];if(typeof a=="function")try{let i=new a(n.message);i.stack=n.stack,t[o]=i}catch{}}if(t[o]==null){let a=new Error(n.message);a.stack=n.stack,t[o]=a}}else t[o]=n;return t}var se=N(A());O();he();function Ye(e){return e.headers.get("X-Remix-Catch")!=null}function vt(e){return e.headers.get("X-Remix-Error")!=null}function St(e){return bt(e)&&e.status>=400&&e.headers.get("X-Remix-Error")==null&&e.headers.get("X-Remix-Catch")==null&&e.headers.get("X-Remix-Response")==null}function Ke(e){return e.headers.get("X-Remix-Redirect")!=null}function Qe(e){var r;return!!((r=e.headers.get("Content-Type"))!==null&&r!==void 0&&r.match(/text\/remix-deferred/))}function bt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}async function ae(e,r,t=0){let o=new URL(e.url);o.searchParams.set("_data",r);let n={signal:e.signal};if(e.method!=="GET"){n.method=e.method;let l=e.headers.get("Content-Type");l&&/\bapplication\/json\b/.test(l)?(n.headers={"Content-Type":l},n.body=JSON.stringify(await e.json())):l&&/\btext\/plain\b/.test(l)?(n.headers={"Content-Type":l},n.body=await e.text()):l&&/\bapplication\/x-www-form-urlencoded\b/.test(l)?n.body=new URLSearchParams(await e.text()):n.body=await e.formData()}t>0&&await new Promise(l=>setTimeout(l,5**t*10));let a=window.__remixRevalidation,i=await fetch(o.href,n).catch(l=>{if(typeof a=="number"&&a===window.__remixRevalidation&&l?.name==="TypeError"&&t<3)return ae(e,r,t+1);throw l});if(vt(i)){let l=await i.json(),c=new Error(l.message);return c.stack=l.stack,c}if(St(i)){let l=await i.text(),c=new Error(l);return c.stack=void 0,c}return i}var Mt="__deferred_promise:";async function Ze(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let r,t={};try{let o=Ct(e),a=(await o.next()).value;if(!a)throw new Error("no critical data");let i=JSON.parse(a);if(typeof i=="object"&&i!==null)for(let[l,c]of Object.entries(i))typeof c!="string"||!c.startsWith(Mt)||(r=r||{},r[l]=new Promise((u,m)=>{t[l]={resolve:d=>{u(d),delete t[l]},reject:d=>{m(d),delete t[l]}}}));return(async()=>{try{for await(let l of o){let[c,...u]=l.split(":"),m=u.join(":"),d=JSON.parse(m);
26if(c==="data")for(let[h,g]of Object.entries(d))t[h]&&t[h].resolve(g);else if(c==="error")for(let[h,g]of Object.entries(d)){let p=new Error(g.message);p.stack=g.stack,t[h]&&t[h].reject(p)}}for(let[l,c]of Object.entries(t))c.reject(new ce(`Deferred ${l} will never be resolved`))}catch(l){for(let c of Object.values(t))c.reject(l)}})(),new de({...i,...r})}catch(o){for(let n of Object.values(t))n.reject(o);throw o}}async function*Ct(e){let r=e.getReader(),t=[],o=[],n=!1,a=new TextEncoder,i=new TextDecoder,l=async()=>{if(o.length>0)return o.shift();for(;!n&&o.length===0;){let u=await r.read();if(u.done){n=!0;break}t.push(u.value);try{let d=i.decode(Ge(...t)).split(` 27 28`);if(d.length>=2&&(o.push(...d.slice(0,-1)),t=[a.encode(d.slice(-1).join(` 29 30`))]),o.length>0)break}catch{continue}}return o.length>0||t.length>0&&(o=i.decode(Ge(...t)).split(` 31 32`).filter(m=>m),t=[]),o.shift()},c=await l();for(;c;)yield c,c=await l()}function Ge(...e){let r=new Uint8Array(e.reduce((o,n)=>o+n.length,0)),t=0;for(let o of e)r.set(o,t),t+=o.length;return r}function kt(e){let r={};return Object.values(e).forEach(t=>{let o=t.parentId||"";r[o]||(r[o]=[]),r[o].push(t)}),r}function le(e,r,t,o="",n=kt(e),a){return(n[o]||[]).map(i=>{let l=t.v2_errorBoundary===!0?i.id==="root"||i.hasErrorBoundary:i.id==="root"||i.hasCatchBoundary||i.hasErrorBoundary,c={caseSensitive:i.caseSensitive,element:se.createElement(Ue,{id:i.id}),errorElement:l?se.createElement(Ie,{id:i.id}):void 0,id:i.id,index:i.index,path:i.path,handle:void 0,loader:qe(i,r,!1),action:qe(i,r,!0),shouldRevalidate:Dt(i,r,a)},u=le(e,r,t,i.id,n,a);return u.length>0&&(c.children=u),c})}function Dt(e,r,t){let o=!1;return function(n){let a=r[e.id];return S(a,`Expected route module to be loaded for ${e.id}`),t!==void 0&&!o?(o=!0,t.has(e.id)):a.shouldRevalidate?a.shouldRevalidate(n):n.defaultShouldRevalidate}}async function Lt(e,r){let t=await X(e,r);return await Te(t),t}function qe(e,r,t){return async({request:o})=>{let n=Lt(e,r);try{if(t&&!e.hasAction){let i=`Route "${e.id}" does not have an action, but you are trying to submit to it. To fix this, please add an \`action\` function to the route`;throw console.error(i),new Error(i)}else if(!t&&!e.hasLoader)return null;let a=await ae(o,e.id);if(a instanceof Error)throw a;if(Ke(a))throw Ot(a);if(Ye(a))throw a;return Qe(a)&&a.body?await Ze(a.body):a}finally{await n}}}function Ot(e){let r=parseInt(e.headers.get("X-Remix-Status"),10)||302,t=e.headers.get("X-Remix-Redirect"),o={},n=e.headers.get("X-Remix-Revalidate");return n&&(o["X-Remix-Revalidate"]=n),me(t,{status:r,headers:o})}var $;var ue,yr=new Promise(e=>{ue=e}).catch(()=>{});function Tt(e){if(!$){let o=le(window.__remixManifest.routes,window.__remixRouteModules,window.__remixContext.future),n=window.__remixContext.state;n&&n.errors&&(n={...n,errors:Ve(n.errors)}),$=_e(o,{hydrationData:n,future:{v7_normalizeFormMethod:window.__remixContext.future.v2_normalizeFormMethod}});let a=window.__remixContext.url,i=window.location.pathname;if(a!==i){let l=`Initial URL (${a}) does not match URL at time of hydration (${i}), reloading page...`;console.error(l),window.location.reload()}ue&&ue($)}let[r,t]=k.useState($.state.location);return k.useLayoutEffect(()=>$.subscribe(o=>{o.location!==r&&t(o.location)}),[r]),k.createElement(j.Provider,{value:{manifest:window.__remixManifest,routeModules:window.__remixRouteModules,future:window.__remixContext.future}},k.createElement(J,{location:r,component:T},k.createElement(we,{router:$,fallbackElement:null,future:{v7_startTransition:!0}})))}O();var G=N(A());O();var et="positions";function $t({getKey:e,...r}){let t=L(),o=ie();Se({getKey:e,storageKey:et});let n=G.useMemo(()=>{if(!e)return null;let i=e(t,o);return i!==t.key?i:null},[]),a=((i,l)=>{if(!window.history.state||!window.history.state.key){let c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{let u=JSON.parse(sessionStorage.getItem(i)||"{}")[l||window.history.state.key];typeof u=="number"&&window.scrollTo(0,u)}catch(c){console.error(c),sessionStorage.removeItem(i)}}).toString();return G.createElement("script",y({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${a})(${JSON.stringify(et)}, ${JSON.stringify(n)})`}}))}export{Ce as a,Je as b,dt as c,yt as d,gt as e,ie as f,_t as g,xt as h,Tt as i,$t as j}; 33/*! Bundled license information: 34 35@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js: 36 (** 37 * @remix-run/react v1.19.3 38 * 39 * Copyright (c) Remix Software Inc. 40 * 41 * This source code is licensed under the MIT license found in the 42 * LICENSE.md file in the root directory of this source tree. 43 * 44 * @license MIT 45 *) 46 47@remix-run/react/dist/esm/errorBoundaries.js: 48 (** 49 * @remix-run/react v1.19.3 50 * 51 * Copyright (c) Remix Software Inc. 52 * 53 * This source code is licensed under the MIT license found in the 54 * LICENSE.md file in the root directory of this source tree. 55 * 56 * @license MIT 57 *) 58 59@remix-run/react/dist/esm/invariant.js: 60 (** 61 * @remix-run/react v1.19.3 62 * 63 * Copyright (c) Remix Software Inc. 64 * 65 * This source code is licensed under the MIT license found in the 66 * LICENSE.md file in the root directory of this source tree. 67 * 68 * @license MIT 69 *) 70 71@remix-run/react/dist/esm/routeModules.js: 72 (** 73 * @remix-run/react v1.19.3 74 * 75 * Copyright (c) Remix Software Inc. 76 * 77 * This source code is licensed under the MIT license found in the 78 * LICENSE.md file in the root directory of this source tree. 79 * 80 * @license MIT 81 *) 82 83@remix-run/react/dist/esm/links.js: 84 (** 85 * @remix-run/react v1.19.3 86 * 87 * Copyright (c) Remix Software Inc. 88 * 89 * This source code is licensed under the MIT license found in the 90 * LICENSE.md file in the root directory of this source tree. 91 * 92 * @license MIT 93 *) 94 95@remix-run/react/dist/esm/markup.js: 96 (** 97 * @remix-run/react v1.19.3 98 * 99 * Copyright (c) Remix Software Inc. 100 * 101 * This source code is licensed under the MIT license found in the 102 * LICENSE.md file in the root directory of this source tree. 103 * 104 * @license MIT 105 *) 106 107@remix-run/react/dist/esm/components.js: 108 (** 109 * @remix-run/react v1.19.3 110 * 111 * Copyright (c) Remix Software Inc. 112 * 113 * This source code is licensed under the MIT license found in the 114 * LICENSE.md file in the root directory of this source tree. 115 * 116 * @license MIT 117 *) 118 119@remix-run/react/dist/esm/errors.js: 120 (** 121 * @remix-run/react v1.19.3 122 * 123 * Copyright (c) Remix Software Inc. 124 * 125 * This source code is licensed under the MIT license found in the 126 * LICENSE.md file in the root directory of this source tree. 127 * 128 * @license MIT 129 *) 130 131@remix-run/react/dist/esm/data.js: 132 (** 133 * @remix-run/react v1.19.3 134 * 135 * Copyright (c) Remix Software Inc. 136 * 137 * This source code is licensed under the MIT license found in the 138 * LICENSE.md file in the root directory of this source tree. 139 * 140 * @license MIT 141 *) 142 143@remix-run/react/dist/esm/routes.js: 144 (** 145 * @remix-run/react v1.19.3 146 * 147 * Copyright (c) Remix Software Inc. 148 * 149 * This source code is licensed under the MIT license found in the 150 * LICENSE.md file in the root directory of this source tree. 151 * 152 * @license MIT 153 *) 154 155@remix-run/react/dist/esm/browser.js: 156 (** 157 * @remix-run/react v1.19.3 158 * 159 * Copyright (c) Remix Software Inc. 160 * 161 * This source code is licensed under the MIT license found in the 162 * LICENSE.md file in the root directory of this source tree. 163 * 164 * @license MIT 165 *) 166 167@remix-run/react/dist/esm/scroll-restoration.js: 168 (** 169 * @remix-run/react v1.19.3 170 * 171 * Copyright (c) Remix Software Inc. 172 * 173 * This source code is licensed under the MIT license found in the 174 * LICENSE.md file in the root directory of this source tree. 175 * 176 * @license MIT 177 *) 178 179@remix-run/react/dist/esm/index.js: 180 (** 181 * @remix-run/react v1.19.3 182 * 183 * Copyright (c) Remix Software Inc. 184 * 185 * This source code is licensed under the MIT license found in the 186 * LICENSE.md file in the root directory of this source tree. 187 * 188 * @license MIT 189 *) 190*/
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.