vendor: 4,504 bytes, lines 1-9
1var wn={exports:{}},It={},En={exports:{}},H={};/** 2 * @license React 3 * react.production.min.js 4 * 5 * Copyright (c) Facebook, Inc. and its affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var lt=Symbol.for("react.element"),Na=Symbol.for("react.portal"),Fa=Symbol.for("react.fragment"),Aa=Symbol.for("react.strict_mode"),ja=Symbol.for("react.profiler"),Ua=Symbol.for("react.provider"),Ha=Symbol.for("react.context"),za=Symbol.for("react.forward_ref"),Ba=Symbol.for("react.suspense"),Va=Symbol.for("react.memo"),Wa=Symbol.for("react.lazy"),zr=Symbol.iterator;function Ya(e){return e===null||typeof e!="object"?null:(e=zr&&e[zr]||e["@@iterator"],typeof e=="function"?e:null)}var bn={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Rn=Object.assign,Sn={};function Ye(e,t,r){this.props=e,this.context=t,this.refs=Sn,this.updater=r||bn}Ye.prototype.isReactComponent={};Ye.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ye.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function xn(){}xn.prototype=Ye.prototype;function cr(e,t,r){this.props=e,this.context=t,this.refs=Sn,this.updater=r||bn}var dr=cr.prototype=new xn;dr.constructor=cr;Rn(dr,Ye.prototype);dr.isPureReactComponent=!0;var Br=Array.isArray,Ln=Object.prototype.hasOwnProperty,fr={current:null},Cn={key:!0,ref:!0,__self:!0,__source:!0};function Pn(e,t,r){var n,a={},o=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(o=""+t.key),t)Ln.call(t,n)&&!Cn.hasOwnProperty(n)&&(a[n]=t[n]);var s=arguments.length-2;if(s===1)a.children=r;else if(1<s){for(var i=Array(s),u=0;u<s;u++)i[u]=arguments[u+2];a.children=i}if(e&&e.defaultProps)for(n in s=e.defaultProps,s)a[n]===void 0&&(a[n]=s[n]);return{$$typeof:lt,type:e,key:o,ref:l,props:a,_owner:fr.current}}function Ja(e,t){return{$$typeof:lt,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function hr(e){return typeof e=="object"&&e!==null&&e.$$typeof===lt}function Ga(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Vr=/\/+/g;function Wt(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Ga(""+e.key):t.toString(36)}function xt(e,t,r,n,a){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(o){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case lt:case Na:l=!0}}if(l)return l=e,a=a(l),e=n===""?"."+Wt(l,0):n,Br(a)?(r="",e!=null&&(r=e.replace(Vr,"$&/")+"/"),xt(a,t,r,"",function(u){return u})):a!=null&&(hr(a)&&(a=Ja(a,r+(!a.key||l&&l.key===a.key?"":(""+a.key).replace(Vr,"$&/")+"/")+e)),t.push(a)),1;if(l=0,n=n===""?".":n+":",Br(e))for(var s=0;s<e.length;s++){o=e[s];var i=n+Wt(o,s);l+=xt(o,t,r,i,a)}else if(i=Ya(e),typeof i=="function")for(e=i.call(e),s=0;!(o=e.next()).done;)o=o.value,i=n+Wt(o,s++),l+=xt(o,t,r,i,a);else if(o==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function gt(e,t,r){if(e==null)return e;var n=[],a=0;return xt(e,n,"","",function(o){return t.call(r,o,a++)}),n}function Ka(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ie={current:null},Lt={transition:null},Xa={ReactCurrentDispatcher:ie,ReactCurrentBatchConfig:Lt,ReactCurrentOwner:fr};function Mn(){throw Error("act(...) is not supported in production builds of React.")}H.Children={map:gt,forEach:function(e,t,r){gt(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return gt(e,function(){t++}),t},toArray:function(e){return gt(e,function(t){return t})||[]},only:function(e){if(!hr(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};H.Component=Ye;H.Fragment=Fa;H.Profiler=ja;H.PureComponent=cr;H.StrictMode=Aa;H.Suspense=Ba;
9H.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Xa;H.act=Mn;H.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=Rn({},e.props),a=e.key,o=e.ref,l=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,l=fr.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(i in t)Ln.call(t,i)&&!Cn.hasOwnProperty(i)&&(n[i]=t[i]===void 0&&s!==void 0?s[i]:t[i])}var i=arguments.length-2;if(i===1)n.children=r;else if(1<i){s=Array(i);for(var u=0;u<i;u++)s[u]=arguments[u+2];n.children=s}return{$$typeof:lt,type:e.type,key:a,ref:o,props:n,_owner:l}};H.createContext=function(e){return e={$$typeof:Ha,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Ua,_context:e},e.Consumer=e};H.createElement=Pn;H.createFactory=function(e){var t=Pn.bind(null,e);return t.type=e,t};H.createRef=function(){return{current:null}};H.forwardRef=function(e){return{$$typeof:za,render:e}};H.isValidElement=hr;H.lazy=function(e){return{$$typeof:Wa,_payload:{_status:-1,_result:e},_init:Ka}};H.memo=function(e,t){return{$$typeof:Va,type:e,compare:t===void 0?null:t}};H.startTransition=function(e){var t=Lt.transition;Lt.transition={};try{e()}finally{Lt.transition=t}};H.unstable_act=Mn;H.useCallback=function(e,t){return ie.current.useCallback(e,t)};H.useContext=function(e){return ie.current.useContext(e)};H.useDebugValue=function(){};H.useDeferredValue=function(e){return ie.current.useDeferredValue(e)};H.useEffect=function(e,t){return ie.current.useEffect(e,t)};H.useId=function(){return ie.current.useId()};H.useImperativeHandle=function(e,t,r){return ie.current.useImperativeHandle(e,t,r)};H.useInsertionEffect=function(e,t){return ie.current.useInsertionEffect(e,t)};H.useLayoutEffect=function(e,t){return ie.current.useLayoutEffect(e,t)};H.useMemo=function(e,t){return ie.current.useMemo(e,t)};H.useReducer=function(e,t,r){return ie.current.useReducer(e,t,r)};H.useRef=function(e){return ie.current.useRef(e)};H.useState=function(e){return ie.current.useState(e)};H.useSyncExternalStore=function(e,t,r){return ie.current.useSyncExternalStore(e,t,r)};H.useTransition=function(){return ie.current.useTransition()};H.version="18.3.1";En.exports=H;var f=En.exports;/** 10 * @license React 11 * react-jsx-runtime.production.min.js 12 * 13 * Copyright (c) Facebook, Inc. and its affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var qa=f,Qa=Symbol.for("react.element"),Za=Symbol.for("react.fragment"),eo=Object.prototype.hasOwnProperty,to=qa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ro={key:!0,ref:!0,__self:!0,__source:!0};function Dn(e,t,r){var n,a={},o=null,l=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(n in t)eo.call(t,n)&&!ro.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Qa,type:e,key:o,ref:l,props:a,_owner:to.current}}It.Fragment=Za;It.jsx=Dn;It.jsxs=Dn;wn.exports=It;var ts=wn.exports,mr={};Object.defineProperty(mr,"__esModule",{value:!0});mr.parse=uo;mr.serialize=co;const no=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,ao=/^[\u0021-\u003A\u003C-\u007E]*$/,oo=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,io=/^[\u0020-\u003A\u003D-\u007E]*$/,lo=Object.prototype.toString,so=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function uo(e,t){const r=new so,n=e.length;if(n<2)return r;const a=(t==null?void 0:t.decode)||fo;let o=0;do{const l=e.indexOf("=",o);if(l===-1)break;const s=e.indexOf(";",o),i=s===-1?n:s;if(l>i){o=e.lastIndexOf(";",l-1)+1;continue}const u=Wr(e,o,l),d=Yr(e,l,u),h=e.slice(u,d);if(r[h]===void 0){let m=Wr(e,l+1,i),v=Yr(e,i,m);const E=a(e.slice(m,v));r[h]=E}o=i+1}while(o<n);return r}function Wr(e,t,r){do{const n=e.charCodeAt(t);if(n!==32&&n!==9)return t}while(++t<r);return r}function Yr(e,t,r){for(;t>r;){const n=e.charCodeAt(--t);if(n!==32&&n!==9)return t+1}return r}function co(e,t,r){const n=(r==null?void 0:r.encode)||encodeURIComponent;
17if(!no.test(e))throw new TypeError(`argument name is invalid: ${e}`);const a=n(t);if(!ao.test(a))throw new TypeError(`argument val is invalid: ${t}`);let o=e+"="+a;if(!r)return o;if(r.maxAge!==void 0){if(!Number.isInteger(r.maxAge))throw new TypeError(`option maxAge is invalid: ${r.maxAge}`);o+="; Max-Age="+r.maxAge}if(r.domain){if(!oo.test(r.domain))throw new TypeError(`option domain is invalid: ${r.domain}`);o+="; Domain="+r.domain}if(r.path){if(!io.test(r.path))throw new TypeError(`option path is invalid: ${r.path}`);o+="; Path="+r.path}if(r.expires){if(!ho(r.expires)||!Number.isFinite(r.expires.valueOf()))throw new TypeError(`option expires is invalid: ${r.expires}`);o+="; Expires="+r.expires.toUTCString()}if(r.httpOnly&&(o+="; HttpOnly"),r.secure&&(o+="; Secure"),r.partitioned&&(o+="; Partitioned"),r.priority)switch(typeof r.priority=="string"?r.priority.toLowerCase():void 0){case"low":o+="; Priority=Low";break;case"medium":o+="; Priority=Medium";break;case"high":o+="; Priority=High";break;default:throw new TypeError(`option priority is invali
17d: ${r.priority}`)}if(r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:case"strict":o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"none":o+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${r.sameSite}`)}return o}function fo(e){if(e.indexOf("%")===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function ho(e){return lo.call(e)==="[object Date]"}/** 18 * react-router v7.6.1 19 * 20 * Copyright (c) Remix Software Inc. 21 * 22 * This source code is licensed under the MIT license found in the 23 * LICENSE.md file in the root directory of this source tree. 24 * 25 * @license MIT 26 */var _n=e=>{throw TypeError(e)},mo=(e,t,r)=>t.has(e)||_n("Cannot "+r),Yt=(e,t,r)=>(mo(e,t,"read from private field"),r?r.call(e):t.get(e)),po=(e,t,r)=>t.has(e)?_n("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Jr="popstate";function rs(e={}){function t(n,a){let{pathname:o,search:l,hash:s}=n.location;return ot("",{pathname:o,search:l,hash:s},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:De(a)}return vo(t,r,null,e)}function U(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function K(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function yo(){return Math.random().toString(36).substring(2,10)}function Gr(e,t){return{usr:e.state,key:e.key,idx:t}}function ot(e,t,r=null,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Te(t):t,state:r,key:t&&t.key||n||yo()}}function De({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function Te(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function vo(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,l=a.history,s="POP",i=null,u=d();u==null&&(u=0,l.replaceState({...l.state,idx:u},""));function d(){return(l.state||{idx:null}).idx}function h(){s="POP";let R=d(),w=R==null?null:R-u;u=R,i&&i({action:s,location:b.location,delta:w})}function m(R,w){s="PUSH";let $=ot(b.location,R,w);u=d()+1;let C=Gr($,u),M=b.createHref($);try{l.pushState(C,"",M)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;a.location.assign(M)}o&&i&&i({action:s,location:b.location,delta:1})}function v(R,w){s="REPLACE";let $=ot(b.location,R,w);u=d();let C=Gr($,u),M=b.createHref($);l.replaceState(C,"",M),o&&i&&i({action:s,location:b.location,delta:0})}function E(R){return Tn(R)}let b={get action(){return s},get location(){return e(a,l)},listen(R){if(i)throw new Error("A history only accepts one active listener");return a.addEventListener(Jr,h),i=R,()=>{a.removeEventListener(Jr,h),i=null}},createHref(R){return t(a,R)},createURL:E,encodeLocation(R){let w=E(R);return{pathname:w.pathname,search:w.search,hash:w.hash}},push:m,replace:v,go(R){return l.go(R)}};return b}function Tn(e,t=!1){let r="http://localhost";
26typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),U(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:De(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}var nt,Kr=class{constructor(e){if(po(this,nt,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Yt(this,nt).has(e))return Yt(this,nt).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Yt(this,nt).set(e,t)}};nt=new WeakMap;var go=new Set(["lazy","caseSensitive","path","id","index","children"]);function wo(e){return go.has(e)}var Eo=new Set(["lazy","caseSensitive","path","id","index","unstable_middleware","children"]);function bo(e){return Eo.has(e)}function Ro(e){return e.index===!0}function Tt(e,t,r=[],n={}){return e.map((a,o)=>{let l=[...r,String(o)],s=typeof a.id=="string"?a.id:l.join("-");if(U(a.index!==!0||!a.children,"Cannot specify children on an index route"),U(!n[s],`Found a route id collision on i
26d "${s}". Route id's must be globally unique within Data Router usages`),Ro(a)){let i={...a,...t(a),id:s};return n[s]=i,i}else{let i={...a,...t(a),id:s,children:void 0};return n[s]=i,a.children&&(i.children=Tt(a.children,t,l,n)),i}})}function be(e,t,r="/"){return Ct(e,t,r,!1)}function Ct(e,t,r,n){let a=typeof t=="string"?Te(t):t,o=he(a.pathname||"/",r);if(o==null)return null;let l=On(e);So(l);let s=null;for(let i=0;s==null&&i<l.length;++i){let u=Oo(o);s=ko(l[i],u,n)}return s}function kn(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 On(e,t=[],r=[],n=""){let a=(o,l,s)=>{let i={relativePath:s===void 0?o.path||"":s,caseSensitive:o.caseSensitive===!0,childrenIndex:l,route:o};i.relativePath.startsWith("/")&&(U(i.relativePath.startsWith(n),`Absolute route path "${i.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),i.relativePath=i.relativePath.slice(n.length));let u=Re([n,i.relativePath]),d=r.concat(i);o.children&&o.children.length>0&&(U(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${u}".`),On(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:_o(u,o.index),routesMeta:d})};return e.forEach((o,l)=>{var s;if(o.path===""||!((s=o.path)!=null&&s.includes("?")))a(o,l);else for(let i of $n(o.path))a(o,l,i)}),t}function $n(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 l=$n(n.join("/")),s=[];return s.push(...l.map(i=>i===""?o:[o,i].join("/"))),a&&s.push(...l),s.map(i=>e.startsWith("/")&&i===""?"/":i)}function So(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:To(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var xo=/^:[\w-]+$/,Lo=3,Co=2,Po=1,Mo=10,Do=-2,Xr=e=>e==="*";function _o(e,t){let r=e.split("/"),n=r.length;return r.some(Xr)&&(n+=Do),t&&(n+=Co),r.filter(a=>!Xr(a)).reduce((a,o)=>a+(xo.test(o)?Lo:o===""?Po:Mo),n)}function To(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 ko(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",l=[];for(let s=0;s<n.length;++s){let i=n[s],u=s===n.length-1,d=o==="/"?t:t.slice(o.length)||"/",h=kt({path:i.relativePath,caseSensitive:i.caseSensitive,end:u},d),m=i.route;if(!h&&u&&r&&!n[n.length-1].route.index&&(h=kt({path:i.relativePath,caseSensitive:i.caseSensitive,end:!1},d)),!h)return null;
26Object.assign(a,h.params),l.push({params:a,pathname:Re([o,h.pathname]),pathnameBase:No(Re([o,h.pathnameBase])),route:m}),h.pathnameBase!=="/"&&(o=Re([o,h.pathnameBase]))}return l}function kt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=In(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],l=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((u,{paramName:d,isOptional:h},m)=>{if(d==="*"){let E=s[m]||"";l=o.slice(0,o.length-E.length).replace(/(.)\/+$/,"$1")}const v=s[m];return h&&!v?u[d]=void 0:u[d]=(v||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:l,pattern:e}}function In(e,t=!1,r=!0){K(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,(l,s,i)=>(n.push({paramName:s,isOptional:i!=null}),i?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Oo(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return K(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function he(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 $o(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Te(e):e;return{pathname:r?r.startsWith("/")?r:Io(r,t):t,search:Fo(n),hash:Ao(a)}}function Io(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 Jt(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 Nn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function pr(e){let t=Nn(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function yr(e,t,r,n=!1){let a;typeof e=="string"?a=Te(e):(a={...e},U(!a.pathname||!a.pathname.includes("?"),Jt("?","pathname","search",a)),U(!a.pathname||!a.pathname.includes("#"),Jt("#","pathname","hash",a)),U(!a.search||!a.search.includes("#"),Jt("#","search","hash",a)));let o=e===""||a.pathname==="",l=o?"/":a.pathname,s;if(l==null)s=r;else{let h=t.length-1;if(!n&&l.startsWith("..")){let m=l.split("/");for(;m[0]==="..";)m.shift(),h-=1;a.pathname=m.join("/")}s=h>=0?t[h]:"/"}let i=$o(a,s),u=l&&l!=="/"&&l.endsWith("/"),d=(o||l===".")&&r.endsWith("/");return!i.pathname.endsWith("/")&&(u||d)&&(i.pathname+="/"),i}var Re=e=>e.join("/").replace(/\/\/+/g,"/"),No=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Fo=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Ao=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,jo=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function Uo(e,t){return new jo(e,typeof t=="number"?{status:t}:t)}var Ho=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},_e=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Ue(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var Fn=["POST","PUT","PATCH","DELETE"],zo=new Set(Fn),Bo=["GET",...Fn],Vo=new Set(Bo),Wo=new Set([301,302,303,307,308]),Yo=new Set([307,308]),Gt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Jo={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},et={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},vr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Go=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),An="remix-router-transitions",jn=Symbol("ResetLoaderData");function ns(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";U(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let n=e.hydrationRouteProperties||[],a=e.mapRouteProperties||Go,o={},l=Tt(e.routes,a,void 0,o),s,i=e.basename||"/",u=e.dataStrategy||Zo,d={unstable_middleware:!1,...e.future},h=null,m=new Set,v=null,E=null,b=null,R=e.hydrationData!=null,w=be(l,e.history.location,i),$=!1,C=null,M;if(w==null&&!e.patchRoutesOnNavigation){let c=ye(404,{pathname:e.history.location.pathname}),{matches:y,route:g}=un(l);M=!0,w=y,C={[g.id]:c}}else if(w&&!e.hydrationData&&mt(w,l,e.history.location.pathname).active&&(w=null),w)if(w.some(c=>c.route.lazy))M=!1;else if(!w.some(c=>c.route.loader))M=!0;else{let c=e.hydrationData?e.hydrationData.loaderData:null,y=e.hydrationData?e.hydrationData.errors:null;if(y){let g=w.findIndex(S=>y[S.route.id]!==void 0);M=w.slice(0,g+1).every(S=>!tr(S.route,c,y))}else M=w.every(g=>!tr(g.route,c,y))}else{M=!1,w=[];let c=mt(null,l,e.history.location.pathname);c.active&&c.matches&&($=!0,w=c.matches)}let x,p={historyAction:e.history.action,location:e.history.location,matches:w,initialized:M,navigation:Gt,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||C,fetchers:new Map,blockers:new Map},D="POP",A=!1,N,J=!1,Q=new Map,le=null,Z=!1,V=!1,G=new Set,B=new Map,te=0,ue=-1,re=new Map,se=new Set,ge=new Map,we=new Map,ne=new Set,ke=new Map,ft,Oe=null;function wa(){if(h=e.history.listen(({action:c,location:y,delta:g})=>{if(ft){ft(),ft=void 0;return}K(ke.size===0||g!=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 S=Ar({currentLocation:p.location,nextLocation:y,historyAction:c});if(S&&g!=null){let L=new Promise(_=>{ft=_});e.history.go(g*-1),ht(S,{state:"blocked",location:y,proceed(){ht(S,{state:"proceeding",proceed:void 0,reset:void 0,location:y}),L.then(()=>e.history.go(g))},reset(){let _=new Map(p.blockers);_.set(S,et),ae({blockers:_})}});return}return $e(c,y)}),r){ci(t,Q);let c=()=>di(t,Q);t.addEventListener("pagehide",c),le=()=>t.removeEventListener("pagehide",c)}return p.initialized||$e("POP",p.location,{initialHydration:!0}),x}function Ea(){h&&h(),le&&le(),m.clear(),N&&N.abort(),p.fetchers.forEac
26h((c,y)=>Ht(y)),p.blockers.forEach((c,y)=>Fr(y))}function ba(c){return m.add(c),()=>m.delete(c)}function ae(c,y={}){p={...p,...c};let g=[],S=[];p.fetchers.forEach((L,_)=>{L.state==="idle"&&(ne.has(_)?g.push(_):S.push(_))}),ne.forEach(L=>{!p.fetchers.has(L)&&!B.has(L)&&g.push(L)}),[...m].forEach(L=>L(p,{deletedFetchers:g,viewTransitionOpts:y.viewTransitionOpts,flushSync:y.flushSync===!0})),g.forEach(L=>Ht(L)),S.forEach(L=>p.fetchers.delete(L))}function ze(c,y,{flushSync:g}={}){var O,F;let S=p.actionData!=null&&p.navigation.formMethod!=null&&fe(p.navigation.formMethod)&&p.navigation.state==="loading"&&((O=c.state)==null?void 0:O._isRedirect)!==!0,L;y.actionData?Object.keys(y.actionData).length>0?L=y.actionData:L=null:S?L=p.actionData:L=null;let _=y.loaderData?ln(p.loaderData,y.loaderData,y.matches||[],y.errors):p.loaderData,I=p.blockers;I.size>0&&(I=new Map(I),I.forEach((k,j)=>I.set(j,et)));let P=A===!0||p.navigation.formMethod!=null&&fe(p.navigation.formMethod)&&((F=c.state)==null?void 0:F._isRedirect)!==!0;s&&(l=s,s=void 0),Z||D==="POP"||(D==="PUSH"?e.history.push(c,c.state):D==="REPLACE"&&e.history.replace(c,c.state));let T;if(D==="POP"){let k=Q.get(p.location.pathname);k&&k.has(c.pathname)?T={currentLocation:p.location,nextLocation:c}:Q.has(c.pathname)&&(T={currentLocation:c,nextLocation:p.location})}else if(J){let k=Q.get(p.location.pathname);k?k.add(c.pathname):(k=new Set([c.pathname]),Q.set(p.location.pathname,k)),T={currentLocation:p.location,nextLocation:c}}ae({...y,actionData:L,loaderData:_,historyAction:D,location:c,initialized:!0,navigation:Gt,revalidation:"idle",restoreScrollPosition:Ur(c,y.matches||p.matches),preventScrollReset:P,blockers:I},{viewTransitionOpts:T,flushSync:g===!0}),D="POP",A=!1,J=!1,Z=!1,V=!1,Oe==null||Oe.resolve(),Oe=null}async function _r(c,y){if(typeof c=="number"){e.history.go(c);return}let g=er(p.location,p.matches,i,c,y==null?void 0:y.fromRouteId,y==null?void 0:y.relative),{path:S,submission:L,error:_}=qr(!1,g,y),I=p.location,P=ot(p.location,S,y&&y.state);P={...P,...e.history.encodeLocation(P)};let T=y&&y.replace!=null?y.replace:void 0,O="PUSH";T===!0?O="REPLACE":T===!1||L!=null&&fe(L.formMethod)&&L.formAction===p.location.pathname+p.location.search&&(O="REPLACE");let F=y&&"preventScrollReset"in y?y.preventScrollReset===!0:void 0,k=(y&&y.flushSync)===!0,j=Ar({currentLocation:I,nextLocation:P,historyAction:O});if(j){ht(j,{state:"blocked",location:P,proceed(){ht(j,{state:"proceeding",proceed:void 0,reset:void 0,location:P}),_r(c,y)},reset(){let Y=new Map(p.blockers);Y.set(j,et),ae({blockers:Y})}});return}await $e(O,P,{submission:L,pendingError:_,preventScrollReset:F,replace:y&&y.replace,enableViewTransition:y&&y.viewTransition,flushSync:k})}function Ra(){Oe||(Oe=fi()),Ut(),ae({revalidation:"loading"});let c=Oe.promise;return p.navigation.state==="submitting"?c:p.navigation.state==="idle"?($e(p.historyAction,p.location,{startUninterruptedRevalidation:!0}),c):($e(D||p.historyAction,p.navigation.location,{overrideNavigation:p.navigation,enableViewTransition:J===!0}),c)}async function $e(c,y,g){N&&N.abort(),N=null,D=c,Z=(g&&g.startUninterruptedRevalidation)===!0,ka(p.location,p.matches),A=(g&&g.preventScrollReset)===!0,J=(g&&g.enableViewTransition)===!0;let S=s||l,L=g&&g.overrideNavigation,_=g!=null&&g.initialHydration&&p.matches&&p.matches.length>0&&!$?p.matches:be(S,y,i),I=(g&&g.flushSync)===!0;if(_&&p.initialized&&!V&&oi(p.location,y)&&!(g&&g.submission&&fe(g.submission.formMethod))){ze(y,{matches:_},{flushSync:I});return}let P=mt(_,S,y.pathname);if(P.active&&P.matches&&(_=P.matches),!_){let{error:ee,notFoundMatches:ce,route:z}=zt(y.pathname);ze(y,{matches:ce,loaderData:{},errors:{[z.id]:ee}},{flushSync:I});return}N=new AbortController;let T=Ve(e.history,y,N.signal,g&&g.submission),O=new Kr(e.unstable_getContext?await e.unstable_getContext():void 0),F;if(g&&g.pendingError)F=[Ae(_).route.id,{type:"error",error:g.pendingError}];else if(g&&g.submission&&fe(g.submission.formMethod)){let ee=await Sa(T,y,g.submission,_,O,P.active,g&&g.initialHydration===!0,{replace:g.replace,flushSync:I});if(ee.shortCircuited)return;if(ee.pendingActionResult){let[ce,z]=ee.pendingActionResult;if(de(z)&&Ue(z.error)&&z.error.status===404){N=null,ze(y,{matches:ee.matches,loaderData:{},errors:{[ce]:z.error}});return}}_=ee.matches||_,F=ee.pendingActionResult,L=Kt(y,g.submission),I=!1,P.active=!1,T=Ve(e.history,T.url,T.signal)}let{shortCircuited:k,matches:j,loaderData:Y,errors:q}=await xa(T,y,_,O,P.active,L,g&&g.submission,g&&g.fetcherSubmission,g&&g.replace,g&&g.initialHydration===!0,I,F);k||(N=null,ze(y,{matches:j||_,...sn(F),loaderData:Y,errors:q}))}async function Sa(c,y,g,S,L,_,I,P={}){Ut();let T=si(y,g);
26if(ae({navigation:T},{flushSync:P.flushSync===!0}),_){let k=await pt(S,y.pathname,c.signal);if(k.type==="aborted")return{shortCircuited:!0};if(k.type==="error"){let j=Ae(k.partialMatches).route.id;return{matches:k.partialMatches,pendingActionResult:[j,{type:"error",error:k.error}]}}else if(k.matches)S=k.matches;else{let{notFoundMatches:j,error:Y,route:q}=zt(y.pathname);return{matches:j,pendingActionResult:[q.id,{type:"error",error:Y}]}}}let O,F=at(S,y);if(!F.route.action&&!F.route.lazy)O={type:"error",error:ye(405,{method:c.method,pathname:y.pathname,routeId:F.route.id})};else{let k=We(a,o,c,S,F,I?[]:n,L),j=await Ke(c,k,L,null);if(O=j[F.route.id],!O){for(let Y of S)if(j[Y.route.id]){O=j[Y.route.id];break}}if(c.signal.aborted)return{shortCircuited:!0}}if(je(O)){let k;return P&&P.replace!=null?k=P.replace:k=nn(O.response.headers.get("Location"),new URL(c.url),i)===p.location.pathname+p.location.search,await Ie(c,O,!0,{submission:g,replace:k}),{shortCircuited:!0}}if(de(O)){let k=Ae(S,F.route.id);return(P&&P.replace)!==!0&&(D="PUSH"),{matches:S,pendingActionResult:[k.route.id,O,F.route.id]}}return{matches:S,pendingActionResult:[F.route.id,O]}}async function xa(c,y,g,S,L,_,I,P,T,O,F,k){let j=_||Kt(y,I),Y=I||P||cn(j),q=!Z&&!O;if(L){if(q){let pe=Tr(k);ae({navigation:j,...pe!==void 0?{actionData:pe}:{}},{flushSync:F})}let W=await pt(g,y.pathname,c.signal);if(W.type==="aborted")return{shortCircuited:!0};if(W.type==="error"){let pe=Ae(W.partialMatches).route.id;return{matches:W.partialMatches,loaderData:{},errors:{[pe]:W.error}}}else if(W.matches)g=W.matches;else{let{error:pe,notFoundMatches:Pe,route:vt}=zt(y.pathname);return{matches:Pe,loaderData:{},errors:{[vt.id]:pe}}}}let ee=s||l,{dsMatches:ce,revalidatingFetchers:z}=Qr(c,S,a,o,e.history,p,g,Y,y,O?[]:n,O===!0,V,G,ne,ge,se,ee,i,e.patchRoutesOnNavigation!=null,k);if(ue=++te,!e.dataStrategy&&!ce.some(W=>W.shouldLoad)&&z.length===0){let W=Ir();return ze(y,{matches:g,loaderData:{},errors:k&&de(k[1])?{[k[0]]:k[1].error}:null,...sn(k),...W?{fetchers:new Map(p.fetchers)}:{}},{flushSync:F}),{shortCircuited:!0}}if(q){let W={};if(!L){W.navigation=j;let pe=Tr(k);pe!==void 0&&(W.actionData=pe)}z.length>0&&(W.fetchers=La(z)),ae(W,{flushSync:F})}z.forEach(W=>{Ce(W.key),W.controller&&B.set(W.key,W.controller)});let Xe=()=>z.forEach(W=>Ce(W.key));N&&N.signal.addEventListener("abort",Xe);let{loaderResults:Ne,fetcherResults:qe}=await kr(ce,z,c,S);if(c.signal.aborted)return{shortCircuited:!0};N&&N.signal.removeEventListener("abort",Xe),z.forEach(W=>B.delete(W.key));let me=wt(Ne);if(me)return await Ie(c,me.result,!0,{replace:T}),{shortCircuited:!0};if(me=wt(qe),me)return se.add(me.key),await Ie(c,me.result,!0,{replace:T}),{shortCircuited:!0};let{loaderData:Qe,errors:Ze}=on(p,g,Ne,k,z,qe);O&&p.errors&&(Ze={...p.errors,...Ze});let Bt=Ir(),Fe=Nr(ue),yt=Bt||Fe||z.length>0;return{matches:g,loaderData:Qe,errors:Ze,...yt?{fetchers:new Map(p.fetchers)}:{}}}function Tr(c){if(c&&!de(c[1]))return{[c[0]]:c[1].data};if(p.actionData)return Object.keys(p.actionData).length===0?null:p.actionData}function La(c){return c.forEach(y=>{let g=p.fetchers.get(y.key),S=tt(void 0,g?g.data:void 0);p.fetchers.set(y.key,S)}),new Map(p.fetchers)}async function Ca(c,y,g,S){Ce(c);let L=(S&&S.flushSync)===!0,_=s||l,I=er(p.location,p.matches,i,g,y,S==null?void 0:S.relative),P=be(_,I,i),T=mt(P,_,I);if(T.active&&T.matches&&(P=T.matches),!P){xe(c,y,ye(404,{pathname:I}),{flushSync:L});return}let{path:O,submission:F,error:k}=qr(!0,I,S);if(k){xe(c,y,k,{flushSync:L});return}let j=at(P,O),Y=new Kr(e.unstable_getContext?await e.unstable_getContext():void 0),q=(S&&S.preventScrollReset)===!0;if(F&&fe(F.formMethod)){await Pa(c,y,O,j,P,Y,T.active,L,q,F);return}ge.set(c,{routeId:y,path:O}),await Ma(c,y,O,j,P,Y,T.active,L,q,F)}async function Pa(c,y,g,S,L,_,I,P,T,O){Ut(),ge.delete(c);function F(X){if(!X.route.action&&!X.route.lazy){let Be=ye(405,{method:O.formMethod,pathname:g,routeId:y});return xe(c,y,Be,{flushSync:P}),!0}return!1}if(!I&&F(S))return;let k=p.fetchers.get(c);Le(c,ui(O,k),{flushSync:P});let j=new AbortController,Y=Ve(e.history,g,j.signal,O);if(I){let X=await pt(L,g,Y.signal,c);if(X.type==="aborted")return;if(X.type==="error"){xe(c,y,X.error,{flushSync:P});return}else if(X.matches){if(L=X.matches,S=at(L,g),F(S))return}else{xe(c,y,ye(404,{pathname:g}),{flushSync:P});return}}B.set(c,j);let q=te,ee=We(a,o,Y,L,S,n,_),z=(await Ke(Y,ee,_,c))[S.route.id];if(Y.signal.aborted){B.get(c)===j&&B.delete(c);return}
26if(ne.has(c)){if(je(z)||de(z)){Le(c,Me(void 0));return}}else{if(je(z))if(B.delete(c),ue>q){Le(c,Me(void 0));return}else return se.add(c),Le(c,tt(O)),Ie(Y,z,!1,{fetcherSubmission:O,preventScrollReset:T});if(de(z)){xe(c,y,z.error);return}}let Xe=p.navigation.location||p.location,Ne=Ve(e.history,Xe,j.signal),qe=s||l,me=p.navigation.state!=="idle"?be(qe,p.navigation.location,i):p.matches;U(me,"Didn't find any matches after fetcher action");let Qe=++te;re.set(c,Qe);let Ze=tt(O,z.data);p.fetchers.set(c,Ze);let{dsMatches:Bt,revalidatingFetchers:Fe}=Qr(Ne,_,a,o,e.history,p,me,O,Xe,n,!1,V,G,ne,ge,se,qe,i,e.patchRoutesOnNavigation!=null,[S.route.id,z]);Fe.filter(X=>X.key!==c).forEach(X=>{let Be=X.key,Hr=p.fetchers.get(Be),Ia=tt(void 0,Hr?Hr.data:void 0);p.fetchers.set(Be,Ia),Ce(Be),X.controller&&B.set(Be,X.controller)}),ae({fetchers:new Map(p.fetchers)});let yt=()=>Fe.forEach(X=>Ce(X.key));j.signal.addEventListener("abort",yt);let{loaderResults:W,fetcherResults:pe}=await kr(Bt,Fe,Ne,_);if(j.signal.aborted)return;if(j.signal.removeEventListener("abort",yt),re.delete(c),B.delete(c),Fe.forEach(X=>B.delete(X.key)),p.fetchers.has(c)){let X=Me(z.data);p.fetchers.set(c,X)}let Pe=wt(W);if(Pe)return Ie(Ne,Pe.result,!1,{preventScrollReset:T});if(Pe=wt(pe),Pe)return se.add(Pe.key),Ie(Ne,Pe.result,!1,{preventScrollReset:T});let{loaderData:vt,errors:Vt}=on(p,me,W,void 0,Fe,pe);Nr(Qe),p.navigation.state==="loading"&&Qe>ue?(U(D,"Expected pending action"),N&&N.abort(),ze(p.navigation.location,{matches:me,loaderData:vt,errors:Vt,fetchers:new Map(p.fetchers)})):(ae({errors:Vt,loaderData:ln(p.loaderData,vt,me,Vt),fetchers:new Map(p.fetchers)}),V=!1)}async function Ma(c,y,g,S,L,_,I,P,T,O){let F=p.fetchers.get(c);Le(c,tt(O,F?F.data:void 0),{flushSync:P});let k=new AbortController,j=Ve(e.history,g,k.signal);if(I){let z=await pt(L,g,j.signal,c);if(z.type==="aborted")return;if(z.type==="error"){xe(c,y,z.error,{flushSync:P});return}else if(z.matches)L=z.matches,S=at(L,g);else{xe(c,y,ye(404,{pathname:g}),{flushSync:P});return}}B.set(c,k);let Y=te,q=We(a,o,j,L,S,n,_),ce=(await Ke(j,q,_,c))[S.route.id];if(B.get(c)===k&&B.delete(c),!j.signal.aborted){if(ne.has(c)){Le(c,Me(void 0));return}if(je(ce))if(ue>Y){Le(c,Me(void 0));return}else{se.add(c),await Ie(j,ce,!1,{preventScrollReset:T});return}if(de(ce)){xe(c,y,ce.error);return}Le(c,Me(ce.data))}}async function Ie(c,y,g,{submission:S,fetcherSubmission:L,preventScrollReset:_,replace:I}={}){y.response.headers.has("X-Remix-Revalidate")&&(V=!0);let P=y.response.headers.get("Location");U(P,"Expected a Location header on the redirect Response"),P=nn(P,new URL(c.url),i);let T=ot(p.location,P,{_isRedirect:!0});if(r){let q=!1;if(y.response.headers.has("X-Remix-Reload-Document"))q=!0;else if(vr.test(P)){const ee=Tn(P,!0);q=ee.origin!==t.location.origin||he(ee.pathname,i)==null}if(q){I?t.location.replace(P):t.location.assign(P);return}}N=null;let O=I===!0||y.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:F,formAction:k,formEncType:j}=p.navigation;!S&&!L&&F&&k&&j&&(S=cn(p.navigation));let Y=S||L;if(Yo.has(y.response.status)&&Y&&fe(Y.formMethod))await $e(O,T,{submission:{...Y,formAction:P},preventScrollReset:_||A,enableViewTransition:g?J:void 0});else{let q=Kt(T,S);await $e(O,T,{overrideNavigation:q,fetcherSubmission:L,preventScrollReset:_||A,enableViewTransition:g?J:void 0})}}async function Ke(c,y,g,S){let L,_={};try{L=await ei(u,c,y,S,g,!1)}catch(I){return y.filter(P=>P.shouldLoad).forEach(P=>{_[P.route.id]={type:"error",error:I}}),_}if(c.signal.aborted)return _;for(let[I,P]of Object.entries(L))if(ii(P)){let T=P.result;_[I]={type:"redirect",response:ni(T,c,I,y,i)}}else _[I]=await ri(P);return _}async function kr(c,y,g,S){let L=Ke(g,c,S,null),_=Promise.all(y.map(async T=>{if(T.matches&&T.match&&T.request&&T.controller){let F=(await Ke(T.request,T.matches,S,T.key))[T.match.route.id];return{[T.key]:F}}else return Promise.resolve({[T.key]:{type:"error",error:ye(404,{pathname:T.path})}})})),I=await L,P=(await _).reduce((T,O)=>Object.assign(T,O),{});return{loaderResults:I,fetcherResults:P}}function Ut(){V=!0,ge.forEach((c,y)=>{B.has(y)&&G.add(y),Ce(y)})}function Le(c,y,g={}){p.fetchers.set(c,y),ae({fetchers:new Map(p.fetchers)},{flushSync:(g&&g.flushSync)===!0})}function xe(c,y,g,S={}){let L=Ae(p.matches,y);Ht(c),ae({errors:{[L.route.id]:g},fetchers:new Map(p.fetchers)},{flushSync:(S&&S.flushSync)===!0})}function Or(c){return we.set(c,(we.get(c)||0)+1),ne.has(c)&&ne.delete(c),p.fetchers.get(c)||Jo}function Ht(c){let y=p.fetchers.get(c);B.has(c)&&!(y&&y.state==="loading"&&re.has(c))&&Ce(c),ge.delete(c),re.delete(c),se.delete(c),ne.delete(c),G.delete(c),p.fetchers.delete(c)}function Da(c){let y=(we.get(c)||0)-1;y<=0?(we.delete(c),ne.add(c)):we.set(c,y),ae({fetchers:new Map(p.fetchers)})}function Ce(c){let y=B.get(c);y&&(y.abort(),B.delete(c))}function $r(c){for(let y of c){let g=Or(y),S=Me(g.data);p.fetchers.set(y,S)}}function Ir(){let c=[],y=!1;for(let g of se){let S=p.fetchers.get(g);U(S,`Expected fetcher: ${g}`),S.state==="loading"&&(se.delete(g),c.push(g),y=!0)}return $r(c),y}function Nr(c){let y=[];for(let[g,S]of re)if(S<c){let L=p.fetchers.get(g);U(L,`Expected fetcher: ${g}`),L.state==="loading"&&(Ce(g),re.delete(g),y.push(g))}return $r(y),y.length>0}function _a(c,y){let g=p.blockers.get(c)||et;return ke.get(c)!==y&&ke.set(c,y),g}function Fr(c){p.blockers.delete(c),ke.delete(c)}function ht(c,y){let g=p.blockers.get(c)||et;U(g.state==="unblocked"&&y.state==="blocked"||g.state==="blocked"&&y.state==="blocked"||g.state==="blocked"&&y.state==="proceeding"||g.state==="blocked"&&y.state==="unblocked"||g.state==="proceeding"&&y.state==="unblocked",`Invalid blocker state transition: ${g.state} -> ${y.state}`);let S=new Map(p.blockers);S.set(c,y),ae({blockers:S})}function Ar({currentLocation:c,nextLocation:y,historyAction:g}){if(ke.size===0)return;ke.size>1&&K(!1,"A router only supports one blocker at a time");let S=Array.from(ke.entries()),[L,_]=S[S.length-1],I=p.blockers.get(L);if(!(I&&I.state==="proceeding")&&_({currentLocation:c,nextLocation:y,historyAction:g}))return L}function zt(c){let y=ye(404,{pathname:c}),g=s||l,{matches:S,route:L}=un(g);return{notFoundMatches:S,route:L,error:y}}function Ta(c,y,g){if(v=c,b=y,E=g||null,!R&&p.navigation===Gt){R=!0;let S=Ur(p.location,p.matches);S!=null&&ae({restoreScrollPosition:S}
vendor: 4,142 bytes, lines 26-27
26)}return()=>{v=null,b=null,E=null}}function jr(c,y){return E&&E(c,y.map(S=>kn(S,p.loaderData)))||c.key}function ka(c,y){if(v&&b){let g=jr(c,y);v[g]=b()}}function Ur(c,y){if(v){let g=jr(c,y),S=v[g];if(typeof S=="number")return S}return null}function mt(c,y,g){if(e.patchRoutesOnNavigation)if(c){if(Object.keys(c[0].params).length>0)return{active:!0,matches:Ct(y,g,i,!0)}}else return{active:!0,matches:Ct(y,g,i,!0)||[]};return{active:!1,matches:null}}async function pt(c,y,g,S){if(!e.patchRoutesOnNavigation)return{type:"success",matches:c};let L=c;for(;;){let _=s==null,I=s||l,P=o;try{await e.patchRoutesOnNavigation({signal:g,path:y,matches:L,fetcherKey:S,patch:(F,k)=>{g.aborted||Zr(F,k,I,P,a)}})}catch(F){return{type:"error",error:F,partialMatches:L}}finally{_&&!g.aborted&&(l=[...l])}if(g.aborted)return{type:"aborted"};let T=be(I,y,i);if(T)return{type:"success",matches:T};let O=Ct(I,y,i,!0);if(!O||L.length===O.length&&L.every((F,k)=>F.route.id===O[k].route.id))return{type:"success",matches:null};L=O}}function Oa(c){o={},s=Tt(c,a,void 0,o)}function $a(c,y){let g=s==null;Zr(c,y,s||l,o,a),g&&(l=[...l],ae({}))}return x={get basename(){return i},get future(){return d},get state(){return p},get routes(){return l},get window(){return t},initialize:wa,subscribe:ba,enableScrollRestoration:Ta,navigate:_r,fetch:Ca,revalidate:Ra,createHref:c=>e.history.createHref(c),encodeLocation:c=>e.history.encodeLocation(c),getFetcher:Or,deleteFetcher:Da,dispose:Ea,getBlocker:_a,deleteBlocker:Fr,patchRoutes:$a,_internalFetchControllers:B,_internalSetRoutes:Oa},x}function Ko(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function er(e,t,r,n,a,o){let l,s;if(a){l=[];for(let u of t)if(l.push(u),u.route.id===a){s=u;break}}else l=t,s=t[t.length-1];let i=yr(n||".",pr(l),he(e.pathname,r)||e.pathname,o==="path");if(n==null&&(i.search=e.search,i.hash=e.hash),(n==null||n===""||n===".")&&s){let u=wr(i.search);if(s.route.index&&!u)i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&u){let d=new URLSearchParams(i.search),h=d.getAll("index");d.delete("index"),h.filter(v=>v).forEach(v=>d.append("index",v));let m=d.toString();i.search=m?`?${m}`:""}}return r!=="/"&&(i.pathname=i.pathname==="/"?r:Re([r,i.pathname])),De(i)}function qr(e,t,r){if(!r||!Ko(r))return{path:t};if(r.formMethod&&!li(r.formMethod))return{path:t,error:ye(405,{method:r.formMethod})};let n=()=>({path:t,error:ye(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),l=Wn(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!fe(o))return n();let h=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((m,[v,E])=>`${m}${v}=${E} 27`,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:void 0,text:h}}}else if(r.formEncType==="application/json"){if(!fe(o))return n();try{let h=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:h,text:void 0}}}catch{return n()}}}U(typeof FormData=="function","FormData is not available in this environment");let s,i;if(r.formData)s=nr(r.formData),i=r.formData;else if(r.body instanceof FormData)s=nr(r.body),i=r.body;else if(r.body instanceof URLSearchParams)s=r.body,i=an(s);else if(r.body==null)s=new URLSearchParams,i=new FormData;else try{s=new URLSearchParams(r.body),i=an(s)}catch{return n()}let u={formMethod:o,formAction:l,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(fe(u.formMethod))return{path:t,submission:u};let d=Te(t);return e&&d.search&&wr(d.search)&&s.append("index",""),d.search=`?${s}`,{path:De(d),submission:u}}function Qr(e,t,r,n,a,o,l,s,i,u,d,h,m,v,E,b,R,w,$,C){var Z;let M=C?de(C[1])?C[1].error:C[1].data:void 0,x=a.createURL(o.location),p=a.createURL(i),D;if(d&&o.errors){let V=Object.keys(o.errors)[0];D=l.findIndex(G=>G.route.id===V)}else if(C&&de(C[1])){let V=C[0];D=l.findIndex(G=>G.route.id===V)-1}let A=C?C[1].statusCode:void 0,N=A&&A>
27=400,J={currentUrl:x,currentParams:((Z=o.matches[0])==null?void 0:Z.params)||{},nextUrl:p,nextParams:l[0].params,...s,actionResult:M,actionStatus:A},Q=l.map((V,G)=>{let{route:B}=V,te=null;if(D!=null&&G>D?te=!1:B.lazy?te=!0:B.loader==null?te=!1:d?te=tr(B,o.loaderData,o.errors):Xo(o.loaderData,o.matches[G],V)&&(te=!0),te!==null)return rr(r,n,e,V,u,t,te);let ue=N?!1:h||x.pathname+x.search===p.pathname+p.search||x.search!==p.search||qo(o.matches[G],V),re={...J,defaultShouldRevalidate:ue},se=Ot(V,re);return rr(r,n,e,V,u,t,se,re)}),le=[];return E.forEach((V,G)=>{if(d||!l.some(ne=>ne.route.id===V.routeId)||v.has(G))return;let B=o.fetchers.get(G),te=B&&B.state!=="idle"&&B.data===void 0,ue=be(R,V.path,w);if(!ue){if($&&te)return;le.push({key:G,routeId:V.routeId,path:V.path,matches:null,match:null,request:null,controller:null});return}if(b.has(G))return;let re=at(ue,V.path),se=new AbortController,ge=Ve(a,V.path,se.signal),we=null;if(m.has(G))m.delete(G),we=We(r,n,ge,ue,re,u,t);else if(te)h&&(we=We(r,n,ge,ue,re,u,t));else{let ne={...J,defaultShouldRevalidate:N?!1:h};Ot(re,ne)&&(we=We(r,n,ge,ue,re,u,t,ne))}we&&le.push({key:G,routeId:V.routeId,path:V.path,matches:we,match:re,request:ge,controller:se})}),{dsMatches:Q,revalidatingFetchers:le}}function tr(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&e.id in t,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Xo(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}function qo(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Ot(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function Zr(e,t,r,n,a){let o;if(e){let i=n[e];U(i,`No route found to patch children into: routeId = ${e}`),i.children||(i.children=[]),o=i.children}else o=r;let l=t.filter(i=>!o.some(u=>Un(i,u))),s=Tt(l,a,[e||"_","patch",String((o==null?void 0:o.length)||"0")],n);o.push(...s)}function Un(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(o=>Un(r,o))}):!1}var en=new WeakMap,Hn=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(U(a,"No route found in manifest"),!a.lazy||typeof a.lazy!="object")return;let o=a.lazy[e];if(!o)return;let l=en.get(a);l||(l={},en.set(a,l));let s=l[e];if(s)return s;let i=(async()=>{let u=wo(e),h=a[e]!==void 0&&e!=="hasErrorBoundary";if(u)K(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),l[e]=Promise.resolve();else if(h)K(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let m=await o();m!=null&&(Object.assign(a,{[e]:m}),Object.assign(a,n(a)))}typeof a.lazy=="object"&&(a.lazy[e]=void 0,Object.values(a.lazy).every(m=>m===void 0)&&(a.lazy=void 0))})();return l[e]=i,i},tn=new WeakMap;function Qo(e,t,r,n,a){let o=r[e.id];if(U(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let d=tn.get(o);if(d)return{lazyRoutePromise:d,lazyHandlerPromise:d};let h=(async()=>{U(typeof e.lazy=="function","No lazy route function found");let m=await e.lazy(),v={};for(let E in m){let b=m[E];if(b===void 0)continue;let R=bo(E),$=o[E]!==void 0&&E!=="hasErrorBoundary";R?K(!R,"Route property "+E+" is not a supported property to be returned from a lazy route function. This property will be ignored."):$?K(!$,`Route "${o.id}" has a static property "${E}" defined but its lazy function is also returning a value for this property. The lazy route property "${E}" will be ignored.`):v[E]=b}Object.assign(o,v),Object.assign(o,{...n(o),lazy:void 0})})();return tn.set(o,h),h.catch(()=>{}),{lazyRoutePromise:h,lazyHandlerPromise:h}}let l=Object.keys(e.lazy),s=[],i;for(let d of l){if(a&&a.includes(d))continue;let h=Hn({key:d,route:e,manifest:r,mapRouteProperties:n});h&&(s.push(h),d===t&&(i=h))}let u=s.length>0?Promise.all(s).then(()=>{}):void 0;return u==null||u.catch(()=>{}),i==null||i.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:i}}async function rn(e){let t=e.matches.filter(a=>a.shouldLoad),r={};return(await Promise.all(t.map(a=>
27a.resolve()))).forEach((a,o)=>{r[t[o].route.id]=a}),r}async function Zo(e){return e.matches.some(t=>t.route.unstable_middleware)?zn(e,!1,()=>rn(e),(t,r)=>({[r]:{type:"error",result:t}})):rn(e)}async function zn(e,t,r,n){let{matches:a,request:o,params:l,context:s}=e,i={handlerResult:void 0};try{let u=a.flatMap(h=>h.route.unstable_middleware?h.route.unstable_middleware.map(m=>[h.route.id,m]):[]),d=await Bn({request:o,params:l,context:s},u,t,i,r);return t?d:i.handlerResult}catch(u){if(!i.middlewareError)throw u;let d=await n(i.middlewareError.error,i.middlewareError.routeId);return i.handlerResult?Object.assign(i.handlerResult,d):d}}async function Bn(e,t,r,n,a,o=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason?l.signal.reason:new Error(`Request aborted without an \`AbortSignal.reason\`: ${l.method} ${l.url}`);let s=t[o];if(!s)return n.handlerResult=await a(),n.handlerResult;let[i,u]=s,d=!1,h,m=async()=>{if(d)throw new Error("You may only call `next()` once per middleware");d=!0,await Bn(e,t,r,n,a,o+1)};try{let v=await u({request:e.request,params:e.params,context:e.context},m);return d?v===void 0?h:v:m()}catch(v){throw n.middlewareError?n.middlewareError.error!==v&&(n.middlewareError={routeId:i,error:v}):n.middlewareError={routeId:i,error:v},v}}function Vn(e,t,r,n,a){let o=Hn({key:"unstable_middleware",route:n.route,manifest:t,mapRouteProperties:e}),l=Qo(n.route,fe(r.method)?"action":"loader",t,e,a);return{middleware:o,route:l.lazyRoutePromise,handler:l.lazyHandlerPromise}}function rr(e,t,r,n,a,o,l,s=null){let i=!1,u=Vn(e,t,r,n,a);return{...n,_lazyPromises:u,shouldLoad:l,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler(d){return i=!0,s?typeof d=="boolean"?Ot(n,{...s,defaultShouldRevalidate:d}):Ot(n,s):l},resolve(d){return i||l||d&&r.method==="GET"&&(n.route.lazy||n.route.loader)?ti({request:r,match:n,lazyHandlerPromise:u==null?void 0:u.handler,lazyRoutePromise:u==null?void 0:u.route,handlerOverride:d,scopedContext:o}):Promise.resolve({type:"data",result:void 0})}}}function We(e,t,r,n,a,o,l,s=null){return n.map(i=>i.route.id!==a.route.id?{...i,shouldLoad:!1,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler:()=>!1,_lazyPromises:Vn(e,t,r,i,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:rr(e,t,r,i,o,l,!0,s))}async function ei(e,t,r,n,a,o){r.some(u=>{var d;return(d=u._lazyPromises)==null?void 0:d.middleware})&&await Promise.all(r.map(u=>{var d;return(d=u._lazyPromises)==null?void 0:d.middleware}));let l={request:t,params:r[0].params,context:a,matches:r},i=await e({...l,fetcherKey:n,unstable_runClientMiddleware:u=>{let d=l;return zn(d,!1,()=>u({...d,fetcherKey:n,unstable_runClientMiddleware:()=>{throw new Error("Cannot call `unstable_runClientMiddleware()` from within an `unstable_runClientMiddleware` handler")}}),(h,m)=>({[m]:{type:"error",result:h}}))}});try{await Promise.all(r.flatMap(u=>{var d,h;return[(d=u._lazyPromises)==null?void 0:d.handler,(h=u._lazyPromises)==null?void 0:h.route]}))}catch{}return i}async function ti({request:e,match:t,lazyHandlerPromise:r,lazyRoutePromise:n,handlerOverride:a,scopedContext:o}){let l,s,i=fe(e.method),u=i?"action":"loader",d=h=>{let m,v=new Promise((R,w)=>m=w);s=()=>m(),e.signal.addEventListener("abort",s);let E=R=>typeof h!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${u}" [routeId: ${t.route.id}]`)):h({request:e,params:t.params,context:o},...R!==void 0?[R]:[]),b=(async()=>{try{return{type:"data",result:await(a?a(w=>E(w)):E())}}catch(R){return{type:"error",result:R}}})();return Promise.race([b,v])};try{let h=i?t.route.action:t.route.loader;if(r||n)if(h){let m,[v]=await Promise.all([d(h).catch(E=>{m=E}),r,n]);if(m!==void 0)throw m;l=v}else{await r;let m=i?t.route.action:t.route.loader;if(m)[l]=await Promise.all([d(m),n]);else if(u==="action"){let v=new URL(e.url),E=v.pathname+v.search;throw ye(405,{method:e.method,pathname:E,routeId:t.route.id})}else return{type:"data",result:void 0}}else if(h)l=await d(h);else{let m=new URL(e.url),v=m.pathname+m.search;throw ye(404,{pathname:v})}}catch(h){return{type:"error",result:h}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function ri(e){var n,a,o,l,s,i;let{result:t,type:r}=e;if(gr(t)){let u;
27try{let d=t.headers.get("Content-Type");d&&/\bapplication\/json\b/.test(d)?t.body==null?u=null:u=await t.json():u=await t.text()}catch(d){return{type:"error",error:d}}return r==="error"?{type:"error",error:new _e(t.status,t.statusText,u),statusCode:t.status,headers:t.headers}:{type:"data",data:u,statusCode:t.status,headers:t.headers}}return r==="error"?ar(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:(n=t.init)==null?void 0:n.status,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new _e(((o=t.init)==null?void 0:o.status)||500,void 0,t.data),statusCode:Ue(t)?t.status:void 0,headers:(l=t.init)!=null&&l.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Ue(t)?t.status:void 0}:ar(t)?{type:"data",data:t.data,statusCode:(s=t.init)==null?void 0:s.status,headers:(i=t.init)!=null&&i.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function ni(e,t,r,n,a){let o=e.headers.get("Location");if(U(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!vr.test(o)){let l=n.slice(0,n.findIndex(s=>s.route.id===r)+1);o=er(new URL(t.url),l,a,o),e.headers.set("Location",o)}return e}function nn(e,t,r){if(vr.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=he(a.pathname,r)!=null;if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Ve(e,t,r,n){let a=e.createURL(Wn(t)).toString(),o={signal:r};if(n&&fe(n.formMethod)){let{formMethod:l,formEncType:s}=n;o.method=l.toUpperCase(),s==="application/json"?(o.headers=new Headers({"Content-Type":s}),o.body=JSON.stringify(n.json)):s==="text/plain"?o.body=n.text:s==="application/x-www-form-urlencoded"&&n.formData?o.body=nr(n.formData):o.body=n.formData}return 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 an(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function ai(e,t,r,n=!1,a=!1){let o={},l=null,s,i=!1,u={},d=r&&de(r[1])?r[1].error:void 0;return e.forEach(h=>{if(!(h.route.id in t))return;let m=h.route.id,v=t[m];if(U(!je(v),"Cannot handle redirect results in processLoaderData"),de(v)){let E=v.error;if(d!==void 0&&(E=d,d=void 0),l=l||{},a)l[m]=E;else{let b=Ae(e,m);l[b.route.id]==null&&(l[b.route.id]=E)}n||(o[m]=jn),i||(i=!0,s=Ue(v.error)?v.error.status:500),v.headers&&(u[m]=v.headers)}else o[m]=v.data,v.statusCode&&v.statusCode!==200&&!i&&(s=v.statusCode),v.headers&&(u[m]=v.headers)}),d!==void 0&&r&&(l={[r[0]]:d},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:l,statusCode:s||200,loaderHeaders:u}}function on(e,t,r,n,a,o){let{loaderData:l,errors:s}=ai(t,r,n);return a.filter(i=>!i.matches||i.matches.some(u=>u.shouldLoad)).forEach(i=>{let{key:u,match:d,controller:h}=i,m=o[u];if(U(m,"Did not find corresponding fetcher result"),!(h&&h.signal.aborted))if(de(m)){let v=Ae(e.matches,d==null?void 0:d.route.id);s&&s[v.route.id]||(s={...s,[v.route.id]:m.error}),e.fetchers.delete(u)}else if(je(m))U(!1,"Unhandled fetcher revalidation redirect");else{let v=Me(m.data);e.fetchers.set(u,v)}}),{loaderData:l,errors:s}}function ln(e,t,r,n){let a=Object.entries(t).filter(([,o])=>o!==jn).reduce((o,[l,s])=>(o[l]=s,o),{});for(let o of r){let l=o.route.id;if(!t.hasOwnProperty(l)&&e.hasOwnProperty(l)&&o.route.loader&&(a[l]=e[l]),n&&n.hasOwnProperty(l))break}return a}function sn(e){return e?de(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Ae(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 un(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ye(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let l="Unknown Server Error",s="Unknown @remix-run/router error";return e===400?(l="Bad Request",n&&t&&r?s=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:a==="invalid-body"&&(s="Unable to encode submission body")):e===403?(l="Forbidden",s=`Route "${r}" does not match URL "${t}"`):e===404?(l="Not Found",s=`No route matches URL "${t}"`):e===405&&(l="Method Not Allowed",n&&t&&r?s=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(s=`Invalid request method "${n.toUpperCase()}"`)),new _e(e||500,l,new Error(s),!0)}function wt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(je(a))return{key:n,result:a}}}function Wn(e){let t=typeof e=="string"?Te(e):e;return De({...t,hash:""})}function oi(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function ii(e){return gr(e.result)&&Wo.has(e.result.status)}function de(e){return e.type==="error"}function je(e){return(e&&e.type)==="redirect"}function ar(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function gr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function li(e){return Vo.has(e.toUpperCase())}function fe(e){return zo.has(e.toUpperCase())}function wr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function at(e,t){let r=typeof t=="string"?Te(t).search:t.search;if(e[e.length-1].route.index&&wr(r||""))return e[e.length-1];let n=Nn(e);return n[n.length-1]}function cn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:l}=e;
27if(!(!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(l!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:l,text:void 0}}}function Kt(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 si(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 tt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ui(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Me(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ci(e,t){try{let r=e.sessionStorage.getItem(An);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function di(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(An,JSON.stringify(r))}catch(n){K(!1,`Failed to save applied view transitions in sessionStorage (${n}).`)}}}function fi(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var He=f.createContext(null);He.displayName="DataRouter";var Je=f.createContext(null);Je.displayName="DataRouterState";var Er=f.createContext({isTransitioning:!1});Er.displayName="ViewTransition";var Yn=f.createContext(new Map);Yn.displayName="Fetchers";var hi=f.createContext(null);hi.displayName="Await";var ve=f.createContext(null);ve.displayName="Navigation";var Nt=f.createContext(null);Nt.displayName="Location";var Ee=f.createContext({outlet:null,matches:[],isDataRoute:!1});Ee.displayName="Route";var br=f.createContext(null);br.displayName="RouteError";function mi(e,{relative:t}={}){U(st(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=f.useContext(ve),{hash:a,pathname:o,search:l}=ut(e,{relative:t}),s=o;return r!=="/"&&(s=o==="/"?r:Re([r,o])),n.createHref({pathname:s,search:l,hash:a})}function st(){return f.useContext(Nt)!=null}function Se(){return U(st(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(Nt).location}var Jn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Gn(e){f.useContext(ve).static||f.useLayoutEffect(e)}function pi(){let{isDataRoute:e}=f.useContext(Ee);return e?Di():yi()}function yi(){U(st(),"useNavigate() may be used only in the context of a <Router> component.");let e=f.useContext(He),{basename:t,navigator:r}=f.useContext(ve),{matches:n}=f.useContext(Ee),{pathname:a}=Se(),o=JSON.stringify(pr(n)),l=f.useRef(!1);return Gn(()=>{l.current=!0}),f.useCallback((i,u={})=>{if(K(l.current,Jn),!l.current)return;if(typeof i=="number"){r.go(i);return}let d=yr(i,JSON.parse(o),a,u.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Re([t,d.pathname])),(u.replace?r.replace:r.push)(d,u.state,u)},[t,r,o,a,e])}var vi=f.createContext(null);function gi(e){let t=f.useContext(Ee).outlet;return t&&f.createElement(vi.Provider,{value:e},t)}function as(){let{matches:e}=f.useContext(Ee),t=e[e.length-1];return t?t.params:{}}function ut(e,{relative:t}={}){let{matches:r}=f.useContext(Ee),{pathname:n}=Se(),a=JSON.stringify(pr(r));return f.useMemo(()=>yr(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function wi(e,t,r,n){U(st(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=f.useContext(ve),{matches:o}=f.useContext(Ee),l=o[o.length-1],s=l?l.params:{},i=l?l.pathname:"/",u=l?l.pathnameBase:"/",d=l&&l.route;{let w=d&&d.path||"";qn(i,!d||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${i}" (under <Route path="${w}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. 28 29Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let h=Se(),m;m=h;let v=m.pathname||"/",E=v;if(u!=="/"){let w=u.replace(/^\//,"").split("/");E="/"+v.replace(/^\//,"").split("/").slice(w.length).join("/")}let b=be(e,{pathname:E});return K(d||b!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),K(b==null||b[b.length-1].route.element!==void 0||b[b.length-1].route.Component!==void 0||b[b.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),xi(b&&b.map(w=>Object.assign({},w,{params:Object.assign({},s,w.params),pathname:Re([u,a.encodeLocation?a.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?u:Re([u,a.encodeLocation?a.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),o,r,n)}function Ei(){let e=Xn(),t=Ue(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},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=f.createElement(f.Fragment,null,f.createElement("p",null,"ð¿ Hey developer ð"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:o},"ErrorBoundary")," or"," ",f.createElement("code",{style:o},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application
29Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,l)}var bi=f.createElement(Ei,null),Ri=class extends f.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?f.createElement(Ee.Provider,{value:this.props.routeContext},f.createElement(br.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Si({routeContext:e,match:t,children:r}){let n=f.useContext(He);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),f.createElement(Ee.Provider,{value:e},r)}function xi(e,t=[],r=null,n=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let a=e,o=r==null?void 0:r.errors;if(o!=null){let i=a.findIndex(u=>u.route.id&&(o==null?void 0:o[u.route.id])!==void 0);U(i>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,i+1))}let l=!1,s=-1;if(r)for(let i=0;i<a.length;i++){let u=a[i];if((u.route.HydrateFallback||u.route.hydrateFallbackElement)&&(s=i),u.route.id){let{loaderData:d,errors:h}=r,m=u.route.loader&&!d.hasOwnProperty(u.route.id)&&(!h||h[u.route.id]===void 0);if(u.route.lazy||m){l=!0,s>=0?a=a.slice(0,s+1):a=[a[0]];break}}}return a.reduceRight((i,u,d)=>{let h,m=!1,v=null,E=null;r&&(h=o&&u.route.id?o[u.route.id]:void 0,v=u.route.errorElement||bi,l&&(s<0&&d===0?(qn("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,E=null):s===d&&(m=!0,E=u.route.hydrateFallbackElement||null)));let b=t.concat(a.slice(0,d+1)),R=()=>{let w;return h?w=v:m?w=E:u.route.Component?w=f.createElement(u.route.Component,null):u.route.element?w=u.route.element:w=i,f.createElement(Si,{match:u,routeContext:{outlet:i,matches:b,isDataRoute:r!=null},children:w})};return r&&(u.route.ErrorBoundary||u.route.errorElement||d===0)?f.createElement(Ri,{location:r.location,revalidation:r.revalidation,component:v,error:h,children:R(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):R()},null)}function Rr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Li(e){let t=f.useContext(He);return U(t,Rr(e)),t}function ct(e){let t=f.useContext(Je);return U(t,Rr(e)),t}function Ci(e){let t=f.useContext(Ee);return U(t,Rr(e)),t}function dt(e){let t=Ci(e),r=t.matches[t.matches.length-1];return U(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function Pi(){return dt("useRouteId")}function Mi(){return ct("useNavigation").navigation}function Kn(){let{matches:e,loaderData:t}=ct("useMatches");return f.useMemo(()=>e.map(r=>kn(r,t)),[e,t])}function os(){let e=ct("useLoaderData"),t=dt("useLoaderData");return e.loaderData[t]}function is(){let e=ct("useActionData"),t=dt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function Xn(){var n;let e=f.useContext(br),t=ct("useRouteError"),r=dt("useRouteError");return e!==void 0?e:(n=t.errors)==null?void 0:n[r]}function Di(){let{router:e}=Li("useNavigate"),t=dt("useNavigate"),r=f.useRef(!1);return Gn(()=>{r.current=!0}),f.useCallback(async(a,o={})=>{K(r.current,Jn),r.current&&(typeof a=="number"?e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var dn={};function qn(e,t,r){!t&&!dn[e]&&(dn[e]=!0,K(!1,r))}var fn={};function hn(e,t){!e&&!fn[t]&&(fn[t]=!0,console.warn(t))}function ls(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&K(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:f.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&K(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:f.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&K(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:f.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ss=["HydrateFallback","hydrateFallbackElement"],_i=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>
29{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function us({router:e,flushSync:t}){let[r,n]=f.useState(e.state),[a,o]=f.useState(),[l,s]=f.useState({isTransitioning:!1}),[i,u]=f.useState(),[d,h]=f.useState(),[m,v]=f.useState(),E=f.useRef(new Map),b=f.useCallback((C,{deletedFetchers:M,flushSync:x,viewTransitionOpts:p})=>{C.fetchers.forEach((A,N)=>{A.data!==void 0&&E.current.set(N,A.data)}),M.forEach(A=>E.current.delete(A)),hn(x===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let D=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(hn(p==null||D,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!p||!D){t&&x?t(()=>n(C)):f.startTransition(()=>n(C));return}if(t&&x){t(()=>{d&&(i&&i.resolve(),d.skipTransition()),s({isTransitioning:!0,flushSync:!0,currentLocation:p.currentLocation,nextLocation:p.nextLocation})});let A=e.window.document.startViewTransition(()=>{t(()=>n(C))});A.finished.finally(()=>{t(()=>{u(void 0),h(void 0),o(void 0),s({isTransitioning:!1})})}),t(()=>h(A));return}d?(i&&i.resolve(),d.skipTransition(),v({state:C,currentLocation:p.currentLocation,nextLocation:p.nextLocation})):(o(C),s({isTransitioning:!0,flushSync:!1,currentLocation:p.currentLocation,nextLocation:p.nextLocation}))},[e.window,t,d,i]);f.useLayoutEffect(()=>e.subscribe(b),[e,b]),f.useEffect(()=>{l.isTransitioning&&!l.flushSync&&u(new _i)},[l]),f.useEffect(()=>{if(i&&a&&e.window){let C=a,M=i.promise,x=e.window.document.startViewTransition(async()=>{f.startTransition(()=>n(C)),await M});x.finished.finally(()=>{u(void 0),h(void 0),o(void 0),s({isTransitioning:!1})}),h(x)}},[a,i,e.window]),f.useEffect(()=>{i&&a&&r.location.key===a.location.key&&i.resolve()},[i,d,r.location,a]),f.useEffect(()=>{!l.isTransitioning&&m&&(o(m.state),s({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))},[l.isTransitioning,m]);let R=f.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:C=>e.navigate(C),push:(C,M,x)=>e.navigate(C,{state:M,preventScrollReset:x==null?void 0:x.preventScrollReset}),replace:(C,M,x)=>e.navigate(C,{replace:!0,state:M,preventScrollReset:x==null?void 0:x.preventScrollReset})}),[e]),w=e.basename||"/",$=f.useMemo(()=>({router:e,navigator:R,static:!1,basename:w}),[e,R,w]);return f.createElement(f.Fragment,null,f.createElement(He.Provider,{value:$},f.createElement(Je.Provider,{value:r},f.createElement(Yn.Provider,{value:E.current},f.createElement(Er.Provider,{value:l},f.createElement(Oi,{basename:w,location:r.location,navigationType:r.historyAction,navigator:R},f.createElement(Ti,{routes:e.routes,future:e.future,state:r})))))),null)}var Ti=f.memo(ki);function ki({routes:e,future:t,state:r}){return wi(e,void 0,r,t)}function cs(e){return gi(e.context)}function Oi({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1}){U(!st(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=f.useMemo(()=>({basename:l,navigator:a,static:o,future:{}}),[l,a,o]);typeof r=="string"&&(r=Te(r));let{pathname:i="/",search:u="",hash:d="",state:h=null,key:m="default"}=r,v=f.useMemo(()=>{let E=he(i,l);return E==null?null:{location:{pathname:E,search:u,hash:d,state:h,key:m},navigationType:n}},[l,i,u,d,h,m,n]);return K(v!=null,`<Router basename="${l}"> is not able to match the URL "${i}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),v==null?null:f.createElement(ve.Provider,{value:s},f.createElement(Nt.Provider,{children:t,value:v}))}var Pt="get",Mt="application/x-www-form-urlencoded";function Ft(e){return e!=null&&typeof e.tagName=="string"}function $i(e){return Ft(e)&&e.tagName.toLowerCase()==="button"}function Ii(e){return Ft(e)&&e.tagName.toLowerCase()==="form"}function Ni(e){return Ft(e)&&e.tagName.toLowerCase()==="input"}function Fi(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Ai(e,t){return e.button===0&&(!t||t==="_self")&&!Fi(e)}var Et=null;function ji(){if(Et===null)try{new FormData(document.createElement("form"),0),Et=!1}catch{Et=!0}return Et}var Ui=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Xt(e){return e!=null&&!Ui.has(e)?(K(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Mt}"`),null):e}function Hi(e,t){let r,n,a,o,l;if(Ii(e)){let s=e.getAttribute("action");n=s?he(s,t):null,r=e.getAttribute("method")||Pt,a=Xt(e.getAttribute("enctype"))||Mt,o=new FormData(e)}else if($i(e)||Ni(e)&&(e.type==="submit"||e.type==="image")){let s=e.form;if(s==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let i=e.getAttribute("formaction")||s.getAttribute("action");if(n=i?he(i,t):null,r=e.getAttribute("formmethod")||s.getAttribute("method")||Pt,a=Xt(e.getAttribute("formenctype"))||Xt(s.getAttribute("enctype"))||Mt,o=new FormData(s,e),!ji()){let{name:u,type:d,value:h}=e;if(d==="image"){let m=u?`${u}.`:"";o.append(`${m}x`,"0"),o.append(`${m}y`,"0")}
29else u&&o.append(u,h)}}else{if(Ft(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Pt,n=null,a=Mt,l=e}return o&&a==="text/plain"&&(l=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:l}}function oe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}async function Qn(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(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function zi(e,t,r){let n=e.map(o=>{var i;let l=t[o.route.id],s=r.routes[o.route.id];return[s&&s.css?s.css.map(u=>({rel:"stylesheet",href:u})):[],((i=l==null?void 0:l.links)==null?void 0:i.call(l))||[]]}).flat(2),a=xr(e,r);return ra(n,a)}function Zn(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Bi(e){if(!e.css)return;let t=Zn(e);await Promise.all(t.map(ta))}async function ea(e,t){if(!e.css&&!t.links||!Gi())return;let r=[];if(e.css&&r.push(...Zn(e)),t.links&&r.push(...t.links()),r.length===0)return;let n=[];for(let a of r)!Sr(a)&&a.rel==="stylesheet"&&n.push({...a,rel:"preload",as:"style"});await Promise.all(n.map(ta))}async function ta(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return 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 Sr(e){return e!=null&&typeof e.page=="string"}function Vi(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Wi(e,t,r){let n=await Promise.all(e.map(async a=>{let o=t.routes[a.route.id];if(o){let l=await Qn(o,r);return l.links?l.links():[]}return[]}));return ra(n.flat(1).filter(Vi).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function mn(e,t,r,n,a,o){let l=(i,u)=>r[u]?i.route.id!==r[u].route.id:!0,s=(i,u)=>{var d;return r[u].pathname!==i.pathname||((d=r[u].route.path)==null?void 0:d.endsWith("*"))&&r[u].params["*"]!==i.params["*"]};return o==="assets"?t.filter((i,u)=>l(i,u)||s(i,u)):o==="data"?t.filter((i,u)=>{var h;let d=n.routes[i.route.id];if(!d||!d.hasLoader)return!1;if(l(i,u)||s(i,u))return!0;if(i.route.shouldRevalidate){let m=i.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((h=r[0])==null?void 0:h.params)||{},nextUrl:new URL(e,window.origin),nextParams:i.params,defaultShouldRevalidate:!0});if(typeof m=="boolean")return m}return!0}):[]}function xr(e,t,{includeHydrateFallback:r}={}){return Yi(e.map(n=>{let a=t.routes[n.route.id];if(!a)return[];let o=[a.module];return a.clientActionModule&&(o=o.concat(a.clientActionModule)),a.clientLoaderModule&&(o=o.concat(a.clientLoaderModule)),r&&a.hydrateFallbackModule&&(o=o.concat(a.hydrateFallbackModule)),a.imports&&(o=o.concat(a.imports)),o}).flat(1))}function Yi(e){return[...new Set(e)]}function Ji(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function ra(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(t&&!Sr(o)&&o.as==="script"&&o.href&&n.has(o.href))return a;let s=JSON.stringify(Ji(o));return r.has(s)||(r.add(s),a.push({key:s,link:o})),a},[])}var bt;function Gi(){if(bt!==void 0)return bt;let e=document.createElement("link");return bt=e.relList.supports("preload"),e=null,bt}function pn(e){return{__html:e}}var Ki=-1,Xi=-2,qi=-3,Qi=-4,Zi=-5,el=-6,tl=-7,rl="B",nl="D",na="E",al="M",ol="N",aa="P",il="R",ll="S",sl="Y",ul="U",cl="Z",oa=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function dl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),o=(t+a).split(` 30`);t=o.pop()||"";for(const l of o)n.enqueue(l)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var qt=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function or(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return yn.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,yn.call(this,n)}function yn(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let o;const l=[[e,i=>{o=i}]];let s=[];for(;l.length>0;){const[i,u]=l.pop();switch(i){case tl:u(void 0);continue;case Zi:u(null);continue;case Xi:u(NaN);continue;case el:u(1/0);continue;case qi:u(-1/0);continue;case Qi:u(-0);continue}if(t[i]){u(t[i]);continue}const d=r[i];if(!d||typeof d!="object"){t[i]=d,u(d);continue}if(Array.isArray(d))if(typeof d[0]=="string"){const[h,m,v]=d;switch(h){case nl:u(t[i]=new Date(m));continue;case ul:u(t[i]=new URL(m));continue;case rl:u(t[i]=BigInt(m));continue;case il:u(t[i]=new RegExp(m,v));continue;case sl:u(t[i]=Symbol.for(m));continue;case ll:const E=new Set;t[i]=E;for(let M=d.length-1;M>0;M--)l.push([d[M],x=>{E.add(x)}]);u(E);continue;case al:const b=new Map;t[i]=b;for(let M=d.length-2;M>0;M-=2){const x=[];l.push([d[M+1],p=>{x[1]=p}]),l.push([d[M],p=>{x[0]=p}]),s.push(()=>{b.set(x[0],x[1])})}u(b);continue;case ol:const R=Object.create(null);t[i]=R;for(const M of Object.keys(m).reverse()){const x=[];l.push([m[M],p=>{x[1]=p}]),l.push([Number(M.slice(1)),p=>{x[0]=p}]),s.push(()=>{R[x[0]]=x[1]})}u(R);continue;case aa:if(t[m])u(t[i]=t[m]);else{const M=new oa;n[m]=M,u(t[i]=M.promise)}continue;case na:const[,w,$]=d;let C=$&&qt&&qt[$]?new qt[$](w):new Error(w);t[i]=C,u(C);continue;case cl:u(t[i]=t[m]);continue;default:if(Array.isArray(a)){const M=[],x=d.slice(1);for(let p=0;p<x.length;p++){const D=x[p];l.push([D,A=>{M[p]=A}])}s.push(()=>{for(const p of a){const D=p(d[0],...M);if(D){u(t[i]=D.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const h=[];t[i]=h;for(let m=0;m<d.length;m++){const v=d[m];v!==Ki&&l.push([v,E=>{h[m]=E}])}u(h);continue}else{const h={};t[i]=h;for(const m of Object.keys(d).reverse()){const v=[];l.push([d[m],E=>{v[1]=E}]),l.push([Number(m.slice(1)),E=>{v[0]=E}]),s.push(()=>{h[v[0]]=v[1]})}u(h);continue}}for(;s.length>0;)s.pop()();return o}async function fl(e,t){const{plugins:r}=t??{},n=new oa,a=e.pipeThrough(dl()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},l=await hl.call(o,a);let s=n.promise;
30return l.done?n.resolve():s=ml.call(o,a).then(n.resolve).catch(i=>{for(const u of Object.values(o.deferred))u.reject(i);n.reject(i)}),{done:s.then(()=>a.closed),value:l.value}}async function hl(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:or.call(this,r)}}async function ml(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case aa:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const l=r.slice(n+1);let s;try{s=JSON.parse(l)}catch{throw new SyntaxError}const i=or.call(this,s);o.resolve(i);break}case na:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const l=r.slice(n+1);let s;try{s=JSON.parse(l)}catch{throw new SyntaxError}const i=or.call(this,s);o.reject(i);break}default:throw new SyntaxError}t=await e.read()}}async function pl(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var ir=Symbol("SingleFetchRedirect"),ia=class extends Error{},yl=202,la=new Set([100,101,204,205]);function ds(e,t,r,n,a){let o=vl(e,l=>{let s=t.routes[l.route.id];oe(s,"Route not found in manifest");let i=r[l.route.id];return{hasLoader:s.hasLoader,hasClientLoader:s.hasClientLoader,hasS
30houldRevalidate:!!(i!=null&&i.shouldRevalidate)}},xl,n,a);return async l=>l.unstable_runClientMiddleware(o)}function vl(e,t,r,n,a){return async o=>{let{request:l,matches:s,fetcherKey:i}=o,u=e();if(l.method!=="GET")return gl(o,r,a);let d=s.some(h=>{let{hasLoader:m,hasClientLoader:v}=t(h);return h.unstable_shouldCallHandler()&&m&&!v});return!n&&!d?wl(o,t,r,a):i?Rl(o,r,a):El(o,u,t,r,n,a)}}async function gl(e,t,r){let n=e.matches.find(l=>l.unstable_shouldCallHandler());oe(n,"No action match found");let a,o=await n.resolve(async l=>await l(async()=>{let{data:i,status:u}=await t(e,r,[n.route.id]);return a=u,it(i,n.route.id)}));return gr(o.result)||Ue(o.result)||ar(o.result)?{[n.route.id]:o}:{[n.route.id]:{type:o.type,result:Uo(o.result,a)}}}async function wl(e,t,r,n){let a=e.matches.filter(l=>l.unstable_shouldCallHandler()),o={};return await Promise.all(a.map(l=>l.resolve(async s=>{try{let{hasClientLoader:i}=t(l),u=l.route.id,d=i?await s(async()=>{let{data:h}=await r(e,n,[u]);return it(h,u)}):await s();o[l.route.id]={type:"data",result:d}}catch(i){o[l.route.id]={type:"error",result:i}}}))),o}async function El(e,t,r,n,a,o){let l=new Set,s=!1,i=e.matches.map(()=>vn()),u=vn(),d={},h=Promise.all(e.matches.map(async(v,E)=>v.resolve(async b=>{i[E].resolve();let R=v.route.id,{hasLoader:w,hasClientLoader:$,hasShouldRevalidate:C}=r(v),M=!v.unstable_shouldRevalidateArgs||v.unstable_shouldRevalidateArgs.actionStatus==null||v.unstable_shouldRevalidateArgs.actionStatus<400;if(!v.unstable_shouldCallHandler(M)){s||(s=v.unstable_shouldRevalidateArgs!=null&&w&&C===!0);return}if($){w&&(s=!0);try{let p=await b(async()=>{let{data:D}=await n(e,o,[R]);return it(D,R)});d[R]={type:"data",result:p}}catch(p){d[R]={type:"error",result:p}}return}w&&l.add(R);try{let p=await b(async()=>{let D=await u.promise;return it(D,R)});d[R]={type:"data",result:p}}catch(p){d[R]={type:"error",result:p}}})));
30if(await Promise.all(i.map(v=>v.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)u.resolve({routes:{}});else{let v=a&&s&&l.size>0?[...l.keys()]:void 0;try{let E=await n(e,o,v);u.resolve(E.data)}catch(E){u.reject(E)}}return await h,await bl(u.promise,e.matches,l,d),d}async function bl(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let l of t)if(l.route.id in o.routes){let s=o.routes[l.route.id];if("error"in s){a=s.error;break}}}a!==void 0&&Array.from(r.values()).forEach(l=>{n[l].result instanceof ia&&(n[l].result=a)})}catch{}}async function Rl(e,t,r){let n=e.matches.find(l=>l.unstable_shouldCallHandler());oe(n,"No fetcher match found");let a=n.route.id,o=await n.resolve(async l=>l(async()=>{let{data:s}=await t(e,r,[a]);return it(s,a)}));return{[n.route.id]:o}}function Sl(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function sa(e,t){let r=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return r.pathname==="/"?r.pathname="_root.data":t&&he(r.pathname,t)==="/"?r.pathname=`${t.replace(/\/$/,"")}/_root.data`:r.pathname=`${r.pathname.replace(/\/$/,"")}.data`,r}async function xl(e,t,r){let{request:n}=e,a=sa(n.url,t);n.method==="GET"&&(a=Sl(a),r&&a.searchParams.set("_routes",r.join(",")));let o=await fetch(a,await pl(n));if(o.status===404&&!o.headers.has("X-Remix-Response"))throw new _e(404,"Not Found",!0);if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:yl,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(la.has(o.status)){let l={};return r&&n.method!=="GET"&&(l[r[0]]={data:void 0}),{status:o.status,data:{routes:l}}}oe(o.body,"No response body to decode");try{let l=await Ll(o.body,window),s;if(n.method==="GET"){let i=l.value;ir in i?s={redirect:i[ir]}:s={routes:i}}else{let i=l.value,u=r==null?void 0:r[0];oe(u,"No routeId found for single fetch call decoding"),"redirect"in i?s={redirect:i}:s={routes:{[u]:i}}}return{status:o.status,data:s}}catch{throw new Error("Unable to decode turbo-stream response")}}function Ll(e,t){return fl(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,o,l]=n,s=Error;a&&a in t&&typeof t[a]=="function"&&(s=t[a]);let i=new s(o);return i.stack=l,{value:i}}if(r==="ErrorResponse"){let[a,o,l]=n;return{value:new _e(o,l,a)}}if(r==="SingleFetchRedirect")return{value:{[ir]:n[0]}};if(r==="SingleFetchClassInstance")return{value:n[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function it(e,t){if("redirect"in e){let{redirect:n,revalidate:a,reload:o,replace:l,status:s}=e.redirect;throw Ho(n,{status:s,headers:{...a?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...l?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new ia(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function vn(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var fs=class extends f.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?f.createElement(ua,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function ua({error:e,isOutsideRemixApp:t}){console.error(e);let r=f.createElement("script",{dangerouslySetInnerHTML:{__html:` 31 console.log( 32 "ð¿ Hey developer ð. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information." 33 ); 34 `}});if(Ue(e))return f.createElement(lr,{title:"Unhandled Thrown Response!"},f.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let n;if(e instanceof Error)n=e;else{let a=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);n=new Error(a)}
34return f.createElement(lr,{title:"Application Error!",isOutsideRemixApp:t},f.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),f.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function lr({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){var o;let{routeModules:a}=Ge();return(o=a.root)!=null&&o.Layout&&!r?n:f.createElement("html",{lang:"en"},f.createElement("head",null,f.createElement("meta",{charSet:"utf-8"}),f.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),f.createElement("title",null,e)),f.createElement("body",null,f.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?f.createElement(Ul,null):null)))}function Cl(){return f.createElement(lr,{title:"Loading...",renderScripts:!0},f.createElement("script",{dangerouslySetInnerHTML:{__html:` 35 console.log( 36 "ð¿ Hey developer ð. You can provide a way better UX than this " + 37 "when your app is loading JS modules and/or running \`clientLoader\` " + 38 "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " + 39 "for more information." 40 ); 41 `}}))}function ca(e){let t={};return Object.values(e).forEach(r=>{if(r){let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}}),t}function Pl(e,t,r){let n=da(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Cl:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>f.createElement(ua,{error:Xn()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:f.createElement(t.Layout,null,f.createElement(n,null))}:{Component:n},...o?{errorElement:f.createElement(t.Layout,null,f.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:f.createElement(t.Layout,null,f.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function hs(e,t,r,n,a,o){return Lr(t,r,n,a,o,"",ca(t),e)}function Rt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new _e(400,"Bad Request",new Error(n),!0)}}function Qt(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new _e(405,"Method Not Allowed",new Error(n),!0)}function Lr(e,t,r,n,a,o="",l=ca(e),s){return(l[o]||[]).map(i=>{var $,C,M;let u=t[i.id];function d(x){return oe(typeof x=="function","No single fetch function available for route handler"),x()}function h(x){return i.hasLoader?d(x):Promise.resolve(null)}function m(x){if(!i.hasAction)throw Qt("action",i.id);return d(x)}function v(x){import(x)}function E(x){x.clientActionModule&&v(x.clientActionModule),x.clientLoaderModule&&v(x.clientLoaderModule)}async function b(x){let p=t[i.id],D=p?ea(i,p):Promise.resolve();try{return x()}finally{await D}}let R={id:i.id,index:i.index,path:i.path};if(u){Object.assign(R,{...R,...Pl(i,u,a),unstable_middleware:u.unstable_clientMiddleware,handle:u.handle,shouldRevalidate:gn(R.path,u,i,n,s)});let x=r&&r.loaderData&&i.id in r.loaderData,p=x?($=r==null?void 0:r.loaderData)==null?void 0:$[i.id]:void 0,D=r&&r.errors&&i.id in r.errors,A=D?(C=r==null?void 0:r.errors)==null?void 0:C[i.id]:void 0,N=s==null&&(((M=u.clientLoader)==null?void 0:M.hydrate)===!0||!i.hasLoader);R.loader=async({request:J,params:Q,context:le},Z)=>{try{return await b(async()=>(oe(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:J,params:Q,context:le,async serverLoader(){if
41(Rt("loader",i),N){if(x)return p;if(D)throw A}return h(Z)}}):h(Z)))}finally{N=!1}},R.loader.hydrate=fa(i.id,u.clientLoader,i.hasLoader,a),R.action=({request:J,params:Q,context:le},Z)=>b(async()=>{if(oe(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw Qt("clientAction",i.id);return m(Z)}return u.clientAction({request:J,params:Q,context:le,async serverAction(){return Rt("action",i),m(Z)}})})}else{i.hasClientLoader||(R.loader=(D,A)=>b(()=>h(A))),i.hasClientAction||(R.action=(D,A)=>b(()=>{if(a)throw Qt("clientAction",i.id);return m(A)}));let x;async function p(){return x?await x:(x=(async()=>{(i.clientLoaderModule||i.clientActionModule)&&await new Promise(A=>setTimeout(A,0));let D=Dl(i,t);return E(i),await D})(),await x)}R.lazy={loader:i.hasClientLoader?async()=>{let{clientLoader:D}=i.clientLoaderModule?await import(i.clientLoaderModule):await p();return oe(D,"No `clientLoader` export found"),(A,N)=>D({...A,async serverLoader(){return Rt("loader",i),h(N)}})}:void 0,action:i.hasClientAction?async()=>{let D=i.clientActionModule?import(i.clientActionModule):p();E(i);let{clientAction:A}=await D;return oe(A,"No `clientAction` export found"),(N,J)=>A({...N,async serverAction(){return Rt("action",i),m(J)}})}
41:void 0,unstable_middleware:i.hasClientMiddleware?async()=>{let{unstable_clientMiddleware:D}=i.clientMiddlewareModule?await import(i.clientMiddlewareModule):await p();return oe(D,"No `unstable_clientMiddleware` export found"),D}:void 0,shouldRevalidate:async()=>{let D=await p();return gn(R.path,D,i,n,s)},handle:async()=>(await p()).handle,Component:async()=>(await p()).Component,ErrorBoundary:i.hasErrorBoundary?async()=>(await p()).ErrorBoundary:void 0}}let w=Lr(e,t,r,n,a,i.id,l,s);return w.length>0&&(R.children=w),R})}function gn(e,t,r,n,a){if(a)return Ml(r.id,t.shouldRevalidate,a);if(!n&&r.hasLoader&&!r.hasClientLoader){let o=e?In(e)[1].map(s=>s.paramName):[];const l=s=>o.some(i=>s.currentParams[i]!==s.nextParams[i]);if(t.shouldRevalidate){let s=t.shouldRevalidate;return i=>s({...i,defaultShouldRevalidate:l(i)})}else return s=>l(s)}if(n&&t.shouldRevalidate){let o=t.shouldRevalidate;return l=>o({...l,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function Ml(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Dl(e,t){let r=Qn(e,t),n=Bi(e),a=await r;return await Promise.all([n,ea(e,a)]),{Component:da(a),ErrorBoundary:a.ErrorBoundary,unstable_clientMiddleware:a.unstable_clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function da(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function fa(e,t,r,n){return n&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var Dt=new Set,_l=1e3,$t=new Set,Tl=7680;function Cr(e,t){return e.mode==="lazy"&&t===!0}function kl({sri:e,...t},r){let n=new Set(r.state.matches.map(s=>s.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(s=>{let i=be(r.routes,s,r.basename);i&&i.forEach(u=>n.add(u.route.id))});let l=[...n].reduce((s,i)=>Object.assign(s,{[i]:t.routes[i]}),{});return{...t,routes:l,sri:e?!0:void 0}}function ms(e,t,r,n,a,o){if(Cr(n,r))return async({path:l,patch:s,signal:i,fetcherKey:u})=>{$t.has(l)||await ha([l],u?window.location.href:l,e,t,r,a,o,n.manifestPath,s,i)}}function ps(e,t,r,n,a,o){f.useEffect(()=>{var d,h;if(!Cr(a,n)||((h=(d=window.navigator)==null?void 0:d.connection)==null?void 0:h.saveData)===!0)return;function l(m){let v=m.tagName==="FORM"?m.getAttribute("action"):m.getAttribute("href");if(!v)return;let E=m.tagName==="A"?m.pathname:new URL(v,window.location.origin).pathname;$t.has(E)||Dt.add(E)}async function s(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(l);let m=Array.from(Dt.keys()).filter(v=>$t.has(v)?(Dt.delete(v),!1):!0);if(m.length!==0)try{await ha(m,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(v){console.error("Failed to fetch manifest patches",v)}}let i=Il(s,100);s();let u=new MutationObserver(()=>i());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[n,o,t,r,e,a])}function Ol(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var Zt="react-router-manifest-version";async function ha(e,t,r,n,a,o,l,s,i,u){let d=new URL(Ol(s,l),window.location.origin);if(e.sort().forEach(b=>d.searchParams.append("p",b)),d.searchParams.set("version",r.version),d.toString().length>Tl){Dt.clear();return}let h;try{let b=await fetch(d,{signal:u});if(b.ok){if(b.status===204&&b.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}if(sessionStorage.getItem(Zt)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(Zt,r.version),window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(b.status>=400)throw new Error(await b.text())}else throw new Error(`${b.status} ${b.statusText}`);
41sessionStorage.removeItem(Zt),h=await b.json()}catch(b){if(u!=null&&u.aborted)return;throw b}let m=new Set(Object.keys(r.routes)),v=Object.values(h).reduce((b,R)=>(R&&!m.has(R.id)&&(b[R.id]=R),b),{});Object.assign(r.routes,v),e.forEach(b=>$l(b,$t));let E=new Set;Object.values(v).forEach(b=>{b&&(!b.parentId||!v[b.parentId])&&E.add(b.parentId)}),E.forEach(b=>i(b||null,Lr(v,n,null,a,o,b)))}function $l(e,t){if(t.size>=_l){let r=t.values().next().value;t.delete(r)}t.add(e)}function Il(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Pr(){let e=f.useContext(He);return oe(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function At(){let e=f.useContext(Je);return oe(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var jt=f.createContext(void 0);jt.displayName="FrameworkContext";function Ge(){let e=f.useContext(jt);return oe(e,"You must render this element inside a <HydratedRouter> element"),e}function Nl(e,t){let r=f.useContext(jt),[n,a]=f.useState(!1),[o,l]=f.useState(!1),{onFocus:s,onBlur:i,onMouseEnter:u,onMouseLeave:d,onTouchStart:h}=t,m=f.useRef(null);f.useEffect(()=>{if(e==="render"&&l(!0),e==="viewport"){let b=w=>{w.forEach($=>{l($.isIntersecting)})},R=new IntersectionObserver(b,{threshold:.5});return m.current&&R.observe(m.current),()=>{R.disconnect()}}},[e]),f.useEffect(()=>{if(n){let b=setTimeout(()=>{l(!0)},100);return()=>{clearTimeout(b)}}},[n]);let v=()=>{a(!0)},E=()=>{a(!1),l(!1)};return r?e!=="intent"?[o,m,{}]:[o,m,{onFocus:rt(s,v),onBlur:rt(i,E),onMouseEnter:rt(u,v),onMouseLeave:rt(d,E),onTouchStart:rt(h,v)}]:[!1,m,{}]}function rt(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Mr(e,t,r){if(r&&!_t)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}function ys(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=Ge(),{errors:a,matches:o}=At(),l=Mr(o,a,e),s=f.useMemo(()=>zi(l,r,t),[l,r,t]);return f.createElement(f.Fragment,null,typeof n=="string"?f.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,typeof n=="object"?f.createElement("link",{rel:"stylesheet",href:n.href}):null,s.map(({key:i,link:u})=>Sr(u)?f.createElement(ma,{key:i,...u}):f.createElement("link",{key:i,...u})))}function ma({page:e,...t}){let{router:r}=Pr(),n=f.useMemo(()=>be(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?f.createElement(Al,{page:e,matches:n,...t}):null}function Fl(e){let{manifest:t,routeModules:r}=Ge(),[n,a]=f.useState([]);return f.useEffect(()=>{let o=!1;return Wi(e,t,r).then(l=>{o||a(l)}),()=>{o=!0}},[e,t,r]),n}function Al({page:e,matches:t,...r}){let n=Se(),{manifest:a,routeModules:o}=Ge(),{basename:l}=Pr(),{loaderData:s,matches:i}=At(),u=f.useMemo(()=>mn(e,t,i,a,n,"data"),[e,t,i,a,n]),d=f.useMemo(()=>mn(e,t,i,a,n,"assets"),[e,t,i,a,n]),h=f.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let E=new Set,b=!1;if(t.forEach(w=>{var C;let $=a.routes[w.route.id];!$||!$.hasLoader||(!u.some(M=>M.route.id===w.route.id)&&w.route.id in s&&((C=o[w.route.id])!=null&&C.shouldRevalidate)||$.hasClientLoader?b=!0:E.add(w.route.id))}),E.size===0)return[];let R=sa(e,l);return b&&E.size>0&&R.searchParams.set("_routes",t.filter(w=>E.has(w.route.id)).map(w=>w.route.id).join(",")),[R.pathname+R.search]},[l,s,n,a,u,t,e,o]),m=f.useMemo(()=>xr(d,a),[d,a]),v=Fl(d);return f.createElement(f.Fragment,null,h.map(E=>f.createElement("link",{key:E,rel:"prefetch",as:"fetch",href:E,...r})),m.map(E=>f.createElement("link",{key:E,rel:"modulepreload",href:E,...r})),v.map(({key:E,link:b})=>f.createElement("link",{key:E,...b})))}function vs(){let{isSpaMode:e,routeModules:t}=Ge(),{errors:r,matches:n,loaderData:a}=At(),o=Se(),l=Mr(n,r,e),s=null;r&&(s=r[l[l.length-1].route.id]);let i=[],u=null,d=[];for(let h=0;h<l.length;h++){let m=l[h],v=m.route.id,E=a[v],b=m.params,R=t[v],w=[],$={id:v,data:E,meta:[],params:m.params,pathname:m.pathname,handle:m.route.handle,error:s};if(d[h]=$,R!=null&&R.meta?w=typeof R.meta=="function"?R.meta({data:E,params:b,location:o,matches:d,error:s}):Array.isArray(R.meta)?[...R.meta]:R.meta:u&&(w=[...u]),w=w||[],!Array.isArray(w))throw new Error("The route at "+m.route.path+` returns an invali
41d value. All route meta functions must return an array of meta objects. 42 43To reference the meta function API, see https://remix.run/route/meta`);$.meta=w,d[h]=$,i=[...w],u=i}return f.createElement(f.Fragment,null,i.flat().map(h=>{if(!h)return null;if("tagName"in h){let{tagName:m,...v}=h;if(!jl(m))return console.warn(`A meta object uses an invalid tagName: ${m}. Expected either 'link' or 'meta'`),null;let E=m;return f.createElement(E,{key:JSON.stringify(v),...v})}if("title"in h)return f.createElement("title",{key:"title"},String(h.title));if("charset"in h&&(h.charSet??(h.charSet=h.charset),delete h.charset),"charSet"in h&&h.charSet!=null)return typeof h.charSet=="string"?f.createElement("meta",{key:"charSet",charSet:h.charSet}):null;if("script:ld+json"in h)try{let m=JSON.stringify(h["script:ld+json"]);return f.createElement("script",{key:`script:ld+json:${m}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:m}})}catch{return null}return f.createElement("meta",{key:JSON.stringify(h),...h})}))}function jl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var _t=!1;function Ul(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:l}=Ge(),{router:s,static:i,staticContext:u}=Pr(),{matches:d}=At(),h=Cr(o,l);a&&(a.didRenderScripts=!0);let m=Mr(d,null,n);f.useEffect(()=>{_t=!0},[]);let v=f.useMemo(()=>{var C;let w=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",$=i?`${(C=t.hmr)!=null&&C.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${h?"":`import ${JSON.stringify(t.url)}`}; 44${m.map((M,x)=>{let p=`route${x}`,D=t.routes[M.route.id];oe(D,`Route ${M.route.id} not found in manifest`);let{clientActionModule:A,clientLoaderModule:N,clientMiddlewareModule:J,hydrateFallbackModule:Q,module:le}=D,Z=[...A?[{module:A,varName:`${p}_clientAction`}]:[],...N?[{module:N,varName:`${p}_clientLoader`}]:[],...J?[{module:J,varName:`${p}_clientMiddleware`}]:[],...Q?[{module:Q,varName:`${p}_HydrateFallback`}]:[],{module:le,varName:`${p}_main`}];if(Z.length===1)return`import * as ${p} from ${JSON.stringify(le)};`;let V=Z.map(B=>`import * as ${B.varName} from "${B.module}";`).join(` 45`),G=`const ${p} = {${Z.map(B=>`...${B.varName}`).join(",")}};`;return[V,G].join(` 46`)}).join(` 47`)} 48 ${h?`window.__reactRouterManifest = ${JSON.stringify(kl(t,s),null,2)};`:""} 49 window.__reactRouterRouteModules = {${m.map((M,x)=>`${JSON.stringify(M.route.id)}:route${x}`).join(",")}}; 50 51import(${JSON.stringify(t.entry.module)});`:" ";return f.createElement(f.Fragment,null,f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:pn(w),type:void 0}),f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:pn($),type:"module",async:!0}))},[]),E=_t?[]:Hl(t.entry.imports.concat(xr(m,t,{includeHydrateFallback:!0}))),b=typeof t.sri=="object"?t.sri:{};return _t?null:f.createElement(f.Fragment,null,typeof t.sri=="object"?f.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:b})}}):null,h?null:f.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:b[t.url],suppressHydrationWarning:!0}),f.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:b[t.entry.module],suppressHydrationWarning:!0}),E.map(R=>f.createElement("link",{key:R,rel:"modulepreload",href:R,crossOrigin:e.crossOrigin,integrity:b[R],suppressHydrationWarning:!0})),v)}function Hl(e){return[...new Set(e)]}function zl(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var pa=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{pa&&(window.__reactRouterVersion="7.6.1")}catch{}var ya=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,va=f.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:a,reloadDocument:o,replace:l,state:s,target:i,to:u,preventScrollReset:d,viewTransition:h,...m},v){let{basename:E}=f.useContext(ve),b=typeof u=="string"&&ya.test(u),R,w=!1;if(typeof u=="string"&&b&&(R=u,pa))try{let N=new URL(window.location.href),J=u.startsWith("//")?new URL(N.protocol+u):new URL(u),Q=he(J.pathname,E);J.origin===N.origin&&Q!=null?u=Q+J.search+J.hash:w=!0}catch{K(!1,`<Link to="${u}">
51 contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let $=mi(u,{relative:a}),[C,M,x]=Nl(n,m),p=Jl(u,{replace:l,state:s,target:i,preventScrollReset:d,relative:a,viewTransition:h});function D(N){t&&t(N),N.defaultPrevented||p(N)}let A=f.createElement("a",{...m,...x,href:R||$,onClick:w||o?t:D,ref:zl(v,M),target:i,"data-discover":!b&&r==="render"?"true":void 0});return C&&!b?f.createElement(f.Fragment,null,A,f.createElement(ma,{page:$})):A});va.displayName="Link";var Bl=f.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:a=!1,style:o,to:l,viewTransition:s,children:i,...u},d){let h=ut(l,{relative:u.relative}),m=Se(),v=f.useContext(Je),{navigator:E,basename:b}=f.useContext(ve),R=v!=null&&es(h)&&s===!0,w=E.encodeLocation?E.encodeLocation(h).pathname:h.pathname,$=m.pathname,C=v&&v.navigation&&v.navigation.location?v.navigation.location.pathname:null;r||($=$.toLowerCase(),C=C?C.toLowerCase():null,w=w.toLowerCase()),C&&b&&(C=he(C,b)||C);const M=w!=="/"&&w.endsWith("/")?w.length-1:w.length;let x=$===w||!a&&$.startsWith(w)&&$.charAt(M)==="/",p=C!=null&&(C===w||!a&&C.startsWith(w)&&C.charAt(w.length)==="/"),D={isActive:x,isPending:p,isTransitioning:R},A=x?t:void 0,N;typeof n=="function"?N=n(D):N=[n,x?"active":null,p?"pending":null,R?"transitioning":null].filter(Boolean).join(" ");let J=typeof o=="function"?o(D):o;return f.createElement(va,{...u,"aria-current":A,className:N,ref:d,style:J,to:l,viewTransition:s},typeof i=="function"?i(D):i)});Bl.displayName="NavLink";var Vl=f.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:l=Pt,action:s,onSubmit:i,relative:u,preventScrollReset:d,viewTransition:h,...m},v)=>{let E=Xl(),b=ql(s,{relative:u}),R=l.toLowerCase()==="get"?"get":"post",w=typeof s=="string"&&ya.test(s),$=C=>{if(i&&i(C),C.defaultPrevented)return;C.preventDefault();let M=C.nativeEvent.submitter,x=(M==null?void 0:M.getAttribute("formmethod"))||l;E(M||C.currentTarget,{fetcherKey:t,method:x,navigate:r,replace:a,state:o,relative:u,preventScrollReset:d,viewTransition:h})};return f.createElement("form",{ref:v,method:R,action:b,onSubmit:n?i:$,...m,"data-discover":!w&&e==="render"?"true":void 0})});Vl.displayName="Form";function Wl({getKey:e,storageKey:t,...r}){let n=f.useContext(jt),{basename:a}=f.useContext(ve),o=Se(),l=Kn();Ql({getKey:e,storageKey:t});let s=f.useMemo(()=>{if(!n||!e)return null;let u=ur(o,l,a,e);return u!==o.key?u:null},[]);if(!n||n.isSpaMode)return null;let i=((u,d)=>{if(!window.history.state||!window.history.state.key){let h=Math.random().toString(32).slice(2);window.history.replaceState({key:h},"")}try{let m=JSON.parse(sessionStorage.getItem(u)||"{}")[d||window.history.state.key];typeof m=="number"&&window.scrollTo(0,m)}catch(h){console.error(h),sessionStorage.removeItem(u)}}).toString();return f.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${i})(${JSON.stringify(t||sr)}, ${JSON.stringify(s)})`}})}Wl.displayName="ScrollRestoration";function ga(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Dr(e){let t=f.useContext(He);return U(t,ga(e)),t}function Yl(e){let t=f.useContext(Je);return U(t,ga(e)),t}function Jl(e,{target:t,replace:r,state:n,preventScrollReset:a,relative:o,viewTransition:l}={}){let s=pi(),i=Se(),u=ut(e,{relative:o});return f.useCallback(d=>{if(Ai(d,t)){d.preventDefault();let h=r!==void 0?r:De(i)===De(u);s(e,{replace:h,state:n,preventScrollReset:a,relative:o,viewTransition:l})}},[i,s,u,r,n,t,e,a,o,l])}var Gl=0,Kl=()=>`__${String(++Gl)}__`;function Xl(){let{router:e}=Dr("useSubmit"),{basename:t}=f.useContext(ve),r=Pi();return f.useCallback(async(n,a={})=>{let{action:o,method:l,encType:s,formData:i,body:u}=Hi(n,t);if(a.navigate===!1){let d=a.fetcherKey||Kl();await e.fetch(d,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:i,body:u,formMethod:a.method||l,formEncType:a.encType||s,flushSync:a.flushSync})}else await e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:i,body:u,formMethod:a.method||l,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function ql(e,{relative:t}={}){let{basename:r}=f.useContext(ve),n=f.useContext(Ee);U(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...ut(e||".",{relative:t})},l=Se();if(e==null){o.search=l.search;let s=new URLSearchParams(o.search),i=s.getAll("index");if(i.some(d=>d==="")){s.delete("index"),i.filter(h=>
51h).forEach(h=>s.append("index",h));let d=s.toString();o.search=d?`?${d}`:""}}return(!e||e===".")&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Re([r,o.pathname])),De(o)}var sr="react-router-scroll-positions",St={};function ur(e,t,r,n){let a=null;return n&&(r!=="/"?a=n({...e,pathname:he(e.pathname,r)||e.pathname},t):a=n(e,t)),a==null&&(a=e.key),a}function Ql({getKey:e,storageKey:t}={}){let{router:r}=Dr("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=Yl("useScrollRestoration"),{basename:o}=f.useContext(ve),l=Se(),s=Kn(),i=Mi();f.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Zl(f.useCallback(()=>{if(i.state==="idle"){let u=ur(l,s,o,e);St[u]=window.scrollY}try{sessionStorage.setItem(t||sr,JSON.stringify(St))}catch(u){K(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[i.state,e,o,l,s,t])),typeof document<"u"&&(f.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||sr);u&&(St=JSON.parse(u))}catch{}},[t]),f.useLayoutEffect(()=>{let u=r==null?void 0:r.enableScrollRestoration(St,()=>window.scrollY,e?(d,h)=>ur(d,h,o,e):void 0);return()=>u&&u()},[r,o,e]),f.useLayoutEffect(()=>{if(n!==!1){if(typeof n=="number"){window.scrollTo(0,n);return}if(l.hash){let u=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(u){u.scrollIntoView();return}}a!==!0&&window.scrollTo(0,0)}},[l,n,a]))}function Zl(e,t){let{capture:r}={};f.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function es(e,t={}){let r=f.useContext(Er);U(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=Dr("useViewTransitionState"),a=ut(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=he(r.currentLocation.pathname,n)||r.currentLocation.pathname,l=he(r.nextLocation.pathname,n)||r.nextLocation.pathname;return kt(a.pathname,l)!=null||kt(a.pathname,o)!=null}[...la];function gs(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 _e(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 l=new o(a.message);l.stack=a.stack,r[n]=l}catch{}}if(r[n]==null){let o=new Error(a.message);o.stack=a.stack,r[n]=o}}else r[n]=a;return r}function ws(e,t,r,n,a,o){let l={...e,loaderData:{...e.loaderData}},s=be(t,n,a);if(s)for(let i of s){let u=i.route.id,d=r(u);fa(u,d.clientLoader,d.hasLoader,o)&&(d.hasHydrateFallback||!d.hasLoader)?delete l.loaderData[u]:d.hasLoader||(l.loaderData[u]=null)}return l}export{jt as F,ys as L,vs as M,cs as O,fs as R,Wl as S,us as a,gs as b,Lr as c,Ll as d,ns as e,ms as f,ws as g,ds as h,U as i,rs as j,hs as k,ss as l,ls as m,ts as n,Se as o,va as p,Ul as q,f as r,os as s,Kn as t,ps as u,is as v,as as w};
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.