1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1981],{55488:(e,t,n)=>{n.d(t,{BV:()=>eg,C5:()=>em,Kd:()=>eB,N_:()=>eI,Zp:()=>ee,g:()=>et,ok:()=>ez,qh:()=>ef,zy:()=>Z});var r,a,o=n(59600),i=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,l=/^[\\/]{2}/,u=((r=u||{}).Pop="POP",r.Push="PUSH",r.Replace="REPLACE",r),s="popstate";function c(e){return"object"==typeof e&&null!=e&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function h(e,t){if(!1===e||null==e)throw Error(t)}function p(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function d(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function m(e,t,n=null,r,a){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?y(t):t,state:n,key:t&&t.key||r||Math.random().toString(36).substring(2,10),mask:a}}function f({pathname:e="/",search:t="",hash:n=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),n&&"#"!==n&&(e+="#"===n.charAt(0)?n:"#"+n),e}function y(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function g(e,t,n="/"){return v(e,t,n,!1)}function v(e,t,n,r,a){let o,i=C(("string"==typeof t?y(t):t).pathname||"/",n);if(null==i)return null;let l=a??((o=function e(t,n=[],r=[],a="",o=!1){let i=(t,i,l=o,u)=>{var s,c;let p,d,m={relativePath:void 0===u?t.path||"":u,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(m.relativePath.startsWith("/")){if(!m.relativePath.startsWith(a)&&l)return;h(m.relativePath.startsWith(a),`Absolute route path "${m.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),m.relativePath=m.relativePath.slice(a.length)}let f=N([a,m.relativePath]),y=r.concat(m);t.children&&t.children.length>0&&(h(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),e(t.children,n,y,f,l)),(null!=t.path||t.index)&&n.push({path:f,score:(s=f,c=t.index,d=(p=s.split("/")).length,p.some(b)&&(d+=-2),c&&(d+=2),p.filter(e=>!b(e)).reduce((e,t)=>e+(w.test(t)?3:""===t?1:10),d)),routesMeta:y.map((e,t)=>{let[n,r]=x(e.relativePath,e.caseSensitive,t===y.length-1);return{...e,matcher:n,compiledParams:r}})})};return t.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let n of function e(t){let n=t.split("/");if(0===n.length)return[];let[r,...a]=n,o=r.endsWith("?"),i=r.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let l=e(a.join("/")),u=[];return u.push(...l.map(e=>""===e?i:[i,e].join("/"))),o&&u.push(...l),u.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))i(e,t,!0,n);else i(e,t)}),n}(e)).sort((e,t)=>{var n,r;return e.score!==t.score?t.score-e.score:(n=e.routesMeta.map(e=>e.childrenIndex),r=t.routesMeta.map(e=>e.childrenIndex),n.length===r.length&&n.slice(0,-1).every((e,t)=>e===r[t])?n[n.length-1]-r[r.length-1]:0)}),o),u=null,s=function(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return p(!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}}(i);for(let e=0;null==u&&e<l.length;++e)u=function(e,t,n=!1){let{routesMeta:r}=e,a={},o="/",i=[];for(let e=0;e<r.length;++e){let l=r[e],u=e===r.length-1,s="/"===o?t:t.slice(o.length)||"/",c={path:l.relativePath,caseSensitive:l.caseSensitive,end:u},h=l.matcher&&l.compiledParams?E(c,s,l.matcher,l.compiledParams):R(c,s),p=l.route;if(!h&&u&&n&&!r[r.length-1].route.index&&(h=R({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},s)),!h)return null;
1Object.assign(a,h.params),i.push({params:a,pathname:N([o,h.pathname]),pathnameBase:A(N([o,h.pathnameBase])),route:p}),"/"!==h.pathnameBase&&(o=N([o,h.pathnameBase]))}return i}(l[e],s,r);return u}new WeakMap;var w=/^:[\w-]+$/,b=e=>"*"===e;function R(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=x(e.path,e.caseSensitive,e.end);return E(e,t,n,r)}function E(e,t,n,r){let a=t.match(n);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if("*"===t){let e=l[r]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}let a=l[r];return n&&!a?e[t]=void 0:e[t]=(a||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function x(e,t=!1,n=!0){p("*"===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 r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n,a,o)=>{if(r.push({paramName:t,isOptional:null!=n}),n){let t=o.charAt(a+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function C(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function S(e,t){let n=O(t).split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function $(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function k(e){let t=e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function P(e,t,n,r=!1){let a,o;"string"==typeof e?a=y(e):(h(!(a={...e}).pathname||!a.pathname.includes("?"),$("?","pathname","search",a)),h(!a.pathname||!a.pathname.includes("#"),$("#","pathname","hash",a)),h(!a.search||!a.search.includes("#"),$("#","search","hash",a)));let i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=n;else{let e=t.length-1;if(!r&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let u=function(e,t="/"){let{pathname:n,search:r="",hash:a=""}="string"==typeof e?y(e):e;return{pathname:n?(n=L(n)).startsWith("/")?S(n.substring(1),"/"):S(n,t):t,search:T(r),hash:M(a)}}(a,o),s=l&&"/"!==l&&l.endsWith("/"),c=(i||"."===l)&&n.endsWith("/");return!u.pathname.endsWith("/")&&(s||c)&&(u.pathname+="/"),u}var L=e=>e.replace(/[\\/]{2,}/g,"/"),N=e=>L(e.join("/")),O=e=>e.replace(/\/+$/,""),A=e=>O(e).replace(/^\/*/,"/"),T=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",M=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",F=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function W(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}var U="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function _(e,t){let n=e;if("string"!=typeof n||!i.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,a=!1;if(U)try{var o;let e=new URL(window.location.href),r=new URL(l.test(n)?(o=n,e.protocol+o.replace(/\\/g,"/")):n),i=C(r.pathname,t);r.origin===e.origin&&null!=i?n=i+r.search+r.hash:a=!0}catch(e){p(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:a,to:n}}Symbol("Uninstrumented"),Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),Symbol("ResetLoaderData"),new WeakMap,new WeakMap,new WeakMap,new WeakMap;var j=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"],D=o.createContext(null);D.displayName="DataRouter";var B=o.createContext(null);B.displayName="DataRouterState";var I=o.createContext(!1);function H(){return o.useContext(I)}var z=o.createContext({isTransitioning:!1});z.displayName="ViewTransition",o.createContext(new Map).displayName="Fetchers",o.createContext(null).displayName="Await";var J=o.createContext(null);J.displayName="Navigation";var Y=o.createContext(null);Y.displayName="Location";var q=o.createContext({outlet:null,matches:[],isDataRoute:!1});q.displayName="Route";var V=o.createContext(null);V.displayName="RouteError";var K="REACT_ROUTER_ERROR";function X(){return null!=o.useContext(Y)}function Z(){return h(X(),"useLocation() may be used only in the context of a <Router> component."),o.useContext(Y).location}var G="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Q(e){o.useContext(J).static||o.useLayoutEffect(e)}function ee(){let{isDataRoute:e}=o.useContext(q);return e?function(){let e,{router:t}=(h(e=o.useContext(D),es("useNavigate")),e),n=eh("useNavigate"),r=o.useRef(!1);return Q(()=>{r.current=!0}),o.useCallback(async(e,a={})=>{p(r.current,G),r.current&&("number"==typeof e?await t.navigate(e):await t.navigate(e,{fromRouteId:n,...a}))},[t,n])}():function(){h(X(),"useNavigate() may be used only in the context of a <Router> component.");let e=o.useContext(D),{basename:t,navigator:n}=o.useContext(J),{matches:r}=o.useContext(q),{pathname:a}=Z(),i=JSON.stringify(k(r)),l=o.useRef(!1);return Q(()=>{l.current=!0}),o.useCallback((r,o={})=>
1{if(p(l.current,G),!l.current)return;if("number"==typeof r)return void n.go(r);let u=P(r,JSON.parse(i),a,"path"===o.relative);null==e&&"/"!==t&&(u.pathname="/"===u.pathname?t:N([t,u.pathname])),(o.replace?n.replace:n.push)(u,o.state,o)},[t,n,i,a,e])}()}function et(){let{matches:e}=o.useContext(q),t=e[e.length-1];return t?.params??{}}function en(e,{relative:t}={}){let{matches:n}=o.useContext(q),{pathname:r}=Z(),a=JSON.stringify(k(n));return o.useMemo(()=>P(e,JSON.parse(a),r,"path"===t),[e,a,r,t])}function er(e,t,n){let r;h(X(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=o.useContext(J),{matches:i}=o.useContext(q),l=i[i.length-1],u=l?l.params:{},s=l?l.pathname:"/",c=l?l.pathnameBase:"/",d=l&&l.route;{let e=d&&d.path||"";ed(s,!d||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) 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. 2 3Please change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let m=Z();if(t){let e="string"==typeof t?y(t):t;h("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),r=e}else r=m;let f=r.pathname||"/",v=f;if("/"!==c){let e=c.replace(/^\//,"").split("/");v="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let w=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):g(e,{pathname:v});p(d||null!=w,`No routes matched location "${r.pathname}${r.search}${r.hash}" `),p(null==w||void 0!==w[w.length-1].route.element||void 0!==w[w.length-1].route.Component||void 0!==w[w.length-1].route.lazy,`Matched leaf route at location "${r.pathname}${r.search}${r.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.`);let b=function(e,t=[],n){let r=n?.state;if(null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let a=e,i=r?.errors;if(null!=i){let e=a.findIndex(e=>e.route.id&&i?.[e.route.id]!==void 0);h(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),a=a.slice(0,Math.min(a.length,e+1))}let l=!1,u=-1;if(n&&r){l=r.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:o}=r,i=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!o||void 0===o[t.route.id]);if(t.route.lazy||i){n.isStatic&&(l=!0),a=u>=0?a.slice(0,u+1):[a[0]];break}}}}let s=n?.onError,c=r&&s?(e,t)=>{s(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:N(r.matches.map(e=>e.route.path).filter(Boolean))||"/",errorInfo:t})}:void 0;return a.reduceRight((e,n,s)=>{let h,p=!1,d=null,m=null;r&&(h=i&&n.route.id?i[n.route.id]:void 0,d=n.route.errorElement||ea,l&&(u<0&&0===s?(ed("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),p=!0,m=null):u===s&&(p=!0,m=n.route.hydrateFallbackElement||null)));let f=t.concat(a.slice(0,s+1)),y=()=>{let t;return t=h?d:p?m:n.route.Component?o.createElement(n.route.Component,null):n.route.element?n.route.element:e,o.createElement(eu,{match:n,routeContext:{outlet:e,matches:f,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===s)?o.createElement(eo,{location:r.location,revalidation:r.revalidation,component:d,error:h,children:y(),routeC
3ontext:{outlet:null,matches:f,isDataRoute:!0},onError:c}):y()},null)}(w&&w.map(e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:N([c,a.encodeLocation?a.encodeLocation(e.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:N([c,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),i,n);return t&&b?o.createElement(Y.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...r},navigationType:"POP"}},b):b}o.createContext(null);var ea=o.createElement(function(){let e,t,n,r=(e=o.useContext(V),t=ec("useRouteError"),n=eh("useRouteError"),void 0!==e?e:t.errors?.[n]),a=W(r)?`${r.status} ${r.statusText}`:r instanceof Error?r.message:JSON.stringify(r),i=r instanceof Error?r.stack:null,l="rgba(200,200,200, 0.5)",u={padding:"2px 4px",backgroundColor:l},s=null;return console.error("Error handled by React Router default ErrorBoundary:",r),s=o.createElement(o.Fragment,null,o.createElement("p",null,"\uD83D\uDCBF Hey developer \uD83D\uDC4B"),o.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",o.createElement("code",{style:u},"ErrorBoundary")," or"," ",o.createElement("code",{style:u},"errorElement")," prop on your route.")),o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},a),i?o.createElement("pre",{style:{padding:"0.5rem",backgroundColor:l}},i):null,s)},null),eo=class extends o.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||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){let t=function(e){if(e.startsWith(`${K}:ROUTE_ERROR_RESPONSE:{`))try{let t=JSON.parse(e.slice(40));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText)return new F(t.status,t.statusText,t.data)}catch{}}(e.digest);t&&(e=t)}let t=void 0!==e?o.createElement(q.Provider,{value:this.props.routeContext},o.createElement(V.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?o.createElement(el,{error:e},t):t}};eo.contextType=I;var ei=new WeakMap;function el({children:e,error:t}){let{basename:n}=o.useContext(J);if("object"==typeof t&&t&&"digest"in t&&"string"==typeof t.digest){let e=function(e){if(e.startsWith(`${K}:REDIRECT:{`))try{let t=JSON.parse(e.slice(28));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText&&"string"==typeof t.location&&"boolean"==typeof t.reloadDocument&&"boolean"==typeof t.replace)return t}catch{}}(t.digest);if(e){let r=ei.get(t);if(r)throw r;let a=_(e.location,n),i=a.absoluteURL||a.to;if(function(e){try{return j.includes(new URL(e).protocol)}catch{return!1}}(i))throw Error("Invalid redirect location");if(U&&!ei.get(t))if(a.isExternal||e.reloadDocument)window.location.href=i;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw ei.set(t,n),n}return o.createElement("meta",{httpEquiv:"refresh",content:`0;url=${i}`})}}return e}function eu({routeContext:e,match:t,children:n}){let r=o.useContext(D);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),o.createElement(q.Provider,{value:e},n)}function es(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ec(e){let t=o.useContext(B);return h(t,es(e)),t}function eh(e){let t,n=(h(t=o.useContext(q),es(e)),t),r=n.matches[n.matches.length-1];return h(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}var ep={};function ed(e,t,n){t||ep[e]||(ep[e]=!0,p(!1,n))}function em({to:e,replace:t,state:n,relative:r}){h(X(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=o.useContext(J);p(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:i}=o.useContext(q),{pathname:l}=Z(),u=ee(),s=JSON.stringify(P(e,k(i),l,"path"===r));return o.useEffect(()=>{u(JSON.parse(s),{replace:t,state:n,relative:r})},[u,s,r,t,n]),null}function ef(e){h(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function ey({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:a,static:i=!1,useTransitions:l}){h(!X(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let u=e.replace(/^\/*/,"/"),s=o.useMemo(()=>({basename:u,navigator:a,static:i,useTransitions:l,future:{}}),[u,a,i,l]);"string"==typeof n&&(n=y(n));
3let{pathname:c="/",search:d="",hash:m="",state:f=null,key:g="default",mask:v}=n,w=o.useMemo(()=>{let e=C(c,u);return null==e?null:{location:{pathname:e,search:d,hash:m,state:f,key:g,mask:v},navigationType:r}},[u,c,d,m,f,g,r,v]);return(p(null!=w,`<Router basename="${u}"> is not able to match the URL "${c}${d}${m}" because it does not start with the basename, so the <Router> won't render anything.`),null==w)?null:o.createElement(J.Provider,{value:s},o.createElement(Y.Provider,{children:t,value:w}))}function eg({children:e,location:t}){return er(function e(t,n=[]){let r=[];return o.Children.forEach(t,(t,a)=>{if(!o.isValidElement(t))return;let i=[...n,a];if(t.type===o.Fragment)return void r.push.apply(r,e(t.props.children,i));h(t.type===ef,`[${"string"==typeof t.type?t.type:t.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),h(!t.props.index||!t.props.children,"An index route cannot have child routes.");let l={id:t.props.id||i.join("-"),caseSensitive:t.props.caseSensitive,element:t.props.element,Component:t.props.Component,index:t.props.index,path:t.props.path,middleware:t.props.middleware,loader:t.props.loader,action:t.props.action,hydrateFallbackElement:t.props.hydrateFallbackElement,HydrateFallback:t.props.HydrateFallback,errorElement:t.props.errorElement,ErrorBoundary:t.props.ErrorBoundary,hasErrorBoundary:!0===t.props.hasErrorBoundary||null!=t.props.ErrorBoundary||null!=t.props.errorElement,shouldRevalidate:t.props.shouldRevalidate,handle:t.props.handle,lazy:t.props.lazy};t.props.children&&(l.children=e(t.props.children,i)),r.push(l)}),r}(e),t)}(a||(a=n.t(o,2))).useOptimistic,o.memo(function({routes:e,manifest:t,future:n,state:r,isStatic:a,onError:o}){return er(e,void 0,{manifest:t,state:r,isStatic:a,onError:o,future:n})}),o.Component;var ev="get",ew="application/x-www-form-urlencoded";function eb(e){return"u">typeof HTMLElement&&e instanceof HTMLElement}function eR(e=""){return new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}var eE=null,ex=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function eC(e){return null==e||ex.has(e)?e:(p(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ew}"`),null)}Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),"u">typeof window&&window;function eS(e,t){if(!1===e||null==e)throw Error(t)}function e$(e,t,n,r){let a="string"==typeof e?new URL(e,"u"<typeof window?"server://singlefetch/":window.location.origin):e;return n?a.pathname.endsWith("/")?a.pathname=`${a.pathname}_.${r}`:a.pathname=`${a.pathname}.${r}`:"/"===a.pathname?a.pathname=`_root.${r}`:t&&"/"===C(a.pathname,t)?a.pathname=`${O(t)}/_root.${r}`:a.pathname=`${O(a.pathname)}.${r}`,a}async function ek(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function eP(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}
3async function eL(e,t,n){var r;let a,o;return r=(await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await ek(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(eP).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}),a=new Set,o=new Set(void 0),r.reduce((e,t)=>{!1;let n=JSON.stringify(function(e){let t={};for(let n of Object.keys(e).sort())t[n]=e[n];return t}(t));return a.has(n)||(a.add(n),e.push({key:n,link:t})),e},[])}function eN(e,t,n,r,a,o){let i=(e,t)=>!n[t]||e.route.id!==n[t].route.id,l=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith("*")&&n[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||l(e,t)):"data"===o?t.filter((t,o)=>{let u=r.routes[t.route.id];if(!u||!u.hasLoader)return!1;if(i(t,o)||l(t,o))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof r)return r}return!0}):[]}function eO(e,t,{includeHydrateFallback:n}={}){return[...new Set(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let a=[r.module];return r.clientActionModule&&(a=a.concat(r.clientActionModule)),r.clientLoaderModule&&(a=a.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(a=a.concat(r.hydrateFallbackModule)),r.imports&&(a=a.concat(r.imports)),a}).flat(1))]}function eA(){let e=o.useContext(D);return eS(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function eT(){let e=o.useContext(B);return eS(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}Symbol("SingleFetchRedirect");var eM=o.createContext(void 0);function eF(){let e=o.useContext(eM);return eS(e,"You must render this element inside a <HydratedRouter> element"),e}function eW(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function eU({page:e,...t}){let n=H(),{nonce:r}=eF(),{router:a}=eA(),i=o.useMemo(()=>g(a.routes,e,a.basename),[a.routes,e,a.basename]);return i?(null==t.nonce&&r&&(t={...t,nonce:r}),n)?o.createElement(e_,{page:e,matches:i,...t}):o.createElement(ej,{page:e,matches:i,...t}):null}function e_({page:e,matches:t,...n}){let r=Z(),{future:a}=eF(),{basename:i}=eA(),l=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=e$(e,i,a.v8_trailingSlashAwareDataRequests,"rsc"),o=!1,l=[];for(let e of t)"function"==typeof e.route.shouldRevalidate?o=!0:l.push(e.route.id);return o&&l.length>0&&n.searchParams.set("_routes",l.join(",")),[n.pathname+n.search]},[i,a.v8_trailingSlashAwareDataRequests,e,r,t]);return o.createElement(o.Fragment,null,l.map(e=>o.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n})))}function ej({page:e,matches:t,...n}){let r=Z(),{future:a,manifest:i,routeModules:l}=eF(),{basename:u}=eA(),{loaderData:s,matches:c}=eT(),h=o.useMemo(()=>eN(e,t,c,i,r,"data"),[e,t,c,i,r]),p=o.useMemo(()=>eN(e,t,c,i,r,"assets"),[e,t,c,i,r]),d=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,o=!1;if(t.forEach(e=>{let t=i.routes[e.route.id];t&&t.hasLoader&&(!h.some(t=>t.route.id===e.route.id)&&e.route.id in s&&l[e.route.id]?.shouldRevalidate||t.hasClientLoader?o=!0:n.add(e.route.id))}),0===n.size)return[];let c=e$(e,u,a.v8_trailingSlashAwareDataRequests,"data");return o&&n.size>0&&c.searchParams.set("_routes",t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(",")),[c.pathname+c.search]},[u,a.v8_trailingSlashAwareDataRequests,s,r,i,h,t,e,l]),m=o.useMemo(()=>eO(p,i),[p,i]),f=function(e){let{manifest:t,routeModules:n}=eF(),[r,a]=o.useState([]);return o.useEffect(()=>{let r=!1;return eL(e,t,n).then(e=>{r||a(e)}),()=>{r=!0}},[e,t,n]),r}(p);return o.createElement(o.Fragment,null,d.map(e=>o.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n})),m.map(e=>o.createElement("link",{key:e,rel:"modulepreload",href:e,...n})),f.map(({key:e,link:t})=>o.createElement("link",{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}eM.displayName="FrameworkContext";o.Component;var eD="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{eD&&(window.__reactRouterVersion="7.18.1")}catch(e){}function eB({basename:e,children:t,useTransitions:n,window:r}){let a=o.useRef();null==a.current&&(a.current=function(e={}){return function(e,t,n,r={}){let{window:a=document.defaultView,v5Compat:o=!1}=r,i=a.history,u="POP",p=null,y=g();function g(){return(i.state||{idx:null}).idx}function v(){u="POP";let e=g(),t=null==e?null:e-y;y=e,p&&p({action:u,location:b.location,delta:t})}function w(e){return function(e,t,n=!1){let r="http://localhost";e&&(r="null"!==e.location.origin?e.location.origin:e.location.href),h(r,"No window.location.(origin|href) available to create URL");let a="string"==typeof t?t:f(t);return a=a.replace(/ $/,"%20"),!n&&l.test(a)&&(a=r+a),new URL(a,r)}(a,e)}null==y&&(y=0,i.replaceState({...i.state,idx:y},""));let b={get action(){return u},get location(){return e(a,i)},listen(e){if(p)throw Error("A history only accepts one active listener");return a.addEventListener(s,v),p=e,()=>{a.removeEventListener(s,v),p=null}},createHref:e=>t(a,e),createURL:w,encodeLocation(e){let t=w(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){u="PUSH";let n=c(e)?e:m(b.location,e,t);let r=d(n,y=g()+1),l=b.createHref(n.mask||n);try{i.pushState(r,"",l)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(l)}o&&p&&p({action:u,location:b.location,delta:1})},replace:function(e,t){u="REPLACE";let n=c(e)?e:m(b.location,e,t);let r=d(n,y=g()),a=b.createHref(n.mask||n);i.replaceState(r,"",a),o&&p&&p({action:u,location:b.location,delta:0})},go:e=>i.go(e)};return b}(function(e,t){let n=t.state?.masked,{pathname:r,search:a,hash:o}=n||e.location;return m("",{pathname:r,search:a,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default",n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)},function(e,t){return"string"==typeof t?t:f(t)},null,e)}({window:r,v5Compat:!0}));
3let i=a.current,[u,p]=o.useState({action:i.action,location:i.location}),y=o.useCallback(e=>{!1===n?p(e):o.startTransition(()=>p(e))},[n]);return o.useLayoutEffect(()=>i.listen(y),[i,y]),o.createElement(ey,{basename:e,children:t,location:u.location,navigationType:u.action,navigator:i,useTransitions:n})}var eI=o.forwardRef(function({onClick:e,discover:t="render",prefetch:n="none",relative:r,reloadDocument:a,replace:l,mask:u,state:s,target:c,to:p,preventScrollReset:d,viewTransition:m,defaultShouldRevalidate:y,...g},v){let{basename:w,navigator:b,useTransitions:R}=o.useContext(J),E="string"==typeof p&&i.test(p),x=_(p,w),C=function(e,{relative:t}={}){h(X(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:r}=o.useContext(J),{hash:a,pathname:i,search:l}=en(e,{relative:t}),u=i;return"/"!==n&&(u="/"===i?n:N([n,i])),r.createHref({pathname:u,search:l,hash:a})}(p=x.to,{relative:r}),S=Z(),$=null;if(u){let e=P(u,[],S.mask?S.mask.pathname:"/",!0);"/"!==w&&(e.pathname="/"===e.pathname?w:N([w,e.pathname])),$=b.createHref(e)}let[k,L,O]=function(e,t){let n=o.useContext(eM),[r,a]=o.useState(!1),[i,l]=o.useState(!1),{onFocus:u,onBlur:s,onMouseEnter:c,onMouseLeave:h,onTouchStart:p}=t,d=o.useRef(null);o.useEffect(()=>{if("render"===e&&l(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{l(e.isIntersecting)})},{threshold:.5});return d.current&&e.observe(d.current),()=>{e.disconnect()}}},[e]),o.useEffect(()=>{if(r){let e=setTimeout(()=>{l(!0)},100);return()=>{clearTimeout(e)}}},[r]);let m=()=>{a(!0)},f=()=>{a(!1),l(!1)};return n?"intent"!==e?[i,d,{}]:[i,d,{onFocus:eW(u,m),onBlur:eW(s,f),onMouseEnter:eW(c,m),onMouseLeave:eW(h,f),onTouchStart:eW(p,m)}]:[!1,d,{}]}(n,g),A=function(e,{target:t,replace:n,mask:r,state:a,preventScrollReset:i,relative:l,viewTransition:u,defaultShouldRevalidate:s,useTransitions:c}={}){let h=ee(),p=Z(),d=en(e,{relative:l});return o.useCallback(m=>{if(0===m.button&&(!t||"_self"===t)&&!(m.metaKey||m.altKey||m.ctrlKey||m.shiftKey)){m.preventDefault();let t=void 0!==n?n:f(p)===f(d),y=()=>h(e,{replace:t,mask:r,state:a,preventScrollReset:i,relative:l,viewTransition:u,defaultShouldRevalidate:s});c?o.startTransition(()=>y()):y()}},[p,h,d,n,r,a,t,e,i,l,u,s,c])}(p,{replace:l,mask:u,state:s,target:c,preventScrollReset:d,relative:r,viewTransition:m,defaultShouldRevalidate:y,useTransitions:R}),T=!(x.isExternal||a),M=o.createElement("a",{...g,...O,href:(T?$:void 0)||x.absoluteURL||C,onClick:T?function(t){e&&e(t),t.defaultPrevented||A(t)}:e,ref:function(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}(v,L),target:c,"data-discover":E||"render"!==t?void 0:"true"});return k&&!E?o.createElement(o.Fragment,null,M,o.createElement(eU,{page:C})):M});eI.displayName="Link",o.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:n="",end:r=!1,style:a,to:i,viewTransition:l,children:u,...s},c){let p,d=en(i,{relative:s.relative}),m=Z(),f=o.useContext(B),{navigator:y,basename:g}=o.useContext(J),v=null!=f&&function(e,{relative:t}={}){let n=o.useContext(z);h(null!=n,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=eH("useViewTransitionState"),a=en(e,{relative:t});if(!n.isTransitioning)return!1;let i=C(n.currentLocation.pathname,r)||n.currentLocation.pathname,l=C(n.nextLocation.pathname,r)||n.nextLocation.pathname;return null!=R(a.pathname,l)||null!=R(a.pathname,i)}(d)&&!0===l,w=y.encodeLocation?y.encodeLocation(d).pathname:d.pathname,b=m.pathname,E=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(b=b.toLowerCase(),E=E?E.toLowerCase():null,w=w.toLowerCase()),E&&g&&(E=C(E,g)||E);let x="/"!==w&&w.endsWith("/")?w.length-1:w.length,S=b===w||!r&&b.startsWith(w)&&"/"===b.charAt(x),$=null!=E&&(E===w||!r&&E.startsWith(w)&&"/"===E.charAt(w.length)),k={isActive:S,isPending:$,isTransitioning:v},P=S?e:void 0;p="function"==typeof n?n(k):[n,S?"active":null,$?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let L="function"==typeof a?a(k):a;return o.createElement(eI,{...s,"aria-current":P,className:p,ref:c,style:L,to:i,viewTransition:l},"function"==typeof u?u(k):u)}).displayName="NavLink",o.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:r,replace:a,state:l,method:u=ev,action:s,onSubmit:c,relative:p,preventScrollReset:d,viewTransition:m,defaultShouldRevalidate:y,...g},v)=>{let{useTransitions:w}=o.useContext(J),b=function(){let{router:e}
3=eH("useSubmit"),{basename:t}=o.useContext(J),n=eh("useRouteId"),r=e.fetch,a=e.navigate;return o.useCallback(async(e,o={})=>{let{action:i,method:l,encType:u,formData:s,body:c}=function(e,t){let n,r,a,o,i;if(eb(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");r=i?C(i,t):null,n=e.getAttribute("method")||ev,a=eC(e.getAttribute("enctype"))||ew,o=new FormData(e)}else if(eb(e)&&"button"===e.tagName.toLowerCase()||eb(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||i.getAttribute("action");if(r=l?C(l,t):null,n=e.getAttribute("formmethod")||i.getAttribute("method")||ev,a=eC(e.getAttribute("formenctype"))||eC(i.getAttribute("enctype"))||ew,o=new FormData(i,e),!function(){if(null===eE)try{new FormData(document.createElement("form"),0),eE=!1}catch(e){eE=!0}return eE}()){let{name:t,type:n,value:r}=e;if("image"===n){let e=t?`${t}.`:"";o.append(`${e}x`,"0"),o.append(`${e}y`,"0")}else t&&o.append(t,r)}}else if(eb(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else n=ev,r=null,a=ew,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:r,method:n.toLowerCase(),encType:a,formData:o,body:i}}(e,t);if(!1===o.navigate){let e=o.fetcherKey||`__${String(++eJ)}__`;await r(e,n,o.action||i,{defaultShouldRevalidate:o.defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||l,formEncType:o.encType||u,flushSync:o.flushSync})}else await a(o.action||i,{defaultShouldRevalidate:o.defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:s,body:c,formMethod:o.method||l,formEncType:o.encType||u,replace:o.replace,state:o.state,fromRouteId:n,flushSync:o.flushSync,viewTransition:o.viewTransition})},[r,a,t,n])}(),R=function(e,{relative:t}={}){let{basename:n}=o.useContext(J),r=o.useContext(q);h(r,"useFormAction must be used inside a RouteContext");let[a]=r.matches.slice(-1),i={...en(e||".",{relative:t})},l=Z();if(null==e){i.search=l.search;let e=new URLSearchParams(i.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let n=e.toString();i.search=n?`?${n}`:""}}return(!e||"."===e)&&a.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(i.pathname="/"===i.pathname?n:N([n,i.pathname])),f(i)}(s,{relative:p}),E="get"===u.toLowerCase()?"get":"post",x="string"==typeof s&&i.test(s);return o.createElement("form",{ref:v,method:E,action:R,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,i=r?.getAttribute("formmethod")||u,s=()=>b(r||e.currentTarget,{fetcherKey:t,method:i,navigate:n,replace:a,state:l,relative:p,preventScrollReset:d,viewTransition:m,defaultShouldRevalidate:y});w&&!1!==n?o.startTransition(()=>s()):s()},...g,"data-discover":x||"render"!==e?void 0:"true"})}).displayName="Form";function eH(e){var t;let n=o.useContext(D);return h(n,(t=e,`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`)),n}function ez(e){p("u">typeof URLSearchParams,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=o.useRef(eR(e)),n=o.useRef(!1),r=Z(),a=o.useMemo(()=>{var e,a;let o;return e=r.search,a=n.current?null:t.current,o=eR(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[r.search]),i=ee(),l=o.useCallback((e,t)=>{let r=eR("function"==typeof e?e(new URLSearchParams(a)):e);n.current=!0,i("?"+r,t)},[i,a]);return[a,l]}var eJ=0}}]);
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.