diff --git a/internal/applicant/applicant.go b/internal/applicant/applicant.go index 2385bbad..13c4a790 100644 --- a/internal/applicant/applicant.go +++ b/internal/applicant/applicant.go @@ -60,11 +60,12 @@ type Certificate struct { } type ApplyOption struct { - Email string `json:"email"` - Domain string `json:"domain"` - Access string `json:"access"` - Nameservers string `json:"nameservers"` - Timeout int64 `json:"timeout"` + Email string `json:"email"` + Domain string `json:"domain"` + Access string `json:"access"` + KeyAlgorithm string `json:"keyAlgorithm"` + Nameservers string `json:"nameservers"` + Timeout int64 `json:"timeout"` } type ApplyUser struct { @@ -91,11 +92,10 @@ type Applicant interface { func Get(record *models.Record) (Applicant, error) { if record.GetString("applyConfig") == "" { - return nil, errors.New("apply config is empty") + return nil, errors.New("applyConfig is empty") } applyConfig := &domain.ApplyConfig{} - record.UnmarshalJSONField("applyConfig", applyConfig) access, err := app.GetApp().Dao().FindRecordById("access", applyConfig.Access) @@ -103,17 +103,23 @@ func Get(record *models.Record) (Applicant, error) { return nil, fmt.Errorf("access record not found: %w", err) } - email := applyConfig.Email - if email == "" { - email = defaultEmail + if applyConfig.Email == "" { + applyConfig.Email = defaultEmail } + + if applyConfig.Timeout == 0 { + applyConfig.Timeout = defaultTimeout + } + option := &ApplyOption{ - Email: email, - Domain: record.GetString("domain"), - Access: access.GetString("config"), - Nameservers: applyConfig.Nameservers, - Timeout: applyConfig.Timeout, + Email: applyConfig.Email, + Domain: record.GetString("domain"), + Access: access.GetString("config"), + KeyAlgorithm: applyConfig.KeyAlgorithm, + Nameservers: applyConfig.Nameservers, + Timeout: applyConfig.Timeout, } + switch access.GetString("configType") { case configTypeAliyun: return NewAliyun(option), nil @@ -171,7 +177,7 @@ func apply(option *ApplyOption, provider challenge.Provider) (*Certificate, erro // This CA URL is configured for a local dev instance of Boulder running in Docker in a VM. config.CADirURL = sslProviderUrls[sslProvider.Provider] - config.Certificate.KeyType = certcrypto.RSA2048 + config.Certificate.KeyType = parseKeyAlgorithm(option.KeyAlgorithm) // A client facilitates communication with the CA server. client, err := lego.NewClient(config) @@ -180,7 +186,7 @@ func apply(option *ApplyOption, provider challenge.Provider) (*Certificate, erro } challengeOptions := make([]dns01.ChallengeOption, 0) - nameservers := ParseNameservers(option.Nameservers) + nameservers := parseNameservers(option.Nameservers) if len(nameservers) > 0 { challengeOptions = append(challengeOptions, dns01.AddRecursiveNameservers(nameservers)) } @@ -195,7 +201,6 @@ func apply(option *ApplyOption, provider challenge.Provider) (*Certificate, erro myUser.Registration = reg domains := strings.Split(option.Domain, ";") - request := certificate.ObtainRequest{ Domains: domains, Bundle: true, @@ -231,7 +236,6 @@ func getReg(client *lego.Client, sslProvider *SSLProviderConfig) (*registration. default: err = errors.New("unknown ssl provider") - } if err != nil { @@ -241,15 +245,13 @@ func getReg(client *lego.Client, sslProvider *SSLProviderConfig) (*registration. return reg, nil } -func ParseNameservers(ns string) []string { +func parseNameservers(ns string) []string { nameservers := make([]string, 0) lines := strings.Split(ns, ";") for _, line := range lines { - line = strings.TrimSpace(line) - if line == "" { continue } @@ -259,3 +261,22 @@ func ParseNameservers(ns string) []string { return nameservers } + +func parseKeyAlgorithm(algo string) certcrypto.KeyType { + switch algo { + case "RSA2048": + return certcrypto.RSA2048 + case "RSA3072": + return certcrypto.RSA3072 + case "RSA4096": + return certcrypto.RSA4096 + case "RSA8192": + return certcrypto.RSA8192 + case "EC256": + return certcrypto.EC256 + case "EC384": + return certcrypto.EC384 + default: + return certcrypto.RSA2048 + } +} diff --git a/internal/domain/domains.go b/internal/domain/domains.go index ff378274..97fa1d7d 100644 --- a/internal/domain/domains.go +++ b/internal/domain/domains.go @@ -1,10 +1,11 @@ package domain type ApplyConfig struct { - Email string `json:"email"` - Access string `json:"access"` - Timeout int64 `json:"timeout"` - Nameservers string `json:"nameservers"` + Email string `json:"email"` + Access string `json:"access"` + KeyAlgorithm string `json:"keyAlgorithm"` + Nameservers string `json:"nameservers"` + Timeout int64 `json:"timeout"` } type DeployConfig struct { diff --git a/ui/dist/assets/index-C20g8xcX.js b/ui/dist/assets/index-C20g8xcX.js new file mode 100644 index 00000000..8bd37786 --- /dev/null +++ b/ui/dist/assets/index-C20g8xcX.js @@ -0,0 +1,329 @@ +var jP=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var d9=jP((j9,Nd)=>{function _1(e,t){for(var n=0;nr[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();var Cu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var S1={exports:{}},Bf={},k1={exports:{}},nt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Gc=Symbol.for("react.element"),EP=Symbol.for("react.portal"),NP=Symbol.for("react.fragment"),TP=Symbol.for("react.strict_mode"),PP=Symbol.for("react.profiler"),RP=Symbol.for("react.provider"),AP=Symbol.for("react.context"),OP=Symbol.for("react.forward_ref"),DP=Symbol.for("react.suspense"),IP=Symbol.for("react.memo"),MP=Symbol.for("react.lazy"),m0=Symbol.iterator;function LP(e){return e===null||typeof e!="object"?null:(e=m0&&e[m0]||e["@@iterator"],typeof e=="function"?e:null)}var C1={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j1=Object.assign,E1={};function Ka(e,t,n){this.props=e,this.context=t,this.refs=E1,this.updater=n||C1}Ka.prototype.isReactComponent={};Ka.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")};Ka.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function N1(){}N1.prototype=Ka.prototype;function sy(e,t,n){this.props=e,this.context=t,this.refs=E1,this.updater=n||C1}var oy=sy.prototype=new N1;oy.constructor=sy;j1(oy,Ka.prototype);oy.isPureReactComponent=!0;var p0=Array.isArray,T1=Object.prototype.hasOwnProperty,iy={current:null},P1={key:!0,ref:!0,__self:!0,__source:!0};function R1(e,t,n){var r,s={},o=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(o=""+t.key),t)T1.call(t,r)&&!P1.hasOwnProperty(r)&&(s[r]=t[r]);var a=arguments.length-2;if(a===1)s.children=n;else if(1>>1,B=W[$];if(0>>1;$s(oe,X))Des(me,oe)?(W[$]=me,W[De]=X,$=De):(W[$]=oe,W[se]=X,$=se);else if(Des(me,X))W[$]=me,W[De]=X,$=De;else break e}}return I}function s(W,I){var X=W.sortIndex-I.sortIndex;return X!==0?X:W.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();e.unstable_now=function(){return i.now()-a}}var c=[],u=[],d=1,f=null,h=3,m=!1,x=!1,p=!1,w=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(W){for(var I=n(u);I!==null;){if(I.callback===null)r(u);else if(I.startTime<=W)r(u),I.sortIndex=I.expirationTime,t(c,I);else break;I=n(u)}}function _(W){if(p=!1,b(W),!x)if(n(c)!==null)x=!0,J(C);else{var I=n(u);I!==null&&F(_,I.startTime-W)}}function C(W,I){x=!1,p&&(p=!1,y(R),R=-1),m=!0;var X=h;try{for(b(I),f=n(c);f!==null&&(!(f.expirationTime>I)||W&&!G());){var $=f.callback;if(typeof $=="function"){f.callback=null,h=f.priorityLevel;var B=$(f.expirationTime<=I);I=e.unstable_now(),typeof B=="function"?f.callback=B:f===n(c)&&r(c),b(I)}else r(c);f=n(c)}if(f!==null)var he=!0;else{var se=n(u);se!==null&&F(_,se.startTime-I),he=!1}return he}finally{f=null,h=X,m=!1}}var j=!1,T=null,R=-1,A=5,D=-1;function G(){return!(e.unstable_now()-DW||125$?(W.sortIndex=X,t(u,W),n(c)===null&&W===n(u)&&(p?(y(R),R=-1):p=!0,F(_,X-$))):(W.sortIndex=B,t(c,W),x||m||(x=!0,J(C))),W},e.unstable_shouldYield=G,e.unstable_wrapCallback=function(W){var I=h;return function(){var X=h;h=I;try{return W.apply(this,arguments)}finally{h=X}}}})(L1);M1.exports=L1;var GP=M1.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ZP=g,Zn=GP;function ae(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xp=Object.prototype.hasOwnProperty,qP=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y0={},v0={};function XP(e){return xp.call(v0,e)?!0:xp.call(y0,e)?!1:qP.test(e)?v0[e]=!0:(y0[e]=!0,!1)}function QP(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function JP(e,t,n,r){if(t===null||typeof t>"u"||QP(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function jn(e,t,n,r,s,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var sn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){sn[e]=new jn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];sn[t]=new jn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){sn[e]=new jn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){sn[e]=new jn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){sn[e]=new jn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){sn[e]=new jn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){sn[e]=new jn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){sn[e]=new jn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){sn[e]=new jn(e,5,!1,e.toLowerCase(),null,!1,!1)});var ly=/[\-:]([a-z])/g;function cy(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ly,cy);sn[t]=new jn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ly,cy);sn[t]=new jn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ly,cy);sn[t]=new jn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){sn[e]=new jn(e,1,!1,e.toLowerCase(),null,!1,!1)});sn.xlinkHref=new jn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){sn[e]=new jn(e,1,!1,e.toLowerCase(),null,!0,!0)});function uy(e,t,n,r){var s=sn.hasOwnProperty(t)?sn[t]:null;(s!==null?s.type!==0:r||!(2a||s[i]!==o[a]){var c=` +`+s[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=a);break}}}finally{pm=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Rl(e):""}function eR(e){switch(e.tag){case 5:return Rl(e.type);case 16:return Rl("Lazy");case 13:return Rl("Suspense");case 19:return Rl("SuspenseList");case 0:case 2:case 15:return e=gm(e.type,!1),e;case 11:return e=gm(e.type.render,!1),e;case 1:return e=gm(e.type,!0),e;default:return""}}function Sp(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case qi:return"Fragment";case Zi:return"Portal";case wp:return"Profiler";case dy:return"StrictMode";case bp:return"Suspense";case _p:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case $1:return(e.displayName||"Context")+".Consumer";case F1:return(e._context.displayName||"Context")+".Provider";case fy:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case hy:return t=e.displayName||null,t!==null?t:Sp(e.type)||"Memo";case so:t=e._payload,e=e._init;try{return Sp(e(t))}catch{}}return null}function tR(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Sp(t);case 8:return t===dy?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function jo(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function V1(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function nR(e){var t=V1(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Nu(e){e._valueTracker||(e._valueTracker=nR(e))}function B1(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=V1(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Td(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function kp(e,t){var n=t.checked;return Mt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function w0(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=jo(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function W1(e,t){t=t.checked,t!=null&&uy(e,"checked",t,!1)}function Cp(e,t){W1(e,t);var n=jo(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?jp(e,t.type,n):t.hasOwnProperty("defaultValue")&&jp(e,t.type,jo(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function b0(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function jp(e,t,n){(t!=="number"||Td(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Al=Array.isArray;function ma(e,t,n,r){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Tu.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function sc(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Bl={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rR=["Webkit","ms","Moz","O"];Object.keys(Bl).forEach(function(e){rR.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Bl[t]=Bl[e]})});function G1(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Bl.hasOwnProperty(e)&&Bl[e]?(""+t).trim():t+"px"}function Z1(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,s=G1(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,s):e[n]=s}}var sR=Mt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Tp(e,t){if(t){if(sR[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ae(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ae(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ae(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ae(62))}}function Pp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Rp=null;function my(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ap=null,pa=null,ga=null;function k0(e){if(e=Xc(e)){if(typeof Ap!="function")throw Error(ae(280));var t=e.stateNode;t&&(t=Gf(t),Ap(e.stateNode,e.type,t))}}function q1(e){pa?ga?ga.push(e):ga=[e]:pa=e}function X1(){if(pa){var e=pa,t=ga;if(ga=pa=null,k0(e),t)for(e=0;e>>=0,e===0?32:31-(pR(e)/gR|0)|0}var Pu=64,Ru=4194304;function Ol(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Od(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,s=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~s;a!==0?r=Ol(a):(o&=i,o!==0&&(r=Ol(o)))}else i=n&~s,i!==0?r=Ol(i):o!==0&&(r=Ol(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&s)&&(s=r&-r,o=t&-t,s>=o||s===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Zc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Er(t),e[t]=n}function wR(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Hl),O0=" ",D0=!1;function y_(e,t){switch(e){case"keyup":return GR.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function v_(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Xi=!1;function qR(e,t){switch(e){case"compositionend":return v_(t);case"keypress":return t.which!==32?null:(D0=!0,O0);case"textInput":return e=t.data,e===O0&&D0?null:e;default:return null}}function XR(e,t){if(Xi)return e==="compositionend"||!_y&&y_(e,t)?(e=p_(),ld=xy=co=null,Xi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=z0(n)}}function __(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?__(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function S_(){for(var e=window,t=Td();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Td(e.document)}return t}function Sy(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function iA(e){var t=S_(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&__(n.ownerDocument.documentElement,n)){if(r!==null&&Sy(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,o=Math.min(r.start,s);r=r.end===void 0?o:Math.min(r.end,s),!e.extend&&o>r&&(s=r,r=o,o=s),s=F0(n,o);var i=F0(n,r);s&&i&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Qi=null,zp=null,Kl=null,Fp=!1;function $0(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Fp||Qi==null||Qi!==Td(r)||(r=Qi,"selectionStart"in r&&Sy(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Kl&&uc(Kl,r)||(Kl=r,r=Md(zp,"onSelect"),0ta||(e.current=Hp[ta],Hp[ta]=null,ta--)}function bt(e,t){ta++,Hp[ta]=e.current,e.current=t}var Eo={},gn=Mo(Eo),On=Mo(!1),li=Eo;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Eo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var s={},o;for(o in n)s[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Dn(e){return e=e.childContextTypes,e!=null}function zd(){kt(On),kt(gn)}function K0(e,t,n){if(gn.current!==Eo)throw Error(ae(168));bt(gn,t),bt(On,n)}function A_(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var s in r)if(!(s in t))throw Error(ae(108,tR(e)||"Unknown",s));return Mt({},n,r)}function Fd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Eo,li=gn.current,bt(gn,e),bt(On,On.current),!0}function G0(e,t,n){var r=e.stateNode;if(!r)throw Error(ae(169));n?(e=A_(e,t,li),r.__reactInternalMemoizedMergedChildContext=e,kt(On),kt(gn),bt(gn,e)):kt(On),bt(On,n)}var Ss=null,Zf=!1,Pm=!1;function O_(e){Ss===null?Ss=[e]:Ss.push(e)}function vA(e){Zf=!0,O_(e)}function Lo(){if(!Pm&&Ss!==null){Pm=!0;var e=0,t=gt;try{var n=Ss;for(gt=1;e>=i,s-=i,ks=1<<32-Er(t)+s|n<R?(A=T,T=null):A=T.sibling;var D=h(y,T,b[R],_);if(D===null){T===null&&(T=A);break}e&&T&&D.alternate===null&&t(y,T),v=o(D,v,R),j===null?C=D:j.sibling=D,j=D,T=A}if(R===b.length)return n(y,T),Pt&&Vo(y,R),C;if(T===null){for(;RR?(A=T,T=null):A=T.sibling;var G=h(y,T,D.value,_);if(G===null){T===null&&(T=A);break}e&&T&&G.alternate===null&&t(y,T),v=o(G,v,R),j===null?C=G:j.sibling=G,j=G,T=A}if(D.done)return n(y,T),Pt&&Vo(y,R),C;if(T===null){for(;!D.done;R++,D=b.next())D=f(y,D.value,_),D!==null&&(v=o(D,v,R),j===null?C=D:j.sibling=D,j=D);return Pt&&Vo(y,R),C}for(T=r(y,T);!D.done;R++,D=b.next())D=m(T,y,R,D.value,_),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?R:D.key),v=o(D,v,R),j===null?C=D:j.sibling=D,j=D);return e&&T.forEach(function(N){return t(y,N)}),Pt&&Vo(y,R),C}function w(y,v,b,_){if(typeof b=="object"&&b!==null&&b.type===qi&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case Eu:e:{for(var C=b.key,j=v;j!==null;){if(j.key===C){if(C=b.type,C===qi){if(j.tag===7){n(y,j.sibling),v=s(j,b.props.children),v.return=y,y=v;break e}}else if(j.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===so&&X0(C)===j.type){n(y,j.sibling),v=s(j,b.props),v.ref=yl(y,j,b),v.return=y,y=v;break e}n(y,j);break}else t(y,j);j=j.sibling}b.type===qi?(v=ni(b.props.children,y.mode,_,b.key),v.return=y,y=v):(_=gd(b.type,b.key,b.props,null,y.mode,_),_.ref=yl(y,v,b),_.return=y,y=_)}return i(y);case Zi:e:{for(j=b.key;v!==null;){if(v.key===j)if(v.tag===4&&v.stateNode.containerInfo===b.containerInfo&&v.stateNode.implementation===b.implementation){n(y,v.sibling),v=s(v,b.children||[]),v.return=y,y=v;break e}else{n(y,v);break}else t(y,v);v=v.sibling}v=zm(b,y.mode,_),v.return=y,y=v}return i(y);case so:return j=b._init,w(y,v,j(b._payload),_)}if(Al(b))return x(y,v,b,_);if(fl(b))return p(y,v,b,_);zu(y,b)}return typeof b=="string"&&b!==""||typeof b=="number"?(b=""+b,v!==null&&v.tag===6?(n(y,v.sibling),v=s(v,b),v.return=y,y=v):(n(y,v),v=Lm(b,y.mode,_),v.return=y,y=v),i(y)):n(y,v)}return w}var Aa=L_(!0),z_=L_(!1),Vd=Mo(null),Bd=null,sa=null,Ey=null;function Ny(){Ey=sa=Bd=null}function Ty(e){var t=Vd.current;kt(Vd),e._currentValue=t}function Gp(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function va(e,t){Bd=e,Ey=sa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(An=!0),e.firstContext=null)}function fr(e){var t=e._currentValue;if(Ey!==e)if(e={context:e,memoizedValue:t,next:null},sa===null){if(Bd===null)throw Error(ae(308));sa=e,Bd.dependencies={lanes:0,firstContext:e}}else sa=sa.next=e;return t}var Ko=null;function Py(e){Ko===null?Ko=[e]:Ko.push(e)}function F_(e,t,n,r){var s=t.interleaved;return s===null?(n.next=n,Py(t)):(n.next=s.next,s.next=n),t.interleaved=n,Is(e,r)}function Is(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var oo=!1;function Ry(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function $_(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ns(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function xo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,ut&2){var s=r.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),r.pending=t,Is(e,n)}return s=r.interleaved,s===null?(t.next=t,Py(r)):(t.next=s.next,s.next=t),r.interleaved=t,Is(e,n)}function ud(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,gy(e,n)}}function Q0(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var s=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?s=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?s=o=t:o=o.next=t}else s=o=t;n={baseState:r.baseState,firstBaseUpdate:s,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Wd(e,t,n,r){var s=e.updateQueue;oo=!1;var o=s.firstBaseUpdate,i=s.lastBaseUpdate,a=s.shared.pending;if(a!==null){s.shared.pending=null;var c=a,u=c.next;c.next=null,i===null?o=u:i.next=u,i=c;var d=e.alternate;d!==null&&(d=d.updateQueue,a=d.lastBaseUpdate,a!==i&&(a===null?d.firstBaseUpdate=u:a.next=u,d.lastBaseUpdate=c))}if(o!==null){var f=s.baseState;i=0,d=u=c=null,a=o;do{var h=a.lane,m=a.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:m,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var x=e,p=a;switch(h=t,m=n,p.tag){case 1:if(x=p.payload,typeof x=="function"){f=x.call(m,f,h);break e}f=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=p.payload,h=typeof x=="function"?x.call(m,f,h):x,h==null)break e;f=Mt({},f,h);break e;case 2:oo=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,h=s.effects,h===null?s.effects=[a]:h.push(a))}else m={eventTime:m,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},d===null?(u=d=m,c=f):d=d.next=m,i|=h;if(a=a.next,a===null){if(a=s.shared.pending,a===null)break;h=a,a=h.next,h.next=null,s.lastBaseUpdate=h,s.shared.pending=null}}while(!0);if(d===null&&(c=f),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=d,t=s.shared.interleaved,t!==null){s=t;do i|=s.lane,s=s.next;while(s!==t)}else o===null&&(s.shared.lanes=0);di|=i,e.lanes=i,e.memoizedState=f}}function J0(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Am.transition;Am.transition={};try{e(!1),t()}finally{gt=n,Am.transition=r}}function rS(){return hr().memoizedState}function _A(e,t,n){var r=bo(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},sS(e))oS(t,n);else if(n=F_(e,t,n,r),n!==null){var s=Sn();Nr(n,e,r,s),iS(n,t,r)}}function SA(e,t,n){var r=bo(e),s={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(sS(e))oS(t,s);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(s.hasEagerState=!0,s.eagerState=a,Pr(a,i)){var c=t.interleaved;c===null?(s.next=s,Py(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=F_(e,t,s,r),n!==null&&(s=Sn(),Nr(n,e,r,s),iS(n,t,r))}}function sS(e){var t=e.alternate;return e===It||t!==null&&t===It}function oS(e,t){Gl=Yd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function iS(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,gy(e,n)}}var Kd={readContext:fr,useCallback:fn,useContext:fn,useEffect:fn,useImperativeHandle:fn,useInsertionEffect:fn,useLayoutEffect:fn,useMemo:fn,useReducer:fn,useRef:fn,useState:fn,useDebugValue:fn,useDeferredValue:fn,useTransition:fn,useMutableSource:fn,useSyncExternalStore:fn,useId:fn,unstable_isNewReconciler:!1},kA={readContext:fr,useCallback:function(e,t){return Br().memoizedState=[e,t===void 0?null:t],e},useContext:fr,useEffect:tw,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,fd(4194308,4,Q_.bind(null,t,e),n)},useLayoutEffect:function(e,t){return fd(4194308,4,e,t)},useInsertionEffect:function(e,t){return fd(4,2,e,t)},useMemo:function(e,t){var n=Br();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Br();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=_A.bind(null,It,e),[r.memoizedState,e]},useRef:function(e){var t=Br();return e={current:e},t.memoizedState=e},useState:ew,useDebugValue:Fy,useDeferredValue:function(e){return Br().memoizedState=e},useTransition:function(){var e=ew(!1),t=e[0];return e=bA.bind(null,e[1]),Br().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=It,s=Br();if(Pt){if(n===void 0)throw Error(ae(407));n=n()}else{if(n=t(),en===null)throw Error(ae(349));ui&30||W_(r,t,n)}s.memoizedState=n;var o={value:n,getSnapshot:t};return s.queue=o,tw(Y_.bind(null,r,o,e),[e]),r.flags|=2048,vc(9,H_.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Br(),t=en.identifierPrefix;if(Pt){var n=Cs,r=ks;n=(r&~(1<<32-Er(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gc++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Wr]=t,e[hc]=r,gS(e,t,!1,!1),t.stateNode=e;e:{switch(i=Pp(n,r),n){case"dialog":St("cancel",e),St("close",e),s=r;break;case"iframe":case"object":case"embed":St("load",e),s=r;break;case"video":case"audio":for(s=0;sIa&&(t.flags|=128,r=!0,vl(o,!1),t.lanes=4194304)}else{if(!r)if(e=Hd(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),vl(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!Pt)return hn(t),null}else 2*Ut()-o.renderingStartTime>Ia&&n!==1073741824&&(t.flags|=128,r=!0,vl(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Ut(),t.sibling=null,n=Ot.current,bt(Ot,r?n&1|2:n&1),t):(hn(t),null);case 22:case 23:return Hy(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Un&1073741824&&(hn(t),t.subtreeFlags&6&&(t.flags|=8192)):hn(t),null;case 24:return null;case 25:return null}throw Error(ae(156,t.tag))}function AA(e,t){switch(Cy(t),t.tag){case 1:return Dn(t.type)&&zd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Oa(),kt(On),kt(gn),Dy(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Oy(t),null;case 13:if(kt(Ot),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ae(340));Ra()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return kt(Ot),null;case 4:return Oa(),null;case 10:return Ty(t.type._context),null;case 22:case 23:return Hy(),null;case 24:return null;default:return null}}var $u=!1,mn=!1,OA=typeof WeakSet=="function"?WeakSet:Set,Ne=null;function oa(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){zt(e,t,r)}else n.current=null}function rg(e,t,n){try{n()}catch(r){zt(e,t,r)}}var fw=!1;function DA(e,t){if($p=Dd,e=S_(),Sy(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var s=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,c=-1,u=0,d=0,f=e,h=null;t:for(;;){for(var m;f!==n||s!==0&&f.nodeType!==3||(a=i+s),f!==o||r!==0&&f.nodeType!==3||(c=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(m=f.firstChild)!==null;)h=f,f=m;for(;;){if(f===e)break t;if(h===n&&++u===s&&(a=i),h===o&&++d===r&&(c=i),(m=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=m}n=a===-1||c===-1?null:{start:a,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Up={focusedElem:e,selectionRange:n},Dd=!1,Ne=t;Ne!==null;)if(t=Ne,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Ne=e;else for(;Ne!==null;){t=Ne;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var p=x.memoizedProps,w=x.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?p:vr(t.type,p),w);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var b=t.stateNode.containerInfo;b.nodeType===1?b.textContent="":b.nodeType===9&&b.documentElement&&b.removeChild(b.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ae(163))}}catch(_){zt(t,t.return,_)}if(e=t.sibling,e!==null){e.return=t.return,Ne=e;break}Ne=t.return}return x=fw,fw=!1,x}function Zl(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var s=r=r.next;do{if((s.tag&e)===e){var o=s.destroy;s.destroy=void 0,o!==void 0&&rg(t,n,o)}s=s.next}while(s!==r)}}function Qf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function sg(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function xS(e){var t=e.alternate;t!==null&&(e.alternate=null,xS(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Wr],delete t[hc],delete t[Wp],delete t[gA],delete t[yA])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wS(e){return e.tag===5||e.tag===3||e.tag===4}function hw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wS(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function og(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ld));else if(r!==4&&(e=e.child,e!==null))for(og(e,t,n),e=e.sibling;e!==null;)og(e,t,n),e=e.sibling}function ig(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(ig(e,t,n),e=e.sibling;e!==null;)ig(e,t,n),e=e.sibling}var nn=null,xr=!1;function Js(e,t,n){for(n=n.child;n!==null;)bS(e,t,n),n=n.sibling}function bS(e,t,n){if(Qr&&typeof Qr.onCommitFiberUnmount=="function")try{Qr.onCommitFiberUnmount(Wf,n)}catch{}switch(n.tag){case 5:mn||oa(n,t);case 6:var r=nn,s=xr;nn=null,Js(e,t,n),nn=r,xr=s,nn!==null&&(xr?(e=nn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):nn.removeChild(n.stateNode));break;case 18:nn!==null&&(xr?(e=nn,n=n.stateNode,e.nodeType===8?Tm(e.parentNode,n):e.nodeType===1&&Tm(e,n),lc(e)):Tm(nn,n.stateNode));break;case 4:r=nn,s=xr,nn=n.stateNode.containerInfo,xr=!0,Js(e,t,n),nn=r,xr=s;break;case 0:case 11:case 14:case 15:if(!mn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){s=r=r.next;do{var o=s,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&rg(n,t,i),s=s.next}while(s!==r)}Js(e,t,n);break;case 1:if(!mn&&(oa(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){zt(n,t,a)}Js(e,t,n);break;case 21:Js(e,t,n);break;case 22:n.mode&1?(mn=(r=mn)||n.memoizedState!==null,Js(e,t,n),mn=r):Js(e,t,n);break;default:Js(e,t,n)}}function mw(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new OA),t.forEach(function(r){var s=BA.bind(null,e,r);n.has(r)||(n.add(r),r.then(s,s))})}}function yr(e,t){var n=t.deletions;if(n!==null)for(var r=0;rs&&(s=i),r&=~o}if(r=s,r=Ut()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*MA(r/1960))-r,10e?16:e,uo===null)var r=!1;else{if(e=uo,uo=null,qd=0,ut&6)throw Error(ae(331));var s=ut;for(ut|=4,Ne=e.current;Ne!==null;){var o=Ne,i=o.child;if(Ne.flags&16){var a=o.deletions;if(a!==null){for(var c=0;cUt()-By?ti(e,0):Vy|=n),In(e,t)}function TS(e,t){t===0&&(e.mode&1?(t=Ru,Ru<<=1,!(Ru&130023424)&&(Ru=4194304)):t=1);var n=Sn();e=Is(e,t),e!==null&&(Zc(e,t,n),In(e,n))}function VA(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),TS(e,n)}function BA(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ae(314))}r!==null&&r.delete(t),TS(e,n)}var PS;PS=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||On.current)An=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return An=!1,PA(e,t,n);An=!!(e.flags&131072)}else An=!1,Pt&&t.flags&1048576&&D_(t,Ud,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;hd(e,t),e=t.pendingProps;var s=Pa(t,gn.current);va(t,n),s=My(null,t,r,e,s,n);var o=Ly();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Dn(r)?(o=!0,Fd(t)):o=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Ry(t),s.updater=Xf,t.stateNode=s,s._reactInternals=t,qp(t,r,e,n),t=Jp(null,t,r,!0,o,n)):(t.tag=0,Pt&&o&&ky(t),bn(null,t,s,n),t=t.child),t;case 16:r=t.elementType;e:{switch(hd(e,t),e=t.pendingProps,s=r._init,r=s(r._payload),t.type=r,s=t.tag=HA(r),e=vr(r,e),s){case 0:t=Qp(null,t,r,e,n);break e;case 1:t=cw(null,t,r,e,n);break e;case 11:t=aw(null,t,r,e,n);break e;case 14:t=lw(null,t,r,vr(r.type,e),n);break e}throw Error(ae(306,r,""))}return t;case 0:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:vr(r,s),Qp(e,t,r,s,n);case 1:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:vr(r,s),cw(e,t,r,s,n);case 3:e:{if(hS(t),e===null)throw Error(ae(387));r=t.pendingProps,o=t.memoizedState,s=o.element,$_(e,t),Wd(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){s=Da(Error(ae(423)),t),t=uw(e,t,r,n,s);break e}else if(r!==s){s=Da(Error(ae(424)),t),t=uw(e,t,r,n,s);break e}else for(Wn=vo(t.stateNode.containerInfo.firstChild),Hn=t,Pt=!0,br=null,n=z_(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ra(),r===s){t=Ms(e,t,n);break e}bn(e,t,r,n)}t=t.child}return t;case 5:return U_(t),e===null&&Kp(t),r=t.type,s=t.pendingProps,o=e!==null?e.memoizedProps:null,i=s.children,Vp(r,s)?i=null:o!==null&&Vp(r,o)&&(t.flags|=32),fS(e,t),bn(e,t,i,n),t.child;case 6:return e===null&&Kp(t),null;case 13:return mS(e,t,n);case 4:return Ay(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Aa(t,null,r,n):bn(e,t,r,n),t.child;case 11:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:vr(r,s),aw(e,t,r,s,n);case 7:return bn(e,t,t.pendingProps,n),t.child;case 8:return bn(e,t,t.pendingProps.children,n),t.child;case 12:return bn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,s=t.pendingProps,o=t.memoizedProps,i=s.value,bt(Vd,r._currentValue),r._currentValue=i,o!==null)if(Pr(o.value,i)){if(o.children===s.children&&!On.current){t=Ms(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var c=a.firstContext;c!==null;){if(c.context===r){if(o.tag===1){c=Ns(-1,n&-n),c.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Gp(o.return,n,t),a.lanes|=n;break}c=c.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(ae(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),Gp(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}bn(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,r=t.pendingProps.children,va(t,n),s=fr(s),r=r(s),t.flags|=1,bn(e,t,r,n),t.child;case 14:return r=t.type,s=vr(r,t.pendingProps),s=vr(r.type,s),lw(e,t,r,s,n);case 15:return uS(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,s=t.pendingProps,s=t.elementType===r?s:vr(r,s),hd(e,t),t.tag=1,Dn(r)?(e=!0,Fd(t)):e=!1,va(t,n),aS(t,r,s),qp(t,r,s,n),Jp(null,t,r,!0,e,n);case 19:return pS(e,t,n);case 22:return dS(e,t,n)}throw Error(ae(156,t.tag))};function RS(e,t){return s_(e,t)}function WA(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ar(e,t,n,r){return new WA(e,t,n,r)}function Ky(e){return e=e.prototype,!(!e||!e.isReactComponent)}function HA(e){if(typeof e=="function")return Ky(e)?1:0;if(e!=null){if(e=e.$$typeof,e===fy)return 11;if(e===hy)return 14}return 2}function _o(e,t){var n=e.alternate;return n===null?(n=ar(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function gd(e,t,n,r,s,o){var i=2;if(r=e,typeof e=="function")Ky(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case qi:return ni(n.children,s,o,t);case dy:i=8,s|=8;break;case wp:return e=ar(12,n,t,s|2),e.elementType=wp,e.lanes=o,e;case bp:return e=ar(13,n,t,s),e.elementType=bp,e.lanes=o,e;case _p:return e=ar(19,n,t,s),e.elementType=_p,e.lanes=o,e;case U1:return eh(n,s,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case F1:i=10;break e;case $1:i=9;break e;case fy:i=11;break e;case hy:i=14;break e;case so:i=16,r=null;break e}throw Error(ae(130,e==null?e:typeof e,""))}return t=ar(i,n,t,s),t.elementType=e,t.type=r,t.lanes=o,t}function ni(e,t,n,r){return e=ar(7,e,r,t),e.lanes=n,e}function eh(e,t,n,r){return e=ar(22,e,r,t),e.elementType=U1,e.lanes=n,e.stateNode={isHidden:!1},e}function Lm(e,t,n){return e=ar(6,e,null,t),e.lanes=n,e}function zm(e,t,n){return t=ar(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function YA(e,t,n,r,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vm(0),this.expirationTimes=vm(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vm(0),this.identifierPrefix=r,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Gy(e,t,n,r,s,o,i,a,c){return e=new YA(e,t,n,a,c),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ar(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ry(o),e}function KA(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(IS)}catch(e){console.error(e)}}IS(),I1.exports=Qn;var Bs=I1.exports;const MS=Vf(Bs),QA=_1({__proto__:null,default:MS},[Bs]);var _w=Bs;vp.createRoot=_w.createRoot,vp.hydrateRoot=_w.hydrateRoot;/** + * @remix-run/router v1.18.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function At(){return At=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function hi(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function eO(){return Math.random().toString(36).substr(2,8)}function kw(e,t){return{usr:e.state,key:e.key,idx:t}}function wc(e,t,n,r){return n===void 0&&(n=null),At({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ws(t):t,{state:n,key:t&&t.key||r||eO()})}function mi(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ws(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function tO(e,t,n,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:o=!1}=r,i=s.history,a=Ht.Pop,c=null,u=d();u==null&&(u=0,i.replaceState(At({},i.state,{idx:u}),""));function d(){return(i.state||{idx:null}).idx}function f(){a=Ht.Pop;let w=d(),y=w==null?null:w-u;u=w,c&&c({action:a,location:p.location,delta:y})}function h(w,y){a=Ht.Push;let v=wc(p.location,w,y);n&&n(v,w),u=d()+1;let b=kw(v,u),_=p.createHref(v);try{i.pushState(b,"",_)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;s.location.assign(_)}o&&c&&c({action:a,location:p.location,delta:1})}function m(w,y){a=Ht.Replace;let v=wc(p.location,w,y);n&&n(v,w),u=d();let b=kw(v,u),_=p.createHref(v);i.replaceState(b,"",_),o&&c&&c({action:a,location:p.location,delta:0})}function x(w){let y=s.location.origin!=="null"?s.location.origin:s.location.href,v=typeof w=="string"?w:mi(w);return v=v.replace(/ $/,"%20"),tt(y,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,y)}let p={get action(){return a},get location(){return e(s,i)},listen(w){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(Sw,f),c=w,()=>{s.removeEventListener(Sw,f),c=null}},createHref(w){return t(s,w)},createURL:x,encodeLocation(w){let y=x(w);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:h,replace:m,go(w){return i.go(w)}};return p}var wt;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(wt||(wt={}));const nO=new Set(["lazy","caseSensitive","path","id","index","children"]);function rO(e){return e.index===!0}function bc(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((s,o)=>{let i=[...n,String(o)],a=typeof s.id=="string"?s.id:i.join("-");if(tt(s.index!==!0||!s.children,"Cannot specify children on an index route"),tt(!r[a],'Found a route id collision on id "'+a+`". Route id's must be globally unique within Data Router usages`),rO(s)){let c=At({},s,t(s),{id:a});return r[a]=c,c}else{let c=At({},s,t(s),{id:a,children:void 0});return r[a]=c,s.children&&(c.children=bc(s.children,t,i,r)),c}})}function Ho(e,t,n){return n===void 0&&(n="/"),yd(e,t,n,!1)}function yd(e,t,n,r){let s=typeof t=="string"?Ws(t):t,o=qa(s.pathname||"/",n);if(o==null)return null;let i=LS(e);oO(i);let a=null;for(let c=0;a==null&&c{let c={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};c.relativePath.startsWith("/")&&(tt(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=Ts([r,c.relativePath]),d=n.concat(c);o.children&&o.children.length>0&&(tt(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),LS(o.children,t,d,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:fO(u,o.index),routesMeta:d})};return e.forEach((o,i)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))s(o,i);else for(let c of zS(o.path))s(o,i,c)}),t}function zS(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,s=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return s?[o,""]:[o];let i=zS(r.join("/")),a=[];return a.push(...i.map(c=>c===""?o:[o,c].join("/"))),s&&a.push(...i),a.map(c=>e.startsWith("/")&&c===""?"/":c)}function oO(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:hO(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const iO=/^:[\w-]+$/,aO=3,lO=2,cO=1,uO=10,dO=-2,Cw=e=>e==="*";function fO(e,t){let n=e.split("/"),r=n.length;return n.some(Cw)&&(r+=dO),t&&(r+=lO),n.filter(s=>!Cw(s)).reduce((s,o)=>s+(iO.test(o)?aO:o===""?cO:uO),r)}function hO(e,t){return e.length===t.length&&e.slice(0,-1).every((r,s)=>r===t[s])?e[e.length-1]-t[t.length-1]:0}function mO(e,t,n){n===void 0&&(n=!1);let{routesMeta:r}=e,s={},o="/",i=[];for(let a=0;a{let{paramName:h,isOptional:m}=d;if(h==="*"){let p=a[f]||"";i=o.slice(0,o.length-p.length).replace(/(.)\/+$/,"$1")}const x=a[f];return m&&!x?u[h]=void 0:u[h]=(x||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function pO(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),hi(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=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,c)=>(r.push({paramName:a,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}function gO(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return hi(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function qa(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 yO(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:s=""}=typeof e=="string"?Ws(e):e;return{pathname:n?n.startsWith("/")?n:vO(n,t):t,search:wO(r),hash:bO(s)}}function vO(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function Fm(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 and the router will parse it for you.'}function FS(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function oh(e,t){let n=FS(e);return t?n.map((r,s)=>s===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function ih(e,t,n,r){r===void 0&&(r=!1);let s;typeof e=="string"?s=Ws(e):(s=At({},e),tt(!s.pathname||!s.pathname.includes("?"),Fm("?","pathname","search",s)),tt(!s.pathname||!s.pathname.includes("#"),Fm("#","pathname","hash",s)),tt(!s.search||!s.search.includes("#"),Fm("#","search","hash",s)));let o=e===""||s.pathname==="",i=o?"/":s.pathname,a;if(i==null)a=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let h=i.split("/");for(;h[0]==="..";)h.shift(),f-=1;s.pathname=h.join("/")}a=f>=0?t[f]:"/"}let c=yO(s,a),u=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const Ts=e=>e.join("/").replace(/\/\/+/g,"/"),xO=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),wO=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bO=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class Qy{constructor(t,n,r,s){s===void 0&&(s=!1),this.status=t,this.statusText=n||"",this.internal=s,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function ah(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const $S=["post","put","patch","delete"],_O=new Set($S),SO=["get",...$S],kO=new Set(SO),CO=new Set([301,302,303,307,308]),jO=new Set([307,308]),$m={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},EO={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},wl={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Jy=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,NO=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),US="remix-router-transitions";function TO(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;tt(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let s;if(e.mapRouteProperties)s=e.mapRouteProperties;else if(e.detectErrorBoundary){let V=e.detectErrorBoundary;s=H=>({hasErrorBoundary:V(H)})}else s=NO;let o={},i=bc(e.routes,s,void 0,o),a,c=e.basename||"/",u=e.unstable_dataStrategy||DO,d=e.unstable_patchRoutesOnMiss,f=At({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),h=null,m=new Set,x=null,p=null,w=null,y=e.hydrationData!=null,v=Ho(i,e.history.location,c),b=null;if(v==null&&!d){let V=xn(404,{pathname:e.history.location.pathname}),{matches:H,route:q}=Mw(i);v=H,b={[q.id]:V}}v&&d&&!e.hydrationData&&fm(v,i,e.history.location.pathname).active&&(v=null);let _;if(!v)_=!1,v=[];else if(v.some(V=>V.route.lazy))_=!1;else if(!v.some(V=>V.route.loader))_=!0;else if(f.v7_partialHydration){let V=e.hydrationData?e.hydrationData.loaderData:null,H=e.hydrationData?e.hydrationData.errors:null,q=ne=>ne.route.loader?typeof ne.route.loader=="function"&&ne.route.loader.hydrate===!0?!1:V&&V[ne.route.id]!==void 0||H&&H[ne.route.id]!==void 0:!0;if(H){let ne=v.findIndex(_e=>H[_e.route.id]!==void 0);_=v.slice(0,ne+1).every(q)}else _=v.every(q)}else _=e.hydrationData!=null;let C,j={historyAction:e.history.action,location:e.history.location,matches:v,initialized:_,navigation:$m,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||b,fetchers:new Map,blockers:new Map},T=Ht.Pop,R=!1,A,D=!1,G=new Map,N=null,z=!1,S=!1,U=[],J=[],F=new Map,W=0,I=-1,X=new Map,$=new Set,B=new Map,he=new Map,se=new Set,oe=new Map,De=new Map,me=new Map,we=!1;function Pe(){if(h=e.history.listen(V=>{let{action:H,location:q,delta:ne}=V;if(we){we=!1;return}hi(De.size===0||ne!=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 _e=wu({currentLocation:j.location,nextLocation:q,historyAction:H});if(_e&&ne!=null){we=!0,e.history.go(ne*-1),Oi(_e,{state:"blocked",location:q,proceed(){Oi(_e,{state:"proceeding",proceed:void 0,reset:void 0,location:q}),e.history.go(ne)},reset(){let Ae=new Map(j.blockers);Ae.set(_e,wl),Re({blockers:Ae})}});return}return Z(H,q)}),n){KO(t,G);let V=()=>GO(t,G);t.addEventListener("pagehide",V),N=()=>t.removeEventListener("pagehide",V)}return j.initialized||Z(Ht.Pop,j.location,{initialHydration:!0}),C}function Fe(){h&&h(),N&&N(),m.clear(),A&&A.abort(),j.fetchers.forEach((V,H)=>Kt(H)),j.blockers.forEach((V,H)=>xu(H))}function Ie(V){return m.add(V),()=>m.delete(V)}function Re(V,H){H===void 0&&(H={}),j=At({},j,V);let q=[],ne=[];f.v7_fetcherPersist&&j.fetchers.forEach((_e,Ae)=>{_e.state==="idle"&&(se.has(Ae)?ne.push(Ae):q.push(Ae))}),[...m].forEach(_e=>_e(j,{deletedFetchers:ne,unstable_viewTransitionOpts:H.viewTransitionOpts,unstable_flushSync:H.flushSync===!0})),f.v7_fetcherPersist&&(q.forEach(_e=>j.fetchers.delete(_e)),ne.forEach(_e=>Kt(_e)))}function st(V,H,q){var ne,_e;let{flushSync:Ae}=q===void 0?{}:q,Be=j.actionData!=null&&j.navigation.formMethod!=null&&wr(j.navigation.formMethod)&&j.navigation.state==="loading"&&((ne=V.state)==null?void 0:ne._isRedirect)!==!0,fe;H.actionData?Object.keys(H.actionData).length>0?fe=H.actionData:fe=null:Be?fe=j.actionData:fe=null;let qe=H.loaderData?Dw(j.loaderData,H.loaderData,H.matches||[],H.errors):j.loaderData,ze=j.blockers;ze.size>0&&(ze=new Map(ze),ze.forEach((pt,xt)=>ze.set(xt,wl)));let $e=R===!0||j.navigation.formMethod!=null&&wr(j.navigation.formMethod)&&((_e=V.state)==null?void 0:_e._isRedirect)!==!0;a&&(i=a,a=void 0),z||T===Ht.Pop||(T===Ht.Push?e.history.push(V,V.state):T===Ht.Replace&&e.history.replace(V,V.state));let yt;if(T===Ht.Pop){let pt=G.get(j.location.pathname);pt&&pt.has(V.pathname)?yt={currentLocation:j.location,nextLocation:V}:G.has(V.pathname)&&(yt={currentLocation:V,nextLocation:j.location})}else if(D){let pt=G.get(j.location.pathname);pt?pt.add(V.pathname):(pt=new Set([V.pathname]),G.set(j.location.pathname,pt)),yt={currentLocation:j.location,nextLocation:V}}Re(At({},H,{actionData:fe,loaderData:qe,historyAction:T,location:V,initialized:!0,navigation:$m,revalidation:"idle",restoreScrollPosition:f0(V,H.matches||j.matches),preventScrollReset:$e,blockers:ze}),{viewTransitionOpts:yt,flushSync:Ae===!0}),T=Ht.Pop,R=!1,D=!1,z=!1,S=!1,U=[],J=[]}async function E(V,H){if(typeof V=="number"){e.history.go(V);return}let q=dg(j.location,j.matches,c,f.v7_prependBasename,V,f.v7_relativeSplatPath,H==null?void 0:H.fromRouteId,H==null?void 0:H.relative),{path:ne,submission:_e,error:Ae}=Ew(f.v7_normalizeFormMethod,!1,q,H),Be=j.location,fe=wc(j.location,ne,H&&H.state);fe=At({},fe,e.history.encodeLocation(fe));let qe=H&&H.replace!=null?H.replace:void 0,ze=Ht.Push;qe===!0?ze=Ht.Replace:qe===!1||_e!=null&&wr(_e.formMethod)&&_e.formAction===j.location.pathname+j.location.search&&(ze=Ht.Replace);let $e=H&&"preventScrollReset"in H?H.preventScrollReset===!0:void 0,yt=(H&&H.unstable_flushSync)===!0,pt=wu({currentLocation:Be,nextLocation:fe,historyAction:ze});if(pt){Oi(pt,{state:"blocked",location:fe,proceed(){Oi(pt,{state:"proceeding",proceed:void 0,reset:void 0,location:fe}),E(V,H)},reset(){let xt=new Map(j.blockers);xt.set(pt,wl),Re({blockers:xt})}});return}return await Z(ze,fe,{submission:_e,pendingError:Ae,preventScrollReset:$e,replace:H&&H.replace,enableViewTransition:H&&H.unstable_viewTransition,flushSync:yt})}function ee(){if(Ge(),Re({revalidation:"loading"}),j.navigation.state!=="submitting"){if(j.navigation.state==="idle"){Z(j.historyAction,j.location,{startUninterruptedRevalidation:!0});return}Z(T||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation})}}async function Z(V,H,q){A&&A.abort(),A=null,T=V,z=(q&&q.startUninterruptedRevalidation)===!0,_P(j.location,j.matches),R=(q&&q.preventScrollReset)===!0,D=(q&&q.enableViewTransition)===!0;let ne=a||i,_e=q&&q.overrideNavigation,Ae=Ho(ne,H,c),Be=(q&&q.flushSync)===!0,fe=fm(Ae,ne,H.pathname);if(fe.active&&fe.matches&&(Ae=fe.matches),!Ae){let{error:ht,notFoundMatches:tn,route:Wt}=Di(H.pathname);st(H,{matches:tn,loaderData:{},errors:{[Wt.id]:ht}},{flushSync:Be});return}if(j.initialized&&!S&&$O(j.location,H)&&!(q&&q.submission&&wr(q.submission.formMethod))){st(H,{matches:Ae},{flushSync:Be});return}A=new AbortController;let qe=Fi(e.history,H,A.signal,q&&q.submission),ze;if(q&&q.pendingError)ze=[aa(Ae).route.id,{type:wt.error,error:q.pendingError}];else if(q&&q.submission&&wr(q.submission.formMethod)){let ht=await O(qe,H,q.submission,Ae,fe.active,{replace:q.replace,flushSync:Be});if(ht.shortCircuited)return;if(ht.pendingActionResult){let[tn,Wt]=ht.pendingActionResult;if(Vn(Wt)&&ah(Wt.error)&&Wt.error.status===404){A=null,st(H,{matches:ht.matches,loaderData:{},errors:{[tn]:Wt.error}});return}}Ae=ht.matches||Ae,ze=ht.pendingActionResult,_e=Um(H,q.submission),Be=!1,fe.active=!1,qe=Fi(e.history,qe.url,qe.signal)}let{shortCircuited:$e,matches:yt,loaderData:pt,errors:xt}=await k(qe,H,Ae,fe.active,_e,q&&q.submission,q&&q.fetcherSubmission,q&&q.replace,q&&q.initialHydration===!0,Be,ze);$e||(A=null,st(H,At({matches:yt||Ae},Iw(ze),{loaderData:pt,errors:xt})))}async function O(V,H,q,ne,_e,Ae){Ae===void 0&&(Ae={}),Ge();let Be=HO(H,q);if(Re({navigation:Be},{flushSync:Ae.flushSync===!0}),_e){let ze=await bu(ne,H.pathname,V.signal);if(ze.type==="aborted")return{shortCircuited:!0};if(ze.type==="error"){let{boundaryId:$e,error:yt}=$r(H.pathname,ze);return{matches:ze.partialMatches,pendingActionResult:[$e,{type:wt.error,error:yt}]}}else if(ze.matches)ne=ze.matches;else{let{notFoundMatches:$e,error:yt,route:pt}=Di(H.pathname);return{matches:$e,pendingActionResult:[pt.id,{type:wt.error,error:yt}]}}}let fe,qe=Il(ne,H);if(!qe.route.action&&!qe.route.lazy)fe={type:wt.error,error:xn(405,{method:V.method,pathname:H.pathname,routeId:qe.route.id})};else if(fe=(await te("action",V,[qe],ne))[0],V.signal.aborted)return{shortCircuited:!0};if(qo(fe)){let ze;return Ae&&Ae.replace!=null?ze=Ae.replace:ze=Rw(fe.response.headers.get("Location"),new URL(V.url),c)===j.location.pathname+j.location.search,await Q(V,fe,{submission:q,replace:ze}),{shortCircuited:!0}}if(Zo(fe))throw xn(400,{type:"defer-action"});if(Vn(fe)){let ze=aa(ne,qe.route.id);return(Ae&&Ae.replace)!==!0&&(T=Ht.Push),{matches:ne,pendingActionResult:[ze.route.id,fe]}}return{matches:ne,pendingActionResult:[qe.route.id,fe]}}async function k(V,H,q,ne,_e,Ae,Be,fe,qe,ze,$e){let yt=_e||Um(H,Ae),pt=Ae||Be||Fw(yt),xt=!z&&(!f.v7_partialHydration||!qe);if(ne){if(xt){let Lt=P($e);Re(At({navigation:yt},Lt!==void 0?{actionData:Lt}:{}),{flushSync:ze})}let Je=await bu(q,H.pathname,V.signal);if(Je.type==="aborted")return{shortCircuited:!0};if(Je.type==="error"){let{boundaryId:Lt,error:zn}=$r(H.pathname,Je);return{matches:Je.partialMatches,loaderData:{},errors:{[Lt]:zn}}}else if(Je.matches)q=Je.matches;else{let{error:Lt,notFoundMatches:zn,route:Nt}=Di(H.pathname);return{matches:zn,loaderData:{},errors:{[Nt.id]:Lt}}}}let ht=a||i,[tn,Wt]=Nw(e.history,j,q,pt,H,f.v7_partialHydration&&qe===!0,f.v7_skipActionErrorRevalidation,S,U,J,se,B,$,ht,c,$e);if(Xs(Je=>!(q&&q.some(Lt=>Lt.route.id===Je))||tn&&tn.some(Lt=>Lt.route.id===Je)),I=++W,tn.length===0&&Wt.length===0){let Je=ms();return st(H,At({matches:q,loaderData:{},errors:$e&&Vn($e[1])?{[$e[0]]:$e[1].error}:null},Iw($e),Je?{fetchers:new Map(j.fetchers)}:{}),{flushSync:ze}),{shortCircuited:!0}}if(xt){let Je={};if(!ne){Je.navigation=yt;let Lt=P($e);Lt!==void 0&&(Je.actionData=Lt)}Wt.length>0&&(Je.fetchers=M(Wt)),Re(Je,{flushSync:ze})}Wt.forEach(Je=>{F.has(Je.key)&&ct(Je.key),Je.controller&&F.set(Je.key,Je.controller)});let dl=()=>Wt.forEach(Je=>ct(Je.key));A&&A.signal.addEventListener("abort",dl);let{loaderResults:Qs,fetcherResults:Ii}=await ge(j.matches,q,tn,Wt,V);if(V.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",dl),Wt.forEach(Je=>F.delete(Je.key));let Mi=Lw([...Qs,...Ii]);if(Mi){if(Mi.idx>=tn.length){let Je=Wt[Mi.idx-tn.length].key;$.add(Je)}return await Q(V,Mi.result,{replace:fe}),{shortCircuited:!0}}let{loaderData:Li,errors:Ur}=Ow(j,q,tn,Qs,$e,Wt,Ii,oe);oe.forEach((Je,Lt)=>{Je.subscribe(zn=>{(zn||Je.done)&&oe.delete(Lt)})}),f.v7_partialHydration&&qe&&j.errors&&Object.entries(j.errors).filter(Je=>{let[Lt]=Je;return!tn.some(zn=>zn.route.id===Lt)}).forEach(Je=>{let[Lt,zn]=Je;Ur=Object.assign(Ur||{},{[Lt]:zn})});let _u=ms(),Su=rr(I),ku=_u||Su||Wt.length>0;return At({matches:q,loaderData:Li,errors:Ur},ku?{fetchers:new Map(j.fetchers)}:{})}function P(V){if(V&&!Vn(V[1]))return{[V[0]]:V[1].data};if(j.actionData)return Object.keys(j.actionData).length===0?null:j.actionData}function M(V){return V.forEach(H=>{let q=j.fetchers.get(H.key),ne=bl(void 0,q?q.data:void 0);j.fetchers.set(H.key,ne)}),new Map(j.fetchers)}function K(V,H,q,ne){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");F.has(V)&&ct(V);let _e=(ne&&ne.unstable_flushSync)===!0,Ae=a||i,Be=dg(j.location,j.matches,c,f.v7_prependBasename,q,f.v7_relativeSplatPath,H,ne==null?void 0:ne.relative),fe=Ho(Ae,Be,c),qe=fm(fe,Ae,Be);if(qe.active&&qe.matches&&(fe=qe.matches),!fe){Et(V,H,xn(404,{pathname:Be}),{flushSync:_e});return}let{path:ze,submission:$e,error:yt}=Ew(f.v7_normalizeFormMethod,!0,Be,ne);if(yt){Et(V,H,yt,{flushSync:_e});return}let pt=Il(fe,ze);if(R=(ne&&ne.preventScrollReset)===!0,$e&&wr($e.formMethod)){L(V,H,ze,pt,fe,qe.active,_e,$e);return}B.set(V,{routeId:H,path:ze}),Y(V,H,ze,pt,fe,qe.active,_e,$e)}async function L(V,H,q,ne,_e,Ae,Be,fe){Ge(),B.delete(V);function qe(Nt){if(!Nt.route.action&&!Nt.route.lazy){let ps=xn(405,{method:fe.formMethod,pathname:q,routeId:H});return Et(V,H,ps,{flushSync:Be}),!0}return!1}if(!Ae&&qe(ne))return;let ze=j.fetchers.get(V);Ue(V,YO(fe,ze),{flushSync:Be});let $e=new AbortController,yt=Fi(e.history,q,$e.signal,fe);if(Ae){let Nt=await bu(_e,q,yt.signal);if(Nt.type==="aborted")return;if(Nt.type==="error"){let{error:ps}=$r(q,Nt);Et(V,H,ps,{flushSync:Be});return}else if(Nt.matches){if(_e=Nt.matches,ne=Il(_e,q),qe(ne))return}else{Et(V,H,xn(404,{pathname:q}),{flushSync:Be});return}}F.set(V,$e);let pt=W,ht=(await te("action",yt,[ne],_e))[0];if(yt.signal.aborted){F.get(V)===$e&&F.delete(V);return}if(f.v7_fetcherPersist&&se.has(V)){if(qo(ht)||Vn(ht)){Ue(V,no(void 0));return}}else{if(qo(ht))if(F.delete(V),I>pt){Ue(V,no(void 0));return}else return $.add(V),Ue(V,bl(fe)),Q(yt,ht,{fetcherSubmission:fe});if(Vn(ht)){Et(V,H,ht.error);return}}if(Zo(ht))throw xn(400,{type:"defer-action"});let tn=j.navigation.location||j.location,Wt=Fi(e.history,tn,$e.signal),dl=a||i,Qs=j.navigation.state!=="idle"?Ho(dl,j.navigation.location,c):j.matches;tt(Qs,"Didn't find any matches after fetcher action");let Ii=++W;X.set(V,Ii);let Mi=bl(fe,ht.data);j.fetchers.set(V,Mi);let[Li,Ur]=Nw(e.history,j,Qs,fe,tn,!1,f.v7_skipActionErrorRevalidation,S,U,J,se,B,$,dl,c,[ne.route.id,ht]);Ur.filter(Nt=>Nt.key!==V).forEach(Nt=>{let ps=Nt.key,h0=j.fetchers.get(ps),CP=bl(void 0,h0?h0.data:void 0);j.fetchers.set(ps,CP),F.has(ps)&&ct(ps),Nt.controller&&F.set(ps,Nt.controller)}),Re({fetchers:new Map(j.fetchers)});let _u=()=>Ur.forEach(Nt=>ct(Nt.key));$e.signal.addEventListener("abort",_u);let{loaderResults:Su,fetcherResults:ku}=await ge(j.matches,Qs,Li,Ur,Wt);if($e.signal.aborted)return;$e.signal.removeEventListener("abort",_u),X.delete(V),F.delete(V),Ur.forEach(Nt=>F.delete(Nt.key));let Je=Lw([...Su,...ku]);if(Je){if(Je.idx>=Li.length){let Nt=Ur[Je.idx-Li.length].key;$.add(Nt)}return Q(Wt,Je.result)}let{loaderData:Lt,errors:zn}=Ow(j,j.matches,Li,Su,void 0,Ur,ku,oe);if(j.fetchers.has(V)){let Nt=no(ht.data);j.fetchers.set(V,Nt)}rr(Ii),j.navigation.state==="loading"&&Ii>I?(tt(T,"Expected pending action"),A&&A.abort(),st(j.navigation.location,{matches:Qs,loaderData:Lt,errors:zn,fetchers:new Map(j.fetchers)})):(Re({errors:zn,loaderData:Dw(j.loaderData,Lt,Qs,zn),fetchers:new Map(j.fetchers)}),S=!1)}async function Y(V,H,q,ne,_e,Ae,Be,fe){let qe=j.fetchers.get(V);Ue(V,bl(fe,qe?qe.data:void 0),{flushSync:Be});let ze=new AbortController,$e=Fi(e.history,q,ze.signal);if(Ae){let ht=await bu(_e,q,$e.signal);if(ht.type==="aborted")return;if(ht.type==="error"){let{error:tn}=$r(q,ht);Et(V,H,tn,{flushSync:Be});return}else if(ht.matches)_e=ht.matches,ne=Il(_e,q);else{Et(V,H,xn(404,{pathname:q}),{flushSync:Be});return}}F.set(V,ze);let yt=W,xt=(await te("loader",$e,[ne],_e))[0];if(Zo(xt)&&(xt=await YS(xt,$e.signal,!0)||xt),F.get(V)===ze&&F.delete(V),!$e.signal.aborted){if(se.has(V)){Ue(V,no(void 0));return}if(qo(xt))if(I>yt){Ue(V,no(void 0));return}else{$.add(V),await Q($e,xt);return}if(Vn(xt)){Et(V,H,xt.error);return}tt(!Zo(xt),"Unhandled fetcher deferred data"),Ue(V,no(xt.data))}}async function Q(V,H,q){let{submission:ne,fetcherSubmission:_e,replace:Ae}=q===void 0?{}:q;H.response.headers.has("X-Remix-Revalidate")&&(S=!0);let Be=H.response.headers.get("Location");tt(Be,"Expected a Location header on the redirect Response"),Be=Rw(Be,new URL(V.url),c);let fe=wc(j.location,Be,{_isRedirect:!0});if(n){let xt=!1;if(H.response.headers.has("X-Remix-Reload-Document"))xt=!0;else if(Jy.test(Be)){const ht=e.history.createURL(Be);xt=ht.origin!==t.location.origin||qa(ht.pathname,c)==null}if(xt){Ae?t.location.replace(Be):t.location.assign(Be);return}}A=null;let qe=Ae===!0?Ht.Replace:Ht.Push,{formMethod:ze,formAction:$e,formEncType:yt}=j.navigation;!ne&&!_e&&ze&&$e&&yt&&(ne=Fw(j.navigation));let pt=ne||_e;if(jO.has(H.response.status)&&pt&&wr(pt.formMethod))await Z(qe,fe,{submission:At({},pt,{formAction:Be}),preventScrollReset:R});else{let xt=Um(fe,ne);await Z(qe,fe,{overrideNavigation:xt,fetcherSubmission:_e,preventScrollReset:R})}}async function te(V,H,q,ne){try{let _e=await IO(u,V,H,q,ne,o,s);return await Promise.all(_e.map((Ae,Be)=>{if(VO(Ae)){let fe=Ae.result;return{type:wt.redirect,response:zO(fe,H,q[Be].route.id,ne,c,f.v7_relativeSplatPath)}}return LO(Ae)}))}catch(_e){return q.map(()=>({type:wt.error,error:_e}))}}async function ge(V,H,q,ne,_e){let[Ae,...Be]=await Promise.all([q.length?te("loader",_e,q,H):[],...ne.map(fe=>{if(fe.matches&&fe.match&&fe.controller){let qe=Fi(e.history,fe.path,fe.controller.signal);return te("loader",qe,[fe.match],fe.matches).then(ze=>ze[0])}else return Promise.resolve({type:wt.error,error:xn(404,{pathname:fe.path})})})]);return await Promise.all([zw(V,q,Ae,Ae.map(()=>_e.signal),!1,j.loaderData),zw(V,ne.map(fe=>fe.match),Be,ne.map(fe=>fe.controller?fe.controller.signal:null),!0)]),{loaderResults:Ae,fetcherResults:Be}}function Ge(){S=!0,U.push(...Xs()),B.forEach((V,H)=>{F.has(H)&&(J.push(H),ct(H))})}function Ue(V,H,q){q===void 0&&(q={}),j.fetchers.set(V,H),Re({fetchers:new Map(j.fetchers)},{flushSync:(q&&q.flushSync)===!0})}function Et(V,H,q,ne){ne===void 0&&(ne={});let _e=aa(j.matches,H);Kt(V),Re({errors:{[_e.route.id]:q},fetchers:new Map(j.fetchers)},{flushSync:(ne&&ne.flushSync)===!0})}function nr(V){return f.v7_fetcherPersist&&(he.set(V,(he.get(V)||0)+1),se.has(V)&&se.delete(V)),j.fetchers.get(V)||EO}function Kt(V){let H=j.fetchers.get(V);F.has(V)&&!(H&&H.state==="loading"&&X.has(V))&&ct(V),B.delete(V),X.delete(V),$.delete(V),se.delete(V),j.fetchers.delete(V)}function fs(V){if(f.v7_fetcherPersist){let H=(he.get(V)||0)-1;H<=0?(he.delete(V),se.add(V)):he.set(V,H)}else Kt(V);Re({fetchers:new Map(j.fetchers)})}function ct(V){let H=F.get(V);tt(H,"Expected fetch controller: "+V),H.abort(),F.delete(V)}function hs(V){for(let H of V){let q=nr(H),ne=no(q.data);j.fetchers.set(H,ne)}}function ms(){let V=[],H=!1;for(let q of $){let ne=j.fetchers.get(q);tt(ne,"Expected fetcher: "+q),ne.state==="loading"&&($.delete(q),V.push(q),H=!0)}return hs(V),H}function rr(V){let H=[];for(let[q,ne]of X)if(ne0}function vu(V,H){let q=j.blockers.get(V)||wl;return De.get(V)!==H&&De.set(V,H),q}function xu(V){j.blockers.delete(V),De.delete(V)}function Oi(V,H){let q=j.blockers.get(V)||wl;tt(q.state==="unblocked"&&H.state==="blocked"||q.state==="blocked"&&H.state==="blocked"||q.state==="blocked"&&H.state==="proceeding"||q.state==="blocked"&&H.state==="unblocked"||q.state==="proceeding"&&H.state==="unblocked","Invalid blocker state transition: "+q.state+" -> "+H.state);let ne=new Map(j.blockers);ne.set(V,H),Re({blockers:ne})}function wu(V){let{currentLocation:H,nextLocation:q,historyAction:ne}=V;if(De.size===0)return;De.size>1&&hi(!1,"A router only supports one blocker at a time");let _e=Array.from(De.entries()),[Ae,Be]=_e[_e.length-1],fe=j.blockers.get(Ae);if(!(fe&&fe.state==="proceeding")&&Be({currentLocation:H,nextLocation:q,historyAction:ne}))return Ae}function Di(V){let H=xn(404,{pathname:V}),q=a||i,{matches:ne,route:_e}=Mw(q);return Xs(),{notFoundMatches:ne,route:_e,error:H}}function $r(V,H){return{boundaryId:aa(H.partialMatches).route.id,error:xn(400,{type:"route-discovery",pathname:V,message:H.error!=null&&"message"in H.error?H.error:String(H.error)})}}function Xs(V){let H=[];return oe.forEach((q,ne)=>{(!V||V(ne))&&(q.cancel(),H.push(ne),oe.delete(ne))}),H}function bP(V,H,q){if(x=V,w=H,p=q||null,!y&&j.navigation===$m){y=!0;let ne=f0(j.location,j.matches);ne!=null&&Re({restoreScrollPosition:ne})}return()=>{x=null,w=null,p=null}}function d0(V,H){return p&&p(V,H.map(ne=>sO(ne,j.loaderData)))||V.key}function _P(V,H){if(x&&w){let q=d0(V,H);x[q]=w()}}function f0(V,H){if(x){let q=d0(V,H),ne=x[q];if(typeof ne=="number")return ne}return null}function fm(V,H,q){if(d)if(V){let ne=V[V.length-1].route;if(ne.path&&(ne.path==="*"||ne.path.endsWith("/*")))return{active:!0,matches:yd(H,q,c,!0)}}else return{active:!0,matches:yd(H,q,c,!0)||[]};return{active:!1,matches:null}}async function bu(V,H,q){let ne=V,_e=ne.length>0?ne[ne.length-1].route:null;for(;;){let Ae=a==null,Be=a||i;try{await OO(d,H,ne,Be,o,s,me,q)}catch($e){return{type:"error",error:$e,partialMatches:ne}}finally{Ae&&(i=[...i])}if(q.aborted)return{type:"aborted"};let fe=Ho(Be,H,c),qe=!1;if(fe){let $e=fe[fe.length-1].route;if($e.index)return{type:"success",matches:fe};if($e.path&&$e.path.length>0)if($e.path==="*")qe=!0;else return{type:"success",matches:fe}}let ze=yd(Be,H,c,!0);if(!ze||ne.map($e=>$e.route.id).join("-")===ze.map($e=>$e.route.id).join("-"))return{type:"success",matches:qe?fe:null};if(ne=ze,_e=ne[ne.length-1].route,_e.path==="*")return{type:"success",matches:ne}}}function SP(V){o={},a=bc(V,s,void 0,o)}function kP(V,H){let q=a==null;BS(V,H,a||i,o,s),q&&(i=[...i],Re({}))}return C={get basename(){return c},get future(){return f},get state(){return j},get routes(){return i},get window(){return t},initialize:Pe,subscribe:Ie,enableScrollRestoration:bP,navigate:E,fetch:K,revalidate:ee,createHref:V=>e.history.createHref(V),encodeLocation:V=>e.history.encodeLocation(V),getFetcher:nr,deleteFetcher:fs,dispose:Fe,getBlocker:vu,deleteBlocker:xu,patchRoutes:kP,_internalFetchControllers:F,_internalActiveDeferreds:oe,_internalSetRoutes:SP},C}function PO(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function dg(e,t,n,r,s,o,i,a){let c,u;if(i){c=[];for(let f of t)if(c.push(f),f.route.id===i){u=f;break}}else c=t,u=t[t.length-1];let d=ih(s||".",oh(c,o),qa(e.pathname,n)||e.pathname,a==="path");return s==null&&(d.search=e.search,d.hash=e.hash),(s==null||s===""||s===".")&&u&&u.route.index&&!ev(d.search)&&(d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index"),r&&n!=="/"&&(d.pathname=d.pathname==="/"?n:Ts([n,d.pathname])),mi(d)}function Ew(e,t,n,r){if(!r||!PO(r))return{path:n};if(r.formMethod&&!WO(r.formMethod))return{path:n,error:xn(405,{method:r.formMethod})};let s=()=>({path:n,error:xn(400,{type:"invalid-body"})}),o=r.formMethod||"get",i=e?o.toUpperCase():o.toLowerCase(),a=WS(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!wr(i))return s();let h=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((m,x)=>{let[p,w]=x;return""+m+p+"="+w+` +`},""):String(r.body);return{path:n,submission:{formMethod:i,formAction:a,formEncType:r.formEncType,formData:void 0,json:void 0,text:h}}}else if(r.formEncType==="application/json"){if(!wr(i))return s();try{let h=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:i,formAction:a,formEncType:r.formEncType,formData:void 0,json:h,text:void 0}}}catch{return s()}}}tt(typeof FormData=="function","FormData is not available in this environment");let c,u;if(r.formData)c=fg(r.formData),u=r.formData;else if(r.body instanceof FormData)c=fg(r.body),u=r.body;else if(r.body instanceof URLSearchParams)c=r.body,u=Aw(c);else if(r.body==null)c=new URLSearchParams,u=new FormData;else try{c=new URLSearchParams(r.body),u=Aw(c)}catch{return s()}let d={formMethod:i,formAction:a,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(wr(d.formMethod))return{path:n,submission:d};let f=Ws(n);return t&&f.search&&ev(f.search)&&c.append("index",""),f.search="?"+c,{path:mi(f),submission:d}}function RO(e,t){let n=e;if(t){let r=e.findIndex(s=>s.route.id===t);r>=0&&(n=e.slice(0,r))}return n}function Nw(e,t,n,r,s,o,i,a,c,u,d,f,h,m,x,p){let w=p?Vn(p[1])?p[1].error:p[1].data:void 0,y=e.createURL(t.location),v=e.createURL(s),b=p&&Vn(p[1])?p[0]:void 0,_=b?RO(n,b):n,C=p?p[1].statusCode:void 0,j=i&&C&&C>=400,T=_.filter((A,D)=>{let{route:G}=A;if(G.lazy)return!0;if(G.loader==null)return!1;if(o)return typeof G.loader!="function"||G.loader.hydrate?!0:t.loaderData[G.id]===void 0&&(!t.errors||t.errors[G.id]===void 0);if(AO(t.loaderData,t.matches[D],A)||c.some(S=>S===A.route.id))return!0;let N=t.matches[D],z=A;return Tw(A,At({currentUrl:y,currentParams:N.params,nextUrl:v,nextParams:z.params},r,{actionResult:w,actionStatus:C,defaultShouldRevalidate:j?!1:a||y.pathname+y.search===v.pathname+v.search||y.search!==v.search||VS(N,z)}))}),R=[];return f.forEach((A,D)=>{if(o||!n.some(U=>U.route.id===A.routeId)||d.has(D))return;let G=Ho(m,A.path,x);if(!G){R.push({key:D,routeId:A.routeId,path:A.path,matches:null,match:null,controller:null});return}let N=t.fetchers.get(D),z=Il(G,A.path),S=!1;h.has(D)?S=!1:u.includes(D)?S=!0:N&&N.state!=="idle"&&N.data===void 0?S=a:S=Tw(z,At({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:n[n.length-1].params},r,{actionResult:w,actionStatus:C,defaultShouldRevalidate:j?!1:a})),S&&R.push({key:D,routeId:A.routeId,path:A.path,matches:G,match:z,controller:new AbortController})}),[T,R]}function AO(e,t,n){let r=!t||n.route.id!==t.route.id,s=e[n.route.id]===void 0;return r||s}function VS(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function Tw(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}async function OO(e,t,n,r,s,o,i,a){let c=[t,...n.map(u=>u.route.id)].join("-");try{let u=i.get(c);u||(u=e({path:t,matches:n,patch:(d,f)=>{a.aborted||BS(d,f,r,s,o)}}),i.set(c,u)),u&&UO(u)&&await u}finally{i.delete(c)}}function BS(e,t,n,r,s){if(e){var o;let i=r[e];tt(i,"No route found to patch children into: routeId = "+e);let a=bc(t,s,[e,"patch",String(((o=i.children)==null?void 0:o.length)||"0")],r);i.children?i.children.push(...a):i.children=a}else{let i=bc(t,s,["patch",String(n.length||"0")],r);n.push(...i)}}async function Pw(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let s=n[e.id];tt(s,"No route found in manifest");let o={};for(let i in r){let c=s[i]!==void 0&&i!=="hasErrorBoundary";hi(!c,'Route "'+s.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!c&&!nO.has(i)&&(o[i]=r[i])}Object.assign(s,o),Object.assign(s,At({},t(s),{lazy:void 0}))}function DO(e){return Promise.all(e.matches.map(t=>t.resolve()))}async function IO(e,t,n,r,s,o,i,a){let c=r.reduce((f,h)=>f.add(h.route.id),new Set),u=new Set,d=await e({matches:s.map(f=>{let h=c.has(f.route.id);return At({},f,{shouldLoad:h,resolve:x=>(u.add(f.route.id),h?MO(t,n,f,o,i,x,a):Promise.resolve({type:wt.data,result:void 0}))})}),request:n,params:s[0].params,context:a});return s.forEach(f=>tt(u.has(f.route.id),'`match.resolve()` was not called for route id "'+f.route.id+'". You must call `match.resolve()` on every match passed to `dataStrategy` to ensure all routes are properly loaded.')),d.filter((f,h)=>c.has(s[h].route.id))}async function MO(e,t,n,r,s,o,i){let a,c,u=d=>{let f,h=new Promise((p,w)=>f=w);c=()=>f(),t.signal.addEventListener("abort",c);let m=p=>typeof d!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+n.route.id+"]"))):d({request:t,params:n.params,context:i},...p!==void 0?[p]:[]),x;return o?x=o(p=>m(p)):x=(async()=>{try{return{type:"data",result:await m()}}catch(p){return{type:"error",result:p}}})(),Promise.race([x,h])};try{let d=n.route[e];if(n.route.lazy)if(d){let f,[h]=await Promise.all([u(d).catch(m=>{f=m}),Pw(n.route,s,r)]);if(f!==void 0)throw f;a=h}else if(await Pw(n.route,s,r),d=n.route[e],d)a=await u(d);else if(e==="action"){let f=new URL(t.url),h=f.pathname+f.search;throw xn(405,{method:t.method,pathname:h,routeId:n.route.id})}else return{type:wt.data,result:void 0};else if(d)a=await u(d);else{let f=new URL(t.url),h=f.pathname+f.search;throw xn(404,{pathname:h})}tt(a.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(d){return{type:wt.error,result:d}}finally{c&&t.signal.removeEventListener("abort",c)}return a}async function LO(e){let{result:t,type:n,status:r}=e;if(HS(t)){let i;try{let a=t.headers.get("Content-Type");a&&/\bapplication\/json\b/.test(a)?t.body==null?i=null:i=await t.json():i=await t.text()}catch(a){return{type:wt.error,error:a}}return n===wt.error?{type:wt.error,error:new Qy(t.status,t.statusText,i),statusCode:t.status,headers:t.headers}:{type:wt.data,data:i,statusCode:t.status,headers:t.headers}}if(n===wt.error)return{type:wt.error,error:t,statusCode:ah(t)?t.status:r};if(BO(t)){var s,o;return{type:wt.deferred,deferredData:t,statusCode:(s=t.init)==null?void 0:s.status,headers:((o=t.init)==null?void 0:o.headers)&&new Headers(t.init.headers)}}return{type:wt.data,data:t,statusCode:r}}function zO(e,t,n,r,s,o){let i=e.headers.get("Location");if(tt(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!Jy.test(i)){let a=r.slice(0,r.findIndex(c=>c.route.id===n)+1);i=dg(new URL(t.url),a,s,!0,i,o),e.headers.set("Location",i)}return e}function Rw(e,t,n){if(Jy.test(e)){let r=e,s=r.startsWith("//")?new URL(t.protocol+r):new URL(r),o=qa(s.pathname,n)!=null;if(s.origin===t.origin&&o)return s.pathname+s.search+s.hash}return e}function Fi(e,t,n,r){let s=e.createURL(WS(t)).toString(),o={signal:n};if(r&&wr(r.formMethod)){let{formMethod:i,formEncType:a}=r;o.method=i.toUpperCase(),a==="application/json"?(o.headers=new Headers({"Content-Type":a}),o.body=JSON.stringify(r.json)):a==="text/plain"?o.body=r.text:a==="application/x-www-form-urlencoded"&&r.formData?o.body=fg(r.formData):o.body=r.formData}return new Request(s,o)}function fg(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function Aw(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function FO(e,t,n,r,s,o){let i={},a=null,c,u=!1,d={},f=r&&Vn(r[1])?r[1].error:void 0;return n.forEach((h,m)=>{let x=t[m].route.id;if(tt(!qo(h),"Cannot handle redirect results in processLoaderData"),Vn(h)){let p=h.error;f!==void 0&&(p=f,f=void 0),a=a||{};{let w=aa(e,x);a[w.route.id]==null&&(a[w.route.id]=p)}i[x]=void 0,u||(u=!0,c=ah(h.error)?h.error.status:500),h.headers&&(d[x]=h.headers)}else Zo(h)?(s.set(x,h.deferredData),i[x]=h.deferredData.data,h.statusCode!=null&&h.statusCode!==200&&!u&&(c=h.statusCode),h.headers&&(d[x]=h.headers)):(i[x]=h.data,h.statusCode&&h.statusCode!==200&&!u&&(c=h.statusCode),h.headers&&(d[x]=h.headers))}),f!==void 0&&r&&(a={[r[0]]:f},i[r[0]]=void 0),{loaderData:i,errors:a,statusCode:c||200,loaderHeaders:d}}function Ow(e,t,n,r,s,o,i,a){let{loaderData:c,errors:u}=FO(t,n,r,s,a);for(let d=0;dr.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function Mw(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function xn(e,t){let{pathname:n,routeId:r,method:s,type:o,message:i}=t===void 0?{}:t,a="Unknown Server Error",c="Unknown @remix-run/router error";return e===400?(a="Bad Request",o==="route-discovery"?c='Unable to match URL "'+n+'" - the `unstable_patchRoutesOnMiss()` '+(`function threw the following error: +`+i):s&&n&&r?c="You made a "+s+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":o==="defer-action"?c="defer() is not supported in actions":o==="invalid-body"&&(c="Unable to encode submission body")):e===403?(a="Forbidden",c='Route "'+r+'" does not match URL "'+n+'"'):e===404?(a="Not Found",c='No route matches URL "'+n+'"'):e===405&&(a="Method Not Allowed",s&&n&&r?c="You made a "+s.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":s&&(c='Invalid request method "'+s.toUpperCase()+'"')),new Qy(e||500,a,new Error(c),!0)}function Lw(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(qo(n))return{result:n,idx:t}}}function WS(e){let t=typeof e=="string"?Ws(e):e;return mi(At({},t,{hash:""}))}function $O(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function UO(e){return typeof e=="object"&&e!=null&&"then"in e}function VO(e){return HS(e.result)&&CO.has(e.result.status)}function Zo(e){return e.type===wt.deferred}function Vn(e){return e.type===wt.error}function qo(e){return(e&&e.type)===wt.redirect}function BO(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function HS(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function WO(e){return kO.has(e.toLowerCase())}function wr(e){return _O.has(e.toLowerCase())}async function zw(e,t,n,r,s,o){for(let i=0;if.route.id===c.route.id),d=u!=null&&!VS(u,c)&&(o&&o[c.route.id])!==void 0;if(Zo(a)&&(s||d)){let f=r[i];tt(f,"Expected an AbortSignal for revalidating fetcher deferred result"),await YS(a,f,s).then(h=>{h&&(n[i]=h||n[i])})}}}async function YS(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:wt.data,data:e.deferredData.unwrappedData}}catch(s){return{type:wt.error,error:s}}return{type:wt.data,data:e.deferredData.data}}}function ev(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Il(e,t){let n=typeof t=="string"?Ws(t).search:t.search;if(e[e.length-1].route.index&&ev(n||""))return e[e.length-1];let r=FS(e);return r[r.length-1]}function Fw(e){let{formMethod:t,formAction:n,formEncType:r,text:s,formData:o,json:i}=e;if(!(!t||!n||!r)){if(s!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:s};if(o!=null)return{formMethod:t,formAction:n,formEncType:r,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:i,text:void 0}}}function Um(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 HO(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 bl(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 YO(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 no(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 KO(e,t){try{let n=e.sessionStorage.getItem(US);if(n){let r=JSON.parse(n);for(let[s,o]of Object.entries(r||{}))o&&Array.isArray(o)&&t.set(s,new Set(o||[]))}}catch{}}function GO(e,t){if(t.size>0){let n={};for(let[r,s]of t)n[r]=[...s];try{e.sessionStorage.setItem(US,JSON.stringify(n))}catch(r){hi(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** + * React Router v6.25.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Jd(){return Jd=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),g.useCallback(function(u,d){if(d===void 0&&(d={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let f=ih(u,JSON.parse(i),o,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Ts([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,i,o,e])}const XO=g.createContext(null);function QO(e){let t=g.useContext(Hs).outlet;return t&&g.createElement(XO.Provider,{value:e},t)}function qS(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=g.useContext(zo),{matches:s}=g.useContext(Hs),{pathname:o}=Mr(),i=JSON.stringify(oh(s,r.v7_relativeSplatPath));return g.useMemo(()=>ih(e,JSON.parse(i),o,n==="path"),[e,i,o,n])}function JO(e,t,n,r){Xa()||tt(!1);let{navigator:s}=g.useContext(zo),{matches:o}=g.useContext(Hs),i=o[o.length-1],a=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let u=Mr(),d;d=u;let f=d.pathname||"/",h=f;if(c!=="/"){let p=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(p.length).join("/")}let m=Ho(e,{pathname:h});return sD(m&&m.map(p=>Object.assign({},p,{params:Object.assign({},a,p.params),pathname:Ts([c,s.encodeLocation?s.encodeLocation(p.pathname).pathname:p.pathname]),pathnameBase:p.pathnameBase==="/"?c:Ts([c,s.encodeLocation?s.encodeLocation(p.pathnameBase).pathname:p.pathnameBase])})),o,n,r)}function eD(){let e=lD(),t=ah(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),n?g.createElement("pre",{style:s},n):null,null)}const tD=g.createElement(eD,null);class nD extends g.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?g.createElement(Hs.Provider,{value:this.props.routeContext},g.createElement(GS.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function rD(e){let{routeContext:t,match:n,children:r}=e,s=g.useContext(lh);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(Hs.Provider,{value:t},r)}function sD(e,t,n,r){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if((o=n)!=null&&o.errors)e=n.matches;else return null}let i=e,a=(s=n)==null?void 0:s.errors;if(a!=null){let d=i.findIndex(f=>f.route.id&&(a==null?void 0:a[f.route.id])!==void 0);d>=0||tt(!1),i=i.slice(0,Math.min(i.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,u+1):i=[i[0]];break}}}return i.reduceRight((d,f,h)=>{let m,x=!1,p=null,w=null;n&&(m=a&&f.route.id?a[f.route.id]:void 0,p=f.route.errorElement||tD,c&&(u<0&&h===0?(uD("route-fallback"),x=!0,w=null):u===h&&(x=!0,w=f.route.hydrateFallbackElement||null)));let y=t.concat(i.slice(0,h+1)),v=()=>{let b;return m?b=p:x?b=w:f.route.Component?b=g.createElement(f.route.Component,null):f.route.element?b=f.route.element:b=d,g.createElement(rD,{match:f,routeContext:{outlet:d,matches:y,isDataRoute:n!=null},children:b})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(nD,{location:n.location,revalidation:n.revalidation,component:p,error:m,children:v(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):v()},null)}var XS=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(XS||{}),ef=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(ef||{});function oD(e){let t=g.useContext(lh);return t||tt(!1),t}function iD(e){let t=g.useContext(KS);return t||tt(!1),t}function aD(e){let t=g.useContext(Hs);return t||tt(!1),t}function QS(e){let t=aD(),n=t.matches[t.matches.length-1];return n.route.id||tt(!1),n.route.id}function lD(){var e;let t=g.useContext(GS),n=iD(ef.UseRouteError),r=QS(ef.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function cD(){let{router:e}=oD(XS.UseNavigateStable),t=QS(ef.UseNavigateStable),n=g.useRef(!1);return ZS(()=>{n.current=!0}),g.useCallback(function(s,o){o===void 0&&(o={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,Jd({fromRouteId:t},o)))},[e,t])}const $w={};function uD(e,t,n){$w[e]||($w[e]=!0)}function JS(e){let{to:t,replace:n,state:r,relative:s}=e;Xa()||tt(!1);let{future:o,static:i}=g.useContext(zo),{matches:a}=g.useContext(Hs),{pathname:c}=Mr(),u=er(),d=ih(t,oh(a,o.v7_relativeSplatPath),c,s==="path"),f=JSON.stringify(d);return g.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:s}),[u,f,s,n,r]),null}function nv(e){return QO(e.context)}function dD(e){let{basename:t="/",children:n=null,location:r,navigationType:s=Ht.Pop,navigator:o,static:i=!1,future:a}=e;Xa()&&tt(!1);let c=t.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:c,navigator:o,static:i,future:Jd({v7_relativeSplatPath:!1},a)}),[c,a,o,i]);typeof r=="string"&&(r=Ws(r));let{pathname:d="/",search:f="",hash:h="",state:m=null,key:x="default"}=r,p=g.useMemo(()=>{let w=qa(d,c);return w==null?null:{location:{pathname:w,search:f,hash:h,state:m,key:x},navigationType:s}},[c,d,f,h,m,x,s]);return p==null?null:g.createElement(zo.Provider,{value:u},g.createElement(tv.Provider,{children:n,value:p}))}new Promise(()=>{});function fD(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:g.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:g.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:g.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** + * React Router DOM v6.25.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function _c(){return _c=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function mD(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function pD(e,t){return e.button===0&&(!t||t==="_self")&&!mD(e)}function hg(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||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(s=>[n,s]):[[n,r]])},[]))}function gD(e,t){let n=hg(e);return t&&t.forEach((r,s)=>{n.has(s)||t.getAll(s).forEach(o=>{n.append(s,o)})}),n}const yD=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],vD="6";try{window.__reactRouterVersion=vD}catch{}function xD(e,t){return TO({basename:void 0,future:_c({},void 0,{v7_prependBasename:!0}),history:JA({window:void 0}),hydrationData:wD(),routes:e,mapRouteProperties:fD,unstable_dataStrategy:void 0,unstable_patchRoutesOnMiss:void 0,window:void 0}).initialize()}function wD(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=_c({},t,{errors:bD(t.errors)})),t}function bD(e){if(!e)return null;let t=Object.entries(e),n={};for(let[r,s]of t)if(s&&s.__type==="RouteErrorResponse")n[r]=new Qy(s.status,s.statusText,s.data,s.internal===!0);else if(s&&s.__type==="Error"){if(s.__subType){let o=window[s.__subType];if(typeof o=="function")try{let i=new o(s.message);i.stack="",n[r]=i}catch{}}if(n[r]==null){let o=new Error(s.message);o.stack="",n[r]=o}}else n[r]=s;return n}const _D=g.createContext({isTransitioning:!1}),SD=g.createContext(new Map),kD="startTransition",Uw=O1[kD],CD="flushSync",Vw=QA[CD];function jD(e){Uw?Uw(e):e()}function _l(e){Vw?Vw(e):e()}class ED{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function ND(e){let{fallbackElement:t,router:n,future:r}=e,[s,o]=g.useState(n.state),[i,a]=g.useState(),[c,u]=g.useState({isTransitioning:!1}),[d,f]=g.useState(),[h,m]=g.useState(),[x,p]=g.useState(),w=g.useRef(new Map),{v7_startTransition:y}=r||{},v=g.useCallback(R=>{y?jD(R):R()},[y]),b=g.useCallback((R,A)=>{let{deletedFetchers:D,unstable_flushSync:G,unstable_viewTransitionOpts:N}=A;D.forEach(S=>w.current.delete(S)),R.fetchers.forEach((S,U)=>{S.data!==void 0&&w.current.set(U,S.data)});let z=n.window==null||n.window.document==null||typeof n.window.document.startViewTransition!="function";if(!N||z){G?_l(()=>o(R)):v(()=>o(R));return}if(G){_l(()=>{h&&(d&&d.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:N.currentLocation,nextLocation:N.nextLocation})});let S=n.window.document.startViewTransition(()=>{_l(()=>o(R))});S.finished.finally(()=>{_l(()=>{f(void 0),m(void 0),a(void 0),u({isTransitioning:!1})})}),_l(()=>m(S));return}h?(d&&d.resolve(),h.skipTransition(),p({state:R,currentLocation:N.currentLocation,nextLocation:N.nextLocation})):(a(R),u({isTransitioning:!0,flushSync:!1,currentLocation:N.currentLocation,nextLocation:N.nextLocation}))},[n.window,h,d,w,v]);g.useLayoutEffect(()=>n.subscribe(b),[n,b]),g.useEffect(()=>{c.isTransitioning&&!c.flushSync&&f(new ED)},[c]),g.useEffect(()=>{if(d&&i&&n.window){let R=i,A=d.promise,D=n.window.document.startViewTransition(async()=>{v(()=>o(R)),await A});D.finished.finally(()=>{f(void 0),m(void 0),a(void 0),u({isTransitioning:!1})}),m(D)}},[v,i,d,n.window]),g.useEffect(()=>{d&&i&&s.location.key===i.location.key&&d.resolve()},[d,h,s.location,i]),g.useEffect(()=>{!c.isTransitioning&&x&&(a(x.state),u({isTransitioning:!0,flushSync:!1,currentLocation:x.currentLocation,nextLocation:x.nextLocation}),p(void 0))},[c.isTransitioning,x]),g.useEffect(()=>{},[]);let _=g.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:R=>n.navigate(R),push:(R,A,D)=>n.navigate(R,{state:A,preventScrollReset:D==null?void 0:D.preventScrollReset}),replace:(R,A,D)=>n.navigate(R,{replace:!0,state:A,preventScrollReset:D==null?void 0:D.preventScrollReset})}),[n]),C=n.basename||"/",j=g.useMemo(()=>({router:n,navigator:_,static:!1,basename:C}),[n,_,C]),T=g.useMemo(()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath}),[n.future.v7_relativeSplatPath]);return g.createElement(g.Fragment,null,g.createElement(lh.Provider,{value:j},g.createElement(KS.Provider,{value:s},g.createElement(SD.Provider,{value:w.current},g.createElement(_D.Provider,{value:c},g.createElement(dD,{basename:C,location:s.location,navigationType:s.historyAction,navigator:_,future:T},s.initialized||n.future.v7_partialHydration?g.createElement(TD,{routes:n.routes,future:n.future,state:s}):t))))),null)}const TD=g.memo(PD);function PD(e){let{routes:t,future:n,state:r}=e;return JO(t,void 0,r,n)}const RD=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",AD=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wn=g.forwardRef(function(t,n){let{onClick:r,relative:s,reloadDocument:o,replace:i,state:a,target:c,to:u,preventScrollReset:d,unstable_viewTransition:f}=t,h=hD(t,yD),{basename:m}=g.useContext(zo),x,p=!1;if(typeof u=="string"&&AD.test(u)&&(x=u,RD))try{let b=new URL(window.location.href),_=u.startsWith("//")?new URL(b.protocol+u):new URL(u),C=qa(_.pathname,m);_.origin===b.origin&&C!=null?u=C+_.search+_.hash:p=!0}catch{}let w=ZO(u,{relative:s}),y=OD(u,{replace:i,state:a,target:c,preventScrollReset:d,relative:s,unstable_viewTransition:f});function v(b){r&&r(b),b.defaultPrevented||y(b)}return g.createElement("a",_c({},h,{href:x||w,onClick:p||o?r:v,ref:n,target:c}))});var Bw;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Bw||(Bw={}));var Ww;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ww||(Ww={}));function OD(e,t){let{target:n,replace:r,state:s,preventScrollReset:o,relative:i,unstable_viewTransition:a}=t===void 0?{}:t,c=er(),u=Mr(),d=qS(e,{relative:i});return g.useCallback(f=>{if(pD(f,n)){f.preventDefault();let h=r!==void 0?r:mi(u)===mi(d);c(e,{replace:h,state:s,preventScrollReset:o,relative:i,unstable_viewTransition:a})}},[u,c,d,r,s,n,e,o,i,a])}function DD(e){let t=g.useRef(hg(e)),n=g.useRef(!1),r=Mr(),s=g.useMemo(()=>gD(r.search,n.current?null:t.current),[r.search]),o=er(),i=g.useCallback((a,c)=>{const u=hg(typeof a=="function"?a(s):a);n.current=!0,o("?"+u,c)},[o,s]);return[s,i]}var ID={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};const MD=Vf(ID);var LD=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function Hw(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(MD[n[1]]||e.charAt(e.length-2)==="/")&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("-->");return{type:"comment",comment:r!==-1?e.slice(4,r):""}}for(var s=new RegExp(LD),o=null;(o=s.exec(e))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),a=[i,""];i.indexOf("=")>-1&&(a=i.split("=")),t.attrs[a[0]]=a[1],s.lastIndex--}else o[2]&&(t.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return t}var zD=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,FD=/^\s*$/,$D=Object.create(null);function ek(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(n){var r=[];for(var s in n)r.push(s+'="'+n[s]+'"');return r.length?" "+r.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(ek,"")+"";case"comment":return e+""}}var UD={parse:function(e,t){t||(t={}),t.components||(t.components=$D);var n,r=[],s=[],o=-1,i=!1;if(e.indexOf("<")!==0){var a=e.indexOf("<");r.push({type:"text",content:a===-1?e:e.substring(0,a)})}return e.replace(zD,function(c,u){if(i){if(c!=="")return;i=!1}var d,f=c.charAt(1)!=="/",h=c.startsWith("");return{type:"comment",comment:r!==-1?e.slice(4,r):""}}for(var s=new RegExp(jO),o=null;(o=s.exec(e))!==null;)if(o[0].trim())if(o[1]){var i=o[1].trim(),a=[i,""];i.indexOf("=")>-1&&(a=i.split("=")),t.attrs[a[0]]=a[1],s.lastIndex--}else o[2]&&(t.attrs[o[2]]=o[3].trim().substring(1,o[3].length-1));return t}var EO=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,NO=/^\s*$/,TO=Object.create(null);function GS(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(n){var r=[];for(var s in n)r.push(s+'="'+n[s]+'"');return r.length?" "+r.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(GS,"")+"";case"comment":return e+""}}var PO={parse:function(e,t){t||(t={}),t.components||(t.components=TO);var n,r=[],s=[],o=-1,i=!1;if(e.indexOf("<")!==0){var a=e.indexOf("<");r.push({type:"text",content:a===-1?e:e.substring(0,a)})}return e.replace(EO,function(c,u){if(i){if(c!=="")return;i=!1}var d,f=c.charAt(1)!=="/",h=c.startsWith("