PageSourceSearch

https://www.utah.com/build/_shared/chunk-MTP6MU5Y.js

js utah.com collected 2026-09-24 08:40:40 UTC 94,680 bytes, 239 lines download raw bytes

1import{a as Ue}from"/build/_shared/chunk-PBIKXX5U.js";import{b as Zt,e as Oe}from"/build/_shared/chunk-ZGAAV4RY.js";function H(){return H=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},H.apply(this,arguments)}function on(e){e===void 0&&(e={});function t(n,a){let{pathname:o,search:i,hash:l}=n.location;return ut("",{pathname:o,search:i,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:ue(a)}return xa(t,r,null,e)}function N(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Je(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function ba(){return Math.random().toString(36).substr(2,8)}function Jr(e,t){return{usr:e.state,key:e.key,idx:t}}function ut(e,t,r,n){return r===void 0&&(r=null),H({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ee(t):t,{state:r,key:t&&t.key||n||ba()})}function ue(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function ee(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function xa(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=z.Pop,s=null,u=c();u==null&&(u=0,i.replaceState(H({},i.state,{idx:u}),""));function c(){return(i.state||{idx:null}).idx}function h(){l=z.Pop;let b=c(),S=b==null?null:b-u;u=b,s&&s({action:l,location:E.location,delta:S})}function y(b,S){l=z.Push;let U=ut(E.location,b,S);r&&r(U,b),u=c()+1;let C=Jr(U,u),d=E.createHref(U);try{i.pushState(C,"",d)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;a.location.assign(d)}o&&s&&s({action:l,location:E.location,delta:1})}function w(b,S){l=z.Replace;let U=ut(E.location,b,S);r&&r(U,b),u=c();let C=Jr(U,u),d=E.createHref(U);i.replaceState(C,"",d),o&&s&&s({action:l,location:E.location,delta:0})}function v(b){let S=a.location.origin!=="null"?a.location.origin:a.location.href,U=typeof b=="string"?b:ue(b);return N(S,"No window.location.(origin|href) available to create URL for href: "+U),new URL(U,S)}let E={get action(){return l},get location(){return e(a,i)},listen(b){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(Wr,h),s=b,()=>{a.removeEventListener(Wr,h),s=null}},createHref(b){return t(a,b)},createURL:v,encodeLocation(b){let S=v(b);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:y,replace:w,go(b){return i.go(b)}};return E}function _a(e){return e.index===!0}function tr(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,o)=>{let i=[...r,o],l=typeof a.id=="string"?a.id:i.join("-");if(N(a.index!==!0||!a.children,"Cannot specify children on an index route"),N(!n[l],'Found a route id collision on i
1d "'+l+`".  Route id's must be globally unique within Data Router usages`),_a(a)){let s=H({},a,t(a),{id:l});return n[l]=s,s}else{let s=H({},a,t(a),{id:l,children:void 0});return n[l]=s,a.children&&(s.children=tr(a.children,t,i,n)),s}})}function ne(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?ee(t):t,a=pe(n.pathname||"/",r);if(a==null)return null;let o=ln(e);Na(o);let i=null;for(let l=0;i==null&&l<o.length;++l)i=Ua(o[l],ka(a));return i}function ln(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(o,i,l)=>{let s={relativePath:l===void 0?o.path||"":l,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};s.relativePath.startsWith("/")&&(N(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let u=se([n,s.relativePath]),c=r.concat(s);o.children&&o.children.length>0&&(N(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),ln(o.children,t,c,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:Fa(u,o.index),routesMeta:c})};return e.forEach((o,i)=>{var l;if(o.path===""||!((l=o.path)!=null&&l.includes("?")))a(o,i);else for(let s of sn(o.path))a(o,i,s)}),t}function sn(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=sn(n.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),a&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function Na(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Oa(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}function Fa(e,t){let r=e.split("/"),n=r.length;return r.some(Kr)&&(n+=Aa),t&&(n+=La),r.filter(a=>!Kr(a)).reduce((a,o)=>a+(Da.test(o)?Ca:o===""?Pa:Ma),n)}function Oa(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function Ua(e,t){let{routesMeta:r}=e,n={},a="/",o=[];for(let i=0;i<r.length;++i){let l=r[i],s=i===r.length-1,u=a==="/"?t:t.slice(a.length)||"/",c=ct({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},u);if(!c)return null;
1Object.assign(n,c.params);let h=l.route;o.push({params:n,pathname:se([a,c.pathname]),pathnameBase:Ba(se([a,c.pathnameBase])),route:h}),c.pathnameBase!=="/"&&(a=se([a,c.pathnameBase]))}return o}function ct(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Ta(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce((u,c,h)=>{if(c==="*"){let y=l[h]||"";i=o.slice(0,o.length-y.length).replace(/(.)\/+$/,"$1")}return u[c]=Ia(l[h]||"",c),u},{}),pathname:o,pathnameBase:i,pattern:e}}function Ta(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Je(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,(i,l)=>(n.push(l),"/([^\\/]+)"));return e.endsWith("*")?(n.push("*"),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function ka(e){try{return decodeURI(e)}catch(t){return Je(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Ia(e,t){try{return decodeURIComponent(e)}catch(r){return Je(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+e+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+r+").")),e}}function pe(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function St(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?ee(e):e;return{pathname:r?r.startsWith("/")?r:ja(r,t):t,search:Ha(n),hash:$a(a)}}function ja(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function qt(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"].  Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function dt(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function _t(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=ee(e):(a=H({},e),N(!a.pathname||!a.pathname.includes("?"),qt("?","pathname","search",a)),N(!a.pathname||!a.pathname.includes("#"),qt("#","pathname","hash",a)),N(!a.search||!a.search.includes("#"),qt("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,l;if(n||i==null)l=r;else{let h=t.length-1;if(i.startsWith("..")){let y=i.split("/");for(;y[0]==="..";)y.shift(),h-=1;a.pathname=y.join("/")}l=h>=0?t[h]:"/"}let s=St(a,l),u=i&&i!=="/"&&i.endsWith("/"),c=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}function za(e){return e instanceof Promise&&e._tracked===!0}function Va(e){if(!za(e))return e;if(e._error)throw e._error;return e._data}function Re(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function or(e){let t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;N(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let f=e.detectErrorBoundary;a=m=>({hasErrorBoundary:f(m)})}else a=Qa;let o={},i=tr(e.routes,a,void 0,o),l,s=e.basename||"/",u=H({v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),c=null,h=new Set,y=null,w=null,v=null,E=e.hydrationData!=null,b=ne(i,e.history.location,s),S=null;if(b==null){let f=le(404,{pathname:e.history.location.pathname}),{matches:m,route:p}=tn(i);b=m,S={[p.id]:f}}let U=!b.some(f=>f.route.lazy)&&(!b.some(f=>f.route.loader)||e.hydrationData!=null),C,d={historyAction:e.history.action,location:e.history.location,matches:b,initialized:U,navigation:er,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||S,fetchers:new Map,blockers:new Map},L=z.Pop,k=!1,O,J=!1,te=!1,ie=[],q=[],$=new Map,gt=0,et=-1,Be=new Map,ve=new Set,He=new Map,Pe=new Map,Me=new Map,zt=!1;function sa(){return c=e.history.listen(f=>{let{action:m,location:p,delta:x}=f;if(zt){zt=!1;return}Je(Me.size===0||x!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs.  This can also happen if you are using createHashRouter and the user manually changes the URL.");let F=Hr({currentLocation:d.location,nextLocation:p,historyAction:m});if(F&&x!=null){zt=!0,e.history.go(x*-1),Et(F,{state:"blocked",location:p,proceed(){Et(F,{state:"proceeding",proceed:void 0,reset:void 0,location:p}),e.history.go(x)},reset(){let P=new Map(d.blockers);P.set(F,$e),Y({blockers:P})}});return}return xe(m,p)}),d.initialized||xe(z.Pop,d.location),C}
1function ua(){c&&c(),h.clear(),O&&O.abort(),d.fetchers.forEach((f,m)=>Wt(m)),d.blockers.forEach((f,m)=>Br(m))}function ca(f){return h.add(f),()=>h.delete(f)}function Y(f){d=H({},d,f),h.forEach(m=>m(d))}function tt(f,m){var p,x;let F=d.actionData!=null&&d.navigation.formMethod!=null&&me(d.navigation.formMethod)&&d.navigation.state==="loading"&&((p=f.state)==null?void 0:p._isRedirect)!==!0,P;m.actionData?Object.keys(m.actionData).length>0?P=m.actionData:P=null:F?P=d.actionData:P=null;let A=m.loaderData?en(d.loaderData,m.loaderData,m.matches||[],m.errors):d.loaderData,D=d.blockers;D.size>0&&(D=new Map(D),D.forEach((B,Q)=>D.set(Q,$e)));let _=k===!0||d.navigation.formMethod!=null&&me(d.navigation.formMethod)&&((x=f.state)==null?void 0:x._isRedirect)!==!0;l&&(i=l,l=void 0),J||L===z.Pop||(L===z.Push?e.history.push(f,f.state):L===z.Replace&&e.history.replace(f,f.state)),Y(H({},m,{actionData:P,loaderData:A,historyAction:L,location:f,initialized:!0,navigation:er,revalidation:"idle",restoreScrollPosition:zr(f,m.matches||d.matches),preventScrollReset:_,blockers:D})),L=z.Pop,k=!1,J=!1,te=!1,ie=[],q=[]}async function Or(f,m){if(typeof f=="number"){e.history.go(f);return}let p=rr(d.location,d.matches,s,u.v7_prependBasename,f,m?.fromRouteId,m?.relative),{path:x,submission:F,error:P}=Xr(u.v7_normalizeFormMethod,!1,p,m),A=d.location,D=ut(d.location,x,m&&m.state);D=H({},D,e.history.encodeLocation(D));let _=m&&m.replace!=null?m.replace:void 0,B=z.Push;_===!0?B=z.Replace:_===!1||F!=null&&me(F.formMethod)&&F.formAction===d.location.pathname+d.location.search&&(B=z.Replace);let Q=m&&"preventScrollReset"in m?m.preventScrollReset===!0:void 0,I=Hr({currentLocation:A,nextLocation:D,historyAction:B});if(I){Et(I,{state:"blocked",location:D,proceed(){Et(I,{state:"proceeding",proceed:void 0,reset:void 0,location:D}),Or(f,m)},reset(){let W=new Map(d.blockers);W.set(I,$e),Y({blockers:W})}});return}return await xe(B,D,{submission:F,pendingError:P,preventScrollReset:Q,replace:m&&m.replace})}function da(){if(Vt(),Y({revalidation:"loading"}),d.navigation.state!=="submitting"){if(d.navigation.state==="idle"){xe(d.historyAction,d.location,{startUninterruptedRevalidation:!0});return}xe(L||d.historyAction,d.navigation.location,{overrideNavigation:d.navigation})}}async function xe(f,m,p){O&&O.abort(),O=null,L=f,J=(p&&p.startUninterruptedRevalidation)===!0,va(d.location,d.matches),k=(p&&p.preventScrollReset)===!0;let x=l||i,F=p&&p.overrideNavigation,P=ne(x,m,s);if(!P){let W=le(404,{pathname:m.pathname}),{matches:G,route:Ae}=tn(x);Jt(),tt(m,{matches:G,loaderData:{},errors:{[Ae.id]:W}});return}if(d.initialized&&!te&&ro(d.location,m)&&!(p&&p.submission&&me(p.submission.formMethod))){tt(m,{matches:P});return}O=new AbortController;let A=it(e.history,m,O.signal,p&&p.submission),D,_;if(p&&p.pendingError)_={[Ve(P).route.id]:p.pendingError};else if(p&&p.submission&&me(p.submission.formMethod)){let W=await fa(A,m,p.submission,P,{replace:p.replace});if(W.shortCircuited)return;D=W.pendingActionData,_=W.pendingActionError,F=bt(m,p.submission),A=new Request(A.url,{signal:A.signal})}let{shortCircuited:B,loaderData:Q,errors:I}=await ha(A,m,P,F,p&&p.submission,p&&p.fetcherSubmission,p&&p.replace,D,_);B||(O=null,tt(m,H({matches:P},D?{actionData:D}:{},{loaderData:Q,errors:I})))}async function fa(f,m,p,x,F){F===void 0&&(F={}),Vt();let P=lo(m,p);Y({navigation:P});let A,D=ar(x,m);if(!D.route.action&&!D.route.lazy)A={type:X.error,error:le(405,{method:f.method,pathname:m.pathname,routeId:D.route.id})};else if(A=await ot("action",f,D,x,o,a,s),f.signal.aborted)return{shortCircuited:!0};if(We(A)){let _;return F&&F.replace!=null?_=F.replace:_=A.location===d.location.pathname+d.location.search,await rt(d,A,{submission:p,replace:_}),{shortCircuited:!0}}if(st(A)){let _=Ve(x,D.route.id);return(F&&F.replace)!==!0&&(L=z.Push),{pendingActionData:{},pendingActionError:{[_.route.id]:A.error}}}if(Te(A))throw le(400,{type:"defer-action"});return{pendingActionData:{[D.route.id]:A.data}}}async function ha(f,m,p,x,F,P,A,D,_){let B=x||bt(m,F),Q=F||P||an(B),I=l||i,[W,G]=Yr(e.history,d,p,Q,m,te,ie,q,He,ve,I,s,D,_);if(Jt(j=>!(p&&p.some(he=>he.route.id===j))||W&&W.some(he=>he.route.id===j)),et=++gt,W.length===0&&G.length===0){let j=Ir();return tt(m,H({matches:p,loaderData:{},errors:_||null},D?{actionData:D}:{},j?{fetchers:new Map(d.fetchers)}:{})),{shortCircuited:!0}}if(!J){G.forEach(he=>{let _e=d.fetchers.get(he.key),Qt=lt(void 0,_e?_e.data:void 0);d.fetchers.set(he.key,Qt)});let j=D||d.actionData;Y(H({navigation:B},j?Object.keys(j).length===0?{actionData:null}:{actionData:j}:{},G.length>0?{fetchers:new Map(d.fetchers)}:{}))}G.forEach(j=>{$.has(j.key)&&Se(j.key),j.controller&&$.set(j.key,j.controller)});let Ae=()=>G.forEach(j=>Se(j.key));O&&O.signal.addEventListener("abort",Ae);let{results:Fe,loaderResults:nt,fetcherResults:Kt}=await Tr(d.matches,p,W,G,f);if(f.signal.aborted)return{shortCircuited:!0};O&&O.signal.removeEventListener("abort",Ae),G.forEach(j=>$.delete(j.key));let Ee=rn(Fe);if(Ee){if(Ee.idx>=W.length){let j=G[Ee.idx-W.length].key;ve.add(j)}return await rt(d,Ee.result,{replace:A}),{shortCircuited:!0}}let{loaderData:we,errors:wt}=qr(d,p,W,nt,_,G,Kt,Pe);Pe.forEach((j,he)=>{j.subscribe(_e=>{(_e||j.done)&&Pe.delete(he)})});let Xt=Ir(),Yt=jr(et),Gt=Xt||Yt||G.length>0;return H({loaderData:we,errors:wt},Gt?{fetchers:new Map(d.fetchers)}:{})}function Ur(f){return d.fetchers.get(f)||Ga}function ma(f,m,p,x){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");$.has(f)&&Se(f);
1let F=l||i,P=rr(d.location,d.matches,s,u.v7_prependBasename,p,m,x?.relative),A=ne(F,P,s);if(!A){vt(f,m,le(404,{pathname:P}));return}let{path:D,submission:_,error:B}=Xr(u.v7_normalizeFormMethod,!0,P,x);if(B){vt(f,m,B);return}let Q=ar(A,D);if(k=(x&&x.preventScrollReset)===!0,_&&me(_.formMethod)){pa(f,m,D,Q,A,_);return}He.set(f,{routeId:m,path:D}),ya(f,m,D,Q,A,_)}async function pa(f,m,p,x,F,P){if(Vt(),He.delete(f),!x.route.action&&!x.route.lazy){let K=le(405,{method:P.formMethod,pathname:p,routeId:m});vt(f,m,K);return}let A=d.fetchers.get(f),D=so(P,A);d.fetchers.set(f,D),Y({fetchers:new Map(d.fetchers)});let _=new AbortController,B=it(e.history,p,_.signal,P);$.set(f,_);let Q=gt,I=await ot("action",B,x,F,o,a,s);if(B.signal.aborted){$.get(f)===_&&$.delete(f);return}if(We(I))if($.delete(f),et>Q){let K=ze(void 0);d.fetchers.set(f,K),Y({fetchers:new Map(d.fetchers)});return}else{ve.add(f);let K=lt(P);return d.fetchers.set(f,K),Y({fetchers:new Map(d.fetchers)}),rt(d,I,{submission:P,isFetchActionRedirect:!0})}if(st(I)){vt(f,m,I.error);return}if(Te(I))throw le(400,{type:"defer-action"});let W=d.navigation.location||d.location,G=it(e.history,W,_.signal),Ae=l||i,Fe=d.navigation.state!=="idle"?ne(Ae,d.navigation.location,s):d.matches;N(Fe,"Didn't find any matches after fetcher action");let nt=++gt;Be.set(f,nt);let Kt=lt(P,I.data);d.fetchers.set(f,Kt);let[Ee,we]=Yr(e.history,d,Fe,P,W,te,ie,q,He,ve,Ae,s,{[x.route.id]:I.data},void 0);we.filter(K=>K.key!==f).forEach(K=>{let at=K.key,Vr=d.fetchers.get(at),wa=lt(void 0,Vr?Vr.data:void 0);d.fetchers.set(at,wa),$.has(at)&&Se(at),K.controller&&$.set(at,K.controller)}),Y({fetchers:new Map(d.fetchers)});let wt=()=>we.forEach(K=>Se(K.key));_.signal.addEventListener("abort",wt);let{results:Xt,loaderResults:Yt,fetcherResults:Gt}=await Tr(d.matches,Fe,Ee,we,G);if(_.signal.aborted)return;_.signal.removeEventListener("abort",wt),Be.delete(f),$.delete(f),we.forEach(K=>$.delete(K.key));let j=rn(Xt);if(j){if(j.idx>=Ee.length){let K=we[j.idx-Ee.length].key;ve.add(K)}return rt(d,j.result)}let{loaderData:he,errors:_e}=qr(d,d.matches,Ee,Yt,void 0,we,Gt,Pe);if(d.fetchers.has(f)){let K=ze(I.data);d.fetchers.set(f,K)}let Qt=jr(nt);d.navigation.state==="loading"&&nt>et?(N(L,"Expected pending action"),O&&O.abort(),tt(d.navigation.location,{matches:Fe,loaderData:he,errors:_e,fetchers:new Map(d.fetchers)})):(Y(H({errors:_e,loaderData:en(d.loaderData,he,Fe,_e)},Qt||we.length>0?{fetchers:new Map(d.fetchers)}:{})),te=!1)}async function ya(f,m,p,x,F,P){let A=d.fetchers.get(f),D=lt(P,A?A.data:void 0);d.fetchers.set(f,D),Y({fetchers:new Map(d.fetchers)});let _=new AbortController,B=it(e.history,p,_.signal);$.set(f,_);let Q=gt,I=await ot("loader",B,x,F,o,a,s);if(Te(I)&&(I=await hn(I,B.signal,!0)||I),$.get(f)===_&&$.delete(f),B.signal.aborted)return;if(We(I))if(et>Q){let G=ze(void 0);d.fetchers.set(f,G),Y({fetchers:new Map(d.fetchers)});return}else{ve.add(f),await rt(d,I);return}if(st(I)){let G=Ve(d.matches,m);d.fetchers.delete(f),Y({fetchers:new Map(d.fetchers),errors:{[G.route.id]:I.error}});return}N(!Te(I),"Unhandled fetcher deferred data");let W=ze(I.data);d.fetchers.set(f,W),Y({fetchers:new Map(d.fetchers)})}async function rt(f,m,p){let{submission:x,replace:F,isFetchActionRedirect:P}=p===void 0?{}:p;m.revalidate&&(te=!0);let A=ut(f.location,m.location,H({_isRedirect:!0},P?{_isFetchActionRedirect:!0}:{}));if(N(A,"Expected a location on the redirect navigation"),cn.test(m.location)&&r){let B=e.history.createURL(m.location),Q=pe(B.pathname,s)==null;if(t.location.origin!==B.origin||Q){F?t.location.replace(m.location):t.location.assign(m.location);return}}O=null;let D=F===!0?z.Replace:z.Push,_=x||an(f.navigation);if(Ya.has(m.status)&&_&&me(_.formMethod))await xe(D,A,{submission:H({},_,{formAction:m.location}),preventScrollReset:k});else if(P)await xe(D,A,{overrideNavigation:bt(A),fetcherSubmission:_,preventScrollReset:k});else{let B=bt(A,_);await xe(D,A,{overrideNavigation:B,preventScrollReset:k})}}async function Tr(f,m,p,x,F){let P=await Promise.all([...p.map(_=>ot("loader",F,_,m,o,a,s)),...x.map(_=>_.matches&&_.match&&_.controller?ot("loader",it(e.history,_.path,_.controller.signal),_.match,_.matches,o,a,s):{type:X.error,error:le(404,{pathname:_.path})})]),A=P.slice(0,p.length),D=P.slice(p.length);return await Promise.all([nn(f,p,A,A.map(()=>F.signal),!1,d.loaderData),nn(f,x.map(_=>_.match),D,x.map(_=>_.controller?_.controller.signal:null),!0)]),{results:P,loaderResults:A,fetcherResults:D}}
1function Vt(){te=!0,ie.push(...Jt()),He.forEach((f,m)=>{$.has(m)&&(q.push(m),Se(m))})}function vt(f,m,p){let x=Ve(d.matches,m);Wt(f),Y({errors:{[x.route.id]:p},fetchers:new Map(d.fetchers)})}function Wt(f){let m=d.fetchers.get(f);$.has(f)&&!(m&&m.state==="loading"&&Be.has(f))&&Se(f),He.delete(f),Be.delete(f),ve.delete(f),d.fetchers.delete(f)}function Se(f){let m=$.get(f);N(m,"Expected fetch controller: "+f),m.abort(),$.delete(f)}function kr(f){for(let m of f){let p=Ur(m),x=ze(p.data);d.fetchers.set(m,x)}}function Ir(){let f=[],m=!1;for(let p of ve){let x=d.fetchers.get(p);N(x,"Expected fetcher: "+p),x.state==="loading"&&(ve.delete(p),f.push(p),m=!0)}return kr(f),m}function jr(f){let m=[];for(let[p,x]of Be)if(x<f){let F=d.fetchers.get(p);N(F,"Expected fetcher: "+p),F.state==="loading"&&(Se(p),Be.delete(p),m.push(p))}return kr(m),m.length>0}function Ra(f,m){let p=d.blockers.get(f)||$e;return Me.get(f)!==m&&Me.set(f,m),p}function Br(f){d.blockers.delete(f),Me.delete(f)}function Et(f,m){let p=d.blockers.get(f)||$e;N(p.state==="unblocked"&&m.state==="blocked"||p.state==="blocked"&&m.state==="blocked"||p.state==="blocked"&&m.state==="proceeding"||p.state==="blocked"&&m.state==="unblocked"||p.state==="proceeding"&&m.state==="unblocked","Invalid blocker state transition: "+p.state+" -> "+m.state);let x=new Map(d.blockers);x.set(f,m),Y({blockers:x})}function Hr(f){let{currentLocation:m,nextLocation:p,historyAction:x}=f;if(Me.size===0)return;Me.size>1&&Je(!1,"A router only supports one blocker at a time");let F=Array.from(Me.entries()),[P,A]=F[F.length-1],D=d.blockers.get(P);if(!(D&&D.state==="proceeding")&&A({currentLocation:m,nextLocation:p,historyAction:x}))return P}function Jt(f){let m=[];return Pe.forEach((p,x)=>{(!f||f(x))&&(p.cancel(),m.push(x),Pe.delete(x))}),m}function ga(f,m,p){if(y=f,v=m,w=p||null,!E&&d.navigation===er){E=!0;let x=zr(d.location,d.matches);x!=null&&Y({restoreScrollPosition:x})}return()=>{y=null,v=null,w=null}}function $r(f,m){return w&&w(f,m.map(x=>io(x,d.loaderData)))||f.key}function va(f,m){if(y&&v){let p=$r(f,m);y[p]=v()}}function zr(f,m){if(y){let p=$r(f,m),x=y[p];if(typeof x=="number")return x}return null}function Ea(f){o={},l=tr(f,a,void 0,o)}return C={get basename(){return s},get state(){return d},get routes(){return i},initialize:sa,subscribe:ca,enableScrollRestoration:ga,navigate:Or,fetch:ma,revalidate:da,createHref:f=>e.history.createHref(f),encodeLocation:f=>e.history.encodeLocation(f),getFetcher:Ur,deleteFetcher:Wt,dispose:ua,getBlocker:Ra,deleteBlocker:Br,_internalFetchControllers:$,_internalActiveDeferreds:Pe,_internalSetRoutes:Ea},C}function Za(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function rr(e,t,r,n,a,o,i){let l,s;if(o!=null&&i!=="path"){l=[];for(let c of t)if(l.push(c),c.route.id===o){s=c;break}}else l=t,s=t[t.length-1];let u=_t(a||".",dt(l).map(c=>c.pathnameBase),pe(e.pathname,r)||e.pathname,i==="path");return a==null&&(u.search=e.search,u.hash=e.hash),(a==null||a===""||a===".")&&s&&s.route.index&&!ir(u.search)&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(u.pathname=u.pathname==="/"?r:se([r,u.pathname])),ue(u)}function Xr(e,t,r,n){if(!n||!Za(n))return{path:r};if(n.formMethod&&!oo(n.formMethod))return{path:r,error:le(405,{method:n.formMethod})};let a=()=>({path:r,error:le(400,{type:"invalid-body"})}),o=n.formMethod||"get",i=e?o.toUpperCase():o.toLowerCase(),l=fn(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!me(i))return a();let y=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((w,v)=>{let[E,b]=v;return""+w+E+"="+b+`
2`},""):String(n.body);return{path:r,submission:{formMethod:i,formAction:l,formEncType:n.formEncType,formData:void 0,json:void 0,text:y}}}else if(n.formEncType==="application/json"){if(!me(i))return a();try{let y=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:i,formAction:l,formEncType:n.formEncType,formData:void 0,json:y,text:void 0}}}catch{return a()}}}N(typeof FormData=="function","FormData is not available in this environment");let s,u;if(n.formData)s=nr(n.formData),u=n.formData;else if(n.body instanceof FormData)s=nr(n.body),u=n.body;else if(n.body instanceof URLSearchParams)s=n.body,u=Zr(s);else if(n.body==null)s=new URLSearchParams,u=new FormData;else try{s=new URLSearchParams(n.body),u=Zr(s)}catch{return a()}let c={formMethod:i,formAction:l,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(me(c.formMethod))return{path:r,submission:c};let h=ee(r);return t&&h.search&&ir(h.search)&&s.append("index",""),h.search="?"+s,{path:ue(h),submission:c}}function qa(e,t){let r=e;if(t){let n=e.findIndex(a=>a.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function Yr(e,t,r,n,a,o,i,l,s,u,c,h,y,w){let v=w?Object.values(w)[0]:y?Object.values(y)[0]:void 0,E=e.createURL(t.location),b=e.createURL(a),S=w?Object.keys(w)[0]:void 0,C=qa(r,S).filter((L,k)=>{if(L.route.lazy)return!0;
2if(L.route.loader==null)return!1;if(eo(t.loaderData,t.matches[k],L)||i.some(te=>te===L.route.id))return!0;let O=t.matches[k],J=L;return Gr(L,H({currentUrl:E,currentParams:O.params,nextUrl:b,nextParams:J.params},n,{actionResult:v,defaultShouldRevalidate:o||E.pathname+E.search===b.pathname+b.search||E.search!==b.search||dn(O,J)}))}),d=[];return s.forEach((L,k)=>{if(!r.some(q=>q.route.id===L.routeId))return;let O=ne(c,L.path,h);if(!O){d.push({key:k,routeId:L.routeId,path:L.path,matches:null,match:null,controller:null});return}let J=t.fetchers.get(k),te=ar(O,L.path),ie=!1;u.has(k)?ie=!1:l.includes(k)?ie=!0:J&&J.state!=="idle"&&J.data===void 0?ie=o:ie=Gr(te,H({currentUrl:E,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:r[r.length-1].params},n,{actionResult:v,defaultShouldRevalidate:o})),ie&&d.push({key:k,routeId:L.routeId,path:L.path,matches:O,match:te,controller:new AbortController})}),[C,d]}function eo(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function dn(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Gr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function Qr(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];N(a,"No route found in manifest");let o={};for(let i in n){let s=a[i]!==void 0&&i!=="hasErrorBoundary";Je(!s,'Route "'+a.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!s&&!Sa.has(i)&&(o[i]=n[i])}Object.assign(a,o),Object.assign(a,H({},t(a),{lazy:void 0}))}async function ot(e,t,r,n,a,o,i,l){l===void 0&&(l={});let s,u,c,h=v=>{let E,b=new Promise((S,U)=>E=U);return c=()=>E(),t.signal.addEventListener("abort",c),Promise.race([v({request:t,params:r.params,context:l.requestContext}),b])};try{let v=r.route[e];if(r.route.lazy)if(v)u=(await Promise.all([h(v),Qr(r.route,o,a)]))[0];else if(await Qr(r.route,o,a),v=r.route[e],v)u=await h(v);else if(e==="action"){let E=new URL(t.url),b=E.pathname+E.search;throw le(405,{method:t.method,pathname:b,routeId:r.route.id})}else return{type:X.data,data:void 0};else if(v)u=await h(v);else{let E=new URL(t.url),b=E.pathname+E.search;throw le(404,{pathname:b})}N(u!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(v){s=X.error,u=v}finally{c&&t.signal.removeEventListener("abort",c)}if(ao(u)){let v=u.status;if(Xa.has(v)){let S=u.headers.get("Location");if(N(S,"Redirects returned/thrown from loaders/actions must have a Location header"),!cn.test(S))S=rr(new URL(t.url),n.slice(0,n.indexOf(r)+1),i,!0,S);else if(!l.isStaticRequest){let U=new URL(t.url),C=S.startsWith("//")?new URL(U.protocol+S):new URL(S),d=pe(C.pathname,i)!=null;C.origin===U.origin&&d&&(S=C.pathname+C.search+C.hash)}if(l.isStaticRequest)throw u.headers.set("Location",S),u;return{type:X.redirect,status:v,location:S,revalidate:u.headers.get("X-Remix-Revalidate")!==null}}if(l.isRouteRequest)throw{type:s||X.data,response:u};let E,b=u.headers.get("Content-Type");return b&&/\bapplication\/json\b/.test(b)?E=await u.json():E=await u.text(),s===X.error?{type:s,error:new Ne(v,u.statusText,E),headers:u.headers}:{type:X.data,data:E,statusCode:u.status,headers:u.headers}}if(s===X.error)return{type:s,error:u};if(no(u)){var y,w;return{type:X.deferred,deferredData:u,statusCode:(y=u.init)==null?void 0:y.status,headers:((w=u.init)==null?void 0:w.headers)&&new Headers(u.init.headers)}}return{type:X.data,data:u}}function it(e,t,r,n){let a=e.createURL(fn(t)).toString(),o={signal:r};if(n&&me(n.formMethod)){let{formMethod:i,formEncType:l}=n;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(n.json)):l==="text/plain"?o.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?o.body=nr(n.formData):o.body=n.formData}
2return new Request(a,o)}function nr(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Zr(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function to(e,t,r,n,a){let o={},i=null,l,s=!1,u={};return r.forEach((c,h)=>{let y=t[h].route.id;if(N(!We(c),"Cannot handle redirect results in processLoaderData"),st(c)){let w=Ve(e,y),v=c.error;n&&(v=Object.values(n)[0],n=void 0),i=i||{},i[w.route.id]==null&&(i[w.route.id]=v),o[y]=void 0,s||(s=!0,l=Re(c.error)?c.error.status:500),c.headers&&(u[y]=c.headers)}else Te(c)?(a.set(y,c.deferredData),o[y]=c.deferredData.data):o[y]=c.data,c.statusCode!=null&&c.statusCode!==200&&!s&&(l=c.statusCode),c.headers&&(u[y]=c.headers)}),n&&(i=n,o[Object.keys(n)[0]]=void 0),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function qr(e,t,r,n,a,o,i,l){let{loaderData:s,errors:u}=to(t,r,n,a,l);for(let c=0;c<o.length;c++){let{key:h,match:y,controller:w}=o[c];N(i!==void 0&&i[c]!==void 0,"Did not find corresponding fetcher result");let v=i[c];if(!(w&&w.signal.aborted))if(st(v)){let E=Ve(e.matches,y?.route.id);u&&u[E.route.id]||(u=H({},u,{[E.route.id]:v.error})),e.fetchers.delete(h)}else if(We(v))N(!1,"Unhandled fetcher revalidation redirect");else if(Te(v))N(!1,"Unhandled fetcher deferred data");else{let E=ze(v.data);e.fetchers.set(h,E)}}return{loaderData:s,errors:u}}function en(e,t,r,n){let a=H({},t);for(let o of r){let i=o.route.id;if(t.hasOwnProperty(i)?t[i]!==void 0&&(a[i]=t[i]):e[i]!==void 0&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function Ve(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function tn(e){let t=e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function le(e,t){let{pathname:r,routeId:n,method:a,type:o}=t===void 0?{}:t,i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":o==="defer-action"?l="defer() is not supported in actions":o==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(i="Not Found",l='No route matches URL "'+r+'"'):e===405&&(i="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new Ne(e||500,i,new Error(l),!0)}function rn(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(We(r))return{result:r,idx:t}}}function fn(e){let t=typeof e=="string"?ee(e):e;return ue(H({},t,{hash:""}))}function ro(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Te(e){return e.type===X.deferred}function st(e){return e.type===X.error}function We(e){return(e&&e.type)===X.redirect}function no(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function ao(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function oo(e){return Ka.has(e.toLowerCase())}function me(e){return Wa.has(e.toLowerCase())}async function nn(e,t,r,n,a,o){for(let i=0;i<r.length;i++){let l=r[i],s=t[i];if(!s)continue;let u=e.find(h=>h.route.id===s.route.id),c=u!=null&&!dn(u,s)&&(o&&o[s.route.id])!==void 0;if(Te(l)&&(a||c)){let h=n[i];N(h,"Expected an AbortSignal for revalidating fetcher deferred result"),await hn(l,h,a).then(y=>{y&&(r[i]=y||r[i])})}}}async function hn(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:X.data,data:e.deferredData.unwrappedData}}catch(a){return{type:X.error,error:a}}return{type:X.data,data:e.deferredData.data}}}function ir(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function io(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function ar(e,t){let r=typeof t=="string"?ee(t).search:t.search;if(e[e.length-1].route.index&&ir(r||""))return e[e.length-1];let n=dt(e);return n[n.length-1]}function an(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;
2if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function bt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function lo(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function lt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t," _hasFetcherDoneAnything ":!0}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t," _hasFetcherDoneAnything ":!0}}function so(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0," _hasFetcherDoneAnything ":!0}}function ze(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e," _hasFetcherDoneAnything ":!0}}var z,Wr,X,Sa,Da,Ca,La,Pa,Ma,Aa,Kr,se,Ba,Ha,$a,ye,xt,Nt,Ne,un,Wa,Ja,Ka,Xa,Ya,er,Ga,$e,cn,Qa,Ti,Ke=Zt(()=>{"use strict";(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(z||(z={}));Wr="popstate";(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(X||(X={}));Sa=new Set(["lazy","caseSensitive","path","id","index","children"]);Da=/^:\w+$/,Ca=3,La=2,Pa=1,Ma=10,Aa=-2,Kr=e=>e==="*";se=e=>e.join("/").replace(/\/\/+/g,"/"),Ba=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ha=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,$a=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,ye=class extends Error{},xt=class{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],N(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((o,i)=>n=i),this.controller=new AbortController;let a=()=>n(new ye("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((o,i)=>{let[l,s]=i;return Object.assign(o,{[l]:this.trackPromise(l,s)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof ye)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let o=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>o}),this.emit(!1,r),Promise.reject(o)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(o=>{t.removeEventListener("abort",n),(o||this.done)&&a(o)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return N(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>
2{let[n,a]=r;return Object.assign(t,{[n]:Va(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}};Nt=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,H({},n,{headers:a}))},Ne=class{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};un=["post","put","patch","delete"],Wa=new Set(un),Ja=["get",...un],Ka=new Set(Ja),Xa=new Set([301,302,303,307,308]),Ya=new Set([307,308]),er={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ga={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},$e={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},cn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Qa=e=>({hasErrorBoundary:!!e.hasErrorBoundary});Ti=Symbol("deferred")});function Dt(){return Dt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Dt.apply(this,arguments)}function ke(e,t){let{relative:r}=t===void 0?{}:t;Xe()||N(!1);let{basename:n,navigator:a}=g.useContext(oe),{hash:o,pathname:i,search:l}=Ie(e,{relative:r}),s=i;return n!=="/"&&(s=i==="/"?n:se([n,i])),a.createHref({pathname:s,search:l,hash:o})}function Xe(){return g.useContext(ft)!=null}function Z(){return Xe()||N(!1),g.useContext(ft).location}function Rn(e){g.useContext(oe).static||g.useLayoutEffect(e)}function Lt(){let{isDataRoute:e}=g.useContext(re);return e?wo():fo()}function fo(){Xe()||N(!1);let e=g.useContext(be),{basename:t,navigator:r}=g.useContext(oe),{matches:n}=g.useContext(re),{pathname:a}=Z(),o=JSON.stringify(dt(n).map(s=>s.pathnameBase)),i=g.useRef(!1);return Rn(()=>{i.current=!0}),g.useCallback(function(s,u){if(u===void 0&&(u={}),!i.current)return;if(typeof s=="number"){r.go(s);return}let c=_t(s,JSON.parse(o),a,u.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:se([t,c.pathname])),(u.replace?r.replace:r.push)(c,u.state,u)},[t,r,o,a,e])}function cr(e){let t=g.useContext(re).outlet;return t&&g.createElement(ho.Provider,{value:e},t)}function gn(){let{matches:e}=g.useContext(re),t=e[e.length-1];return t?t.params:{}}function Ie(e,t){let{relative:r}=t===void 0?{}:t,{matches:n}=g.useContext(re),{pathname:a}=Z(),o=JSON.stringify(dt(n).map(i=>i.pathnameBase));return g.useMemo(()=>_t(e,JSON.parse(o),a,r==="path"),[e,o,a,r])}function mo(e,t,r){Xe()||N(!1);let{navigator:n}=g.useContext(oe),{matches:a}=g.useContext(re),o=a[a.length-1],i=o?o.params:{},l=o?o.pathname:"/",s=o?o.pathnameBase:"/",u=o&&o.route,c=Z(),h;if(t){var y;let S=typeof t=="string"?ee(t):t;s==="/"||(y=S.pathname)!=null&&y.startsWith(s)||N(!1),h=S}else h=c;let w=h.pathname||"/",v=s==="/"?w:w.slice(s.length)||"/",E=ne(e,{pathname:v}),b=go(E&&E.map(S=>Object.assign({},S,{params:Object.assign({},i,S.params),pathname:se([s,n.encodeLocation?n.encodeLocation(S.pathname).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?s:se([s,n.encodeLocation?n.encodeLocation(S.pathnameBase).pathname:S.pathnameBase])})),a,r);return t&&b?g.createElement(ft.Provider,{value:{location:Dt({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:z.Pop}},b):b}function po(){let e=je(),t=Re(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),r?g.createElement("pre",{style:a},r):null,null)}function Ro(e){let{routeContext:t,match:r,children:n}=e,a=g.useContext(be);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),g.createElement(re.Provider,{value:t},n)}function go(e,t,r){var n;if(t===void 0&&(t=[]),r===void 0&&(r=null),e==null){var a;if((a=r)!=null&&a.errors)e=r.matches;else return null}let o=e,i=(n=r)==null?void 0:n.errors;if(i!=null){let l=o.findIndex(s=>s.route.id&&i?.[s.route.id]);l>=0||N(!1),o=o.slice(0,Math.min(o.length,l+1))}return o.reduceRight((l,s,u)=>{let c=s.route.id?i?.[s.route.id]:null,h=null;r&&(h=s.route.errorElement||yo);let y=t.concat(o.slice(0,u+1)),w=()=>{let v;return c?v=h:s.route.Component?v=g.createElement(s.route.Component,null):s.route.element?v=s.route.element:v=l,g.createElement(Ro,{match:s,routeContext:{outlet:l,matches:y,isDataRoute:r!=null},children:v})};return r&&(s.route.ErrorBoundary||s.route.errorElement||u===0)?g.createElement(lr,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:w(),routeC
2ontext:{outlet:null,matches:y,isDataRoute:!0}}):w()},null)}function vo(e){let t=g.useContext(be);return t||N(!1),t}function Ye(e){let t=g.useContext(De);return t||N(!1),t}function Eo(e){let t=g.useContext(re);return t||N(!1),t}function Pt(e){let t=Eo(e),r=t.matches[t.matches.length-1];return r.route.id||N(!1),r.route.id}function dr(){return Pt(ce.UseRouteId)}function Ge(){return Ye(ce.UseNavigation).navigation}function ht(){let{matches:e,loaderData:t}=Ye(ce.UseMatches);return g.useMemo(()=>e.map(r=>{let{pathname:n,params:a}=r;return{id:r.route.id,pathname:n,params:a,data:t[r.route.id],handle:r.route.handle}}),[e,t])}function fr(){let e=Ye(ce.UseLoaderData),t=Pt(ce.UseLoaderData);if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function hr(e){return Ye(ce.UseRouteLoaderData).loaderData[e]}function mr(){let e=Ye(ce.UseActionData);return g.useContext(re)||N(!1),Object.values(e?.actionData||{})[0]}function je(){var e;let t=g.useContext(yn),r=Ye(ce.UseRouteError),n=Pt(ce.UseRouteError);return t||((e=r.errors)==null?void 0:e[n])}function pr(){let e=g.useContext(Ct);return e?._data}function Mt(){let e=g.useContext(Ct);return e?._error}function wo(){let{router:e}=vo(sr.UseNavigateStable),t=Pt(ce.UseNavigateStable),r=g.useRef(!1);return Rn(()=>{r.current=!0}),g.useCallback(function(a,o){o===void 0&&(o={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Dt({fromRouteId:t},o)))},[e,t])}function yr(e){let{fallbackElement:t,router:r,future:n}=e,[a,o]=g.useState(r.state),{v7_startTransition:i}=n||{},l=g.useCallback(h=>{i&&mn?mn(()=>o(h)):o(h)},[o,i]);g.useLayoutEffect(()=>r.subscribe(l),[r,l]);let s=g.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:h=>r.navigate(h),push:(h,y,w)=>r.navigate(h,{state:y,preventScrollReset:w?.preventScrollReset}),replace:(h,y,w)=>r.navigate(h,{replace:!0,state:y,preventScrollReset:w?.preventScrollReset})}),[r]),u=r.basename||"/",c=g.useMemo(()=>({router:r,navigator:s,static:!1,basename:u}),[r,s,u]);return g.createElement(g.Fragment,null,g.createElement(be.Provider,{value:c},g.createElement(De.Provider,{value:a},g.createElement(Rr,{basename:u,location:a.location,navigationType:a.historyAction,navigator:s},a.initialized?g.createElement(xo,{routes:r.routes,state:a}):t))),null)}function xo(e){let{routes:t,state:r}=e;return mo(t,void 0,r)}function At(e){return cr(e.context)}function Rr(e){let{basename:t="/",children:r=null,location:n,navigationType:a=z.Pop,navigator:o,static:i=!1}=e;Xe()&&N(!1);let l=t.replace(/^\/*/,"/"),s=g.useMemo(()=>({basename:l,navigator:o,static:i}),[l,o,i]);typeof n=="string"&&(n=ee(n));let{pathname:u="/",search:c="",hash:h="",state:y=null,key:w="default"}=n,v=g.useMemo(()=>{let E=pe(u,l);return E==null?null:{location:{pathname:E,search:c,hash:h,state:y,key:w},navigationType:a}},[l,u,c,h,y,w,a]);return v==null?null:g.createElement(oe.Provider,{value:s},g.createElement(ft.Provider,{children:r,value:v}))}function gr(e){let{children:t,errorElement:r,resolve:n}=e;return g.createElement(ur,{resolve:n,errorElement:r},g.createElement(_o,null,t))}function _o(e){let{children:t}=e,r=pr(),n=typeof t=="function"?t(r):t;return g.createElement(g.Fragment,null,n)}function vn(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:g.createElement(e.Component),Component:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:g.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}var g,be,De,Ct,oe,ft,re,yn,ho,yo,lr,sr,ce,bo,mn,ae,So,ur,vr=Zt(()=>{"use strict";g=Oe(Ue());Ke();Ke();be=g.createContext(null),De=g.createContext(null),Ct=g.createContext(null),oe=g.createContext(null),ft=g.createContext(null),re=g.createContext({outlet:null,matches:[],isDataRoute:!1}),yn=g.createContext(null);ho=g.createContext(null);yo=g.createElement(po,null),lr=class extends g.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error||r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error?g.createElement(re.Provider,{value:this.props.routeContext},g.createElement(yn.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};(function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"})(sr||(sr={}));
2(function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"})(ce||(ce={}));bo="startTransition",mn=g[bo];(function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"})(ae||(ae={}));So=new Promise(()=>{}),ur=class extends g.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("<Await> caught the following error during render",t,r)}render(){let{children:t,errorElement:r,resolve:n}=this.props,a=null,o=ae.pending;if(!(n instanceof Promise))o=ae.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){o=ae.error;let i=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>i})}else n._tracked?(a=n,o=a._error!==void 0?ae.error:a._data!==void 0?ae.success:ae.pending):(o=ae.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),a=n.then(i=>Object.defineProperty(n,"_data",{get:()=>i}),i=>Object.defineProperty(n,"_error",{get:()=>i})));if(o===ae.error&&a._error instanceof ye)throw So;if(o===ae.error&&!r)throw a._error;if(o===ae.error)return g.createElement(Ct.Provider,{value:a,children:r});if(o===ae.success)return g.createElement(Ct.Provider,{value:a,children:t});throw a}}});function de(){return de=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},de.apply(this,arguments)}function xr(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,o;for(o=0;o<n.length;o++)a=n[o],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}function Tt(e){return e!=null&&typeof e.tagName=="string"}function Mo(e){return Tt(e)&&e.tagName.toLowerCase()==="button"}function Ao(e){return Tt(e)&&e.tagName.toLowerCase()==="form"}function Fo(e){return Tt(e)&&e.tagName.toLowerCase()==="input"}function Oo(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Uo(e,t){return e.button===0&&(!t||t==="_self")&&!Oo(e)}function To(){if(Ft===null)try{new FormData(document.createElement("form"),0),Ft=!1}catch{Ft=!0}return Ft}function wr(e){return e!=null&&!ko.has(e)?null:e}function bn(e,t){let r,n,a,o,i;if(Ao(e)){let l=e.getAttribute("action");n=l?pe(l,t):null,r=e.getAttribute("method")||Ut,a=wr(e.getAttribute("enctype"))||Er,o=new FormData(e)}else if(Mo(e)||Fo(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(n=s?pe(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Ut,a=wr(e.getAttribute("formenctype"))||wr(l.getAttribute("enctype"))||Er,o=new FormData(l,e),!To()){let{name:u,type:c,value:h}=e;
2if(c==="image"){let y=u?u+".":"";o.append(y+"x","0"),o.append(y+"y","0")}else u&&o.append(u,h)}}else{if(Tt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Ut,n=null,a=Er,i=e}return o&&a==="text/plain"&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}function xn(e,t){return or({basename:t?.basename,future:de({},t?.future,{v7_prependBasename:!0}),history:on({window:t?.window}),hydrationData:t?.hydrationData||Ho(),routes:e,mapRouteProperties:vn}).initialize()}function Ho(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=de({},t,{errors:$o(t.errors)})),t}function $o(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new Ne(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let o=window[a.__subType];if(typeof o=="function")try{let i=new o(a.message);i.stack="",r[n]=i}catch{}}if(r[n]==null){let o=new Error(a.message);o.stack="",r[n]=o}}else r[n]=a;return r}function kt(e){let t=M.useContext(be);return t||N(!1),t}function Ko(e){let t=M.useContext(De);return t||N(!1),t}function Xo(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:i}=t===void 0?{}:t,l=Lt(),s=Z(),u=Ie(e,{relative:i});return M.useCallback(c=>{if(Uo(c,r)){c.preventDefault();let h=n!==void 0?n:ue(s)===ue(u);l(e,{replace:h,state:a,preventScrollReset:o,relative:i})}},[s,l,u,n,a,r,e,o,i])}function Nn(){if(typeof document>"u")throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}function Dn(){let{router:e}
2=kt(Qe.UseSubmit),{basename:t}=M.useContext(oe),r=dr();return M.useCallback(function(n,a){a===void 0&&(a={}),Nn();let{action:o,method:i,encType:l,formData:s,body:u}=bn(n,t);e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r})},[e,t,r])}function Cn(e,t){let{router:r}=kt(Qe.UseSubmitFetcher),{basename:n}=M.useContext(oe);return M.useCallback(function(a,o){o===void 0&&(o={}),Nn();let{action:i,method:l,encType:s,formData:u,body:c}=bn(a,n);t==null&&N(!1),r.fetch(e,t,o.action||i,{preventScrollReset:o.preventScrollReset,formData:u,body:c,formMethod:o.method||l,formEncType:o.encType||s})},[r,n,e,t])}function Ln(e,t){let{relative:r}=t===void 0?{}:t,{basename:n}=M.useContext(oe),a=M.useContext(re);a||N(!1);let[o]=a.matches.slice(-1),i=de({},Ie(e||".",{relative:r})),l=Z();if(e==null&&(i.search=l.search,i.hash=l.hash,o.route.index)){let s=new URLSearchParams(i.search);s.delete("index"),i.search=s.toString()?"?"+s.toString():""}return(!e||e===".")&&o.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(i.pathname=i.pathname==="/"?n:se([n,i.pathname])),ue(i)}function Yo(e,t){return M.forwardRef((n,a)=>{let o=Cn(e,t);return M.createElement(_n,de({},n,{ref:a,submit:o}))})}function Pn(){var e;let{router:t}=kt(Qe.UseFetcher),r=M.useContext(re);r||N(!1);let n=(e=r.matches[r.matches.length-1])==null?void 0:e.route.id;n==null&&N(!1);let[a]=M.useState(()=>String(++Go)),[o]=M.useState(()=>(n||N(!1),Yo(a,n))),[i]=M.useState(()=>c=>{t||N(!1),n||N(!1),t.fetch(a,n,c)}),l=Cn(a,n),s=t.getFetcher(a),u=M.useMemo(()=>de({Form:o,submit:l,load:i},s),[s,o,l,i]);return M.useEffect(()=>()=>{if(!t){console.warn("No router available to clean up from useFetcher()");return}t.deleteFetcher(a)},[t,a]),u}function Mn(e){let{getKey:t,storageKey:r}=e===void 0?{}:e,{router:n}=kt(Qe.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=Ko(br.UseScrollRestoration),{basename:i}=M.useContext(oe),l=Z(),s=ht(),u=Ge();M.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Qo(M.useCallback(()=>{if(u.state==="idle"){let c=(t?t(l,s):null)||l.key;Ot[c]=window.scrollY}sessionStorage.setItem(r||En,JSON.stringify(Ot)),window.history.scrollRestoration="auto"},[r,t,u.state,l,s])),typeof document<"u"&&(M.useLayoutEffect(()=>{try{let c=sessionStorage.getItem(r||En);c&&(Ot=JSON.parse(c))}catch{}},[r]),M.useLayoutEffect(()=>{let c=t&&i!=="/"?(y,w)=>t(de({},y,{pathname:pe(y.pathname,i)||y.pathname}),w):t,h=n?.enableScrollRestoration(Ot,()=>window.scrollY,c);return()=>h&&h()},[n,i,t]),M.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}if(l.hash){let c=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(c){c.scrollIntoView();return}}o!==!0&&window.scrollTo(0,0)}},[l,a,o]))}function Qo(e,t){let{capture:r}=t||{};M.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}var M,Ut,Er,Ft,ko,Io,jo,Bo,zo,el,Vo,Wo,Sr,Sn,Jo,_n,Qe,br,Go,En,Ot,Ce=Zt(()=>{"use strict";M=Oe(Ue());vr();vr();Ke();Ut="get",Er="application/x-www-form-urlencoded";Ft=null;ko=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);Io=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"],jo=["aria-current","caseSensitive","className","end","style","to","children"],Bo=["reloadDocument","replace","state","method","action","onSubmit","submit","relative","preventScrollReset"];zo="startTransition",el=M[zo],Vo=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Wo=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Sr=M.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:c}=t,h=xr(t,Io),{basename:y}=M.useContext(oe),w,v=!1;if(typeof u=="string"&&Wo.test(u)&&(w=u,Vo))try{let U=new URL(window.location.href),C=u.startsWith("//")?new URL(U.protocol+u):new URL(u),d=pe(C.pathname,y);C.origin===U.origin&&d!=null?u=d+C.search+C.hash:v=!0}catch{}let E=ke(u,{relative:a}),b=Xo(u,{replace:i,state:l,target:s,preventScrollReset:c,relative:a});function S(U){n&&n(U),U.defaultPrevented||b(U)}return M.createElement("a",de({},h,{href:w||E,onClick:v||o?n:S,ref:r,target:s}))}),Sn=M.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:a=!1,className:o="",end:i=!1,style:l,to:s,children:u}=t,c=xr(t,jo),h=Ie(s,{relative:c.relative}),y=Z(),w=M.useContext(De),{navigator:v}=M.useContext(oe),E=v.encodeLocation?v.encodeLocation(h).pathname:h.pathname,b=y.pathname,S=w&&w.navigation&&w.navigation.location?w.navigation.location.pathname:null;a||(b=b.toLowerCase(),S=S?S.toLowerCase():null,E=E.toLowerCase());let U=b===E||!i&&b.startsWith(E)&&b.charAt(E.length)==="/",C=S!=null&&(S===E||!i&&S.startsWith(E)&&S.charAt(E.length)==="/"),d=U?n:void 0,L;typeof o=="function"?L=o({isActive:U,isPending:C}
2):L=[o,U?"active":null,C?"pending":null].filter(Boolean).join(" ");let k=typeof l=="function"?l({isActive:U,isPending:C}):l;return M.createElement(Sr,de({},c,{"aria-current":d,className:L,ref:r,style:k,to:s}),typeof u=="function"?u({isActive:U,isPending:C}):u)}),Jo=M.forwardRef((e,t)=>{let r=Dn();return M.createElement(_n,de({},e,{submit:r,ref:t}))}),_n=M.forwardRef((e,t)=>{let{reloadDocument:r,replace:n,state:a,method:o=Ut,action:i,onSubmit:l,submit:s,relative:u,preventScrollReset:c}=e,h=xr(e,Bo),y=o.toLowerCase()==="get"?"get":"post",w=Ln(i,{relative:u});return M.createElement("form",de({ref:t,method:y,action:w,onSubmit:r?l:E=>{if(l&&l(E),E.defaultPrevented)return;E.preventDefault();let b=E.nativeEvent.submitter,S=b?.getAttribute("formmethod")||o;s(b||E.currentTarget,{method:S,replace:n,state:a,relative:u,preventScrollReset:c})}},h))});(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher"})(Qe||(Qe={}));(function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(br||(br={}));Go=0;En="react-router-scroll-positions",Ot={}});var Le=Oe(Ue());Ce();function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},V.apply(this,arguments)}var R=Oe(Ue());Ce();var T=Oe(Ue());Ce();var It=class extends T.default.Component{constructor(t){super(t),this.state={error:t.error||null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location?{error:t.error||null,location:t.location}:{error:t.error||r.error,location:r.location}}render(){return this.state.error?T.default.createElement(this.props.component,{error:this.state.error}):this.props.children}};function Ze({error:e}){return T.default.useEffect(()=>{console.error(e)},[e]),T.default.createElement("html",{lang:"en"},T.default.createElement("head",null,T.default.createElement("meta",{charSet:"utf-8"}),T.default.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"}),T.default.createElement("title",null,"Application Error!")),T.default.createElement("body",null,T.default.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},T.default.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),e.stack?T.default.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},e.stack):null),T.default.createElement("script",{dangerouslySetInnerHTML:{__html:`
3              console.log(
4                "\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."
5              );
6            `}})))}function An(){let e=je();if(Re(e))return T.default.createElement(Tn,{caught:e});if(e instanceof Error)return T.default.createElement(Ze,{error:e});{let t=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);return T.default.createElement(Ze,{error:new Error(t)})}}var Fn=T.default.createContext(void 0);function Zo(){return(0,T.useContext)(Fn)}function On({catch:e,component:t,children:r}){return e?T.default.createElement(Fn.Provider,{value:e},T.default.createElement(t,null)):T.default.createElement(T.default.Fragment,null,r)}function Un(){let e=Zo();return T.default.createElement(Tn,{caught:e})}function Tn({caught:e}){return T.default.createElement("html",{lang:"en"},T.default.createElement("head",null,T.default.createElement("meta",{charSet:"utf-8"}),T.default.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"}),T.default.createElement("title",null,"Unhandled Thrown Response!")),T.default.createElement("body",null,T.default.createElement("h1",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},e.status," ",e.statusText),T.default.createElement("script",{dangerouslySetInnerHTML:{__html:`
7              console.log(
8                "\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."
9              );
10            `}})))}function fe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}Ce();async function jt(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch{return window.location.reload(),new Promise(()=>{})}}function kn(e,t,r){let n=e.map(o=>{var i;let l=t[o.route.id];return((i=l.links)===null||i===void 0?void 0:i.call(l))||[]}).flat(1),a=ti(e,r);return ri(n,a)}async function In(e){if(!e.links)return;let t=e.links();if(!t)return;let r=[];for(let a of t)!Bt(a)&&a.rel==="stylesheet"&&r.push({...a,rel:"preload",as:"style"});let n=r.filter(a=>(!a.media||window.matchMedia(a.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${a.href}"]`));await Promise.all(n.map(qo))}async function qo(e){return new Promise(t=>{let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function Bt(e){return e!=null&&typeof e.page=="string"}function ei(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 jn(e,t,r){return(await Promise.all(e.map(async a=>{let o=await jt(t.routes[a.route.id],r);return o.links?o.links():[]}))).flat(1).filter(ei).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="preload"?{...a,rel:"prefetch"}:{...a,rel:"prefetch",as:"style"})}function _r(e,t,r,n,a,o){let i=$n(e),l=(c,h)=>r[h]?c.route.id!==r[h].route.id:!0,s=(c,h)=>{var y;return r[h].pathname!==c.pathname||((y=r[h].route.path)===null||y===void 0?void 0:y.endsWith("*"))&&r[h].params["*"]!==c.params["*"]};return o==="data"&&a.search!==i.search?t.filter((c,h)=>{if(!n.routes[c.route.id].hasLoader)return!1;if(l(c,h)||s(c,h))return!0;
10if(c.route.shouldRevalidate){var w;let v=c.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((w=r[0])===null||w===void 0?void 0:w.params)||{},nextUrl:new URL(e,window.origin),nextParams:c.params,defaultShouldRevalidate:!0});if(typeof v=="boolean")return v}return!0}):t.filter((c,h)=>{let y=n.routes[c.route.id];return(o==="assets"||y.hasLoader)&&(l(c,h)||s(c,h))})}function Bn(e,t,r){let n=$n(e);return Nr(t.filter(a=>r.routes[a.route.id].hasLoader).map(a=>{let{pathname:o,search:i}=n,l=new URLSearchParams(i);return l.set("_data",a.route.id),`${o}?${l}`}))}function Hn(e,t){return Nr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function ti(e,t){return Nr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Nr(e){return[...new Set(e)]}function ri(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(!Bt(o)&&o.as==="script"&&o.href&&n.has(o.href))return a;let l=JSON.stringify(o);return r.has(l)||(r.add(l),a.push(o)),a},[])}function $n(e){let t=ee(e);return t.search===void 0&&(t.search=""),t}var ni={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ai=/[&><\u2028\u2029]/g;function mt(e){return e.replace(ai,t=>ni[t])}function Dr(e){return{__html:e}}var zn={state:"idle",type:"init",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,submission:void 0};function Wn(){let e=R.useContext(be);return fe(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function yt(){let e=R.useContext(De);return fe(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Rt=R.createContext(void 0);Rt.displayName="Remix";function ge(){let e=R.useContext(Rt);return fe(e,"You must render this element inside a <Remix> element"),e}function Jn({id:e}){let{routeModules:t,future:r}=ge();fe(t,`Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules.
11Check this link for more details:
12https://remix.run/pages/gotchas#server-code-in-client-bundles`);let{default:n,ErrorBoundary:a,CatchBoundary:o}=t[e];return!n&&(a||!r.v2_errorBoundary&&o)&&(n=At),fe(n,`Route "${e}" has no component! Please go add a \`default\` export in the route module file.
13If you were trying to navigate or submit to a resource route, use \`<a>\` instead of \`<Link>\` or \`<Form reloadDocument>\`.`),R.createElement(n,null)}function Kn({id:e}){let{future:t,routeModules:r}=ge();fe(r,`Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules.
14Check this link for more details:
15https://remix.run/pages/gotchas#server-code-in-client-bundles`);let n=je(),{CatchBoundary:a,ErrorBoundary:o}=r[e];if(t.v2_errorBoundary){if(e==="root"&&(o||(o=An)),o)return R.createElement(o,null);throw n}if(e==="root"&&(a||(a=Un),o||(o=Ze)),Re(n)){let i=n;if(i!=null&&i.error&&i.status!==404&&o)return R.createElement(o,{error:i.error});if(a)return R.createElement(On,{catch:n,component:a})}if(n instanceof Error&&o)return R.createElement(o,{error:n});throw n}function Xn(e,t){let[r,n]=R.useState(!1),[a,o]=R.useState(!1),{onFocus:i,onBlur:l,onMouseEnter:s,onMouseLeave:u,onTouchStart:c}=t,h=R.useRef(null);R.useEffect(()=>{if(e==="render"&&o(!0),e==="viewport"){let v=b=>{b.forEach(S=>{o(S.isIntersecting)})},E=new IntersectionObserver(v,{threshold:.5});return h.current&&E.observe(h.current),()=>{E.disconnect()}}},[e]);let y=()=>{e==="intent"&&n(!0)},w=()=>{e==="intent"&&(n(!1),o(!1))};return R.useEffect(()=>{if(r){let v=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(v)}}},[r]),[a,h,{onFocus:pt(i,y),onBlur:pt(l,w),onMouseEnter:pt(s,y),onMouseLeave:pt(u,w),onTouchStart:pt(c,y)}]}var Yn=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Gn=R.forwardRef(({to:e,prefetch:t="none",...r},n)=>{let a=typeof e=="string"&&Yn.test(e),o=ke(e),[i,l,s]=Xn(t,r);return R.createElement(R.Fragment,null,R.createElement(Sn,V({},r,s,{ref:qn(n,l),to:e})),i&&!a?R.createElement(Ht,{page:o}):null)});Gn.displayName="NavLink";var Qn=R.forwardRef(({to:e,prefetch:t="none",...r},n)=>{let a=typeof e=="string"&&Yn.test(e),o=ke(e),[i,l,s]=Xn(t,r);return R.createElement(R.Fragment,null,R.createElement(Sr,V({},r,s,{ref:qn(n,l),to:e})),i&&!a?R.createElement(Ht,{page:o}):null)});Qn.displayName="Link";function pt(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}var oi="\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";var ii="\u26A0\uFE0F REMIX FUTURE CHANGE: `fetcher.type` will be removed in v2. Please use `fetcher.state`, `fetcher.formData`, and `fetcher.data` to achieve the same UX. For instructions on making this change see https://remix.run/docs/en/v1.15.0/pages/v2#usefetcher",li="\u26A0\uFE0F REMIX FUTURE CHANGE : `fetcher.submission` will be removed in v2. The submission fields are now part of the fetcher object itself (`fetcher.formData`). For instructions on making this change see https://remix.run/docs/en/v1.15.0/pages/v2#usefetcher";function si(){let{manifest:e,routeModules:t}=ge(),{errors:r,matches:n}=yt(),a=r?n.slice(0,n.findIndex(i=>r[i.route.id])+1):n,o=R.useMemo(()=>kn(a,t,e),[a,t,e]);return R.useEffect(()=>{o.some(i=>"imagesizes"in i||"imagesrcset"in i)&&void 0},[o]),R.createElement(R.Fragment,null,o.map(i=>{if(Bt(i))return R.createElement(Ht,V({key:i.page},i));let l=null;return"useId"in R?(i.imagesrcset&&(i.imageSrcSet=l=i.imagesrcset,delete i.imagesrcset),i.imagesizes&&(i.imageSizes=i.imagesizes,delete i.imagesizes)
15):(i.imageSrcSet&&(i.imagesrcset=l=i.imageSrcSet,delete i.imageSrcSet),i.imageSizes&&(i.imagesizes=i.imageSizes,delete i.imageSizes)),R.createElement("link",V({key:i.rel+(i.href||"")+(l||"")},i))}))}function Ht({page:e,...t}){let{router:r}=Wn(),n=R.useMemo(()=>ne(r.routes,e),[r.routes,e]);return n?R.createElement(ci,V({page:e,matches:n},t)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function ui(e){let{manifest:t,routeModules:r}=ge(),[n,a]=R.useState([]);return R.useEffect(()=>{let o=!1;return jn(e,t,r).then(i=>{o||a(i)}),()=>{o=!0}},[e,t,r]),n}function ci({page:e,matches:t,...r}){let n=Z(),{manifest:a}=ge(),{matches:o}=yt(),i=R.useMemo(()=>_r(e,t,o,a,n,"data"),[e,t,o,a,n]),l=R.useMemo(()=>_r(e,t,o,a,n,"assets"),[e,t,o,a,n]),s=R.useMemo(()=>Bn(e,i,a),[i,e,a]),u=R.useMemo(()=>Hn(l,a),[l,a]),c=ui(l);return R.createElement(R.Fragment,null,s.map(h=>R.createElement("link",V({key:h,rel:"prefetch",as:"fetch",href:h},r))),u.map(h=>R.createElement("link",V({key:h,rel:"modulepreload",href:h},r))),c.map(h=>R.createElement("link",V({key:h.href},h))))}function di(){let{routeModules:e}=ge(),{errors:t,matches:r,loaderData:n}=yt(),a=Z(),o=t?r.slice(0,r.findIndex(s=>t[s.route.id])+1):r,i={},l={};for(let s of o){let u=s.route.id,c=n[u],h=s.params,y=e[u];if(y.meta){let w=typeof y.meta=="function"?y.meta({data:c,parentsData:l,params:h,location:a}):y.meta;if(w&&Array.isArray(w))throw new Error("The route at "+s.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,w)}l[u]=c}return R.createElement(R.Fragment,null,Object.entries(i).map(([s,u])=>{if(!u)return null;if(["charset","charSet"].includes(s))return R.createElement("meta",{key:"charSet",charSet:u});if(s==="title")return R.createElement("title",{key:"title"},String(u));let c=/^(og|music|video|article|book|profile|fb):.+$/.test(s);return[u].flat().map(h=>c?R.createElement("meta",{property:s,content:h,key:s+h}):typeof h=="string"?R.createElement("meta",{name:s,content:h,key:s+h}):R.createElement("meta",V({key:s+JSON.stringify(h)},h)))}))}function fi(){let{routeModules:e}=ge(),{errors:t,matches:r,loaderData:n}=yt(),a=Z(),o=t?r.slice(0,r.findIndex(u=>t[u.route.id])+1):r,i=[],l=null,s=[];for(let u=0;u<o.length;u++){let c=o[u],h=c.route.id,y=n[h],w=c.params,v=e[h],E=[],b={id:h,data:y,meta:[],params:c.params,pathname:c.pathname,handle:c.route.handle,get route(){return console.warn("The meta function in "+c.route.path+" accesses the `route` property on `matches`. This is deprecated and will be removed in Remix version 2. See"),c.route}};if(s[u]=b,v!=null&&v.meta?E=typeof v.meta=="function"?v.meta({data:y,params:w,location:a,matches:s}):Array.isArray(v.meta)?[...v.meta]:v.meta:l&&(E=[...l]),E=E||[],!Array.isArray(E))throw new Error("The `v2_meta` API is enabled in the Remix config, but the route at "+c.route.path+` returns an invalid value. In v2, all route meta functions must return an array of meta objects.
16
17To reference the v1 meta function API, see https://remix.run/route/meta`);b.meta=E,s[u]=b,i=[...E],l=i}return R.createElement(R.Fragment,null,i.flat().map(u=>{if(!u)return null;if("tagName"in u){let c=u.tagName;return delete u.tagName,hi(c)?R.createElement(c,V({key:JSON.stringify(u)},u)):(console.warn(`A meta object uses an invalid tagName: ${c}. Expected either 'link' or 'meta'`),null)}if("title"in u)return R.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"?R.createElement("meta",{key:"charSet",charSet:u.charSet}):null;if("script:ld+json"in u){let c=null;try{c=JSON.stringify(u["script:ld+json"])}catch{}return c!=null&&R.createElement("script",{key:"script:ld+json",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(u["script:ld+json"])}})}return R.createElement("meta",V({key:JSON.stringify(u)},u))}))}function hi(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function mi(){let{future:e}=ge();return e!=null&&e.v2_meta?R.createElement(fi,null):R.createElement(di,null)}function Zn(e){return R.createElement(gr,e)}var Cr=!1;function pi(e){let{manifest:t,serverHandoffString:r,abortDelay:n,serializeError:a}=ge(),{router:o,static:i,staticContext:l}=Wn(),{matches:s}=yt(),u=Ge();R.useEffect(()=>{Cr=!0},[]);let c=(C,d)=>{let L;return a&&d instanceof Error?L=a(d):L=d,`${JSON.stringify(C)}:__remixContext.p(!1, ${mt(JSON.stringify(L))})`},h=(C,d,L)=>{let k;try{k=JSON.stringify(L)}catch(O){return c(d,O)}return`${JSON.stringify(d)}:__remixContext.p(${mt(k)})`},y=(C,d,L)=>{let k;return a&&L instanceof Error?k=a(L):k=L,`__remixContext.r(${JSON.stringify(C)}, ${JSON.stringify(d)}, !1, ${mt(JSON.stringify(k))})`},w=(C,d,L)=>{let k;try{k=JSON.stringify(L)}catch(O){return y(C,d,O)}return`__remixContext.r(${JSON.stringify(C)}, ${JSON.stringify(d)}, ${mt(k)})`},v=[],E=R.useMemo(()=>{var C;let d=l?`window.__remixContext = ${r};`:" ",L=l?.activeDeferreds;d+=L?["__remixContext.p = function(v,e,p,x) {","  if (typeof e !== 'undefined') {",`    x=new Error("Unexpected Server Error");
18    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 n=="number"?`setTimeout(() => {if(typeof p._error !== "undefined" || typeof p._data !== "undefined"){return;} __remixContext.t[i][k].e(new Error("Server timeout."))}, ${n});`:"","  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");
19    x.stack=undefined;`,"    p.e(x);","  } else {","    p.r(v);","  }","};"].join(`
20`)+Object.entries(L).map(([O,J])=>{let te=new Set(J.pendingKeys),ie=J.deferredKeys.map(q=>{if(te.has(q))return v.push(R.createElement(Vn,{key:`${O} | ${q}`,deferredData:J,routeId:O,dataKey:q,scriptProps:e,serializeData:w,serializeError:y})),`${JSON.stringify(q)}:__remixContext.n(${JSON.stringify(O)}, ${JSON.stringify(q)})`;{let $=J.data[q];return typeof $._error<"u"?c(q,$._error):h(O,q,$._data)}}).join(`,
21`);return`Object.assign(__remixContext.state.loaderData[${JSON.stringify(O)}], {${ie}});`}).join(`
22`)+(v.length>0?`__remixContext.a=${v.length};`:""):"";let k=i?`${(C=t.hmr)!==null&&C!==void 0&&C.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}import ${JSON.stringify(t.url)};
23${s.map((O,J)=>`import * as route${J} from ${JSON.stringify(t.routes[O.route.id].module)};`).join(`
24`)}
25window.__remixRouteModules = {${s.map((O,J)=>`${JSON.stringify(O.route.id)}:route${J}`).join(",")}};
26
27import(${JSON.stringify(t.entry.module)});`:" ";return R.createElement(R.Fragment,null,R.createElement("script",V({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Dr(d),type:void 0})),R.createElement("script",V({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Dr(k),type:"module",async:!0})))},[]);if(!i&&typeof __remixContext=="object"&&__remixContext.a)for(let C=0;C<__remixContext.a;
27C++)v.push(R.createElement(Vn,{key:C,scriptProps:e,serializeData:w,serializeError:y}));let b=R.useMemo(()=>{if(u.location){let C=ne(o.routes,u.location);return fe(C,`No routes match path "${u.location.pathname}"`),C}return[]},[u.location,o.routes]),S=s.concat(b).map(C=>{let d=t.routes[C.route.id];return(d.imports||[]).concat([d.module])}).flat(1),U=Cr?[]:t.entry.imports.concat(S);return Cr?null:R.createElement(R.Fragment,null,R.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),Ri(U).map(C=>R.createElement("link",{key:C,rel:"modulepreload",href:C,crossOrigin:e.crossOrigin})),E,v)}function Vn({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:o}){return typeof document>"u"&&t&&e&&r&&fe(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),R.createElement(R.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:R.createElement("script",V({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?R.createElement(Zn,{resolve:t.data[e],errorElement:R.createElement(yi,{dataKey:e,routeId:r,scriptProps:n,serializeError:o}),children:i=>R.createElement("script",V({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,i)}}))}):R.createElement("script",V({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function yi({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=Mt();return R.createElement("script",V({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function Ri(e){return[...new Set(e)]}function Lr(){let{routeModules:e}=ge(),t=ht();return R.useMemo(()=>t.map(r=>({id:r.id,pathname:r.pathname,params:r.params,data:r.data,handle:e[r.id].handle})),[t,e])}function gi(){return fr()}function vi(e){return hr(e)}function Ei(){return mr()}function wi(){let e=Pn();return R.useMemo(()=>{let r={...xi({state:e.state,data:e.data,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text," _hasFetcherDoneAnything ":e[" _hasFetcherDoneAnything "]}),load:e.load,submit:e.submit,Form:e.Form};return bi(r),r},[e])}function bi(e){let t=e.type;Object.defineProperty(e,"type",{get(){return t},set(n){t=n},configurable:!0,enumerable:!0});let r=e.submission;Object.defineProperty(e,"submission",{get(){return r},set(n){r=n},configurable:!0,enumerable:!0})}function xi(e){let{state:t,formMethod:r,formAction:n,formEncType:a,formData:o,json:i,text:l,data:s}=e,u=r!=null&&["POST","PUT","PATCH","DELETE"].includes(r.toUpperCase());if(t==="idle")return e[" _hasFetcherDoneAnything "]===!0?{state:"idle",type:"done",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,submission:void 0,data:s}:zn;if(t==="submitting"&&r&&n&&a&&(o||i!==void 0||l!==void 0)){if(u)return{state:t,type:"actionSubmission",formMethod:r.toUpperCase(),formAction:n,formEncType:a,formData:o,json:i,text:l,submission:{method:r.toUpperCase(),action:n,encType:a,formData:o,json:i,text:l,key:""},data:s};fe(!1,"Encountered an unexpected fetcher scenario in useFetcher()")}if(t==="loading"&&r&&n&&a){if(u)return s?{state:t,type:"actionReload",formMethod:r.toUpperCase(),formAction:n,formEncType:a,formData:o,json:i,text:l,submission:{method:r.toUpperCase(),action:n,encType:a,formData:o,json:i,text:l,key:""},data:s}:{state:t,type:"actionRedirect",formMethod:r.toUpperCase(),formAction:n,formEncType:a,formData:o,json:i,text:l,submission:{method:r.toUpperCase(),action:n,encType:a,formData:o,json:i,text:l,key:""},data:void 0};{let h=new URL(n,window.location.origin);return o&&(h.search=new URLSearchParams(o.entries()).toString()),{state:"submitting",type:"loaderSubmission",formMethod:r.toUpperCase(),formAction:n,formEncType:a,formData:o,json:i,text:l,submission:{method:r.toUpperCase(),action:h.pathname+h.search,encType:a,formData:o,json:i,text:l,key:""},data:s}}}return{state:"loading",type:"normalLoad",formMethod:void 0,formAction:void 0,formData:void 0,json:void 0,text:void 0,formEncType:void 0,submission:void 0,data:s}}var Si=()=>null;function qn(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}Ke();function ea(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new Ne(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let o=window[a.__subType];if(typeof o=="function")try{let i=new o(a.message);i.stack=a.stack,r[n]=i}catch{}}if(r[n]==null){let o=new Error(a.message);o.stack=a.stack,r[n]=o}}else r[n]=a;return r}var Mr=Oe(Ue());Ce();Ke();function ra(e){return e.headers.get("X-Remix-Catch")!=null}function _i(e){return e.headers.get("X-Remix-Error")!=null}function Ni(e){return Di(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 na(e){return e.headers.get("X-Remix-Redirect")!=null}function aa(e){var t;return!!((t=e.headers.get("Content-Type"))!==null&&t!==void 0&&t.match(/text\/remix-deferred/))}function Di(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}async function Pr(e,t,r=0){let n=new URL(e.url);n.searchParams.set("_data",t);let a={signal:e.signal};if(e.method!=="GET"){a.method=e.method;let l=e.headers.get("Content-Type");l&&/\bapplication\/json\b/.test(l)?(a.headers={"Content-Type":l},a.body=JSON.stringify(await e.json())):l&&/\btext\/plain\b/.test(l)?(a.headers={"Content-Type":l},a.body=await e.text()):l&&/\bapplication\/x-www-form-urlencoded\b/.test(l)?a.body=new URLSearchParams(await e.text()):a.body=await e.formData()}r>0&&await new Promise(l=>setTimeout(l,5**r*10));let o=window.__remixRevalidation,i=await fetch(n.href,a).catch(l=>{if(typeof o=="number"&&o===window.__remixRevalidation&&l?.name==="TypeError"&&r<3)return Pr(e,t,r+1);throw l});if(_i(i)){let l=await i.json(),s=new Error(l.message);return s.stack=l.stack,s}if(Ni(i)){let l=await i.text(),s=new Error(l);return s.stack=void 0,s}return i}var Ci="__deferred_promise:";async function oa(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let t,r={};try{let n=Li(e),o=(await n.next()).value;if(!o)throw new Error("no critical data");let i=JSON.parse(o);if(typeof i=="object"&&i!==null)for(let[l,s]of Object.entries(i))typeof s!="str
27ing"||!s.startsWith(Ci)||(t=t||{},t[l]=new Promise((u,c)=>{r[l]={resolve:h=>{u(h),delete r[l]},reject:h=>{c(h),delete r[l]}}}));return(async()=>{try{for await(let l of n){let[s,...u]=l.split(":"),c=u.join(":"),h=JSON.parse(c);if(s==="data")for(let[y,w]of Object.entries(h))r[y]&&r[y].resolve(w);else if(s==="error")for(let[y,w]of Object.entries(h)){let v=new Error(w.message);v.stack=w.stack,r[y]&&r[y].reject(v)}}for(let[l,s]of Object.entries(r))s.reject(new ye(`Deferred ${l} will never be resolved`))}catch(l){for(let s of Object.values(r))s.reject(l)}})(),new xt({...i,...t})}catch(n){for(let a of Object.values(r))a.reject(n);throw n}}async function*Li(e){let t=e.getReader(),r=[],n=[],a=!1,o=new TextEncoder,i=new TextDecoder,l=async()=>{if(n.length>0)return n.shift();for(;!a&&n.length===0;){let u=await t.read();if(u.done){a=!0;break}r.push(u.value);try{let h=i.decode(ta(...r)).split(`
28
29`);if(h.length>=2&&(n.push(...h.slice(0,-1)),r=[o.encode(h.slice(-1).join(`
30
31`))]),n.length>0)break}catch{continue}}return n.length>0||r.length>0&&(n=i.decode(ta(...r)).split(`
32
33`).filter(c=>c),r=[]),n.shift()},s=await l();for(;s;)yield s,s=await l()}function ta(...e){let t=new Uint8Array(e.reduce((n,a)=>n+a.length,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function Pi(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function Ar(e,t,r,n="",a=Pi(e),o){return(a[n]||[]).map(i=>{let l=r.v2_errorBoundary===!0?i.id==="root"||i.hasErrorBoundary:i.id==="root"||i.hasCatchBoundary||i.hasErrorBoundary,s={caseSensitive:i.caseSensitive,element:Mr.createElement(Jn,{id:i.id}),errorElement:l?Mr.createElement(Kn,{id:i.id}):void 0,id:i.id,index:i.index,path:i.path,handle:void 0,loader:ia(i,t,!1),action:ia(i,t,!0),shouldRevalidate:Mi(i,t,o)},u=Ar(e,t,r,i.id,a,o);return u.length>0&&(s.children=u),s})}function Mi(e,t,r){let n=!1;return function(a){let o=t[e.id];return fe(o,`Expected route module to be loaded for ${e.id}`),r!==void 0&&!n?(n=!0,r.has(e.id)):o.shouldRevalidate?o.shouldRevalidate(a):a.defaultShouldRevalidate}}async function Ai(e,t){let r=await jt(e,t);return await In(r),r}function ia(e,t,r){return async({request:n})=>{let a=Ai(e,t);try{if(r&&!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(!r&&!e.hasLoader)return null;let o=await Pr(n,e.id);if(o instanceof Error)throw o;if(na(o))throw Fi(o);if(ra(o))throw o;return aa(o)&&o.body?await oa(o.body):o}finally{await a}}}function Fi(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");return a&&(n["X-Remix-Revalidate"]=a),Nt(r,{status:t,headers:n})}var qe;var Fr,Bl=new Promise(e=>{Fr=e}).catch(()=>{});function Oi(e){if(!qe){let n=Ar(window.__remixManifest.routes,window.__remixRouteModules,window.__remixContext.future),a=window.__remixContext.state;a&&a.errors&&(a={...a,errors:ea(a.errors)}),qe=xn(n,{hydrationData:a,future:{v7_normalizeFormMethod:window.__remixContext.future.v2_normalizeFormMethod}});let o=window.__remixContext.url,i=window.location.pathname;if(o!==i){let l=`Initial URL (${o}) does not match URL at time of hydration (${i}), reloading page...`;console.error(l),window.location.reload()}Fr&&Fr(qe)}let[t,r]=Le.useState(qe.state.location);return Le.useLayoutEffect(()=>qe.subscribe(n=>{n.location!==t&&r(n.location)}),[t]),Le.createElement(Rt.Provider,{value:{manifest:window.__remixManifest,routeModules:window.__remixRouteModules,future:window.__remixContext.future}},Le.createElement(It,{location:t,component:Ze},Le.createElement(yr,{router:qe,fallbackElement:null,future:{v7_startTransition:!0}})))}Ce();var $t=Oe(Ue());Ce();var la="positions";function Ui({getKey:e,...t}){let r=Z(),n=Lr();Mn({getKey:e,storageKey:la});let a=$t.useMemo(()=>{if(!e)return null;let i=e(r,n);return i!==r.key?i:null},[]),o=((i,l)=>{if(!window.history.state||!window.history.state.key){let s=Math.random().toString(32).slice(2);window.history.replaceState({key:s},"")}try{let u=JSON.parse(sessionStorage.getItem(i)||"{}")[l||window.history.state.key];typeof u=="number"&&window.scrollTo(0,u)}catch(s){console.error(s),sessionStorage.removeItem(i)}}).toString();return $t.createElement("script",V({},t,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${o})(${JSON.stringify(la)}, ${JSON.stringify(a)})`}}))}export{Re as a,Z as b,gn as c,Ge as d,je as e,At as f,Jo as g,Dn as h,Pn as i,Ce as j,Qn as k,si as l,mi as m,pi as n,Lr as o,gi as p,vi as q,Ei as r,wi as s,Si as t,Oi as u,Ui as v};
34/*! Bundled license information:
35
36@remix-run/router/dist/router.js:
37  (**
38   * @remix-run/router v1.7.2
39   *
40   * Copyright (c) Remix Software Inc.
41   *
42   * This source code is licensed under the MIT license found in the
43   * LICENSE.md file in the root directory of this source tree.
44   *
45   * @license MIT
46   *)
47
48react-router/dist/index.js:
49  (**
50   * React Router v6.14.2
51   *
52   * Copyright (c) Remix Software Inc.
53   *
54   * This source code is licensed under the MIT license found in the
55   * LICENSE.md file in the root directory of this source tree.
56   *
57   * @license MIT
58   *)
59
60react-router-dom/dist/index.js:
61  (**
62   * React Router DOM v6.14.2
63   *
64   * Copyright (c) Remix Software Inc.
65   *
66   * This source code is licensed under the MIT license found in the
67   * LICENSE.md file in the root directory of this source tree.
68   *
69   * @license MIT
70   *)
71
72@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js:
73  (**
74   * @remix-run/react v1.19.3
75   *
76   * Copyright (c) Remix Software Inc.
77   *
78   * This source code is licensed under the MIT license found in the
79   * LICENSE.md file in the root directory of this source tree.
80   *
81   * @license MIT
82   *)
83
84@remix-run/react/dist/esm/errorBoundaries.js:
85  (**
86   * @remix-run/react v1.19.3
87   *
88   * Copyright (c) Remix Software Inc.
89   *
90   * This source code is licensed under the MIT license found in the
91   * LICENSE.md file in the root directory of this source tree.
92   *
93   * @license MIT
94   *)
95
96@remix-run/react/dist/esm/invariant.js:
97  (**
98   * @remix-run/react v1.19.3
99   *
100   * Copyright (c) Remix Software Inc.
101   *
102   * This source code is licensed under the MIT license found in the
103   * LICENSE.md file in the root directory of this source tree.
104   *
105   * @license MIT
106   *)
107
108@remix-run/react/dist/esm/routeModules.js:
109  (**
110   * @remix-run/react v1.19.3
111   *
112   * Copyright (c) Remix Software Inc.
113   *
114   * This source code is licensed under the MIT license found in the
115   * LICENSE.md file in the root directory of this source tree.
116   *
117   * @license MIT
118   *)
119
120@remix-run/react/dist/esm/links.js:
121  (**
122   * @remix-run/react v1.19.3
123   *
124   * Copyright (c) Remix Software Inc.
125   *
126   * This source code is licensed under the MIT license found in the
127   * LICENSE.md file in the root directory of this source tree.
128   *
129   * @license MIT
130   *)
131
132@remix-run/react/dist/esm/markup.js:
133  (**
134   * @remix-run/react v1.19.3
135   *
136   * Copyright (c) Remix Software Inc.
137   *
138   * This source code is licensed under the MIT license found in the
139   * LICENSE.md file in the root directory of this source tree.
140   *
141   * @license MIT
142   *)
143
144@remix-run/react/dist/esm/transition.js:
145  (**
146   * @remix-run/react v1.19.3
147   *
148   * Copyright (c) Remix Software Inc.
149   *
150   * This source code is licensed under the MIT license found in the
151   * LICENSE.md file in the root directory of this source tree.
152   *
153   * @license MIT
154   *)
155
156@remix-run/react/dist/esm/components.js:
157  (**
158   * @remix-run/react v1.19.3
159   *
160   * Copyright (c) Remix Software Inc.
161   *
162   * This source code is licensed under the MIT license found in the
163   * LICENSE.md file in the root directory of this source tree.
164   *
165   * @license MIT
166   *)
167
168@remix-run/react/dist/esm/errors.js:
169  (**
170   * @remix-run/react v1.19.3
171   *
172   * Copyright (c) Remix Software Inc.
173   *
174   * This source code is licensed under the MIT license found in the
175   * LICENSE.md file in the root directory of this source tree.
176   *
177   * @license MIT
178   *)
179
180@remix-run/react/dist/esm/data.js:
181  (**
182   * @remix-run/react v1.19.3
183   *
184   * Copyright (c) Remix Software Inc.
185   *
186   * This source code is licensed under the MIT license found in the
187   * LICENSE.md file in the root directory of this source tree.
188   *
189   * @license MIT
190   *)
191
192@remix-run/react/dist/esm/routes.js:
193  (**
194   * @remix-run/react v1.19.3
195   *
196   * Copyright (c) Remix Software Inc.
197   *
198   * This source code is licensed under the MIT license found in the
199   * LICENSE.md file in the root directory of this source tree.
200   *
201   * @license MIT
202   *)
203
204@remix-run/react/dist/esm/browser.js:
205  (**
206   * @remix-run/react v1.19.3
207   *
208   * Copyright (c) Remix Software Inc.
209   *
210   * This source code is licensed under the MIT license found in the
211   * LICENSE.md file in the root directory of this source tree.
212   *
213   * @license MIT
214   *)
215
216@remix-run/react/dist/esm/scroll-restoration.js:
217  (**
218   * @remix-run/react v1.19.3
219   *
220   * Copyright (c) Remix Software Inc.
221   *
222   * This source code is licensed under the MIT license found in the
223   * LICENSE.md file in the root directory of this source tree.
224   *
225   * @license MIT
226   *)
227
228@remix-run/react/dist/esm/index.js:
229  (**
230   * @remix-run/react v1.19.3
231   *
232   * Copyright (c) Remix Software Inc.
233   *
234   * This source code is licensed under the MIT license found in the
235   * LICENSE.md file in the root directory of this source tree.
236   *
237   * @license MIT
238   *)
239*/

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.