diff --git "a/assets/index-Biv1NKQN.js" "b/assets/index-Biv1NKQN.js" new file mode 100644--- /dev/null +++ "b/assets/index-Biv1NKQN.js" @@ -0,0 +1,939 @@ +var Jp=Object.defineProperty;var qp=(e,t,n)=>t in e?Jp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var z=(e,t,n)=>qp(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const l of a)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const l={};return a.integrity&&(l.integrity=a.integrity),a.referrerPolicy&&(l.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?l.credentials="include":a.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(a){if(a.ep)return;a.ep=!0;const l=n(a);fetch(a.href,l)}})();function $c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Gc={exports:{}},Nl={},Hc={exports:{}},D={};/** + * @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 sa=Symbol.for("react.element"),em=Symbol.for("react.portal"),tm=Symbol.for("react.fragment"),nm=Symbol.for("react.strict_mode"),rm=Symbol.for("react.profiler"),am=Symbol.for("react.provider"),lm=Symbol.for("react.context"),om=Symbol.for("react.forward_ref"),im=Symbol.for("react.suspense"),sm=Symbol.for("react.memo"),um=Symbol.for("react.lazy"),Zs=Symbol.iterator;function cm(e){return e===null||typeof e!="object"?null:(e=Zs&&e[Zs]||e["@@iterator"],typeof e=="function"?e:null)}var Zc={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Yc=Object.assign,Xc={};function sr(e,t,n){this.props=e,this.context=t,this.refs=Xc,this.updater=n||Zc}sr.prototype.isReactComponent={};sr.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")};sr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Kc(){}Kc.prototype=sr.prototype;function Ui(e,t,n){this.props=e,this.context=t,this.refs=Xc,this.updater=n||Zc}var Vi=Ui.prototype=new Kc;Vi.constructor=Ui;Yc(Vi,sr.prototype);Vi.isPureReactComponent=!0;var Ys=Array.isArray,Qc=Object.prototype.hasOwnProperty,Bi={current:null},Jc={key:!0,ref:!0,__self:!0,__source:!0};function qc(e,t,n){var r,a={},l=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(l=""+t.key),t)Qc.call(t,r)&&!Jc.hasOwnProperty(r)&&(a[r]=t[r]);var i=arguments.length-2;if(i===1)a.children=n;else if(1>>1,oe=b[$];if(0>>1;$a(Mn,j))sna(ga,Mn)?(b[$]=ga,b[sn]=j,$=sn):(b[$]=Mn,b[it]=j,$=it);else if(sna(ga,j))b[$]=ga,b[sn]=j,$=sn;else break e}}return A}function a(b,A){var j=b.sortIndex-A.sortIndex;return j!==0?j:b.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var o=Date,i=o.now();e.unstable_now=function(){return o.now()-i}}var s=[],u=[],c=1,d=null,m=3,y=!1,k=!1,S=!1,T=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function h(b){for(var A=n(u);A!==null;){if(A.callback===null)r(u);else if(A.startTime<=b)r(u),A.sortIndex=A.expirationTime,t(s,A);else break;A=n(u)}}function x(b){if(S=!1,h(b),!k)if(n(s)!==null)k=!0,C(N);else{var A=n(u);A!==null&&L(x,A.startTime-b)}}function N(b,A){k=!1,S&&(S=!1,p(I),I=-1),y=!0;var j=m;try{for(h(A),d=n(s);d!==null&&(!(d.expirationTime>A)||b&&!ve());){var $=d.callback;if(typeof $=="function"){d.callback=null,m=d.priorityLevel;var oe=$(d.expirationTime<=A);A=e.unstable_now(),typeof oe=="function"?d.callback=oe:d===n(s)&&r(s),h(A)}else r(s);d=n(s)}if(d!==null)var on=!0;else{var it=n(u);it!==null&&L(x,it.startTime-A),on=!1}return on}finally{d=null,m=j,y=!1}}var M=!1,O=null,I=-1,H=5,F=-1;function ve(){return!(e.unstable_now()-Fb||125$?(b.sortIndex=j,t(u,b),n(s)===null&&b===n(u)&&(S?(p(I),I=-1):S=!0,L(x,j-$))):(b.sortIndex=oe,t(s,b),k||y||(k=!0,C(N))),b},e.unstable_shouldYield=ve,e.unstable_wrapCallback=function(b){var A=m;return function(){var j=m;m=A;try{return b.apply(this,arguments)}finally{m=j}}}})(af);rf.exports=af;var km=rf.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 Sm=B,Re=km;function E(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"),Oo=Object.prototype.hasOwnProperty,Em=/^[: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]*$/,Ks={},Qs={};function Cm(e){return Oo.call(Qs,e)?!0:Oo.call(Ks,e)?!1:Em.test(e)?Qs[e]=!0:(Ks[e]=!0,!1)}function Nm(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 bm(e,t,n,r){if(t===null||typeof t>"u"||Nm(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 Ne(e,t,n,r,a,l,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=o}var ge={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ge[e]=new Ne(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ge[t]=new Ne(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ge[e]=new Ne(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ge[e]=new Ne(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){ge[e]=new Ne(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ge[e]=new Ne(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ge[e]=new Ne(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ge[e]=new Ne(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ge[e]=new Ne(e,5,!1,e.toLowerCase(),null,!1,!1)});var Gi=/[\-:]([a-z])/g;function Hi(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(Gi,Hi);ge[t]=new Ne(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(Gi,Hi);ge[t]=new Ne(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(Gi,Hi);ge[t]=new Ne(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ge[e]=new Ne(e,1,!1,e.toLowerCase(),null,!1,!1)});ge.xlinkHref=new Ne("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ge[e]=new Ne(e,1,!1,e.toLowerCase(),null,!0,!0)});function Zi(e,t,n,r){var a=ge.hasOwnProperty(t)?ge[t]:null;(a!==null?a.type!==0:r||!(2i||a[o]!==l[i]){var s=` +`+a[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=i);break}}}finally{Kl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Cr(e):""}function _m(e){switch(e.tag){case 5:return Cr(e.type);case 16:return Cr("Lazy");case 13:return Cr("Suspense");case 19:return Cr("SuspenseList");case 0:case 2:case 15:return e=Ql(e.type,!1),e;case 11:return e=Ql(e.type.render,!1),e;case 1:return e=Ql(e.type,!0),e;default:return""}}function Ao(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 In:return"Fragment";case Ln:return"Portal";case Po:return"Profiler";case Yi:return"StrictMode";case Lo:return"Suspense";case Io:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case sf:return(e.displayName||"Context")+".Consumer";case of:return(e._context.displayName||"Context")+".Provider";case Xi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ki:return t=e.displayName||null,t!==null?t:Ao(e.type)||"Memo";case zt:t=e._payload,e=e._init;try{return Ao(e(t))}catch{}}return null}function Tm(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 Ao(t);case 8:return t===Yi?"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 Qt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function cf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Mm(e){var t=cf(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 a=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){r=""+o,l.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function wa(e){e._valueTracker||(e._valueTracker=Mm(e))}function ff(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=cf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Qa(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 jo(e,t){var n=t.checked;return ne({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qs(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Qt(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 df(e,t){t=t.checked,t!=null&&Zi(e,"checked",t,!1)}function zo(e,t){df(e,t);var n=Qt(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")?Fo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Fo(e,t.type,Qt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function eu(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 Fo(e,t,n){(t!=="number"||Qa(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Nr=Array.isArray;function Hn(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=xa.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Br(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Or={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},Om=["Webkit","ms","Moz","O"];Object.keys(Or).forEach(function(e){Om.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Or[t]=Or[e]})});function gf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Or.hasOwnProperty(e)&&Or[e]?(""+t).trim():t+"px"}function vf(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=gf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var Pm=ne({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 Wo(e,t){if(t){if(Pm[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(E(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(E(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(E(61))}if(t.style!=null&&typeof t.style!="object")throw Error(E(62))}}function Uo(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 Vo=null;function Qi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bo=null,Zn=null,Yn=null;function ru(e){if(e=fa(e)){if(typeof Bo!="function")throw Error(E(280));var t=e.stateNode;t&&(t=Pl(t),Bo(e.stateNode,e.type,t))}}function yf(e){Zn?Yn?Yn.push(e):Yn=[e]:Zn=e}function wf(){if(Zn){var e=Zn,t=Yn;if(Yn=Zn=null,ru(e),t)for(e=0;e>>=0,e===0?32:31-(Vm(e)/Bm|0)|0}var ka=64,Sa=4194304;function br(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 tl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,l=e.pingedLanes,o=n&268435455;if(o!==0){var i=o&~a;i!==0?r=br(i):(l&=o,l!==0&&(r=br(l)))}else o=n&~a,o!==0?r=br(o):l!==0&&(r=br(l));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,l=t&-t,a>=l||a===16&&(l&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 ua(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-nt(t),e[t]=n}function Zm(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=Lr),du=" ",pu=!1;function Df(e,t){switch(e){case"keyup":return kh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var An=!1;function Eh(e,t){switch(e){case"compositionend":return Wf(t);case"keypress":return t.which!==32?null:(pu=!0,du);case"textInput":return e=t.data,e===du&&pu?null:e;default:return null}}function Ch(e,t){if(An)return e==="compositionend"||!ls&&Df(e,t)?(e=Ff(),Da=ns=Wt=null,An=!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=vu(n)}}function $f(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$f(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Gf(){for(var e=window,t=Qa();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Qa(e.document)}return t}function os(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 Ih(e){var t=Gf(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&$f(n.ownerDocument.documentElement,n)){if(r!==null&&os(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 a=n.textContent.length,l=Math.min(r.start,a);r=r.end===void 0?l:Math.min(r.end,a),!e.extend&&l>r&&(a=r,r=l,l=a),a=yu(n,l);var o=yu(n,r);a&&o&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.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,jn=null,Xo=null,Ar=null,Ko=!1;function wu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ko||jn==null||jn!==Qa(r)||(r=jn,"selectionStart"in r&&os(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}),Ar&&Xr(Ar,r)||(Ar=r,r=al(Xo,"onSelect"),0Rn||(e.current=ni[Rn],ni[Rn]=null,Rn--)}function G(e,t){Rn++,ni[Rn]=e.current,e.current=t}var Jt={},ke=rn(Jt),Te=rn(!1),xn=Jt;function er(e,t){var n=e.type.contextTypes;if(!n)return Jt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},l;for(l in n)a[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Me(e){return e=e.childContextTypes,e!=null}function ol(){X(Te),X(ke)}function bu(e,t,n){if(ke.current!==Jt)throw Error(E(168));G(ke,t),G(Te,n)}function ed(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(E(108,Tm(e)||"Unknown",a));return ne({},n,r)}function il(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Jt,xn=ke.current,G(ke,e),G(Te,Te.current),!0}function _u(e,t,n){var r=e.stateNode;if(!r)throw Error(E(169));n?(e=ed(e,t,xn),r.__reactInternalMemoizedMergedChildContext=e,X(Te),X(ke),G(ke,e)):X(Te),G(Te,n)}var xt=null,Ll=!1,fo=!1;function td(e){xt===null?xt=[e]:xt.push(e)}function Gh(e){Ll=!0,td(e)}function an(){if(!fo&&xt!==null){fo=!0;var e=0,t=V;try{var n=xt;for(V=1;e>=o,a-=o,kt=1<<32-nt(t)+a|n<I?(H=O,O=null):H=O.sibling;var F=m(p,O,h[I],x);if(F===null){O===null&&(O=H);break}e&&O&&F.alternate===null&&t(p,O),f=l(F,f,I),M===null?N=F:M.sibling=F,M=F,O=H}if(I===h.length)return n(p,O),Q&&cn(p,I),N;if(O===null){for(;II?(H=O,O=null):H=O.sibling;var ve=m(p,O,F.value,x);if(ve===null){O===null&&(O=H);break}e&&O&&ve.alternate===null&&t(p,O),f=l(ve,f,I),M===null?N=ve:M.sibling=ve,M=ve,O=H}if(F.done)return n(p,O),Q&&cn(p,I),N;if(O===null){for(;!F.done;I++,F=h.next())F=d(p,F.value,x),F!==null&&(f=l(F,f,I),M===null?N=F:M.sibling=F,M=F);return Q&&cn(p,I),N}for(O=r(p,O);!F.done;I++,F=h.next())F=y(O,p,I,F.value,x),F!==null&&(e&&F.alternate!==null&&O.delete(F.key===null?I:F.key),f=l(F,f,I),M===null?N=F:M.sibling=F,M=F);return e&&O.forEach(function(lt){return t(p,lt)}),Q&&cn(p,I),N}function T(p,f,h,x){if(typeof h=="object"&&h!==null&&h.type===In&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case ya:e:{for(var N=h.key,M=f;M!==null;){if(M.key===N){if(N=h.type,N===In){if(M.tag===7){n(p,M.sibling),f=a(M,h.props.children),f.return=p,p=f;break e}}else if(M.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===zt&&Ou(N)===M.type){n(p,M.sibling),f=a(M,h.props),f.ref=yr(p,M,h),f.return=p,p=f;break e}n(p,M);break}else t(p,M);M=M.sibling}h.type===In?(f=vn(h.props.children,p.mode,x,h.key),f.return=p,p=f):(x=Za(h.type,h.key,h.props,null,p.mode,x),x.ref=yr(p,f,h),x.return=p,p=x)}return o(p);case Ln:e:{for(M=h.key;f!==null;){if(f.key===M)if(f.tag===4&&f.stateNode.containerInfo===h.containerInfo&&f.stateNode.implementation===h.implementation){n(p,f.sibling),f=a(f,h.children||[]),f.return=p,p=f;break e}else{n(p,f);break}else t(p,f);f=f.sibling}f=xo(h,p.mode,x),f.return=p,p=f}return o(p);case zt:return M=h._init,T(p,f,M(h._payload),x)}if(Nr(h))return k(p,f,h,x);if(pr(h))return S(p,f,h,x);Ma(p,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,f!==null&&f.tag===6?(n(p,f.sibling),f=a(f,h),f.return=p,p=f):(n(p,f),f=wo(h,p.mode,x),f.return=p,p=f),o(p)):n(p,f)}return T}var nr=ld(!0),od=ld(!1),cl=rn(null),fl=null,Un=null,cs=null;function fs(){cs=Un=fl=null}function ds(e){var t=cl.current;X(cl),e._currentValue=t}function li(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 Kn(e,t){fl=e,cs=Un=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(_e=!0),e.firstContext=null)}function Ye(e){var t=e._currentValue;if(cs!==e)if(e={context:e,memoizedValue:t,next:null},Un===null){if(fl===null)throw Error(E(308));Un=e,fl.dependencies={lanes:0,firstContext:e}}else Un=Un.next=e;return t}var mn=null;function ps(e){mn===null?mn=[e]:mn.push(e)}function id(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,ps(t)):(n.next=a.next,a.next=n),t.interleaved=n,_t(e,r)}function _t(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 Ft=!1;function ms(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sd(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 Ct(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Zt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,U&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,_t(e,n)}return a=r.interleaved,a===null?(t.next=t,ps(r)):(t.next=a.next,a.next=t),r.interleaved=t,_t(e,n)}function Ua(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,qi(e,n)}}function Pu(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?a=l=o:l=l.next=o,n=n.next}while(n!==null);l===null?a=l=t:l=l.next=t}else a=l=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:l,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 dl(e,t,n,r){var a=e.updateQueue;Ft=!1;var l=a.firstBaseUpdate,o=a.lastBaseUpdate,i=a.shared.pending;if(i!==null){a.shared.pending=null;var s=i,u=s.next;s.next=null,o===null?l=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,i=c.lastBaseUpdate,i!==o&&(i===null?c.firstBaseUpdate=u:i.next=u,c.lastBaseUpdate=s))}if(l!==null){var d=a.baseState;o=0,c=u=s=null,i=l;do{var m=i.lane,y=i.eventTime;if((r&m)===m){c!==null&&(c=c.next={eventTime:y,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var k=e,S=i;switch(m=t,y=n,S.tag){case 1:if(k=S.payload,typeof k=="function"){d=k.call(y,d,m);break e}d=k;break e;case 3:k.flags=k.flags&-65537|128;case 0:if(k=S.payload,m=typeof k=="function"?k.call(y,d,m):k,m==null)break e;d=ne({},d,m);break e;case 2:Ft=!0}}i.callback!==null&&i.lane!==0&&(e.flags|=64,m=a.effects,m===null?a.effects=[i]:m.push(i))}else y={eventTime:y,lane:m,tag:i.tag,payload:i.payload,callback:i.callback,next:null},c===null?(u=c=y,s=d):c=c.next=y,o|=m;if(i=i.next,i===null){if(i=a.shared.pending,i===null)break;m=i,i=m.next,m.next=null,a.lastBaseUpdate=m,a.shared.pending=null}}while(!0);if(c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,t=a.shared.interleaved,t!==null){a=t;do o|=a.lane,a=a.next;while(a!==t)}else l===null&&(a.shared.lanes=0);En|=o,e.lanes=o,e.memoizedState=d}}function Lu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=mo.transition;mo.transition={};try{e(!1),t()}finally{V=n,mo.transition=r}}function Nd(){return Xe().memoizedState}function Xh(e,t,n){var r=Xt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},bd(e))_d(t,n);else if(n=id(e,t,n,r),n!==null){var a=Ee();rt(n,e,r,a),Td(n,t,r)}}function Kh(e,t,n){var r=Xt(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(bd(e))_d(t,a);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var o=t.lastRenderedState,i=l(o,n);if(a.hasEagerState=!0,a.eagerState=i,at(i,o)){var s=t.interleaved;s===null?(a.next=a,ps(t)):(a.next=s.next,s.next=a),t.interleaved=a;return}}catch{}finally{}n=id(e,t,a,r),n!==null&&(a=Ee(),rt(n,e,r,a),Td(n,t,r))}}function bd(e){var t=e.alternate;return e===te||t!==null&&t===te}function _d(e,t){jr=ml=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Td(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,qi(e,n)}}var hl={readContext:Ye,useCallback:ye,useContext:ye,useEffect:ye,useImperativeHandle:ye,useInsertionEffect:ye,useLayoutEffect:ye,useMemo:ye,useReducer:ye,useRef:ye,useState:ye,useDebugValue:ye,useDeferredValue:ye,useTransition:ye,useMutableSource:ye,useSyncExternalStore:ye,useId:ye,unstable_isNewReconciler:!1},Qh={readContext:Ye,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Ye,useEffect:Au,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ba(4194308,4,xd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ba(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ba(4,2,e,t)},useMemo:function(e,t){var n=ut();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ut();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=Xh.bind(null,te,e),[r.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:Iu,useDebugValue:Ss,useDeferredValue:function(e){return ut().memoizedState=e},useTransition:function(){var e=Iu(!1),t=e[0];return e=Yh.bind(null,e[1]),ut().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=te,a=ut();if(Q){if(n===void 0)throw Error(E(407));n=n()}else{if(n=t(),pe===null)throw Error(E(349));Sn&30||dd(r,t,n)}a.memoizedState=n;var l={value:n,getSnapshot:t};return a.queue=l,Au(md.bind(null,r,l,e),[e]),r.flags|=2048,ra(9,pd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=ut(),t=pe.identifierPrefix;if(Q){var n=St,r=kt;n=(r&~(1<<32-nt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ta++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[ft]=t,e[Jr]=r,Rd(e,t,!1,!1),t.stateNode=e;e:{switch(o=Uo(n,r),n){case"dialog":Z("cancel",e),Z("close",e),a=r;break;case"iframe":case"object":case"embed":Z("load",e),a=r;break;case"video":case"audio":for(a=0;a<_r.length;a++)Z(_r[a],e);a=r;break;case"source":Z("error",e),a=r;break;case"img":case"image":case"link":Z("error",e),Z("load",e),a=r;break;case"details":Z("toggle",e),a=r;break;case"input":qs(e,r),a=jo(e,r),Z("invalid",e);break;case"option":a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=ne({},r,{value:void 0}),Z("invalid",e);break;case"textarea":tu(e,r),a=Ro(e,r),Z("invalid",e);break;default:a=r}Wo(n,a),i=a;for(l in i)if(i.hasOwnProperty(l)){var s=i[l];l==="style"?vf(e,s):l==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,s!=null&&hf(e,s)):l==="children"?typeof s=="string"?(n!=="textarea"||s!=="")&&Br(e,s):typeof s=="number"&&Br(e,""+s):l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&l!=="autoFocus"&&(Vr.hasOwnProperty(l)?s!=null&&l==="onScroll"&&Z("scroll",e):s!=null&&Zi(e,l,s,o))}switch(n){case"input":wa(e),eu(e,r,!1);break;case"textarea":wa(e),nu(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Qt(r.value));break;case"select":e.multiple=!!r.multiple,l=r.value,l!=null?Hn(e,!!r.multiple,l,!1):r.defaultValue!=null&&Hn(e,!!r.multiple,r.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=ll)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return we(t),null;case 6:if(e&&t.stateNode!=null)Wd(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(E(166));if(n=hn(ea.current),hn(ht.current),Ta(t)){if(r=t.stateNode,n=t.memoizedProps,r[ft]=t,(l=r.nodeValue!==n)&&(e=je,e!==null))switch(e.tag){case 3:_a(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&_a(r.nodeValue,n,(e.mode&1)!==0)}l&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[ft]=t,t.stateNode=r}return we(t),null;case 13:if(X(ee),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Q&&Ae!==null&&t.mode&1&&!(t.flags&128))ad(),tr(),t.flags|=98560,l=!1;else if(l=Ta(t),r!==null&&r.dehydrated!==null){if(e===null){if(!l)throw Error(E(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(E(317));l[ft]=t}else tr(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;we(t),l=!1}else tt!==null&&(ki(tt),tt=null),l=!0;if(!l)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||ee.current&1?fe===0&&(fe=3):Ms())),t.updateQueue!==null&&(t.flags|=4),we(t),null);case 4:return rr(),pi(e,t),e===null&&Kr(t.stateNode.containerInfo),we(t),null;case 10:return ds(t.type._context),we(t),null;case 17:return Me(t.type)&&ol(),we(t),null;case 19:if(X(ee),l=t.memoizedState,l===null)return we(t),null;if(r=(t.flags&128)!==0,o=l.rendering,o===null)if(r)wr(l,!1);else{if(fe!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=pl(e),o!==null){for(t.flags|=128,wr(l,!1),r=o.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)l=n,e=r,l.flags&=14680066,o=l.alternate,o===null?(l.childLanes=0,l.lanes=e,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=o.childLanes,l.lanes=o.lanes,l.child=o.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=o.memoizedProps,l.memoizedState=o.memoizedState,l.updateQueue=o.updateQueue,l.type=o.type,e=o.dependencies,l.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return G(ee,ee.current&1|2),t.child}e=e.sibling}l.tail!==null&&se()>lr&&(t.flags|=128,r=!0,wr(l,!1),t.lanes=4194304)}else{if(!r)if(e=pl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),wr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!Q)return we(t),null}else 2*se()-l.renderingStartTime>lr&&n!==1073741824&&(t.flags|=128,r=!0,wr(l,!1),t.lanes=4194304);l.isBackwards?(o.sibling=t.child,t.child=o):(n=l.last,n!==null?n.sibling=o:t.child=o,l.last=o)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=se(),t.sibling=null,n=ee.current,G(ee,r?n&1|2:n&1),t):(we(t),null);case 22:case 23:return Ts(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Le&1073741824&&(we(t),t.subtreeFlags&6&&(t.flags|=8192)):we(t),null;case 24:return null;case 25:return null}throw Error(E(156,t.tag))}function lg(e,t){switch(ss(t),t.tag){case 1:return Me(t.type)&&ol(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return rr(),X(Te),X(ke),vs(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return gs(t),null;case 13:if(X(ee),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(E(340));tr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return X(ee),null;case 4:return rr(),null;case 10:return ds(t.type._context),null;case 22:case 23:return Ts(),null;case 24:return null;default:return null}}var Pa=!1,xe=!1,og=typeof WeakSet=="function"?WeakSet:Set,_=null;function Vn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){le(e,t,r)}else n.current=null}function mi(e,t,n){try{n()}catch(r){le(e,t,r)}}var Gu=!1;function ig(e,t){if(Qo=nl,e=Gf(),os(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 a=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var o=0,i=-1,s=-1,u=0,c=0,d=e,m=null;t:for(;;){for(var y;d!==n||a!==0&&d.nodeType!==3||(i=o+a),d!==l||r!==0&&d.nodeType!==3||(s=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(y=d.firstChild)!==null;)m=d,d=y;for(;;){if(d===e)break t;if(m===n&&++u===a&&(i=o),m===l&&++c===r&&(s=o),(y=d.nextSibling)!==null)break;d=m,m=d.parentNode}d=y}n=i===-1||s===-1?null:{start:i,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Jo={focusedElem:e,selectionRange:n},nl=!1,_=t;_!==null;)if(t=_,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_=e;else for(;_!==null;){t=_;try{var k=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(k!==null){var S=k.memoizedProps,T=k.memoizedState,p=t.stateNode,f=p.getSnapshotBeforeUpdate(t.elementType===t.type?S:Je(t.type,S),T);p.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(E(163))}}catch(x){le(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,_=e;break}_=t.return}return k=Gu,Gu=!1,k}function zr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var l=a.destroy;a.destroy=void 0,l!==void 0&&mi(t,n,l)}a=a.next}while(a!==r)}}function jl(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 hi(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 Ud(e){var t=e.alternate;t!==null&&(e.alternate=null,Ud(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ft],delete t[Jr],delete t[ti],delete t[Bh],delete t[$h])),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 Vd(e){return e.tag===5||e.tag===3||e.tag===4}function Hu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Vd(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 gi(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=ll));else if(r!==4&&(e=e.child,e!==null))for(gi(e,t,n),e=e.sibling;e!==null;)gi(e,t,n),e=e.sibling}function vi(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(vi(e,t,n),e=e.sibling;e!==null;)vi(e,t,n),e=e.sibling}var me=null,et=!1;function At(e,t,n){for(n=n.child;n!==null;)Bd(e,t,n),n=n.sibling}function Bd(e,t,n){if(mt&&typeof mt.onCommitFiberUnmount=="function")try{mt.onCommitFiberUnmount(_l,n)}catch{}switch(n.tag){case 5:xe||Vn(n,t);case 6:var r=me,a=et;me=null,At(e,t,n),me=r,et=a,me!==null&&(et?(e=me,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):me.removeChild(n.stateNode));break;case 18:me!==null&&(et?(e=me,n=n.stateNode,e.nodeType===8?co(e.parentNode,n):e.nodeType===1&&co(e,n),Zr(e)):co(me,n.stateNode));break;case 4:r=me,a=et,me=n.stateNode.containerInfo,et=!0,At(e,t,n),me=r,et=a;break;case 0:case 11:case 14:case 15:if(!xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var l=a,o=l.destroy;l=l.tag,o!==void 0&&(l&2||l&4)&&mi(n,t,o),a=a.next}while(a!==r)}At(e,t,n);break;case 1:if(!xe&&(Vn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){le(n,t,i)}At(e,t,n);break;case 21:At(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,At(e,t,n),xe=r):At(e,t,n);break;default:At(e,t,n)}}function Zu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new og),t.forEach(function(r){var a=gg.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function Ke(e,t){var n=t.deletions;if(n!==null)for(var r=0;ra&&(a=o),r&=~l}if(r=a,r=se()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ug(r/1960))-r,10e?16:e,Ut===null)var r=!1;else{if(e=Ut,Ut=null,yl=0,U&6)throw Error(E(331));var a=U;for(U|=4,_=e.current;_!==null;){var l=_,o=l.child;if(_.flags&16){var i=l.deletions;if(i!==null){for(var s=0;sse()-bs?gn(e,0):Ns|=n),Oe(e,t)}function Qd(e,t){t===0&&(e.mode&1?(t=Sa,Sa<<=1,!(Sa&130023424)&&(Sa=4194304)):t=1);var n=Ee();e=_t(e,t),e!==null&&(ua(e,t,n),Oe(e,n))}function hg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qd(e,n)}function gg(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(E(314))}r!==null&&r.delete(t),Qd(e,n)}var Jd;Jd=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Te.current)_e=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return _e=!1,rg(e,t,n);_e=!!(e.flags&131072)}else _e=!1,Q&&t.flags&1048576&&nd(t,ul,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;$a(e,t),e=t.pendingProps;var a=er(t,ke.current);Kn(t,n),a=ws(null,t,r,e,a,n);var l=xs();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Me(r)?(l=!0,il(t)):l=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,ms(t),a.updater=Al,t.stateNode=a,a._reactInternals=t,ii(t,r,e,n),t=ci(null,t,r,!0,l,n)):(t.tag=0,Q&&l&&is(t),Se(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch($a(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=yg(r),e=Je(r,e),a){case 0:t=ui(null,t,r,e,n);break e;case 1:t=Vu(null,t,r,e,n);break e;case 11:t=Wu(null,t,r,e,n);break e;case 14:t=Uu(null,t,r,Je(r.type,e),n);break e}throw Error(E(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Je(r,a),ui(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Je(r,a),Vu(e,t,r,a,n);case 3:e:{if(jd(t),e===null)throw Error(E(387));r=t.pendingProps,l=t.memoizedState,a=l.element,sd(e,t),dl(t,r,null,n);var o=t.memoizedState;if(r=o.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){a=ar(Error(E(423)),t),t=Bu(e,t,r,n,a);break e}else if(r!==a){a=ar(Error(E(424)),t),t=Bu(e,t,r,n,a);break e}else for(Ae=Ht(t.stateNode.containerInfo.firstChild),je=t,Q=!0,tt=null,n=od(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(tr(),r===a){t=Tt(e,t,n);break e}Se(e,t,r,n)}t=t.child}return t;case 5:return ud(t),e===null&&ai(t),r=t.type,a=t.pendingProps,l=e!==null?e.memoizedProps:null,o=a.children,qo(r,a)?o=null:l!==null&&qo(r,l)&&(t.flags|=32),Ad(e,t),Se(e,t,o,n),t.child;case 6:return e===null&&ai(t),null;case 13:return zd(e,t,n);case 4:return hs(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=nr(t,null,r,n):Se(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Je(r,a),Wu(e,t,r,a,n);case 7:return Se(e,t,t.pendingProps,n),t.child;case 8:return Se(e,t,t.pendingProps.children,n),t.child;case 12:return Se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value,G(cl,r._currentValue),r._currentValue=o,l!==null)if(at(l.value,o)){if(l.children===a.children&&!Te.current){t=Tt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var i=l.dependencies;if(i!==null){o=l.child;for(var s=i.firstContext;s!==null;){if(s.context===r){if(l.tag===1){s=Ct(-1,n&-n),s.tag=2;var u=l.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?s.next=s:(s.next=c.next,c.next=s),u.pending=s}}l.lanes|=n,s=l.alternate,s!==null&&(s.lanes|=n),li(l.return,n,t),i.lanes|=n;break}s=s.next}}else if(l.tag===10)o=l.type===t.type?null:l.child;else if(l.tag===18){if(o=l.return,o===null)throw Error(E(341));o.lanes|=n,i=o.alternate,i!==null&&(i.lanes|=n),li(o,n,t),o=l.sibling}else o=l.child;if(o!==null)o.return=l;else for(o=l;o!==null;){if(o===t){o=null;break}if(l=o.sibling,l!==null){l.return=o.return,o=l;break}o=o.return}l=o}Se(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Kn(t,n),a=Ye(a),r=r(a),t.flags|=1,Se(e,t,r,n),t.child;case 14:return r=t.type,a=Je(r,t.pendingProps),a=Je(r.type,a),Uu(e,t,r,a,n);case 15:return Ld(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Je(r,a),$a(e,t),t.tag=1,Me(r)?(e=!0,il(t)):e=!1,Kn(t,n),Md(t,r,a),ii(t,r,a,n),ci(null,t,r,!0,e,n);case 19:return Fd(e,t,n);case 22:return Id(e,t,n)}throw Error(E(156,t.tag))};function qd(e,t){return bf(e,t)}function vg(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 He(e,t,n,r){return new vg(e,t,n,r)}function Os(e){return e=e.prototype,!(!e||!e.isReactComponent)}function yg(e){if(typeof e=="function")return Os(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xi)return 11;if(e===Ki)return 14}return 2}function Kt(e,t){var n=e.alternate;return n===null?(n=He(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 Za(e,t,n,r,a,l){var o=2;if(r=e,typeof e=="function")Os(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case In:return vn(n.children,a,l,t);case Yi:o=8,a|=8;break;case Po:return e=He(12,n,t,a|2),e.elementType=Po,e.lanes=l,e;case Lo:return e=He(13,n,t,a),e.elementType=Lo,e.lanes=l,e;case Io:return e=He(19,n,t,a),e.elementType=Io,e.lanes=l,e;case uf:return Fl(n,a,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case of:o=10;break e;case sf:o=9;break e;case Xi:o=11;break e;case Ki:o=14;break e;case zt:o=16,r=null;break e}throw Error(E(130,e==null?e:typeof e,""))}return t=He(o,n,t,a),t.elementType=e,t.type=r,t.lanes=l,t}function vn(e,t,n,r){return e=He(7,e,r,t),e.lanes=n,e}function Fl(e,t,n,r){return e=He(22,e,r,t),e.elementType=uf,e.lanes=n,e.stateNode={isHidden:!1},e}function wo(e,t,n){return e=He(6,e,null,t),e.lanes=n,e}function xo(e,t,n){return t=He(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function wg(e,t,n,r,a){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=ql(0),this.expirationTimes=ql(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ql(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Ps(e,t,n,r,a,l,o,i,s){return e=new wg(e,t,n,i,s),t===1?(t=1,l===!0&&(t|=8)):t=0,l=He(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ms(l),e}function xg(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rp)}catch(e){console.error(e)}}rp(),nf.exports=De;var Ng=nf.exports,tc=Ng;Mo.createRoot=tc.createRoot,Mo.hydrateRoot=tc.hydrateRoot;var v=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator"}),nc=Object.freeze({set:v.Set,for:v.For,in:v.In,is:v.Is,if:v.If,else:v.Else,endif:v.EndIf,elif:v.ElseIf,endfor:v.EndFor,and:v.And,or:v.Or,not:v.Not,"not in":v.NotIn,true:v.BooleanLiteral,false:v.BooleanLiteral}),un=class{constructor(e,t){this.value=e,this.type=t}};function rc(e){return/\w/.test(e)}function ko(e){return/[0-9]/.test(e)}var bg=[["{%",v.OpenStatement],["%}",v.CloseStatement],["{{",v.OpenExpression],["}}",v.CloseExpression],["(",v.OpenParen],[")",v.CloseParen],["{",v.OpenCurlyBracket],["}",v.CloseCurlyBracket],["[",v.OpenSquareBracket],["]",v.CloseSquareBracket],[",",v.Comma],[".",v.Dot],[":",v.Colon],["|",v.Pipe],["<=",v.ComparisonBinaryOperator],[">=",v.ComparisonBinaryOperator],["==",v.ComparisonBinaryOperator],["!=",v.ComparisonBinaryOperator],["<",v.ComparisonBinaryOperator],[">",v.ComparisonBinaryOperator],["+",v.AdditiveBinaryOperator],["-",v.AdditiveBinaryOperator],["*",v.MultiplicativeBinaryOperator],["/",v.MultiplicativeBinaryOperator],["%",v.MultiplicativeBinaryOperator],["=",v.Equals]],_g=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function Tg(e,t={}){return e.endsWith(` +`)&&(e=e.slice(0,-1)),e=e.replace(/{#.*?#}/gs,"{##}"),t.lstrip_blocks&&(e=e.replace(/^[ \t]*({[#%])/gm,"$1")),t.trim_blocks&&(e=e.replace(/([#%]})\n/g,"$1")),e.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}function Mg(e,t={}){var o,i,s;const n=[],r=Tg(e,t);let a=0;const l=u=>{let c="";for(;u(r[a]);){if(r[a]==="\\"){if(++a,a>=r.length)throw new SyntaxError("Unexpected end of input");const d=r[a++],m=_g.get(d);if(m===void 0)throw new SyntaxError(`Unexpected escaped character: ${d}`);c+=m;continue}if(c+=r[a++],a>=r.length)throw new SyntaxError("Unexpected end of input")}return c};e:for(;a0){n.push(new un(d,v.Text));continue}}l(d=>/\s/.test(d));const c=r[a];if(c==="-"||c==="+"){const d=(i=n.at(-1))==null?void 0:i.type;if(d===v.Text||d===void 0)throw new SyntaxError(`Unexpected character: ${c}`);switch(d){case v.Identifier:case v.NumericLiteral:case v.BooleanLiteral:case v.StringLiteral:case v.CloseParen:case v.CloseSquareBracket:break;default:{++a;const m=l(ko);n.push(new un(`${c}${m}`,m.length>0?v.NumericLiteral:v.UnaryOperator));continue}}}for(const[d,m]of bg)if(r.slice(a,a+d.length)===d){n.push(new un(d,m)),a+=d.length;continue e}if(c==="'"||c==='"'){++a;const d=l(m=>m!==c);n.push(new un(d,v.StringLiteral)),++a;continue}if(ko(c)){const d=l(ko);n.push(new un(d,v.NumericLiteral));continue}if(rc(c)){const d=l(rc),m=Object.hasOwn(nc,d)?nc[d]:v.Identifier;m===v.In&&((s=n.at(-1))==null?void 0:s.type)===v.Not?(n.pop(),n.push(new un("not in",v.NotIn))):n.push(new un(d,m));continue}throw new SyntaxError(`Unexpected character: ${c}`)}return n}var pa=class{constructor(){z(this,"type","Statement")}},Og=class extends pa{constructor(t){super();z(this,"type","Program");this.body=t}},ac=class extends pa{constructor(t,n,r){super();z(this,"type","If");this.test=t,this.body=n,this.alternate=r}},Pg=class extends pa{constructor(t,n,r){super();z(this,"type","For");this.loopvar=t,this.iterable=n,this.body=r}},Lg=class extends pa{constructor(t,n){super();z(this,"type","Set");this.assignee=t,this.value=n}},vt=class extends pa{constructor(){super(...arguments);z(this,"type","Expression")}},Ig=class extends vt{constructor(t,n,r){super();z(this,"type","MemberExpression");this.object=t,this.property=n,this.computed=r}},Ag=class extends vt{constructor(t,n){super();z(this,"type","CallExpression");this.callee=t,this.args=n}},Pn=class extends vt{constructor(t){super();z(this,"type","Identifier");this.value=t}},fr=class extends vt{constructor(t){super();z(this,"type","Literal");this.value=t}},jg=class extends fr{constructor(){super(...arguments);z(this,"type","NumericLiteral")}},lc=class extends fr{constructor(){super(...arguments);z(this,"type","StringLiteral")}},oc=class extends fr{constructor(){super(...arguments);z(this,"type","BooleanLiteral")}},zg=class extends fr{constructor(){super(...arguments);z(this,"type","ArrayLiteral")}},ic=class extends fr{constructor(){super(...arguments);z(this,"type","TupleLiteral")}},Fg=class extends fr{constructor(){super(...arguments);z(this,"type","ObjectLiteral")}},kr=class extends vt{constructor(t,n,r){super();z(this,"type","BinaryExpression");this.operator=t,this.left=n,this.right=r}},Rg=class extends vt{constructor(t,n){super();z(this,"type","FilterExpression");this.operand=t,this.filter=n}},Dg=class extends vt{constructor(t,n,r){super();z(this,"type","TestExpression");this.operand=t,this.negate=n,this.test=r}},Wg=class extends vt{constructor(t,n){super();z(this,"type","UnaryExpression");this.operator=t,this.argument=n}},Ug=class extends vt{constructor(t=void 0,n=void 0,r=void 0){super();z(this,"type","SliceExpression");this.start=t,this.stop=n,this.step=r}},Vg=class extends vt{constructor(t,n){super();z(this,"type","KeywordArgumentExpression");this.key=t,this.value=n}};function Bg(e){const t=new Og([]);let n=0;function r(w,C){const L=e[n++];if(!L||L.type!==w)throw new Error(`Parser Error: ${C}. ${L.type} !== ${w}.`);return L}function a(){switch(e[n].type){case v.Text:return i();case v.OpenStatement:return s();case v.OpenExpression:return u();default:throw new SyntaxError(`Unexpected token type: ${e[n].type}`)}}function l(...w){return n+w.length<=e.length&&w.some((C,L)=>C!==e[n+L].type)}function o(...w){return n+w.length<=e.length&&w.every((C,L)=>C===e[n+L].type)}function i(){return new lc(r(v.Text,"Expected text token").value)}function s(){r(v.OpenStatement,"Expected opening statement token");let w;switch(e[n].type){case v.Set:++n,w=c(),r(v.CloseStatement,"Expected closing statement token");break;case v.If:++n,w=d(),r(v.OpenStatement,"Expected {% token"),r(v.EndIf,"Expected endif token"),r(v.CloseStatement,"Expected %} token");break;case v.For:++n,w=y(),r(v.OpenStatement,"Expected {% token"),r(v.EndFor,"Expected endfor token"),r(v.CloseStatement,"Expected %} token");break;default:throw new SyntaxError(`Unknown statement type: ${e[n].type}`)}return w}function u(){r(v.OpenExpression,"Expected opening expression token");const w=k();return r(v.CloseExpression,"Expected closing expression token"),w}function c(){const w=k();if(o(v.Equals)){++n;const C=c();return new Lg(w,C)}return w}function d(){var b,A,j,$,oe,on,it,Mn;const w=k();r(v.CloseStatement,"Expected closing statement token");const C=[],L=[];for(;!(((b=e[n])==null?void 0:b.type)===v.OpenStatement&&(((A=e[n+1])==null?void 0:A.type)===v.ElseIf||((j=e[n+1])==null?void 0:j.type)===v.Else||(($=e[n+1])==null?void 0:$.type)===v.EndIf));)C.push(a());if(((oe=e[n])==null?void 0:oe.type)===v.OpenStatement&&((on=e[n+1])==null?void 0:on.type)!==v.EndIf)if(++n,o(v.ElseIf))r(v.ElseIf,"Expected elseif token"),L.push(d());else for(r(v.Else,"Expected else token"),r(v.CloseStatement,"Expected closing statement token");!(((it=e[n])==null?void 0:it.type)===v.OpenStatement&&((Mn=e[n+1])==null?void 0:Mn.type)===v.EndIf);)L.push(a());return new ac(w,C,L)}function m(w=!1){const C=w?ot:k,L=[C()],b=o(v.Comma);for(;b&&(++n,L.push(C()),!!o(v.Comma)););return b?new ic(L):L[0]}function y(){const w=m(!0);if(!(w instanceof Pn||w instanceof ic))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${w.type} instead`);r(v.In,"Expected `in` keyword following loop variable");const C=k();r(v.CloseStatement,"Expected closing statement token");const L=[];for(;l(v.OpenStatement,v.EndFor);)L.push(a());return new Pg(w,C,L)}function k(){return S()}function S(){const w=T();if(o(v.If)){++n;const C=T();r(v.Else,"Expected else token");const L=T();return new ac(C,[w],[L])}return w}function T(){let w=p();for(;o(v.Or);){const C=e[n];++n;const L=p();w=new kr(C,w,L)}return w}function p(){let w=f();for(;o(v.And);){const C=e[n];++n;const L=f();w=new kr(C,w,L)}return w}function f(){let w;for(;o(v.Not);){const C=e[n];++n;const L=f();w=new Wg(C,L)}return w??h()}function h(){let w=x();for(;o(v.ComparisonBinaryOperator)||o(v.In)||o(v.NotIn);){const C=e[n];++n;const L=x();w=new kr(C,w,L)}return w}function x(){let w=ve();for(;o(v.AdditiveBinaryOperator);){const C=e[n];++n;const L=ve();w=new kr(C,w,L)}return w}function N(){const w=F();return o(v.OpenParen)?M(w):w}function M(w){let C=new Ag(w,O());return o(v.OpenParen)&&(C=M(C)),C}function O(){r(v.OpenParen,"Expected opening parenthesis for arguments list");const w=I();return r(v.CloseParen,"Expected closing parenthesis for arguments list"),w}function I(){const w=[];for(;!o(v.CloseParen);){let C=k();if(o(v.Equals)){if(++n,!(C instanceof Pn))throw new SyntaxError("Expected identifier for keyword argument");const L=k();C=new Vg(C,L)}w.push(C),o(v.Comma)&&++n}return w}function H(){const w=[];let C=!1;for(;!o(v.CloseSquareBracket);)o(v.Colon)?(w.push(void 0),++n,C=!0):(w.push(k()),o(v.Colon)&&(++n,C=!0));if(w.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(C){if(w.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new Ug(...w)}return w[0]}function F(){let w=ot();for(;o(v.Dot)||o(v.OpenSquareBracket);){const C=e[n];++n;let L;const b=C.type!==v.Dot;if(b)L=H(),r(v.CloseSquareBracket,"Expected closing square bracket");else if(L=ot(),L.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");w=new Ig(w,L,b)}return w}function ve(){let w=lt();for(;o(v.MultiplicativeBinaryOperator);){const C=e[n];++n;const L=lt();w=new kr(C,w,L)}return w}function lt(){let w=yt();for(;o(v.Is);){++n;const C=o(v.Not);C&&++n;let L=ot();if(L instanceof oc&&(L=new Pn(L.value.toString())),!(L instanceof Pn))throw new SyntaxError("Expected identifier for the test");w=new Dg(w,C,L)}return w}function yt(){let w=N();for(;o(v.Pipe);){++n;let C=ot();if(!(C instanceof Pn))throw new SyntaxError("Expected identifier for the filter");o(v.OpenParen)&&(C=M(C)),w=new Rg(w,C)}return w}function ot(){const w=e[n];switch(w.type){case v.NumericLiteral:return++n,new jg(Number(w.value));case v.StringLiteral:return++n,new lc(w.value);case v.BooleanLiteral:return++n,new oc(w.value==="true");case v.Identifier:return++n,new Pn(w.value);case v.OpenParen:{++n;const C=m();if(e[n].type!==v.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${e[n].type} instead`);return++n,C}case v.OpenSquareBracket:{++n;const C=[];for(;!o(v.CloseSquareBracket);)C.push(k()),o(v.Comma)&&++n;return++n,new zg(C)}case v.OpenCurlyBracket:{++n;const C=new Map;for(;!o(v.CloseCurlyBracket);){const L=k();r(v.Colon,"Expected colon between key and value in object literal");const b=k();C.set(L,b),o(v.Comma)&&++n}return++n,new Fg(C)}default:throw new SyntaxError(`Unexpected token: ${w.type}`)}}for(;n=0?(t=(t??(t=0))<0?Math.max(e.length+t,0):Math.min(t,e.length),n=(n??(n=e.length))<0?Math.max(e.length+n,0):Math.min(n,e.length)):(t=(t??(t=e.length-1))<0?Math.max(e.length+t,-1):Math.min(t,e.length-1),n=(n??(n=-1))<-1?Math.max(e.length+n,-1):Math.min(n,e.length-1));const l=[];for(let o=t;a*ot.toUpperCase())}var Lt=class{constructor(e=void 0){z(this,"type","RuntimeValue");z(this,"value");z(this,"builtins",new Map);this.value=e}__bool__(){return new ie(!!this.value)}},Y=class extends Lt{constructor(){super(...arguments);z(this,"type","NumericValue")}},W=class extends Lt{constructor(){super(...arguments);z(this,"type","StringValue");z(this,"builtins",new Map([["upper",new Et(()=>new W(this.value.toUpperCase()))],["lower",new Et(()=>new W(this.value.toLowerCase()))],["strip",new Et(()=>new W(this.value.trim()))],["title",new Et(()=>new W(ap(this.value)))],["length",new Y(this.value.length)]]))}},ie=class extends Lt{constructor(){super(...arguments);z(this,"type","BooleanValue")}},qe=class extends Lt{constructor(){super(...arguments);z(this,"type","ObjectValue");z(this,"builtins",new Map([["get",new Et(([t,n])=>{if(!(t instanceof W))throw new Error(`Object key must be a string: got ${t.type}`);return this.value.get(t.value)??n??new Dr})],["items",new Et(()=>new re(Array.from(this.value.entries()).map(([t,n])=>new re([new W(t),n]))))]]))}__bool__(){return new ie(this.value.size>0)}},re=class extends Lt{constructor(){super(...arguments);z(this,"type","ArrayValue");z(this,"builtins",new Map([["length",new Y(this.value.length)]]))}__bool__(){return new ie(this.value.length>0)}},Gg=class extends re{constructor(){super(...arguments);z(this,"type","TupleValue")}},Et=class extends Lt{constructor(){super(...arguments);z(this,"type","FunctionValue")}},Dr=class extends Lt{constructor(){super(...arguments);z(this,"type","NullValue")}},Qe=class extends Lt{constructor(){super(...arguments);z(this,"type","UndefinedValue")}},Si=class{constructor(e){z(this,"variables",new Map([["namespace",new Et(e=>{if(e.length===0)return new qe(new Map);if(e.length!==1||!(e[0]instanceof qe))throw new Error("`namespace` expects either zero arguments or a single object argument");return e[0]})]]));z(this,"tests",new Map([["boolean",e=>e.type==="BooleanValue"],["callable",e=>e instanceof Et],["odd",e=>{if(e.type!=="NumericValue")throw new Error(`Cannot apply test "odd" to type: ${e.type}`);return e.value%2!==0}],["even",e=>{if(e.type!=="NumericValue")throw new Error(`Cannot apply test "even" to type: ${e.type}`);return e.value%2===0}],["false",e=>e.type==="BooleanValue"&&!e.value],["true",e=>e.type==="BooleanValue"&&e.value],["number",e=>e.type==="NumericValue"],["integer",e=>e.type==="NumericValue"&&Number.isInteger(e.value)],["iterable",e=>e instanceof re||e instanceof W],["lower",e=>{const t=e.value;return e.type==="StringValue"&&t===t.toLowerCase()}],["upper",e=>{const t=e.value;return e.type==="StringValue"&&t===t.toUpperCase()}],["none",e=>e.type==="NullValue"],["defined",e=>e.type!=="UndefinedValue"],["undefined",e=>e.type==="UndefinedValue"],["equalto",(e,t)=>e.value===t.value]]));this.parent=e}set(e,t){return this.declareVariable(e,Ya(t))}declareVariable(e,t){if(this.variables.has(e))throw new SyntaxError(`Variable already declared: ${e}`);return this.variables.set(e,t),t}setVariable(e,t){return this.variables.set(e,t),t}resolve(e){if(this.variables.has(e))return this;if(this.parent)return this.parent.resolve(e);throw new Error(`Unknown variable: ${e}`)}lookupVariable(e){try{return this.resolve(e).variables.get(e)??new Qe}catch{return new Qe}}},Hg=class{constructor(e){z(this,"global");this.global=e??new Si}run(e){return this.evaluate(e,this.global)}evaluateBinaryExpression(e,t){const n=this.evaluate(e.left,t);switch(e.operator.value){case"and":return n.__bool__().value?this.evaluate(e.right,t):n;case"or":return n.__bool__().value?n:this.evaluate(e.right,t)}const r=this.evaluate(e.right,t);switch(e.operator.value){case"==":return new ie(n.value==r.value);case"!=":return new ie(n.value!=r.value)}if(n instanceof Qe||r instanceof Qe)throw new Error("Cannot perform operation on undefined values");if(n instanceof Dr||r instanceof Dr)throw new Error("Cannot perform operation on null values");if(n instanceof Y&&r instanceof Y)switch(e.operator.value){case"+":return new Y(n.value+r.value);case"-":return new Y(n.value-r.value);case"*":return new Y(n.value*r.value);case"/":return new Y(n.value/r.value);case"%":return new Y(n.value%r.value);case"<":return new ie(n.value":return new ie(n.value>r.value);case">=":return new ie(n.value>=r.value);case"<=":return new ie(n.value<=r.value)}else if(n instanceof re&&r instanceof re)switch(e.operator.value){case"+":return new re(n.value.concat(r.value))}else if(r instanceof re){const a=r.value.find(l=>l.value===n.value)!==void 0;switch(e.operator.value){case"in":return new ie(a);case"not in":return new ie(!a)}}if(n instanceof W||r instanceof W)switch(e.operator.value){case"+":return new W(n.value.toString()+r.value.toString())}if(n instanceof W&&r instanceof W)switch(e.operator.value){case"in":return new ie(r.value.includes(n.value));case"not in":return new ie(!r.value.includes(n.value))}if(n instanceof W&&r instanceof qe)switch(e.operator.value){case"in":return new ie(r.value.has(n.value));case"not in":return new ie(!r.value.has(n.value))}throw new SyntaxError(`Unknown operator "${e.operator.value}" between ${n.type} and ${r.type}`)}evaluateFilterExpression(e,t){const n=this.evaluate(e.operand,t);if(e.filter.type==="Identifier"){const r=e.filter;if(n instanceof re)switch(r.value){case"list":return n;case"first":return n.value[0];case"last":return n.value[n.value.length-1];case"length":return new Y(n.value.length);case"reverse":return new re(n.value.reverse());case"sort":return new re(n.value.sort((a,l)=>{if(a.type!==l.type)throw new Error(`Cannot compare different types: ${a.type} and ${l.type}`);switch(a.type){case"NumericValue":return a.value-l.value;case"StringValue":return a.value.localeCompare(l.value);default:throw new Error(`Cannot compare type: ${a.type}`)}}));default:throw new Error(`Unknown ArrayValue filter: ${r.value}`)}else if(n instanceof W)switch(r.value){case"length":return new Y(n.value.length);case"upper":return new W(n.value.toUpperCase());case"lower":return new W(n.value.toLowerCase());case"title":return new W(ap(n.value));case"capitalize":return new W(n.value.charAt(0).toUpperCase()+n.value.slice(1));case"trim":return new W(n.value.trim());default:throw new Error(`Unknown StringValue filter: ${r.value}`)}else if(n instanceof Y)switch(r.value){case"abs":return new Y(Math.abs(n.value));default:throw new Error(`Unknown NumericValue filter: ${r.value}`)}else if(n instanceof qe)switch(r.value){case"items":return new re(Array.from(n.value.entries()).map(([a,l])=>new re([new W(a),l])));case"length":return new Y(n.value.size);default:throw new Error(`Unknown ObjectValue filter: ${r.value}`)}throw new Error(`Cannot apply filter "${r.value}" to type: ${n.type}`)}else if(e.filter.type==="CallExpression"){const r=e.filter;if(r.callee.type!=="Identifier")throw new Error(`Unknown filter: ${r.callee.type}`);const a=r.callee.value;if(n instanceof re){switch(a){case"selectattr":{if(n.value.some(c=>!(c instanceof qe)))throw new Error("`selectattr` can only be applied to array of objects");if(r.args.some(c=>c.type!=="StringLiteral"))throw new Error("arguments of `selectattr` must be strings");const[l,o,i]=r.args.map(c=>this.evaluate(c,t));let s;if(o){const c=t.tests.get(o.value);if(!c)throw new Error(`Unknown test: ${o.value}`);s=c}else s=(...c)=>c[0].__bool__().value;const u=n.value.filter(c=>{const d=c.value.get(l.value);return d?s(d,i):!1});return new re(u)}}throw new Error(`Unknown ArrayValue filter: ${a}`)}else throw new Error(`Cannot apply filter "${a}" to type: ${n.type}`)}throw new Error(`Unknown filter: ${e.filter.type}`)}evaluateTestExpression(e,t){const n=this.evaluate(e.operand,t),r=t.tests.get(e.test.value);if(!r)throw new Error(`Unknown test: ${e.test.value}`);const a=r(n);return new ie(e.negate?!a:a)}evaluateUnaryExpression(e,t){const n=this.evaluate(e.argument,t);switch(e.operator.value){case"not":return new ie(!n.value);default:throw new SyntaxError(`Unknown operator: ${e.operator.value}`)}}evalProgram(e,t){return this.evaluateBlock(e.body,t)}evaluateBlock(e,t){let n="";for(const r of e){const a=this.evaluate(r,t);a.type!=="NullValue"&&a.type!=="UndefinedValue"&&(n+=a.value)}return new W(n)}evaluateIdentifier(e,t){return t.lookupVariable(e.value)}evaluateCallExpression(e,t){const n=[],r=new Map;for(const l of e.args)if(l.type==="KeywordArgumentExpression"){const o=l;r.set(o.key.value,this.evaluate(o.value,t))}else n.push(this.evaluate(l,t));r.size>0&&n.push(new qe(r));const a=this.evaluate(e.callee,t);if(a.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${a.type}`);return a.value(n,t)}evaluateSliceExpression(e,t,n){if(!(e instanceof re||e instanceof W))throw new Error("Slice object must be an array or string");const r=this.evaluate(t.start,n),a=this.evaluate(t.stop,n),l=this.evaluate(t.step,n);if(!(r instanceof Y||r instanceof Qe))throw new Error("Slice start must be numeric or undefined");if(!(a instanceof Y||a instanceof Qe))throw new Error("Slice stop must be numeric or undefined");if(!(l instanceof Y||l instanceof Qe))throw new Error("Slice step must be numeric or undefined");return e instanceof re?new re(sc(e.value,r.value,a.value,l.value)):new W(sc(Array.from(e.value),r.value,a.value,l.value).join(""))}evaluateMemberExpression(e,t){const n=this.evaluate(e.object,t);let r;if(e.computed){if(e.property.type==="SliceExpression")return this.evaluateSliceExpression(n,e.property,t);r=this.evaluate(e.property,t)}else r=new W(e.property.value);let a;if(n instanceof qe){if(!(r instanceof W))throw new Error(`Cannot access property with non-string: got ${r.type}`);a=n.value.get(r.value)??n.builtins.get(r.value)}else if(n instanceof re||n instanceof W)if(r instanceof Y)a=n.value.at(r.value),n instanceof W&&(a=new W(n.value.at(r.value)));else if(r instanceof W)a=n.builtins.get(r.value);else throw new Error(`Cannot access property with non-string/non-number: got ${r.type}`);else{if(!(r instanceof W))throw new Error(`Cannot access property with non-string: got ${r.type}`);a=n.builtins.get(r.value)}return a instanceof Lt?a:new Qe}evaluateSet(e,t){const n=this.evaluate(e.value,t);if(e.assignee.type==="Identifier"){const r=e.assignee.value;t.setVariable(r,n)}else if(e.assignee.type==="MemberExpression"){const r=e.assignee,a=this.evaluate(r.object,t);if(!(a instanceof qe))throw new Error("Cannot assign to member of non-object");if(r.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");a.value.set(r.property.value,n)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(e.assignee)}`);return new Dr}evaluateIf(e,t){const n=this.evaluate(e.test,t);return this.evaluateBlock(n.__bool__().value?e.body:e.alternate,t)}evaluateFor(e,t){const n=new Si(t),r=this.evaluate(e.iterable,n);if(!(r instanceof re))throw new Error(`Expected iterable type in for loop: got ${r.type}`);let a="";for(let l=0;l0?r.value[l-1]:new Qe],["nextitem",lc.value.length?"few":"many"} items to unpack`);for(let d=0;dthis.evaluate(n,t)));case"TupleLiteral":return new Gg(e.value.map(n=>this.evaluate(n,t)));case"ObjectLiteral":{const n=new Map;for(const[r,a]of e.value){const l=this.evaluate(r,t);if(!(l instanceof W))throw new Error(`Object keys must be strings: got ${l.type}`);n.set(l.value,this.evaluate(a,t))}return new qe(n)}case"Identifier":return this.evaluateIdentifier(e,t);case"CallExpression":return this.evaluateCallExpression(e,t);case"MemberExpression":return this.evaluateMemberExpression(e,t);case"UnaryExpression":return this.evaluateUnaryExpression(e,t);case"BinaryExpression":return this.evaluateBinaryExpression(e,t);case"FilterExpression":return this.evaluateFilterExpression(e,t);case"TestExpression":return this.evaluateTestExpression(e,t);default:throw new SyntaxError(`Unknown node type: ${e.type}`)}}};function Ya(e){switch(typeof e){case"number":return new Y(e);case"string":return new W(e);case"boolean":return new ie(e);case"object":return e===null?new Dr:Array.isArray(e)?new re(e.map(Ya)):new qe(new Map(Object.entries(e).map(([t,n])=>[t,Ya(n)])));case"function":return new Et((t,n)=>{const r=e(...t.map(a=>a.value))??null;return Ya(r)});default:throw new Error(`Cannot convert to runtime value: ${e}`)}}var Zg=class{constructor(e){z(this,"parsed");const t=Mg(e,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=Bg(t)}render(e){const t=new Si;t.set("false",!1),t.set("true",!0),t.set("raise_exception",a=>{throw new Error(a)}),t.set("range",$g);for(const[a,l]of Object.entries(e))t.set(a,l);return new Hg(t).run(this.parsed).value}},ae=(e=>(e[e.GUIDE=0]="GUIDE",e[e.CHAT=1]="CHAT",e[e.MODEL=2]="MODEL",e[e.LOG=3]="LOG",e))(ae||{}),q=(e=>(e[e.NOT_DOWNLOADED=0]="NOT_DOWNLOADED",e[e.DOWNLOADING=1]="DOWNLOADING",e[e.READY=2]="READY",e[e.LOADING=3]="LOADING",e[e.LOADED=4]="LOADED",e))(q||{});const Yg=""+new URL("wllama-B8WIEWzk.js",import.meta.url).href,Xg=""+new URL("wllama-CmTXw8OL.wasm",import.meta.url).href,Kg=""+new URL("wllama-C6OVVjVe.js",import.meta.url).href,Qg=""+new URL("wllama-nQrYwh2_.wasm",import.meta.url).href,Jg="data:text/javascript;base64,InVzZSBzdHJpY3QiO3ZhciBNb2R1bGU9e307dmFyIEVOVklST05NRU5UX0lTX05PREU9dHlwZW9mIHByb2Nlc3M9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGU9PSJzdHJpbmciO2lmKEVOVklST05NRU5UX0lTX05PREUpe2NvbnN0e2NyZWF0ZVJlcXVpcmU6Y3JlYXRlUmVxdWlyZX09YXdhaXQgaW1wb3J0KCJtb2R1bGUiKTt2YXIgcmVxdWlyZT1jcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7dmFyIG5vZGVXb3JrZXJUaHJlYWRzPXJlcXVpcmUoIndvcmtlcl90aHJlYWRzIik7dmFyIHBhcmVudFBvcnQ9bm9kZVdvcmtlclRocmVhZHMucGFyZW50UG9ydDtwYXJlbnRQb3J0Lm9uKCJtZXNzYWdlIixkYXRhPT5vbm1lc3NhZ2Uoe2RhdGE6ZGF0YX0pKTt2YXIgZnM9cmVxdWlyZSgiZnMiKTt2YXIgdm09cmVxdWlyZSgidm0iKTtPYmplY3QuYXNzaWduKGdsb2JhbCx7c2VsZjpnbG9iYWwscmVxdWlyZTpyZXF1aXJlLE1vZHVsZTpNb2R1bGUsbG9jYXRpb246e2hyZWY6dHlwZW9mIF9fZmlsZW5hbWUhPT0idW5kZWZpbmVkIj9fX2ZpbGVuYW1lOmltcG9ydC5tZXRhLnVybH0sV29ya2VyOm5vZGVXb3JrZXJUaHJlYWRzLldvcmtlcixpbXBvcnRTY3JpcHRzOmY9PnZtLnJ1bkluVGhpc0NvbnRleHQoZnMucmVhZEZpbGVTeW5jKGYsInV0ZjgiKSx7ZmlsZW5hbWU6Zn0pLHBvc3RNZXNzYWdlOm1zZz0+cGFyZW50UG9ydC5wb3N0TWVzc2FnZShtc2cpLHBlcmZvcm1hbmNlOmdsb2JhbC5wZXJmb3JtYW5jZXx8e25vdzpEYXRlLm5vd319KX12YXIgaW5pdGlhbGl6ZWRKUz1mYWxzZTtmdW5jdGlvbiB0aHJlYWRQcmludEVyciguLi5hcmdzKXt2YXIgdGV4dD1hcmdzLmpvaW4oIiAiKTtpZihFTlZJUk9OTUVOVF9JU19OT0RFKXtmcy53cml0ZVN5bmMoMix0ZXh0KyJcbiIpO3JldHVybn1jb25zb2xlLmVycm9yKHRleHQpfWZ1bmN0aW9uIHRocmVhZEFsZXJ0KC4uLmFyZ3Mpe3ZhciB0ZXh0PWFyZ3Muam9pbigiICIpO3Bvc3RNZXNzYWdlKHtjbWQ6ImFsZXJ0Iix0ZXh0OnRleHQsdGhyZWFkSWQ6TW9kdWxlWyJfcHRocmVhZF9zZWxmIl0oKX0pfXZhciBlcnI9dGhyZWFkUHJpbnRFcnI7c2VsZi5hbGVydD10aHJlYWRBbGVydDtNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdPShpbmZvLHJlY2VpdmVJbnN0YW5jZSk9Pnt2YXIgbW9kdWxlPU1vZHVsZVsid2FzbU1vZHVsZSJdO01vZHVsZVsid2FzbU1vZHVsZSJdPW51bGw7dmFyIGluc3RhbmNlPW5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUsaW5mbyk7cmV0dXJuIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSl9O3NlbGYub251bmhhbmRsZWRyZWplY3Rpb249ZT0+e3Rocm93IGUucmVhc29ufHxlfTtmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGUpe3RyeXtpZihlLmRhdGEuY21kPT09ImxvYWQiKXtsZXQgbWVzc2FnZVF1ZXVlPVtdO3NlbGYub25tZXNzYWdlPWU9Pm1lc3NhZ2VRdWV1ZS5wdXNoKGUpO3NlbGYuc3RhcnRXb3JrZXI9aW5zdGFuY2U9PntNb2R1bGU9aW5zdGFuY2U7cG9zdE1lc3NhZ2UoeyJjbWQiOiJsb2FkZWQifSk7Zm9yKGxldCBtc2cgb2YgbWVzc2FnZVF1ZXVlKXtoYW5kbGVNZXNzYWdlKG1zZyl9c2VsZi5vbm1lc3NhZ2U9aGFuZGxlTWVzc2FnZX07TW9kdWxlWyJ3YXNtTW9kdWxlIl09ZS5kYXRhLndhc21Nb2R1bGU7Zm9yKGNvbnN0IGhhbmRsZXIgb2YgZS5kYXRhLmhhbmRsZXJzKXtNb2R1bGVbaGFuZGxlcl09KC4uLmFyZ3MpPT57cG9zdE1lc3NhZ2Uoe2NtZDoiY2FsbEhhbmRsZXIiLGhhbmRsZXI6aGFuZGxlcixhcmdzOmFyZ3N9KX19TW9kdWxlWyJ3YXNtTWVtb3J5Il09ZS5kYXRhLndhc21NZW1vcnk7TW9kdWxlWyJidWZmZXIiXT1Nb2R1bGVbIndhc21NZW1vcnkiXS5idWZmZXI7TW9kdWxlWyJFTlZJUk9OTUVOVF9JU19QVEhSRUFEIl09dHJ1ZTsoZS5kYXRhLnVybE9yQmxvYj9pbXBvcnQoZS5kYXRhLnVybE9yQmxvYik6aW1wb3J0KCIuL3dsbGFtYS5qcyIpKS50aGVuKGV4cG9ydHM9PmV4cG9ydHMuZGVmYXVsdChNb2R1bGUpKX1lbHNlIGlmKGUuZGF0YS5jbWQ9PT0icnVuIil7TW9kdWxlWyJfX2Vtc2NyaXB0ZW5fdGhyZWFkX2luaXQiXShlLmRhdGEucHRocmVhZF9wdHIsMCwwLDEpO01vZHVsZVsiX19lbXNjcmlwdGVuX3RocmVhZF9tYWlsYm94X2F3YWl0Il0oZS5kYXRhLnB0aHJlYWRfcHRyKTtNb2R1bGVbImVzdGFibGlzaFN0YWNrU3BhY2UiXSgpO01vZHVsZVsiUFRocmVhZCJdLnJlY2VpdmVPYmplY3RUcmFuc2ZlcihlLmRhdGEpO01vZHVsZVsiUFRocmVhZCJdLnRocmVhZEluaXRUTFMoKTtpZighaW5pdGlhbGl6ZWRKUyl7aW5pdGlhbGl6ZWRKUz10cnVlfXRyeXtNb2R1bGVbImludm9rZUVudHJ5UG9pbnQiXShlLmRhdGEuc3RhcnRfcm91dGluZSxlLmRhdGEuYXJnKX1jYXRjaChleCl7aWYoZXghPSJ1bndpbmQiKXt0aHJvdyBleH19fWVsc2UgaWYoZS5kYXRhLmNtZD09PSJjYW5jZWwiKXtpZihNb2R1bGVbIl9wdGhyZWFkX3NlbGYiXSgpKXtNb2R1bGVbIl9fZW1zY3JpcHRlbl90aHJlYWRfZXhpdCJdKC0xKX19ZWxzZSBpZihlLmRhdGEudGFyZ2V0PT09InNldGltbWVkaWF0ZSIpe31lbHNlIGlmKGUuZGF0YS5jbWQ9PT0iY2hlY2tNYWlsYm94Iil7aWYoaW5pdGlhbGl6ZWRKUyl7TW9kdWxlWyJjaGVja01haWxib3giXSgpfX1lbHNlIGlmKGUuZGF0YS5jbWQpe2Vycihgd29ya2VyLmpzIHJlY2VpdmVkIHVua25vd24gY29tbWFuZCAke2UuZGF0YS5jbWR9YCk7ZXJyKGUuZGF0YSl9fWNhdGNoKGV4KXtNb2R1bGVbIl9fZW1zY3JpcHRlbl90aHJlYWRfY3Jhc2hlZCJdPy4oKTt0aHJvdyBleH19c2VsZi5vbm1lc3NhZ2U9aGFuZGxlTWVzc2FnZTsK",lp={"single-thread/wllama.js":Yg,"single-thread/wllama.wasm":Xg,"multi-thread/wllama.js":Kg,"multi-thread/wllama.wasm":Qg,"multi-thread/wllama.worker.mjs":Jg},op=2*1024*1024*1024,qg=[{url:"https://huggingface.co/HuggingFaceTB/smollm-360M-instruct-v0.2-Q8_0-GGUF/resolve/main/smollm-360m-instruct-add-basics-q8_0.gguf",size:386405440},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/qwen2-1_5b-instruct-q4_k_m-00001-of-00004.gguf",size:986046272},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/gemma-2-2b-it-abliterated-Q4_K_M-00001-of-00004.gguf",size:1708583264},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/neuralreyna-mini-1.8b-v0.3.q4_k_m-00001-of-00005.gguf",size:1217753472},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/Phi-3.1-mini-128k-instruct-Q3_K_M-00001-of-00008.gguf",size:1955478176},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/meta-llama-3.1-8b-instruct-abliterated.Q2_K-00001-of-00014.gguf",size:3179133600},{url:"https://huggingface.co/ngxson/wllama-split-models/resolve/main/Meta-Llama-3.1-8B-Instruct-Q2_K-00001-of-00014.gguf",size:3179138048}],ip={nThreads:-1,nContext:4096,nPredict:4096,nBatch:128,temperature:.2},e0=`{% for message in messages %}{{'<|im_start|>' + message['role'] + ' +' + message['content'] + '<|im_end|>' + ' +'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant +' }}{% endif %}`,t0=e=>B.useEffect(()=>{e()},[]),Be={save(e,t){localStorage.setItem(e,JSON.stringify(t))},load(e,t){return localStorage[e]?JSON.parse(localStorage[e]):t}},n0=()=>Be.load("welcome",!0)?ae.GUIDE:ae.MODEL,r0=async(e,t)=>new Zg(e.getChatTemplate()??e0).render({messages:t,bos_token:await e.detokenize([e.getBOS()]),eos_token:await e.detokenize([e.getEOS()]),add_generation_prompt:!0}),a0=e=>{const t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"];let n=e,r=0;for(;n>=1024&&r{if(t.startsWith)return t;try{return JSON.stringify(t,null,2)}catch{return""}}).join(" ")}},sp=B.createContext({}),l0=({children:e})=>{const[t,n]=B.useState(Be.load("conversations",{})),r=B.useMemo(()=>Object.values(t).sort((c,d)=>{const m=c.messages[c.messages.length-1];return d.messages[d.messages.length-1].id-m.id}),[t]),a=c=>{n(d=>{const m=c(d);return Be.save("conversations",m),m})},l=c=>{const d={id:Date.now(),messages:[c]};return a(m=>({...m,[d.id]:d})),d},o=c=>{a(d=>{const m={...d};return delete m[c],m})},i=(c,d)=>{a(m=>{if(m[c]){const y={...m},k=y[c];return y[c].messages=[...k.messages,d],y}else return m})},s=(c,d,m)=>{a(y=>{if(y[c]){const k={...y},T=k[c].messages.map(p=>p.id===d?{...p,content:m}:p);return k[c].messages=T,k}else return y})},u=c=>t[c];return g.jsx(sp.Provider,{value:{conversations:r,newConversation:l,deleteConversation:o,addMessageToConversation:i,getConversationById:u,editMessageInConversation:s},children:e})},up=()=>B.useContext(sp),o0=e=>{const t=e.reduce((r,a)=>r+a.length,0),n=new Uint8Array(t);n.set(e[0],0);for(let r=1;ri0.decode(e),s0=e=>{e.every(n=>!!n.name)&&e.sort((r,a)=>r.name.localeCompare(a.name))},Sr=e=>new URL(e,document.baseURI).href,So=(e,t)=>Array(Math.max(t-String(e).length+1,0)).join("0")+e,u0=()=>(async e=>{try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch{return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),c0=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),f0=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),d0=async()=>{if(!await c0())throw new Error("WebAssembly runtime does not support exception handling");if(!await f0())throw new Error("WebAssembly runtime does not support SIMD")},p0=()=>js()||!!navigator.userAgent.match(/Version\/([0-9\._]+).*Safari/),js=()=>!!navigator.userAgent.match(/Version\/([0-9\._]+).*Mobile.*Safari.*/),m0=` +const fsNameToFile = {}; // map Name => File +const fsIdToFile = {}; // map ID => File +let currFileId = 0; + +// Patch and redirect memfs calls to wllama +const patchMEMFS = () => { + const m = wModule; + // save functions + m.MEMFS.stream_ops._read = m.MEMFS.stream_ops.read; + m.MEMFS.stream_ops._write = m.MEMFS.stream_ops.write; + m.MEMFS.stream_ops._llseek = m.MEMFS.stream_ops.llseek; + m.MEMFS.stream_ops._allocate = m.MEMFS.stream_ops.allocate; + m.MEMFS.stream_ops._mmap = m.MEMFS.stream_ops.mmap; + m.MEMFS.stream_ops._msync = m.MEMFS.stream_ops.msync; + + const patchStream = (stream) => { + const name = stream.node.name; + if (fsNameToFile[name]) { + const f = fsNameToFile[name]; + stream.node.contents = m.HEAPU8.subarray(f.ptr, f.ptr + f.size); + stream.node.usedBytes = f.size; + } + }; + + // replace "read" functions + m.MEMFS.stream_ops.read = function (stream, buffer, offset, length, position) { + patchStream(stream); + return m.MEMFS.stream_ops._read(stream, buffer, offset, length, position); + }; + m.MEMFS.ops_table.file.stream.read = m.MEMFS.stream_ops.read; + + // replace "llseek" functions + m.MEMFS.stream_ops.llseek = function (stream, offset, whence) { + patchStream(stream); + return m.MEMFS.stream_ops._llseek(stream, offset, whence); + }; + m.MEMFS.ops_table.file.stream.llseek = m.MEMFS.stream_ops.llseek; + + // replace "mmap" functions + m.MEMFS.stream_ops.mmap = function (stream, length, position, prot, flags) { + patchStream(stream); + const name = stream.node.name; + if (fsNameToFile[name]) { + const f = fsNameToFile[name]; + return { + ptr: f.ptr + position, + allocated: false, + }; + } else { + return m.MEMFS.stream_ops._mmap(stream, length, position, prot, flags); + } + }; + m.MEMFS.ops_table.file.stream.mmap = m.MEMFS.stream_ops.mmap; + + // mount FS + m.FS.mkdir('/models'); + m.FS.mount(m.MEMFS, { root: '.' }, '/models'); +}; + +// Allocate a new file in wllama heapfs, returns file ID +const heapfsAlloc = (name, size) => { + if (size < 1) { + throw new Error('File size must be bigger than 0'); + } + const m = wModule; + const ptr = m.mmapAlloc(size); + const file = { + ptr: ptr, + size: size, + id: currFileId++, + }; + fsIdToFile[file.id] = file; + fsNameToFile[name] = file; + return file.id; +}; + +// Add new file to wllama heapfs, return number of written bytes +const heapfsWrite = (id, buffer, offset) => { + const m = wModule; + if (fsIdToFile[id]) { + const { ptr, size } = fsIdToFile[id]; + const afterWriteByte = offset + buffer.byteLength; + if (afterWriteByte > size) { + throw new Error(\`File ID \${id} write out of bound, afterWriteByte = \${afterWriteByte} while size = \${size}\`); + } + m.HEAPU8.set(buffer, ptr + offset); + return buffer.byteLength; + } else { + throw new Error(\`File ID \${id} not found in heapfs\`); + } +}; +`,h0=` +// send message back to main thread +const msg = (data) => postMessage(data); + +// Convert CPP log into JS log +const cppLogToJSLog = (line) => { + const matched = line.match(/@@(DEBUG|INFO|WARN|ERROR)@@(.*)/); + return !!matched + ? { + level: (matched[1] === 'INFO' ? 'debug' : matched[1]).toLowerCase(), + text: matched[2], + } + : { level: 'log', text: line }; +}; + +// Get module config that forwards stdout/err to main thread +const getWModuleConfig = (pathConfig, pthreadPoolSize) => { + if (!pathConfig['wllama.js']) { + throw new Error('"wllama.js" is missing in pathConfig'); + } + return { + noInitialRun: true, + print: function (text) { + if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); + msg({ verb: 'console.log', args: [text] }); + }, + printErr: function (text) { + if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' '); + const logLine = cppLogToJSLog(text); + msg({ verb: 'console.' + logLine.level, args: [logLine.text] }); + }, + locateFile: function (filename, basePath) { + const p = pathConfig[filename]; + const truncate = (str) => str.length > 128 ? \`\${str.substr(0, 128)}...\` : str; + msg({ verb: 'console.debug', args: [\`Loading "\${filename}" from "\${truncate(p)}"\`] }); + return p; + }, + mainScriptUrlOrBlob: pathConfig['wllama.js'], + pthreadPoolSize, + wasmMemory: pthreadPoolSize > 1 ? getWasmMemory() : null, + onAbort: function (text) { + msg({ verb: 'signal.abort', args: [text] }); + }, + }; +}; + +// Get the memory to be used by wasm. (Only used in multi-thread mode) +// Because we have a weird OOM issue on iOS, we need to try some values +// See: https://github.com/emscripten-core/emscripten/issues/19144 +// https://github.com/godotengine/godot/issues/70621 +const getWasmMemory = () => { + let minBytes = 128 * 1024 * 1024; + let maxBytes = 4096 * 1024 * 1024; + let stepBytes = 128 * 1024 * 1024; + while (maxBytes > minBytes) { + try { + const wasmMemory = new WebAssembly.Memory({ + initial: minBytes / 65536, + maximum: maxBytes / 65536, + shared: true, + }); + return wasmMemory; + } catch (e) { + maxBytes -= stepBytes; + continue; // retry + } + } + throw new Error('Cannot allocate WebAssembly.Memory'); +}; +`,g0=` +// Start the main llama.cpp +let wModule; +let wllamaStart; +let wllamaAction; +let wllamaExit; +let wllamaDebug; + +${h0} + +${m0} + +const callWrapper = (name, ret, args) => { + const fn = wModule.cwrap(name, ret, args); + return async (action, req) => { + let result; + try { + if (args.length === 2) { + result = await fn(action, req); + } else { + result = fn(); + } + } catch (ex) { + console.error(ex); + throw ex; + } + return result; + }; +} + +onmessage = async (e) => { + if (!e.data) return; + const { verb, args, callbackId } = e.data; + + if (!callbackId) { + msg({ verb: 'console.error', args: ['callbackId is required', e.data] }); + return; + } + + if (verb === 'module.init') { + const argPathConfig = args[0]; + const argPThreadPoolSize = args[1]; + try { + const Module = ModuleWrapper(); + wModule = await Module(getWModuleConfig( + argPathConfig, + argPThreadPoolSize, + )); + + // init FS + patchMEMFS(); + + // init cwrap + wllamaStart = callWrapper('wllama_start' , 'string', []); + wllamaAction = callWrapper('wllama_action', 'string', ['string', 'string']); + wllamaExit = callWrapper('wllama_exit' , 'string', []); + wllamaDebug = callWrapper('wllama_debug' , 'string', []); + msg({ callbackId, result: null }); + + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'fs.alloc') { + const argFilename = args[0]; + const argSize = args[1]; + try { + // create blank file + const emptyBuffer = new ArrayBuffer(0); + wModule['FS_createDataFile']('/models', argFilename, emptyBuffer, true, true, true); + // alloc data on heap + const fileId = heapfsAlloc(argFilename, argSize); + msg({ callbackId, result: { fileId } }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'fs.write') { + const argFileId = args[0]; + const argBuffer = args[1]; + const argOffset = args[2]; + try { + const writtenBytes = heapfsWrite(argFileId, argBuffer, argOffset); + msg({ callbackId, result: { writtenBytes } }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'wllama.start') { + try { + const result = await wllamaStart(); + msg({ callbackId, result }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'wllama.action') { + const argAction = args[0]; + const argBody = args[1]; + try { + const result = await wllamaAction(argAction, argBody); + msg({ callbackId, result }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'wllama.exit') { + try { + const result = await wllamaExit(); + msg({ callbackId, result }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } + + if (verb === 'wllama.debug') { + try { + const result = await wllamaDebug(); + msg({ callbackId, result }); + } catch (err) { + msg({ callbackId, err }); + } + return; + } +}; +`;class v0{constructor(t,n=1,r,a){this.taskQueue=[],this.taskId=1,this.resultQueue=[],this.busy=!1,this.pathConfig=t,this.nbThread=n,this.multiThread=n>1,this.logger=a,this.suppressNativeLog=r}async moduleInit(t){if(!this.pathConfig["wllama.js"])throw new Error('"single-thread/wllama.js" or "multi-thread/wllama.js" is missing from pathConfig');let r=(await import(this.pathConfig["wllama.js"])).default.toString();r=r.replace(/import\.meta/g,"importMeta");const a=["const importMeta = {}",`function ModuleWrapper() { + const _scriptDir = ${JSON.stringify(window.location.href)}; + return ${r}; + }`,g0].join(`; + +`),l=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}));this.worker=new Worker(l),this.worker.onmessage=this.onRecvMsg.bind(this),this.worker.onerror=this.logger.error;const o=await this.pushTask({verb:"module.init",args:[this.pathConfig,this.nbThread],callbackId:this.taskId++}),i=[];for(const s of t){const u=await this.fileAlloc(s.name,s.blob.size);i.push({id:u,...s})}return await Promise.all(i.map(s=>this.fileWrite(s.id,s.blob))),o}async wllamaStart(){const t=await this.pushTask({verb:"wllama.start",args:[],callbackId:this.taskId++});return this.parseResult(t)}async wllamaAction(t,n){const r=await this.pushTask({verb:"wllama.action",args:[t,JSON.stringify(n)],callbackId:this.taskId++});return this.parseResult(r)}async wllamaExit(){if(this.worker){const t=await this.pushTask({verb:"wllama.exit",args:[],callbackId:this.taskId++});this.parseResult(t),this.worker.terminate()}}async wllamaDebug(){const t=await this.pushTask({verb:"wllama.debug",args:[],callbackId:this.taskId++});return JSON.parse(t)}async fileAlloc(t,n){return(await this.pushTask({verb:"fs.alloc",args:[t,n],callbackId:this.taskId++})).fileId}async fileWrite(t,n){const r=n.stream().getReader();let a=0;for(;;){const{done:l,value:o}=await r.read();if(l)break;const i=o.byteLength;await this.pushTask({verb:"fs.write",args:[t,o,a],callbackId:this.taskId++},[o.buffer]),a+=i}}parseResult(t){const n=JSON.parse(t);if(n&&n.__exception)throw new Error(n.__exception);return n}pushTask(t,n){return new Promise((r,a)=>{this.taskQueue.push({resolve:r,reject:a,param:t,buffers:n}),this.runTaskLoop()})}async runTaskLoop(){if(!this.busy){for(this.busy=!0;;){const t=this.taskQueue.shift();if(!t)break;this.resultQueue.push(t),this.worker.postMessage(t.param,js()?void 0:{transfer:t.buffers??[]})}this.busy=!1}}onRecvMsg(t){if(!t.data)return;const{verb:n,args:r}=t.data;if(n&&n.startsWith("console.")){if(this.suppressNativeLog)return;n.endsWith("debug")&&this.logger.debug(...r),n.endsWith("log")&&this.logger.log(...r),n.endsWith("warn")&&this.logger.warn(...r),n.endsWith("error")&&this.logger.error(...r);return}else n==="signal.abort"&&this.abort(r[0]);const{callbackId:a,result:l,err:o}=t.data;if(a){const i=this.resultQueue.findIndex(s=>s.param.callbackId===a);if(i!==-1){const s=this.resultQueue.splice(i,1)[0];o?s.reject(o):s.resolve(l)}else this.logger.error(`Cannot find waiting task with callbackId = ${a}`)}}abort(t){for(;this.resultQueue.length>0;){const n=this.resultQueue.pop();if(!n)break;n.reject(new Error(`Received abort signal from llama.cpp; Message: ${t||"(empty)"}`))}}}const Er="__metadata__",cp="polyfill_for_older_version";class y0{async getNameFromURL(t){return await Vl(t,"")}async write(t,n,r){return this.writeMetadata(t,r),await cc(t,n)}async open(t){return await fc(t)}async getSize(t){return await w0(t)}async getMetadata(t){const n=await fc(t,Er),r=await this.getSize(t);if(!n)return r>0?{etag:cp,originalSize:r,originalURL:""}:null;try{return await new Response(n).json()}catch{return null}}async list(){const t=await la(),n=[],r={};for await(let[a,l]of t.entries())if(l.kind==="file"&&a.startsWith(Er)){const o=(await l.getFile()).stream(),i=await new Response(o).json().catch(s=>null);r[a.replace(Er,"")]=i}for await(let[a,l]of t.entries())l.kind==="file"&&!a.startsWith(Er)&&n.push({name:a,size:await l.getFile().then(o=>o.size),metadata:r[a]||{originalSize:(await l.getFile()).size,originalURL:"",etag:""}});return n}async clear(){await this.deleteMany(()=>!0)}async delete(t){const n=await this.getNameFromURL(t);await this.deleteMany(r=>r.name===t||r.name===n)}async deleteMany(t){const n=await la(),r=await this.list();for(const a of r)t(a)&&n.removeEntry(a.name)}async writeMetadata(t,n){const r=new Blob([JSON.stringify(n)],{type:"text/plain"});await cc(t,r.stream(),Er)}}async function cc(e,t,n=""){try{const r=await la(),a=await Vl(e,n),l=p0()?await k0(a):await r.getFileHandle(a,{create:!0}).then(i=>i.createWritable());await l.truncate(0);const o=t.getReader();for(;;){const{done:i,value:s}=await o.read();if(i)break;await l.write(s)}await l.close()}catch(r){console.error("opfsWrite",r)}}async function fc(e,t=""){try{const n=await la(),r=await Vl(e,t);return(await(await n.getFileHandle(r)).getFile()).stream()}catch{return null}}async function w0(e,t=""){try{const n=await la(),r=await Vl(e,t);return(await(await n.getFileHandle(r)).getFile()).size}catch{return-1}}async function Vl(e,t){const n=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(e)),a=Array.from(new Uint8Array(n)).map(l=>l.toString(16).padStart(2,"0")).join("");return`${t}${a}_${e.split("/").pop()}`}async function la(){return await(await navigator.storage.getDirectory()).getDirectoryHandle("cache",{create:!0})}const x0=` +const msg = (data) => postMessage(data); +let accessHandle; + +onmessage = async (e) => { + try { + if (!e.data) return; + const { + open, // name of file to open + value, // value to be written + done, // indicates when to close the file + } = e.data; + + if (open) { + const opfsRoot = await navigator.storage.getDirectory(); + const cacheDir = await opfsRoot.getDirectoryHandle('cache', { create: true }); + const fileHandler = await cacheDir.getFileHandle(open, { create: true }); + accessHandle = await fileHandler.createSyncAccessHandle(); + accessHandle.truncate(0); // clear file content + return msg({ ok: true }); + + } else if (value) { + accessHandle.write(value); + return msg({ ok: true }); + + } else if (done) { + accessHandle.flush(); + accessHandle.close(); + return msg({ ok: true }); + } + + throw new Error('OPFS Worker: Invalid state'); + } catch (err) { + return msg({ err }); + } +}; +`;async function k0(e){const t=window.URL.createObjectURL(new Blob([x0],{type:"text/javascript"})),n=new Worker(t);let r,a;n.onmessage=o=>{o.data.ok?r(null):o.data.err&&a(o.data.err)};const l=o=>new Promise((i,s)=>{r=i,a=s,n.postMessage(o,js()?void 0:{transfer:o.value?[o.value.buffer]:[]})});return await l({open:e}),{truncate:async()=>{},write:o=>l({value:o}),close:async()=>{await l({done:!0}),n.terminate()}}}class kl extends Blob{constructor(t,n,r,a,l,o){if(super([]),this.contentType="",n!==0)throw new Error("start range must be 0");this.url=t,this.start=n,this.end=r,this.contentType="",this.full=a,this.fetch=l,this.cachedStream=o.cachedStream,this.progressCallback=o.progressCallback,this.startSignal=o.startSignal,this.etag=o.etag,this.noTEE=o.noTEE,this.cacheManager=o.cacheManager}static async create(t,n){var m,y,k,S;const{cacheManager:r}=n,a=(n==null?void 0:n.fetch)??fetch,l=t;let o;try{const T=await a(t,{method:"HEAD"});o={originalURL:t,originalSize:Number(T.headers.get("content-length")),etag:(T.headers.get("etag")||"").replace(/[^A-Za-z0-9]/g,"")}}catch(T){if(n.allowOffline){const p=await r.getMetadata(l);if(p)o=p;else throw new Error("Network error, cannot find requested model in cache for using offline")}else throw T}const i=await r.getSize(l),s=await r.getMetadata(l),u=(n==null?void 0:n.useCache)===!1,c=(s==null?void 0:s.etag)===cp;if(c&&await r.writeMetadata(l,o),(c||s&&o.etag===s.etag&&o.originalSize===i)&&!u){(m=n==null?void 0:n.logger)==null||m.debug(`Using cached file ${l}`);const T=await r.open(l);return((n==null?void 0:n.startSignal)??Promise.resolve()).then(()=>{var p;(p=n==null?void 0:n.progressCallback)==null||p.call(n,{loaded:i,total:i})}),new kl(t,0,o.originalSize,!0,a,{cachedStream:T,progressCallback:()=>{},etag:o.etag,noTEE:n.noTEE,cacheManager:r})}else return o.originalSize!==i&&((y=n==null?void 0:n.logger)==null||y.debug(`Cache file is present, but size mismatch (cache = ${i} bytes, remote = ${o.originalSize} bytes)`)),s&&o.etag!==s.etag&&((k=n==null?void 0:n.logger)==null||k.debug(`Cache file is present, but ETag mismatch (cache = "${s.etag}", remote = "${o.etag}")`)),(S=n==null?void 0:n.logger)==null||S.debug(`NOT using cache for ${l}`),new kl(t,0,o.originalSize,!0,a,{progressCallback:(n==null?void 0:n.progressCallback)??(()=>{}),startSignal:n==null?void 0:n.startSignal,etag:o.etag,noTEE:n.noTEE,cacheManager:r})}get size(){return this.end-this.start}get type(){return this.contentType}slice(){throw new Error("Unsupported operation")}async arrayBuffer(){throw new Error("Unsupported operation")}async text(){throw new Error("Unsupported operation")}stream(){if(this.cachedStream)return this.cachedStream;const t=this;let n=0;const r=new TransformStream({transform(a,l){t.noTEE||l.enqueue(a),n+=a.byteLength,t.progressCallback({loaded:n,total:t.size})},flush(a){t.progressCallback({loaded:t.size,total:t.size})}});return(async()=>(this.startSignal&&await this.startSignal,this.fetchRange().then(a=>{const[l,o]=a.body.tee();l.pipeThrough(r),this.cacheManager.write(this.url,o,{originalSize:this.end,originalURL:this.url,etag:this.etag})}).catch(a=>r.writable.abort(a.message))))(),r.readable}fetchRange(){const t=this.fetch;return this.full?t(this.url):t(this.url,{headers:{Range:`bytes=${this.start}-${this.end-1}`}})}}class dc{constructor(t,n,r,a,l){this.totalBytes=0,this.tasks=n.map(o=>{const i={url:o,state:0,loaded:0};return i.signalStart=new Promise(s=>i.fireStart=s),i.signalEnd=new Promise(s=>i.fireEnd=s),i}),this.logger=t,this.maxParallel=r,this.progressCallback=l.progressCallback,this.useCache=l.useCache,this.allowOffline=l.allowOffline,this.noTEE=!!l.noTEE,this.cacheManager=a}async run(){await Promise.all(this.tasks.map(async t=>{t.blob=await kl.create(t.url,{logger:this.logger,useCache:this.useCache,startSignal:t.signalStart,allowOffline:this.allowOffline,noTEE:this.noTEE,cacheManager:this.cacheManager,progressCallback:({loaded:n})=>{t.loaded=n,this.updateProgress(t)}})})),this.totalBytes=this.tasks.reduce((t,n)=>t+n.blob.size,0);for(let t=0;tt.blob)}updateProgress(t){var r;const n={loaded:this.tasks.reduce((a,l)=>a+l.loaded,0),total:this.totalBytes};(r=this.progressCallback)==null||r.call(this,n),t.loaded===t.blob.size&&(t.state=2,t.fireEnd())}async dispatcher(){for(;;){const t=this.tasks.find(n=>n.state===0);if(!t)return;t.state=1,t.fireStart(),await t.signalEnd}}}class fp{constructor(t,n={}){if(this.proxy=null,this.useMultiThread=!1,this.useEmbeddings=!1,this.bosToken=-1,this.eosToken=-1,this.eotToken=-1,this.addBosToken=!1,this.addEosToken=!1,this.samplingConfig={},this.hasEncoder=!1,this.decoderStartToken=-1,d0(),!t)throw new Error("AssetsPathConfig is required");this.pathConfig=t,this.config=n,this.cacheManager=n.cacheManager??new y0}logger(){return this.config.logger??console}checkModelLoaded(){if(!this.isModelLoaded())throw new Error("loadModel() is not yet called")}isModelLoaded(){return!!this.proxy&&!!this.metadata}getBOS(){return this.bosToken}getEOS(){return this.eosToken}getEOT(){return this.eotToken}getDecoderStartToken(){return this.decoderStartToken}getModelMetadata(){return this.checkModelLoaded(),this.metadata}isMultithread(){return this.checkModelLoaded(),this.useMultiThread}isEncoderDecoderArchitecture(){return this.checkModelLoaded(),this.hasEncoder}mustAddBosToken(){return this.checkModelLoaded(),this.addBosToken}mustAddEosToken(){return this.checkModelLoaded(),this.addEosToken}getChatTemplate(){return this.checkModelLoaded(),this.chatTemplate??null}parseModelUrl(t){if(Array.isArray(t))return t;const n=/(?.*)-(?\d{5})-of-(?\d{5})\.gguf$/,r=t.match(n);if(!r||!r.groups||Object.keys(r.groups).length!==3)return[t];const{baseURL:a,total:l}=r.groups;return Array.from({length:Number(l)},(i,s)=>(s+1).toString().padStart(5,"0")).map(i=>`${a}-${i}-of-${l}.gguf`)}async downloadModel(t,n={}){if(t.length===0)throw new Error("modelUrl must be an URL or a list of URLs (in the correct order)");if(n.useCache===!1)throw new Error("useCache must not be false");const a=await new dc(this.logger(),this.parseModelUrl(t),n.parallelDownloads??3,this.cacheManager,{progressCallback:n.progressCallback,useCache:!0,allowOffline:!!n.allowOffline,noTEE:!0}).run();await Promise.all(a.map(async l=>{const o=l.stream().getReader();for(;;){const{done:i}=await o.read();if(i)return}}))}async loadModelFromUrl(t,n={}){if(t.length===0)throw new Error("modelUrl must be an URL or a list of URLs (in the correct order)");const r=n.useCache===!1,l=await new dc(this.logger(),this.parseModelUrl(t),n.parallelDownloads??3,this.cacheManager,{progressCallback:n.progressCallback,useCache:!r,allowOffline:!!n.allowOffline}).run();return await this.loadModel(l,n)}async loadModel(t,n={}){const r=[...t];if(r.some(m=>m.size===0))throw new Error("Input model (or splits) must be non-empty Blob or File");s0(r);const a=r.length>1;if(this.proxy)throw new Error("Module is already initialized");const l=await u0();l||this.logger().warn("Multi-threads are not supported in this environment, falling back to single-thread");const o=!!this.pathConfig["multi-thread/wllama.js"]&&!!this.pathConfig["multi-thread/wllama.wasm"]&&!!this.pathConfig["multi-thread/wllama.worker.mjs"];o||this.logger().warn('Missing paths to "wllama.js", "wllama.wasm" or "wllama.worker.mjs", falling back to single-thread');const i=Math.floor((navigator.hardwareConcurrency||1)/2),s=n.n_threads??i;this.useMultiThread=l&&o&&s>1;const u=this.useMultiThread?{"wllama.js":Sr(this.pathConfig["multi-thread/wllama.js"]),"wllama.wasm":Sr(this.pathConfig["multi-thread/wllama.wasm"]),"wllama.worker.mjs":Sr(this.pathConfig["multi-thread/wllama.worker.mjs"])}:{"wllama.js":Sr(this.pathConfig["single-thread/wllama.js"]),"wllama.wasm":Sr(this.pathConfig["single-thread/wllama.wasm"])};this.proxy=new v0(u,this.useMultiThread?s:1,this.config.suppressNativeLog??!1,this.logger()),await this.proxy.moduleInit(r.map((m,y)=>({name:a?`model-${So(y+1,5)}-of-${So(r.length,5)}.gguf`:"model.gguf",blob:m})));const c=await this.proxy.wllamaStart();if(!c.success)throw new Error(`Error while calling start function, result = ${c}`);const d=await this.proxy.wllamaAction("load",{...n,use_mmap:!0,use_mlock:!0,seed:n.seed||Math.floor(Math.random()*1e5),n_ctx:n.n_ctx||1024,n_threads:this.useMultiThread?s:1,model_path:a?`/models/model-00001-of-${So(r.length,5)}.gguf`:"/models/model.gguf"});this.bosToken=d.token_bos,this.eosToken=d.token_eos,this.eotToken=d.token_eot,this.useEmbeddings=!!n.embeddings,this.metadata={hparams:{nVocab:d.n_vocab,nCtxTrain:d.n_ctx_train,nEmbd:d.n_embd,nLayer:d.n_layer},meta:d.metadata},this.hasEncoder=!!d.has_encoder,this.decoderStartToken=d.token_decoder_start,this.addBosToken=d.add_bos_token,this.addEosToken=d.add_eos_token,this.chatTemplate=d.metadata["tokenizer.chat_template"],this.logger().debug({loadResult:d})}async createEmbedding(t,n={}){this.checkModelLoaded();const r={skipBOS:!1,skipEOS:!1,...n};await this.samplingInit(this.samplingConfig),await this.kvClear();const a=await this.tokenize(t);return this.bosToken&&!r.skipBOS&&a.unshift(this.bosToken),this.eosToken&&!r.skipEOS&&a.push(this.eosToken),await this.embeddings(a)}async createCompletion(t,n){this.checkModelLoaded(),this.samplingConfig=n.sampling??{},await this.samplingInit(this.samplingConfig);const r=[this.eosToken,this.eotToken,...n.stopTokens??[]];let a=await this.tokenize(t,!0);this.addBosToken&&a[0]!==this.bosToken&&a.unshift(this.bosToken),n.useCache?a=await this.getNonCachedTokens(a):await this.kvClear(),await this.samplingAccept(a),this.isEncoderDecoderArchitecture()?(await this.encode(a),await this.decode([this.getDecoderStartToken()],{})):await this.decode(a,{});let l=new Uint8Array,o=!1;const i=()=>{o=!0};for(let s=0;s<(n.nPredict??1/0);s++){const u=await this.samplingSample();if(r.includes(u.token)||(l=o0([l,u.piece]),n.onNewToken&&n.onNewToken(u.token,u.piece,uc(l),{abortSignal:i}),o))break;await this.samplingAccept([u.token]),await this.decode([u.token],{})}return uc(l)}async samplingInit(t,n=[]){if(this.checkModelLoaded(),this.samplingConfig=t,!(await this.proxy.wllamaAction("sampling_init",{...t,tokens:n})).success)throw new Error("Failed to initialize sampling")}async getVocab(){return this.checkModelLoaded(),(await this.proxy.wllamaAction("get_vocab",{})).vocab.map(n=>new Uint8Array(n))}async lookupToken(t){this.checkModelLoaded();const n=await this.proxy.wllamaAction("lookup_token",{piece:t});return n.success?n.token:-1}async tokenize(t,n=!0){return this.checkModelLoaded(),(await this.proxy.wllamaAction("tokenize",n?{text:t,special:!0}:{text:t})).tokens}async detokenize(t){this.checkModelLoaded();const n=await this.proxy.wllamaAction("detokenize",{tokens:t});return new Uint8Array(n.buffer)}async decode(t,n){if(this.checkModelLoaded(),this.useEmbeddings)throw new Error("embeddings is enabled. Use wllama.setOptions({ embeddings: false }) to disable it.");const r={tokens:t};n.skipLogits&&(r.skip_logits=!0);const a=await this.proxy.wllamaAction("decode",r);if(a.error)throw new Error(a.error);if(a.success)return{nPast:a.n_past};throw new Error("Cannot decode, unknown error")}async encode(t,n){if(this.checkModelLoaded(),!this.hasEncoder)throw new Error("This model does not use encoder-decoder architecture.");if(this.useEmbeddings)throw new Error("embeddings is enabled. Use wllama.setOptions({ embeddings: false }) to disable it.");const r={tokens:t},a=await this.proxy.wllamaAction("encode",r);if(a.error)throw new Error(a.error);if(a.success)return{nPast:a.n_past};throw new Error("Cannot encode, unknown error")}async samplingSample(){this.checkModelLoaded();const t=await this.proxy.wllamaAction("sampling_sample",{});return{piece:new Uint8Array(t.piece),token:t.token}}async samplingAccept(t){if(this.checkModelLoaded(),!(await this.proxy.wllamaAction("sampling_accept",{tokens:t})).success)throw new Error("samplingAccept unknown error")}async getLogits(t=40){return this.checkModelLoaded(),(await this.proxy.wllamaAction("get_logits",{top_k:t})).logits.map(([a,l])=>({token:a,p:l}))}async embeddings(t){if(this.checkModelLoaded(),!this.useEmbeddings)throw new Error("embeddings is disabled. Use wllama.setOptions({ embeddings: true }) to enable it.");const n=await this.proxy.wllamaAction("embeddings",{tokens:t});if(n.error)throw new Error(n.error);if(n.success)return n.embeddings;throw new Error("embeddings unknown error")}async kvRemove(t,n){if(this.checkModelLoaded(),!(await this.proxy.wllamaAction("kv_remove",{n_keep:t,n_discard:n})).success)throw new Error("kvRemove unknown error")}async kvClear(){if(this.checkModelLoaded(),!(await this.proxy.wllamaAction("kv_clear",{})).success)throw new Error("kvClear unknown error")}async sessionSave(t){return this.checkModelLoaded(),await this.proxy.wllamaAction("session_save",{session_path:t})}async sessionLoad(t){this.checkModelLoaded();const n=await this.proxy.wllamaAction("session_load",{session_path:t});if(n.error)throw new Error(n.error);if(!n.success)throw new Error("sessionLoad unknown error")}async setOptions(t){this.checkModelLoaded(),await this.proxy.wllamaAction("set_options",t),this.useEmbeddings=t.embeddings}async exit(){var t;await((t=this.proxy)==null?void 0:t.wllamaExit())}async _getDebugInfo(){return this.checkModelLoaded(),await this.proxy.wllamaDebug()}async getCachedToken(){return this.checkModelLoaded(),(await this.proxy.wllamaAction("current_status",{})).tokens}async getNonCachedTokens(t){const n=await this.getCachedToken();let r=0;for(;r{for(let n=0;n{const t=b0(e),n=await Promise.all(t.map(async r=>{const a=await fetch(r,{method:"HEAD"});if(a.ok){const l=a.headers.get("Content-Length");return l?parseInt(l):0}else throw new Error(`Fetch error with status code = ${a.status}`)}));if(n.some(r=>r>=op))throw new Error('GGUF file is too big (max. 2GB per file). Please split the file into smaller shards (learn more in "Guide")');return _0(n)},b0=e=>{const t=/(?.*)-(?\d{5})-of-(?\d{5})\.gguf$/,n=e.match(t);if(!n||!n.groups||Object.keys(n.groups).length!==3)return[e];const{baseURL:r,total:a}=n.groups;return Array.from({length:Number(a)},(o,i)=>(i+1).toString().padStart(5,"0")).map(o=>`${r}-${o}-of-${a}.gguf`)},_0=e=>e.reduce((t,n)=>t+n,0);window._exportModelList=function(){const t=Be.load("custom_models",[]).map(n=>(delete n.userAdded,n));console.log(JSON.stringify(t,null,2))};const dp=B.createContext({});let Pe=new fp(lp,{logger:Ve}),Aa=!1;const pc=()=>{Pe=new fp(lp,{logger:Ve})},mc=async()=>{const e=(await Pe.cacheManager.list()).filter(r=>r.size===r.metadata.originalSize),t=new Set(e.map(r=>r.metadata.originalURL));return[...qg,...Be.load("custom_models",[])].map(r=>{var a;return{...r,name:((a=r.url.split("/").pop())==null?void 0:a.replace(/-\d{5}-of-\d{5}/,"").replace(".gguf",""))??"(unknown)",state:t.has(r.url)?q.READY:q.NOT_DOWNLOADED,downloadPercent:0}})},T0=({children:e})=>{const[t,n]=B.useState(!1),[r,a]=B.useState(-1),[l,o]=B.useState(n0()),[i,s]=B.useState([]),[u,c]=B.useState(!1),[d,m]=B.useState(),[y,k]=B.useState(Be.load("params",ip));t0(async()=>{s(await mc())});const S=B.useMemo(()=>i.some(w=>w.state===q.DOWNLOADING),[i]),T=B.useMemo(()=>u||i.some(w=>w.state===q.LOADING),[i,u]),p=B.useMemo(()=>i.find(w=>w.state===q.LOADED),[i]),f=w=>s(C=>C.map(L=>L.url===w.url?w:L)),h=async()=>{s(await mc())},x=async w=>{if(!(S||p||T)){f({...w,state:q.DOWNLOADING,downloadPercent:0});try{await Pe.downloadModel(w.url,{progressCallback(C){f({...w,state:q.DOWNLOADING,downloadPercent:C.loaded/C.total})}}),f({...w,state:q.READY,downloadPercent:0})}catch(C){alert((C==null?void 0:C.message)||"unknown error while downloading model")}}},N=async w=>{const C=await Pe.cacheManager.getNameFromURL(w.url);await Pe.cacheManager.delete(C),await h()},M=async()=>{await Pe.cacheManager.deleteMany(()=>!0),await h()},O=async w=>{if(!(S||p||T)){if(w.userAdded&&await x(w),await Pe.cacheManager.getSize(w.url)<=0)throw new Error("Model is not in cache");f({...w,state:q.LOADING,downloadPercent:0});try{await Pe.loadModelFromUrl(w.url,{n_threads:y.nThreads>0?y.nThreads:void 0,n_ctx:y.nContext,n_batch:y.nBatch}),f({...w,state:q.LOADED,downloadPercent:0}),m({isMultithread:Pe.isMultithread(),hasChatTemplate:!!Pe.getChatTemplate()})}catch(C){pc(),alert(`Failed to load model: ${C.message??"Unknown error"}`),f({...w,state:q.READY,downloadPercent:0})}}},I=async()=>{p&&(await Pe.exit(),pc(),f({...p,state:q.READY,downloadPercent:0}),m(void 0))},H=async(w,C)=>{if(S||!p||T)return;n(!0),Aa=!1;const L=await Pe.createCompletion(w,{nPredict:y.nPredict,useCache:!0,sampling:{temp:y.temperature},onNewToken(b,A,j,$){C(j),Aa&&$.abortSignal()}});C(L),Aa=!1,n(!1)},F=()=>{Aa=!0},ve=(w,C)=>{o(w),a(C??-1),w===ae.MODEL&&Be.save("welcome",!1)},lt=w=>{Be.save("params",w),k(w)},yt=async w=>{c(!0);try{const C=await E0(w);if(i.some(b=>b.url===C.url))throw new Error("Model with the same URL already exist");const L=Be.load("custom_models",[]);Be.save("custom_models",[...L,C]),await h()}catch(C){throw c(!1),C}c(!1)},ot=async w=>{c(!0),await N(w);const C=Be.load("custom_models",[]);Be.save("custom_models",C.filter(L=>L.url!==w.url)),await h(),c(!1)};return g.jsx(dp.Provider,{value:{models:i,isDownloading:S,isLoadingModel:T,downloadModel:x,removeModel:N,removeAllModels:M,currModel:p,loadModel:O,unloadModel:I,currParams:y,setParams:lt,createCompletion:H,stopCompletion:F,isGenerating:t,currentConvId:r,navigateTo:ve,currScreen:l,getWllamaInstance:()=>Pe,addCustomModel:yt,removeCustomModel:ot,currRuntimeInfo:d},children:e})},ln=()=>B.useContext(dp),hc=()=>{};let zs={},pp={},mp=null,hp={mark:hc,measure:hc};try{typeof window<"u"&&(zs=window),typeof document<"u"&&(pp=document),typeof MutationObserver<"u"&&(mp=MutationObserver),typeof performance<"u"&&(hp=performance)}catch{}const{userAgent:gc=""}=zs.navigator||{},qt=zs,K=pp,vc=mp,ja=hp;qt.document;const It=!!K.documentElement&&!!K.head&&typeof K.addEventListener=="function"&&typeof K.createElement=="function",gp=~gc.indexOf("MSIE")||~gc.indexOf("Trident/");var J="classic",vp="duotone",ze="sharp",Fe="sharp-duotone",M0=[J,vp,ze,Fe],O0={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds"}},yc={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},P0=["kit"],L0=/fa(s|r|l|t|d|b|k|kd|ss|sr|sl|st|sds)?[\-\ ]/,I0=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i,A0={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}},j0={"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds"}},z0={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds"}},F0={classic:["fas","far","fal","fat"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds"]},R0={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid"}},D0={classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds"}},yp={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid"}},W0=["solid","regular","light","thin","duotone","brands"],wp=[1,2,3,4,5,6,7,8,9,10],U0=wp.concat([11,12,13,14,15,16,17,18,19,20]),Tr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},V0=[...Object.keys(F0),...W0,"2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",Tr.GROUP,Tr.SWAP_OPACITY,Tr.PRIMARY,Tr.SECONDARY].concat(wp.map(e=>"".concat(e,"x"))).concat(U0.map(e=>"w-".concat(e))),B0={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},$0={kit:{"fa-kit":"fak"},"kit-duotone":{"fa-kit-duotone":"fakd"}},G0={kit:{fak:"fa-kit"},"kit-duotone":{fakd:"fa-kit-duotone"}},wc={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}};const Mt="___FONT_AWESOME___",Ei=16,xp="fa",kp="svg-inline--fa",Nn="data-fa-i2svg",Ci="data-fa-pseudo-element",H0="data-fa-pseudo-element-pending",Fs="data-prefix",Rs="data-icon",xc="fontawesome-i2svg",Z0="async",Y0=["HTML","HEAD","STYLE","SCRIPT"],Sp=(()=>{try{return!0}catch{return!1}})(),Ep=[J,ze,Fe];function ma(e){return new Proxy(e,{get(t,n){return n in t?t[n]:t[J]}})}const Cp={...yp};Cp[J]={...yp[J],...yc.kit,...yc["kit-duotone"]};const yn=ma(Cp),Ni={...D0};Ni[J]={...Ni[J],...wc.kit,...wc["kit-duotone"]};const oa=ma(Ni),bi={...R0};bi[J]={...bi[J],...G0.kit};const wn=ma(bi),_i={...z0};_i[J]={..._i[J],...$0.kit};const X0=ma(_i),K0=L0,Np="fa-layers-text",Q0=I0,J0={...O0};ma(J0);const q0=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],Eo=Tr,or=new Set;Object.keys(oa[J]).map(or.add.bind(or));Object.keys(oa[ze]).map(or.add.bind(or));Object.keys(oa[Fe]).map(or.add.bind(or));const e1=[...P0,...V0],Wr=qt.FontAwesomeConfig||{};function t1(e){var t=K.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}function n1(e){return e===""?!0:e==="false"?!1:e==="true"?!0:e}K&&typeof K.querySelector=="function"&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(t=>{let[n,r]=t;const a=n1(t1(n));a!=null&&(Wr[r]=a)});const bp={styleDefault:"solid",familyDefault:"classic",cssPrefix:xp,replacementClass:kp,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};Wr.familyPrefix&&(Wr.cssPrefix=Wr.familyPrefix);const ir={...bp,...Wr};ir.autoReplaceSvg||(ir.observeMutations=!1);const P={};Object.keys(bp).forEach(e=>{Object.defineProperty(P,e,{enumerable:!0,set:function(t){ir[e]=t,Ur.forEach(n=>n(P))},get:function(){return ir[e]}})});Object.defineProperty(P,"familyPrefix",{enumerable:!0,set:function(e){ir.cssPrefix=e,Ur.forEach(t=>t(P))},get:function(){return ir.cssPrefix}});qt.FontAwesomeConfig=P;const Ur=[];function r1(e){return Ur.push(e),()=>{Ur.splice(Ur.indexOf(e),1)}}const jt=Ei,dt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function a1(e){if(!e||!It)return;const t=K.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;const n=K.head.childNodes;let r=null;for(let a=n.length-1;a>-1;a--){const l=n[a],o=(l.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=l)}return K.head.insertBefore(t,r),e}const l1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function ia(){let e=12,t="";for(;e-- >0;)t+=l1[Math.random()*62|0];return t}function dr(e){const t=[];for(let n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function Ds(e){return e.classList?dr(e.classList):(e.getAttribute("class")||"").split(" ").filter(t=>t)}function _p(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function o1(e){return Object.keys(e||{}).reduce((t,n)=>t+"".concat(n,'="').concat(_p(e[n]),'" '),"").trim()}function Bl(e){return Object.keys(e||{}).reduce((t,n)=>t+"".concat(n,": ").concat(e[n].trim(),";"),"")}function Ws(e){return e.size!==dt.size||e.x!==dt.x||e.y!==dt.y||e.rotate!==dt.rotate||e.flipX||e.flipY}function i1(e){let{transform:t,containerWidth:n,iconWidth:r}=e;const a={transform:"translate(".concat(n/2," 256)")},l="translate(".concat(t.x*32,", ").concat(t.y*32,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),i="rotate(".concat(t.rotate," 0 0)"),s={transform:"".concat(l," ").concat(o," ").concat(i)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:a,inner:s,path:u}}function s1(e){let{transform:t,width:n=Ei,height:r=Ei,startCentered:a=!1}=e,l="";return a&&gp?l+="translate(".concat(t.x/jt-n/2,"em, ").concat(t.y/jt-r/2,"em) "):a?l+="translate(calc(-50% + ".concat(t.x/jt,"em), calc(-50% + ").concat(t.y/jt,"em)) "):l+="translate(".concat(t.x/jt,"em, ").concat(t.y/jt,"em) "),l+="scale(".concat(t.size/jt*(t.flipX?-1:1),", ").concat(t.size/jt*(t.flipY?-1:1),") "),l+="rotate(".concat(t.rotate,"deg) "),l}var u1=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone"; +} + +svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { + overflow: visible; + box-sizing: content-box; +} + +.svg-inline--fa { + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285705em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left { + margin-right: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-pull-right { + margin-left: var(--fa-pull-margin, 0.3em); + width: auto; +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + top: 0.25em; +} +.svg-inline--fa.fa-fw { + width: var(--fa-fw-width, 1.25em); +} + +.fa-layers svg.svg-inline--fa { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: 1em; +} +.fa-layers svg.svg-inline--fa { + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; +} + +.fa-xs { + font-size: 0.75em; + line-height: 0.0833333337em; + vertical-align: 0.125em; +} + +.fa-sm { + font-size: 0.875em; + line-height: 0.0714285718em; + vertical-align: 0.0535714295em; +} + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; +} + +.fa-xl { + font-size: 1.5em; + line-height: 0.0416666682em; + vertical-align: -0.125em; +} + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; +} + +.fa-fw { + text-align: center; + width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + left: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, +.fa-bounce, +.fa-fade, +.fa-beat-fade, +.fa-flip, +.fa-pulse, +.fa-shake, +.fa-spin, +.fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.fa-stack { + display: inline-block; + vertical-align: middle; + height: 2em; + position: relative; + width: 2.5em; +} + +.fa-stack-1x, +.fa-stack-2x { + bottom: 0; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 0; + z-index: var(--fa-stack-z-index, auto); +} + +.svg-inline--fa.fa-stack-1x { + height: 1em; + width: 1.25em; +} +.svg-inline--fa.fa-stack-2x { + height: 2em; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +} + +.fad.fa-inverse, +.fa-duotone.fa-inverse { + color: var(--fa-inverse, #fff); +}`;function Tp(){const e=xp,t=kp,n=P.cssPrefix,r=P.replacementClass;let a=u1;if(n!==e||r!==t){const l=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),i=new RegExp("\\.".concat(t),"g");a=a.replace(l,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(i,".".concat(r))}return a}let kc=!1;function Co(){P.autoAddCss&&!kc&&(a1(Tp()),kc=!0)}var c1={mixout(){return{dom:{css:Tp,insertCss:Co}}},hooks(){return{beforeDOMElementCreation(){Co()},beforeI2svg(){Co()}}}};const Ot=qt||{};Ot[Mt]||(Ot[Mt]={});Ot[Mt].styles||(Ot[Mt].styles={});Ot[Mt].hooks||(Ot[Mt].hooks={});Ot[Mt].shims||(Ot[Mt].shims=[]);var pt=Ot[Mt];const Mp=[],Op=function(){K.removeEventListener("DOMContentLoaded",Op),Sl=1,Mp.map(e=>e())};let Sl=!1;It&&(Sl=(K.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(K.readyState),Sl||K.addEventListener("DOMContentLoaded",Op));function f1(e){It&&(Sl?setTimeout(e,0):Mp.push(e))}function ha(e){const{tag:t,attributes:n={},children:r=[]}=e;return typeof e=="string"?_p(e):"<".concat(t," ").concat(o1(n),">").concat(r.map(ha).join(""),"")}function Sc(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}var No=function(t,n,r,a){var l=Object.keys(t),o=l.length,i=n,s,u,c;for(r===void 0?(s=1,c=t[l[0]]):(s=0,c=r);s=55296&&a<=56319&&n=55296&&r<=56319&&n>t+1&&(a=e.charCodeAt(t+1),a>=56320&&a<=57343)?(r-55296)*1024+a-56320+65536:r}function Ec(e){return Object.keys(e).reduce((t,n)=>{const r=e[n];return!!r.icon?t[r.iconName]=r.icon:t[n]=r,t},{})}function Mi(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{skipHooks:r=!1}=n,a=Ec(t);typeof pt.hooks.addPack=="function"&&!r?pt.hooks.addPack(e,Ec(t)):pt.styles[e]={...pt.styles[e]||{},...a},e==="fas"&&Mi("fa",t)}const{styles:dn,shims:m1}=pt,h1={[J]:Object.values(wn[J]),[ze]:Object.values(wn[ze]),[Fe]:Object.values(wn[Fe])};let Us=null,Pp={},Lp={},Ip={},Ap={},jp={};const g1={[J]:Object.keys(yn[J]),[ze]:Object.keys(yn[ze]),[Fe]:Object.keys(yn[Fe])};function v1(e){return~e1.indexOf(e)}function y1(e,t){const n=t.split("-"),r=n[0],a=n.slice(1).join("-");return r===e&&a!==""&&!v1(a)?a:null}const zp=()=>{const e=r=>No(dn,(a,l,o)=>(a[o]=No(l,r,{}),a),{});Pp=e((r,a,l)=>(a[3]&&(r[a[3]]=l),a[2]&&a[2].filter(i=>typeof i=="number").forEach(i=>{r[i.toString(16)]=l}),r)),Lp=e((r,a,l)=>(r[l]=l,a[2]&&a[2].filter(i=>typeof i=="string").forEach(i=>{r[i]=l}),r)),jp=e((r,a,l)=>{const o=a[2];return r[l]=l,o.forEach(i=>{r[i]=l}),r});const t="far"in dn||P.autoFetchSvg,n=No(m1,(r,a)=>{const l=a[0];let o=a[1];const i=a[2];return o==="far"&&!t&&(o="fas"),typeof l=="string"&&(r.names[l]={prefix:o,iconName:i}),typeof l=="number"&&(r.unicodes[l.toString(16)]={prefix:o,iconName:i}),r},{names:{},unicodes:{}});Ip=n.names,Ap=n.unicodes,Us=$l(P.styleDefault,{family:P.familyDefault})};r1(e=>{Us=$l(e.styleDefault,{family:P.familyDefault})});zp();function Vs(e,t){return(Pp[e]||{})[t]}function w1(e,t){return(Lp[e]||{})[t]}function Vt(e,t){return(jp[e]||{})[t]}function Fp(e){return Ip[e]||{prefix:null,iconName:null}}function x1(e){const t=Ap[e],n=Vs("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function en(){return Us}const Bs=()=>({prefix:null,iconName:null,rest:[]});function $l(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{family:n=J}=t,r=yn[n][e],a=oa[n][e]||oa[n][r],l=e in pt.styles?e:null;return a||l||null}const k1={[J]:Object.keys(wn[J]),[ze]:Object.keys(wn[ze]),[Fe]:Object.keys(wn[Fe])};function Gl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{skipLookups:n=!1}=t,r={[J]:"".concat(P.cssPrefix,"-").concat(J),[ze]:"".concat(P.cssPrefix,"-").concat(ze),[Fe]:"".concat(P.cssPrefix,"-").concat(Fe)};let a=null,l=J;const o=M0.filter(s=>s!==vp);o.forEach(s=>{(e.includes(r[s])||e.some(u=>k1[s].includes(u)))&&(l=s)});const i=e.reduce((s,u)=>{const c=y1(P.cssPrefix,u);if(dn[u]?(u=h1[l].includes(u)?X0[l][u]:u,a=u,s.prefix=u):g1[l].indexOf(u)>-1?(a=u,s.prefix=$l(u,{family:l})):c?s.iconName=c:u!==P.replacementClass&&!o.some(d=>u===r[d])&&s.rest.push(u),!n&&s.prefix&&s.iconName){const d=a==="fa"?Fp(s.iconName):{},m=Vt(s.prefix,s.iconName);d.prefix&&(a=null),s.iconName=d.iconName||m||s.iconName,s.prefix=d.prefix||s.prefix,s.prefix==="far"&&!dn.far&&dn.fas&&!P.autoFetchSvg&&(s.prefix="fas")}return s},Bs());return(e.includes("fa-brands")||e.includes("fab"))&&(i.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(i.prefix="fad"),!i.prefix&&l===ze&&(dn.fass||P.autoFetchSvg)&&(i.prefix="fass",i.iconName=Vt(i.prefix,i.iconName)||i.iconName),!i.prefix&&l===Fe&&(dn.fasds||P.autoFetchSvg)&&(i.prefix="fasds",i.iconName=Vt(i.prefix,i.iconName)||i.iconName),(i.prefix==="fa"||a==="fa")&&(i.prefix=en()||"fas"),i}class S1{constructor(){this.definitions={}}add(){for(var t=arguments.length,n=new Array(t),r=0;r{this.definitions[l]={...this.definitions[l]||{},...a[l]},Mi(l,a[l]);const o=wn[J][l];o&&Mi(o,a[l]),zp()})}reset(){this.definitions={}}_pullDefinitions(t,n){const r=n.prefix&&n.iconName&&n.icon?{0:n}:n;return Object.keys(r).map(a=>{const{prefix:l,iconName:o,icon:i}=r[a],s=i[2];t[l]||(t[l]={}),s.length>0&&s.forEach(u=>{typeof u=="string"&&(t[l][u]=i)}),t[l][o]=i}),t}}let Cc=[],$n={};const Jn={},E1=Object.keys(Jn);function C1(e,t){let{mixoutsTo:n}=t;return Cc=e,$n={},Object.keys(Jn).forEach(r=>{E1.indexOf(r)===-1&&delete Jn[r]}),Cc.forEach(r=>{const a=r.mixout?r.mixout():{};if(Object.keys(a).forEach(l=>{typeof a[l]=="function"&&(n[l]=a[l]),typeof a[l]=="object"&&Object.keys(a[l]).forEach(o=>{n[l]||(n[l]={}),n[l][o]=a[l][o]})}),r.hooks){const l=r.hooks();Object.keys(l).forEach(o=>{$n[o]||($n[o]=[]),$n[o].push(l[o])})}r.provides&&r.provides(Jn)}),n}function Oi(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a{t=o.apply(null,[t,...r])}),t}function bn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{l.apply(null,n)})}function tn(){const e=arguments[0],t=Array.prototype.slice.call(arguments,1);return Jn[e]?Jn[e].apply(null,t):void 0}function Pi(e){e.prefix==="fa"&&(e.prefix="fas");let{iconName:t}=e;const n=e.prefix||en();if(t)return t=Vt(n,t)||t,Sc(Rp.definitions,n,t)||Sc(pt.styles,n,t)}const Rp=new S1,N1=()=>{P.autoReplaceSvg=!1,P.observeMutations=!1,bn("noAuto")},b1={i2svg:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return It?(bn("beforeI2svg",e),tn("pseudoElements2svg",e),tn("i2svg",e)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:t}=e;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,f1(()=>{T1({autoReplaceSvgRoot:t}),bn("watch",e)})}},_1={icon:e=>{if(e===null)return null;if(typeof e=="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Vt(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){const t=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],n=$l(e[0]);return{prefix:n,iconName:Vt(n,t)||t}}if(typeof e=="string"&&(e.indexOf("".concat(P.cssPrefix,"-"))>-1||e.match(K0))){const t=Gl(e.split(" "),{skipLookups:!0});return{prefix:t.prefix||en(),iconName:Vt(t.prefix,t.iconName)||t.iconName}}if(typeof e=="string"){const t=en();return{prefix:t,iconName:Vt(t,e)||e}}}},Ue={noAuto:N1,config:P,dom:b1,parse:_1,library:Rp,findIconDefinition:Pi,toHtml:ha},T1=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{autoReplaceSvgRoot:t=K}=e;(Object.keys(pt.styles).length>0||P.autoFetchSvg)&&It&&P.autoReplaceSvg&&Ue.dom.i2svg({node:t})};function Hl(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(n=>ha(n))}}),Object.defineProperty(e,"node",{get:function(){if(!It)return;const n=K.createElement("div");return n.innerHTML=e.html,n.children}}),e}function M1(e){let{children:t,main:n,mask:r,attributes:a,styles:l,transform:o}=e;if(Ws(o)&&n.found&&!r.found){const{width:i,height:s}=n,u={x:i/s/2,y:.5};a.style=Bl({...l,"transform-origin":"".concat(u.x+o.x/16,"em ").concat(u.y+o.y/16,"em")})}return[{tag:"svg",attributes:a,children:t}]}function O1(e){let{prefix:t,iconName:n,children:r,attributes:a,symbol:l}=e;const o=l===!0?"".concat(t,"-").concat(P.cssPrefix,"-").concat(n):l;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:{...a,id:o},children:r}]}]}function $s(e){const{icons:{main:t,mask:n},prefix:r,iconName:a,transform:l,symbol:o,title:i,maskId:s,titleId:u,extra:c,watchable:d=!1}=e,{width:m,height:y}=n.found?n:t,k=r==="fak",S=[P.replacementClass,a?"".concat(P.cssPrefix,"-").concat(a):""].filter(N=>c.classes.indexOf(N)===-1).filter(N=>N!==""||!!N).concat(c.classes).join(" ");let T={children:[],attributes:{...c.attributes,"data-prefix":r,"data-icon":a,class:S,role:c.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(y)}};const p=k&&!~c.classes.indexOf("fa-fw")?{width:"".concat(m/y*16*.0625,"em")}:{};d&&(T.attributes[Nn]=""),i&&(T.children.push({tag:"title",attributes:{id:T.attributes["aria-labelledby"]||"title-".concat(u||ia())},children:[i]}),delete T.attributes.title);const f={...T,prefix:r,iconName:a,main:t,mask:n,maskId:s,transform:l,symbol:o,styles:{...p,...c.styles}},{children:h,attributes:x}=n.found&&t.found?tn("generateAbstractMask",f)||{children:[],attributes:{}}:tn("generateAbstractIcon",f)||{children:[],attributes:{}};return f.children=h,f.attributes=x,o?O1(f):M1(f)}function Nc(e){const{content:t,width:n,height:r,transform:a,title:l,extra:o,watchable:i=!1}=e,s={...o.attributes,...l?{title:l}:{},class:o.classes.join(" ")};i&&(s[Nn]="");const u={...o.styles};Ws(a)&&(u.transform=s1({transform:a,startCentered:!0,width:n,height:r}),u["-webkit-transform"]=u.transform);const c=Bl(u);c.length>0&&(s.style=c);const d=[];return d.push({tag:"span",attributes:s,children:[t]}),l&&d.push({tag:"span",attributes:{class:"sr-only"},children:[l]}),d}function P1(e){const{content:t,title:n,extra:r}=e,a={...r.attributes,...n?{title:n}:{},class:r.classes.join(" ")},l=Bl(r.styles);l.length>0&&(a.style=l);const o=[];return o.push({tag:"span",attributes:a,children:[t]}),n&&o.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),o}const{styles:bo}=pt;function Li(e){const t=e[0],n=e[1],[r]=e.slice(4);let a=null;return Array.isArray(r)?a={tag:"g",attributes:{class:"".concat(P.cssPrefix,"-").concat(Eo.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(Eo.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(Eo.PRIMARY),fill:"currentColor",d:r[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:r}},{found:!0,width:t,height:n,icon:a}}const L1={found:!1,width:512,height:512};function I1(e,t){!Sp&&!P.showMissingIcons&&e&&console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}function Ii(e,t){let n=t;return t==="fa"&&P.styleDefault!==null&&(t=en()),new Promise((r,a)=>{if(n==="fa"){const l=Fp(e)||{};e=l.iconName||e,t=l.prefix||t}if(e&&t&&bo[t]&&bo[t][e]){const l=bo[t][e];return r(Li(l))}I1(e,t),r({...L1,icon:P.showMissingIcons&&e?tn("missingIconAbstract")||{}:{}})})}const bc=()=>{},Ai=P.measurePerformance&&ja&&ja.mark&&ja.measure?ja:{mark:bc,measure:bc},Mr='FA "6.6.0"',A1=e=>(Ai.mark("".concat(Mr," ").concat(e," begins")),()=>Dp(e)),Dp=e=>{Ai.mark("".concat(Mr," ").concat(e," ends")),Ai.measure("".concat(Mr," ").concat(e),"".concat(Mr," ").concat(e," begins"),"".concat(Mr," ").concat(e," ends"))};var Gs={begin:A1,end:Dp};const Xa=()=>{};function _c(e){return typeof(e.getAttribute?e.getAttribute(Nn):null)=="string"}function j1(e){const t=e.getAttribute?e.getAttribute(Fs):null,n=e.getAttribute?e.getAttribute(Rs):null;return t&&n}function z1(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(P.replacementClass)}function F1(){return P.autoReplaceSvg===!0?Ka.replace:Ka[P.autoReplaceSvg]||Ka.replace}function R1(e){return K.createElementNS("http://www.w3.org/2000/svg",e)}function D1(e){return K.createElement(e)}function Wp(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{ceFn:n=e.tag==="svg"?R1:D1}=t;if(typeof e=="string")return K.createTextNode(e);const r=n(e.tag);return Object.keys(e.attributes||[]).forEach(function(l){r.setAttribute(l,e.attributes[l])}),(e.children||[]).forEach(function(l){r.appendChild(Wp(l,{ceFn:n}))}),r}function W1(e){let t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com "),t}const Ka={replace:function(e){const t=e[0];if(t.parentNode)if(e[1].forEach(n=>{t.parentNode.insertBefore(Wp(n),t)}),t.getAttribute(Nn)===null&&P.keepOriginalSource){let n=K.createComment(W1(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){const t=e[0],n=e[1];if(~Ds(t).indexOf(P.replacementClass))return Ka.replace(e);const r=new RegExp("".concat(P.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){const l=n[0].attributes.class.split(" ").reduce((o,i)=>(i===P.replacementClass||i.match(r)?o.toSvg.push(i):o.toNode.push(i),o),{toNode:[],toSvg:[]});n[0].attributes.class=l.toSvg.join(" "),l.toNode.length===0?t.removeAttribute("class"):t.setAttribute("class",l.toNode.join(" "))}const a=n.map(l=>ha(l)).join(` +`);t.setAttribute(Nn,""),t.innerHTML=a}};function Tc(e){e()}function Up(e,t){const n=typeof t=="function"?t:Xa;if(e.length===0)n();else{let r=Tc;P.mutateApproach===Z0&&(r=qt.requestAnimationFrame||Tc),r(()=>{const a=F1(),l=Gs.begin("mutate");e.map(a),l(),n()})}}let Hs=!1;function Vp(){Hs=!0}function ji(){Hs=!1}let El=null;function Mc(e){if(!vc||!P.observeMutations)return;const{treeCallback:t=Xa,nodeCallback:n=Xa,pseudoElementsCallback:r=Xa,observeMutationsRoot:a=K}=e;El=new vc(l=>{if(Hs)return;const o=en();dr(l).forEach(i=>{if(i.type==="childList"&&i.addedNodes.length>0&&!_c(i.addedNodes[0])&&(P.searchPseudoElements&&r(i.target),t(i.target)),i.type==="attributes"&&i.target.parentNode&&P.searchPseudoElements&&r(i.target.parentNode),i.type==="attributes"&&_c(i.target)&&~q0.indexOf(i.attributeName))if(i.attributeName==="class"&&j1(i.target)){const{prefix:s,iconName:u}=Gl(Ds(i.target));i.target.setAttribute(Fs,s||o),u&&i.target.setAttribute(Rs,u)}else z1(i.target)&&n(i.target)})}),It&&El.observe(a,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function U1(){El&&El.disconnect()}function V1(e){const t=e.getAttribute("style");let n=[];return t&&(n=t.split(";").reduce((r,a)=>{const l=a.split(":"),o=l[0],i=l.slice(1);return o&&i.length>0&&(r[o]=i.join(":").trim()),r},{})),n}function B1(e){const t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=e.innerText!==void 0?e.innerText.trim():"";let a=Gl(Ds(e));return a.prefix||(a.prefix=en()),t&&n&&(a.prefix=t,a.iconName=n),a.iconName&&a.prefix||(a.prefix&&r.length>0&&(a.iconName=w1(a.prefix,e.innerText)||Vs(a.prefix,Ti(e.innerText))),!a.iconName&&P.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(a.iconName=e.firstChild.data)),a}function $1(e){const t=dr(e.attributes).reduce((a,l)=>(a.name!=="class"&&a.name!=="style"&&(a[l.name]=l.value),a),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return P.autoA11y&&(n?t["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(r||ia()):(t["aria-hidden"]="true",t.focusable="false")),t}function G1(){return{iconName:null,title:null,titleId:null,prefix:null,transform:dt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Oc(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0};const{iconName:n,prefix:r,rest:a}=B1(e),l=$1(e),o=Oi("parseNodeAttributes",{},e);let i=t.styleParser?V1(e):[];return{iconName:n,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:r,transform:dt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:a,styles:i,attributes:l},...o}}const{styles:H1}=pt;function Bp(e){const t=P.autoReplaceSvg==="nest"?Oc(e,{styleParser:!1}):Oc(e);return~t.extra.classes.indexOf(Np)?tn("generateLayersText",e,t):tn("generateSvgReplacementMutation",e,t)}let gt=new Set;Ep.map(e=>{gt.add("fa-".concat(e))});Object.keys(yn[J]).map(gt.add.bind(gt));Object.keys(yn[ze]).map(gt.add.bind(gt));Object.keys(yn[Fe]).map(gt.add.bind(gt));gt=[...gt];function Pc(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!It)return Promise.resolve();const n=K.documentElement.classList,r=c=>n.add("".concat(xc,"-").concat(c)),a=c=>n.remove("".concat(xc,"-").concat(c)),l=P.autoFetchSvg?gt:Ep.map(c=>"fa-".concat(c)).concat(Object.keys(H1));l.includes("fa")||l.push("fa");const o=[".".concat(Np,":not([").concat(Nn,"])")].concat(l.map(c=>".".concat(c,":not([").concat(Nn,"])"))).join(", ");if(o.length===0)return Promise.resolve();let i=[];try{i=dr(e.querySelectorAll(o))}catch{}if(i.length>0)r("pending"),a("complete");else return Promise.resolve();const s=Gs.begin("onTree"),u=i.reduce((c,d)=>{try{const m=Bp(d);m&&c.push(m)}catch(m){Sp||m.name==="MissingIcon"&&console.error(m)}return c},[]);return new Promise((c,d)=>{Promise.all(u).then(m=>{Up(m,()=>{r("active"),r("complete"),a("pending"),typeof t=="function"&&t(),s(),c()})}).catch(m=>{s(),d(m)})})}function Z1(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Bp(e).then(n=>{n&&Up([n],t)})}function Y1(e){return function(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=(t||{}).icon?t:Pi(t||{});let{mask:a}=n;return a&&(a=(a||{}).icon?a:Pi(a||{})),e(r,{...n,mask:a})}}const X1=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:n=dt,symbol:r=!1,mask:a=null,maskId:l=null,title:o=null,titleId:i=null,classes:s=[],attributes:u={},styles:c={}}=t;if(!e)return;const{prefix:d,iconName:m,icon:y}=e;return Hl({type:"icon",...e},()=>(bn("beforeDOMElementCreation",{iconDefinition:e,params:t}),P.autoA11y&&(o?u["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(i||ia()):(u["aria-hidden"]="true",u.focusable="false")),$s({icons:{main:Li(y),mask:a?Li(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:d,iconName:m,transform:{...dt,...n},symbol:r,title:o,maskId:l,titleId:i,extra:{attributes:u,styles:c,classes:s}})))};var K1={mixout(){return{icon:Y1(X1)}},hooks(){return{mutationObserverCallbacks(e){return e.treeCallback=Pc,e.nodeCallback=Z1,e}}},provides(e){e.i2svg=function(t){const{node:n=K,callback:r=()=>{}}=t;return Pc(n,r)},e.generateSvgReplacementMutation=function(t,n){const{iconName:r,title:a,titleId:l,prefix:o,transform:i,symbol:s,mask:u,maskId:c,extra:d}=n;return new Promise((m,y)=>{Promise.all([Ii(r,o),u.iconName?Ii(u.iconName,u.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(k=>{let[S,T]=k;m([t,$s({icons:{main:S,mask:T},prefix:o,iconName:r,transform:i,symbol:s,maskId:c,title:a,titleId:l,extra:d,watchable:!0})])}).catch(y)})},e.generateAbstractIcon=function(t){let{children:n,attributes:r,main:a,transform:l,styles:o}=t;const i=Bl(o);i.length>0&&(r.style=i);let s;return Ws(l)&&(s=tn("generateAbstractTransformGrouping",{main:a,transform:l,containerWidth:a.width,iconWidth:a.width})),n.push(s||a.icon),{children:n,attributes:r}}}},Q1={mixout(){return{layer(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{classes:n=[]}=t;return Hl({type:"layer"},()=>{bn("beforeDOMElementCreation",{assembler:e,params:t});let r=[];return e(a=>{Array.isArray(a)?a.map(l=>{r=r.concat(l.abstract)}):r=r.concat(a.abstract)}),[{tag:"span",attributes:{class:["".concat(P.cssPrefix,"-layers"),...n].join(" ")},children:r}]})}}}},J1={mixout(){return{counter(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{title:n=null,classes:r=[],attributes:a={},styles:l={}}=t;return Hl({type:"counter",content:e},()=>(bn("beforeDOMElementCreation",{content:e,params:t}),P1({content:e.toString(),title:n,extra:{attributes:a,styles:l,classes:["".concat(P.cssPrefix,"-layers-counter"),...r]}})))}}}},q1={mixout(){return{text(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{transform:n=dt,title:r=null,classes:a=[],attributes:l={},styles:o={}}=t;return Hl({type:"text",content:e},()=>(bn("beforeDOMElementCreation",{content:e,params:t}),Nc({content:e,transform:{...dt,...n},title:r,extra:{attributes:l,styles:o,classes:["".concat(P.cssPrefix,"-layers-text"),...a]}})))}}},provides(e){e.generateLayersText=function(t,n){const{title:r,transform:a,extra:l}=n;let o=null,i=null;if(gp){const s=parseInt(getComputedStyle(t).fontSize,10),u=t.getBoundingClientRect();o=u.width/s,i=u.height/s}return P.autoA11y&&!r&&(l.attributes["aria-hidden"]="true"),Promise.resolve([t,Nc({content:t.innerHTML,width:o,height:i,transform:a,title:r,extra:l,watchable:!0})])}}};const ev=new RegExp('"',"ug"),Lc=[1105920,1112319],Ic={FontAwesome:{normal:"fas",400:"fas"},...j0,...A0,...B0},zi=Object.keys(Ic).reduce((e,t)=>(e[t.toLowerCase()]=Ic[t],e),{}),tv=Object.keys(zi).reduce((e,t)=>{const n=zi[t];return e[t]=n[900]||[...Object.entries(n)][0][1],e},{});function nv(e){const t=e.replace(ev,""),n=p1(t,0),r=n>=Lc[0]&&n<=Lc[1],a=t.length===2?t[0]===t[1]:!1;return{value:Ti(a?t[0]:t),isSecondary:r||a}}function rv(e,t){const n=e.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(t),a=isNaN(r)?"normal":r;return(zi[n]||{})[a]||tv[n]}function Ac(e,t){const n="".concat(H0).concat(t.replace(":","-"));return new Promise((r,a)=>{if(e.getAttribute(n)!==null)return r();const o=dr(e.children).filter(m=>m.getAttribute(Ci)===t)[0],i=qt.getComputedStyle(e,t),s=i.getPropertyValue("font-family"),u=s.match(Q0),c=i.getPropertyValue("font-weight"),d=i.getPropertyValue("content");if(o&&!u)return e.removeChild(o),r();if(u&&d!=="none"&&d!==""){const m=i.getPropertyValue("content");let y=rv(s,c);const{value:k,isSecondary:S}=nv(m),T=u[0].startsWith("FontAwesome");let p=Vs(y,k),f=p;if(T){const h=x1(k);h.iconName&&h.prefix&&(p=h.iconName,y=h.prefix)}if(p&&!S&&(!o||o.getAttribute(Fs)!==y||o.getAttribute(Rs)!==f)){e.setAttribute(n,f),o&&e.removeChild(o);const h=G1(),{extra:x}=h;x.attributes[Ci]=t,Ii(p,y).then(N=>{const M=$s({...h,icons:{main:N,mask:Bs()},prefix:y,iconName:f,extra:x,watchable:!0}),O=K.createElementNS("http://www.w3.org/2000/svg","svg");t==="::before"?e.insertBefore(O,e.firstChild):e.appendChild(O),O.outerHTML=M.map(I=>ha(I)).join(` +`),e.removeAttribute(n),r()}).catch(a)}else r()}else r()})}function av(e){return Promise.all([Ac(e,"::before"),Ac(e,"::after")])}function lv(e){return e.parentNode!==document.head&&!~Y0.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(Ci)&&(!e.parentNode||e.parentNode.tagName!=="svg")}function jc(e){if(It)return new Promise((t,n)=>{const r=dr(e.querySelectorAll("*")).filter(lv).map(av),a=Gs.begin("searchPseudoElements");Vp(),Promise.all(r).then(()=>{a(),ji(),t()}).catch(()=>{a(),ji(),n()})})}var ov={hooks(){return{mutationObserverCallbacks(e){return e.pseudoElementsCallback=jc,e}}},provides(e){e.pseudoElements2svg=function(t){const{node:n=K}=t;P.searchPseudoElements&&jc(n)}}};let zc=!1;var iv={mixout(){return{dom:{unwatch(){Vp(),zc=!0}}}},hooks(){return{bootstrap(){Mc(Oi("mutationObserverCallbacks",{}))},noAuto(){U1()},watch(e){const{observeMutationsRoot:t}=e;zc?ji():Mc(Oi("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}};const Fc=e=>{let t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce((n,r)=>{const a=r.toLowerCase().split("-"),l=a[0];let o=a.slice(1).join("-");if(l&&o==="h")return n.flipX=!0,n;if(l&&o==="v")return n.flipY=!0,n;if(o=parseFloat(o),isNaN(o))return n;switch(l){case"grow":n.size=n.size+o;break;case"shrink":n.size=n.size-o;break;case"left":n.x=n.x-o;break;case"right":n.x=n.x+o;break;case"up":n.y=n.y-o;break;case"down":n.y=n.y+o;break;case"rotate":n.rotate=n.rotate+o;break}return n},t)};var sv={mixout(){return{parse:{transform:e=>Fc(e)}}},hooks(){return{parseNodeAttributes(e,t){const n=t.getAttribute("data-fa-transform");return n&&(e.transform=Fc(n)),e}}},provides(e){e.generateAbstractTransformGrouping=function(t){let{main:n,transform:r,containerWidth:a,iconWidth:l}=t;const o={transform:"translate(".concat(a/2," 256)")},i="translate(".concat(r.x*32,", ").concat(r.y*32,") "),s="scale(".concat(r.size/16*(r.flipX?-1:1),", ").concat(r.size/16*(r.flipY?-1:1),") "),u="rotate(".concat(r.rotate," 0 0)"),c={transform:"".concat(i," ").concat(s," ").concat(u)},d={transform:"translate(".concat(l/2*-1," -256)")},m={outer:o,inner:c,path:d};return{tag:"g",attributes:{...m.outer},children:[{tag:"g",attributes:{...m.inner},children:[{tag:n.icon.tag,children:n.icon.children,attributes:{...n.icon.attributes,...m.path}}]}]}}}};const _o={x:0,y:0,width:"100%",height:"100%"};function Rc(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function uv(e){return e.tag==="g"?e.children:[e]}var cv={hooks(){return{parseNodeAttributes(e,t){const n=t.getAttribute("data-fa-mask"),r=n?Gl(n.split(" ").map(a=>a.trim())):Bs();return r.prefix||(r.prefix=en()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides(e){e.generateAbstractMask=function(t){let{children:n,attributes:r,main:a,mask:l,maskId:o,transform:i}=t;const{width:s,icon:u}=a,{width:c,icon:d}=l,m=i1({transform:i,containerWidth:c,iconWidth:s}),y={tag:"rect",attributes:{..._o,fill:"white"}},k=u.children?{children:u.children.map(Rc)}:{},S={tag:"g",attributes:{...m.inner},children:[Rc({tag:u.tag,attributes:{...u.attributes,...m.path},...k})]},T={tag:"g",attributes:{...m.outer},children:[S]},p="mask-".concat(o||ia()),f="clip-".concat(o||ia()),h={tag:"mask",attributes:{..._o,id:p,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"},children:[y,T]},x={tag:"defs",children:[{tag:"clipPath",attributes:{id:f},children:uv(d)},h]};return n.push(x,{tag:"rect",attributes:{fill:"currentColor","clip-path":"url(#".concat(f,")"),mask:"url(#".concat(p,")"),..._o}}),{children:n,attributes:r}}}},fv={provides(e){let t=!1;qt.matchMedia&&(t=qt.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){const n=[],r={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};n.push({tag:"path",attributes:{...r,d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}});const l={...a,attributeName:"opacity"},o={tag:"circle",attributes:{...r,cx:"256",cy:"364",r:"28"},children:[]};return t||o.children.push({tag:"animate",attributes:{...a,attributeName:"r",values:"28;14;28;28;14;28;"}},{tag:"animate",attributes:{...l,values:"1;0;1;1;0;1;"}}),n.push(o),n.push({tag:"path",attributes:{...r,opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"},children:t?[]:[{tag:"animate",attributes:{...l,values:"1;0;0;0;0;1;"}}]}),t||n.push({tag:"path",attributes:{...r,opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"},children:[{tag:"animate",attributes:{...l,values:"0;0;1;1;0;0;"}}]}),{tag:"g",attributes:{class:"missing"},children:n}}}},dv={hooks(){return{parseNodeAttributes(e,t){const n=t.getAttribute("data-fa-symbol"),r=n===null?!1:n===""?!0:n;return e.symbol=r,e}}}},pv=[c1,K1,Q1,J1,q1,ov,iv,sv,cv,fv,dv];C1(pv,{mixoutsTo:Ue});Ue.noAuto;Ue.config;Ue.library;Ue.dom;const Fi=Ue.parse;Ue.findIconDefinition;Ue.toHtml;const mv=Ue.icon;Ue.layer;Ue.text;Ue.counter;var $p={exports:{}},hv="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",gv=hv,vv=gv;function Gp(){}function Hp(){}Hp.resetWarningCache=Gp;var yv=function(){function e(r,a,l,o,i,s){if(s!==vv){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Hp,resetWarningCache:Gp};return n.PropTypes=n,n};$p.exports=yv();var wv=$p.exports;const R=$c(wv);function Dc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ct(e){for(var t=1;t=0)&&(n[a]=e[a]);return n}function kv(e,t){if(e==null)return{};var n=xv(e,t),r,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ri(e){return Sv(e)||Ev(e)||Cv(e)||Nv()}function Sv(e){if(Array.isArray(e))return Di(e)}function Ev(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Cv(e,t){if(e){if(typeof e=="string")return Di(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Di(e,t)}}function Di(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{};if(typeof t=="string")return t;var r=(t.children||[]).map(function(s){return Yp(e,s)}),a=Object.keys(t.attributes||{}).reduce(function(s,u){var c=t.attributes[u];switch(u){case"class":s.attrs.className=c,delete t.attributes.class;break;case"style":s.attrs.style=Ov(c);break;default:u.indexOf("aria-")===0||u.indexOf("data-")===0?s.attrs[u.toLowerCase()]=c:s.attrs[Zp(u)]=c}return s},{attrs:{}}),l=n.style,o=l===void 0?{}:l,i=kv(n,Tv);return a.attrs.style=ct(ct({},a.attrs.style),o),e.apply(void 0,[t.tag,ct(ct({},a.attrs),i)].concat(Ri(r)))}var Xp=!1;try{Xp=!0}catch{}function Pv(){if(!Xp&&console&&typeof console.error=="function"){var e;(e=console).error.apply(e,arguments)}}function Wc(e){if(e&&Cl(e)==="object"&&e.prefix&&e.iconName&&e.icon)return e;if(Fi.icon)return Fi.icon(e);if(e===null)return null;if(e&&Cl(e)==="object"&&e.prefix&&e.iconName)return e;if(Array.isArray(e)&&e.length===2)return{prefix:e[0],iconName:e[1]};if(typeof e=="string")return{prefix:"fas",iconName:e}}function To(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?Gn({},e,t):{}}var Uc={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1},Ie=bl.forwardRef(function(e,t){var n=ct(ct({},Uc),e),r=n.icon,a=n.mask,l=n.symbol,o=n.className,i=n.title,s=n.titleId,u=n.maskId,c=Wc(r),d=To("classes",[].concat(Ri(bv(n)),Ri((o||"").split(" ")))),m=To("transform",typeof n.transform=="string"?Fi.transform(n.transform):n.transform),y=To("mask",Wc(a)),k=mv(c,ct(ct(ct(ct({},d),m),y),{},{symbol:l,title:i,titleId:s,maskId:u}));if(!k)return Pv("Could not find icon",c),null;var S=k.abstract,T={ref:t};return Object.keys(n).forEach(function(p){Uc.hasOwnProperty(p)||(T[p]=n[p])}),Lv(S[0],T)});Ie.displayName="FontAwesomeIcon";Ie.propTypes={beat:R.bool,border:R.bool,beatFade:R.bool,bounce:R.bool,className:R.string,fade:R.bool,flash:R.bool,mask:R.oneOfType([R.object,R.array,R.string]),maskId:R.string,fixedWidth:R.bool,inverse:R.bool,flip:R.oneOf([!0,!1,"horizontal","vertical","both"]),icon:R.oneOfType([R.object,R.array,R.string]),listItem:R.bool,pull:R.oneOf(["right","left"]),pulse:R.bool,rotation:R.oneOf([0,90,180,270]),shake:R.bool,size:R.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:R.bool,spinPulse:R.bool,spinReverse:R.bool,symbol:R.oneOfType([R.bool,R.string]),title:R.string,titleId:R.string,transform:R.oneOfType([R.string,R.object]),swapOpacity:R.bool};var Lv=Yp.bind(null,bl.createElement);const Iv={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"]},Kp=Iv,Av={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"]},jv={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},zv=jv,Fv={prefix:"fas",iconName:"stop",icon:[384,512,[9209],"f04d","M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"]},Rv={prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"]},Qp={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},Dv={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},Wv={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},Uv=Wv,Vv={prefix:"fas",iconName:"brain",icon:[512,512,[129504],"f5dc","M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z"]};function Wi(e){return e.split(` +`).map((t,n)=>g.jsxs(bl.Fragment,{children:[t,g.jsx("br",{})]},n))}function Zl({children:e,fitScreen:t}){return g.jsx("div",{className:"overflow-y-auto h-full w-full",children:g.jsx("div",{className:`w-[40rem] max-w-full ${t?"h-full":"h-auto overflow-hidden"} px-4 flex flex-col mx-auto`,children:e})})}const Bv=()=>{};function $v(e,t=0,n=!0,r=!1){const a=B.useRef();B.useEffect(()=>{a.current=e}),B.useEffect(()=>{if(n){let l=function(){var i;(i=a.current)==null||i.call(a)};r&&l();const o=window.setInterval(l,t);return()=>{window.clearInterval(o)}}return Bv},[n,t,r])}function Gv(){const[e,t]=B.useState(""),{currentConvId:n,isGenerating:r,createCompletion:a,navigateTo:l,currModel:o,getWllamaInstance:i,stopCompletion:s}=ln(),{getConversationById:u,addMessageToConversation:c,editMessageInConversation:d,newConversation:m}=up();$v(Zv,500,r,!0);const y=u(n),k=async()=>{if(r)return;const S=(y==null?void 0:y.messages)??[],T=e;t("");const p={id:Date.now(),content:T,role:"user"},f={id:Date.now()+1,content:"",role:"assistant"};let h=y==null?void 0:y.id;if(h?(c(h,p),c(h,f)):(h=m(p).id,l(ae.CHAT,h),c(h,f)),!o)throw new Error("currModel is null");const x=await r0(i(),[...S,p]);console.log({formattedChat:x}),await a(x,N=>{d(h,f.id,N)})};return g.jsxs(Zl,{fitScreen:!0,children:[g.jsxs("div",{className:"chat-messages grow overflow-auto",id:"chat-history",children:[g.jsx("div",{className:"h-10"}),y?g.jsx(g.Fragment,{children:y.messages.map(S=>S.role==="user"?g.jsx("div",{className:"chat chat-end",children:g.jsx("div",{className:"chat-bubble",children:Wi(S.content)})},S.id):g.jsx("div",{className:"chat chat-start",children:g.jsxs("div",{className:"chat-bubble bg-base-100 text-base-content",children:[S.content.length===0&&r&&g.jsx("span",{className:"loading loading-dots"}),Wi(S.content)]})},S.id))}):g.jsx("div",{className:"pt-24 text-center text-xl",children:"Ask me something 👋"})]}),g.jsxs("div",{className:"flex flex-col input-message py-4",children:[r&&g.jsx("div",{className:"text-center",children:g.jsxs("button",{className:"btn btn-outline btn-sm mb-4",onClick:s,children:[g.jsx(Ie,{icon:Fv}),"Stop generation"]})}),o&&g.jsx("textarea",{className:"textarea textarea-bordered w-full",placeholder:"Your message...",disabled:r,value:e,onChange:S=>t(S.target.value),onKeyDown:S=>{S.keyCode==13&&S.shiftKey==!1&&(S.preventDefault(),k())}}),!o&&g.jsx(Hv,{}),g.jsx("small",{className:"text-center mx-auto opacity-70 pt-2",children:"wllama may generate inaccurate information. Use with your own risk."})]})]})}function Hv(){const{navigateTo:e}=ln();return g.jsxs("div",{role:"alert",className:"alert",children:[g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-6 w-6 shrink-0 stroke-current",fill:"none",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),g.jsx("span",{children:"Model is not loaded"}),g.jsx("div",{children:g.jsx("button",{className:"btn btn-sm btn-primary",onClick:()=>e(ae.MODEL),children:"Select model"})})]})}const Zv=()=>{const e=document.getElementById("chat-history");e==null||e.scrollTo({top:e.scrollHeight,behavior:"smooth"})};function Yv(){const{navigateTo:e}=ln();return g.jsx(Zl,{children:g.jsxs("div",{className:"guide-text pt-16",children:[g.jsx("h1",{className:"text-2xl font-bold mb-4",children:"Wllama 🦙"}),g.jsxs("div",{className:"mb-3",children:["Wllama is a project based on"," ",g.jsx("a",{href:"https://github.com/ggerganov/llama.cpp",target:"_blank",rel:"noopener",children:"llama.cpp"}),". It enables running LLM inference directly on browser by leveraging the power of ",g.jsx("b",{children:"WebAssembly"}),". It accepts GGUF as model format."]}),g.jsxs("div",{className:"mb-3",children:["Please note that:",g.jsxs("ul",{children:[g.jsx("li",{children:"Due to WebAssembly overhead, performance will not be as good as running llama.cpp in native. Performance degradation can range from 25% to 50%."}),g.jsxs("li",{children:["Due to memory constraint of WebAssembly and emscripten, models larger than 2GB will need to be split."," ",g.jsx("a",{href:"https://github.com/ngxson/wllama?tab=readme-ov-file#split-model",target:"_blank",rel:"noopener",children:"Click here to learn more"})]}),g.jsx("li",{children:"Large model may not fit into RAM, (again) due to memory constraint of WebAssembly."}),g.jsx("li",{children:"Running on smartphone maybe buggy."}),g.jsxs("li",{children:[g.jsx("b",{children:"WebGPU is not supported"}),". We're still working hard to add support for WebGPU."]})]})]}),g.jsxs("div",{className:"mb-3",children:["To get started, go to"," ",g.jsx("button",{className:"btn btn-sm btn-primary btn-outline",onClick:()=>e(ae.MODEL),children:"Manage models"})," ","page to select a model."]}),g.jsx("h1",{className:"text-xl font-bold mb-4 mt-6",children:"Reporting bugs"}),g.jsxs("div",{className:"mb-3",children:["Wllama is in development and many bugs are expected to happen. If you find a bug, please"," ",g.jsx("a",{href:"https://github.com/ngxson/wllama/issues",target:"_blank",rel:"noopener",children:"open a issue"})," ","with log copied from"," ",g.jsx("button",{className:"btn btn-sm btn-primary btn-outline",onClick:()=>e(ae.LOG),children:"Debug log"})]})]})})}function Xv(){return g.jsx(Zl,{children:g.jsxs("div",{className:"debug-log-screen pt-8",children:[g.jsx("h1",{className:"text-2xl mb-4",children:"Debug log"}),g.jsxs("div",{className:"font-mono bg-base-200 p-2 rounded-lg text-sm mb-16",children:[Ve.content.length===0&&g.jsx("span",{children:"(Log is empty. Please firstly load a model)"}),Ve.content.map((e,t)=>g.jsxs(bl.Fragment,{children:[Wi(e),g.jsx("br",{})]},t))]})]})})}function Kv(){const[e,t]=B.useState(!1),{models:n,removeModel:r,isLoadingModel:a,isDownloading:l,currModel:o,currParams:i,setParams:s}=ln(),u=!!(o||l||a),c=d=>m=>{s({...i,[d]:parseFloat(m.target.value||-1)})};return g.jsxs(Zl,{children:[g.jsxs("div",{className:"inference-params pt-8",children:[g.jsx("h1",{className:"text-2xl mb-4",children:"Inference parameters"}),g.jsxs("label",{className:"input input-bordered flex items-center gap-2 mb-2",children:["# threads",g.jsx("input",{type:"number",className:"grow",placeholder:"(auto detected)",min:"1",max:"100",step:"1",onChange:c("nThreads"),value:i.nThreads<1?"":i.nThreads,disabled:u})]}),g.jsxs("label",{className:"input input-bordered flex items-center gap-2 mb-2",children:["Context size",g.jsx("input",{type:"number",className:"grow",min:"128",step:"1",onChange:c("nContext"),value:i.nContext,disabled:u})]}),g.jsxs("label",{className:"input input-bordered flex items-center gap-2 mb-2",children:["Max generated tokens",g.jsx("input",{type:"number",className:"grow",min:"10",step:"1",onChange:c("nPredict"),value:i.nPredict})]}),g.jsxs("label",{className:"input input-bordered flex items-center gap-2 mb-2",children:["Temperature",g.jsx("input",{type:"number",className:"grow",min:"0.0",step:"0.05",onChange:c("temperature"),value:i.temperature})]}),g.jsx("button",{className:"btn btn-sm mr-2",onClick:()=>s(ip),children:"Reset params"}),g.jsx("button",{className:"btn btn-sm mr-2",onClick:async()=>{if(confirm("This will remove all downloaded model files from cache. Continue?"))for(const d of n)await r(d)},disabled:u,children:"Clear cache"})]}),g.jsxs("div",{className:"model-management",children:[g.jsxs("h1",{className:"text-2xl mt-6 mb-4",children:["Custom models",g.jsx("button",{className:"btn btn-primary btn-outline btn-sm ml-6",onClick:()=>t(!0),children:"+ Add GGUF"})]}),n.filter(d=>d.userAdded).map(d=>g.jsx(Vc,{model:d,blockModelBtn:u},d.url))]}),g.jsxs("div",{className:"model-management",children:[g.jsx("h1",{className:"text-2xl mt-6 mb-4",children:"Recommended models"}),n.filter(d=>!d.userAdded).map(d=>g.jsx(Vc,{model:d,blockModelBtn:u},d.url))]}),g.jsx("div",{className:"h-10"}),e&&g.jsx(Qv,{onClose:()=>t(!1)})]})}function Qv({onClose:e}){const{isLoadingModel:t,addCustomModel:n}=ln(),[r,a]=B.useState(""),[l,o]=B.useState(),i=async()=>{try{await n(r),e()}catch(s){o((s==null?void 0:s.message)??"unknown error")}};return g.jsx("dialog",{className:"modal modal-open",children:g.jsxs("div",{className:"modal-box",children:[g.jsx("h3",{className:"font-bold text-lg",children:"Add custom GGUF"}),g.jsxs("div",{className:"mt-4",children:["Max GGUF file size is 2GB. If your model is bigger than 2GB, please"," ",g.jsx("a",{href:"https://github.com/ngxson/wllama?tab=readme-ov-file#split-model",target:"_blank",rel:"noopener",className:"text-primary",children:"follow this guide"})," ","to split it into smaller shards."]}),g.jsx("div",{className:"mt-4",children:g.jsxs("label",{className:"input input-bordered flex items-center gap-2 mb-2",children:["URL",g.jsx("input",{type:"text",className:"grow",placeholder:"https://example.com/your_model-00001-of-00XXX.gguf",value:r,onChange:s=>a(s.target.value)})]})}),l&&g.jsxs("div",{className:"mt-4 text-error",children:["Error: ",l]}),g.jsxs("div",{className:"modal-action",children:[g.jsxs("button",{className:"btn btn-primary",disabled:t||r.length<5,onClick:i,children:[t&&g.jsx("span",{className:"loading loading-spinner"}),"Add model"]}),g.jsx("button",{className:"btn",disabled:t,onClick:e,children:"Close"})]})]})})}function Vc({model:e,blockModelBtn:t}){const{downloadModel:n,removeModel:r,loadModel:a,unloadModel:l,removeCustomModel:o,currRuntimeInfo:i}=ln(),s=e,u=parseInt(Math.round(s.downloadPercent*100).toString());return g.jsx("div",{className:`card bg-base-100 w-full mb-2 ${s.state===q.LOADED?"border-2 border-primary":""}`,children:g.jsxs("div",{className:"card-body p-4 flex flex-row",children:[g.jsxs("div",{className:"grow",children:[g.jsx("b",{children:s.name}),g.jsx("br",{}),g.jsxs("small",{children:["Size: ",a0(s.size),s.size>op&&g.jsx("div",{className:"tooltip tooltip-right","data-tip":"Big model size, may not be able to load due to RAM limitation",children:g.jsx("span",{className:"text-yellow-300 ml-2",children:g.jsx(Ie,{icon:Uv})})}),s.state==q.DOWNLOADING?` - Downloaded: ${u}%`:""]}),s.state===q.LOADED&&i&&g.jsxs(g.Fragment,{children:[g.jsx("br",{}),g.jsx(Bc,{text:"Multithread",on:i.isMultithread}),"    ",g.jsx(Bc,{text:"Chat template",on:i.hasChatTemplate})]}),s.state===q.DOWNLOADING&&g.jsx("div",{children:g.jsx("progress",{className:"progress progress-primary w-full",value:u,max:"100"})}),s.state===q.LOADING&&g.jsx("div",{children:g.jsx("progress",{className:"progress progress-primary w-full"})})]}),g.jsxs("div",{children:[s.state===q.NOT_DOWNLOADED&&g.jsx("button",{className:"btn btn-primary btn-sm mr-2",onClick:()=>n(s),disabled:t,children:"Download"}),s.state===q.READY&&g.jsxs(g.Fragment,{children:[g.jsx("button",{className:"btn btn-primary btn-sm mr-2",onClick:()=>a(s),disabled:t,children:"Load model"}),g.jsx("button",{className:"btn btn-outline btn-error btn-sm mr-2",onClick:()=>{confirm("Are you sure to remove this model from cache?")&&r(s)},disabled:t,children:g.jsx(Ie,{icon:Kp})})]}),s.state===q.LOADED&&g.jsx("button",{className:"btn btn-outline btn-primary btn-sm mr-2",onClick:()=>l(),children:"Unload"}),s.state===q.NOT_DOWNLOADED&&s.userAdded&&g.jsx("button",{className:"btn btn-outline btn-error btn-sm mr-2",onClick:()=>{confirm("Are you sure to remove this model from the list?")&&o(s)},disabled:t,children:g.jsx(Ie,{icon:Qp})}),s.state==q.DOWNLOADING&&g.jsx("span",{className:"loading loading-spinner"})]})]})},s.url)}function Bc({text:e,on:t}){return g.jsxs(g.Fragment,{children:[t?g.jsx("span",{className:"text-green-300",children:g.jsx(Ie,{icon:Dv})}):g.jsx("span",{className:"text-red-400",children:g.jsx(Ie,{icon:Qp})}),g.jsxs("span",{className:"text-sm",children:[" ",e]})]})}function Jv(){return g.jsxs("div",{className:"navbar bg-base-100 shadow-md z-40",children:[g.jsx("div",{className:"flex-none",children:g.jsx("label",{htmlFor:"my-drawer-2",className:"btn btn-square btn-ghost flex lg:hidden",children:g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",className:"inline-block h-5 w-5 stroke-current",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M4 6h16M4 12h16M4 18h16"})})})}),g.jsx("a",{className:"btn btn-ghost text-xl",children:"wllama"})]})}function qv({children:e}){const{currentConvId:t,navigateTo:n,currScreen:r,currModel:a}=ln(),{conversations:l,getConversationById:o,deleteConversation:i}=up(),s=o(t);return g.jsxs(g.Fragment,{children:[g.jsx("input",{id:"my-drawer-2",type:"checkbox",className:"drawer-toggle"}),g.jsxs("div",{className:"drawer-side h-screen lg:h-[calc(100vh-4rem)] z-50",children:[g.jsx("label",{htmlFor:"my-drawer-2","aria-label":"close sidebar",className:"drawer-overlay block lg:hidden"}),g.jsxs("div",{className:"h-screen lg:max-h-[calc(100vh-4rem)] flex flex-col text-base-content bg-base-200",children:[g.jsx("div",{className:"grow w-80 overflow-auto p-4",children:g.jsxs("ul",{className:"grow menu gap-1",children:[g.jsx("li",{onClick:()=>n(ae.CHAT),children:g.jsx("a",{className:!s&&r===ae.CHAT?"active":"",children:"+ New conversation"})}),l.map(u=>{var c;return g.jsx("li",{onClick:()=>n(ae.CHAT,u.id),children:g.jsxs("a",{className:`group ${u.id===t?"active":""}`,children:[(c=u.messages[0])==null?void 0:c.content,g.jsx("span",{className:"text-right hidden group-hover:inline cursor-pointer",children:g.jsx(Ie,{icon:Kp,onClick:d=>{d.preventDefault(),confirm("Are you sure to delete this conversation?")&&(n(ae.CHAT),i(u.id))}})})]})},u.id)})]})}),g.jsxs("div",{className:"w-80 px-4 pt-0 pb-8",children:[g.jsx("div",{className:"divider my-2"}),a&&g.jsxs("div",{className:"text-sm px-4 pb-2",children:["Model: ",a.name]}),g.jsxs("ul",{className:"menu gap-1",children:[g.jsx("li",{onClick:()=>n(ae.GUIDE),children:g.jsxs("a",{className:r===ae.GUIDE?"active":"",children:[g.jsx(Ie,{icon:zv})," Guide"]})}),g.jsx("li",{onClick:()=>n(ae.MODEL),children:g.jsxs("a",{className:r===ae.MODEL?"active":"",children:[g.jsx(Ie,{icon:Vv})," Manage models"]})}),g.jsx("li",{onClick:()=>n(ae.LOG),children:g.jsxs("a",{className:r===ae.LOG?"active":"",children:[g.jsx(Ie,{icon:Rv})," Debug log"]})}),g.jsx("li",{children:g.jsxs("a",{href:"https://github.com/ngxson/wllama",target:"_blank",rel:"noopener",children:[g.jsx(Ie,{icon:Av})," Github"]})})]})]})]})]}),g.jsx("div",{className:"drawer-content grow",children:e})]})}function ey(){return g.jsx(l0,{children:g.jsx(T0,{children:g.jsx(ty,{})})})}function ty(){const{currScreen:e}=ln();return g.jsxs("div",{className:"flex flex-col drawer h-screen w-screen overflow-hidden",children:[g.jsx(Jv,{}),g.jsx("div",{className:"grow flex flex-row lg:drawer-open h-[calc(100vh-4rem)]",children:g.jsxs(qv,{children:[e===ae.MODEL&&g.jsx(Kv,{}),e===ae.CHAT&&g.jsx(Gv,{}),e===ae.GUIDE&&g.jsx(Yv,{}),e===ae.LOG&&g.jsx(Xv,{})]})})]})}Mo.createRoot(document.getElementById("root")).render(g.jsx(ey,{}));