var KG=Object.create;var oI=Object.defineProperty;var ZG=Object.getOwnPropertyDescriptor;var $G=Object.getOwnPropertyNames;var JG=Object.getPrototypeOf,e9=Object.prototype.hasOwnProperty;var Da=(n,e)=>()=>(n&&(e=n(n=0)),e);var to=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),pu=(n,e)=>{for(var t in e)oI(n,t,{get:e[t],enumerable:!0})},t9=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $G(e))!e9.call(n,r)&&r!==t&&oI(n,r,{get:()=>e[r],enumerable:!(i=ZG(e,r))||i.enumerable});return n};var ci=(n,e,t)=>(t=n!=null?KG(JG(n)):{},t9(e||!n||!n.__esModule?oI(t,"default",{value:n,enumerable:!0}):t,n));var fP=to(Ln=>{"use strict";var cI=Symbol.for("react.transitional.element"),n9=Symbol.for("react.portal"),i9=Symbol.for("react.fragment"),r9=Symbol.for("react.strict_mode"),a9=Symbol.for("react.profiler"),s9=Symbol.for("react.consumer"),o9=Symbol.for("react.context"),l9=Symbol.for("react.forward_ref"),u9=Symbol.for("react.suspense"),c9=Symbol.for("react.memo"),iP=Symbol.for("react.lazy"),f9=Symbol.for("react.activity"),d9=Symbol.for("react.view_transition"),JF=Symbol.iterator;function h9(n){return n===null||typeof n!="object"?null:(n=JF&&n[JF]||n["@@iterator"],typeof n=="function"?n:null)}var rP={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},aP=Object.assign,sP={};function Nv(n,e,t){this.props=n,this.context=e,this.refs=sP,this.updater=t||rP}Nv.prototype.isReactComponent={};Nv.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Nv.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function oP(){}oP.prototype=Nv.prototype;function fI(n,e,t){this.props=n,this.context=e,this.refs=sP,this.updater=t||rP}var dI=fI.prototype=new oP;dI.constructor=fI;aP(dI,Nv.prototype);dI.isPureReactComponent=!0;var eP=Array.isArray;function uI(){}var Yi={H:null,A:null,T:null,S:null},lP=Object.prototype.hasOwnProperty;function hI(n,e,t){var i=t.ref;return{$$typeof:cI,type:n,key:e,ref:i!==void 0?i:null,props:t}}function p9(n,e){return hI(n.type,e,n.props)}function pI(n){return typeof n=="object"&&n!==null&&n.$$typeof===cI}function m9(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(t){return e[t]})}var tP=/\/+/g;function lI(n,e){return typeof n=="object"&&n!==null&&n.key!=null?m9(""+n.key):e.toString(36)}function _9(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(uI,uI):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function Lv(n,e,t,i,r){var a=typeof n;(a==="undefined"||a==="boolean")&&(n=null);var s=!1;if(n===null)s=!0;else switch(a){case"bigint":case"string":case"number":s=!0;break;case"object":switch(n.$$typeof){case cI:case n9:s=!0;break;case iP:return s=n._init,Lv(s(n._payload),e,t,i,r)}}if(s)return r=r(n),s=i===""?"."+lI(n,0):i,eP(r)?(t="",s!=null&&(t=s.replace(tP,"$&/")+"/"),Lv(r,e,t,"",function(f){return f})):r!=null&&(pI(r)&&(r=p9(r,t+(r.key==null||n&&n.key===r.key?"":(""+r.key).replace(tP,"$&/")+"/")+s)),e.push(r)),1;s=0;var l=i===""?".":i+":";if(eP(n))for(var c=0;c{"use strict";dP.exports=fP()});var IP=to(ir=>{"use strict";function xI(n,e){var t=n.length;n.push(e);e:for(;0>>1,r=n[i];if(0>>1;iv3(l,t))cv3(f,l)?(n[i]=f,n[c]=t,i=c):(n[i]=l,n[s]=t,i=s);else if(cv3(f,t))n[i]=f,n[c]=t,i=c;else break e}}return e}function v3(n,e){var t=n.sortIndex-e.sortIndex;return t!==0?t:n.id-e.id}ir.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(SP=performance,ir.unstable_now=function(){return SP.now()}):(SI=Date,EP=SI.now(),ir.unstable_now=function(){return SI.now()-EP});var SP,SI,EP,yf=[],Yd=[],O9=1,Pl=null,Ja=3,TI=!1,sE=!1,oE=!1,MI=!1,TP=typeof setTimeout=="function"?setTimeout:null,MP=typeof clearTimeout=="function"?clearTimeout:null,wP=typeof setImmediate<"u"?setImmediate:null;function y3(n){for(var e=Ec(Yd);e!==null;){if(e.callback===null)b3(Yd);else if(e.startTime<=n)b3(Yd),e.sortIndex=e.expirationTime,xI(yf,e);else break;e=Ec(Yd)}}function AI(n){if(oE=!1,y3(n),!sE)if(Ec(yf)!==null)sE=!0,Bv||(Bv=!0,qv());else{var e=Ec(Yd);e!==null&&CI(AI,e.startTime-n)}}var Bv=!1,lE=-1,AP=5,CP=-1;function RP(){return MI?!0:!(ir.unstable_now()-CPn&&RP());){var i=Pl.callback;if(typeof i=="function"){Pl.callback=null,Ja=Pl.priorityLevel;var r=i(Pl.expirationTime<=n);if(n=ir.unstable_now(),typeof r=="function"){Pl.callback=r,y3(n),e=!0;break t}Pl===Ec(yf)&&b3(yf),y3(n)}else b3(yf);Pl=Ec(yf)}if(Pl!==null)e=!0;else{var a=Ec(Yd);a!==null&&CI(AI,a.startTime-n),e=!1}}break e}finally{Pl=null,Ja=t,TI=!1}e=void 0}}finally{e?qv():Bv=!1}}}var qv;typeof wP=="function"?qv=function(){wP(EI)}:typeof MessageChannel<"u"?(wI=new MessageChannel,xP=wI.port2,wI.port1.onmessage=EI,qv=function(){xP.postMessage(null)}):qv=function(){TP(EI,0)};var wI,xP;function CI(n,e){lE=TP(function(){n(ir.unstable_now())},e)}ir.unstable_IdlePriority=5;ir.unstable_ImmediatePriority=1;ir.unstable_LowPriority=4;ir.unstable_NormalPriority=3;ir.unstable_Profiling=null;ir.unstable_UserBlockingPriority=2;ir.unstable_cancelCallback=function(n){n.callback=null};ir.unstable_forceFrameRate=function(n){0>n||125i?(n.sortIndex=t,xI(Yd,n),Ec(yf)===null&&n===Ec(Yd)&&(oE?(MP(lE),lE=-1):oE=!0,CI(AI,t-i))):(n.sortIndex=r,xI(yf,n),sE||TI||(sE=!0,Bv||(Bv=!0,qv()))),n};ir.unstable_shouldYield=RP;ir.unstable_wrapCallback=function(n){var e=Ja;return function(){var t=Ja;Ja=e;try{return n.apply(this,arguments)}finally{Ja=t}}}});var S3=to((nse,LP)=>{"use strict";LP.exports=IP()});var OP=to(es=>{"use strict";var D9=tr();function kP(n){var e="https://react.dev/errors/"+n;if(1{"use strict";function DP(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(DP)}catch(n){console.error(n)}}DP(),FP.exports=OP()});var wB=to(iA=>{"use strict";var aa=S3(),E4=tr(),z9=PP();function ct(n){var e="https://react.dev/errors/"+n;if(1Kv||(n.current=pL[Kv],pL[Kv]=null,Kv--)}function $i(n,e){Kv++,pL[Kv]=n.current,n.current=e}var Nc=Dc(null),OE=Dc(null),uh=Dc(null),uM=Dc(null);function cM(n,e){switch($i(uh,e),$i(OE,n),$i(Nc,null),e.nodeType){case 9:case 11:n=(n=e.documentElement)&&(n=n.namespaceURI)?t4(n):0;break;default:if(n=e.tagName,e=e.namespaceURI)e=t4(e),n=$q(e,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}za(Nc),$i(Nc,n)}function _y(){za(Nc),za(OE),za(uh)}function mL(n){var e=n.memoizedState;e!==null&&(My._currentValue=e.memoizedState,$i(uM,n)),e=Nc.current;var t=$q(e,n.type);e!==t&&($i(OE,n),$i(Nc,t))}function fM(n){OE.current===n&&(za(Nc),za(OE)),uM.current===n&&(za(uM),My._currentValue=Cm)}var RI,HP;function $d(n){if(RI===void 0)try{throw Error()}catch(t){var e=t.stack.trim().match(/\n( *(at )?)/);RI=e&&e[1]||"",HP=-1)":-1r||c[i]!==f[r]){var p=` `+c[i].replace(" at new "," at ");return n.displayName&&p.includes("")&&(p=p.replace("",n.displayName)),p}while(1<=i&&0<=r);break}}}finally{II=!1,Error.prepareStackTrace=t}return(t=n?n.displayName||n.name:"")?$d(t):""}function X9(n,e){switch(n.tag){case 26:case 27:case 5:return $d(n.type);case 16:return $d("Lazy");case 13:return n.child!==e&&e!==null?$d("Suspense Fallback"):$d("Suspense");case 19:return $d("SuspenseList");case 0:case 15:return LI(n.type,!1);case 11:return LI(n.type.render,!1);case 1:return LI(n.type,!0);case 31:return $d("Activity");case 30:return $d("ViewTransition");default:return""}}function VP(n){try{var e="",t=null;do e+=X9(n,t),t=n,n=n.return;while(n);return e}catch(i){return` Error generating stack: `+i.message+` `+i.stack}}var _L=Object.prototype.hasOwnProperty,yN=aa.unstable_scheduleCallback,NI=aa.unstable_cancelCallback,Y9=aa.unstable_shouldYield,K9=aa.unstable_requestPaint,jo=aa.unstable_now,Z9=aa.unstable_getCurrentPriorityLevel,L4=aa.unstable_ImmediatePriority,N4=aa.unstable_UserBlockingPriority,dM=aa.unstable_NormalPriority,$9=aa.unstable_LowPriority,k4=aa.unstable_IdlePriority,J9=aa.log,e7=aa.unstable_setDisableYieldValue,ZE=null,Qo=null;function ih(n){if(typeof J9=="function"&&e7(n),Qo&&typeof Qo.setStrictMode=="function")try{Qo.setStrictMode(ZE,n)}catch{}}var Xo=Math.clz32?Math.clz32:i7,t7=Math.log,n7=Math.LN2;function i7(n){return n>>>=0,n===0?32:31-(t7(n)/n7|0)|0}var x3=256,T3=262144,M3=4194304;function wm(n){var e=n&42;if(e!==0)return e;switch(n&-n){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&-n;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function UM(n,e,t){var i=n.pendingLanes;if(i===0)return 0;var r=0,a=n.suspendedLanes,s=n.pingedLanes;n=n.warmLanes;var l=i&134217727;return l!==0?(i=l&~a,i!==0?r=wm(i):(s&=l,s!==0?r=wm(s):t||(t=l&~n,t!==0&&(r=wm(t))))):(l=i&~a,l!==0?r=wm(l):s!==0?r=wm(s):t||(t=i&~n,t!==0&&(r=wm(t)))),r===0?0:e!==0&&e!==r&&(e&a)===0&&(a=r&-r,t=e&-e,a>=t||a===32&&(t&4194048)!==0)?e:r}function $E(n,e){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&e)===0}function O4(n,e){(e&8)!==0&&(e|=e&32);var t=n.entangledLanes;if(t!==0)for(n=n.entanglements,t&=e;0t;t++)e.push(n);return e}function JE(n,e){n.pendingLanes|=e,e!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function a7(n,e,t,i,r,a){var s=n.pendingLanes;n.pendingLanes=t,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=t,n.entangledLanes&=t,n.errorRecoveryDisabledLanes&=t,n.shellSuspendCounter=0;var l=n.entanglements,c=n.expirationTimes,f=n.hiddenUpdates;for(t=s&~t;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bL=!1;if(Mf)try{Hv={},Object.defineProperty(Hv,"passive",{get:function(){bL=!0}}),window.addEventListener("test",Hv,Hv),window.removeEventListener("test",Hv,Hv)}catch{bL=!1}var Hv,rh=null,xN=null,j3=null;function K4(){if(j3)return j3;var n,e=xN,t=e.length,i,r="value"in rh?rh.value:rh.textContent,a=r.length;for(n=0;n=SE),nU=" ",iU=!1;function $4(n,e){switch(n){case"keyup":return B7.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function J4(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var $v=!1;function V7(n,e){switch(n){case"compositionend":return J4(e);case"keypress":return e.which!==32?null:(iU=!0,nU);case"textInput":return n=e.data,n===nU&&iU?null:n;default:return null}}function G7(n,e){if($v)return n==="compositionend"||!MN&&$4(n,e)?(n=K4(),j3=xN=rh=null,$v=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function oU(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function lU(n,e){var t=oU(n);n=0;for(var i;t;){if(t.nodeType===3){if(i=n+t.textContent.length,n<=e&&i>=e)return{node:t,offset:e-n};n=i}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=oU(t)}}function iz(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?iz(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function rz(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var e=SL(n.document);e instanceof n.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)n=e.contentWindow;else break;e=SL(n.document)}return e}function AN(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}var $7=Mf&&"documentMode"in document&&11>=document.documentMode,Jv=null,EL=null,wE=null,wL=!1;function uU(n,e,t){var i=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;wL||Jv==null||Jv!==SL(i)||(i=Jv,"selectionStart"in i&&AN(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),wE&&PE(wE,i)||(wE=i,i=DM(EL,"onSelect"),0>=s,r-=s,Ic=1<<32-Xo(e)+r|t<H?(Z=Q,Q=null):Z=Q.sibling;var te=_(v,Q,O[H],k);if(te===null){Q===null&&(Q=Z);break}n&&Q&&te.alternate===null&&e(v,Q),M=a(te,M,H),G===null?q=te:G.sibling=te,G=te,Q=Z}if(H===O.length)return t(v,Q),Yn&&Ef(v,H),q;if(Q===null){for(;HH?(Z=Q,Q=null):Z=Q.sibling;var j=_(v,Q,te.value,k);if(j===null){Q===null&&(Q=Z);break}n&&Q&&j.alternate===null&&e(v,Q),M=a(j,M,H),G===null?q=j:G.sibling=j,G=j,Q=Z}if(te.done)return t(v,Q),Yn&&Ef(v,H),q;if(Q===null){for(;!te.done;H++,te=O.next())te=h(v,te.value,k),te!==null&&(M=a(te,M,H),G===null?q=te:G.sibling=te,G=te);return Yn&&Ef(v,H),q}for(Q=i(Q);!te.done;H++,te=O.next())te=g(Q,v,H,te.value,k),te!==null&&(n&&(Z=te.alternate,Z!==null&&Q.delete(Z.key===null?H:Z.key)),M=a(te,M,H),G===null?q=te:G.sibling=te,G=te);return n&&Q.forEach(function(he){return e(v,he)}),Yn&&Ef(v,H),q}function S(v,M,O,k){if(typeof O=="object"&&O!==null&&O.type===Yv&&O.key===null&&O.props.ref===void 0&&(O=O.props.children),typeof O=="object"&&O!==null){switch(O.$$typeof){case w3:e:{for(var q=O.key;M!==null;){if(M.key===q){if(q=O.type,q===Yv){if(M.tag===7){t(v,M.sibling),k=r(M,O.props.children),Zd(k,O),k.return=v,v=k;break e}}else if(M.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===eh&&xm(q)===M.type){t(v,M.sibling),k=r(M,O.props),Zd(k,O),k.return=v,v=k;break e}t(v,M);break}else e(v,M);M=M.sibling}O.type===Yv?(k=Rm(O.props.children,v.mode,k,O.key),Zd(k,O),k.return=v,v=k):(k=X3(O.type,O.key,O.props,null,v.mode,k),Zd(k,O),k.return=v,v=k)}return s(v);case _E:e:{for(q=O.key;M!==null;){if(M.key===q)if(M.tag===4&&M.stateNode.containerInfo===O.containerInfo&&M.stateNode.implementation===O.implementation){t(v,M.sibling),k=r(M,O.children||[]),k.return=v,v=k;break e}else{t(v,M);break}else e(v,M);M=M.sibling}k=HI(O,v.mode,k),k.return=v,v=k}return s(v);case eh:return O=xm(O),S(v,M,O,k)}if(gE(O))return E(v,M,O,k);if(cE(O)){if(q=cE(O),typeof q!="function")throw Error(ct(150));return O=q.call(O),x(v,M,O,k)}if(typeof O.then=="function")return S(v,M,N3(O),k);if(O.$$typeof===Cc)return S(v,M,L3(v,O),k);k3(v,O)}return typeof O=="string"&&O!==""||typeof O=="number"||typeof O=="bigint"?(O=""+O,M!==null&&M.tag===6?(t(v,M.sibling),k=r(M,O),k.return=v,v=k):(t(v,M),k=BI(O,v.mode,k),k.return=v,v=k),s(v)):t(v,M)}return function(v,M,O,k){try{qE=0;var q=S(v,M,O,k);return cy=null,q}catch(Q){if(Q===Ly||Q===jM)throw Q;var G=ao(29,Q,null,v.mode);return G.lanes=k,G.return=v,G}finally{}}}var Pm=yz(!0),bz=yz(!1),th=!1;function DN(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function RL(n,e){n=n.updateQueue,e.updateQueue===n&&(e.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function fh(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function dh(n,e,t){var i=n.updateQueue;if(i===null)return null;if(i=i.shared,(Ei&2)!==0){var r=i.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),i.pending=e,e=mM(n),fz(n,null,t),e}return GM(n,i,e,t),mM(n)}function TE(n,e,t){if(e=e.updateQueue,e!==null&&(e=e.shared,(t&4194048)!==0)){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,P4(n,t)}}function GI(n,e){var t=n.updateQueue,i=n.alternate;if(i!==null&&(i=i.updateQueue,t===i)){var r=null,a=null;if(t=t.firstBaseUpdate,t!==null){do{var s={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};a===null?r=a=s:a=a.next=s,t=t.next}while(t!==null);a===null?r=a=e:a=a.next=e}else r=a=e;t={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:a,shared:i.shared,callbacks:i.callbacks},n.updateQueue=t;return}n=t.lastBaseUpdate,n===null?t.firstBaseUpdate=e:n.next=e,t.lastBaseUpdate=e}var IL=!1;function ME(){if(IL){var n=uy;if(n!==null)throw n}}function AE(n,e,t,i){IL=!1;var r=n.updateQueue;th=!1;var a=r.firstBaseUpdate,s=r.lastBaseUpdate,l=r.shared.pending;if(l!==null){r.shared.pending=null;var c=l,f=c.next;c.next=null,s===null?a=f:s.next=f,s=c;var p=n.alternate;p!==null&&(p=p.updateQueue,l=p.lastBaseUpdate,l!==s&&(l===null?p.firstBaseUpdate=f:l.next=f,p.lastBaseUpdate=c))}if(a!==null){var h=r.baseState;s=0,p=f=c=null,l=a;do{var _=l.lane&-536870913,g=_!==l.lane;if(g?(fi&_)===_:(i&_)===_){_!==0&&_===Fm&&(IL=!0),p!==null&&(p=p.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var E=n,x=l;_=e;var S=t;switch(x.tag){case 1:if(E=x.payload,typeof E=="function"){h=E.call(S,h,_);break e}h=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=x.payload,_=typeof E=="function"?E.call(S,h,_):E,_==null)break e;h=Qi({},h,_);break e;case 2:th=!0}}_=l.callback,_!==null&&(n.flags|=64,g&&(n.flags|=8192),g=r.callbacks,g===null?r.callbacks=[_]:g.push(_))}else g={lane:_,tag:l.tag,payload:l.payload,callback:l.callback,next:null},p===null?(f=p=g,c=h):p=p.next=g,s|=_;if(l=l.next,l===null){if(l=r.shared.pending,l===null)break;g=l,l=g.next,g.next=null,r.lastBaseUpdate=g,r.shared.pending=null}}while(!0);p===null&&(c=h),r.baseState=c,r.firstBaseUpdate=f,r.lastBaseUpdate=p,a===null&&(r.shared.lanes=0),wh|=s,n.lanes=s,n.memoizedState=h}}function Sz(n,e){if(typeof n!="function")throw Error(ct(191,n));n.call(e)}function Ez(n,e){var t=n.callbacks;if(t!==null)for(n.callbacks=null,n=0;na?a:8;var s=An.T,l={};l.types=s!==null?s.types:null,An.T=l,YN(n,!1,e,t);try{var c=r(),f=An.S;if(f!==null&&f(l,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var p=uW(c,i);CE(n,e,p,Yo(n))}else CE(n,e,i,Yo(n))}catch(h){CE(n,e,{then:function(){},status:"rejected",reason:h},Yo())}finally{wi.p=a,s!==null&&l.types!==null&&(s.types=l.types),An.T=s}}function mW(){}function DL(n,e,t,i){if(n.tag!==5)throw Error(ct(476));var r=Qz(n).queue;jz(n,r,e,Cm,t===null?mW:function(){return Xz(n),t(i)})}function Qz(n){var e=n.memoizedState;if(e!==null)return e;e={memoizedState:Cm,baseState:Cm,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rf,lastRenderedState:Cm},next:null};var t={};return e.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rf,lastRenderedState:t},next:null},n.memoizedState=e,n=n.alternate,n!==null&&(n.memoizedState=e),e}function Xz(n){var e=Qz(n);e.next===null&&(e=n.alternate.memoizedState),CE(n,e.next.queue,{},Yo())}function XN(){return Ua(My)}function Yz(){return Rr().memoizedState}function Kz(){return Rr().memoizedState}function _W(n){for(var e=n.return;e!==null;){switch(e.tag){case 24:case 3:var t=Yo();n=fh(t);var i=dh(e,n,t);i!==null&&(so(i,e,t),TE(i,e,t)),e={cache:NN()},n.payload=e;return}e=e.return}}function gW(n,e,t){var i=Yo();t={lane:i,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},KM(n)?$z(e,t):(t=RN(n,e,t,i),t!==null&&(so(t,n,i),Jz(t,e,i)))}function Zz(n,e,t){var i=Yo();CE(n,e,t,i)}function CE(n,e,t,i){var r={lane:i,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(KM(n))$z(e,r);else{var a=n.alternate;if(n.lanes===0&&(a===null||a.lanes===0)&&(a=e.lastRenderedReducer,a!==null))try{var s=e.lastRenderedState,l=a(s,t);if(r.hasEagerState=!0,r.eagerState=l,Ko(l,s))return GM(n,e,r,0),ji===null&&VM(),!1}catch{}finally{}if(t=RN(n,e,r,i),t!==null)return so(t,n,i),Jz(t,e,i),!0}return!1}function YN(n,e,t,i){if(i={lane:2,revertLane:sk(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},KM(n)){if(e)throw Error(ct(479))}else e=RN(n,t,i,2),e!==null&&so(e,n,2)}function KM(n){var e=n.alternate;return n===Fn||e!==null&&e===Fn}function $z(n,e){fy=EM=!0;var t=n.pending;t===null?e.next=e:(e.next=t.next,t.next=e),n.pending=e}function Jz(n,e,t){if((t&4194048)!==0){var i=e.lanes;i&=n.pendingLanes,t|=i,e.lanes=t,P4(n,t)}}var xM={readContext:Ua,use:XM,useCallback:mr,useContext:mr,useEffect:mr,useImperativeHandle:mr,useLayoutEffect:mr,useInsertionEffect:mr,useMemo:mr,useReducer:mr,useRef:mr,useState:mr,useDebugValue:mr,useDeferredValue:mr,useTransition:mr,useSyncExternalStore:mr,useId:mr,useHostTransitionStatus:mr,useFormState:mr,useActionState:mr,useOptimistic:mr,useMemoCache:mr,useCacheRefresh:mr,useEffectEvent:mr},eq={readContext:Ua,use:XM,useCallback:function(n,e){return Es().memoizedState=[n,e===void 0?null:e],n},useContext:Ua,useEffect:TU,useImperativeHandle:function(n,e,t){t=t!=null?t.concat([n]):null,$3(4194308,4,Bz.bind(null,e,n),t)},useLayoutEffect:function(n,e){return $3(4194308,4,n,e)},useInsertionEffect:function(n,e){$3(4,2,n,e)},useMemo:function(n,e){var t=Es();e=e===void 0?null:e;var i=n();if(Um){ih(!0);try{n()}finally{ih(!1)}}return t.memoizedState=[i,e],i},useReducer:function(n,e,t){var i=Es();if(t!==void 0){var r=t(e);if(Um){ih(!0);try{t(e)}finally{ih(!1)}}}else r=e;return i.memoizedState=i.baseState=r,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:r},i.queue=n,n=n.dispatch=gW.bind(null,Fn,n),[i.memoizedState,n]},useRef:function(n){var e=Es();return n={current:n},e.memoizedState=n},useState:function(n){n=kL(n);var e=n.queue,t=Zz.bind(null,Fn,e);return e.dispatch=t,[n.memoizedState,t]},useDebugValue:jN,useDeferredValue:function(n,e){var t=Es();return QN(t,n,e)},useTransition:function(){var n=kL(!1);return n=jz.bind(null,Fn,n.queue,!0,!1),Es().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,e,t){var i=Fn,r=Es();if(Yn){if(t===void 0)throw Error(ct(407));t=t()}else{if(t=e(),ji===null)throw Error(ct(349));(fi&127)!==0||Az(i,e,t)}r.memoizedState=t;var a={value:t,getSnapshot:e};return r.queue=a,TU(Rz.bind(null,i,a,n),[n]),i.flags|=2048,yy(9,{destroy:void 0},Cz.bind(null,i,a,t,e),null),t},useId:function(){var n=Es(),e=ji.identifierPrefix;if(Yn){var t=Lc,i=Ic;t=(i&~(1<<32-Xo(i)-1)).toString(32)+t,e="_"+e+"R_"+t,t=wM++,0<\/script>",a=a.removeChild(a.firstChild);break;case"select":a=typeof i.is=="string"?s.createElement("select",{is:i.is}):s.createElement("select"),i.multiple?a.multiple=!0:i.size&&(a.size=i.size);break;default:a=typeof i.is=="string"?s.createElement(r,{is:i.is}):s.createElement(r)}}a[Pa]=e,a[lo]=i;e:for(s=e.child;s!==null;){if(s.tag===5||s.tag===6)a.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break e;for(;s.sibling===null;){if(s.return===null||s.return===e)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}e.stateNode=a;e:switch(Ba(a,r,i),r){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&Sf(e)}}return Ki(e),e.subtreeFlags&=-33554433,XI(e,e.type,n===null?null:n.memoizedProps,e.pendingProps,t),null;case 6:if(n&&e.stateNode!=null)n.memoizedProps!==i&&Sf(e);else{if(typeof i!="string"&&e.stateNode===null)throw Error(ct(166));if(n=uh.current,Vv(e)){if(n=e.stateNode,t=e.memoizedProps,i=null,r=Sa,r!==null)switch(r.tag){case 27:case 5:i=r.memoizedProps}n[Pa]=e,n=!!(n.nodeValue===t||i!==null&&i.suppressHydrationWarning===!0||Zq(n.nodeValue,t)),n||bh(e,!0)}else n=WE(n).createTextNode(i),n[Pa]=e,e.stateNode=n}return Ki(e),null;case 31:if(t=e.memoizedState,n===null||n.memoizedState!==null){if(i=Vv(e),t!==null){if(n===null){if(!i)throw Error(ct(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(ct(557));n[Pa]=e}else km(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Ki(e),n=!1}else t=VI(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=t),n=!0;if(!n)return e.flags&256?(Vo(e),e):(Vo(e),null);if((e.flags&128)!==0)throw Error(ct(558))}return Ki(e),null;case 13:if(i=e.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(r=Vv(e),i!==null&&i.dehydrated!==null){if(n===null){if(!r)throw Error(ct(318));if(r=e.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(ct(317));r[Pa]=e}else km(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Ki(e),r=!1}else r=VI(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=r),r=!0;if(!r)return e.flags&256?(Vo(e),e):(Vo(e),null)}return Vo(e),(e.flags&128)!==0?(e.lanes=t,e):(t=i!==null,n=n!==null&&n.memoizedState!==null,t&&(i=e.child,r=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(r=i.alternate.memoizedState.cachePool.pool),a=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(a=i.memoizedState.cachePool.pool),a!==r&&(i.flags|=2048)),t!==n&&t&&(e.child.flags|=8192),F3(e,e.updateQueue),Ki(e),null);case 4:return _y(),n===null&&ok(e.stateNode.containerInfo),e.flags|=67108864,Ki(e),null;case 10:return Tf(e.type),Ki(e),null;case 19:if(PN(e),i=e.memoizedState,i===null)return Ki(e),null;if(r=(e.flags&128)!==0,a=i.rendering,a===null)if(r)dE(i,!1);else{if(_r!==0||n!==null&&(n.flags&128)!==0)for(n=e.child;n!==null;){if(a=SM(n),a!==null){for(e.flags|=128,dE(i,!1),n=a.updateQueue,e.updateQueue=n,F3(e,n),e.subtreeFlags=0,n=t,t=e.child;t!==null;)dz(t,n),t=t.sibling;return BE(e,qa.current&1|2),Yn&&Ef(e,i.treeForkCount),e.child}n=n.sibling}i.tail!==null&&jo()>LM&&(e.flags|=128,r=!0,dE(i,!1),e.lanes=4194304)}else{if(!r)if(n=SM(a),n!==null){if(e.flags|=128,r=!0,n=n.updateQueue,e.updateQueue=n,F3(e,n),dE(i,!0),i.tail===null&&i.tailMode!=="collapsed"&&i.tailMode!=="visible"&&!a.alternate&&!Yn)return Ki(e),null}else 2*jo()-i.renderingStartTime>LM&&t!==536870912&&(e.flags|=128,r=!0,dE(i,!1),e.lanes=4194304);i.isBackwards?(a.sibling=e.child,e.child=a):(n=i.last,n!==null?n.sibling=a:e.child=a,i.last=a)}if(i.tail!==null){n=i.tail;e:{for(t=n;t!==null;){if(t.alternate!==null){t=!1;break e}t=t.sibling}t=!0}return i.rendering=n,i.tail=n.sibling,i.renderingStartTime=jo(),n.sibling=null,a=qa.current,a=r?a&1|2:a&1,i.tailMode==="visible"||i.tailMode==="collapsed"||!t||Yn?BE(e,a):(t=a,$i(Ha,e),$i(qa,t),ts===null&&(ts=e)),Yn&&Ef(e,i.treeForkCount),n}return Ki(e),null;case 22:case 23:return Vo(e),FN(),i=e.memoizedState!==null,n!==null?n.memoizedState!==null!==i&&(e.flags|=8192):i&&(e.flags|=8192),i?(t&536870912)!==0&&(e.flags&128)===0&&(Ki(e),e.subtreeFlags&6&&(e.flags|=8192)):Ki(e),t=e.updateQueue,t!==null&&F3(e,t.retryQueue),t=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(t=n.memoizedState.cachePool.pool),i=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),i!==t&&(e.flags|=2048),n!==null&&za(Im),null;case 24:return t=null,n!==null&&(t=n.memoizedState.cache),e.memoizedState.cache!==t&&(e.flags|=2048),Tf(jr),Ki(e),null;case 25:return null;case 30:return e.flags|=33554432,Ki(e),null}throw Error(ct(156,e.tag))}function xW(n,e){switch(LN(e),e.tag){case 1:return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return Tf(jr),_y(),n=e.flags,(n&65536)!==0&&(n&128)===0?(e.flags=n&-65537|128,e):null;case 26:case 27:case 5:return fM(e),null;case 31:if(e.memoizedState!==null){if(Vo(e),e.alternate===null)throw Error(ct(340));km()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 13:if(Vo(e),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(ct(340));km()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return PN(e),n=e.flags,n&65536?(e.flags=n&-65537|128,n=e.memoizedState,n!==null&&(n.rendering=null,n.tail=null),e.flags|=4,e):null;case 4:return _y(),null;case 10:return Tf(e.type),null;case 22:case 23:return Vo(e),FN(),n!==null&&za(Im),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 24:return Tf(jr),null;case 25:return null;default:return null}}function fq(n,e){switch(LN(e),e.tag){case 3:Tf(jr),_y();break;case 26:case 27:case 5:fM(e);break;case 4:_y();break;case 31:e.memoizedState!==null&&Vo(e);break;case 13:Vo(e);break;case 19:PN(e);break;case 10:Tf(e.type);break;case 22:case 23:Vo(e),FN(),n!==null&&za(Im);break;case 24:Tf(jr)}}function rw(n,e){try{var t=e.updateQueue,i=t!==null?t.lastEffect:null;if(i!==null){var r=i.next;t=r;do{if((t.tag&n)===n){i=void 0;var a=t.create,s=t.inst;i=a(),s.destroy=i}t=t.next}while(t!==r)}}catch(l){Ui(e,e.return,l)}}function Eh(n,e,t){try{var i=e.updateQueue,r=i!==null?i.lastEffect:null;if(r!==null){var a=r.next;i=a;do{if((i.tag&n)===n){var s=i.inst,l=s.destroy;if(l!==void 0){s.destroy=void 0,r=e;var c=t,f=l;try{f()}catch(p){Ui(r,c,p)}}}i=i.next}while(i!==a)}}catch(p){Ui(e,e.return,p)}}function dq(n){var e=n.updateQueue;if(e!==null){var t=n.stateNode;try{Ez(e,t)}catch(i){Ui(n,n.return,i)}}}function hq(n,e,t){t.props=zm(n.type,n.memoizedProps),t.state=n.memoizedState;try{t.componentWillUnmount()}catch(i){Ui(n,e,i)}}function Mc(n,e){try{var t=n.ref;if(t!==null){switch(n.tag){case 26:case 27:case 5:var i=n.stateNode;break;case 30:var r=n.stateNode,a=Af(n.memoizedProps,r);(r.ref===null||r.ref.name!==a)&&(r.ref=iB(a)),i=r.ref;break;case 7:if(n.stateNode===null){var s=new Zo(n);oo(n.child,!1,dj,s,void 0,void 0),n.stateNode=s}i=n.stateNode;break;default:i=n.stateNode}typeof t=="function"?n.refCleanup=t(i):t.current=i}}catch(l){Ui(n,e,l)}}function Fa(n,e){var t=n.ref,i=n.refCleanup;if(t!==null)if(typeof i=="function")try{i()}catch(r){Ui(n,e,r)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof t=="function")try{t(null)}catch(r){Ui(n,e,r)}else t.current=null}function MM(n,e){if((n.tag===5||n.tag===27||n.tag===6)&&n.alternate===null&&e!==null)for(var t=0;t title"))),Ba(i,e,t),i[Pa]=n,ba(i),e=i;break e;case"link":if(a=h4("link","href",r).get(e+(t.href||""))){for(s=0;sS&&(s=S,S=x,x=s);var v=lU(l,x),M=lU(l,S);if(v&&M&&(g.rangeCount!==1||g.anchorNode!==v.node||g.anchorOffset!==v.offset||g.focusNode!==M.node||g.focusOffset!==M.offset)){var O=h.createRange();O.setStart(v.node,v.offset),g.removeAllRanges(),x>S?(g.addRange(O),g.extend(M.node,M.offset)):(O.setEnd(M.node,M.offset),g.addRange(O))}}}}for(h=[],g=l;g=g.parentNode;)g.nodeType===1&&h.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;lt?32:t,An.T=null,t=eN,eN=null;var a=yu,s=kc;if(cr=0,qm=yu=null,kc=0,(Ei&6)!==0)throw Error(ct(331));var l=Ei;if(Ei|=4,Nq(a.current),Rq(a,a.current,s,t),Ei=l,aw(0,!1),Qo&&typeof Qo.onPostCommitFiberRoot=="function")try{Qo.onPostCommitFiberRoot(ZE,a)}catch{}return!0}finally{wi.p=r,An.T=i,Gq(n,e)}}function QU(n,e,t){e=Vl(t,e),e=PL(n.stateNode,e,2),n=dh(n,e,2),n!==null&&(JE(n,2),Fc(n))}function Ui(n,e,t){if(n.tag===3)QU(n,n,t);else for(;e!==null;){if(e.tag===3){QU(e,n,t);break}else if(e.tag===1){var i=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(mh===null||!mh.has(i))){n=Vl(t,n),t=aq(2),i=dh(e,t,2),i!==null&&(sq(t,i,e,n),JE(i,2),Fc(i));break}}e=e.return}}function JI(n,e,t){var i=n.pingCache;if(i===null){i=n.pingCache=new CW;var r=new Set;i.set(e,r)}else r=i.get(e),r===void 0&&(r=new Set,i.set(e,r));r.has(t)||(rk=!0,r.add(t),n=FW.bind(null,n,e,t),e.then(n,n))}function FW(n,e,t){var i=n.pingCache;i!==null&&i.delete(e),n.pingedLanes|=n.suspendedLanes&t,n.warmLanes&=~t,ji===n&&(fi&t)===t&&((_r===4||_r===3&&(fi&62914560)===fi&&300>jo()-$M)&&(Ei&2)===0?Ey(n,0):IM|=t,by===fi&&(by=0)),Fc(n)}function Wq(n,e){e===0&&(e=D4()),n=Gm(n,e),n!==null&&(JE(n,e),Fc(n))}function PW(n){var e=n.memoizedState,t=0;e!==null&&(t=e.retryLane),Wq(n,t)}function UW(n,e){var t=0;switch(n.tag){case 31:case 13:var i=n.stateNode,r=n.memoizedState;r!==null&&(t=r.retryLane);break;case 19:i=n.stateNode;break;case 22:i=n.stateNode._retryCache;break;default:throw Error(ct(314))}i!==null&&i.delete(e),Wq(n,t)}function zW(n,e){return yN(n,e)}var wy=null,Qv=null,aN=!1,OM=!1,eL=!1,lh=0;function Fc(n){n!==Qv&&n.next===null&&(Qv===null?wy=Qv=n:Qv=Qv.next=n),OM=!0,aN||(aN=!0,BW())}function aw(n,e){if(!eL&&OM){eL=!0;do for(var t=!1,i=wy;i!==null;){if(!e)if(n!==0){var r=i.pendingLanes;if(r===0)var a=0;else{var s=i.suspendedLanes,l=i.pingedLanes;a=(1<<31-Xo(42|n)+1)-1,a&=r&~(s&~l),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(t=!0,XU(i,a))}else a=fi,a=UM(i,i===ji?a:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(a&3)===0||$E(i,a)||(t=!0,XU(i,a));i=i.next}while(t);eL=!1}}function qW(){jq()}function jq(){OM=aN=!1;var n=0;lh!==0&&KW()&&(n=lh);for(var e=jo(),t=null,i=wy;i!==null;){var r=i.next,a=Qq(i,e);a===0?(i.next=null,t===null?wy=r:t.next=r,r===null&&(Qv=t)):(t=i,(n!==0||(a&3)!==0)&&(OM=!0)),i=r}cr!==0&&cr!==5||aw(n,!1),lh!==0&&(lh=0)}function Qq(n,e){for(var t=n.suspendedLanes,i=n.pingedLanes,r=n.expirationTimes,a=n.pendingLanes&-62914561;0l)break;var p=c.transferSize,h=c.initiatorType;p&&e4(h)&&(c=c.responseEnd,s+=p*(csM){x.length=E;break}O=new Promise(nj.bind(O)),x.push(O)}}}if(0"u"?null:document;function fB(n,e,t){var i=Oy;if(i&&typeof e=="string"&&e){var r=Hl(e);r='link[rel="'+n+'"][href="'+r+'"]',typeof t=="string"&&(r+='[crossorigin="'+t+'"]'),c4.has(r)||(c4.add(r),n={rel:n,crossOrigin:t,href:e},i.querySelector(r)===null&&(e=i.createElement("link"),Ba(e,"link",n),ba(e),i.head.appendChild(e)))}}function Sj(n){Of.D(n),fB("dns-prefetch",n,null)}function Ej(n,e){Of.C(n,e),fB("preconnect",n,e)}function wj(n,e,t){Of.L(n,e,t);var i=Oy;if(i&&n&&e){var r='link[rel="preload"][as="'+Hl(e)+'"]';e==="image"&&t&&t.imageSrcSet?(r+='[imagesrcset="'+Hl(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(r+='[imagesizes="'+Hl(t.imageSizes)+'"]')):r+='[href="'+Hl(n)+'"]';var a=r;switch(e){case"style":a=Ty(n);break;case"script":a=Dy(n)}if(!(jl.has(a)||(n=Qi({rel:"preload",href:e==="image"&&t&&t.imageSrcSet?void 0:n,as:e},t),jl.set(a,n),i.querySelector(r)!==null||e==="style"&&i.querySelector(sw(a))||e==="script"&&i.querySelector(ow(a))))){var s=i.createElement("link");Ba(s,"link",n),e==="style"&&(s[hM]=!0,s.onload=s.onerror=function(){q4(s)}),ba(s),i.head.appendChild(s)}}}function xj(n,e){Of.m(n,e);var t=Oy;if(t&&n){var i=e&&typeof e.as=="string"?e.as:"script",r='link[rel="modulepreload"][as="'+Hl(i)+'"][href="'+Hl(n)+'"]',a=r;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Dy(n)}if(!jl.has(a)&&(n=Qi({rel:"modulepreload",href:n},e),jl.set(a,n),t.querySelector(r)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(ow(a)))return}i=t.createElement("link"),Ba(i,"link",n),ba(i),t.head.appendChild(i)}}}function Tj(n,e,t){Of.S(n,e,t);var i=Oy;if(i&&n){var r=sy(i).hoistableStyles,a=Ty(n);e=e||"default";var s=r.get(a);if(!s){var l={loading:0,preload:null};if(s=i.querySelector(sw(a)))l.loading=5;else{n=Qi({rel:"stylesheet",href:n,"data-precedence":e},t),(t=jl.get(a))&&fk(n,t);var c=s=i.createElement("link");ba(c),Ba(c,"link",n),c._p=new Promise(function(f,p){c.onload=f,c.onerror=p}),c.addEventListener("load",function(){l.loading|=1}),c.addEventListener("error",function(){l.loading|=2}),l.loading|=4,rM(s,e,i)}s={type:"stylesheet",instance:s,count:1,state:l},r.set(a,s)}}}function Mj(n,e){Of.X(n,e);var t=Oy;if(t&&n){var i=sy(t).hoistableScripts,r=Dy(n),a=i.get(r);a||(a=t.querySelector(ow(r)),a||(n=Qi({src:n,async:!0},e),(e=jl.get(r))&&dk(n,e),a=t.createElement("script"),ba(a),Ba(a,"link",n),t.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},i.set(r,a))}}function Aj(n,e){Of.M(n,e);var t=Oy;if(t&&n){var i=sy(t).hoistableScripts,r=Dy(n),a=i.get(r);a||(a=t.querySelector(ow(r)),a||(n=Qi({src:n,async:!0,type:"module"},e),(e=jl.get(r))&&dk(n,e),a=t.createElement("script"),ba(a),Ba(a,"link",n),t.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},i.set(r,a))}}function f4(n,e,t,i){var r=(r=uh.current)?jE(r):null;if(!r)throw Error(ct(446));switch(n){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(t=Ty(t.href),e=sy(r).hoistableStyles,i=e.get(t),i||(i={type:"style",instance:null,count:0,state:null},e.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){n=Ty(t.href);var a=sy(r).hoistableStyles,s=a.get(n);if(s||(r=r.ownerDocument||r,s={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},a.set(n,s),(a=r.querySelector(sw(n)))?a._p||(s.instance=a,s.state.loading=5):(a=jl.get(n),a||(a={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},jl.set(n,a)),Cj(r,n,a,s.state))),e&&i===null)throw Error(ct(528,""));return s}if(e&&i!==null)throw Error(ct(529,""));return null;case"script":return e=t.async,t=t.src,typeof t=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(t=Dy(t),e=sy(r).hoistableScripts,i=e.get(t),i||(i={type:"script",instance:null,count:0,state:null},e.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(ct(444,n))}}function Ty(n){return'href="'+Hl(n)+'"'}function sw(n){return'link[rel="stylesheet"]['+n+"]"}function dB(n){return Qi({},n,{"data-precedence":n.precedence,precedence:null})}function Cj(n,e,t,i){if(e=n.querySelector('link[rel="preload"][as="style"]['+e+"]")){if(e[hM]!==!0){i.loading=1;return}}else e=n.createElement("link"),e[hM]=!0,e.onload=e.onerror=q4.bind(null,e),Ba(e,"link",t),ba(e),n.head.appendChild(e);i.preload=e,e.addEventListener("load",function(){return i.loading|=1}),e.addEventListener("error",function(){return i.loading|=2})}function Dy(n){return'[src="'+Hl(n)+'"]'}function ow(n){return"script[async]"+n}function d4(n,e,t){if(e.count++,e.instance===null)switch(e.type){case"style":var i=n.querySelector('style[data-href~="'+Hl(t.href)+'"]');if(i)return e.instance=i,ba(i),i;var r=Qi({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return i=(n.ownerDocument||n).createElement("style"),ba(i),Ba(i,"style",r),rM(i,t.precedence,n),e.instance=i;case"stylesheet":r=Ty(t.href);var a=n.querySelector(sw(r));if(a)return e.state.loading|=4,e.instance=a,ba(a),a;i=dB(t),(r=jl.get(r))&&fk(i,r),a=(n.ownerDocument||n).createElement("link"),ba(a);var s=a;return s._p=new Promise(function(l,c){s.onload=l,s.onerror=c}),Ba(a,"link",i),e.state.loading|=4,rM(a,t.precedence,n),e.instance=a;case"script":return a=Dy(t.src),(r=n.querySelector(ow(a)))?(e.instance=r,ba(r),r):(i=t,(r=jl.get(a))&&(i=Qi({},t),dk(i,r)),n=n.ownerDocument||n,r=n.createElement("script"),ba(r),Ba(r,"link",i),n.head.appendChild(r),e.instance=r);case"void":return null;default:throw Error(ct(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(i=e.instance,e.state.loading|=4,rM(i,t.precedence,n));return e.instance}function rM(n,e,t){for(var i=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=i.length?i[i.length-1]:null,a=r,s=0;s title"):null)}function Rj(n,e,t){if(t===1||e.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return n=e.disabled,typeof e.precedence=="string"&&n==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function p4(n,e){return n==="img"&&e.src!=null&&e.src!==""&&e.onLoad==null&&e.loading!=="lazy"}function hB(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function pB(n){return(n.width||100)*(n.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function m4(n,e){typeof e.decode=="function"&&(n.imgCount++,e.complete||(n.imgBytes+=pB(e),n.suspenseyImages.push(e)),n=Nj.bind(n),e.decode().then(n,n))}function Ij(n,e,t,i){if(t.type==="stylesheet"&&(typeof i.media!="string"||matchMedia(i.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var r=Ty(i.href),a=e.querySelector(sw(r));if(a){e=a._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(n.count++,n=QE.bind(n),e.then(n,n)),t.state.loading|=4,t.instance=a,ba(a);return}a=e.ownerDocument||e,i=dB(i),(r=jl.get(r))&&fk(i,r),a=a.createElement("link"),ba(a);var s=a;s._p=new Promise(function(l,c){s.onload=l,s.onerror=c}),Ba(a,"link",i),t.instance=a}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(t,e),(e=t.state.preload)&&(t.state.loading&3)===0&&(n.count++,t=QE.bind(n),e.addEventListener("load",t),e.addEventListener("error",t))}}var sM=0;function Lj(n,e){return n.stylesheets&&n.count===0&&oM(n,n.stylesheets),0sM?50:800)+e);return n.unsuspend=t,function(){n.unsuspend=null,clearTimeout(i),clearTimeout(r)}}:null}function mB(n){if(n.count===0&&(n.imgCount===0||!n.waitingForImages)){if(n.stylesheets)oM(n,n.stylesheets);else if(n.unsuspend){var e=n.unsuspend;n.unsuspend=null,e()}}}function QE(){this.count--,mB(this)}function Nj(){this.imgCount--,mB(this)}var FM=null;function oM(n,e){n.stylesheets=null,n.unsuspend!==null&&(n.count++,FM=new Map,e.forEach(kj,n),FM=null,QE.call(n))}function kj(n,e){if(!(e.state.loading&4)){var t=FM.get(n);if(t)var i=t.get(null);else{t=new Map,FM.set(n,t);for(var r=n.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";function xB(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(xB)}catch(n){console.error(n)}}xB(),TB.exports=wB()});var IB=to(aA=>{"use strict";var Hj=Symbol.for("react.transitional.element"),Vj=Symbol.for("react.fragment");function RB(n,e,t){var i=null;if(t!==void 0&&(i=""+t),e.key!==void 0&&(i=""+e.key),"key"in e){t={};for(var r in e)r!=="key"&&(t[r]=e[r])}else t=e;return e=t.ref,{$$typeof:Hj,type:n,key:i,ref:e!==void 0?e:null,props:t}}aA.Fragment=Vj;aA.jsx=RB;aA.jsxs=RB});var $o=to((hse,LB)=>{"use strict";LB.exports=IB()});var C8=to(A8=>{"use strict";var sb=tr();function CJ(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var RJ=typeof Object.is=="function"?Object.is:CJ,IJ=sb.useState,LJ=sb.useEffect,NJ=sb.useLayoutEffect,kJ=sb.useDebugValue;function OJ(n,e){var t=e(),i=IJ({inst:{value:t,getSnapshot:e}}),r=i[0].inst,a=i[1];return NJ(function(){r.value=t,r.getSnapshot=e,_D(r)&&a({inst:r})},[n,t,e]),LJ(function(){return _D(r)&&a({inst:r}),n(function(){_D(r)&&a({inst:r})})},[n]),kJ(t),t}function _D(n){var e=n.getSnapshot;n=n.value;try{var t=e();return!RJ(n,t)}catch{return!0}}function DJ(n,e){return e()}var FJ=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?DJ:OJ;A8.useSyncExternalStore=sb.useSyncExternalStore!==void 0?sb.useSyncExternalStore:FJ});var I8=to((yse,R8)=>{"use strict";R8.exports=C8()});var N8=to(L8=>{"use strict";var R2=tr(),PJ=I8();function UJ(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var zJ=typeof Object.is=="function"?Object.is:UJ,qJ=PJ.useSyncExternalStore,BJ=R2.useRef,HJ=R2.useEffect,VJ=R2.useMemo,GJ=R2.useDebugValue;L8.useSyncExternalStoreWithSelector=function(n,e,t,i,r){var a=BJ(null);if(a.current===null){var s={hasValue:!1,value:null};a.current=s}else s=a.current;a=VJ(function(){function c(g){if(!f){if(f=!0,p=g,g=i(g),r!==void 0&&s.hasValue){var E=s.value;if(r(E,g))return h=E}return h=g}if(E=h,zJ(p,g))return E;var x=i(g);return r!==void 0&&r(E,x)?(p=g,E):(p=g,h=x)}var f=!1,p,h,_=t===void 0?null:t;return[function(){return c(e())},_===null?void 0:function(){return c(_())}]},[e,t,i,r]);var l=qJ(n,a[0],a[1]);return HJ(function(){s.hasValue=!0,s.value=l},[l]),GJ(l),l}});var O8=to((Sse,k8)=>{"use strict";k8.exports=N8()});var BH={};pu(BH,{default:()=>xte});var wte,xte,HH=Da(()=>{wte=(async function(n={}){var e,t=n,i,r,a=new Promise((b,R)=>{i=b,r=R}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(b,R)=>{throw R},_=import.meta.url,g="";function E(b){return t.locateFile?t.locateFile(b,g):g+b}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=b=>{var R=new XMLHttpRequest;return R.open("GET",b,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}),x=async b=>{var R=await fetch(b,{credentials:"same-origin"});if(R.ok)return R.arrayBuffer();throw new Error(R.status+" : "+R.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var b=k.buffer;Q=new Int8Array(b),Z=new Int16Array(b),t.HEAPU8=H=new Uint8Array(b),te=new Uint16Array(b),t.HEAP32=j=new Int32Array(b),he=new Uint32Array(b),ke=new Float32Array(b),Me=new Float64Array(b)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),ue.ra(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(b){return b}function jt(b){We++,t.monitorRunDependencies?.(We)}function zt(b){if(We--,t.monitorRunDependencies?.(We),We==0&>){var R=gt;gt=null,R()}}function Mt(b){t.onAbort?.(b),b="Aborted("+b+")",M(b),q=!0,b+=". Build with -sASSERTIONS for more info.";var R=new WebAssembly.RuntimeError(b);throw r(R),R}var Xe;function et(){return t.locateFile?E("mc-wa-sqlite-async.wasm"):new URL("mc-wa-sqlite-async.wasm",import.meta.url).href}function yt(b){if(b==Xe&&O)return new Uint8Array(O);if(S)return S(b);throw"both async and sync fetching of the wasm failed"}async function Wt(b){if(!O)try{var R=await x(b);return new Uint8Array(R)}catch{}return yt(b)}async function Lt(b,R){try{var z=await Wt(b),Y=await WebAssembly.instantiate(z,R);return Y}catch(se){M(`failed to asynchronously prepare wasm: ${se}`),Mt(se)}}async function sn(b,R,z){if(!b&&typeof WebAssembly.instantiateStreaming=="function")try{var Y=fetch(R,{credentials:"same-origin"}),se=await WebAssembly.instantiateStreaming(Y,z);return se}catch(ye){M(`wasm streaming compile failed: ${ye}`),M("falling back to ArrayBuffer instantiation")}return Lt(R,z)}function pn(){return{a:ce}}async function lt(){function b(ye,xe){return ue=ye.exports,ue=Xt.instrumentWasmExports(ue),k=ue.qa,Ne(),Ya=ue.wf,zt("wasm-instantiate"),ue}jt("wasm-instantiate");function R(ye){return b(ye.instance)}var z=pn();if(t.instantiateWasm)return new Promise((ye,xe)=>{t.instantiateWasm(z,(Ce,ot)=>{ye(b(Ce,ot))})});Xe??=et();try{var Y=await sn(O,Xe,z),se=R(Y);return se}catch(ye){return r(ye),Promise.reject(ye)}}var _e,Pe;class dt{name="ExitStatus";constructor(R){this.message=`Program terminated with exit(${R})`,this.status=R}}var vt=b=>{for(;b.length>0;)b.shift()(t)},Qt=[],Ht=b=>Qt.push(b),qt=[],en=b=>qt.push(b);function Le(b,R="i8"){switch(R.endsWith("*")&&(R="*"),R){case"i1":return Q[b];case"i8":return Q[b];case"i16":return Z[b>>1];case"i32":return j[b>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[b>>2];case"double":return Me[b>>3];case"*":return he[b>>2];default:Mt(`invalid type for getValue: ${R}`)}}var fn=!0;function kt(b,R,z="i8"){switch(z.endsWith("*")&&(z="*"),z){case"i1":Q[b]=R;break;case"i8":Q[b]=R;break;case"i16":Z[b>>1]=R;break;case"i32":j[b>>2]=R;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[b>>2]=R;break;case"double":Me[b>>3]=R;break;case"*":he[b>>2]=R;break;default:Mt(`invalid type for setValue: ${z}`)}}var ge=b=>im(b),L=()=>am(),N=new TextDecoder,U=(b,R)=>{if(!b)return"";for(var z=b+R,Y=b;!(Y>=z)&&H[Y];)++Y;return N.decode(H.subarray(b,Y))},ee=(b,R,z,Y)=>Mt(`Assertion failed: ${U(b)}, at: `+[R?U(R):"unknown filename",z,Y?U(Y):"unknown function"]),ne={isAbs:b=>b.charAt(0)==="/",splitPath:b=>{var R=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return R.exec(b).slice(1)},normalizeArray:(b,R)=>{for(var z=0,Y=b.length-1;Y>=0;Y--){var se=b[Y];se==="."?b.splice(Y,1):se===".."?(b.splice(Y,1),z++):z&&(b.splice(Y,1),z--)}if(R)for(;z;z--)b.unshift("..");return b},normalize:b=>{var R=ne.isAbs(b),z=b.slice(-1)==="/";return b=ne.normalizeArray(b.split("/").filter(Y=>!!Y),!R).join("/"),!b&&!R&&(b="."),b&&z&&(b+="/"),(R?"/":"")+b},dirname:b=>{var R=ne.splitPath(b),z=R[0],Y=R[1];return!z&&!Y?".":(Y&&(Y=Y.slice(0,-1)),z+Y)},basename:b=>b&&b.match(/([^\/]+|\/)\/*$/)[1],join:(...b)=>ne.normalize(b.join("/")),join2:(b,R)=>ne.normalize(b+"/"+R)},X=()=>b=>crypto.getRandomValues(b),ie=b=>{(ie=X())(b)},le={resolve:(...b)=>{for(var R="",z=!1,Y=b.length-1;Y>=-1&&!z;Y--){var se=Y>=0?b[Y]:d.cwd();if(typeof se!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!se)return"";R=se+"/"+R,z=ne.isAbs(se)}return R=ne.normalizeArray(R.split("/").filter(ye=>!!ye),!z).join("/"),(z?"/":"")+R||"."},relative:(b,R)=>{b=le.resolve(b).slice(1),R=le.resolve(R).slice(1);function z(xt){for(var tn=0;tn=0&&xt[vn]==="";vn--);return tn>vn?[]:xt.slice(tn,vn-tn+1)}for(var Y=z(b.split("/")),se=z(R.split("/")),ye=Math.min(Y.length,se.length),xe=ye,Ce=0;Ce{for(var Y=R+z,se=R;b[se]&&!(se>=Y);)++se;return N.decode(b.buffer?b.subarray(R,se):new Uint8Array(b.slice(R,se)))},tt=[],Oe=b=>{for(var R=0,z=0;z=55296&&Y<=57343?(R+=4,++z):R+=3}return R},je=(b,R,z,Y)=>{if(!(Y>0))return 0;for(var se=z,ye=z+Y-1,xe=0;xe=55296&&Ce<=57343){var ot=b.charCodeAt(++xe);Ce=65536+((Ce&1023)<<10)|ot&1023}if(Ce<=127){if(z>=ye)break;R[z++]=Ce}else if(Ce<=2047){if(z+1>=ye)break;R[z++]=192|Ce>>6,R[z++]=128|Ce&63}else if(Ce<=65535){if(z+2>=ye)break;R[z++]=224|Ce>>12,R[z++]=128|Ce>>6&63,R[z++]=128|Ce&63}else{if(z+3>=ye)break;R[z++]=240|Ce>>18,R[z++]=128|Ce>>12&63,R[z++]=128|Ce>>6&63,R[z++]=128|Ce&63}}return R[z]=0,z-se},Ct=(b,R,z)=>{var Y=z>0?z:Oe(b)+1,se=new Array(Y),ye=je(b,se,0,se.length);return R&&(se.length=ye),se},nn=()=>{if(!tt.length){var b=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(b=window.prompt("Input: "),b!==null&&(b+=` `)),!b)return null;tt=Ct(b,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(b,R){ht.ttys[b]={input:[],output:[],ops:R},d.registerDevice(b,ht.stream_ops)},stream_ops:{open(b){var R=ht.ttys[b.node.rdev];if(!R)throw new d.ErrnoError(43);b.tty=R,b.seekable=!1},close(b){b.tty.ops.fsync(b.tty)},fsync(b){b.tty.ops.fsync(b.tty)},read(b,R,z,Y,se){if(!b.tty||!b.tty.ops.get_char)throw new d.ErrnoError(60);for(var ye=0,xe=0;xe0&&(v(be(b.output)),b.output=[])},ioctl_tcgets(b){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(b,R,z){return 0},ioctl_tiocgwinsz(b){return[24,80]}},default_tty1_ops:{put_char(b,R){R===null||R===10?(M(be(b.output)),b.output=[]):R!=0&&b.output.push(R)},fsync(b){b.output?.length>0&&(M(be(b.output)),b.output=[])}}},De=(b,R)=>H.fill(0,b,b+R),bt=(b,R)=>Math.ceil(b/R)*R,at=b=>{b=bt(b,65536);var R=Nd(65536,b);return R&&De(R,b),R},we={ops_table:null,mount(b){return we.createNode(null,"/",16895,0)},createNode(b,R,z,Y){if(d.isBlkdev(z)||d.isFIFO(z))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var se=d.createNode(b,R,z,Y);return d.isDir(se.mode)?(se.node_ops=we.ops_table.dir.node,se.stream_ops=we.ops_table.dir.stream,se.contents={}):d.isFile(se.mode)?(se.node_ops=we.ops_table.file.node,se.stream_ops=we.ops_table.file.stream,se.usedBytes=0,se.contents=null):d.isLink(se.mode)?(se.node_ops=we.ops_table.link.node,se.stream_ops=we.ops_table.link.stream):d.isChrdev(se.mode)&&(se.node_ops=we.ops_table.chrdev.node,se.stream_ops=we.ops_table.chrdev.stream),se.atime=se.mtime=se.ctime=Date.now(),b&&(b.contents[R]=se,b.atime=b.mtime=b.ctime=se.atime),se},getFileDataAsTypedArray(b){return b.contents?b.contents.subarray?b.contents.subarray(0,b.usedBytes):new Uint8Array(b.contents):new Uint8Array(0)},expandFileStorage(b,R){var z=b.contents?b.contents.length:0;if(!(z>=R)){var Y=1024*1024;R=Math.max(R,z*(z>>0),z!=0&&(R=Math.max(R,256));var se=b.contents;b.contents=new Uint8Array(R),b.usedBytes>0&&b.contents.set(se.subarray(0,b.usedBytes),0)}},resizeFileStorage(b,R){if(b.usedBytes!=R)if(R==0)b.contents=null,b.usedBytes=0;else{var z=b.contents;b.contents=new Uint8Array(R),z&&b.contents.set(z.subarray(0,Math.min(R,b.usedBytes))),b.usedBytes=R}},node_ops:{getattr(b){var R={};return R.dev=d.isChrdev(b.mode)?b.id:1,R.ino=b.id,R.mode=b.mode,R.nlink=1,R.uid=0,R.gid=0,R.rdev=b.rdev,d.isDir(b.mode)?R.size=4096:d.isFile(b.mode)?R.size=b.usedBytes:d.isLink(b.mode)?R.size=b.link.length:R.size=0,R.atime=new Date(b.atime),R.mtime=new Date(b.mtime),R.ctime=new Date(b.ctime),R.blksize=4096,R.blocks=Math.ceil(R.size/R.blksize),R},setattr(b,R){for(let z of["mode","atime","mtime","ctime"])R[z]!=null&&(b[z]=R[z]);R.size!==void 0&&we.resizeFileStorage(b,R.size)},lookup(b,R){throw we.doesNotExistError},mknod(b,R,z,Y){return we.createNode(b,R,z,Y)},rename(b,R,z){var Y;try{Y=d.lookupNode(R,z)}catch{}if(Y){if(d.isDir(b.mode))for(var se in Y.contents)throw new d.ErrnoError(55);d.hashRemoveNode(Y)}delete b.parent.contents[b.name],R.contents[z]=b,b.name=z,R.ctime=R.mtime=b.parent.ctime=b.parent.mtime=Date.now()},unlink(b,R){delete b.contents[R],b.ctime=b.mtime=Date.now()},rmdir(b,R){var z=d.lookupNode(b,R);for(var Y in z.contents)throw new d.ErrnoError(55);delete b.contents[R],b.ctime=b.mtime=Date.now()},readdir(b){return[".","..",...Object.keys(b.contents)]},symlink(b,R,z){var Y=we.createNode(b,R,41471,0);return Y.link=z,Y},readlink(b){if(!d.isLink(b.mode))throw new d.ErrnoError(28);return b.link}},stream_ops:{read(b,R,z,Y,se){var ye=b.node.contents;if(se>=b.node.usedBytes)return 0;var xe=Math.min(b.node.usedBytes-se,Y);if(xe>8&&ye.subarray)R.set(ye.subarray(se,se+xe),z);else for(var Ce=0;Ce0||z+R{var R=await x(b);return new Uint8Array(R)};Rt.isAsync=!0;var ft=(...b)=>d.createDataFile(...b),Yt=[],$t=(b,R,z,Y)=>{typeof Browser<"u"&&Browser.init();var se=!1;return Yt.forEach(ye=>{se||ye.canHandle(R)&&(ye.handle(b,R,z,Y),se=!0)}),se},Wn=(b,R,z,Y,se,ye,xe,Ce,ot,xt)=>{var tn=R?le.resolve(ne.join2(b,R)):b,vn=`cp ${tn}`;function mn(on){function dn(Ai){xt?.(),Ce||ft(b,R,Ai,Y,se,ot),ye?.(),zt(vn)}$t(on,tn,dn,()=>{xe?.(),zt(vn)})||dn(on)}jt(vn),typeof z=="string"?Rt(z).then(mn,xe):mn(z)},Un=b=>{var R={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},z=R[b];if(typeof z>"u")throw new Error(`Unknown file open mode: ${b}`);return z},Ti=(b,R)=>{var z=0;return b&&(z|=365),R&&(z|=146),z},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(b){this.errno=b}},FSStream:class{shared={};get object(){return this.node}set object(b){this.node=b}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(b){this.shared.flags=b}get position(){return this.shared.position}set position(b){this.shared.position=b}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(b,R,z,Y){b||(b=this),this.parent=b,this.mount=b.mount,this.id=d.nextInode++,this.name=R,this.mode=z,this.rdev=Y,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(b){b?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(b){b?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(b,R={}){if(!b)throw new d.ErrnoError(44);R.follow_mount??=!0,ne.isAbs(b)||(b=d.cwd()+"/"+b);e:for(var z=0;z<40;z++){for(var Y=b.split("/").filter(xt=>!!xt),se=d.root,ye="/",xe=0;xe>>0)%d.nameTable.length},hashAddNode(b){var R=d.hashName(b.parent.id,b.name);b.name_next=d.nameTable[R],d.nameTable[R]=b},hashRemoveNode(b){var R=d.hashName(b.parent.id,b.name);if(d.nameTable[R]===b)d.nameTable[R]=b.name_next;else for(var z=d.nameTable[R];z;){if(z.name_next===b){z.name_next=b.name_next;break}z=z.name_next}},lookupNode(b,R){var z=d.mayLookup(b);if(z)throw new d.ErrnoError(z);for(var Y=d.hashName(b.id,R),se=d.nameTable[Y];se;se=se.name_next){var ye=se.name;if(se.parent.id===b.id&&ye===R)return se}return d.lookup(b,R)},createNode(b,R,z,Y){var se=new d.FSNode(b,R,z,Y);return d.hashAddNode(se),se},destroyNode(b){d.hashRemoveNode(b)},isRoot(b){return b===b.parent},isMountpoint(b){return!!b.mounted},isFile(b){return(b&61440)===32768},isDir(b){return(b&61440)===16384},isLink(b){return(b&61440)===40960},isChrdev(b){return(b&61440)===8192},isBlkdev(b){return(b&61440)===24576},isFIFO(b){return(b&61440)===4096},isSocket(b){return(b&49152)===49152},flagsToPermissionString(b){var R=["r","w","rw"][b&3];return b&512&&(R+="w"),R},nodePermissions(b,R){return d.ignorePermissions?0:R.includes("r")&&!(b.mode&292)||R.includes("w")&&!(b.mode&146)||R.includes("x")&&!(b.mode&73)?2:0},mayLookup(b){if(!d.isDir(b.mode))return 54;var R=d.nodePermissions(b,"x");return R||(b.node_ops.lookup?0:2)},mayCreate(b,R){if(!d.isDir(b.mode))return 54;try{var z=d.lookupNode(b,R);return 20}catch{}return d.nodePermissions(b,"wx")},mayDelete(b,R,z){var Y;try{Y=d.lookupNode(b,R)}catch(ye){return ye.errno}var se=d.nodePermissions(b,"wx");if(se)return se;if(z){if(!d.isDir(Y.mode))return 54;if(d.isRoot(Y)||d.getPath(Y)===d.cwd())return 10}else if(d.isDir(Y.mode))return 31;return 0},mayOpen(b,R){return b?d.isLink(b.mode)?32:d.isDir(b.mode)&&(d.flagsToPermissionString(R)!=="r"||R&576)?31:d.nodePermissions(b,d.flagsToPermissionString(R)):44},checkOpExists(b,R){if(!b)throw new d.ErrnoError(R);return b},MAX_OPEN_FDS:4096,nextfd(){for(var b=0;b<=d.MAX_OPEN_FDS;b++)if(!d.streams[b])return b;throw new d.ErrnoError(33)},getStreamChecked(b){var R=d.getStream(b);if(!R)throw new d.ErrnoError(8);return R},getStream:b=>d.streams[b],createStream(b,R=-1){return b=Object.assign(new d.FSStream,b),R==-1&&(R=d.nextfd()),b.fd=R,d.streams[R]=b,b},closeStream(b){d.streams[b]=null},dupStream(b,R=-1){var z=d.createStream(b,R);return z.stream_ops?.dup?.(z),z},doSetAttr(b,R,z){var Y=b?.stream_ops.setattr,se=Y?b:R;Y??=R.node_ops.setattr,d.checkOpExists(Y,63),Y(se,z)},chrdev_stream_ops:{open(b){var R=d.getDevice(b.node.rdev);b.stream_ops=R.stream_ops,b.stream_ops.open?.(b)},llseek(){throw new d.ErrnoError(70)}},major:b=>b>>8,minor:b=>b&255,makedev:(b,R)=>b<<8|R,registerDevice(b,R){d.devices[b]={stream_ops:R}},getDevice:b=>d.devices[b],getMounts(b){for(var R=[],z=[b];z.length;){var Y=z.pop();R.push(Y),z.push(...Y.mounts)}return R},syncfs(b,R){typeof b=="function"&&(R=b,b=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var z=d.getMounts(d.root.mount),Y=0;function se(xe){return d.syncFSRequests--,R(xe)}function ye(xe){if(xe)return ye.errored?void 0:(ye.errored=!0,se(xe));++Y>=z.length&&se(null)}z.forEach(xe=>{if(!xe.type.syncfs)return ye(null);xe.type.syncfs(xe,b,ye)})},mount(b,R,z){var Y=z==="/",se=!z,ye;if(Y&&d.root)throw new d.ErrnoError(10);if(!Y&&!se){var xe=d.lookupPath(z,{follow_mount:!1});if(z=xe.path,ye=xe.node,d.isMountpoint(ye))throw new d.ErrnoError(10);if(!d.isDir(ye.mode))throw new d.ErrnoError(54)}var Ce={type:b,opts:R,mountpoint:z,mounts:[]},ot=b.mount(Ce);return ot.mount=Ce,Ce.root=ot,Y?d.root=ot:ye&&(ye.mounted=Ce,ye.mount&&ye.mount.mounts.push(Ce)),ot},unmount(b){var R=d.lookupPath(b,{follow_mount:!1});if(!d.isMountpoint(R.node))throw new d.ErrnoError(28);var z=R.node,Y=z.mounted,se=d.getMounts(Y);Object.keys(d.nameTable).forEach(xe=>{for(var Ce=d.nameTable[xe];Ce;){var ot=Ce.name_next;se.includes(Ce.mount)&&d.destroyNode(Ce),Ce=ot}}),z.mounted=null;var ye=z.mount.mounts.indexOf(Y);z.mount.mounts.splice(ye,1)},lookup(b,R){return b.node_ops.lookup(b,R)},mknod(b,R,z){var Y=d.lookupPath(b,{parent:!0}),se=Y.node,ye=ne.basename(b);if(!ye)throw new d.ErrnoError(28);if(ye==="."||ye==="..")throw new d.ErrnoError(20);var xe=d.mayCreate(se,ye);if(xe)throw new d.ErrnoError(xe);if(!se.node_ops.mknod)throw new d.ErrnoError(63);return se.node_ops.mknod(se,ye,R,z)},statfs(b){return d.statfsNode(d.lookupPath(b,{follow:!0}).node)},statfsStream(b){return d.statfsNode(b.node)},statfsNode(b){var R={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return b.node_ops.statfs&&Object.assign(R,b.node_ops.statfs(b.mount.opts.root)),R},create(b,R=438){return R&=4095,R|=32768,d.mknod(b,R,0)},mkdir(b,R=511){return R&=1023,R|=16384,d.mknod(b,R,0)},mkdirTree(b,R){var z=b.split("/"),Y="";for(var se of z)if(se){(Y||ne.isAbs(b))&&(Y+="/"),Y+=se;try{d.mkdir(Y,R)}catch(ye){if(ye.errno!=20)throw ye}}},mkdev(b,R,z){return typeof z>"u"&&(z=R,R=438),R|=8192,d.mknod(b,R,z)},symlink(b,R){if(!le.resolve(b))throw new d.ErrnoError(44);var z=d.lookupPath(R,{parent:!0}),Y=z.node;if(!Y)throw new d.ErrnoError(44);var se=ne.basename(R),ye=d.mayCreate(Y,se);if(ye)throw new d.ErrnoError(ye);if(!Y.node_ops.symlink)throw new d.ErrnoError(63);return Y.node_ops.symlink(Y,se,b)},rename(b,R){var z=ne.dirname(b),Y=ne.dirname(R),se=ne.basename(b),ye=ne.basename(R),xe,Ce,ot;if(xe=d.lookupPath(b,{parent:!0}),Ce=xe.node,xe=d.lookupPath(R,{parent:!0}),ot=xe.node,!Ce||!ot)throw new d.ErrnoError(44);if(Ce.mount!==ot.mount)throw new d.ErrnoError(75);var xt=d.lookupNode(Ce,se),tn=le.relative(b,Y);if(tn.charAt(0)!==".")throw new d.ErrnoError(28);if(tn=le.relative(R,z),tn.charAt(0)!==".")throw new d.ErrnoError(55);var vn;try{vn=d.lookupNode(ot,ye)}catch{}if(xt!==vn){var mn=d.isDir(xt.mode),on=d.mayDelete(Ce,se,mn);if(on)throw new d.ErrnoError(on);if(on=vn?d.mayDelete(ot,ye,mn):d.mayCreate(ot,ye),on)throw new d.ErrnoError(on);if(!Ce.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(xt)||vn&&d.isMountpoint(vn))throw new d.ErrnoError(10);if(ot!==Ce&&(on=d.nodePermissions(Ce,"w"),on))throw new d.ErrnoError(on);d.hashRemoveNode(xt);try{Ce.node_ops.rename(xt,ot,ye),xt.parent=ot}catch(dn){throw dn}finally{d.hashAddNode(xt)}}},rmdir(b){var R=d.lookupPath(b,{parent:!0}),z=R.node,Y=ne.basename(b),se=d.lookupNode(z,Y),ye=d.mayDelete(z,Y,!0);if(ye)throw new d.ErrnoError(ye);if(!z.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(se))throw new d.ErrnoError(10);z.node_ops.rmdir(z,Y),d.destroyNode(se)},readdir(b){var R=d.lookupPath(b,{follow:!0}),z=R.node,Y=d.checkOpExists(z.node_ops.readdir,54);return Y(z)},unlink(b){var R=d.lookupPath(b,{parent:!0}),z=R.node;if(!z)throw new d.ErrnoError(44);var Y=ne.basename(b),se=d.lookupNode(z,Y),ye=d.mayDelete(z,Y,!1);if(ye)throw new d.ErrnoError(ye);if(!z.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(se))throw new d.ErrnoError(10);z.node_ops.unlink(z,Y),d.destroyNode(se)},readlink(b){var R=d.lookupPath(b),z=R.node;if(!z)throw new d.ErrnoError(44);if(!z.node_ops.readlink)throw new d.ErrnoError(28);return z.node_ops.readlink(z)},stat(b,R){var z=d.lookupPath(b,{follow:!R}),Y=z.node,se=d.checkOpExists(Y.node_ops.getattr,63);return se(Y)},fstat(b){var R=d.getStreamChecked(b),z=R.node,Y=R.stream_ops.getattr,se=Y?R:z;return Y??=z.node_ops.getattr,d.checkOpExists(Y,63),Y(se)},lstat(b){return d.stat(b,!0)},doChmod(b,R,z,Y){d.doSetAttr(b,R,{mode:z&4095|R.mode&-4096,ctime:Date.now(),dontFollow:Y})},chmod(b,R,z){var Y;if(typeof b=="string"){var se=d.lookupPath(b,{follow:!z});Y=se.node}else Y=b;d.doChmod(null,Y,R,z)},lchmod(b,R){d.chmod(b,R,!0)},fchmod(b,R){var z=d.getStreamChecked(b);d.doChmod(z,z.node,R,!1)},doChown(b,R,z){d.doSetAttr(b,R,{timestamp:Date.now(),dontFollow:z})},chown(b,R,z,Y){var se;if(typeof b=="string"){var ye=d.lookupPath(b,{follow:!Y});se=ye.node}else se=b;d.doChown(null,se,Y)},lchown(b,R,z){d.chown(b,R,z,!0)},fchown(b,R,z){var Y=d.getStreamChecked(b);d.doChown(Y,Y.node,!1)},doTruncate(b,R,z){if(d.isDir(R.mode))throw new d.ErrnoError(31);if(!d.isFile(R.mode))throw new d.ErrnoError(28);var Y=d.nodePermissions(R,"w");if(Y)throw new d.ErrnoError(Y);d.doSetAttr(b,R,{size:z,timestamp:Date.now()})},truncate(b,R){if(R<0)throw new d.ErrnoError(28);var z;if(typeof b=="string"){var Y=d.lookupPath(b,{follow:!0});z=Y.node}else z=b;d.doTruncate(null,z,R)},ftruncate(b,R){var z=d.getStreamChecked(b);if(R<0||(z.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(z,z.node,R)},utime(b,R,z){var Y=d.lookupPath(b,{follow:!0}),se=Y.node,ye=d.checkOpExists(se.node_ops.setattr,63);ye(se,{atime:R,mtime:z})},open(b,R,z=438){if(b==="")throw new d.ErrnoError(44);R=typeof R=="string"?Un(R):R,R&64?z=z&4095|32768:z=0;var Y,se;if(typeof b=="object")Y=b;else{se=b.endsWith("/");var ye=d.lookupPath(b,{follow:!(R&131072),noent_okay:!0});Y=ye.node,b=ye.path}var xe=!1;if(R&64)if(Y){if(R&128)throw new d.ErrnoError(20)}else{if(se)throw new d.ErrnoError(31);Y=d.mknod(b,z|511,0),xe=!0}if(!Y)throw new d.ErrnoError(44);if(d.isChrdev(Y.mode)&&(R&=-513),R&65536&&!d.isDir(Y.mode))throw new d.ErrnoError(54);if(!xe){var Ce=d.mayOpen(Y,R);if(Ce)throw new d.ErrnoError(Ce)}R&512&&!xe&&d.truncate(Y,0),R&=-131713;var ot=d.createStream({node:Y,path:d.getPath(Y),flags:R,seekable:!0,position:0,stream_ops:Y.stream_ops,ungotten:[],error:!1});return ot.stream_ops.open&&ot.stream_ops.open(ot),xe&&d.chmod(Y,z&511),t.logReadFiles&&!(R&1)&&(b in d.readFiles||(d.readFiles[b]=1)),ot},close(b){if(d.isClosed(b))throw new d.ErrnoError(8);b.getdents&&(b.getdents=null);try{b.stream_ops.close&&b.stream_ops.close(b)}catch(R){throw R}finally{d.closeStream(b.fd)}b.fd=null},isClosed(b){return b.fd===null},llseek(b,R,z){if(d.isClosed(b))throw new d.ErrnoError(8);if(!b.seekable||!b.stream_ops.llseek)throw new d.ErrnoError(70);if(z!=0&&z!=1&&z!=2)throw new d.ErrnoError(28);return b.position=b.stream_ops.llseek(b,R,z),b.ungotten=[],b.position},read(b,R,z,Y,se){if(Y<0||se<0)throw new d.ErrnoError(28);if(d.isClosed(b))throw new d.ErrnoError(8);if((b.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(b.node.mode))throw new d.ErrnoError(31);if(!b.stream_ops.read)throw new d.ErrnoError(28);var ye=typeof se<"u";if(!ye)se=b.position;else if(!b.seekable)throw new d.ErrnoError(70);var xe=b.stream_ops.read(b,R,z,Y,se);return ye||(b.position+=xe),xe},write(b,R,z,Y,se,ye){if(Y<0||se<0)throw new d.ErrnoError(28);if(d.isClosed(b))throw new d.ErrnoError(8);if((b.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(b.node.mode))throw new d.ErrnoError(31);if(!b.stream_ops.write)throw new d.ErrnoError(28);b.seekable&&b.flags&1024&&d.llseek(b,0,2);var xe=typeof se<"u";if(!xe)se=b.position;else if(!b.seekable)throw new d.ErrnoError(70);var Ce=b.stream_ops.write(b,R,z,Y,se,ye);return xe||(b.position+=Ce),Ce},mmap(b,R,z,Y,se){if((Y&2)!==0&&(se&2)===0&&(b.flags&2097155)!==2)throw new d.ErrnoError(2);if((b.flags&2097155)===1)throw new d.ErrnoError(2);if(!b.stream_ops.mmap)throw new d.ErrnoError(43);if(!R)throw new d.ErrnoError(28);return b.stream_ops.mmap(b,R,z,Y,se)},msync(b,R,z,Y,se){return b.stream_ops.msync?b.stream_ops.msync(b,R,z,Y,se):0},ioctl(b,R,z){if(!b.stream_ops.ioctl)throw new d.ErrnoError(59);return b.stream_ops.ioctl(b,R,z)},readFile(b,R={}){if(R.flags=R.flags||0,R.encoding=R.encoding||"binary",R.encoding!=="utf8"&&R.encoding!=="binary")throw new Error(`Invalid encoding type "${R.encoding}"`);var z,Y=d.open(b,R.flags),se=d.stat(b),ye=se.size,xe=new Uint8Array(ye);return d.read(Y,xe,0,ye,0),R.encoding==="utf8"?z=be(xe):R.encoding==="binary"&&(z=xe),d.close(Y),z},writeFile(b,R,z={}){z.flags=z.flags||577;var Y=d.open(b,z.flags,z.mode);if(typeof R=="string"){var se=new Uint8Array(Oe(R)+1),ye=je(R,se,0,se.length);d.write(Y,se,0,ye,void 0,z.canOwn)}else if(ArrayBuffer.isView(R))d.write(Y,R,0,R.byteLength,void 0,z.canOwn);else throw new Error("Unsupported data type");d.close(Y)},cwd:()=>d.currentPath,chdir(b){var R=d.lookupPath(b,{follow:!0});if(R.node===null)throw new d.ErrnoError(44);if(!d.isDir(R.node.mode))throw new d.ErrnoError(54);var z=d.nodePermissions(R.node,"x");if(z)throw new d.ErrnoError(z);d.currentPath=R.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(Y,se,ye,xe,Ce)=>xe,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var b=new Uint8Array(1024),R=0,z=()=>(R===0&&(ie(b),R=b.byteLength),b[--R]);d.createDevice("/dev","random",z),d.createDevice("/dev","urandom",z),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var b=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var R=d.createNode(b,"fd",16895,73);return R.stream_ops={llseek:we.stream_ops.llseek},R.node_ops={lookup(z,Y){var se=+Y,ye=d.getStreamChecked(se),xe={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>ye.path},id:se+1};return xe.parent=xe,xe},readdir(){return Array.from(d.streams.entries()).filter(([z,Y])=>Y).map(([z,Y])=>z.toString())}},R}},{},"/proc/self/fd")},createStandardStreams(b,R,z){b?d.createDevice("/dev","stdin",b):d.symlink("/dev/tty","/dev/stdin"),R?d.createDevice("/dev","stdout",null,R):d.symlink("/dev/tty","/dev/stdout"),z?d.createDevice("/dev","stderr",null,z):d.symlink("/dev/tty1","/dev/stderr");var Y=d.open("/dev/stdin",0),se=d.open("/dev/stdout",1),ye=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(b,R,z){d.initialized=!0,b??=t.stdin,R??=t.stdout,z??=t.stderr,d.createStandardStreams(b,R,z)},quit(){d.initialized=!1;for(var b of d.streams)b&&d.close(b)},findObject(b,R){var z=d.analyzePath(b,R);return z.exists?z.object:null},analyzePath(b,R){try{var z=d.lookupPath(b,{follow:!R});b=z.path}catch{}var Y={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var z=d.lookupPath(b,{parent:!0});Y.parentExists=!0,Y.parentPath=z.path,Y.parentObject=z.node,Y.name=ne.basename(b),z=d.lookupPath(b,{follow:!R}),Y.exists=!0,Y.path=z.path,Y.object=z.node,Y.name=z.node.name,Y.isRoot=z.path==="/"}catch(se){Y.error=se.errno}return Y},createPath(b,R,z,Y){b=typeof b=="string"?b:d.getPath(b);for(var se=R.split("/").reverse();se.length;){var ye=se.pop();if(ye){var xe=ne.join2(b,ye);try{d.mkdir(xe)}catch(Ce){if(Ce.errno!=20)throw Ce}b=xe}}return xe},createFile(b,R,z,Y,se){var ye=ne.join2(typeof b=="string"?b:d.getPath(b),R),xe=Ti(Y,se);return d.create(ye,xe)},createDataFile(b,R,z,Y,se,ye){var xe=R;b&&(b=typeof b=="string"?b:d.getPath(b),xe=R?ne.join2(b,R):b);var Ce=Ti(Y,se),ot=d.create(xe,Ce);if(z){if(typeof z=="string"){for(var xt=new Array(z.length),tn=0,vn=z.length;tnthis.length-1||on<0)){var dn=on%this.chunkSize,Ai=on/this.chunkSize|0;return this.getter(Ai)[dn]}}setDataGetter(on){this.getter=on}cacheLength(){var on=new XMLHttpRequest;if(on.open("HEAD",z,!1),on.send(null),!(on.status>=200&&on.status<300||on.status===304))throw new Error("Couldn't load "+z+". Status: "+on.status);var dn=Number(on.getResponseHeader("Content-length")),Ai,Rn=(Ai=on.getResponseHeader("Accept-Ranges"))&&Ai==="bytes",mi=(Ai=on.getResponseHeader("Content-Encoding"))&&Ai==="gzip",Zs=1024*1024;Rn||(Zs=dn);var Do=(Ll,Dd)=>{if(Ll>Dd)throw new Error("invalid range ("+Ll+", "+Dd+") or no bytes requested!");if(Dd>dn-1)throw new Error("only "+dn+" bytes available! programmer error!");var na=new XMLHttpRequest;if(na.open("GET",z,!1),dn!==Zs&&na.setRequestHeader("Range","bytes="+Ll+"-"+Dd),na.responseType="arraybuffer",na.overrideMimeType&&na.overrideMimeType("text/plain; charset=x-user-defined"),na.send(null),!(na.status>=200&&na.status<300||na.status===304))throw new Error("Couldn't load "+z+". Status: "+na.status);return na.response!==void 0?new Uint8Array(na.response||[]):Ct(na.responseText||"",!0)},pf=this;pf.setDataGetter(Ll=>{var Dd=Ll*Zs,na=(Ll+1)*Zs-1;if(na=Math.min(na,dn-1),typeof pf.chunks[Ll]>"u"&&(pf.chunks[Ll]=Do(Dd,na)),typeof pf.chunks[Ll]>"u")throw new Error("doXHR failed!");return pf.chunks[Ll]}),(mi||!dn)&&(Zs=dn=1,dn=this.getter(0).length,Zs=dn,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=dn,this._chunkSize=Zs,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var xe=new ye,Ce={isDevice:!1,contents:xe}}else var Ce={isDevice:!1,url:z};var ot=d.createFile(b,R,Ce,Y,se);Ce.contents?ot.contents=Ce.contents:Ce.url&&(ot.contents=null,ot.url=Ce.url),Object.defineProperties(ot,{usedBytes:{get:function(){return this.contents.length}}});var xt={},tn=Object.keys(ot.stream_ops);tn.forEach(mn=>{var on=ot.stream_ops[mn];xt[mn]=(...dn)=>(d.forceLoadFile(ot),on(...dn))});function vn(mn,on,dn,Ai,Rn){var mi=mn.node.contents;if(Rn>=mi.length)return 0;var Zs=Math.min(mi.length-Rn,Ai);if(mi.slice)for(var Do=0;Do(d.forceLoadFile(ot),vn(mn,on,dn,Ai,Rn)),xt.mmap=(mn,on,dn,Ai,Rn)=>{d.forceLoadFile(ot);var mi=at(on);if(!mi)throw new d.ErrnoError(48);return vn(mn,Q,mi,on,dn),{ptr:mi,allocated:!0}},ot.stream_ops=xt,ot}},Ke={DEFAULT_POLLMASK:5,calculateAt(b,R,z){if(ne.isAbs(R))return R;var Y;if(b===-100)Y=d.cwd();else{var se=Ke.getStreamFromFD(b);Y=se.path}if(R.length==0){if(!z)throw new d.ErrnoError(44);return Y}return Y+"/"+R},writeStat(b,R){j[b>>2]=R.dev,j[b+4>>2]=R.mode,he[b+8>>2]=R.nlink,j[b+12>>2]=R.uid,j[b+16>>2]=R.gid,j[b+20>>2]=R.rdev,Pe=[R.size>>>0,(_e=R.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+24>>2]=Pe[0],j[b+28>>2]=Pe[1],j[b+32>>2]=4096,j[b+36>>2]=R.blocks;var z=R.atime.getTime(),Y=R.mtime.getTime(),se=R.ctime.getTime();return Pe=[Math.floor(z/1e3)>>>0,(_e=Math.floor(z/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+40>>2]=Pe[0],j[b+44>>2]=Pe[1],he[b+48>>2]=z%1e3*1e3*1e3,Pe=[Math.floor(Y/1e3)>>>0,(_e=Math.floor(Y/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+56>>2]=Pe[0],j[b+60>>2]=Pe[1],he[b+64>>2]=Y%1e3*1e3*1e3,Pe=[Math.floor(se/1e3)>>>0,(_e=Math.floor(se/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+72>>2]=Pe[0],j[b+76>>2]=Pe[1],he[b+80>>2]=se%1e3*1e3*1e3,Pe=[R.ino>>>0,(_e=R.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[b+88>>2]=Pe[0],j[b+92>>2]=Pe[1],0},writeStatFs(b,R){j[b+4>>2]=R.bsize,j[b+40>>2]=R.bsize,j[b+8>>2]=R.blocks,j[b+12>>2]=R.bfree,j[b+16>>2]=R.bavail,j[b+20>>2]=R.files,j[b+24>>2]=R.ffree,j[b+28>>2]=R.fsid,j[b+44>>2]=R.flags,j[b+36>>2]=R.namelen},doMsync(b,R,z,Y,se){if(!d.isFile(R.node.mode))throw new d.ErrnoError(43);if(Y&2)return 0;var ye=H.slice(b,b+z);d.msync(R,ye,se,z,Y)},getStreamFromFD(b){var R=d.getStreamChecked(b);return R},varargs:void 0,getStr(b){var R=U(b);return R}};function ul(b,R){try{return b=Ke.getStr(b),d.chmod(b,R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function us(b,R,z,Y){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),z&-8)return-28;var se=d.lookupPath(R,{follow:!0}),ye=se.node;if(!ye)return-44;var xe="";return z&4&&(xe+="r"),z&2&&(xe+="w"),z&1&&(xe+="x"),xe&&d.nodePermissions(ye,xe)?-2:0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function Fr(b,R){try{return d.fchmod(b,R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function Ps(b,R,z){try{return d.fchown(b,R,z),0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}var er=()=>{var b=j[+Ke.varargs>>2];return Ke.varargs+=4,b},cs=er;function Pr(b,R,z){Ke.varargs=z;try{var Y=Ke.getStreamFromFD(b);switch(R){case 0:{var se=er();if(se<0)return-28;for(;d.streams[se];)se++;var ye;return ye=d.dupStream(Y,se),ye.fd}case 1:case 2:return 0;case 3:return Y.flags;case 4:{var se=er();return Y.flags|=se,0}case 12:{var se=cs(),xe=0;return Z[se+xe>>1]=2,0}case 13:case 14:return 0}return-28}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function fs(b,R){try{return Ke.writeStat(R,d.fstat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var hi=(b,R)=>R+2097152>>>0<4194305-!!b?(b>>>0)+R*4294967296:NaN;function yo(b,R,z){var Y=hi(R,z);try{return isNaN(Y)?-61:(d.ftruncate(b,Y),0)}catch(se){if(typeof d>"u"||se.name!=="ErrnoError")throw se;return-se.errno}}var wn=(b,R,z)=>je(b,H,R,z);function Us(b,R){try{if(R===0)return-28;var z=d.cwd(),Y=Oe(z)+1;return R"u"||se.name!=="ErrnoError")throw se;return-se.errno}}function Xa(b,R){try{return b=Ke.getStr(b),Ke.writeStat(R,d.lstat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function $r(b,R,z){try{return R=Ke.getStr(R),R=Ke.calculateAt(b,R),d.mkdir(R,z,0),0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}function Jr(b,R,z,Y){try{R=Ke.getStr(R);var se=Y&256,ye=Y&4096;return Y=Y&-6401,R=Ke.calculateAt(b,R,ye),Ke.writeStat(z,se?d.lstat(R):d.stat(R))}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return-xe.errno}}function ds(b,R,z,Y){Ke.varargs=Y;try{R=Ke.getStr(R),R=Ke.calculateAt(b,R);var se=Y?er():0;return d.open(R,z,se).fd}catch(ye){if(typeof d>"u"||ye.name!=="ErrnoError")throw ye;return-ye.errno}}function bo(b,R,z,Y){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),Y<=0)return-28;var se=d.readlink(R),ye=Math.min(Y,Oe(se)),xe=Q[z+ye];return wn(se,z,Y+1),Q[z+ye]=xe,ye}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return-Ce.errno}}function hs(b){try{return b=Ke.getStr(b),d.rmdir(b),0}catch(R){if(typeof d>"u"||R.name!=="ErrnoError")throw R;return-R.errno}}function ps(b,R){try{return b=Ke.getStr(b),Ke.writeStat(R,d.stat(b))}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}function So(b,R,z){try{if(R=Ke.getStr(R),R=Ke.calculateAt(b,R),!z)d.unlink(R);else if(z===512)d.rmdir(R);else return-28;return 0}catch(Y){if(typeof d>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}var ae=b=>he[b>>2]+j[b+4>>2]*4294967296;function Fe(b,R,z,Y){try{R=Ke.getStr(R),R=Ke.calculateAt(b,R,!0);var se=Date.now(),ye,xe;if(!z)ye=se,xe=se;else{var Ce=ae(z),ot=j[z+8>>2];ot==1073741823?ye=se:ot==1073741822?ye=null:ye=Ce*1e3+ot/1e6,z+=16,Ce=ae(z),ot=j[z+8>>2],ot==1073741823?xe=se:ot==1073741822?xe=null:xe=Ce*1e3+ot/1e6}return(xe??ye)!==null&&d.utime(R,ye,xe),0}catch(xt){if(typeof d>"u"||xt.name!=="ErrnoError")throw xt;return-xt.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=b=>b%4===0&&(b%100!==0||b%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=b=>{var R=It(b.getFullYear()),z=R?Bt:wt,Y=z[b.getMonth()]+b.getDate()-1;return Y};function Kt(b,R,z){var Y=hi(b,R),se=new Date(Y*1e3);j[z>>2]=se.getSeconds(),j[z+4>>2]=se.getMinutes(),j[z+8>>2]=se.getHours(),j[z+12>>2]=se.getDate(),j[z+16>>2]=se.getMonth(),j[z+20>>2]=se.getFullYear()-1900,j[z+24>>2]=se.getDay();var ye=Nt(se)|0;j[z+28>>2]=ye,j[z+36>>2]=-(se.getTimezoneOffset()*60);var xe=new Date(se.getFullYear(),0,1),Ce=new Date(se.getFullYear(),6,1).getTimezoneOffset(),ot=xe.getTimezoneOffset(),xt=(Ce!=ot&&se.getTimezoneOffset()==Math.min(ot,Ce))|0;j[z+32>>2]=xt}function yn(b,R,z,Y,se,ye,xe,Ce){var ot=hi(se,ye);try{var xt=Ke.getStreamFromFD(Y),tn=d.mmap(xt,b,ot,R,z),vn=tn.ptr;return j[xe>>2]=tn.allocated,he[Ce>>2]=vn,0}catch(mn){if(typeof d>"u"||mn.name!=="ErrnoError")throw mn;return-mn.errno}}function Sn(b,R,z,Y,se,ye,xe){var Ce=hi(ye,xe);try{var ot=Ke.getStreamFromFD(se);z&2&&Ke.doMsync(b,ot,R,Y,Ce)}catch(xt){if(typeof d>"u"||xt.name!=="ErrnoError")throw xt;return-xt.errno}}var _t={},En=b=>{if(b instanceof dt||b=="unwind")return G;h(1,b)},ri=()=>fn||Be>0,Hn=b=>{G=b,ri()||(t.onExit?.(b),q=!0),h(b,new dt(b))},On=(b,R)=>{G=b,Hn(b)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(b){En(b)}},Oi=b=>{if(!q)try{b(),Pt()}catch(R){En(R)}},xn=()=>performance.now(),ai=(b,R)=>{if(_t[b]&&(clearTimeout(_t[b].id),delete _t[b]),!R)return 0;var z=setTimeout(()=>{delete _t[b],Oi(()=>kd(b,xn()))},R);return _t[b]={id:z,timeout_ms:R},0},Vn=(b,R,z,Y)=>{var se=new Date().getFullYear(),ye=new Date(se,0,1),xe=new Date(se,6,1),Ce=ye.getTimezoneOffset(),ot=xe.getTimezoneOffset(),xt=Math.max(Ce,ot);he[b>>2]=xt*60,j[R>>2]=+(Ce!=ot);var tn=on=>{var dn=on>=0?"-":"+",Ai=Math.abs(on),Rn=String(Math.floor(Ai/60)).padStart(2,"0"),mi=String(Ai%60).padStart(2,"0");return`UTC${dn}${Rn}${mi}`},vn=tn(Ce),mn=tn(ot);otDate.now(),Ur=()=>2147483648,zn=b=>{var R=k.buffer,z=(b-R.byteLength+65535)/65536|0;try{return k.grow(z),Ne(),1}catch{}},vi=b=>{var R=H.length;b>>>=0;var z=Ur();if(b>z)return!1;for(var Y=1;Y<=4;Y*=2){var se=R*(1+.2/Y);se=Math.min(se,b+100663296);var ye=Math.min(z,bt(Math.max(b,se),65536)),xe=zn(ye);if(xe)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var b=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",R={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:b,_:jn()};for(var z in pi)pi[z]===void 0?delete R[z]:R[z]=pi[z];var Y=[];for(var z in R)Y.push(`${z}=${R[z]}`);si.strings=Y}return si.strings},da=(b,R)=>{var z=0,Y=0;for(var se of si()){var ye=R+z;he[b+Y>>2]=ye,z+=wn(se,ye,1/0)+1,Y+=4}return 0},Eo=(b,R)=>{var z=si();he[b>>2]=z.length;var Y=0;for(var se of z)Y+=Oe(se)+1;return he[R>>2]=Y,0};function Vu(b){try{var R=Ke.getStreamFromFD(b);return d.close(R),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}}function Gu(b,R){try{var z=0,Y=0,se=0,ye=Ke.getStreamFromFD(b),xe=ye.tty?2:d.isDir(ye.mode)?3:d.isLink(ye.mode)?7:4;return Q[R]=xe,Z[R+2>>1]=se,Pe=[z>>>0,(_e=z,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[R+8>>2]=Pe[0],j[R+12>>2]=Pe[1],Pe=[Y>>>0,(_e=Y,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[R+16>>2]=Pe[0],j[R+20>>2]=Pe[1],0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return Ce.errno}}var Wu=(b,R,z,Y)=>{for(var se=0,ye=0;ye>2],Ce=he[R+4>>2];R+=8;var ot=d.read(b,Q,xe,Ce,Y);if(ot<0)return-1;if(se+=ot,ot>2]=ye,0}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return xe.errno}}function Qu(b,R,z,Y,se){var ye=hi(R,z);try{if(isNaN(ye))return 61;var xe=Ke.getStreamFromFD(b);return d.llseek(xe,ye,Y),Pe=[xe.position>>>0,(_e=xe.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[se>>2]=Pe[0],j[se+4>>2]=Pe[1],xe.getdents&&ye===0&&Y===0&&(xe.getdents=null),0}catch(Ce){if(typeof d>"u"||Ce.name!=="ErrnoError")throw Ce;return Ce.errno}}var wo=function(b){try{var R=Ke.getStreamFromFD(b);return Xt.handleSleep(z=>{var Y=R.node.mount;if(!Y.type.syncfs){z(0);return}Y.type.syncfs(Y,!1,se=>{z(se?29:0)})})}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}};wo.isAsync=!0;var Xu=(b,R,z,Y)=>{for(var se=0,ye=0;ye>2],Ce=he[R+4>>2];R+=8;var ot=d.write(b,Q,xe,Ce,Y);if(ot<0)return-1;if(se+=ot,ot>2]=ye,0}catch(xe){if(typeof d>"u"||xe.name!=="ErrnoError")throw xe;return xe.errno}}var it=function(){let b=typeof Xt=="object"?Xt.handleAsync.bind(Xt):null;t.handleAsync=b;let R=new Map;t.setCallback=(z,Y)=>R.set(z,Y),t.getCallback=z=>R.get(z),t.deleteCallback=z=>R.delete(z),it=function(z,Y,...se){let ye=R.get(Y),xe=null,Ce=typeof ye=="function"?ye:ye[xe=U(se.shift())];if(z){if(b)return b(()=>Ce.apply(ye,se));throw new Error("Synchronous WebAssembly cannot call async function")}let ot=Ce.apply(ye,se);if(typeof ot?.then=="function")throw console.error("unexpected Promise",Ce),new Error(`${xe} unexpectedly returned a Promise`);return ot}};function Yu(...b){return it(!1,...b)}function cl(...b){return it(!0,...b)}cl.isAsync=!0;function tu(...b){return it(!1,...b)}function fl(...b){return it(!0,...b)}fl.isAsync=!0;function Ku(...b){return it(!1,...b)}function dl(...b){return it(!0,...b)}dl.isAsync=!0;function Zu(...b){return it(!1,...b)}function hl(...b){return it(!0,...b)}hl.isAsync=!0;function Jc(...b){return it(!1,...b)}function pl(...b){return it(!0,...b)}pl.isAsync=!0;function zs(...b){return it(!1,...b)}function ml(...b){return it(!0,...b)}ml.isAsync=!0;function _l(...b){return it(!1,...b)}function qs(...b){return it(!0,...b)}qs.isAsync=!0;function $u(...b){return it(!1,...b)}function xo(...b){return it(!0,...b)}xo.isAsync=!0;function ef(...b){return it(!1,...b)}function gl(...b){return it(!0,...b)}gl.isAsync=!0;function Ju(...b){return it(!1,...b)}function vl(...b){return it(!0,...b)}vl.isAsync=!0;function ec(...b){return it(!1,...b)}function yl(...b){return it(!0,...b)}yl.isAsync=!0;function nu(...b){return it(!1,...b)}function bl(...b){return it(!0,...b)}bl.isAsync=!0;function tc(...b){return it(!1,...b)}function To(...b){return it(!0,...b)}To.isAsync=!0;function nc(b,R){try{return ie(H.subarray(b,b+R)),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return z.errno}}function iu(...b){return it(!1,...b)}function ru(...b){return it(!0,...b)}ru.isAsync=!0;function Sl(...b){return it(!1,...b)}function au(...b){return it(!0,...b)}au.isAsync=!0;function su(...b){return it(!1,...b)}function Bs(...b){return it(!0,...b)}Bs.isAsync=!0;var Mo=b=>{try{return b()}catch(R){Mt(R)}},ic=b=>{for(var R={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},z={parameters:[],results:b[0]=="v"?[]:[R[b[0]]]},Y=1;Y{Be+=1},Zt=()=>{Be-=1},Xt={instrumentWasmImports(b){var R=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[z,Y]of Object.entries(b))if(typeof Y=="function"){let se=Y.isAsync||R.test(z)}},instrumentWasmExports(b){var R={};for(let[z,Y]of Object.entries(b))typeof Y=="function"?R[z]=(...se)=>{Xt.exportCallStack.push(z);try{return Y(...se)}finally{if(!q){var ye=Xt.exportCallStack.pop();Xt.maybeStopUnwind()}}}:R[z]=Y;return R},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(b){var R=Xt.callStackNameToId[b];return R===void 0&&(R=Xt.callStackId++,Xt.callStackNameToId[b]=R,Xt.callStackIdToName[R]=b),R},maybeStopUnwind(){Xt.currData&&Xt.state===Xt.State.Unwinding&&Xt.exportCallStack.length===0&&(Xt.state=Xt.State.Normal,Mo(T),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return new Promise((b,R)=>{Xt.asyncPromiseHandlers={resolve:b,reject:R}})},allocateData(){var b=Id(12+Xt.StackSize);return Xt.setDataHeader(b,b+12,Xt.StackSize),Xt.setDataRewindFunc(b),b},setDataHeader(b,R,z){he[b>>2]=R,he[b+4>>2]=R+z},setDataRewindFunc(b){var R=Xt.exportCallStack[0],z=Xt.getCallStackId(R);j[b+8>>2]=z},getDataRewindFuncName(b){var R=j[b+8>>2],z=Xt.callStackIdToName[R];return z},getDataRewindFunc(b){var R=ue[b];return R},doRewind(b){var R=Xt.getDataRewindFuncName(b),z=Xt.getDataRewindFunc(R);return z()},handleSleep(b){if(!q){if(Xt.state===Xt.State.Normal){var R=!1,z=!1;b((Y=0)=>{if(!q&&(Xt.handleSleepReturnValue=Y,R=!0,!!z)){Xt.state=Xt.State.Rewinding,Mo(()=>D(Xt.currData)),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.resume();var se,ye=!1;try{se=Xt.doRewind(Xt.currData)}catch(ot){se=ot,ye=!0}var xe=!1;if(!Xt.currData){var Ce=Xt.asyncPromiseHandlers;Ce&&(Xt.asyncPromiseHandlers=null,(ye?Ce.reject:Ce.resolve)(se),xe=!0)}if(ye&&!xe)throw se}}),z=!0,R||(Xt.state=Xt.State.Unwinding,Xt.currData=Xt.allocateData(),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.pause(),Mo(()=>Ks(Xt.currData)))}else Xt.state===Xt.State.Rewinding?(Xt.state=Xt.State.Normal,Mo(V),Jp(Xt.currData),Xt.currData=null,Xt.sleepCallbacks.forEach(Oi)):Mt(`invalid state: ${Xt.state}`);return Xt.handleSleepReturnValue}},handleAsync:b=>Xt.handleSleep(R=>{b().then(R)})},ou=(b,R)=>{b<128?R.push(b):R.push(b%128|128,b>>7)},ms=(b,R)=>{var z=b.slice(0,1),Y=b.slice(1),se={i:127,p:127,j:126,f:125,d:124,e:111};R.push(96),ou(Y.length,R);for(var ye of Y)R.push(se[ye]);z=="v"?R.push(0):R.push(1,se[z])},xr=(b,R)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(ic(R),b);var z=[1];ms(R,z);var Y=[0,97,115,109,1,0,0,0,1];ou(z.length,Y),Y.push(...z),Y.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var se=new WebAssembly.Module(new Uint8Array(Y)),ye=new WebAssembly.Instance(se,{e:{f:b}}),xe=ye.exports.f;return xe},Ya,lu=b=>Ya.get(b),Tr=(b,R)=>{if(ha)for(var z=b;z(ha||(ha=new WeakMap,Tr(0,Ya.length)),ha.get(b)||0),Hs=[],Co=()=>{if(Hs.length)return Hs.pop();try{Ya.grow(1)}catch(b){throw b instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":b}return Ya.length-1},wl=(b,R)=>Ya.set(b,R),Ta=(b,R)=>{var z=El(b);if(z)return z;var Y=Co();try{wl(Y,b)}catch(ye){if(!(ye instanceof TypeError))throw ye;var se=xr(b,R);wl(Y,se)}return ha.set(b,Y),Y},oi=b=>{var R=t["_"+b];return R},Ro=(b,R)=>{Q.set(b,R)},xl=b=>rm(b),Ma=b=>{var R=Oe(b)+1,z=xl(R);return wn(b,z,R),z},Aa=(b,R,z,Y,se)=>{var ye={string:Rn=>{var mi=0;return Rn!=null&&Rn!==0&&(mi=Ma(Rn)),mi},array:Rn=>{var mi=xl(Rn.length);return Ro(Rn,mi),mi}};function xe(Rn){return R==="string"?U(Rn):R==="boolean"?!!Rn:Rn}var Ce=oi(b),ot=[],xt=0;if(Y)for(var tn=0;tn{var se=!z||z.every(xe=>xe==="number"||xe==="boolean"),ye=R!=="string";return ye&&se&&!Y?oi(b):(...xe)=>Aa(b,R,z,xe,Y)},uu=b=>dv(),Tl=(b,R,z)=>{if(z??=2147483647,z<2)return 0;z-=2;for(var Y=R,se=z>1]=xe,R+=2}return Z[R>>1]=0,R-Y},rc=(b,R,z)=>{if(z??=2147483647,z<4)return 0;for(var Y=R,se=Y+z-4,ye=0;ye=55296&&xe<=57343){var Ce=b.charCodeAt(++ye);xe=65536+((xe&1023)<<10)|Ce&1023}if(j[R>>2]=xe,R+=4,R+4>se)break}return j[R>>2]=0,R-Y},tf=b=>{for(var R="";;){var z=H[b++];if(!z)return R;R+=String.fromCharCode(z)}},Gs=new TextDecoder("utf-16le"),me=(b,R)=>{for(var z=b>>1,Y=z+R/2,se=z;!(se>=Y)&&te[se];)++se;return Gs.decode(te.subarray(z,se))},pe=(b,R)=>{for(var z=0,Y="";!(z>=R/4);){var se=j[b+z*4>>2];if(se==0)break;if(++z,se>=65536){var ye=se-65536;Y+=String.fromCharCode(55296|ye>>10,56320|ye&1023)}else Y+=String.fromCharCode(se)}return Y},cd=b=>{for(var R=[],z=0;z255&&(Y&=255),R.push(String.fromCharCode(Y))}return R.join("")},fd=uu;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=uu,t.ccall=Aa,t.cwrap=Vs,t.addFunction=Ta,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=cd,t.AsciiToString=tf,t.UTF16ToString=me,t.stringToUTF16=Tl,t.UTF32ToString=pe,t.stringToUTF32=rc,t.writeArrayToMemory=Ro,t._getTempRet0=fd;var ce={a:ee,aa:ul,ca:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,Q:$r,W:Jr,O:ds,M:bo,L:hs,Z:ps,J:So,I:Fe,ea:Ye,E:He,w:Kt,u:yn,v:Sn,F:ai,P:Vn,n:wr,g:xn,G:vi,R:da,S:Eo,o:Vu,H:Gu,N:ju,x:Qu,V:wo,K:$c,s:Yu,t:cl,la:tu,pa:fl,j:Ku,k:dl,c:Zu,d:hl,ha:Jc,ia:pl,ja:zs,ka:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,fa:Ju,ga:vl,B:ec,C:yl,p:nu,q:bl,ma:tc,na:To,D:Hn,T:nc,oa:iu,r:ru,l:Sl,m:au,X:su,da:Bs},ue=await lt(),G_=ue.ra,np=t._powersync_init_static=ue.sa,dd=t._memcpy=ue.ta,hd=t._memset=ue.ua,yb=t._memcmp=ue.va,W_=t._sqlite3_status64=ue.wa,j_=t._sqlite3_status=ue.xa,pd=t._sqlite3_msize=ue.ya,ip=t._sqlite3_db_status=ue.za,rp=t._sqlite3_vfs_find=ue.Aa,Q_=t._sqlite3_vfs_register=ue.Ba,Io=t._sqlite3_vfs_unregister=ue.Ca,ap=t._sqlite3_release_memory=ue.Da,bb=t._sqlite3_soft_heap_limit64=ue.Ea,X_=t._sqlite3_memory_used=ue.Fa,_s=t._sqlite3_hard_heap_limit64=ue.Ga,md=t._sqlite3_memory_highwater=ue.Ha,Y_=t._sqlite3_malloc=ue.Ia,sp=t._sqlite3_malloc64=ue.Ja,K_=t._sqlite3_free=ue.Ka,Z_=t._sqlite3_realloc=ue.La,op=t._sqlite3_realloc64=ue.Ma,lp=t._sqlite3_str_vappendf=ue.Na,$_=t._sqlite3_str_append=ue.Oa,_d=t._sqlite3_str_appendchar=ue.Pa,nf=t._sqlite3_str_appendall=ue.Qa,Mi=t._sqlite3_str_appendf=ue.Ra,Sb=t._sqlite3_str_finish=ue.Sa,Eb=t._sqlite3_str_errcode=ue.Ta,J_=t._sqlite3_str_length=ue.Ua,rf=t._sqlite3_str_value=ue.Va,Ml=t._sqlite3_str_reset=ue.Wa,eg=t._sqlite3_str_new=ue.Xa,tg=t._sqlite3_vmprintf=ue.Ya,Ws=t._sqlite3_mprintf=ue.Za,Mr=t._sqlite3_vsnprintf=ue._a,ng=t._sqlite3_snprintf=ue.$a,af=t._sqlite3_log=ue.ab,ig=t._sqlite3_randomness=ue.bb,sf=t._sqlite3_stricmp=ue.cb,up=t._sqlite3_strnicmp=ue.db,cp=t._sqlite3_os_init=ue.eb,fp=t._sqlite3_os_end=ue.fb,dp=t._sqlite3_serialize=ue.gb,rg=t._sqlite3_prepare_v2=ue.hb,hp=t._sqlite3_step=ue.ib,pp=t._sqlite3_column_int64=ue.jb,gd=t._sqlite3_reset=ue.kb,mp=t._sqlite3_exec=ue.lb,ag=t._sqlite3_column_int=ue.mb,sg=t._sqlite3_finalize=ue.nb,og=t._sqlite3_deserialize=ue.ob,lg=t._sqlite3_database_file_object=ue.pb,ac=t._sqlite3_backup_init=ue.qb,ug=t._sqlite3_backup_step=ue.rb,js=t._sqlite3_backup_finish=ue.sb,vd=t._sqlite3_backup_remaining=ue.tb,_p=t._sqlite3_backup_pagecount=ue.ub,gp=t._sqlite3_clear_bindings=ue.vb,vp=t._sqlite3_value_blob=ue.wb,cg=t._sqlite3_value_text=ue.xb,yp=t._sqlite3_value_bytes=ue.yb,yd=t._sqlite3_value_bytes16=ue.zb,fg=t._sqlite3_value_double=ue.Ab,bp=t._sqlite3_value_int=ue.Bb,dg=t._sqlite3_value_int64=ue.Cb,wb=t._sqlite3_value_subtype=ue.Db,bd=t._sqlite3_value_pointer=ue.Eb,hg=t._sqlite3_value_text16=ue.Fb,Sp=t._sqlite3_value_text16be=ue.Gb,pg=t._sqlite3_value_text16le=ue.Hb,Ep=t._sqlite3_value_type=ue.Ib,mg=t._sqlite3_value_encoding=ue.Jb,Ca=t._sqlite3_value_nochange=ue.Kb,wp=t._sqlite3_value_frombind=ue.Lb,_g=t._sqlite3_value_dup=ue.Mb,gg=t._sqlite3_value_free=ue.Nb,xb=t._sqlite3_result_blob=ue.Ob,Sd=t._sqlite3_result_blob64=ue.Pb,Ar=t._sqlite3_result_double=ue.Qb,vg=t._sqlite3_result_error=ue.Rb,zr=t._sqlite3_result_error16=ue.Sb,yg=t._sqlite3_result_int=ue.Tb,sc=t._sqlite3_result_int64=ue.Ub,bg=t._sqlite3_result_null=ue.Vb,Qs=t._sqlite3_result_pointer=ue.Wb,Al=t._sqlite3_result_subtype=ue.Xb,gs=t._sqlite3_result_text=ue.Yb,xp=t._sqlite3_result_text64=ue.Zb,Tp=t._sqlite3_result_text16=ue._b,Ka=t._sqlite3_result_text16be=ue.$b,Sg=t._sqlite3_result_text16le=ue.ac,oc=t._sqlite3_result_value=ue.bc,of=t._sqlite3_result_error_toobig=ue.cc,Cl=t._sqlite3_result_zeroblob=ue.dc,Eg=t._sqlite3_result_zeroblob64=ue.ec,wg=t._sqlite3_result_error_code=ue.fc,lf=t._sqlite3_result_error_nomem=ue.gc,xg=t._sqlite3_user_data=ue.hc,Ed=t._sqlite3_context_db_handle=ue.ic,Tg=t._sqlite3_vtab_nochange=ue.jc,Mp=t._sqlite3_vtab_in_first=ue.kc,Ap=t._sqlite3_vtab_in_next=ue.lc,Cp=t._sqlite3_aggregate_context=ue.mc,Mg=t._sqlite3_get_auxdata=ue.nc,Rp=t._sqlite3_set_auxdata=ue.oc,Ra=t._sqlite3_column_count=ue.pc,Ag=t._sqlite3_data_count=ue.qc,lc=t._sqlite3_column_blob=ue.rc,pa=t._sqlite3_column_bytes=ue.sc,Cg=t._sqlite3_column_bytes16=ue.tc,Rg=t._sqlite3_column_double=ue.uc,Tb=t._sqlite3_column_text=ue.vc,Rl=t._sqlite3_column_value=ue.wc,Ig=t._sqlite3_column_text16=ue.xc,Ip=t._sqlite3_column_type=ue.yc,uc=t._sqlite3_column_name=ue.zc,Lg=t._sqlite3_column_name16=ue.Ac,Ng=t._sqlite3_bind_blob=ue.Bc,kg=t._sqlite3_bind_blob64=ue.Cc,Og=t._sqlite3_bind_double=ue.Dc,wd=t._sqlite3_bind_int=ue.Ec,Lp=t._sqlite3_bind_int64=ue.Fc,Mb=t._sqlite3_bind_null=ue.Gc,Ab=t._sqlite3_bind_pointer=ue.Hc,Cb=t._sqlite3_bind_text=ue.Ic,Dg=t._sqlite3_bind_text64=ue.Jc,Fg=t._sqlite3_bind_text16=ue.Kc,cc=t._sqlite3_bind_value=ue.Lc,xd=t._sqlite3_bind_zeroblob=ue.Mc,Pg=t._sqlite3_bind_zeroblob64=ue.Nc,Ug=t._sqlite3_bind_parameter_count=ue.Oc,Rb=t._sqlite3_bind_parameter_name=ue.Pc,Ib=t._sqlite3_bind_parameter_index=ue.Qc,Lb=t._sqlite3_db_handle=ue.Rc,Np=t._sqlite3_stmt_readonly=ue.Sc,kp=t._sqlite3_stmt_isexplain=ue.Tc,Op=t._sqlite3_stmt_explain=ue.Uc,zg=t._sqlite3_stmt_busy=ue.Vc,uf=t._sqlite3_next_stmt=ue.Wc,Dp=t._sqlite3_stmt_status=ue.Xc,qg=t._sqlite3_sql=ue.Yc,li=t._sqlite3_expanded_sql=ue.Zc,Fp=t._sqlite3_value_numeric_type=ue._c,Nb=t._sqlite3_blob_open=ue.$c,Bg=t._sqlite3_blob_close=ue.ad,kb=t._sqlite3_blob_read=ue.bd,Ob=t._sqlite3_blob_write=ue.cd,Db=t._sqlite3_blob_bytes=ue.dd,Fb=t._sqlite3_blob_reopen=ue.ed,Pp=t._sqlite3_set_authorizer=ue.fd,Lo=t._sqlite3_strglob=ue.gd,Hg=t._sqlite3_strlike=ue.hd,Td=t._sqlite3_errmsg=ue.id,cu=t._sqlite3_load_extension=ue.jd,Up=t._sqlite3_enable_load_extension=ue.kd,Vg=t._sqlite3_auto_extension=ue.ld,zp=t._sqlite3_cancel_auto_extension=ue.md,Pb=t._sqlite3_reset_auto_extension=ue.nd,Gg=t._sqlite3_prepare=ue.od,Wg=t._sqlite3_prepare_v3=ue.pd,jg=t._sqlite3_prepare16=ue.qd,Qg=t._sqlite3_prepare16_v2=ue.rd,Xg=t._sqlite3_prepare16_v3=ue.sd,qp=t._sqlite3_get_table=ue.td,qn=t._sqlite3_free_table=ue.ud,Ub=t._sqlite3_create_module=ue.vd,Ia=t._sqlite3_create_module_v2=ue.wd,Bp=t._sqlite3_drop_modules=ue.xd,zb=t._sqlite3_declare_vtab=ue.yd,Md=t._sqlite3_vtab_on_conflict=ue.zd,fc=t._sqlite3_vtab_config=ue.Ad,dc=t._sqlite3_vtab_collation=ue.Bd,Yg=t._sqlite3_vtab_in=ue.Cd,Hp=t._sqlite3_vtab_rhs_value=ue.Dd,Kg=t._sqlite3_vtab_distinct=ue.Ed,No=t._sqlite3_keyword_name=ue.Fd,Vp=t._sqlite3_keyword_count=ue.Gd,Gp=t._sqlite3_keyword_check=ue.Hd,Wp=t._sqlite3_complete=ue.Id,jp=t._sqlite3_complete16=ue.Jd,Il=t._sqlite3_libversion=ue.Kd,Qp=t._sqlite3_libversion_number=ue.Ld,qb=t._sqlite3_threadsafe=ue.Md,Bb=t._sqlite3_initialize=ue.Nd,Xp=t._sqlite3_shutdown=ue.Od,Hb=t._sqlite3_config=ue.Pd,Zg=t._sqlite3_db_mutex=ue.Qd,$g=t._sqlite3_db_release_memory=ue.Rd,Vb=t._sqlite3_db_cacheflush=ue.Sd,Ad=t._sqlite3_db_config=ue.Td,_n=t._sqlite3_last_insert_rowid=ue.Ud,Gb=t._sqlite3_set_last_insert_rowid=ue.Vd,Wb=t._sqlite3_changes64=ue.Wd,Jg=t._sqlite3_changes=ue.Xd,cf=t._sqlite3_total_changes64=ue.Yd,jb=t._sqlite3_total_changes=ue.Zd,Qb=t._sqlite3_txn_state=ue._d,Xb=t._sqlite3_close=ue.$d,Yb=t._sqlite3_close_v2=ue.ae,Kb=t._sqlite3_busy_handler=ue.be,Yp=t._sqlite3_progress_handler=ue.ce,ev=t._sqlite3_busy_timeout=ue.de,Cd=t._sqlite3_interrupt=ue.ee,tv=t._sqlite3_is_interrupted=ue.fe,Zb=t._sqlite3_create_function=ue.ge,$b=t._sqlite3_create_function_v2=ue.he,fu=t._sqlite3_create_window_function=ue.ie,Xs=t._sqlite3_create_function16=ue.je,Gi=t._sqlite3_overload_function=ue.ke,Ys=t._sqlite3_trace_v2=ue.le,Cr=t._sqlite3_commit_hook=ue.me,Jb=t._sqlite3_update_hook=ue.ne,eS=t._sqlite3_rollback_hook=ue.oe,hr=t._sqlite3_autovacuum_pages=ue.pe,ko=t._sqlite3_wal_autocheckpoint=ue.qe,tS=t._sqlite3_wal_hook=ue.re,nS=t._sqlite3_wal_checkpoint_v2=ue.se,iS=t._sqlite3_wal_checkpoint=ue.te,rS=t._sqlite3_error_offset=ue.ue,aS=t._sqlite3_errmsg16=ue.ve,Kp=t._sqlite3_errcode=ue.we,nv=t._sqlite3_extended_errcode=ue.xe,sS=t._sqlite3_system_errno=ue.ye,iv=t._sqlite3_errstr=ue.ze,oS=t._sqlite3_limit=ue.Ae,lS=t._sqlite3_open=ue.Be,hc=t._sqlite3_open_v2=ue.Ce,Oo=t._sqlite3_open16=ue.De,uS=t._sqlite3_create_collation=ue.Ee,cS=t._sqlite3_create_collation_v2=ue.Fe,fS=t._sqlite3_create_collation16=ue.Ge,ff=t._sqlite3_collation_needed=ue.He,dS=t._sqlite3_collation_needed16=ue.Ie,hS=t._sqlite3_get_clientdata=ue.Je,pS=t._sqlite3_set_clientdata=ue.Ke,df=t._sqlite3_get_autocommit=ue.Le,mS=t._sqlite3_table_column_metadata=ue.Me,_S=t._sqlite3_sleep=ue.Ne,gS=t._sqlite3_extended_result_codes=ue.Oe,vS=t._sqlite3_file_control=ue.Pe,yS=t._sqlite3_test_control=ue.Qe,bS=t._sqlite3_create_filename=ue.Re,SS=t._sqlite3_free_filename=ue.Se,ES=t._sqlite3_uri_parameter=ue.Te,wS=t._sqlite3_uri_key=ue.Ue,xS=t._sqlite3_uri_boolean=ue.Ve,TS=t._sqlite3_uri_int64=ue.We,MS=t._sqlite3_filename_database=ue.Xe,rv=t._sqlite3_filename_journal=ue.Ye,AS=t._sqlite3_filename_wal=ue.Ze,CS=t._sqlite3_db_name=ue._e,RS=t._sqlite3_db_filename=ue.$e,IS=t._sqlite3_db_readonly=ue.af,av=t._sqlite3_compileoption_used=ue.bf,LS=t._sqlite3_compileoption_get=ue.cf,Zp=t._sqlite3_sourceid=ue.df,sv=t._sqlite3mc_config=ue.ef,NS=t._sqlite3mc_cipher_count=ue.ff,$p=t._sqlite3mc_cipher_index=ue.gf,ov=t._sqlite3mc_cipher_name=ue.hf,Rd=t._sqlite3mc_config_cipher=ue.jf,kS=t._sqlite3mc_vfs_create=ue.kf,Id=t._malloc=ue.lf,Jp=t._free=ue.mf,lv=t._RegisterExtensionFunctions=ue.nf,uv=t._getSqliteFree=ue.of,hf=t._main=ue.pf,em=t._libauthorizer_set_authorizer=ue.qf,cv=t._libfunction_create_function=ue.rf,tm=t._libhook_commit_hook=ue.sf,Ld=t._libhook_update_hook=ue.tf,nm=t._libprogress_progress_handler=ue.uf,fv=t._libvfs_vfs_register=ue.vf,Nd=ue.xf,kd=ue.yf,dv=ue.zf,im=ue.Af,rm=ue.Bf,am=ue.Cf,sm=t.dynCall_iii=ue.dynCall_iii,om=t.dynCall_iiii=ue.dynCall_iiii,OS=t.dynCall_viii=ue.dynCall_viii,DS=t.dynCall_vi=ue.dynCall_vi,FS=t.dynCall_viiiij=ue.dynCall_viiiij,PS=t.dynCall_ii=ue.dynCall_ii,hv=t.dynCall_vii=ue.dynCall_vii,US=t.dynCall_iiiiiii=ue.dynCall_iiiiiii,zS=t.dynCall_iiiiii=ue.dynCall_iiiiii,qS=t.dynCall_iiiii=ue.dynCall_iiiii,BS=t.dynCall_viiii=ue.dynCall_viiii,HS=t.dynCall_iiiiiiiii=ue.dynCall_iiiiiiiii,pv=t.dynCall_vijii=ue.dynCall_vijii,Od=t.dynCall_viiiii=ue.dynCall_viiiii,mv=t.dynCall_iiiij=ue.dynCall_iiiij,A=t.dynCall_viji=ue.dynCall_viji,P=t.dynCall_iij=ue.dynCall_iij,W=t.dynCall_iidiiii=ue.dynCall_iidiiii,J=t.dynCall_v=ue.dynCall_v,de=t.dynCall_iijii=ue.dynCall_iijii,Ae=t.dynCall_iiji=ue.dynCall_iiji,qe=t.dynCall_i=ue.dynCall_i,w=t.dynCall_iiiiiij=ue.dynCall_iiiiiij,I=t.dynCall_iiid=ue.dynCall_iiid,B=t.dynCall_iiij=ue.dynCall_iiij,K=t.dynCall_dii=ue.dynCall_dii,oe=t.dynCall_jii=ue.dynCall_jii,Se=t.dynCall_ji=ue.dynCall_ji,Te=t.dynCall_vid=ue.dynCall_vid,Ie=t.dynCall_vij=ue.dynCall_vij,rt=t.dynCall_iiiiiiiiii=ue.dynCall_iiiiiiiiii,Ut=t.dynCall_di=ue.dynCall_di,ln=t.dynCall_iiiiijii=ue.dynCall_iiiiijii,gn=t.dynCall_j=ue.dynCall_j,hn=t.dynCall_jj=ue.dynCall_jj,un=t.dynCall_jiij=ue.dynCall_jiij,Dt=t.dynCall_iiiiji=ue.dynCall_iiiiji,Kn=t.dynCall_iiiijii=ue.dynCall_iiiijii,Qn=t.dynCall_ij=ue.dynCall_ij,ea=t.dynCall_viiji=ue.dynCall_viiji,La=t.dynCall_viijii=ue.dynCall_viijii,Za=t.dynCall_iiiiiiiiiii=ue.dynCall_iiiiiiiiiii,pc=t.dynCall_iiiijji=ue.dynCall_iiiijji,ta=t.dynCall_iiiiiiii=ue.dynCall_iiiiiiii,Ks=ue.Df,T=ue.Ef,D=ue.Ff,V=ue.Gf,$=t._sqlite3_version=82296;function fe(){var b=hf,R=0,z=0;try{var Y=b(R,z);return On(Y,!0),Y}catch(se){return En(se)}}function Ee(){if(We>0){gt=Ee;return}if(Ve(),We>0){gt=Ee;return}function b(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var R=t.noInitialRun||!1;R||fe(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),b()},1)):b()}function Ue(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return Ue(),Ee(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.set_authorizer=function(z,Y,se){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,Y instanceof b?1:0,"i32");let ye=Aa("libauthorizer_set_authorizer","number",["number","number","number"],[z,Y?1:0,R]);return!ye&&Y&&t.setCallback(R,(xe,Ce,ot,xt,tn,vn)=>Y(se,Ce,ot,xt,tn,vn)),ye}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=["xFunc","xStep","xFinal"],z=new Map;t.create_function=function(Y,se,ye,xe,Ce,ot,xt,tn){let vn=t._sqlite3_malloc(4),mn={xFunc:ot,xStep:xt,xFinal:tn};kt(vn,R.reduce((dn,Ai,Rn)=>mn[Ai]instanceof b?dn|1<Y(ye,xe,Ce,ot,xt))}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.commit_hook=function(z,Y){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,Y instanceof b?1:0,"i32"),Aa("libhook_commit_hook","void",["number","number","number"],[z,Y?1:0,R]),Y&&t.setCallback(R,se=>Y())}})(),(function(){let b=Object.getPrototypeOf(async function(){}).constructor,R=0;t.progress_handler=function(z,Y,se,ye){R&&(t.deleteCallback(R),t._sqlite3_free(R),R=0),R=t._sqlite3_malloc(4),kt(R,se instanceof b?1:0,"i32"),Aa("libprogress_progress_handler","number",["number","number","number","number"],[z,Y,se?1:0,R]),se&&t.setCallback(R,xe=>se(ye))}})(),(function(){let b=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],R=new Map;t.vfs_register=function(z,Y){let se=0,ye=0;b.forEach((Ce,ot)=>{z[Ce]&&(se|=1<Mte});var Tte,Mte,GH=Da(()=>{Tte=(async function(n={}){var e,t=n,i,r,a=new Promise((T,D)=>{i=T,r=D}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(T,D)=>{throw D},_=import.meta.url,g="";function E(T){return t.locateFile?t.locateFile(T,g):g+T}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=T=>{var D=new XMLHttpRequest;return D.open("GET",T,!1),D.responseType="arraybuffer",D.send(null),new Uint8Array(D.response)}),x=async T=>{var D=await fetch(T,{credentials:"same-origin"});if(D.ok)return D.arrayBuffer();throw new Error(D.status+" : "+D.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var T=k.buffer;Q=new Int8Array(T),Z=new Int16Array(T),t.HEAPU8=H=new Uint8Array(T),te=new Uint16Array(T),t.HEAP32=j=new Int32Array(T),he=new Uint32Array(T),ke=new Float32Array(T),Me=new Float64Array(T)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),ce.qa(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(T){return T}function jt(T){We++,t.monitorRunDependencies?.(We)}function zt(T){if(We--,t.monitorRunDependencies?.(We),We==0&>){var D=gt;gt=null,D()}}function Mt(T){t.onAbort?.(T),T="Aborted("+T+")",M(T),q=!0,T+=". Build with -sASSERTIONS for more info.";var D=new WebAssembly.RuntimeError(T);throw r(D),D}var Xe;function et(){return t.locateFile?E("wa-sqlite-async.wasm"):new URL("wa-sqlite-async.wasm",import.meta.url).href}function yt(T){if(T==Xe&&O)return new Uint8Array(O);if(S)return S(T);throw"both async and sync fetching of the wasm failed"}async function Wt(T){if(!O)try{var D=await x(T);return new Uint8Array(D)}catch{}return yt(T)}async function Lt(T,D){try{var V=await Wt(T),$=await WebAssembly.instantiate(V,D);return $}catch(fe){M(`failed to asynchronously prepare wasm: ${fe}`),Mt(fe)}}async function sn(T,D,V){if(!T&&typeof WebAssembly.instantiateStreaming=="function")try{var $=fetch(D,{credentials:"same-origin"}),fe=await WebAssembly.instantiateStreaming($,V);return fe}catch(Ee){M(`wasm streaming compile failed: ${Ee}`),M("falling back to ArrayBuffer instantiation")}return Lt(D,V)}function pn(){return{a:fd}}async function lt(){function T(Ee,Ue){return ce=Ee.exports,ce=Zt.instrumentWasmExports(ce),k=ce.pa,Ne(),xr=ce.pf,zt("wasm-instantiate"),ce}jt("wasm-instantiate");function D(Ee){return T(Ee.instance)}var V=pn();if(t.instantiateWasm)return new Promise((Ee,Ue)=>{t.instantiateWasm(V,(b,R)=>{Ee(T(b,R))})});Xe??=et();try{var $=await sn(O,Xe,V),fe=D($);return fe}catch(Ee){return r(Ee),Promise.reject(Ee)}}var _e,Pe;class dt{name="ExitStatus";constructor(D){this.message=`Program terminated with exit(${D})`,this.status=D}}var vt=T=>{for(;T.length>0;)T.shift()(t)},Qt=[],Ht=T=>Qt.push(T),qt=[],en=T=>qt.push(T);function Le(T,D="i8"){switch(D.endsWith("*")&&(D="*"),D){case"i1":return Q[T];case"i8":return Q[T];case"i16":return Z[T>>1];case"i32":return j[T>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[T>>2];case"double":return Me[T>>3];case"*":return he[T>>2];default:Mt(`invalid type for getValue: ${D}`)}}var fn=!0;function kt(T,D,V="i8"){switch(V.endsWith("*")&&(V="*"),V){case"i1":Q[T]=D;break;case"i8":Q[T]=D;break;case"i16":Z[T>>1]=D;break;case"i32":j[T>>2]=D;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[T>>2]=D;break;case"double":Me[T>>3]=D;break;case"*":he[T>>2]=D;break;default:Mt(`invalid type for setValue: ${V}`)}}var ge=T=>tm(T),L=()=>nm(),N=new TextDecoder,U=(T,D)=>{if(!T)return"";for(var V=T+D,$=T;!($>=V)&&H[$];)++$;return N.decode(H.subarray(T,$))},ee=(T,D,V,$)=>Mt(`Assertion failed: ${U(T)}, at: `+[D?U(D):"unknown filename",V,$?U($):"unknown function"]),ne={isAbs:T=>T.charAt(0)==="/",splitPath:T=>{var D=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return D.exec(T).slice(1)},normalizeArray:(T,D)=>{for(var V=0,$=T.length-1;$>=0;$--){var fe=T[$];fe==="."?T.splice($,1):fe===".."?(T.splice($,1),V++):V&&(T.splice($,1),V--)}if(D)for(;V;V--)T.unshift("..");return T},normalize:T=>{var D=ne.isAbs(T),V=T.slice(-1)==="/";return T=ne.normalizeArray(T.split("/").filter($=>!!$),!D).join("/"),!T&&!D&&(T="."),T&&V&&(T+="/"),(D?"/":"")+T},dirname:T=>{var D=ne.splitPath(T),V=D[0],$=D[1];return!V&&!$?".":($&&($=$.slice(0,-1)),V+$)},basename:T=>T&&T.match(/([^\/]+|\/)\/*$/)[1],join:(...T)=>ne.normalize(T.join("/")),join2:(T,D)=>ne.normalize(T+"/"+D)},X=()=>T=>crypto.getRandomValues(T),ie=T=>{(ie=X())(T)},le={resolve:(...T)=>{for(var D="",V=!1,$=T.length-1;$>=-1&&!V;$--){var fe=$>=0?T[$]:d.cwd();if(typeof fe!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!fe)return"";D=fe+"/"+D,V=ne.isAbs(fe)}return D=ne.normalizeArray(D.split("/").filter(Ee=>!!Ee),!V).join("/"),(V?"/":"")+D||"."},relative:(T,D)=>{T=le.resolve(T).slice(1),D=le.resolve(D).slice(1);function V(z){for(var Y=0;Y=0&&z[se]==="";se--);return Y>se?[]:z.slice(Y,se-Y+1)}for(var $=V(T.split("/")),fe=V(D.split("/")),Ee=Math.min($.length,fe.length),Ue=Ee,b=0;b{for(var $=D+V,fe=D;T[fe]&&!(fe>=$);)++fe;return N.decode(T.buffer?T.subarray(D,fe):new Uint8Array(T.slice(D,fe)))},tt=[],Oe=T=>{for(var D=0,V=0;V=55296&&$<=57343?(D+=4,++V):D+=3}return D},je=(T,D,V,$)=>{if(!($>0))return 0;for(var fe=V,Ee=V+$-1,Ue=0;Ue=55296&&b<=57343){var R=T.charCodeAt(++Ue);b=65536+((b&1023)<<10)|R&1023}if(b<=127){if(V>=Ee)break;D[V++]=b}else if(b<=2047){if(V+1>=Ee)break;D[V++]=192|b>>6,D[V++]=128|b&63}else if(b<=65535){if(V+2>=Ee)break;D[V++]=224|b>>12,D[V++]=128|b>>6&63,D[V++]=128|b&63}else{if(V+3>=Ee)break;D[V++]=240|b>>18,D[V++]=128|b>>12&63,D[V++]=128|b>>6&63,D[V++]=128|b&63}}return D[V]=0,V-fe},Ct=(T,D,V)=>{var $=V>0?V:Oe(T)+1,fe=new Array($),Ee=je(T,fe,0,fe.length);return D&&(fe.length=Ee),fe},nn=()=>{if(!tt.length){var T=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(T=window.prompt("Input: "),T!==null&&(T+=` `)),!T)return null;tt=Ct(T,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(T,D){ht.ttys[T]={input:[],output:[],ops:D},d.registerDevice(T,ht.stream_ops)},stream_ops:{open(T){var D=ht.ttys[T.node.rdev];if(!D)throw new d.ErrnoError(43);T.tty=D,T.seekable=!1},close(T){T.tty.ops.fsync(T.tty)},fsync(T){T.tty.ops.fsync(T.tty)},read(T,D,V,$,fe){if(!T.tty||!T.tty.ops.get_char)throw new d.ErrnoError(60);for(var Ee=0,Ue=0;Ue<$;Ue++){var b;try{b=T.tty.ops.get_char(T.tty)}catch{throw new d.ErrnoError(29)}if(b===void 0&&Ee===0)throw new d.ErrnoError(6);if(b==null)break;Ee++,D[V+Ue]=b}return Ee&&(T.node.atime=Date.now()),Ee},write(T,D,V,$,fe){if(!T.tty||!T.tty.ops.put_char)throw new d.ErrnoError(60);try{for(var Ee=0;Ee<$;Ee++)T.tty.ops.put_char(T.tty,D[V+Ee])}catch{throw new d.ErrnoError(29)}return $&&(T.node.mtime=T.node.ctime=Date.now()),Ee}},default_tty_ops:{get_char(T){return nn()},put_char(T,D){D===null||D===10?(v(be(T.output)),T.output=[]):D!=0&&T.output.push(D)},fsync(T){T.output?.length>0&&(v(be(T.output)),T.output=[])},ioctl_tcgets(T){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(T,D,V){return 0},ioctl_tiocgwinsz(T){return[24,80]}},default_tty1_ops:{put_char(T,D){D===null||D===10?(M(be(T.output)),T.output=[]):D!=0&&T.output.push(D)},fsync(T){T.output?.length>0&&(M(be(T.output)),T.output=[])}}},De=(T,D)=>H.fill(0,T,T+D),bt=(T,D)=>Math.ceil(T/D)*D,at=T=>{T=bt(T,65536);var D=hf(65536,T);return D&&De(D,T),D},we={ops_table:null,mount(T){return we.createNode(null,"/",16895,0)},createNode(T,D,V,$){if(d.isBlkdev(V)||d.isFIFO(V))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var fe=d.createNode(T,D,V,$);return d.isDir(fe.mode)?(fe.node_ops=we.ops_table.dir.node,fe.stream_ops=we.ops_table.dir.stream,fe.contents={}):d.isFile(fe.mode)?(fe.node_ops=we.ops_table.file.node,fe.stream_ops=we.ops_table.file.stream,fe.usedBytes=0,fe.contents=null):d.isLink(fe.mode)?(fe.node_ops=we.ops_table.link.node,fe.stream_ops=we.ops_table.link.stream):d.isChrdev(fe.mode)&&(fe.node_ops=we.ops_table.chrdev.node,fe.stream_ops=we.ops_table.chrdev.stream),fe.atime=fe.mtime=fe.ctime=Date.now(),T&&(T.contents[D]=fe,T.atime=T.mtime=T.ctime=fe.atime),fe},getFileDataAsTypedArray(T){return T.contents?T.contents.subarray?T.contents.subarray(0,T.usedBytes):new Uint8Array(T.contents):new Uint8Array(0)},expandFileStorage(T,D){var V=T.contents?T.contents.length:0;if(!(V>=D)){var $=1024*1024;D=Math.max(D,V*(V<$?2:1.125)>>>0),V!=0&&(D=Math.max(D,256));var fe=T.contents;T.contents=new Uint8Array(D),T.usedBytes>0&&T.contents.set(fe.subarray(0,T.usedBytes),0)}},resizeFileStorage(T,D){if(T.usedBytes!=D)if(D==0)T.contents=null,T.usedBytes=0;else{var V=T.contents;T.contents=new Uint8Array(D),V&&T.contents.set(V.subarray(0,Math.min(D,T.usedBytes))),T.usedBytes=D}},node_ops:{getattr(T){var D={};return D.dev=d.isChrdev(T.mode)?T.id:1,D.ino=T.id,D.mode=T.mode,D.nlink=1,D.uid=0,D.gid=0,D.rdev=T.rdev,d.isDir(T.mode)?D.size=4096:d.isFile(T.mode)?D.size=T.usedBytes:d.isLink(T.mode)?D.size=T.link.length:D.size=0,D.atime=new Date(T.atime),D.mtime=new Date(T.mtime),D.ctime=new Date(T.ctime),D.blksize=4096,D.blocks=Math.ceil(D.size/D.blksize),D},setattr(T,D){for(let V of["mode","atime","mtime","ctime"])D[V]!=null&&(T[V]=D[V]);D.size!==void 0&&we.resizeFileStorage(T,D.size)},lookup(T,D){throw we.doesNotExistError},mknod(T,D,V,$){return we.createNode(T,D,V,$)},rename(T,D,V){var $;try{$=d.lookupNode(D,V)}catch{}if($){if(d.isDir(T.mode))for(var fe in $.contents)throw new d.ErrnoError(55);d.hashRemoveNode($)}delete T.parent.contents[T.name],D.contents[V]=T,T.name=V,D.ctime=D.mtime=T.parent.ctime=T.parent.mtime=Date.now()},unlink(T,D){delete T.contents[D],T.ctime=T.mtime=Date.now()},rmdir(T,D){var V=d.lookupNode(T,D);for(var $ in V.contents)throw new d.ErrnoError(55);delete T.contents[D],T.ctime=T.mtime=Date.now()},readdir(T){return[".","..",...Object.keys(T.contents)]},symlink(T,D,V){var $=we.createNode(T,D,41471,0);return $.link=V,$},readlink(T){if(!d.isLink(T.mode))throw new d.ErrnoError(28);return T.link}},stream_ops:{read(T,D,V,$,fe){var Ee=T.node.contents;if(fe>=T.node.usedBytes)return 0;var Ue=Math.min(T.node.usedBytes-fe,$);if(Ue>8&&Ee.subarray)D.set(Ee.subarray(fe,fe+Ue),V);else for(var b=0;b0||V+D{var D=await x(T);return new Uint8Array(D)};Rt.isAsync=!0;var ft=(...T)=>d.createDataFile(...T),Yt=[],$t=(T,D,V,$)=>{typeof Browser<"u"&&Browser.init();var fe=!1;return Yt.forEach(Ee=>{fe||Ee.canHandle(D)&&(Ee.handle(T,D,V,$),fe=!0)}),fe},Wn=(T,D,V,$,fe,Ee,Ue,b,R,z)=>{var Y=D?le.resolve(ne.join2(T,D)):T,se=`cp ${Y}`;function ye(xe){function Ce(ot){z?.(),b||ft(T,D,ot,$,fe,R),Ee?.(),zt(se)}$t(xe,Y,Ce,()=>{Ue?.(),zt(se)})||Ce(xe)}jt(se),typeof V=="string"?Rt(V).then(ye,Ue):ye(V)},Un=T=>{var D={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},V=D[T];if(typeof V>"u")throw new Error(`Unknown file open mode: ${T}`);return V},Ti=(T,D)=>{var V=0;return T&&(V|=365),D&&(V|=146),V},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(T){this.errno=T}},FSStream:class{shared={};get object(){return this.node}set object(T){this.node=T}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(T){this.shared.flags=T}get position(){return this.shared.position}set position(T){this.shared.position=T}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(T,D,V,$){T||(T=this),this.parent=T,this.mount=T.mount,this.id=d.nextInode++,this.name=D,this.mode=V,this.rdev=$,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(T){T?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(T){T?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(T,D={}){if(!T)throw new d.ErrnoError(44);D.follow_mount??=!0,ne.isAbs(T)||(T=d.cwd()+"/"+T);e:for(var V=0;V<40;V++){for(var $=T.split("/").filter(z=>!!z),fe=d.root,Ee="/",Ue=0;Ue<$.length;Ue++){var b=Ue===$.length-1;if(b&&D.parent)break;if($[Ue]!=="."){if($[Ue]===".."){if(Ee=ne.dirname(Ee),d.isRoot(fe)){T=Ee+"/"+$.slice(Ue+1).join("/");continue e}else fe=fe.parent;continue}Ee=ne.join2(Ee,$[Ue]);try{fe=d.lookupNode(fe,$[Ue])}catch(z){if(z?.errno===44&&b&&D.noent_okay)return{path:Ee};throw z}if(d.isMountpoint(fe)&&(!b||D.follow_mount)&&(fe=fe.mounted.root),d.isLink(fe.mode)&&(!b||D.follow)){if(!fe.node_ops.readlink)throw new d.ErrnoError(52);var R=fe.node_ops.readlink(fe);ne.isAbs(R)||(R=ne.dirname(Ee)+"/"+R),T=R+"/"+$.slice(Ue+1).join("/");continue e}}}return{path:Ee,node:fe}}throw new d.ErrnoError(32)},getPath(T){for(var D;;){if(d.isRoot(T)){var V=T.mount.mountpoint;return D?V[V.length-1]!=="/"?`${V}/${D}`:V+D:V}D=D?`${T.name}/${D}`:T.name,T=T.parent}},hashName(T,D){for(var V=0,$=0;$>>0)%d.nameTable.length},hashAddNode(T){var D=d.hashName(T.parent.id,T.name);T.name_next=d.nameTable[D],d.nameTable[D]=T},hashRemoveNode(T){var D=d.hashName(T.parent.id,T.name);if(d.nameTable[D]===T)d.nameTable[D]=T.name_next;else for(var V=d.nameTable[D];V;){if(V.name_next===T){V.name_next=T.name_next;break}V=V.name_next}},lookupNode(T,D){var V=d.mayLookup(T);if(V)throw new d.ErrnoError(V);for(var $=d.hashName(T.id,D),fe=d.nameTable[$];fe;fe=fe.name_next){var Ee=fe.name;if(fe.parent.id===T.id&&Ee===D)return fe}return d.lookup(T,D)},createNode(T,D,V,$){var fe=new d.FSNode(T,D,V,$);return d.hashAddNode(fe),fe},destroyNode(T){d.hashRemoveNode(T)},isRoot(T){return T===T.parent},isMountpoint(T){return!!T.mounted},isFile(T){return(T&61440)===32768},isDir(T){return(T&61440)===16384},isLink(T){return(T&61440)===40960},isChrdev(T){return(T&61440)===8192},isBlkdev(T){return(T&61440)===24576},isFIFO(T){return(T&61440)===4096},isSocket(T){return(T&49152)===49152},flagsToPermissionString(T){var D=["r","w","rw"][T&3];return T&512&&(D+="w"),D},nodePermissions(T,D){return d.ignorePermissions?0:D.includes("r")&&!(T.mode&292)||D.includes("w")&&!(T.mode&146)||D.includes("x")&&!(T.mode&73)?2:0},mayLookup(T){if(!d.isDir(T.mode))return 54;var D=d.nodePermissions(T,"x");return D||(T.node_ops.lookup?0:2)},mayCreate(T,D){if(!d.isDir(T.mode))return 54;try{var V=d.lookupNode(T,D);return 20}catch{}return d.nodePermissions(T,"wx")},mayDelete(T,D,V){var $;try{$=d.lookupNode(T,D)}catch(Ee){return Ee.errno}var fe=d.nodePermissions(T,"wx");if(fe)return fe;if(V){if(!d.isDir($.mode))return 54;if(d.isRoot($)||d.getPath($)===d.cwd())return 10}else if(d.isDir($.mode))return 31;return 0},mayOpen(T,D){return T?d.isLink(T.mode)?32:d.isDir(T.mode)&&(d.flagsToPermissionString(D)!=="r"||D&576)?31:d.nodePermissions(T,d.flagsToPermissionString(D)):44},checkOpExists(T,D){if(!T)throw new d.ErrnoError(D);return T},MAX_OPEN_FDS:4096,nextfd(){for(var T=0;T<=d.MAX_OPEN_FDS;T++)if(!d.streams[T])return T;throw new d.ErrnoError(33)},getStreamChecked(T){var D=d.getStream(T);if(!D)throw new d.ErrnoError(8);return D},getStream:T=>d.streams[T],createStream(T,D=-1){return T=Object.assign(new d.FSStream,T),D==-1&&(D=d.nextfd()),T.fd=D,d.streams[D]=T,T},closeStream(T){d.streams[T]=null},dupStream(T,D=-1){var V=d.createStream(T,D);return V.stream_ops?.dup?.(V),V},doSetAttr(T,D,V){var $=T?.stream_ops.setattr,fe=$?T:D;$??=D.node_ops.setattr,d.checkOpExists($,63),$(fe,V)},chrdev_stream_ops:{open(T){var D=d.getDevice(T.node.rdev);T.stream_ops=D.stream_ops,T.stream_ops.open?.(T)},llseek(){throw new d.ErrnoError(70)}},major:T=>T>>8,minor:T=>T&255,makedev:(T,D)=>T<<8|D,registerDevice(T,D){d.devices[T]={stream_ops:D}},getDevice:T=>d.devices[T],getMounts(T){for(var D=[],V=[T];V.length;){var $=V.pop();D.push($),V.push(...$.mounts)}return D},syncfs(T,D){typeof T=="function"&&(D=T,T=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var V=d.getMounts(d.root.mount),$=0;function fe(Ue){return d.syncFSRequests--,D(Ue)}function Ee(Ue){if(Ue)return Ee.errored?void 0:(Ee.errored=!0,fe(Ue));++$>=V.length&&fe(null)}V.forEach(Ue=>{if(!Ue.type.syncfs)return Ee(null);Ue.type.syncfs(Ue,T,Ee)})},mount(T,D,V){var $=V==="/",fe=!V,Ee;if($&&d.root)throw new d.ErrnoError(10);if(!$&&!fe){var Ue=d.lookupPath(V,{follow_mount:!1});if(V=Ue.path,Ee=Ue.node,d.isMountpoint(Ee))throw new d.ErrnoError(10);if(!d.isDir(Ee.mode))throw new d.ErrnoError(54)}var b={type:T,opts:D,mountpoint:V,mounts:[]},R=T.mount(b);return R.mount=b,b.root=R,$?d.root=R:Ee&&(Ee.mounted=b,Ee.mount&&Ee.mount.mounts.push(b)),R},unmount(T){var D=d.lookupPath(T,{follow_mount:!1});if(!d.isMountpoint(D.node))throw new d.ErrnoError(28);var V=D.node,$=V.mounted,fe=d.getMounts($);Object.keys(d.nameTable).forEach(Ue=>{for(var b=d.nameTable[Ue];b;){var R=b.name_next;fe.includes(b.mount)&&d.destroyNode(b),b=R}}),V.mounted=null;var Ee=V.mount.mounts.indexOf($);V.mount.mounts.splice(Ee,1)},lookup(T,D){return T.node_ops.lookup(T,D)},mknod(T,D,V){var $=d.lookupPath(T,{parent:!0}),fe=$.node,Ee=ne.basename(T);if(!Ee)throw new d.ErrnoError(28);if(Ee==="."||Ee==="..")throw new d.ErrnoError(20);var Ue=d.mayCreate(fe,Ee);if(Ue)throw new d.ErrnoError(Ue);if(!fe.node_ops.mknod)throw new d.ErrnoError(63);return fe.node_ops.mknod(fe,Ee,D,V)},statfs(T){return d.statfsNode(d.lookupPath(T,{follow:!0}).node)},statfsStream(T){return d.statfsNode(T.node)},statfsNode(T){var D={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return T.node_ops.statfs&&Object.assign(D,T.node_ops.statfs(T.mount.opts.root)),D},create(T,D=438){return D&=4095,D|=32768,d.mknod(T,D,0)},mkdir(T,D=511){return D&=1023,D|=16384,d.mknod(T,D,0)},mkdirTree(T,D){var V=T.split("/"),$="";for(var fe of V)if(fe){($||ne.isAbs(T))&&($+="/"),$+=fe;try{d.mkdir($,D)}catch(Ee){if(Ee.errno!=20)throw Ee}}},mkdev(T,D,V){return typeof V>"u"&&(V=D,D=438),D|=8192,d.mknod(T,D,V)},symlink(T,D){if(!le.resolve(T))throw new d.ErrnoError(44);var V=d.lookupPath(D,{parent:!0}),$=V.node;if(!$)throw new d.ErrnoError(44);var fe=ne.basename(D),Ee=d.mayCreate($,fe);if(Ee)throw new d.ErrnoError(Ee);if(!$.node_ops.symlink)throw new d.ErrnoError(63);return $.node_ops.symlink($,fe,T)},rename(T,D){var V=ne.dirname(T),$=ne.dirname(D),fe=ne.basename(T),Ee=ne.basename(D),Ue,b,R;if(Ue=d.lookupPath(T,{parent:!0}),b=Ue.node,Ue=d.lookupPath(D,{parent:!0}),R=Ue.node,!b||!R)throw new d.ErrnoError(44);if(b.mount!==R.mount)throw new d.ErrnoError(75);var z=d.lookupNode(b,fe),Y=le.relative(T,$);if(Y.charAt(0)!==".")throw new d.ErrnoError(28);if(Y=le.relative(D,V),Y.charAt(0)!==".")throw new d.ErrnoError(55);var se;try{se=d.lookupNode(R,Ee)}catch{}if(z!==se){var ye=d.isDir(z.mode),xe=d.mayDelete(b,fe,ye);if(xe)throw new d.ErrnoError(xe);if(xe=se?d.mayDelete(R,Ee,ye):d.mayCreate(R,Ee),xe)throw new d.ErrnoError(xe);if(!b.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(z)||se&&d.isMountpoint(se))throw new d.ErrnoError(10);if(R!==b&&(xe=d.nodePermissions(b,"w"),xe))throw new d.ErrnoError(xe);d.hashRemoveNode(z);try{b.node_ops.rename(z,R,Ee),z.parent=R}catch(Ce){throw Ce}finally{d.hashAddNode(z)}}},rmdir(T){var D=d.lookupPath(T,{parent:!0}),V=D.node,$=ne.basename(T),fe=d.lookupNode(V,$),Ee=d.mayDelete(V,$,!0);if(Ee)throw new d.ErrnoError(Ee);if(!V.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(fe))throw new d.ErrnoError(10);V.node_ops.rmdir(V,$),d.destroyNode(fe)},readdir(T){var D=d.lookupPath(T,{follow:!0}),V=D.node,$=d.checkOpExists(V.node_ops.readdir,54);return $(V)},unlink(T){var D=d.lookupPath(T,{parent:!0}),V=D.node;if(!V)throw new d.ErrnoError(44);var $=ne.basename(T),fe=d.lookupNode(V,$),Ee=d.mayDelete(V,$,!1);if(Ee)throw new d.ErrnoError(Ee);if(!V.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(fe))throw new d.ErrnoError(10);V.node_ops.unlink(V,$),d.destroyNode(fe)},readlink(T){var D=d.lookupPath(T),V=D.node;if(!V)throw new d.ErrnoError(44);if(!V.node_ops.readlink)throw new d.ErrnoError(28);return V.node_ops.readlink(V)},stat(T,D){var V=d.lookupPath(T,{follow:!D}),$=V.node,fe=d.checkOpExists($.node_ops.getattr,63);return fe($)},fstat(T){var D=d.getStreamChecked(T),V=D.node,$=D.stream_ops.getattr,fe=$?D:V;return $??=V.node_ops.getattr,d.checkOpExists($,63),$(fe)},lstat(T){return d.stat(T,!0)},doChmod(T,D,V,$){d.doSetAttr(T,D,{mode:V&4095|D.mode&-4096,ctime:Date.now(),dontFollow:$})},chmod(T,D,V){var $;if(typeof T=="string"){var fe=d.lookupPath(T,{follow:!V});$=fe.node}else $=T;d.doChmod(null,$,D,V)},lchmod(T,D){d.chmod(T,D,!0)},fchmod(T,D){var V=d.getStreamChecked(T);d.doChmod(V,V.node,D,!1)},doChown(T,D,V){d.doSetAttr(T,D,{timestamp:Date.now(),dontFollow:V})},chown(T,D,V,$){var fe;if(typeof T=="string"){var Ee=d.lookupPath(T,{follow:!$});fe=Ee.node}else fe=T;d.doChown(null,fe,$)},lchown(T,D,V){d.chown(T,D,V,!0)},fchown(T,D,V){var $=d.getStreamChecked(T);d.doChown($,$.node,!1)},doTruncate(T,D,V){if(d.isDir(D.mode))throw new d.ErrnoError(31);if(!d.isFile(D.mode))throw new d.ErrnoError(28);var $=d.nodePermissions(D,"w");if($)throw new d.ErrnoError($);d.doSetAttr(T,D,{size:V,timestamp:Date.now()})},truncate(T,D){if(D<0)throw new d.ErrnoError(28);var V;if(typeof T=="string"){var $=d.lookupPath(T,{follow:!0});V=$.node}else V=T;d.doTruncate(null,V,D)},ftruncate(T,D){var V=d.getStreamChecked(T);if(D<0||(V.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(V,V.node,D)},utime(T,D,V){var $=d.lookupPath(T,{follow:!0}),fe=$.node,Ee=d.checkOpExists(fe.node_ops.setattr,63);Ee(fe,{atime:D,mtime:V})},open(T,D,V=438){if(T==="")throw new d.ErrnoError(44);D=typeof D=="string"?Un(D):D,D&64?V=V&4095|32768:V=0;var $,fe;if(typeof T=="object")$=T;else{fe=T.endsWith("/");var Ee=d.lookupPath(T,{follow:!(D&131072),noent_okay:!0});$=Ee.node,T=Ee.path}var Ue=!1;if(D&64)if($){if(D&128)throw new d.ErrnoError(20)}else{if(fe)throw new d.ErrnoError(31);$=d.mknod(T,V|511,0),Ue=!0}if(!$)throw new d.ErrnoError(44);if(d.isChrdev($.mode)&&(D&=-513),D&65536&&!d.isDir($.mode))throw new d.ErrnoError(54);if(!Ue){var b=d.mayOpen($,D);if(b)throw new d.ErrnoError(b)}D&512&&!Ue&&d.truncate($,0),D&=-131713;var R=d.createStream({node:$,path:d.getPath($),flags:D,seekable:!0,position:0,stream_ops:$.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),Ue&&d.chmod($,V&511),t.logReadFiles&&!(D&1)&&(T in d.readFiles||(d.readFiles[T]=1)),R},close(T){if(d.isClosed(T))throw new d.ErrnoError(8);T.getdents&&(T.getdents=null);try{T.stream_ops.close&&T.stream_ops.close(T)}catch(D){throw D}finally{d.closeStream(T.fd)}T.fd=null},isClosed(T){return T.fd===null},llseek(T,D,V){if(d.isClosed(T))throw new d.ErrnoError(8);if(!T.seekable||!T.stream_ops.llseek)throw new d.ErrnoError(70);if(V!=0&&V!=1&&V!=2)throw new d.ErrnoError(28);return T.position=T.stream_ops.llseek(T,D,V),T.ungotten=[],T.position},read(T,D,V,$,fe){if($<0||fe<0)throw new d.ErrnoError(28);if(d.isClosed(T))throw new d.ErrnoError(8);if((T.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(T.node.mode))throw new d.ErrnoError(31);if(!T.stream_ops.read)throw new d.ErrnoError(28);var Ee=typeof fe<"u";if(!Ee)fe=T.position;else if(!T.seekable)throw new d.ErrnoError(70);var Ue=T.stream_ops.read(T,D,V,$,fe);return Ee||(T.position+=Ue),Ue},write(T,D,V,$,fe,Ee){if($<0||fe<0)throw new d.ErrnoError(28);if(d.isClosed(T))throw new d.ErrnoError(8);if((T.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(T.node.mode))throw new d.ErrnoError(31);if(!T.stream_ops.write)throw new d.ErrnoError(28);T.seekable&&T.flags&1024&&d.llseek(T,0,2);var Ue=typeof fe<"u";if(!Ue)fe=T.position;else if(!T.seekable)throw new d.ErrnoError(70);var b=T.stream_ops.write(T,D,V,$,fe,Ee);return Ue||(T.position+=b),b},mmap(T,D,V,$,fe){if(($&2)!==0&&(fe&2)===0&&(T.flags&2097155)!==2)throw new d.ErrnoError(2);if((T.flags&2097155)===1)throw new d.ErrnoError(2);if(!T.stream_ops.mmap)throw new d.ErrnoError(43);if(!D)throw new d.ErrnoError(28);return T.stream_ops.mmap(T,D,V,$,fe)},msync(T,D,V,$,fe){return T.stream_ops.msync?T.stream_ops.msync(T,D,V,$,fe):0},ioctl(T,D,V){if(!T.stream_ops.ioctl)throw new d.ErrnoError(59);return T.stream_ops.ioctl(T,D,V)},readFile(T,D={}){if(D.flags=D.flags||0,D.encoding=D.encoding||"binary",D.encoding!=="utf8"&&D.encoding!=="binary")throw new Error(`Invalid encoding type "${D.encoding}"`);var V,$=d.open(T,D.flags),fe=d.stat(T),Ee=fe.size,Ue=new Uint8Array(Ee);return d.read($,Ue,0,Ee,0),D.encoding==="utf8"?V=be(Ue):D.encoding==="binary"&&(V=Ue),d.close($),V},writeFile(T,D,V={}){V.flags=V.flags||577;var $=d.open(T,V.flags,V.mode);if(typeof D=="string"){var fe=new Uint8Array(Oe(D)+1),Ee=je(D,fe,0,fe.length);d.write($,fe,0,Ee,void 0,V.canOwn)}else if(ArrayBuffer.isView(D))d.write($,D,0,D.byteLength,void 0,V.canOwn);else throw new Error("Unsupported data type");d.close($)},cwd:()=>d.currentPath,chdir(T){var D=d.lookupPath(T,{follow:!0});if(D.node===null)throw new d.ErrnoError(44);if(!d.isDir(D.node.mode))throw new d.ErrnoError(54);var V=d.nodePermissions(D.node,"x");if(V)throw new d.ErrnoError(V);d.currentPath=D.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:($,fe,Ee,Ue,b)=>Ue,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var T=new Uint8Array(1024),D=0,V=()=>(D===0&&(ie(T),D=T.byteLength),T[--D]);d.createDevice("/dev","random",V),d.createDevice("/dev","urandom",V),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var T=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var D=d.createNode(T,"fd",16895,73);return D.stream_ops={llseek:we.stream_ops.llseek},D.node_ops={lookup(V,$){var fe=+$,Ee=d.getStreamChecked(fe),Ue={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Ee.path},id:fe+1};return Ue.parent=Ue,Ue},readdir(){return Array.from(d.streams.entries()).filter(([V,$])=>$).map(([V,$])=>V.toString())}},D}},{},"/proc/self/fd")},createStandardStreams(T,D,V){T?d.createDevice("/dev","stdin",T):d.symlink("/dev/tty","/dev/stdin"),D?d.createDevice("/dev","stdout",null,D):d.symlink("/dev/tty","/dev/stdout"),V?d.createDevice("/dev","stderr",null,V):d.symlink("/dev/tty1","/dev/stderr");var $=d.open("/dev/stdin",0),fe=d.open("/dev/stdout",1),Ee=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(T,D,V){d.initialized=!0,T??=t.stdin,D??=t.stdout,V??=t.stderr,d.createStandardStreams(T,D,V)},quit(){d.initialized=!1;for(var T of d.streams)T&&d.close(T)},findObject(T,D){var V=d.analyzePath(T,D);return V.exists?V.object:null},analyzePath(T,D){try{var V=d.lookupPath(T,{follow:!D});T=V.path}catch{}var $={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var V=d.lookupPath(T,{parent:!0});$.parentExists=!0,$.parentPath=V.path,$.parentObject=V.node,$.name=ne.basename(T),V=d.lookupPath(T,{follow:!D}),$.exists=!0,$.path=V.path,$.object=V.node,$.name=V.node.name,$.isRoot=V.path==="/"}catch(fe){$.error=fe.errno}return $},createPath(T,D,V,$){T=typeof T=="string"?T:d.getPath(T);for(var fe=D.split("/").reverse();fe.length;){var Ee=fe.pop();if(Ee){var Ue=ne.join2(T,Ee);try{d.mkdir(Ue)}catch(b){if(b.errno!=20)throw b}T=Ue}}return Ue},createFile(T,D,V,$,fe){var Ee=ne.join2(typeof T=="string"?T:d.getPath(T),D),Ue=Ti($,fe);return d.create(Ee,Ue)},createDataFile(T,D,V,$,fe,Ee){var Ue=D;T&&(T=typeof T=="string"?T:d.getPath(T),Ue=D?ne.join2(T,D):T);var b=Ti($,fe),R=d.create(Ue,b);if(V){if(typeof V=="string"){for(var z=new Array(V.length),Y=0,se=V.length;Ythis.length-1||xe<0)){var Ce=xe%this.chunkSize,ot=xe/this.chunkSize|0;return this.getter(ot)[Ce]}}setDataGetter(xe){this.getter=xe}cacheLength(){var xe=new XMLHttpRequest;if(xe.open("HEAD",V,!1),xe.send(null),!(xe.status>=200&&xe.status<300||xe.status===304))throw new Error("Couldn't load "+V+". Status: "+xe.status);var Ce=Number(xe.getResponseHeader("Content-length")),ot,xt=(ot=xe.getResponseHeader("Accept-Ranges"))&&ot==="bytes",tn=(ot=xe.getResponseHeader("Content-Encoding"))&&ot==="gzip",vn=1024*1024;xt||(vn=Ce);var mn=(dn,Ai)=>{if(dn>Ai)throw new Error("invalid range ("+dn+", "+Ai+") or no bytes requested!");if(Ai>Ce-1)throw new Error("only "+Ce+" bytes available! programmer error!");var Rn=new XMLHttpRequest;if(Rn.open("GET",V,!1),Ce!==vn&&Rn.setRequestHeader("Range","bytes="+dn+"-"+Ai),Rn.responseType="arraybuffer",Rn.overrideMimeType&&Rn.overrideMimeType("text/plain; charset=x-user-defined"),Rn.send(null),!(Rn.status>=200&&Rn.status<300||Rn.status===304))throw new Error("Couldn't load "+V+". Status: "+Rn.status);return Rn.response!==void 0?new Uint8Array(Rn.response||[]):Ct(Rn.responseText||"",!0)},on=this;on.setDataGetter(dn=>{var Ai=dn*vn,Rn=(dn+1)*vn-1;if(Rn=Math.min(Rn,Ce-1),typeof on.chunks[dn]>"u"&&(on.chunks[dn]=mn(Ai,Rn)),typeof on.chunks[dn]>"u")throw new Error("doXHR failed!");return on.chunks[dn]}),(tn||!Ce)&&(vn=Ce=1,Ce=this.getter(0).length,vn=Ce,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ce,this._chunkSize=vn,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Ue=new Ee,b={isDevice:!1,contents:Ue}}else var b={isDevice:!1,url:V};var R=d.createFile(T,D,b,$,fe);b.contents?R.contents=b.contents:b.url&&(R.contents=null,R.url=b.url),Object.defineProperties(R,{usedBytes:{get:function(){return this.contents.length}}});var z={},Y=Object.keys(R.stream_ops);Y.forEach(ye=>{var xe=R.stream_ops[ye];z[ye]=(...Ce)=>(d.forceLoadFile(R),xe(...Ce))});function se(ye,xe,Ce,ot,xt){var tn=ye.node.contents;if(xt>=tn.length)return 0;var vn=Math.min(tn.length-xt,ot);if(tn.slice)for(var mn=0;mn(d.forceLoadFile(R),se(ye,xe,Ce,ot,xt)),z.mmap=(ye,xe,Ce,ot,xt)=>{d.forceLoadFile(R);var tn=at(xe);if(!tn)throw new d.ErrnoError(48);return se(ye,Q,tn,xe,Ce),{ptr:tn,allocated:!0}},R.stream_ops=z,R}},Ke={DEFAULT_POLLMASK:5,calculateAt(T,D,V){if(ne.isAbs(D))return D;var $;if(T===-100)$=d.cwd();else{var fe=Ke.getStreamFromFD(T);$=fe.path}if(D.length==0){if(!V)throw new d.ErrnoError(44);return $}return $+"/"+D},writeStat(T,D){j[T>>2]=D.dev,j[T+4>>2]=D.mode,he[T+8>>2]=D.nlink,j[T+12>>2]=D.uid,j[T+16>>2]=D.gid,j[T+20>>2]=D.rdev,Pe=[D.size>>>0,(_e=D.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+24>>2]=Pe[0],j[T+28>>2]=Pe[1],j[T+32>>2]=4096,j[T+36>>2]=D.blocks;var V=D.atime.getTime(),$=D.mtime.getTime(),fe=D.ctime.getTime();return Pe=[Math.floor(V/1e3)>>>0,(_e=Math.floor(V/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+40>>2]=Pe[0],j[T+44>>2]=Pe[1],he[T+48>>2]=V%1e3*1e3*1e3,Pe=[Math.floor($/1e3)>>>0,(_e=Math.floor($/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+56>>2]=Pe[0],j[T+60>>2]=Pe[1],he[T+64>>2]=$%1e3*1e3*1e3,Pe=[Math.floor(fe/1e3)>>>0,(_e=Math.floor(fe/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+72>>2]=Pe[0],j[T+76>>2]=Pe[1],he[T+80>>2]=fe%1e3*1e3*1e3,Pe=[D.ino>>>0,(_e=D.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[T+88>>2]=Pe[0],j[T+92>>2]=Pe[1],0},writeStatFs(T,D){j[T+4>>2]=D.bsize,j[T+40>>2]=D.bsize,j[T+8>>2]=D.blocks,j[T+12>>2]=D.bfree,j[T+16>>2]=D.bavail,j[T+20>>2]=D.files,j[T+24>>2]=D.ffree,j[T+28>>2]=D.fsid,j[T+44>>2]=D.flags,j[T+36>>2]=D.namelen},doMsync(T,D,V,$,fe){if(!d.isFile(D.node.mode))throw new d.ErrnoError(43);if($&2)return 0;var Ee=H.slice(T,T+V);d.msync(D,Ee,fe,V,$)},getStreamFromFD(T){var D=d.getStreamChecked(T);return D},varargs:void 0,getStr(T){var D=U(T);return D}};function ul(T,D){try{return T=Ke.getStr(T),d.chmod(T,D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function us(T,D,V,$){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),V&-8)return-28;var fe=d.lookupPath(D,{follow:!0}),Ee=fe.node;if(!Ee)return-44;var Ue="";return V&4&&(Ue+="r"),V&2&&(Ue+="w"),V&1&&(Ue+="x"),Ue&&d.nodePermissions(Ee,Ue)?-2:0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function Fr(T,D){try{return d.fchmod(T,D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function Ps(T,D,V){try{return d.fchown(T,D,V),0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var er=()=>{var T=j[+Ke.varargs>>2];return Ke.varargs+=4,T},cs=er;function Pr(T,D,V){Ke.varargs=V;try{var $=Ke.getStreamFromFD(T);switch(D){case 0:{var fe=er();if(fe<0)return-28;for(;d.streams[fe];)fe++;var Ee;return Ee=d.dupStream($,fe),Ee.fd}case 1:case 2:return 0;case 3:return $.flags;case 4:{var fe=er();return $.flags|=fe,0}case 12:{var fe=cs(),Ue=0;return Z[fe+Ue>>1]=2,0}case 13:case 14:return 0}return-28}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function fs(T,D){try{return Ke.writeStat(D,d.fstat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}var hi=(T,D)=>D+2097152>>>0<4194305-!!T?(T>>>0)+D*4294967296:NaN;function yo(T,D,V){var $=hi(D,V);try{return isNaN($)?-61:(d.ftruncate(T,$),0)}catch(fe){if(typeof d>"u"||fe.name!=="ErrnoError")throw fe;return-fe.errno}}var wn=(T,D,V)=>je(T,H,D,V);function Us(T,D){try{if(D===0)return-28;var V=d.cwd(),$=Oe(V)+1;return D<$?-68:(wn(V,T,D),$)}catch(fe){if(typeof d>"u"||fe.name!=="ErrnoError")throw fe;return-fe.errno}}function Xa(T,D){try{return T=Ke.getStr(T),Ke.writeStat(D,d.lstat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function $r(T,D,V){try{return D=Ke.getStr(D),D=Ke.calculateAt(T,D),d.mkdir(D,V,0),0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}function Jr(T,D,V,$){try{D=Ke.getStr(D);var fe=$&256,Ee=$&4096;return $=$&-6401,D=Ke.calculateAt(T,D,Ee),Ke.writeStat(V,fe?d.lstat(D):d.stat(D))}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return-Ue.errno}}function ds(T,D,V,$){Ke.varargs=$;try{D=Ke.getStr(D),D=Ke.calculateAt(T,D);var fe=$?er():0;return d.open(D,V,fe).fd}catch(Ee){if(typeof d>"u"||Ee.name!=="ErrnoError")throw Ee;return-Ee.errno}}function bo(T,D,V,$){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),$<=0)return-28;var fe=d.readlink(D),Ee=Math.min($,Oe(fe)),Ue=Q[V+Ee];return wn(fe,V,$+1),Q[V+Ee]=Ue,Ee}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return-b.errno}}function hs(T){try{return T=Ke.getStr(T),d.rmdir(T),0}catch(D){if(typeof d>"u"||D.name!=="ErrnoError")throw D;return-D.errno}}function ps(T,D){try{return T=Ke.getStr(T),Ke.writeStat(D,d.stat(T))}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return-V.errno}}function So(T,D,V){try{if(D=Ke.getStr(D),D=Ke.calculateAt(T,D),!V)d.unlink(D);else if(V===512)d.rmdir(D);else return-28;return 0}catch($){if(typeof d>"u"||$.name!=="ErrnoError")throw $;return-$.errno}}var ae=T=>he[T>>2]+j[T+4>>2]*4294967296;function Fe(T,D,V,$){try{D=Ke.getStr(D),D=Ke.calculateAt(T,D,!0);var fe=Date.now(),Ee,Ue;if(!V)Ee=fe,Ue=fe;else{var b=ae(V),R=j[V+8>>2];R==1073741823?Ee=fe:R==1073741822?Ee=null:Ee=b*1e3+R/1e6,V+=16,b=ae(V),R=j[V+8>>2],R==1073741823?Ue=fe:R==1073741822?Ue=null:Ue=b*1e3+R/1e6}return(Ue??Ee)!==null&&d.utime(D,Ee,Ue),0}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=T=>T%4===0&&(T%100!==0||T%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=T=>{var D=It(T.getFullYear()),V=D?Bt:wt,$=V[T.getMonth()]+T.getDate()-1;return $};function Kt(T,D,V){var $=hi(T,D),fe=new Date($*1e3);j[V>>2]=fe.getSeconds(),j[V+4>>2]=fe.getMinutes(),j[V+8>>2]=fe.getHours(),j[V+12>>2]=fe.getDate(),j[V+16>>2]=fe.getMonth(),j[V+20>>2]=fe.getFullYear()-1900,j[V+24>>2]=fe.getDay();var Ee=Nt(fe)|0;j[V+28>>2]=Ee,j[V+36>>2]=-(fe.getTimezoneOffset()*60);var Ue=new Date(fe.getFullYear(),0,1),b=new Date(fe.getFullYear(),6,1).getTimezoneOffset(),R=Ue.getTimezoneOffset(),z=(b!=R&&fe.getTimezoneOffset()==Math.min(R,b))|0;j[V+32>>2]=z}function yn(T,D,V,$,fe,Ee,Ue,b){var R=hi(fe,Ee);try{var z=Ke.getStreamFromFD($),Y=d.mmap(z,T,R,D,V),se=Y.ptr;return j[Ue>>2]=Y.allocated,he[b>>2]=se,0}catch(ye){if(typeof d>"u"||ye.name!=="ErrnoError")throw ye;return-ye.errno}}function Sn(T,D,V,$,fe,Ee,Ue){var b=hi(Ee,Ue);try{var R=Ke.getStreamFromFD(fe);V&2&&Ke.doMsync(T,R,D,$,b)}catch(z){if(typeof d>"u"||z.name!=="ErrnoError")throw z;return-z.errno}}var _t={},En=T=>{if(T instanceof dt||T=="unwind")return G;h(1,T)},ri=()=>fn||Be>0,Hn=T=>{G=T,ri()||(t.onExit?.(T),q=!0),h(T,new dt(T))},On=(T,D)=>{G=T,Hn(T)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(T){En(T)}},Oi=T=>{if(!q)try{T(),Pt()}catch(D){En(D)}},xn=()=>performance.now(),ai=(T,D)=>{if(_t[T]&&(clearTimeout(_t[T].id),delete _t[T]),!D)return 0;var V=setTimeout(()=>{delete _t[T],Oi(()=>em(T,xn()))},D);return _t[T]={id:V,timeout_ms:D},0},Vn=(T,D,V,$)=>{var fe=new Date().getFullYear(),Ee=new Date(fe,0,1),Ue=new Date(fe,6,1),b=Ee.getTimezoneOffset(),R=Ue.getTimezoneOffset(),z=Math.max(b,R);he[T>>2]=z*60,j[D>>2]=+(b!=R);var Y=xe=>{var Ce=xe>=0?"-":"+",ot=Math.abs(xe),xt=String(Math.floor(ot/60)).padStart(2,"0"),tn=String(ot%60).padStart(2,"0");return`UTC${Ce}${xt}${tn}`},se=Y(b),ye=Y(R);RDate.now(),Ur=()=>2147483648,zn=T=>{var D=k.buffer,V=(T-D.byteLength+65535)/65536|0;try{return k.grow(V),Ne(),1}catch{}},vi=T=>{var D=H.length;T>>>=0;var V=Ur();if(T>V)return!1;for(var $=1;$<=4;$*=2){var fe=D*(1+.2/$);fe=Math.min(fe,T+100663296);var Ee=Math.min(V,bt(Math.max(T,fe),65536)),Ue=zn(Ee);if(Ue)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var T=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",D={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:T,_:jn()};for(var V in pi)pi[V]===void 0?delete D[V]:D[V]=pi[V];var $=[];for(var V in D)$.push(`${V}=${D[V]}`);si.strings=$}return si.strings},da=(T,D)=>{var V=0,$=0;for(var fe of si()){var Ee=D+V;he[T+$>>2]=Ee,V+=wn(fe,Ee,1/0)+1,$+=4}return 0},Eo=(T,D)=>{var V=si();he[T>>2]=V.length;var $=0;for(var fe of V)$+=Oe(fe)+1;return he[D>>2]=$,0};function Vu(T){try{var D=Ke.getStreamFromFD(T);return d.close(D),0}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return V.errno}}function Gu(T,D){try{var V=0,$=0,fe=0,Ee=Ke.getStreamFromFD(T),Ue=Ee.tty?2:d.isDir(Ee.mode)?3:d.isLink(Ee.mode)?7:4;return Q[D]=Ue,Z[D+2>>1]=fe,Pe=[V>>>0,(_e=V,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[D+8>>2]=Pe[0],j[D+12>>2]=Pe[1],Pe=[$>>>0,(_e=$,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[D+16>>2]=Pe[0],j[D+20>>2]=Pe[1],0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return b.errno}}var Wu=(T,D,V,$)=>{for(var fe=0,Ee=0;Ee>2],b=he[D+4>>2];D+=8;var R=d.read(T,Q,Ue,b,$);if(R<0)return-1;if(fe+=R,R>2]=Ee,0}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return Ue.errno}}function Qu(T,D,V,$,fe){var Ee=hi(D,V);try{if(isNaN(Ee))return 61;var Ue=Ke.getStreamFromFD(T);return d.llseek(Ue,Ee,$),Pe=[Ue.position>>>0,(_e=Ue.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[fe>>2]=Pe[0],j[fe+4>>2]=Pe[1],Ue.getdents&&Ee===0&&$===0&&(Ue.getdents=null),0}catch(b){if(typeof d>"u"||b.name!=="ErrnoError")throw b;return b.errno}}var wo=function(T){try{var D=Ke.getStreamFromFD(T);return Zt.handleSleep(V=>{var $=D.node.mount;if(!$.type.syncfs){V(0);return}$.type.syncfs($,!1,fe=>{V(fe?29:0)})})}catch(V){if(typeof d>"u"||V.name!=="ErrnoError")throw V;return V.errno}};wo.isAsync=!0;var Xu=(T,D,V,$)=>{for(var fe=0,Ee=0;Ee>2],b=he[D+4>>2];D+=8;var R=d.write(T,Q,Ue,b,$);if(R<0)return-1;if(fe+=R,R>2]=Ee,0}catch(Ue){if(typeof d>"u"||Ue.name!=="ErrnoError")throw Ue;return Ue.errno}}var it=function(){let T=typeof Zt=="object"?Zt.handleAsync.bind(Zt):null;t.handleAsync=T;let D=new Map;t.setCallback=(V,$)=>D.set(V,$),t.getCallback=V=>D.get(V),t.deleteCallback=V=>D.delete(V),it=function(V,$,...fe){let Ee=D.get($),Ue=null,b=typeof Ee=="function"?Ee:Ee[Ue=U(fe.shift())];if(V){if(T)return T(()=>b.apply(Ee,fe));throw new Error("Synchronous WebAssembly cannot call async function")}let R=b.apply(Ee,fe);if(typeof R?.then=="function")throw console.error("unexpected Promise",b),new Error(`${Ue} unexpectedly returned a Promise`);return R}};function Yu(...T){return it(!1,...T)}function cl(...T){return it(!0,...T)}cl.isAsync=!0;function tu(...T){return it(!1,...T)}function fl(...T){return it(!0,...T)}fl.isAsync=!0;function Ku(...T){return it(!1,...T)}function dl(...T){return it(!0,...T)}dl.isAsync=!0;function Zu(...T){return it(!1,...T)}function hl(...T){return it(!0,...T)}hl.isAsync=!0;function Jc(...T){return it(!1,...T)}function pl(...T){return it(!0,...T)}pl.isAsync=!0;function zs(...T){return it(!1,...T)}function ml(...T){return it(!0,...T)}ml.isAsync=!0;function _l(...T){return it(!1,...T)}function qs(...T){return it(!0,...T)}qs.isAsync=!0;function $u(...T){return it(!1,...T)}function xo(...T){return it(!0,...T)}xo.isAsync=!0;function ef(...T){return it(!1,...T)}function gl(...T){return it(!0,...T)}gl.isAsync=!0;function Ju(...T){return it(!1,...T)}function vl(...T){return it(!0,...T)}vl.isAsync=!0;function ec(...T){return it(!1,...T)}function yl(...T){return it(!0,...T)}yl.isAsync=!0;function nu(...T){return it(!1,...T)}function bl(...T){return it(!0,...T)}bl.isAsync=!0;function tc(...T){return it(!1,...T)}function To(...T){return it(!0,...T)}To.isAsync=!0;function nc(...T){return it(!1,...T)}function iu(...T){return it(!0,...T)}iu.isAsync=!0;function ru(...T){return it(!1,...T)}function Sl(...T){return it(!0,...T)}Sl.isAsync=!0;function au(...T){return it(!1,...T)}function su(...T){return it(!0,...T)}su.isAsync=!0;var Bs=T=>{try{return T()}catch(D){Mt(D)}},Mo=T=>{for(var D={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},V={parameters:[],results:T[0]=="v"?[]:[D[T[0]]]},$=1;${Be+=1},Ao=()=>{Be-=1},Zt={instrumentWasmImports(T){var D=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[V,$]of Object.entries(T))if(typeof $=="function"){let fe=$.isAsync||D.test(V)}},instrumentWasmExports(T){var D={};for(let[V,$]of Object.entries(T))typeof $=="function"?D[V]=(...fe)=>{Zt.exportCallStack.push(V);try{return $(...fe)}finally{if(!q){var Ee=Zt.exportCallStack.pop();Zt.maybeStopUnwind()}}}:D[V]=$;return D},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(T){var D=Zt.callStackNameToId[T];return D===void 0&&(D=Zt.callStackId++,Zt.callStackNameToId[T]=D,Zt.callStackIdToName[D]=T),D},maybeStopUnwind(){Zt.currData&&Zt.state===Zt.State.Unwinding&&Zt.exportCallStack.length===0&&(Zt.state=Zt.State.Normal,Bs(Qn),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return new Promise((T,D)=>{Zt.asyncPromiseHandlers={resolve:T,reject:D}})},allocateData(){var T=Zp(12+Zt.StackSize);return Zt.setDataHeader(T,T+12,Zt.StackSize),Zt.setDataRewindFunc(T),T},setDataHeader(T,D,V){he[T>>2]=D,he[T+4>>2]=D+V},setDataRewindFunc(T){var D=Zt.exportCallStack[0],V=Zt.getCallStackId(D);j[T+8>>2]=V},getDataRewindFuncName(T){var D=j[T+8>>2],V=Zt.callStackIdToName[D];return V},getDataRewindFunc(T){var D=ce[T];return D},doRewind(T){var D=Zt.getDataRewindFuncName(T),V=Zt.getDataRewindFunc(D);return V()},handleSleep(T){if(!q){if(Zt.state===Zt.State.Normal){var D=!1,V=!1;T(($=0)=>{if(!q&&(Zt.handleSleepReturnValue=$,D=!0,!!V)){Zt.state=Zt.State.Rewinding,Bs(()=>ea(Zt.currData)),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.resume();var fe,Ee=!1;try{fe=Zt.doRewind(Zt.currData)}catch(R){fe=R,Ee=!0}var Ue=!1;if(!Zt.currData){var b=Zt.asyncPromiseHandlers;b&&(Zt.asyncPromiseHandlers=null,(Ee?b.reject:b.resolve)(fe),Ue=!0)}if(Ee&&!Ue)throw fe}}),V=!0,D||(Zt.state=Zt.State.Unwinding,Zt.currData=Zt.allocateData(),typeof MainLoop<"u"&&MainLoop.func&&MainLoop.pause(),Bs(()=>Kn(Zt.currData)))}else Zt.state===Zt.State.Rewinding?(Zt.state=Zt.State.Normal,Bs(La),sv(Zt.currData),Zt.currData=null,Zt.sleepCallbacks.forEach(Oi)):Mt(`invalid state: ${Zt.state}`);return Zt.handleSleepReturnValue}},handleAsync:T=>Zt.handleSleep(D=>{T().then(D)})},Xt=(T,D)=>{T<128?D.push(T):D.push(T%128|128,T>>7)},ou=(T,D)=>{var V=T.slice(0,1),$=T.slice(1),fe={i:127,p:127,j:126,f:125,d:124,e:111};D.push(96),Xt($.length,D);for(var Ee of $)D.push(fe[Ee]);V=="v"?D.push(0):D.push(1,fe[V])},ms=(T,D)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(Mo(D),T);var V=[1];ou(D,V);var $=[0,97,115,109,1,0,0,0,1];Xt(V.length,$),$.push(...V),$.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var fe=new WebAssembly.Module(new Uint8Array($)),Ee=new WebAssembly.Instance(fe,{e:{f:T}}),Ue=Ee.exports.f;return Ue},xr,Ya=T=>xr.get(T),lu=(T,D)=>{if(Tr)for(var V=T;V(Tr||(Tr=new WeakMap,lu(0,xr.length)),Tr.get(T)||0),El=[],Hs=()=>{if(El.length)return El.pop();try{xr.grow(1)}catch(T){throw T instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":T}return xr.length-1},Co=(T,D)=>xr.set(T,D),wl=(T,D)=>{var V=ha(T);if(V)return V;var $=Hs();try{Co($,T)}catch(Ee){if(!(Ee instanceof TypeError))throw Ee;var fe=ms(T,D);Co($,fe)}return Tr.set(T,$),$},Ta=T=>{var D=t["_"+T];return D},oi=(T,D)=>{Q.set(T,D)},Ro=T=>Ld(T),xl=T=>{var D=Oe(T)+1,V=Ro(D);return wn(T,V,D),V},Ma=(T,D,V,$,fe)=>{var Ee={string:xt=>{var tn=0;return xt!=null&&xt!==0&&(tn=xl(xt)),tn},array:xt=>{var tn=Ro(xt.length);return oi(xt,tn),tn}};function Ue(xt){return D==="string"?U(xt):D==="boolean"?!!xt:xt}var b=Ta(T),R=[],z=0;if($)for(var Y=0;Y<$.length;Y++){var se=Ee[V[Y]];se?(z===0&&(z=L()),R[Y]=se($[Y])):R[Y]=$[Y]}var ye=Zt.currData,xe=b(...R);function Ce(xt){return Ao(),z!==0&&ge(z),Ue(xt)}var ot=fe?.async;return ic(),Zt.currData!=ye?Zt.whenDone().then(Ce):(xe=Ce(xe),ot?Promise.resolve(xe):xe)},Aa=(T,D,V,$)=>{var fe=!V||V.every(Ue=>Ue==="number"||Ue==="boolean"),Ee=D!=="string";return Ee&&fe&&!$?Ta(T):(...Ue)=>Ma(T,D,V,Ue,$)},Vs=T=>cv(),uu=(T,D,V)=>{if(V??=2147483647,V<2)return 0;V-=2;for(var $=D,fe=V>1]=Ue,D+=2}return Z[D>>1]=0,D-$},Tl=(T,D,V)=>{if(V??=2147483647,V<4)return 0;for(var $=D,fe=$+V-4,Ee=0;Ee=55296&&Ue<=57343){var b=T.charCodeAt(++Ee);Ue=65536+((Ue&1023)<<10)|b&1023}if(j[D>>2]=Ue,D+=4,D+4>fe)break}return j[D>>2]=0,D-$},rc=T=>{for(var D="";;){var V=H[T++];if(!V)return D;D+=String.fromCharCode(V)}},tf=new TextDecoder("utf-16le"),Gs=(T,D)=>{for(var V=T>>1,$=V+D/2,fe=V;!(fe>=$)&&te[fe];)++fe;return tf.decode(te.subarray(V,fe))},me=(T,D)=>{for(var V=0,$="";!(V>=D/4);){var fe=j[T+V*4>>2];if(fe==0)break;if(++V,fe>=65536){var Ee=fe-65536;$+=String.fromCharCode(55296|Ee>>10,56320|Ee&1023)}else $+=String.fromCharCode(fe)}return $},pe=T=>{for(var D=[],V=0;V255&&($&=255),D.push(String.fromCharCode($))}return D.join("")},cd=Vs;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=Vs,t.ccall=Ma,t.cwrap=Aa,t.addFunction=wl,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=pe,t.AsciiToString=rc,t.UTF16ToString=Gs,t.stringToUTF16=uu,t.UTF32ToString=me,t.stringToUTF32=Tl,t.writeArrayToMemory=oi,t._getTempRet0=cd;var fd={a:ee,aa:ul,da:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,R:$r,X:Jr,P:ds,N:bo,M:hs,Z:ps,K:So,J:Fe,F:Ye,E:He,w:Kt,u:yn,v:Sn,G:ai,Q:Vn,n:wr,g:xn,H:vi,S:da,T:Eo,o:Vu,I:Gu,O:ju,x:Qu,V:wo,L:$c,s:Yu,t:cl,ka:tu,oa:fl,j:Ku,k:dl,c:Zu,d:hl,ga:Jc,ha:pl,ia:zs,ja:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,ea:Ju,fa:vl,B:ec,C:yl,p:nu,q:bl,la:tc,ma:To,D:Hn,na:nc,r:iu,l:ru,m:Sl,W:au,ca:su},ce=await lt(),ue=ce.qa,G_=t._powersync_init_static=ce.ra,np=t._memcpy=ce.sa,dd=t._memset=ce.ta,hd=t._memcmp=ce.ua,yb=t._sqlite3_status64=ce.va,W_=t._sqlite3_status=ce.wa,j_=t._sqlite3_msize=ce.xa,pd=t._sqlite3_db_status=ce.ya,ip=t._sqlite3_vfs_find=ce.za,rp=t._sqlite3_vfs_register=ce.Aa,Q_=t._sqlite3_vfs_unregister=ce.Ba,Io=t._sqlite3_release_memory=ce.Ca,ap=t._sqlite3_soft_heap_limit64=ce.Da,bb=t._sqlite3_memory_used=ce.Ea,X_=t._sqlite3_hard_heap_limit64=ce.Fa,_s=t._sqlite3_memory_highwater=ce.Ga,md=t._sqlite3_malloc=ce.Ha,Y_=t._sqlite3_malloc64=ce.Ia,sp=t._sqlite3_free=ce.Ja,K_=t._sqlite3_realloc=ce.Ka,Z_=t._sqlite3_realloc64=ce.La,op=t._sqlite3_str_vappendf=ce.Ma,lp=t._sqlite3_str_append=ce.Na,$_=t._sqlite3_str_appendchar=ce.Oa,_d=t._sqlite3_str_appendall=ce.Pa,nf=t._sqlite3_str_appendf=ce.Qa,Mi=t._sqlite3_str_finish=ce.Ra,Sb=t._sqlite3_str_errcode=ce.Sa,Eb=t._sqlite3_str_length=ce.Ta,J_=t._sqlite3_str_value=ce.Ua,rf=t._sqlite3_str_reset=ce.Va,Ml=t._sqlite3_str_new=ce.Wa,eg=t._sqlite3_vmprintf=ce.Xa,tg=t._sqlite3_mprintf=ce.Ya,Ws=t._sqlite3_vsnprintf=ce.Za,Mr=t._sqlite3_snprintf=ce._a,ng=t._sqlite3_log=ce.$a,af=t._sqlite3_randomness=ce.ab,ig=t._sqlite3_stricmp=ce.bb,sf=t._sqlite3_strnicmp=ce.cb,up=t._sqlite3_os_init=ce.db,cp=t._sqlite3_os_end=ce.eb,fp=t._sqlite3_serialize=ce.fb,dp=t._sqlite3_prepare_v2=ce.gb,rg=t._sqlite3_step=ce.hb,hp=t._sqlite3_column_int64=ce.ib,pp=t._sqlite3_reset=ce.jb,gd=t._sqlite3_exec=ce.kb,mp=t._sqlite3_column_int=ce.lb,ag=t._sqlite3_finalize=ce.mb,sg=t._sqlite3_deserialize=ce.nb,og=t._sqlite3_database_file_object=ce.ob,lg=t._sqlite3_backup_init=ce.pb,ac=t._sqlite3_backup_step=ce.qb,ug=t._sqlite3_backup_finish=ce.rb,js=t._sqlite3_backup_remaining=ce.sb,vd=t._sqlite3_backup_pagecount=ce.tb,_p=t._sqlite3_clear_bindings=ce.ub,gp=t._sqlite3_value_blob=ce.vb,vp=t._sqlite3_value_text=ce.wb,cg=t._sqlite3_value_bytes=ce.xb,yp=t._sqlite3_value_bytes16=ce.yb,yd=t._sqlite3_value_double=ce.zb,fg=t._sqlite3_value_int=ce.Ab,bp=t._sqlite3_value_int64=ce.Bb,dg=t._sqlite3_value_subtype=ce.Cb,wb=t._sqlite3_value_pointer=ce.Db,bd=t._sqlite3_value_text16=ce.Eb,hg=t._sqlite3_value_text16be=ce.Fb,Sp=t._sqlite3_value_text16le=ce.Gb,pg=t._sqlite3_value_type=ce.Hb,Ep=t._sqlite3_value_encoding=ce.Ib,mg=t._sqlite3_value_nochange=ce.Jb,Ca=t._sqlite3_value_frombind=ce.Kb,wp=t._sqlite3_value_dup=ce.Lb,_g=t._sqlite3_value_free=ce.Mb,gg=t._sqlite3_result_blob=ce.Nb,xb=t._sqlite3_result_blob64=ce.Ob,Sd=t._sqlite3_result_double=ce.Pb,Ar=t._sqlite3_result_error=ce.Qb,vg=t._sqlite3_result_error16=ce.Rb,zr=t._sqlite3_result_int=ce.Sb,yg=t._sqlite3_result_int64=ce.Tb,sc=t._sqlite3_result_null=ce.Ub,bg=t._sqlite3_result_pointer=ce.Vb,Qs=t._sqlite3_result_subtype=ce.Wb,Al=t._sqlite3_result_text=ce.Xb,gs=t._sqlite3_result_text64=ce.Yb,xp=t._sqlite3_result_text16=ce.Zb,Tp=t._sqlite3_result_text16be=ce._b,Ka=t._sqlite3_result_text16le=ce.$b,Sg=t._sqlite3_result_value=ce.ac,oc=t._sqlite3_result_error_toobig=ce.bc,of=t._sqlite3_result_zeroblob=ce.cc,Cl=t._sqlite3_result_zeroblob64=ce.dc,Eg=t._sqlite3_result_error_code=ce.ec,wg=t._sqlite3_result_error_nomem=ce.fc,lf=t._sqlite3_user_data=ce.gc,xg=t._sqlite3_context_db_handle=ce.hc,Ed=t._sqlite3_vtab_nochange=ce.ic,Tg=t._sqlite3_vtab_in_first=ce.jc,Mp=t._sqlite3_vtab_in_next=ce.kc,Ap=t._sqlite3_aggregate_context=ce.lc,Cp=t._sqlite3_get_auxdata=ce.mc,Mg=t._sqlite3_set_auxdata=ce.nc,Rp=t._sqlite3_column_count=ce.oc,Ra=t._sqlite3_data_count=ce.pc,Ag=t._sqlite3_column_blob=ce.qc,lc=t._sqlite3_column_bytes=ce.rc,pa=t._sqlite3_column_bytes16=ce.sc,Cg=t._sqlite3_column_double=ce.tc,Rg=t._sqlite3_column_text=ce.uc,Tb=t._sqlite3_column_value=ce.vc,Rl=t._sqlite3_column_text16=ce.wc,Ig=t._sqlite3_column_type=ce.xc,Ip=t._sqlite3_column_name=ce.yc,uc=t._sqlite3_column_name16=ce.zc,Lg=t._sqlite3_bind_blob=ce.Ac,Ng=t._sqlite3_bind_blob64=ce.Bc,kg=t._sqlite3_bind_double=ce.Cc,Og=t._sqlite3_bind_int=ce.Dc,wd=t._sqlite3_bind_int64=ce.Ec,Lp=t._sqlite3_bind_null=ce.Fc,Mb=t._sqlite3_bind_pointer=ce.Gc,Ab=t._sqlite3_bind_text=ce.Hc,Cb=t._sqlite3_bind_text64=ce.Ic,Dg=t._sqlite3_bind_text16=ce.Jc,Fg=t._sqlite3_bind_value=ce.Kc,cc=t._sqlite3_bind_zeroblob=ce.Lc,xd=t._sqlite3_bind_zeroblob64=ce.Mc,Pg=t._sqlite3_bind_parameter_count=ce.Nc,Ug=t._sqlite3_bind_parameter_name=ce.Oc,Rb=t._sqlite3_bind_parameter_index=ce.Pc,Ib=t._sqlite3_db_handle=ce.Qc,Lb=t._sqlite3_stmt_readonly=ce.Rc,Np=t._sqlite3_stmt_isexplain=ce.Sc,kp=t._sqlite3_stmt_explain=ce.Tc,Op=t._sqlite3_stmt_busy=ce.Uc,zg=t._sqlite3_next_stmt=ce.Vc,uf=t._sqlite3_stmt_status=ce.Wc,Dp=t._sqlite3_sql=ce.Xc,qg=t._sqlite3_expanded_sql=ce.Yc,li=t._sqlite3_value_numeric_type=ce.Zc,Fp=t._sqlite3_blob_open=ce._c,Nb=t._sqlite3_blob_close=ce.$c,Bg=t._sqlite3_blob_read=ce.ad,kb=t._sqlite3_blob_write=ce.bd,Ob=t._sqlite3_blob_bytes=ce.cd,Db=t._sqlite3_blob_reopen=ce.dd,Fb=t._sqlite3_set_authorizer=ce.ed,Pp=t._sqlite3_strglob=ce.fd,Lo=t._sqlite3_strlike=ce.gd,Hg=t._sqlite3_errmsg=ce.hd,Td=t._sqlite3_load_extension=ce.id,cu=t._sqlite3_enable_load_extension=ce.jd,Up=t._sqlite3_auto_extension=ce.kd,Vg=t._sqlite3_cancel_auto_extension=ce.ld,zp=t._sqlite3_reset_auto_extension=ce.md,Pb=t._sqlite3_prepare=ce.nd,Gg=t._sqlite3_prepare_v3=ce.od,Wg=t._sqlite3_prepare16=ce.pd,jg=t._sqlite3_prepare16_v2=ce.qd,Qg=t._sqlite3_prepare16_v3=ce.rd,Xg=t._sqlite3_get_table=ce.sd,qp=t._sqlite3_free_table=ce.td,qn=t._sqlite3_create_module=ce.ud,Ub=t._sqlite3_create_module_v2=ce.vd,Ia=t._sqlite3_drop_modules=ce.wd,Bp=t._sqlite3_declare_vtab=ce.xd,zb=t._sqlite3_vtab_on_conflict=ce.yd,Md=t._sqlite3_vtab_config=ce.zd,fc=t._sqlite3_vtab_collation=ce.Ad,dc=t._sqlite3_vtab_in=ce.Bd,Yg=t._sqlite3_vtab_rhs_value=ce.Cd,Hp=t._sqlite3_vtab_distinct=ce.Dd,Kg=t._sqlite3_keyword_name=ce.Ed,No=t._sqlite3_keyword_count=ce.Fd,Vp=t._sqlite3_keyword_check=ce.Gd,Gp=t._sqlite3_complete=ce.Hd,Wp=t._sqlite3_complete16=ce.Id,jp=t._sqlite3_libversion=ce.Jd,Il=t._sqlite3_libversion_number=ce.Kd,Qp=t._sqlite3_threadsafe=ce.Ld,qb=t._sqlite3_initialize=ce.Md,Bb=t._sqlite3_shutdown=ce.Nd,Xp=t._sqlite3_config=ce.Od,Hb=t._sqlite3_db_mutex=ce.Pd,Zg=t._sqlite3_db_release_memory=ce.Qd,$g=t._sqlite3_db_cacheflush=ce.Rd,Vb=t._sqlite3_db_config=ce.Sd,Ad=t._sqlite3_last_insert_rowid=ce.Td,_n=t._sqlite3_set_last_insert_rowid=ce.Ud,Gb=t._sqlite3_changes64=ce.Vd,Wb=t._sqlite3_changes=ce.Wd,Jg=t._sqlite3_total_changes64=ce.Xd,cf=t._sqlite3_total_changes=ce.Yd,jb=t._sqlite3_txn_state=ce.Zd,Qb=t._sqlite3_close=ce._d,Xb=t._sqlite3_close_v2=ce.$d,Yb=t._sqlite3_busy_handler=ce.ae,Kb=t._sqlite3_progress_handler=ce.be,Yp=t._sqlite3_busy_timeout=ce.ce,ev=t._sqlite3_interrupt=ce.de,Cd=t._sqlite3_is_interrupted=ce.ee,tv=t._sqlite3_create_function=ce.fe,Zb=t._sqlite3_create_function_v2=ce.ge,$b=t._sqlite3_create_window_function=ce.he,fu=t._sqlite3_create_function16=ce.ie,Xs=t._sqlite3_overload_function=ce.je,Gi=t._sqlite3_trace_v2=ce.ke,Ys=t._sqlite3_commit_hook=ce.le,Cr=t._sqlite3_update_hook=ce.me,Jb=t._sqlite3_rollback_hook=ce.ne,eS=t._sqlite3_autovacuum_pages=ce.oe,hr=t._sqlite3_wal_autocheckpoint=ce.pe,ko=t._sqlite3_wal_hook=ce.qe,tS=t._sqlite3_wal_checkpoint_v2=ce.re,nS=t._sqlite3_wal_checkpoint=ce.se,iS=t._sqlite3_error_offset=ce.te,rS=t._sqlite3_errmsg16=ce.ue,aS=t._sqlite3_errcode=ce.ve,Kp=t._sqlite3_extended_errcode=ce.we,nv=t._sqlite3_system_errno=ce.xe,sS=t._sqlite3_errstr=ce.ye,iv=t._sqlite3_limit=ce.ze,oS=t._sqlite3_open=ce.Ae,lS=t._sqlite3_open_v2=ce.Be,hc=t._sqlite3_open16=ce.Ce,Oo=t._sqlite3_create_collation=ce.De,uS=t._sqlite3_create_collation_v2=ce.Ee,cS=t._sqlite3_create_collation16=ce.Fe,fS=t._sqlite3_collation_needed=ce.Ge,ff=t._sqlite3_collation_needed16=ce.He,dS=t._sqlite3_get_clientdata=ce.Ie,hS=t._sqlite3_set_clientdata=ce.Je,pS=t._sqlite3_get_autocommit=ce.Ke,df=t._sqlite3_table_column_metadata=ce.Le,mS=t._sqlite3_sleep=ce.Me,_S=t._sqlite3_extended_result_codes=ce.Ne,gS=t._sqlite3_file_control=ce.Oe,vS=t._sqlite3_test_control=ce.Pe,yS=t._sqlite3_create_filename=ce.Qe,bS=t._sqlite3_free_filename=ce.Re,SS=t._sqlite3_uri_parameter=ce.Se,ES=t._sqlite3_uri_key=ce.Te,wS=t._sqlite3_uri_boolean=ce.Ue,xS=t._sqlite3_uri_int64=ce.Ve,TS=t._sqlite3_filename_database=ce.We,MS=t._sqlite3_filename_journal=ce.Xe,rv=t._sqlite3_filename_wal=ce.Ye,AS=t._sqlite3_db_name=ce.Ze,CS=t._sqlite3_db_filename=ce._e,RS=t._sqlite3_db_readonly=ce.$e,IS=t._sqlite3_compileoption_used=ce.af,av=t._sqlite3_compileoption_get=ce.bf,LS=t._sqlite3_sourceid=ce.cf,Zp=t._malloc=ce.df,sv=t._free=ce.ef,NS=t._RegisterExtensionFunctions=ce.ff,$p=t._getSqliteFree=ce.gf,ov=t._main=ce.hf,Rd=t._libauthorizer_set_authorizer=ce.jf,kS=t._libfunction_create_function=ce.kf,Id=t._libhook_commit_hook=ce.lf,Jp=t._libhook_update_hook=ce.mf,lv=t._libprogress_progress_handler=ce.nf,uv=t._libvfs_vfs_register=ce.of,hf=ce.qf,em=ce.rf,cv=ce.sf,tm=ce.tf,Ld=ce.uf,nm=ce.vf,fv=t.dynCall_iii=ce.dynCall_iii,Nd=t.dynCall_iiii=ce.dynCall_iiii,kd=t.dynCall_viii=ce.dynCall_viii,dv=t.dynCall_vi=ce.dynCall_vi,im=t.dynCall_viiiij=ce.dynCall_viiiij,rm=t.dynCall_ii=ce.dynCall_ii,am=t.dynCall_vii=ce.dynCall_vii,sm=t.dynCall_iiiiiii=ce.dynCall_iiiiiii,om=t.dynCall_iiiiii=ce.dynCall_iiiiii,OS=t.dynCall_iiiii=ce.dynCall_iiiii,DS=t.dynCall_viiii=ce.dynCall_viiii,FS=t.dynCall_iiiiiiiii=ce.dynCall_iiiiiiiii,PS=t.dynCall_vijii=ce.dynCall_vijii,hv=t.dynCall_viiiii=ce.dynCall_viiiii,US=t.dynCall_iiiij=ce.dynCall_iiiij,zS=t.dynCall_viji=ce.dynCall_viji,qS=t.dynCall_iij=ce.dynCall_iij,BS=t.dynCall_iidiiii=ce.dynCall_iidiiii,HS=t.dynCall_v=ce.dynCall_v,pv=t.dynCall_iijii=ce.dynCall_iijii,Od=t.dynCall_iiji=ce.dynCall_iiji,mv=t.dynCall_i=ce.dynCall_i,A=t.dynCall_iiiiiij=ce.dynCall_iiiiiij,P=t.dynCall_iiid=ce.dynCall_iiid,W=t.dynCall_iiij=ce.dynCall_iiij,J=t.dynCall_dii=ce.dynCall_dii,de=t.dynCall_jii=ce.dynCall_jii,Ae=t.dynCall_ji=ce.dynCall_ji,qe=t.dynCall_vid=ce.dynCall_vid,w=t.dynCall_vij=ce.dynCall_vij,I=t.dynCall_iiiiiiiiii=ce.dynCall_iiiiiiiiii,B=t.dynCall_di=ce.dynCall_di,K=t.dynCall_iiiiijii=ce.dynCall_iiiiijii,oe=t.dynCall_j=ce.dynCall_j,Se=t.dynCall_jj=ce.dynCall_jj,Te=t.dynCall_jiij=ce.dynCall_jiij,Ie=t.dynCall_iiiiji=ce.dynCall_iiiiji,rt=t.dynCall_iiiijii=ce.dynCall_iiiijii,Ut=t.dynCall_ij=ce.dynCall_ij,ln=t.dynCall_viiji=ce.dynCall_viiji,gn=t.dynCall_viijii=ce.dynCall_viijii,hn=t.dynCall_iiiiiiiiiii=ce.dynCall_iiiiiiiiiii,un=t.dynCall_iiiijji=ce.dynCall_iiiijji,Dt=t.dynCall_iiiiiiii=ce.dynCall_iiiiiiii,Kn=ce.wf,Qn=ce.xf,ea=ce.yf,La=ce.zf,Za=t._sqlite3_version=80488;function pc(){var T=ov,D=0,V=0;try{var $=T(D,V);return On($,!0),$}catch(fe){return En(fe)}}function ta(){if(We>0){gt=ta;return}if(Ve(),We>0){gt=ta;return}function T(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var D=t.noInitialRun||!1;D||pc(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),T()},1)):T()}function Ks(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return Ks(),ta(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.set_authorizer=function(V,$,fe){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,$ instanceof T?1:0,"i32");let Ee=Ma("libauthorizer_set_authorizer","number",["number","number","number"],[V,$?1:0,D]);return!Ee&&$&&t.setCallback(D,(Ue,b,R,z,Y,se)=>$(fe,b,R,z,Y,se)),Ee}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=["xFunc","xStep","xFinal"],V=new Map;t.create_function=function($,fe,Ee,Ue,b,R,z,Y){let se=t._sqlite3_malloc(4),ye={xFunc:R,xStep:z,xFinal:Y};kt(se,D.reduce((Ce,ot,xt)=>ye[ot]instanceof T?Ce|1<$(Ee,Ue,b,R,z))}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.commit_hook=function(V,$){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,$ instanceof T?1:0,"i32"),Ma("libhook_commit_hook","void",["number","number","number"],[V,$?1:0,D]),$&&t.setCallback(D,fe=>$())}})(),(function(){let T=Object.getPrototypeOf(async function(){}).constructor,D=0;t.progress_handler=function(V,$,fe,Ee){D&&(t.deleteCallback(D),t._sqlite3_free(D),D=0),D=t._sqlite3_malloc(4),kt(D,fe instanceof T?1:0,"i32"),Ma("libprogress_progress_handler","number",["number","number","number","number"],[V,$,fe?1:0,D]),fe&&t.setCallback(D,Ue=>fe(Ee))}})(),(function(){let T=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],D=new Map;t.vfs_register=function(V,$){let fe=0,Ee=0;T.forEach((b,R)=>{V[b]&&(fe|=1<Cte});var Ate,Cte,jH=Da(()=>{Ate=(async function(n={}){var e,t=n,i,r,a=new Promise((w,I)=>{i=w,r=I}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(w,I)=>{throw I},_=import.meta.url,g="";function E(w){return t.locateFile?t.locateFile(w,g):g+w}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=w=>{var I=new XMLHttpRequest;return I.open("GET",w,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}),x=async w=>{var I=await fetch(w,{credentials:"same-origin"});if(I.ok)return I.arrayBuffer();throw new Error(I.status+" : "+I.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var w=k.buffer;Q=new Int8Array(w),Z=new Int16Array(w),t.HEAPU8=H=new Uint8Array(w),te=new Uint16Array(w),t.HEAP32=j=new Int32Array(w),he=new Uint32Array(w),ke=new Float32Array(w),Me=new Float64Array(w)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),pe.ra(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(w){return w}function jt(w){We++,t.monitorRunDependencies?.(We)}function zt(w){if(We--,t.monitorRunDependencies?.(We),We==0&>){var I=gt;gt=null,I()}}function Mt(w){t.onAbort?.(w),w="Aborted("+w+")",M(w),q=!0,w+=". Build with -sASSERTIONS for more info.";var I=new WebAssembly.RuntimeError(w);throw r(I),I}var Xe;function et(){return t.locateFile?E("mc-wa-sqlite.wasm"):new URL("mc-wa-sqlite.wasm",import.meta.url).href}function yt(w){if(w==Xe&&O)return new Uint8Array(O);if(S)return S(w);throw"both async and sync fetching of the wasm failed"}async function Wt(w){if(!O)try{var I=await x(w);return new Uint8Array(I)}catch{}return yt(w)}async function Lt(w,I){try{var B=await Wt(w),K=await WebAssembly.instantiate(B,I);return K}catch(oe){M(`failed to asynchronously prepare wasm: ${oe}`),Mt(oe)}}async function sn(w,I,B){if(!w&&typeof WebAssembly.instantiateStreaming=="function")try{var K=fetch(I,{credentials:"same-origin"}),oe=await WebAssembly.instantiateStreaming(K,B);return oe}catch(Se){M(`wasm streaming compile failed: ${Se}`),M("falling back to ArrayBuffer instantiation")}return Lt(I,B)}function pn(){return{a:me}}async function lt(){function w(Se,Te){return pe=Se.exports,k=pe.qa,Ne(),Xt=pe.wf,zt("wasm-instantiate"),pe}jt("wasm-instantiate");function I(Se){return w(Se.instance)}var B=pn();if(t.instantiateWasm)return new Promise((Se,Te)=>{t.instantiateWasm(B,(Ie,rt)=>{Se(w(Ie,rt))})});Xe??=et();try{var K=await sn(O,Xe,B),oe=I(K);return oe}catch(Se){return r(Se),Promise.reject(Se)}}var _e,Pe;class dt{name="ExitStatus";constructor(I){this.message=`Program terminated with exit(${I})`,this.status=I}}var vt=w=>{for(;w.length>0;)w.shift()(t)},Qt=[],Ht=w=>Qt.push(w),qt=[],en=w=>qt.push(w);function Le(w,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":return Q[w];case"i8":return Q[w];case"i16":return Z[w>>1];case"i32":return j[w>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[w>>2];case"double":return Me[w>>3];case"*":return he[w>>2];default:Mt(`invalid type for getValue: ${I}`)}}var fn=!0;function kt(w,I,B="i8"){switch(B.endsWith("*")&&(B="*"),B){case"i1":Q[w]=I;break;case"i8":Q[w]=I;break;case"i16":Z[w>>1]=I;break;case"i32":j[w>>2]=I;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[w>>2]=I;break;case"double":Me[w>>3]=I;break;case"*":he[w>>2]=I;break;default:Mt(`invalid type for setValue: ${B}`)}}var ge=w=>fv(w),L=()=>kd(),N=new TextDecoder,U=(w,I)=>{if(!w)return"";for(var B=w+I,K=w;!(K>=B)&&H[K];)++K;return N.decode(H.subarray(w,K))},ee=(w,I,B,K)=>Mt(`Assertion failed: ${U(w)}, at: `+[I?U(I):"unknown filename",B,K?U(K):"unknown function"]),ne={isAbs:w=>w.charAt(0)==="/",splitPath:w=>{var I=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return I.exec(w).slice(1)},normalizeArray:(w,I)=>{for(var B=0,K=w.length-1;K>=0;K--){var oe=w[K];oe==="."?w.splice(K,1):oe===".."?(w.splice(K,1),B++):B&&(w.splice(K,1),B--)}if(I)for(;B;B--)w.unshift("..");return w},normalize:w=>{var I=ne.isAbs(w),B=w.slice(-1)==="/";return w=ne.normalizeArray(w.split("/").filter(K=>!!K),!I).join("/"),!w&&!I&&(w="."),w&&B&&(w+="/"),(I?"/":"")+w},dirname:w=>{var I=ne.splitPath(w),B=I[0],K=I[1];return!B&&!K?".":(K&&(K=K.slice(0,-1)),B+K)},basename:w=>w&&w.match(/([^\/]+|\/)\/*$/)[1],join:(...w)=>ne.normalize(w.join("/")),join2:(w,I)=>ne.normalize(w+"/"+I)},X=()=>w=>crypto.getRandomValues(w),ie=w=>{(ie=X())(w)},le={resolve:(...w)=>{for(var I="",B=!1,K=w.length-1;K>=-1&&!B;K--){var oe=K>=0?w[K]:d.cwd();if(typeof oe!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!oe)return"";I=oe+"/"+I,B=ne.isAbs(oe)}return I=ne.normalizeArray(I.split("/").filter(Se=>!!Se),!B).join("/"),(B?"/":"")+I||"."},relative:(w,I)=>{w=le.resolve(w).slice(1),I=le.resolve(I).slice(1);function B(Ut){for(var ln=0;ln=0&&Ut[gn]==="";gn--);return ln>gn?[]:Ut.slice(ln,gn-ln+1)}for(var K=B(w.split("/")),oe=B(I.split("/")),Se=Math.min(K.length,oe.length),Te=Se,Ie=0;Ie{for(var K=I+B,oe=I;w[oe]&&!(oe>=K);)++oe;return N.decode(w.buffer?w.subarray(I,oe):new Uint8Array(w.slice(I,oe)))},tt=[],Oe=w=>{for(var I=0,B=0;B=55296&&K<=57343?(I+=4,++B):I+=3}return I},je=(w,I,B,K)=>{if(!(K>0))return 0;for(var oe=B,Se=B+K-1,Te=0;Te=55296&&Ie<=57343){var rt=w.charCodeAt(++Te);Ie=65536+((Ie&1023)<<10)|rt&1023}if(Ie<=127){if(B>=Se)break;I[B++]=Ie}else if(Ie<=2047){if(B+1>=Se)break;I[B++]=192|Ie>>6,I[B++]=128|Ie&63}else if(Ie<=65535){if(B+2>=Se)break;I[B++]=224|Ie>>12,I[B++]=128|Ie>>6&63,I[B++]=128|Ie&63}else{if(B+3>=Se)break;I[B++]=240|Ie>>18,I[B++]=128|Ie>>12&63,I[B++]=128|Ie>>6&63,I[B++]=128|Ie&63}}return I[B]=0,B-oe},Ct=(w,I,B)=>{var K=B>0?B:Oe(w)+1,oe=new Array(K),Se=je(w,oe,0,oe.length);return I&&(oe.length=Se),oe},nn=()=>{if(!tt.length){var w=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(w=window.prompt("Input: "),w!==null&&(w+=` `)),!w)return null;tt=Ct(w,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(w,I){ht.ttys[w]={input:[],output:[],ops:I},d.registerDevice(w,ht.stream_ops)},stream_ops:{open(w){var I=ht.ttys[w.node.rdev];if(!I)throw new d.ErrnoError(43);w.tty=I,w.seekable=!1},close(w){w.tty.ops.fsync(w.tty)},fsync(w){w.tty.ops.fsync(w.tty)},read(w,I,B,K,oe){if(!w.tty||!w.tty.ops.get_char)throw new d.ErrnoError(60);for(var Se=0,Te=0;Te0&&(v(be(w.output)),w.output=[])},ioctl_tcgets(w){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(w,I,B){return 0},ioctl_tiocgwinsz(w){return[24,80]}},default_tty1_ops:{put_char(w,I){I===null||I===10?(M(be(w.output)),w.output=[]):I!=0&&w.output.push(I)},fsync(w){w.output?.length>0&&(M(be(w.output)),w.output=[])}}},De=(w,I)=>H.fill(0,w,w+I),bt=(w,I)=>Math.ceil(w/I)*I,at=w=>{w=bt(w,65536);var I=tm(65536,w);return I&&De(I,w),I},we={ops_table:null,mount(w){return we.createNode(null,"/",16895,0)},createNode(w,I,B,K){if(d.isBlkdev(B)||d.isFIFO(B))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var oe=d.createNode(w,I,B,K);return d.isDir(oe.mode)?(oe.node_ops=we.ops_table.dir.node,oe.stream_ops=we.ops_table.dir.stream,oe.contents={}):d.isFile(oe.mode)?(oe.node_ops=we.ops_table.file.node,oe.stream_ops=we.ops_table.file.stream,oe.usedBytes=0,oe.contents=null):d.isLink(oe.mode)?(oe.node_ops=we.ops_table.link.node,oe.stream_ops=we.ops_table.link.stream):d.isChrdev(oe.mode)&&(oe.node_ops=we.ops_table.chrdev.node,oe.stream_ops=we.ops_table.chrdev.stream),oe.atime=oe.mtime=oe.ctime=Date.now(),w&&(w.contents[I]=oe,w.atime=w.mtime=w.ctime=oe.atime),oe},getFileDataAsTypedArray(w){return w.contents?w.contents.subarray?w.contents.subarray(0,w.usedBytes):new Uint8Array(w.contents):new Uint8Array(0)},expandFileStorage(w,I){var B=w.contents?w.contents.length:0;if(!(B>=I)){var K=1024*1024;I=Math.max(I,B*(B>>0),B!=0&&(I=Math.max(I,256));var oe=w.contents;w.contents=new Uint8Array(I),w.usedBytes>0&&w.contents.set(oe.subarray(0,w.usedBytes),0)}},resizeFileStorage(w,I){if(w.usedBytes!=I)if(I==0)w.contents=null,w.usedBytes=0;else{var B=w.contents;w.contents=new Uint8Array(I),B&&w.contents.set(B.subarray(0,Math.min(I,w.usedBytes))),w.usedBytes=I}},node_ops:{getattr(w){var I={};return I.dev=d.isChrdev(w.mode)?w.id:1,I.ino=w.id,I.mode=w.mode,I.nlink=1,I.uid=0,I.gid=0,I.rdev=w.rdev,d.isDir(w.mode)?I.size=4096:d.isFile(w.mode)?I.size=w.usedBytes:d.isLink(w.mode)?I.size=w.link.length:I.size=0,I.atime=new Date(w.atime),I.mtime=new Date(w.mtime),I.ctime=new Date(w.ctime),I.blksize=4096,I.blocks=Math.ceil(I.size/I.blksize),I},setattr(w,I){for(let B of["mode","atime","mtime","ctime"])I[B]!=null&&(w[B]=I[B]);I.size!==void 0&&we.resizeFileStorage(w,I.size)},lookup(w,I){throw we.doesNotExistError},mknod(w,I,B,K){return we.createNode(w,I,B,K)},rename(w,I,B){var K;try{K=d.lookupNode(I,B)}catch{}if(K){if(d.isDir(w.mode))for(var oe in K.contents)throw new d.ErrnoError(55);d.hashRemoveNode(K)}delete w.parent.contents[w.name],I.contents[B]=w,w.name=B,I.ctime=I.mtime=w.parent.ctime=w.parent.mtime=Date.now()},unlink(w,I){delete w.contents[I],w.ctime=w.mtime=Date.now()},rmdir(w,I){var B=d.lookupNode(w,I);for(var K in B.contents)throw new d.ErrnoError(55);delete w.contents[I],w.ctime=w.mtime=Date.now()},readdir(w){return[".","..",...Object.keys(w.contents)]},symlink(w,I,B){var K=we.createNode(w,I,41471,0);return K.link=B,K},readlink(w){if(!d.isLink(w.mode))throw new d.ErrnoError(28);return w.link}},stream_ops:{read(w,I,B,K,oe){var Se=w.node.contents;if(oe>=w.node.usedBytes)return 0;var Te=Math.min(w.node.usedBytes-oe,K);if(Te>8&&Se.subarray)I.set(Se.subarray(oe,oe+Te),B);else for(var Ie=0;Ie0||B+I{var I=await x(w);return new Uint8Array(I)},ft=(...w)=>d.createDataFile(...w),Yt=[],$t=(w,I,B,K)=>{typeof Browser<"u"&&Browser.init();var oe=!1;return Yt.forEach(Se=>{oe||Se.canHandle(I)&&(Se.handle(w,I,B,K),oe=!0)}),oe},Wn=(w,I,B,K,oe,Se,Te,Ie,rt,Ut)=>{var ln=I?le.resolve(ne.join2(w,I)):w,gn=`cp ${ln}`;function hn(un){function Dt(Kn){Ut?.(),Ie||ft(w,I,Kn,K,oe,rt),Se?.(),zt(gn)}$t(un,ln,Dt,()=>{Te?.(),zt(gn)})||Dt(un)}jt(gn),typeof B=="string"?Rt(B).then(hn,Te):hn(B)},Un=w=>{var I={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},B=I[w];if(typeof B>"u")throw new Error(`Unknown file open mode: ${w}`);return B},Ti=(w,I)=>{var B=0;return w&&(B|=365),I&&(B|=146),B},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(w){this.errno=w}},FSStream:class{shared={};get object(){return this.node}set object(w){this.node=w}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(w){this.shared.flags=w}get position(){return this.shared.position}set position(w){this.shared.position=w}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(w,I,B,K){w||(w=this),this.parent=w,this.mount=w.mount,this.id=d.nextInode++,this.name=I,this.mode=B,this.rdev=K,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(w){w?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(w){w?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(w,I={}){if(!w)throw new d.ErrnoError(44);I.follow_mount??=!0,ne.isAbs(w)||(w=d.cwd()+"/"+w);e:for(var B=0;B<40;B++){for(var K=w.split("/").filter(Ut=>!!Ut),oe=d.root,Se="/",Te=0;Te>>0)%d.nameTable.length},hashAddNode(w){var I=d.hashName(w.parent.id,w.name);w.name_next=d.nameTable[I],d.nameTable[I]=w},hashRemoveNode(w){var I=d.hashName(w.parent.id,w.name);if(d.nameTable[I]===w)d.nameTable[I]=w.name_next;else for(var B=d.nameTable[I];B;){if(B.name_next===w){B.name_next=w.name_next;break}B=B.name_next}},lookupNode(w,I){var B=d.mayLookup(w);if(B)throw new d.ErrnoError(B);for(var K=d.hashName(w.id,I),oe=d.nameTable[K];oe;oe=oe.name_next){var Se=oe.name;if(oe.parent.id===w.id&&Se===I)return oe}return d.lookup(w,I)},createNode(w,I,B,K){var oe=new d.FSNode(w,I,B,K);return d.hashAddNode(oe),oe},destroyNode(w){d.hashRemoveNode(w)},isRoot(w){return w===w.parent},isMountpoint(w){return!!w.mounted},isFile(w){return(w&61440)===32768},isDir(w){return(w&61440)===16384},isLink(w){return(w&61440)===40960},isChrdev(w){return(w&61440)===8192},isBlkdev(w){return(w&61440)===24576},isFIFO(w){return(w&61440)===4096},isSocket(w){return(w&49152)===49152},flagsToPermissionString(w){var I=["r","w","rw"][w&3];return w&512&&(I+="w"),I},nodePermissions(w,I){return d.ignorePermissions?0:I.includes("r")&&!(w.mode&292)||I.includes("w")&&!(w.mode&146)||I.includes("x")&&!(w.mode&73)?2:0},mayLookup(w){if(!d.isDir(w.mode))return 54;var I=d.nodePermissions(w,"x");return I||(w.node_ops.lookup?0:2)},mayCreate(w,I){if(!d.isDir(w.mode))return 54;try{var B=d.lookupNode(w,I);return 20}catch{}return d.nodePermissions(w,"wx")},mayDelete(w,I,B){var K;try{K=d.lookupNode(w,I)}catch(Se){return Se.errno}var oe=d.nodePermissions(w,"wx");if(oe)return oe;if(B){if(!d.isDir(K.mode))return 54;if(d.isRoot(K)||d.getPath(K)===d.cwd())return 10}else if(d.isDir(K.mode))return 31;return 0},mayOpen(w,I){return w?d.isLink(w.mode)?32:d.isDir(w.mode)&&(d.flagsToPermissionString(I)!=="r"||I&576)?31:d.nodePermissions(w,d.flagsToPermissionString(I)):44},checkOpExists(w,I){if(!w)throw new d.ErrnoError(I);return w},MAX_OPEN_FDS:4096,nextfd(){for(var w=0;w<=d.MAX_OPEN_FDS;w++)if(!d.streams[w])return w;throw new d.ErrnoError(33)},getStreamChecked(w){var I=d.getStream(w);if(!I)throw new d.ErrnoError(8);return I},getStream:w=>d.streams[w],createStream(w,I=-1){return w=Object.assign(new d.FSStream,w),I==-1&&(I=d.nextfd()),w.fd=I,d.streams[I]=w,w},closeStream(w){d.streams[w]=null},dupStream(w,I=-1){var B=d.createStream(w,I);return B.stream_ops?.dup?.(B),B},doSetAttr(w,I,B){var K=w?.stream_ops.setattr,oe=K?w:I;K??=I.node_ops.setattr,d.checkOpExists(K,63),K(oe,B)},chrdev_stream_ops:{open(w){var I=d.getDevice(w.node.rdev);w.stream_ops=I.stream_ops,w.stream_ops.open?.(w)},llseek(){throw new d.ErrnoError(70)}},major:w=>w>>8,minor:w=>w&255,makedev:(w,I)=>w<<8|I,registerDevice(w,I){d.devices[w]={stream_ops:I}},getDevice:w=>d.devices[w],getMounts(w){for(var I=[],B=[w];B.length;){var K=B.pop();I.push(K),B.push(...K.mounts)}return I},syncfs(w,I){typeof w=="function"&&(I=w,w=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var B=d.getMounts(d.root.mount),K=0;function oe(Te){return d.syncFSRequests--,I(Te)}function Se(Te){if(Te)return Se.errored?void 0:(Se.errored=!0,oe(Te));++K>=B.length&&oe(null)}B.forEach(Te=>{if(!Te.type.syncfs)return Se(null);Te.type.syncfs(Te,w,Se)})},mount(w,I,B){var K=B==="/",oe=!B,Se;if(K&&d.root)throw new d.ErrnoError(10);if(!K&&!oe){var Te=d.lookupPath(B,{follow_mount:!1});if(B=Te.path,Se=Te.node,d.isMountpoint(Se))throw new d.ErrnoError(10);if(!d.isDir(Se.mode))throw new d.ErrnoError(54)}var Ie={type:w,opts:I,mountpoint:B,mounts:[]},rt=w.mount(Ie);return rt.mount=Ie,Ie.root=rt,K?d.root=rt:Se&&(Se.mounted=Ie,Se.mount&&Se.mount.mounts.push(Ie)),rt},unmount(w){var I=d.lookupPath(w,{follow_mount:!1});if(!d.isMountpoint(I.node))throw new d.ErrnoError(28);var B=I.node,K=B.mounted,oe=d.getMounts(K);Object.keys(d.nameTable).forEach(Te=>{for(var Ie=d.nameTable[Te];Ie;){var rt=Ie.name_next;oe.includes(Ie.mount)&&d.destroyNode(Ie),Ie=rt}}),B.mounted=null;var Se=B.mount.mounts.indexOf(K);B.mount.mounts.splice(Se,1)},lookup(w,I){return w.node_ops.lookup(w,I)},mknod(w,I,B){var K=d.lookupPath(w,{parent:!0}),oe=K.node,Se=ne.basename(w);if(!Se)throw new d.ErrnoError(28);if(Se==="."||Se==="..")throw new d.ErrnoError(20);var Te=d.mayCreate(oe,Se);if(Te)throw new d.ErrnoError(Te);if(!oe.node_ops.mknod)throw new d.ErrnoError(63);return oe.node_ops.mknod(oe,Se,I,B)},statfs(w){return d.statfsNode(d.lookupPath(w,{follow:!0}).node)},statfsStream(w){return d.statfsNode(w.node)},statfsNode(w){var I={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return w.node_ops.statfs&&Object.assign(I,w.node_ops.statfs(w.mount.opts.root)),I},create(w,I=438){return I&=4095,I|=32768,d.mknod(w,I,0)},mkdir(w,I=511){return I&=1023,I|=16384,d.mknod(w,I,0)},mkdirTree(w,I){var B=w.split("/"),K="";for(var oe of B)if(oe){(K||ne.isAbs(w))&&(K+="/"),K+=oe;try{d.mkdir(K,I)}catch(Se){if(Se.errno!=20)throw Se}}},mkdev(w,I,B){return typeof B>"u"&&(B=I,I=438),I|=8192,d.mknod(w,I,B)},symlink(w,I){if(!le.resolve(w))throw new d.ErrnoError(44);var B=d.lookupPath(I,{parent:!0}),K=B.node;if(!K)throw new d.ErrnoError(44);var oe=ne.basename(I),Se=d.mayCreate(K,oe);if(Se)throw new d.ErrnoError(Se);if(!K.node_ops.symlink)throw new d.ErrnoError(63);return K.node_ops.symlink(K,oe,w)},rename(w,I){var B=ne.dirname(w),K=ne.dirname(I),oe=ne.basename(w),Se=ne.basename(I),Te,Ie,rt;if(Te=d.lookupPath(w,{parent:!0}),Ie=Te.node,Te=d.lookupPath(I,{parent:!0}),rt=Te.node,!Ie||!rt)throw new d.ErrnoError(44);if(Ie.mount!==rt.mount)throw new d.ErrnoError(75);var Ut=d.lookupNode(Ie,oe),ln=le.relative(w,K);if(ln.charAt(0)!==".")throw new d.ErrnoError(28);if(ln=le.relative(I,B),ln.charAt(0)!==".")throw new d.ErrnoError(55);var gn;try{gn=d.lookupNode(rt,Se)}catch{}if(Ut!==gn){var hn=d.isDir(Ut.mode),un=d.mayDelete(Ie,oe,hn);if(un)throw new d.ErrnoError(un);if(un=gn?d.mayDelete(rt,Se,hn):d.mayCreate(rt,Se),un)throw new d.ErrnoError(un);if(!Ie.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(Ut)||gn&&d.isMountpoint(gn))throw new d.ErrnoError(10);if(rt!==Ie&&(un=d.nodePermissions(Ie,"w"),un))throw new d.ErrnoError(un);d.hashRemoveNode(Ut);try{Ie.node_ops.rename(Ut,rt,Se),Ut.parent=rt}catch(Dt){throw Dt}finally{d.hashAddNode(Ut)}}},rmdir(w){var I=d.lookupPath(w,{parent:!0}),B=I.node,K=ne.basename(w),oe=d.lookupNode(B,K),Se=d.mayDelete(B,K,!0);if(Se)throw new d.ErrnoError(Se);if(!B.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(oe))throw new d.ErrnoError(10);B.node_ops.rmdir(B,K),d.destroyNode(oe)},readdir(w){var I=d.lookupPath(w,{follow:!0}),B=I.node,K=d.checkOpExists(B.node_ops.readdir,54);return K(B)},unlink(w){var I=d.lookupPath(w,{parent:!0}),B=I.node;if(!B)throw new d.ErrnoError(44);var K=ne.basename(w),oe=d.lookupNode(B,K),Se=d.mayDelete(B,K,!1);if(Se)throw new d.ErrnoError(Se);if(!B.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(oe))throw new d.ErrnoError(10);B.node_ops.unlink(B,K),d.destroyNode(oe)},readlink(w){var I=d.lookupPath(w),B=I.node;if(!B)throw new d.ErrnoError(44);if(!B.node_ops.readlink)throw new d.ErrnoError(28);return B.node_ops.readlink(B)},stat(w,I){var B=d.lookupPath(w,{follow:!I}),K=B.node,oe=d.checkOpExists(K.node_ops.getattr,63);return oe(K)},fstat(w){var I=d.getStreamChecked(w),B=I.node,K=I.stream_ops.getattr,oe=K?I:B;return K??=B.node_ops.getattr,d.checkOpExists(K,63),K(oe)},lstat(w){return d.stat(w,!0)},doChmod(w,I,B,K){d.doSetAttr(w,I,{mode:B&4095|I.mode&-4096,ctime:Date.now(),dontFollow:K})},chmod(w,I,B){var K;if(typeof w=="string"){var oe=d.lookupPath(w,{follow:!B});K=oe.node}else K=w;d.doChmod(null,K,I,B)},lchmod(w,I){d.chmod(w,I,!0)},fchmod(w,I){var B=d.getStreamChecked(w);d.doChmod(B,B.node,I,!1)},doChown(w,I,B){d.doSetAttr(w,I,{timestamp:Date.now(),dontFollow:B})},chown(w,I,B,K){var oe;if(typeof w=="string"){var Se=d.lookupPath(w,{follow:!K});oe=Se.node}else oe=w;d.doChown(null,oe,K)},lchown(w,I,B){d.chown(w,I,B,!0)},fchown(w,I,B){var K=d.getStreamChecked(w);d.doChown(K,K.node,!1)},doTruncate(w,I,B){if(d.isDir(I.mode))throw new d.ErrnoError(31);if(!d.isFile(I.mode))throw new d.ErrnoError(28);var K=d.nodePermissions(I,"w");if(K)throw new d.ErrnoError(K);d.doSetAttr(w,I,{size:B,timestamp:Date.now()})},truncate(w,I){if(I<0)throw new d.ErrnoError(28);var B;if(typeof w=="string"){var K=d.lookupPath(w,{follow:!0});B=K.node}else B=w;d.doTruncate(null,B,I)},ftruncate(w,I){var B=d.getStreamChecked(w);if(I<0||(B.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(B,B.node,I)},utime(w,I,B){var K=d.lookupPath(w,{follow:!0}),oe=K.node,Se=d.checkOpExists(oe.node_ops.setattr,63);Se(oe,{atime:I,mtime:B})},open(w,I,B=438){if(w==="")throw new d.ErrnoError(44);I=typeof I=="string"?Un(I):I,I&64?B=B&4095|32768:B=0;var K,oe;if(typeof w=="object")K=w;else{oe=w.endsWith("/");var Se=d.lookupPath(w,{follow:!(I&131072),noent_okay:!0});K=Se.node,w=Se.path}var Te=!1;if(I&64)if(K){if(I&128)throw new d.ErrnoError(20)}else{if(oe)throw new d.ErrnoError(31);K=d.mknod(w,B|511,0),Te=!0}if(!K)throw new d.ErrnoError(44);if(d.isChrdev(K.mode)&&(I&=-513),I&65536&&!d.isDir(K.mode))throw new d.ErrnoError(54);if(!Te){var Ie=d.mayOpen(K,I);if(Ie)throw new d.ErrnoError(Ie)}I&512&&!Te&&d.truncate(K,0),I&=-131713;var rt=d.createStream({node:K,path:d.getPath(K),flags:I,seekable:!0,position:0,stream_ops:K.stream_ops,ungotten:[],error:!1});return rt.stream_ops.open&&rt.stream_ops.open(rt),Te&&d.chmod(K,B&511),t.logReadFiles&&!(I&1)&&(w in d.readFiles||(d.readFiles[w]=1)),rt},close(w){if(d.isClosed(w))throw new d.ErrnoError(8);w.getdents&&(w.getdents=null);try{w.stream_ops.close&&w.stream_ops.close(w)}catch(I){throw I}finally{d.closeStream(w.fd)}w.fd=null},isClosed(w){return w.fd===null},llseek(w,I,B){if(d.isClosed(w))throw new d.ErrnoError(8);if(!w.seekable||!w.stream_ops.llseek)throw new d.ErrnoError(70);if(B!=0&&B!=1&&B!=2)throw new d.ErrnoError(28);return w.position=w.stream_ops.llseek(w,I,B),w.ungotten=[],w.position},read(w,I,B,K,oe){if(K<0||oe<0)throw new d.ErrnoError(28);if(d.isClosed(w))throw new d.ErrnoError(8);if((w.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(w.node.mode))throw new d.ErrnoError(31);if(!w.stream_ops.read)throw new d.ErrnoError(28);var Se=typeof oe<"u";if(!Se)oe=w.position;else if(!w.seekable)throw new d.ErrnoError(70);var Te=w.stream_ops.read(w,I,B,K,oe);return Se||(w.position+=Te),Te},write(w,I,B,K,oe,Se){if(K<0||oe<0)throw new d.ErrnoError(28);if(d.isClosed(w))throw new d.ErrnoError(8);if((w.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(w.node.mode))throw new d.ErrnoError(31);if(!w.stream_ops.write)throw new d.ErrnoError(28);w.seekable&&w.flags&1024&&d.llseek(w,0,2);var Te=typeof oe<"u";if(!Te)oe=w.position;else if(!w.seekable)throw new d.ErrnoError(70);var Ie=w.stream_ops.write(w,I,B,K,oe,Se);return Te||(w.position+=Ie),Ie},mmap(w,I,B,K,oe){if((K&2)!==0&&(oe&2)===0&&(w.flags&2097155)!==2)throw new d.ErrnoError(2);if((w.flags&2097155)===1)throw new d.ErrnoError(2);if(!w.stream_ops.mmap)throw new d.ErrnoError(43);if(!I)throw new d.ErrnoError(28);return w.stream_ops.mmap(w,I,B,K,oe)},msync(w,I,B,K,oe){return w.stream_ops.msync?w.stream_ops.msync(w,I,B,K,oe):0},ioctl(w,I,B){if(!w.stream_ops.ioctl)throw new d.ErrnoError(59);return w.stream_ops.ioctl(w,I,B)},readFile(w,I={}){if(I.flags=I.flags||0,I.encoding=I.encoding||"binary",I.encoding!=="utf8"&&I.encoding!=="binary")throw new Error(`Invalid encoding type "${I.encoding}"`);var B,K=d.open(w,I.flags),oe=d.stat(w),Se=oe.size,Te=new Uint8Array(Se);return d.read(K,Te,0,Se,0),I.encoding==="utf8"?B=be(Te):I.encoding==="binary"&&(B=Te),d.close(K),B},writeFile(w,I,B={}){B.flags=B.flags||577;var K=d.open(w,B.flags,B.mode);if(typeof I=="string"){var oe=new Uint8Array(Oe(I)+1),Se=je(I,oe,0,oe.length);d.write(K,oe,0,Se,void 0,B.canOwn)}else if(ArrayBuffer.isView(I))d.write(K,I,0,I.byteLength,void 0,B.canOwn);else throw new Error("Unsupported data type");d.close(K)},cwd:()=>d.currentPath,chdir(w){var I=d.lookupPath(w,{follow:!0});if(I.node===null)throw new d.ErrnoError(44);if(!d.isDir(I.node.mode))throw new d.ErrnoError(54);var B=d.nodePermissions(I.node,"x");if(B)throw new d.ErrnoError(B);d.currentPath=I.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(K,oe,Se,Te,Ie)=>Te,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var w=new Uint8Array(1024),I=0,B=()=>(I===0&&(ie(w),I=w.byteLength),w[--I]);d.createDevice("/dev","random",B),d.createDevice("/dev","urandom",B),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var w=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var I=d.createNode(w,"fd",16895,73);return I.stream_ops={llseek:we.stream_ops.llseek},I.node_ops={lookup(B,K){var oe=+K,Se=d.getStreamChecked(oe),Te={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Se.path},id:oe+1};return Te.parent=Te,Te},readdir(){return Array.from(d.streams.entries()).filter(([B,K])=>K).map(([B,K])=>B.toString())}},I}},{},"/proc/self/fd")},createStandardStreams(w,I,B){w?d.createDevice("/dev","stdin",w):d.symlink("/dev/tty","/dev/stdin"),I?d.createDevice("/dev","stdout",null,I):d.symlink("/dev/tty","/dev/stdout"),B?d.createDevice("/dev","stderr",null,B):d.symlink("/dev/tty1","/dev/stderr");var K=d.open("/dev/stdin",0),oe=d.open("/dev/stdout",1),Se=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(w,I,B){d.initialized=!0,w??=t.stdin,I??=t.stdout,B??=t.stderr,d.createStandardStreams(w,I,B)},quit(){d.initialized=!1;for(var w of d.streams)w&&d.close(w)},findObject(w,I){var B=d.analyzePath(w,I);return B.exists?B.object:null},analyzePath(w,I){try{var B=d.lookupPath(w,{follow:!I});w=B.path}catch{}var K={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=d.lookupPath(w,{parent:!0});K.parentExists=!0,K.parentPath=B.path,K.parentObject=B.node,K.name=ne.basename(w),B=d.lookupPath(w,{follow:!I}),K.exists=!0,K.path=B.path,K.object=B.node,K.name=B.node.name,K.isRoot=B.path==="/"}catch(oe){K.error=oe.errno}return K},createPath(w,I,B,K){w=typeof w=="string"?w:d.getPath(w);for(var oe=I.split("/").reverse();oe.length;){var Se=oe.pop();if(Se){var Te=ne.join2(w,Se);try{d.mkdir(Te)}catch(Ie){if(Ie.errno!=20)throw Ie}w=Te}}return Te},createFile(w,I,B,K,oe){var Se=ne.join2(typeof w=="string"?w:d.getPath(w),I),Te=Ti(K,oe);return d.create(Se,Te)},createDataFile(w,I,B,K,oe,Se){var Te=I;w&&(w=typeof w=="string"?w:d.getPath(w),Te=I?ne.join2(w,I):w);var Ie=Ti(K,oe),rt=d.create(Te,Ie);if(B){if(typeof B=="string"){for(var Ut=new Array(B.length),ln=0,gn=B.length;lnthis.length-1||un<0)){var Dt=un%this.chunkSize,Kn=un/this.chunkSize|0;return this.getter(Kn)[Dt]}}setDataGetter(un){this.getter=un}cacheLength(){var un=new XMLHttpRequest;if(un.open("HEAD",B,!1),un.send(null),!(un.status>=200&&un.status<300||un.status===304))throw new Error("Couldn't load "+B+". Status: "+un.status);var Dt=Number(un.getResponseHeader("Content-length")),Kn,Qn=(Kn=un.getResponseHeader("Accept-Ranges"))&&Kn==="bytes",ea=(Kn=un.getResponseHeader("Content-Encoding"))&&Kn==="gzip",La=1024*1024;Qn||(La=Dt);var Za=(ta,Ks)=>{if(ta>Ks)throw new Error("invalid range ("+ta+", "+Ks+") or no bytes requested!");if(Ks>Dt-1)throw new Error("only "+Dt+" bytes available! programmer error!");var T=new XMLHttpRequest;if(T.open("GET",B,!1),Dt!==La&&T.setRequestHeader("Range","bytes="+ta+"-"+Ks),T.responseType="arraybuffer",T.overrideMimeType&&T.overrideMimeType("text/plain; charset=x-user-defined"),T.send(null),!(T.status>=200&&T.status<300||T.status===304))throw new Error("Couldn't load "+B+". Status: "+T.status);return T.response!==void 0?new Uint8Array(T.response||[]):Ct(T.responseText||"",!0)},pc=this;pc.setDataGetter(ta=>{var Ks=ta*La,T=(ta+1)*La-1;if(T=Math.min(T,Dt-1),typeof pc.chunks[ta]>"u"&&(pc.chunks[ta]=Za(Ks,T)),typeof pc.chunks[ta]>"u")throw new Error("doXHR failed!");return pc.chunks[ta]}),(ea||!Dt)&&(La=Dt=1,Dt=this.getter(0).length,La=Dt,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Dt,this._chunkSize=La,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Te=new Se,Ie={isDevice:!1,contents:Te}}else var Ie={isDevice:!1,url:B};var rt=d.createFile(w,I,Ie,K,oe);Ie.contents?rt.contents=Ie.contents:Ie.url&&(rt.contents=null,rt.url=Ie.url),Object.defineProperties(rt,{usedBytes:{get:function(){return this.contents.length}}});var Ut={},ln=Object.keys(rt.stream_ops);ln.forEach(hn=>{var un=rt.stream_ops[hn];Ut[hn]=(...Dt)=>(d.forceLoadFile(rt),un(...Dt))});function gn(hn,un,Dt,Kn,Qn){var ea=hn.node.contents;if(Qn>=ea.length)return 0;var La=Math.min(ea.length-Qn,Kn);if(ea.slice)for(var Za=0;Za(d.forceLoadFile(rt),gn(hn,un,Dt,Kn,Qn)),Ut.mmap=(hn,un,Dt,Kn,Qn)=>{d.forceLoadFile(rt);var ea=at(un);if(!ea)throw new d.ErrnoError(48);return gn(hn,Q,ea,un,Dt),{ptr:ea,allocated:!0}},rt.stream_ops=Ut,rt}},Ke={DEFAULT_POLLMASK:5,calculateAt(w,I,B){if(ne.isAbs(I))return I;var K;if(w===-100)K=d.cwd();else{var oe=Ke.getStreamFromFD(w);K=oe.path}if(I.length==0){if(!B)throw new d.ErrnoError(44);return K}return K+"/"+I},writeStat(w,I){j[w>>2]=I.dev,j[w+4>>2]=I.mode,he[w+8>>2]=I.nlink,j[w+12>>2]=I.uid,j[w+16>>2]=I.gid,j[w+20>>2]=I.rdev,Pe=[I.size>>>0,(_e=I.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+24>>2]=Pe[0],j[w+28>>2]=Pe[1],j[w+32>>2]=4096,j[w+36>>2]=I.blocks;var B=I.atime.getTime(),K=I.mtime.getTime(),oe=I.ctime.getTime();return Pe=[Math.floor(B/1e3)>>>0,(_e=Math.floor(B/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+40>>2]=Pe[0],j[w+44>>2]=Pe[1],he[w+48>>2]=B%1e3*1e3*1e3,Pe=[Math.floor(K/1e3)>>>0,(_e=Math.floor(K/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+56>>2]=Pe[0],j[w+60>>2]=Pe[1],he[w+64>>2]=K%1e3*1e3*1e3,Pe=[Math.floor(oe/1e3)>>>0,(_e=Math.floor(oe/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+72>>2]=Pe[0],j[w+76>>2]=Pe[1],he[w+80>>2]=oe%1e3*1e3*1e3,Pe=[I.ino>>>0,(_e=I.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[w+88>>2]=Pe[0],j[w+92>>2]=Pe[1],0},writeStatFs(w,I){j[w+4>>2]=I.bsize,j[w+40>>2]=I.bsize,j[w+8>>2]=I.blocks,j[w+12>>2]=I.bfree,j[w+16>>2]=I.bavail,j[w+20>>2]=I.files,j[w+24>>2]=I.ffree,j[w+28>>2]=I.fsid,j[w+44>>2]=I.flags,j[w+36>>2]=I.namelen},doMsync(w,I,B,K,oe){if(!d.isFile(I.node.mode))throw new d.ErrnoError(43);if(K&2)return 0;var Se=H.slice(w,w+B);d.msync(I,Se,oe,B,K)},getStreamFromFD(w){var I=d.getStreamChecked(w);return I},varargs:void 0,getStr(w){var I=U(w);return I}};function ul(w,I){try{return w=Ke.getStr(w),d.chmod(w,I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function us(w,I,B,K){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),B&-8)return-28;var oe=d.lookupPath(I,{follow:!0}),Se=oe.node;if(!Se)return-44;var Te="";return B&4&&(Te+="r"),B&2&&(Te+="w"),B&1&&(Te+="x"),Te&&d.nodePermissions(Se,Te)?-2:0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function Fr(w,I){try{return d.fchmod(w,I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function Ps(w,I,B){try{return d.fchown(w,I,B),0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}var er=()=>{var w=j[+Ke.varargs>>2];return Ke.varargs+=4,w},cs=er;function Pr(w,I,B){Ke.varargs=B;try{var K=Ke.getStreamFromFD(w);switch(I){case 0:{var oe=er();if(oe<0)return-28;for(;d.streams[oe];)oe++;var Se;return Se=d.dupStream(K,oe),Se.fd}case 1:case 2:return 0;case 3:return K.flags;case 4:{var oe=er();return K.flags|=oe,0}case 12:{var oe=cs(),Te=0;return Z[oe+Te>>1]=2,0}case 13:case 14:return 0}return-28}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function fs(w,I){try{return Ke.writeStat(I,d.fstat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var hi=(w,I)=>I+2097152>>>0<4194305-!!w?(w>>>0)+I*4294967296:NaN;function yo(w,I,B){var K=hi(I,B);try{return isNaN(K)?-61:(d.ftruncate(w,K),0)}catch(oe){if(typeof d>"u"||oe.name!=="ErrnoError")throw oe;return-oe.errno}}var wn=(w,I,B)=>je(w,H,I,B);function Us(w,I){try{if(I===0)return-28;var B=d.cwd(),K=Oe(B)+1;return I"u"||oe.name!=="ErrnoError")throw oe;return-oe.errno}}function Xa(w,I){try{return w=Ke.getStr(w),Ke.writeStat(I,d.lstat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function $r(w,I,B){try{return I=Ke.getStr(I),I=Ke.calculateAt(w,I),d.mkdir(I,B,0),0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}function Jr(w,I,B,K){try{I=Ke.getStr(I);var oe=K&256,Se=K&4096;return K=K&-6401,I=Ke.calculateAt(w,I,Se),Ke.writeStat(B,oe?d.lstat(I):d.stat(I))}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return-Te.errno}}function ds(w,I,B,K){Ke.varargs=K;try{I=Ke.getStr(I),I=Ke.calculateAt(w,I);var oe=K?er():0;return d.open(I,B,oe).fd}catch(Se){if(typeof d>"u"||Se.name!=="ErrnoError")throw Se;return-Se.errno}}function bo(w,I,B,K){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),K<=0)return-28;var oe=d.readlink(I),Se=Math.min(K,Oe(oe)),Te=Q[B+Se];return wn(oe,B,K+1),Q[B+Se]=Te,Se}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return-Ie.errno}}function hs(w){try{return w=Ke.getStr(w),d.rmdir(w),0}catch(I){if(typeof d>"u"||I.name!=="ErrnoError")throw I;return-I.errno}}function ps(w,I){try{return w=Ke.getStr(w),Ke.writeStat(I,d.stat(w))}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function So(w,I,B){try{if(I=Ke.getStr(I),I=Ke.calculateAt(w,I),!B)d.unlink(I);else if(B===512)d.rmdir(I);else return-28;return 0}catch(K){if(typeof d>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}var ae=w=>he[w>>2]+j[w+4>>2]*4294967296;function Fe(w,I,B,K){try{I=Ke.getStr(I),I=Ke.calculateAt(w,I,!0);var oe=Date.now(),Se,Te;if(!B)Se=oe,Te=oe;else{var Ie=ae(B),rt=j[B+8>>2];rt==1073741823?Se=oe:rt==1073741822?Se=null:Se=Ie*1e3+rt/1e6,B+=16,Ie=ae(B),rt=j[B+8>>2],rt==1073741823?Te=oe:rt==1073741822?Te=null:Te=Ie*1e3+rt/1e6}return(Te??Se)!==null&&d.utime(I,Se,Te),0}catch(Ut){if(typeof d>"u"||Ut.name!=="ErrnoError")throw Ut;return-Ut.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=w=>w%4===0&&(w%100!==0||w%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=w=>{var I=It(w.getFullYear()),B=I?Bt:wt,K=B[w.getMonth()]+w.getDate()-1;return K};function Kt(w,I,B){var K=hi(w,I),oe=new Date(K*1e3);j[B>>2]=oe.getSeconds(),j[B+4>>2]=oe.getMinutes(),j[B+8>>2]=oe.getHours(),j[B+12>>2]=oe.getDate(),j[B+16>>2]=oe.getMonth(),j[B+20>>2]=oe.getFullYear()-1900,j[B+24>>2]=oe.getDay();var Se=Nt(oe)|0;j[B+28>>2]=Se,j[B+36>>2]=-(oe.getTimezoneOffset()*60);var Te=new Date(oe.getFullYear(),0,1),Ie=new Date(oe.getFullYear(),6,1).getTimezoneOffset(),rt=Te.getTimezoneOffset(),Ut=(Ie!=rt&&oe.getTimezoneOffset()==Math.min(rt,Ie))|0;j[B+32>>2]=Ut}function yn(w,I,B,K,oe,Se,Te,Ie){var rt=hi(oe,Se);try{var Ut=Ke.getStreamFromFD(K),ln=d.mmap(Ut,w,rt,I,B),gn=ln.ptr;return j[Te>>2]=ln.allocated,he[Ie>>2]=gn,0}catch(hn){if(typeof d>"u"||hn.name!=="ErrnoError")throw hn;return-hn.errno}}function Sn(w,I,B,K,oe,Se,Te){var Ie=hi(Se,Te);try{var rt=Ke.getStreamFromFD(oe);B&2&&Ke.doMsync(w,rt,I,K,Ie)}catch(Ut){if(typeof d>"u"||Ut.name!=="ErrnoError")throw Ut;return-Ut.errno}}var _t={},En=w=>{if(w instanceof dt||w=="unwind")return G;h(1,w)},ri=()=>fn||Be>0,Hn=w=>{G=w,ri()||(t.onExit?.(w),q=!0),h(w,new dt(w))},On=(w,I)=>{G=w,Hn(w)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(w){En(w)}},Oi=w=>{if(!q)try{w(),Pt()}catch(I){En(I)}},xn=()=>performance.now(),ai=(w,I)=>{if(_t[w]&&(clearTimeout(_t[w].id),delete _t[w]),!I)return 0;var B=setTimeout(()=>{delete _t[w],Oi(()=>Ld(w,xn()))},I);return _t[w]={id:B,timeout_ms:I},0},Vn=(w,I,B,K)=>{var oe=new Date().getFullYear(),Se=new Date(oe,0,1),Te=new Date(oe,6,1),Ie=Se.getTimezoneOffset(),rt=Te.getTimezoneOffset(),Ut=Math.max(Ie,rt);he[w>>2]=Ut*60,j[I>>2]=+(Ie!=rt);var ln=un=>{var Dt=un>=0?"-":"+",Kn=Math.abs(un),Qn=String(Math.floor(Kn/60)).padStart(2,"0"),ea=String(Kn%60).padStart(2,"0");return`UTC${Dt}${Qn}${ea}`},gn=ln(Ie),hn=ln(rt);rtDate.now(),Ur=()=>2147483648,zn=w=>{var I=k.buffer,B=(w-I.byteLength+65535)/65536|0;try{return k.grow(B),Ne(),1}catch{}},vi=w=>{var I=H.length;w>>>=0;var B=Ur();if(w>B)return!1;for(var K=1;K<=4;K*=2){var oe=I*(1+.2/K);oe=Math.min(oe,w+100663296);var Se=Math.min(B,bt(Math.max(w,oe),65536)),Te=zn(Se);if(Te)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var w=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",I={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:w,_:jn()};for(var B in pi)pi[B]===void 0?delete I[B]:I[B]=pi[B];var K=[];for(var B in I)K.push(`${B}=${I[B]}`);si.strings=K}return si.strings},da=(w,I)=>{var B=0,K=0;for(var oe of si()){var Se=I+B;he[w+K>>2]=Se,B+=wn(oe,Se,1/0)+1,K+=4}return 0},Eo=(w,I)=>{var B=si();he[w>>2]=B.length;var K=0;for(var oe of B)K+=Oe(oe)+1;return he[I>>2]=K,0};function Vu(w){try{var I=Ke.getStreamFromFD(w);return d.close(I),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}function Gu(w,I){try{var B=0,K=0,oe=0,Se=Ke.getStreamFromFD(w),Te=Se.tty?2:d.isDir(Se.mode)?3:d.isLink(Se.mode)?7:4;return Q[I]=Te,Z[I+2>>1]=oe,Pe=[B>>>0,(_e=B,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[I+8>>2]=Pe[0],j[I+12>>2]=Pe[1],Pe=[K>>>0,(_e=K,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[I+16>>2]=Pe[0],j[I+20>>2]=Pe[1],0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return Ie.errno}}var Wu=(w,I,B,K)=>{for(var oe=0,Se=0;Se>2],Ie=he[I+4>>2];I+=8;var rt=d.read(w,Q,Te,Ie,K);if(rt<0)return-1;if(oe+=rt,rt>2]=Se,0}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return Te.errno}}function Qu(w,I,B,K,oe){var Se=hi(I,B);try{if(isNaN(Se))return 61;var Te=Ke.getStreamFromFD(w);return d.llseek(Te,Se,K),Pe=[Te.position>>>0,(_e=Te.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[oe>>2]=Pe[0],j[oe+4>>2]=Pe[1],Te.getdents&&Se===0&&K===0&&(Te.getdents=null),0}catch(Ie){if(typeof d>"u"||Ie.name!=="ErrnoError")throw Ie;return Ie.errno}}function wo(w){try{var I=Ke.getStreamFromFD(w);return I.stream_ops?.fsync?I.stream_ops.fsync(I):0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}var Xu=(w,I,B,K)=>{for(var oe=0,Se=0;Se>2],Ie=he[I+4>>2];I+=8;var rt=d.write(w,Q,Te,Ie,K);if(rt<0)return-1;if(oe+=rt,rt>2]=Se,0}catch(Te){if(typeof d>"u"||Te.name!=="ErrnoError")throw Te;return Te.errno}}var it=function(){let w=typeof Asyncify=="object"?Asyncify.handleAsync.bind(Asyncify):null;t.handleAsync=w;let I=new Map;t.setCallback=(B,K)=>I.set(B,K),t.getCallback=B=>I.get(B),t.deleteCallback=B=>I.delete(B),it=function(B,K,...oe){let Se=I.get(K),Te=null,Ie=typeof Se=="function"?Se:Se[Te=U(oe.shift())];if(B){if(w)return w(()=>Ie.apply(Se,oe));throw new Error("Synchronous WebAssembly cannot call async function")}let rt=Ie.apply(Se,oe);if(typeof rt?.then=="function")throw console.error("unexpected Promise",Ie),new Error(`${Te} unexpectedly returned a Promise`);return rt}};function Yu(...w){return it(!1,...w)}function cl(...w){return it(!0,...w)}function tu(...w){return it(!1,...w)}function fl(...w){return it(!0,...w)}function Ku(...w){return it(!1,...w)}function dl(...w){return it(!0,...w)}function Zu(...w){return it(!1,...w)}function hl(...w){return it(!0,...w)}function Jc(...w){return it(!1,...w)}function pl(...w){return it(!0,...w)}function zs(...w){return it(!1,...w)}function ml(...w){return it(!0,...w)}function _l(...w){return it(!1,...w)}function qs(...w){return it(!0,...w)}function $u(...w){return it(!1,...w)}function xo(...w){return it(!0,...w)}function ef(...w){return it(!1,...w)}function gl(...w){return it(!0,...w)}function Ju(...w){return it(!1,...w)}function vl(...w){return it(!0,...w)}function ec(...w){return it(!1,...w)}function yl(...w){return it(!0,...w)}function nu(...w){return it(!1,...w)}function bl(...w){return it(!0,...w)}function tc(...w){return it(!1,...w)}function To(...w){return it(!0,...w)}function nc(w,I){try{return ie(H.subarray(w,w+I)),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return B.errno}}function iu(...w){return it(!1,...w)}function ru(...w){return it(!0,...w)}function Sl(...w){return it(!1,...w)}function au(...w){return it(!0,...w)}function su(...w){return it(!1,...w)}function Bs(...w){return it(!0,...w)}var Mo=(w,I)=>{w<128?I.push(w):I.push(w%128|128,w>>7)},ic=w=>{for(var I={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},B={parameters:[],results:w[0]=="v"?[]:[I[w[0]]]},K=1;K{var B=w.slice(0,1),K=w.slice(1),oe={i:127,p:127,j:126,f:125,d:124,e:111};I.push(96),Mo(K.length,I);for(var Se of K)I.push(oe[Se]);B=="v"?I.push(0):I.push(1,oe[B])},Zt=(w,I)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(ic(I),w);var B=[1];Ao(I,B);var K=[0,97,115,109,1,0,0,0,1];Mo(B.length,K),K.push(...B),K.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var oe=new WebAssembly.Module(new Uint8Array(K)),Se=new WebAssembly.Instance(oe,{e:{f:w}}),Te=Se.exports.f;return Te},Xt,ou=w=>Xt.get(w),ms=(w,I)=>{if(xr)for(var B=w;B(xr||(xr=new WeakMap,ms(0,Xt.length)),xr.get(w)||0),lu=[],Tr=()=>{if(lu.length)return lu.pop();try{Xt.grow(1)}catch(w){throw w instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":w}return Xt.length-1},ha=(w,I)=>Xt.set(w,I),El=(w,I)=>{var B=Ya(w);if(B)return B;var K=Tr();try{ha(K,w)}catch(Se){if(!(Se instanceof TypeError))throw Se;var oe=Zt(w,I);ha(K,oe)}return xr.set(w,K),K},Hs=w=>{var I=t["_"+w];return I},Co=(w,I)=>{Q.set(w,I)},wl=w=>Nd(w),Ta=w=>{var I=Oe(w)+1,B=wl(I);return wn(w,B,I),B},oi=(w,I,B,K,oe)=>{var Se={string:Dt=>{var Kn=0;return Dt!=null&&Dt!==0&&(Kn=Ta(Dt)),Kn},array:Dt=>{var Kn=wl(Dt.length);return Co(Dt,Kn),Kn}};function Te(Dt){return I==="string"?U(Dt):I==="boolean"?!!Dt:Dt}var Ie=Hs(w),rt=[],Ut=0;if(K)for(var ln=0;ln{var oe=!B||B.every(Te=>Te==="number"||Te==="boolean"),Se=I!=="string";return Se&&oe&&!K?Hs(w):(...Te)=>oi(w,I,B,Te,K)},xl=w=>nm(),Ma=(w,I,B)=>{if(B??=2147483647,B<2)return 0;B-=2;for(var K=I,oe=B>1]=Te,I+=2}return Z[I>>1]=0,I-K},Aa=(w,I,B)=>{if(B??=2147483647,B<4)return 0;for(var K=I,oe=K+B-4,Se=0;Se=55296&&Te<=57343){var Ie=w.charCodeAt(++Se);Te=65536+((Te&1023)<<10)|Ie&1023}if(j[I>>2]=Te,I+=4,I+4>oe)break}return j[I>>2]=0,I-K},Vs=w=>{for(var I="";;){var B=H[w++];if(!B)return I;I+=String.fromCharCode(B)}},uu=new TextDecoder("utf-16le"),Tl=(w,I)=>{for(var B=w>>1,K=B+I/2,oe=B;!(oe>=K)&&te[oe];)++oe;return uu.decode(te.subarray(B,oe))},rc=(w,I)=>{for(var B=0,K="";!(B>=I/4);){var oe=j[w+B*4>>2];if(oe==0)break;if(++B,oe>=65536){var Se=oe-65536;K+=String.fromCharCode(55296|Se>>10,56320|Se&1023)}else K+=String.fromCharCode(oe)}return K},tf=w=>{for(var I=[],B=0;B255&&(K&=255),I.push(String.fromCharCode(K))}return I.join("")},Gs=xl;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=xl,t.ccall=oi,t.cwrap=Ro,t.addFunction=El,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=tf,t.AsciiToString=Vs,t.UTF16ToString=Tl,t.stringToUTF16=Ma,t.UTF32ToString=rc,t.stringToUTF32=Aa,t.writeArrayToMemory=Co,t._getTempRet0=Gs;var me={a:ee,aa:ul,ca:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,Q:$r,W:Jr,O:ds,M:bo,L:hs,Z:ps,J:So,I:Fe,ea:Ye,E:He,w:Kt,u:yn,v:Sn,F:ai,P:Vn,n:wr,g:xn,G:vi,R:da,S:Eo,o:Vu,H:Gu,N:ju,x:Qu,V:wo,K:$c,s:Yu,t:cl,la:tu,pa:fl,j:Ku,k:dl,c:Zu,d:hl,ha:Jc,ia:pl,ja:zs,ka:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,fa:Ju,ga:vl,B:ec,C:yl,p:nu,q:bl,ma:tc,na:To,D:Hn,T:nc,oa:iu,r:ru,l:Sl,m:au,X:su,da:Bs},pe=await lt(),cd=pe.ra,fd=t._powersync_init_static=pe.sa,ce=t._memcpy=pe.ta,ue=t._memset=pe.ua,G_=t._memcmp=pe.va,np=t._sqlite3_status64=pe.wa,dd=t._sqlite3_status=pe.xa,hd=t._sqlite3_msize=pe.ya,yb=t._sqlite3_db_status=pe.za,W_=t._sqlite3_vfs_find=pe.Aa,j_=t._sqlite3_vfs_register=pe.Ba,pd=t._sqlite3_vfs_unregister=pe.Ca,ip=t._sqlite3_release_memory=pe.Da,rp=t._sqlite3_soft_heap_limit64=pe.Ea,Q_=t._sqlite3_memory_used=pe.Fa,Io=t._sqlite3_hard_heap_limit64=pe.Ga,ap=t._sqlite3_memory_highwater=pe.Ha,bb=t._sqlite3_malloc=pe.Ia,X_=t._sqlite3_malloc64=pe.Ja,_s=t._sqlite3_free=pe.Ka,md=t._sqlite3_realloc=pe.La,Y_=t._sqlite3_realloc64=pe.Ma,sp=t._sqlite3_str_vappendf=pe.Na,K_=t._sqlite3_str_append=pe.Oa,Z_=t._sqlite3_str_appendchar=pe.Pa,op=t._sqlite3_str_appendall=pe.Qa,lp=t._sqlite3_str_appendf=pe.Ra,$_=t._sqlite3_str_finish=pe.Sa,_d=t._sqlite3_str_errcode=pe.Ta,nf=t._sqlite3_str_length=pe.Ua,Mi=t._sqlite3_str_value=pe.Va,Sb=t._sqlite3_str_reset=pe.Wa,Eb=t._sqlite3_str_new=pe.Xa,J_=t._sqlite3_vmprintf=pe.Ya,rf=t._sqlite3_mprintf=pe.Za,Ml=t._sqlite3_vsnprintf=pe._a,eg=t._sqlite3_snprintf=pe.$a,tg=t._sqlite3_log=pe.ab,Ws=t._sqlite3_randomness=pe.bb,Mr=t._sqlite3_stricmp=pe.cb,ng=t._sqlite3_strnicmp=pe.db,af=t._sqlite3_os_init=pe.eb,ig=t._sqlite3_os_end=pe.fb,sf=t._sqlite3_serialize=pe.gb,up=t._sqlite3_prepare_v2=pe.hb,cp=t._sqlite3_step=pe.ib,fp=t._sqlite3_column_int64=pe.jb,dp=t._sqlite3_reset=pe.kb,rg=t._sqlite3_exec=pe.lb,hp=t._sqlite3_column_int=pe.mb,pp=t._sqlite3_finalize=pe.nb,gd=t._sqlite3_deserialize=pe.ob,mp=t._sqlite3_database_file_object=pe.pb,ag=t._sqlite3_backup_init=pe.qb,sg=t._sqlite3_backup_step=pe.rb,og=t._sqlite3_backup_finish=pe.sb,lg=t._sqlite3_backup_remaining=pe.tb,ac=t._sqlite3_backup_pagecount=pe.ub,ug=t._sqlite3_clear_bindings=pe.vb,js=t._sqlite3_value_blob=pe.wb,vd=t._sqlite3_value_text=pe.xb,_p=t._sqlite3_value_bytes=pe.yb,gp=t._sqlite3_value_bytes16=pe.zb,vp=t._sqlite3_value_double=pe.Ab,cg=t._sqlite3_value_int=pe.Bb,yp=t._sqlite3_value_int64=pe.Cb,yd=t._sqlite3_value_subtype=pe.Db,fg=t._sqlite3_value_pointer=pe.Eb,bp=t._sqlite3_value_text16=pe.Fb,dg=t._sqlite3_value_text16be=pe.Gb,wb=t._sqlite3_value_text16le=pe.Hb,bd=t._sqlite3_value_type=pe.Ib,hg=t._sqlite3_value_encoding=pe.Jb,Sp=t._sqlite3_value_nochange=pe.Kb,pg=t._sqlite3_value_frombind=pe.Lb,Ep=t._sqlite3_value_dup=pe.Mb,mg=t._sqlite3_value_free=pe.Nb,Ca=t._sqlite3_result_blob=pe.Ob,wp=t._sqlite3_result_blob64=pe.Pb,_g=t._sqlite3_result_double=pe.Qb,gg=t._sqlite3_result_error=pe.Rb,xb=t._sqlite3_result_error16=pe.Sb,Sd=t._sqlite3_result_int=pe.Tb,Ar=t._sqlite3_result_int64=pe.Ub,vg=t._sqlite3_result_null=pe.Vb,zr=t._sqlite3_result_pointer=pe.Wb,yg=t._sqlite3_result_subtype=pe.Xb,sc=t._sqlite3_result_text=pe.Yb,bg=t._sqlite3_result_text64=pe.Zb,Qs=t._sqlite3_result_text16=pe._b,Al=t._sqlite3_result_text16be=pe.$b,gs=t._sqlite3_result_text16le=pe.ac,xp=t._sqlite3_result_value=pe.bc,Tp=t._sqlite3_result_error_toobig=pe.cc,Ka=t._sqlite3_result_zeroblob=pe.dc,Sg=t._sqlite3_result_zeroblob64=pe.ec,oc=t._sqlite3_result_error_code=pe.fc,of=t._sqlite3_result_error_nomem=pe.gc,Cl=t._sqlite3_user_data=pe.hc,Eg=t._sqlite3_context_db_handle=pe.ic,wg=t._sqlite3_vtab_nochange=pe.jc,lf=t._sqlite3_vtab_in_first=pe.kc,xg=t._sqlite3_vtab_in_next=pe.lc,Ed=t._sqlite3_aggregate_context=pe.mc,Tg=t._sqlite3_get_auxdata=pe.nc,Mp=t._sqlite3_set_auxdata=pe.oc,Ap=t._sqlite3_column_count=pe.pc,Cp=t._sqlite3_data_count=pe.qc,Mg=t._sqlite3_column_blob=pe.rc,Rp=t._sqlite3_column_bytes=pe.sc,Ra=t._sqlite3_column_bytes16=pe.tc,Ag=t._sqlite3_column_double=pe.uc,lc=t._sqlite3_column_text=pe.vc,pa=t._sqlite3_column_value=pe.wc,Cg=t._sqlite3_column_text16=pe.xc,Rg=t._sqlite3_column_type=pe.yc,Tb=t._sqlite3_column_name=pe.zc,Rl=t._sqlite3_column_name16=pe.Ac,Ig=t._sqlite3_bind_blob=pe.Bc,Ip=t._sqlite3_bind_blob64=pe.Cc,uc=t._sqlite3_bind_double=pe.Dc,Lg=t._sqlite3_bind_int=pe.Ec,Ng=t._sqlite3_bind_int64=pe.Fc,kg=t._sqlite3_bind_null=pe.Gc,Og=t._sqlite3_bind_pointer=pe.Hc,wd=t._sqlite3_bind_text=pe.Ic,Lp=t._sqlite3_bind_text64=pe.Jc,Mb=t._sqlite3_bind_text16=pe.Kc,Ab=t._sqlite3_bind_value=pe.Lc,Cb=t._sqlite3_bind_zeroblob=pe.Mc,Dg=t._sqlite3_bind_zeroblob64=pe.Nc,Fg=t._sqlite3_bind_parameter_count=pe.Oc,cc=t._sqlite3_bind_parameter_name=pe.Pc,xd=t._sqlite3_bind_parameter_index=pe.Qc,Pg=t._sqlite3_db_handle=pe.Rc,Ug=t._sqlite3_stmt_readonly=pe.Sc,Rb=t._sqlite3_stmt_isexplain=pe.Tc,Ib=t._sqlite3_stmt_explain=pe.Uc,Lb=t._sqlite3_stmt_busy=pe.Vc,Np=t._sqlite3_next_stmt=pe.Wc,kp=t._sqlite3_stmt_status=pe.Xc,Op=t._sqlite3_sql=pe.Yc,zg=t._sqlite3_expanded_sql=pe.Zc,uf=t._sqlite3_value_numeric_type=pe._c,Dp=t._sqlite3_blob_open=pe.$c,qg=t._sqlite3_blob_close=pe.ad,li=t._sqlite3_blob_read=pe.bd,Fp=t._sqlite3_blob_write=pe.cd,Nb=t._sqlite3_blob_bytes=pe.dd,Bg=t._sqlite3_blob_reopen=pe.ed,kb=t._sqlite3_set_authorizer=pe.fd,Ob=t._sqlite3_strglob=pe.gd,Db=t._sqlite3_strlike=pe.hd,Fb=t._sqlite3_errmsg=pe.id,Pp=t._sqlite3_load_extension=pe.jd,Lo=t._sqlite3_enable_load_extension=pe.kd,Hg=t._sqlite3_auto_extension=pe.ld,Td=t._sqlite3_cancel_auto_extension=pe.md,cu=t._sqlite3_reset_auto_extension=pe.nd,Up=t._sqlite3_prepare=pe.od,Vg=t._sqlite3_prepare_v3=pe.pd,zp=t._sqlite3_prepare16=pe.qd,Pb=t._sqlite3_prepare16_v2=pe.rd,Gg=t._sqlite3_prepare16_v3=pe.sd,Wg=t._sqlite3_get_table=pe.td,jg=t._sqlite3_free_table=pe.ud,Qg=t._sqlite3_create_module=pe.vd,Xg=t._sqlite3_create_module_v2=pe.wd,qp=t._sqlite3_drop_modules=pe.xd,qn=t._sqlite3_declare_vtab=pe.yd,Ub=t._sqlite3_vtab_on_conflict=pe.zd,Ia=t._sqlite3_vtab_config=pe.Ad,Bp=t._sqlite3_vtab_collation=pe.Bd,zb=t._sqlite3_vtab_in=pe.Cd,Md=t._sqlite3_vtab_rhs_value=pe.Dd,fc=t._sqlite3_vtab_distinct=pe.Ed,dc=t._sqlite3_keyword_name=pe.Fd,Yg=t._sqlite3_keyword_count=pe.Gd,Hp=t._sqlite3_keyword_check=pe.Hd,Kg=t._sqlite3_complete=pe.Id,No=t._sqlite3_complete16=pe.Jd,Vp=t._sqlite3_libversion=pe.Kd,Gp=t._sqlite3_libversion_number=pe.Ld,Wp=t._sqlite3_threadsafe=pe.Md,jp=t._sqlite3_initialize=pe.Nd,Il=t._sqlite3_shutdown=pe.Od,Qp=t._sqlite3_config=pe.Pd,qb=t._sqlite3_db_mutex=pe.Qd,Bb=t._sqlite3_db_release_memory=pe.Rd,Xp=t._sqlite3_db_cacheflush=pe.Sd,Hb=t._sqlite3_db_config=pe.Td,Zg=t._sqlite3_last_insert_rowid=pe.Ud,$g=t._sqlite3_set_last_insert_rowid=pe.Vd,Vb=t._sqlite3_changes64=pe.Wd,Ad=t._sqlite3_changes=pe.Xd,_n=t._sqlite3_total_changes64=pe.Yd,Gb=t._sqlite3_total_changes=pe.Zd,Wb=t._sqlite3_txn_state=pe._d,Jg=t._sqlite3_close=pe.$d,cf=t._sqlite3_close_v2=pe.ae,jb=t._sqlite3_busy_handler=pe.be,Qb=t._sqlite3_progress_handler=pe.ce,Xb=t._sqlite3_busy_timeout=pe.de,Yb=t._sqlite3_interrupt=pe.ee,Kb=t._sqlite3_is_interrupted=pe.fe,Yp=t._sqlite3_create_function=pe.ge,ev=t._sqlite3_create_function_v2=pe.he,Cd=t._sqlite3_create_window_function=pe.ie,tv=t._sqlite3_create_function16=pe.je,Zb=t._sqlite3_overload_function=pe.ke,$b=t._sqlite3_trace_v2=pe.le,fu=t._sqlite3_commit_hook=pe.me,Xs=t._sqlite3_update_hook=pe.ne,Gi=t._sqlite3_rollback_hook=pe.oe,Ys=t._sqlite3_autovacuum_pages=pe.pe,Cr=t._sqlite3_wal_autocheckpoint=pe.qe,Jb=t._sqlite3_wal_hook=pe.re,eS=t._sqlite3_wal_checkpoint_v2=pe.se,hr=t._sqlite3_wal_checkpoint=pe.te,ko=t._sqlite3_error_offset=pe.ue,tS=t._sqlite3_errmsg16=pe.ve,nS=t._sqlite3_errcode=pe.we,iS=t._sqlite3_extended_errcode=pe.xe,rS=t._sqlite3_system_errno=pe.ye,aS=t._sqlite3_errstr=pe.ze,Kp=t._sqlite3_limit=pe.Ae,nv=t._sqlite3_open=pe.Be,sS=t._sqlite3_open_v2=pe.Ce,iv=t._sqlite3_open16=pe.De,oS=t._sqlite3_create_collation=pe.Ee,lS=t._sqlite3_create_collation_v2=pe.Fe,hc=t._sqlite3_create_collation16=pe.Ge,Oo=t._sqlite3_collation_needed=pe.He,uS=t._sqlite3_collation_needed16=pe.Ie,cS=t._sqlite3_get_clientdata=pe.Je,fS=t._sqlite3_set_clientdata=pe.Ke,ff=t._sqlite3_get_autocommit=pe.Le,dS=t._sqlite3_table_column_metadata=pe.Me,hS=t._sqlite3_sleep=pe.Ne,pS=t._sqlite3_extended_result_codes=pe.Oe,df=t._sqlite3_file_control=pe.Pe,mS=t._sqlite3_test_control=pe.Qe,_S=t._sqlite3_create_filename=pe.Re,gS=t._sqlite3_free_filename=pe.Se,vS=t._sqlite3_uri_parameter=pe.Te,yS=t._sqlite3_uri_key=pe.Ue,bS=t._sqlite3_uri_boolean=pe.Ve,SS=t._sqlite3_uri_int64=pe.We,ES=t._sqlite3_filename_database=pe.Xe,wS=t._sqlite3_filename_journal=pe.Ye,xS=t._sqlite3_filename_wal=pe.Ze,TS=t._sqlite3_db_name=pe._e,MS=t._sqlite3_db_filename=pe.$e,rv=t._sqlite3_db_readonly=pe.af,AS=t._sqlite3_compileoption_used=pe.bf,CS=t._sqlite3_compileoption_get=pe.cf,RS=t._sqlite3_sourceid=pe.df,IS=t._sqlite3mc_config=pe.ef,av=t._sqlite3mc_cipher_count=pe.ff,LS=t._sqlite3mc_cipher_index=pe.gf,Zp=t._sqlite3mc_cipher_name=pe.hf,sv=t._sqlite3mc_config_cipher=pe.jf,NS=t._sqlite3mc_vfs_create=pe.kf,$p=t._malloc=pe.lf,ov=t._free=pe.mf,Rd=t._RegisterExtensionFunctions=pe.nf,kS=t._getSqliteFree=pe.of,Id=t._main=pe.pf,Jp=t._libauthorizer_set_authorizer=pe.qf,lv=t._libfunction_create_function=pe.rf,uv=t._libhook_commit_hook=pe.sf,hf=t._libhook_update_hook=pe.tf,em=t._libprogress_progress_handler=pe.uf,cv=t._libvfs_vfs_register=pe.vf,tm=pe.xf,Ld=pe.yf,nm=pe.zf,fv=pe.Af,Nd=pe.Bf,kd=pe.Cf,dv=t.dynCall_viiiij=pe.dynCall_viiiij,im=t.dynCall_vijii=pe.dynCall_vijii,rm=t.dynCall_iiiij=pe.dynCall_iiiij,am=t.dynCall_viji=pe.dynCall_viji,sm=t.dynCall_iij=pe.dynCall_iij,om=t.dynCall_iijii=pe.dynCall_iijii,OS=t.dynCall_iiji=pe.dynCall_iiji,DS=t.dynCall_iiiiiij=pe.dynCall_iiiiiij,FS=t.dynCall_iiij=pe.dynCall_iiij,PS=t.dynCall_jii=pe.dynCall_jii,hv=t.dynCall_ji=pe.dynCall_ji,US=t.dynCall_vij=pe.dynCall_vij,zS=t.dynCall_iiiiijii=pe.dynCall_iiiiijii,qS=t.dynCall_j=pe.dynCall_j,BS=t.dynCall_jj=pe.dynCall_jj,HS=t.dynCall_jiij=pe.dynCall_jiij,pv=t.dynCall_iiiiji=pe.dynCall_iiiiji,Od=t.dynCall_iiiijii=pe.dynCall_iiiijii,mv=t.dynCall_ij=pe.dynCall_ij,A=t.dynCall_viiji=pe.dynCall_viiji,P=t.dynCall_viijii=pe.dynCall_viijii,W=t.dynCall_iiiijji=pe.dynCall_iiiijji,J=t._sqlite3_version=82296;function de(){var w=Id,I=0,B=0;try{var K=w(I,B);return On(K,!0),K}catch(oe){return En(oe)}}function Ae(){if(We>0){gt=Ae;return}if(Ve(),We>0){gt=Ae;return}function w(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var I=t.noInitialRun||!1;I||de(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),w()},1)):w()}function qe(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return qe(),Ae(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.set_authorizer=function(B,K,oe){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,K instanceof w?1:0,"i32");let Se=oi("libauthorizer_set_authorizer","number",["number","number","number"],[B,K?1:0,I]);return!Se&&K&&t.setCallback(I,(Te,Ie,rt,Ut,ln,gn)=>K(oe,Ie,rt,Ut,ln,gn)),Se}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=["xFunc","xStep","xFinal"],B=new Map;t.create_function=function(K,oe,Se,Te,Ie,rt,Ut,ln){let gn=t._sqlite3_malloc(4),hn={xFunc:rt,xStep:Ut,xFinal:ln};kt(gn,I.reduce((Dt,Kn,Qn)=>hn[Kn]instanceof w?Dt|1<K(Se,Te,Ie,rt,Ut))}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.commit_hook=function(B,K){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,K instanceof w?1:0,"i32"),oi("libhook_commit_hook","void",["number","number","number"],[B,K?1:0,I]),K&&t.setCallback(I,oe=>K())}})(),(function(){let w=Object.getPrototypeOf(async function(){}).constructor,I=0;t.progress_handler=function(B,K,oe,Se){I&&(t.deleteCallback(I),t._sqlite3_free(I),I=0),I=t._sqlite3_malloc(4),kt(I,oe instanceof w?1:0,"i32"),oi("libprogress_progress_handler","number",["number","number","number","number"],[B,K,oe?1:0,I]),oe&&t.setCallback(I,Te=>oe(Se))}})(),(function(){let w=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],I=new Map;t.vfs_register=function(B,K){let oe=0,Se=0;w.forEach((Ie,rt)=>{B[Ie]&&(oe|=1<Ite});var Rte,Ite,XH=Da(()=>{Rte=(async function(n={}){var e,t=n,i,r,a=new Promise((A,P)=>{i=A,r=P}),s=typeof window=="object",l=typeof WorkerGlobalScope<"u",c=typeof process=="object"&&process.versions?.node&&process.type!="renderer",f=[],p="./this.program",h=(A,P)=>{throw P},_=import.meta.url,g="";function E(A){return t.locateFile?t.locateFile(A,g):g+A}var x,S;if(s||l){try{g=new URL(".",_).href}catch{}l&&(S=A=>{var P=new XMLHttpRequest;return P.open("GET",A,!1),P.responseType="arraybuffer",P.send(null),new Uint8Array(P.response)}),x=async A=>{var P=await fetch(A,{credentials:"same-origin"});if(P.ok)return P.arrayBuffer();throw new Error(P.status+" : "+P.url)}}var v=console.log.bind(console),M=console.error.bind(console),O,k,q=!1,G,Q,H,Z,te,j,he,ke,Me,ze=!1;function Ne(){var A=k.buffer;Q=new Int8Array(A),Z=new Int16Array(A),t.HEAPU8=H=new Uint8Array(A),te=new Uint16Array(A),t.HEAP32=j=new Int32Array(A),he=new Uint32Array(A),ke=new Float32Array(A),Me=new Float64Array(A)}function Ve(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)en(t.preRun.shift());vt(qt)}function Je(){ze=!0,!t.noFSInit&&!d.initialized&&d.init(),ht.init(),me.qa(),d.ignorePermissions=!1}function Qe(){}function st(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Ht(t.postRun.shift());vt(Qt)}var We=0,gt=null;function Et(A){return A}function jt(A){We++,t.monitorRunDependencies?.(We)}function zt(A){if(We--,t.monitorRunDependencies?.(We),We==0&>){var P=gt;gt=null,P()}}function Mt(A){t.onAbort?.(A),A="Aborted("+A+")",M(A),q=!0,A+=". Build with -sASSERTIONS for more info.";var P=new WebAssembly.RuntimeError(A);throw r(P),P}var Xe;function et(){return t.locateFile?E("wa-sqlite.wasm"):new URL("wa-sqlite.wasm",import.meta.url).href}function yt(A){if(A==Xe&&O)return new Uint8Array(O);if(S)return S(A);throw"both async and sync fetching of the wasm failed"}async function Wt(A){if(!O)try{var P=await x(A);return new Uint8Array(P)}catch{}return yt(A)}async function Lt(A,P){try{var W=await Wt(A),J=await WebAssembly.instantiate(W,P);return J}catch(de){M(`failed to asynchronously prepare wasm: ${de}`),Mt(de)}}async function sn(A,P,W){if(!A&&typeof WebAssembly.instantiateStreaming=="function")try{var J=fetch(P,{credentials:"same-origin"}),de=await WebAssembly.instantiateStreaming(J,W);return de}catch(Ae){M(`wasm streaming compile failed: ${Ae}`),M("falling back to ArrayBuffer instantiation")}return Lt(P,W)}function pn(){return{a:Gs}}async function lt(){function A(Ae,qe){return me=Ae.exports,k=me.pa,Ne(),Zt=me.pf,zt("wasm-instantiate"),me}jt("wasm-instantiate");function P(Ae){return A(Ae.instance)}var W=pn();if(t.instantiateWasm)return new Promise((Ae,qe)=>{t.instantiateWasm(W,(w,I)=>{Ae(A(w,I))})});Xe??=et();try{var J=await sn(O,Xe,W),de=P(J);return de}catch(Ae){return r(Ae),Promise.reject(Ae)}}var _e,Pe;class dt{name="ExitStatus";constructor(P){this.message=`Program terminated with exit(${P})`,this.status=P}}var vt=A=>{for(;A.length>0;)A.shift()(t)},Qt=[],Ht=A=>Qt.push(A),qt=[],en=A=>qt.push(A);function Le(A,P="i8"){switch(P.endsWith("*")&&(P="*"),P){case"i1":return Q[A];case"i8":return Q[A];case"i16":return Z[A>>1];case"i32":return j[A>>2];case"i64":Mt("to do getValue(i64) use WASM_BIGINT");case"float":return ke[A>>2];case"double":return Me[A>>3];case"*":return he[A>>2];default:Mt(`invalid type for getValue: ${P}`)}}var fn=!0;function kt(A,P,W="i8"){switch(W.endsWith("*")&&(W="*"),W){case"i1":Q[A]=P;break;case"i8":Q[A]=P;break;case"i16":Z[A>>1]=P;break;case"i32":j[A>>2]=P;break;case"i64":Mt("to do setValue(i64) use WASM_BIGINT");case"float":ke[A>>2]=P;break;case"double":Me[A>>3]=P;break;case"*":he[A>>2]=P;break;default:Mt(`invalid type for setValue: ${W}`)}}var ge=A=>uv(A),L=()=>em(),N=new TextDecoder,U=(A,P)=>{if(!A)return"";for(var W=A+P,J=A;!(J>=W)&&H[J];)++J;return N.decode(H.subarray(A,J))},ee=(A,P,W,J)=>Mt(`Assertion failed: ${U(A)}, at: `+[P?U(P):"unknown filename",W,J?U(J):"unknown function"]),ne={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var P=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return P.exec(A).slice(1)},normalizeArray:(A,P)=>{for(var W=0,J=A.length-1;J>=0;J--){var de=A[J];de==="."?A.splice(J,1):de===".."?(A.splice(J,1),W++):W&&(A.splice(J,1),W--)}if(P)for(;W;W--)A.unshift("..");return A},normalize:A=>{var P=ne.isAbs(A),W=A.slice(-1)==="/";return A=ne.normalizeArray(A.split("/").filter(J=>!!J),!P).join("/"),!A&&!P&&(A="."),A&&W&&(A+="/"),(P?"/":"")+A},dirname:A=>{var P=ne.splitPath(A),W=P[0],J=P[1];return!W&&!J?".":(J&&(J=J.slice(0,-1)),W+J)},basename:A=>A&&A.match(/([^\/]+|\/)\/*$/)[1],join:(...A)=>ne.normalize(A.join("/")),join2:(A,P)=>ne.normalize(A+"/"+P)},X=()=>A=>crypto.getRandomValues(A),ie=A=>{(ie=X())(A)},le={resolve:(...A)=>{for(var P="",W=!1,J=A.length-1;J>=-1&&!W;J--){var de=J>=0?A[J]:d.cwd();if(typeof de!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!de)return"";P=de+"/"+P,W=ne.isAbs(de)}return P=ne.normalizeArray(P.split("/").filter(Ae=>!!Ae),!W).join("/"),(W?"/":"")+P||"."},relative:(A,P)=>{A=le.resolve(A).slice(1),P=le.resolve(P).slice(1);function W(B){for(var K=0;K=0&&B[oe]==="";oe--);return K>oe?[]:B.slice(K,oe-K+1)}for(var J=W(A.split("/")),de=W(P.split("/")),Ae=Math.min(J.length,de.length),qe=Ae,w=0;w{for(var J=P+W,de=P;A[de]&&!(de>=J);)++de;return N.decode(A.buffer?A.subarray(P,de):new Uint8Array(A.slice(P,de)))},tt=[],Oe=A=>{for(var P=0,W=0;W=55296&&J<=57343?(P+=4,++W):P+=3}return P},je=(A,P,W,J)=>{if(!(J>0))return 0;for(var de=W,Ae=W+J-1,qe=0;qe=55296&&w<=57343){var I=A.charCodeAt(++qe);w=65536+((w&1023)<<10)|I&1023}if(w<=127){if(W>=Ae)break;P[W++]=w}else if(w<=2047){if(W+1>=Ae)break;P[W++]=192|w>>6,P[W++]=128|w&63}else if(w<=65535){if(W+2>=Ae)break;P[W++]=224|w>>12,P[W++]=128|w>>6&63,P[W++]=128|w&63}else{if(W+3>=Ae)break;P[W++]=240|w>>18,P[W++]=128|w>>12&63,P[W++]=128|w>>6&63,P[W++]=128|w&63}}return P[W]=0,W-de},Ct=(A,P,W)=>{var J=W>0?W:Oe(A)+1,de=new Array(J),Ae=je(A,de,0,de.length);return P&&(de.length=Ae),de},nn=()=>{if(!tt.length){var A=null;if(typeof window<"u"&&typeof window.prompt=="function"&&(A=window.prompt("Input: "),A!==null&&(A+=` `)),!A)return null;tt=Ct(A,!0)}return tt.shift()},ht={ttys:[],init(){},shutdown(){},register(A,P){ht.ttys[A]={input:[],output:[],ops:P},d.registerDevice(A,ht.stream_ops)},stream_ops:{open(A){var P=ht.ttys[A.node.rdev];if(!P)throw new d.ErrnoError(43);A.tty=P,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,P,W,J,de){if(!A.tty||!A.tty.ops.get_char)throw new d.ErrnoError(60);for(var Ae=0,qe=0;qe0&&(v(be(A.output)),A.output=[])},ioctl_tcgets(A){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(A,P,W){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,P){P===null||P===10?(M(be(A.output)),A.output=[]):P!=0&&A.output.push(P)},fsync(A){A.output?.length>0&&(M(be(A.output)),A.output=[])}}},De=(A,P)=>H.fill(0,A,A+P),bt=(A,P)=>Math.ceil(A/P)*P,at=A=>{A=bt(A,65536);var P=Id(65536,A);return P&&De(P,A),P},we={ops_table:null,mount(A){return we.createNode(null,"/",16895,0)},createNode(A,P,W,J){if(d.isBlkdev(W)||d.isFIFO(W))throw new d.ErrnoError(63);we.ops_table||={dir:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,lookup:we.node_ops.lookup,mknod:we.node_ops.mknod,rename:we.node_ops.rename,unlink:we.node_ops.unlink,rmdir:we.node_ops.rmdir,readdir:we.node_ops.readdir,symlink:we.node_ops.symlink},stream:{llseek:we.stream_ops.llseek}},file:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:{llseek:we.stream_ops.llseek,read:we.stream_ops.read,write:we.stream_ops.write,mmap:we.stream_ops.mmap,msync:we.stream_ops.msync}},link:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr,readlink:we.node_ops.readlink},stream:{}},chrdev:{node:{getattr:we.node_ops.getattr,setattr:we.node_ops.setattr},stream:d.chrdev_stream_ops}};var de=d.createNode(A,P,W,J);return d.isDir(de.mode)?(de.node_ops=we.ops_table.dir.node,de.stream_ops=we.ops_table.dir.stream,de.contents={}):d.isFile(de.mode)?(de.node_ops=we.ops_table.file.node,de.stream_ops=we.ops_table.file.stream,de.usedBytes=0,de.contents=null):d.isLink(de.mode)?(de.node_ops=we.ops_table.link.node,de.stream_ops=we.ops_table.link.stream):d.isChrdev(de.mode)&&(de.node_ops=we.ops_table.chrdev.node,de.stream_ops=we.ops_table.chrdev.stream),de.atime=de.mtime=de.ctime=Date.now(),A&&(A.contents[P]=de,A.atime=A.mtime=A.ctime=de.atime),de},getFileDataAsTypedArray(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage(A,P){var W=A.contents?A.contents.length:0;if(!(W>=P)){var J=1024*1024;P=Math.max(P,W*(W>>0),W!=0&&(P=Math.max(P,256));var de=A.contents;A.contents=new Uint8Array(P),A.usedBytes>0&&A.contents.set(de.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,P){if(A.usedBytes!=P)if(P==0)A.contents=null,A.usedBytes=0;else{var W=A.contents;A.contents=new Uint8Array(P),W&&A.contents.set(W.subarray(0,Math.min(P,A.usedBytes))),A.usedBytes=P}},node_ops:{getattr(A){var P={};return P.dev=d.isChrdev(A.mode)?A.id:1,P.ino=A.id,P.mode=A.mode,P.nlink=1,P.uid=0,P.gid=0,P.rdev=A.rdev,d.isDir(A.mode)?P.size=4096:d.isFile(A.mode)?P.size=A.usedBytes:d.isLink(A.mode)?P.size=A.link.length:P.size=0,P.atime=new Date(A.atime),P.mtime=new Date(A.mtime),P.ctime=new Date(A.ctime),P.blksize=4096,P.blocks=Math.ceil(P.size/P.blksize),P},setattr(A,P){for(let W of["mode","atime","mtime","ctime"])P[W]!=null&&(A[W]=P[W]);P.size!==void 0&&we.resizeFileStorage(A,P.size)},lookup(A,P){throw we.doesNotExistError},mknod(A,P,W,J){return we.createNode(A,P,W,J)},rename(A,P,W){var J;try{J=d.lookupNode(P,W)}catch{}if(J){if(d.isDir(A.mode))for(var de in J.contents)throw new d.ErrnoError(55);d.hashRemoveNode(J)}delete A.parent.contents[A.name],P.contents[W]=A,A.name=W,P.ctime=P.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,P){delete A.contents[P],A.ctime=A.mtime=Date.now()},rmdir(A,P){var W=d.lookupNode(A,P);for(var J in W.contents)throw new d.ErrnoError(55);delete A.contents[P],A.ctime=A.mtime=Date.now()},readdir(A){return[".","..",...Object.keys(A.contents)]},symlink(A,P,W){var J=we.createNode(A,P,41471,0);return J.link=W,J},readlink(A){if(!d.isLink(A.mode))throw new d.ErrnoError(28);return A.link}},stream_ops:{read(A,P,W,J,de){var Ae=A.node.contents;if(de>=A.node.usedBytes)return 0;var qe=Math.min(A.node.usedBytes-de,J);if(qe>8&&Ae.subarray)P.set(Ae.subarray(de,de+qe),W);else for(var w=0;w0||W+P{var P=await x(A);return new Uint8Array(P)},ft=(...A)=>d.createDataFile(...A),Yt=[],$t=(A,P,W,J)=>{typeof Browser<"u"&&Browser.init();var de=!1;return Yt.forEach(Ae=>{de||Ae.canHandle(P)&&(Ae.handle(A,P,W,J),de=!0)}),de},Wn=(A,P,W,J,de,Ae,qe,w,I,B)=>{var K=P?le.resolve(ne.join2(A,P)):A,oe=`cp ${K}`;function Se(Te){function Ie(rt){B?.(),w||ft(A,P,rt,J,de,I),Ae?.(),zt(oe)}$t(Te,K,Ie,()=>{qe?.(),zt(oe)})||Ie(Te)}jt(oe),typeof W=="string"?Rt(W).then(Se,qe):Se(W)},Un=A=>{var P={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},W=P[A];if(typeof W>"u")throw new Error(`Unknown file open mode: ${A}`);return W},Ti=(A,P)=>{var W=0;return A&&(W|=365),P&&(W|=146),W},d={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(A){this.errno=A}},FSStream:class{shared={};get object(){return this.node}set object(A){this.node=A}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(A,P,W,J){A||(A=this),this.parent=A,this.mount=A.mount,this.id=d.nextInode++,this.name=P,this.mode=W,this.rdev=J,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return d.isDir(this.mode)}get isDevice(){return d.isChrdev(this.mode)}},lookupPath(A,P={}){if(!A)throw new d.ErrnoError(44);P.follow_mount??=!0,ne.isAbs(A)||(A=d.cwd()+"/"+A);e:for(var W=0;W<40;W++){for(var J=A.split("/").filter(B=>!!B),de=d.root,Ae="/",qe=0;qe>>0)%d.nameTable.length},hashAddNode(A){var P=d.hashName(A.parent.id,A.name);A.name_next=d.nameTable[P],d.nameTable[P]=A},hashRemoveNode(A){var P=d.hashName(A.parent.id,A.name);if(d.nameTable[P]===A)d.nameTable[P]=A.name_next;else for(var W=d.nameTable[P];W;){if(W.name_next===A){W.name_next=A.name_next;break}W=W.name_next}},lookupNode(A,P){var W=d.mayLookup(A);if(W)throw new d.ErrnoError(W);for(var J=d.hashName(A.id,P),de=d.nameTable[J];de;de=de.name_next){var Ae=de.name;if(de.parent.id===A.id&&Ae===P)return de}return d.lookup(A,P)},createNode(A,P,W,J){var de=new d.FSNode(A,P,W,J);return d.hashAddNode(de),de},destroyNode(A){d.hashRemoveNode(A)},isRoot(A){return A===A.parent},isMountpoint(A){return!!A.mounted},isFile(A){return(A&61440)===32768},isDir(A){return(A&61440)===16384},isLink(A){return(A&61440)===40960},isChrdev(A){return(A&61440)===8192},isBlkdev(A){return(A&61440)===24576},isFIFO(A){return(A&61440)===4096},isSocket(A){return(A&49152)===49152},flagsToPermissionString(A){var P=["r","w","rw"][A&3];return A&512&&(P+="w"),P},nodePermissions(A,P){return d.ignorePermissions?0:P.includes("r")&&!(A.mode&292)||P.includes("w")&&!(A.mode&146)||P.includes("x")&&!(A.mode&73)?2:0},mayLookup(A){if(!d.isDir(A.mode))return 54;var P=d.nodePermissions(A,"x");return P||(A.node_ops.lookup?0:2)},mayCreate(A,P){if(!d.isDir(A.mode))return 54;try{var W=d.lookupNode(A,P);return 20}catch{}return d.nodePermissions(A,"wx")},mayDelete(A,P,W){var J;try{J=d.lookupNode(A,P)}catch(Ae){return Ae.errno}var de=d.nodePermissions(A,"wx");if(de)return de;if(W){if(!d.isDir(J.mode))return 54;if(d.isRoot(J)||d.getPath(J)===d.cwd())return 10}else if(d.isDir(J.mode))return 31;return 0},mayOpen(A,P){return A?d.isLink(A.mode)?32:d.isDir(A.mode)&&(d.flagsToPermissionString(P)!=="r"||P&576)?31:d.nodePermissions(A,d.flagsToPermissionString(P)):44},checkOpExists(A,P){if(!A)throw new d.ErrnoError(P);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=d.MAX_OPEN_FDS;A++)if(!d.streams[A])return A;throw new d.ErrnoError(33)},getStreamChecked(A){var P=d.getStream(A);if(!P)throw new d.ErrnoError(8);return P},getStream:A=>d.streams[A],createStream(A,P=-1){return A=Object.assign(new d.FSStream,A),P==-1&&(P=d.nextfd()),A.fd=P,d.streams[P]=A,A},closeStream(A){d.streams[A]=null},dupStream(A,P=-1){var W=d.createStream(A,P);return W.stream_ops?.dup?.(W),W},doSetAttr(A,P,W){var J=A?.stream_ops.setattr,de=J?A:P;J??=P.node_ops.setattr,d.checkOpExists(J,63),J(de,W)},chrdev_stream_ops:{open(A){var P=d.getDevice(A.node.rdev);A.stream_ops=P.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new d.ErrnoError(70)}},major:A=>A>>8,minor:A=>A&255,makedev:(A,P)=>A<<8|P,registerDevice(A,P){d.devices[A]={stream_ops:P}},getDevice:A=>d.devices[A],getMounts(A){for(var P=[],W=[A];W.length;){var J=W.pop();P.push(J),W.push(...J.mounts)}return P},syncfs(A,P){typeof A=="function"&&(P=A,A=!1),d.syncFSRequests++,d.syncFSRequests>1&&M(`warning: ${d.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var W=d.getMounts(d.root.mount),J=0;function de(qe){return d.syncFSRequests--,P(qe)}function Ae(qe){if(qe)return Ae.errored?void 0:(Ae.errored=!0,de(qe));++J>=W.length&&de(null)}W.forEach(qe=>{if(!qe.type.syncfs)return Ae(null);qe.type.syncfs(qe,A,Ae)})},mount(A,P,W){var J=W==="/",de=!W,Ae;if(J&&d.root)throw new d.ErrnoError(10);if(!J&&!de){var qe=d.lookupPath(W,{follow_mount:!1});if(W=qe.path,Ae=qe.node,d.isMountpoint(Ae))throw new d.ErrnoError(10);if(!d.isDir(Ae.mode))throw new d.ErrnoError(54)}var w={type:A,opts:P,mountpoint:W,mounts:[]},I=A.mount(w);return I.mount=w,w.root=I,J?d.root=I:Ae&&(Ae.mounted=w,Ae.mount&&Ae.mount.mounts.push(w)),I},unmount(A){var P=d.lookupPath(A,{follow_mount:!1});if(!d.isMountpoint(P.node))throw new d.ErrnoError(28);var W=P.node,J=W.mounted,de=d.getMounts(J);Object.keys(d.nameTable).forEach(qe=>{for(var w=d.nameTable[qe];w;){var I=w.name_next;de.includes(w.mount)&&d.destroyNode(w),w=I}}),W.mounted=null;var Ae=W.mount.mounts.indexOf(J);W.mount.mounts.splice(Ae,1)},lookup(A,P){return A.node_ops.lookup(A,P)},mknod(A,P,W){var J=d.lookupPath(A,{parent:!0}),de=J.node,Ae=ne.basename(A);if(!Ae)throw new d.ErrnoError(28);if(Ae==="."||Ae==="..")throw new d.ErrnoError(20);var qe=d.mayCreate(de,Ae);if(qe)throw new d.ErrnoError(qe);if(!de.node_ops.mknod)throw new d.ErrnoError(63);return de.node_ops.mknod(de,Ae,P,W)},statfs(A){return d.statfsNode(d.lookupPath(A,{follow:!0}).node)},statfsStream(A){return d.statfsNode(A.node)},statfsNode(A){var P={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:d.nextInode,ffree:d.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(P,A.node_ops.statfs(A.mount.opts.root)),P},create(A,P=438){return P&=4095,P|=32768,d.mknod(A,P,0)},mkdir(A,P=511){return P&=1023,P|=16384,d.mknod(A,P,0)},mkdirTree(A,P){var W=A.split("/"),J="";for(var de of W)if(de){(J||ne.isAbs(A))&&(J+="/"),J+=de;try{d.mkdir(J,P)}catch(Ae){if(Ae.errno!=20)throw Ae}}},mkdev(A,P,W){return typeof W>"u"&&(W=P,P=438),P|=8192,d.mknod(A,P,W)},symlink(A,P){if(!le.resolve(A))throw new d.ErrnoError(44);var W=d.lookupPath(P,{parent:!0}),J=W.node;if(!J)throw new d.ErrnoError(44);var de=ne.basename(P),Ae=d.mayCreate(J,de);if(Ae)throw new d.ErrnoError(Ae);if(!J.node_ops.symlink)throw new d.ErrnoError(63);return J.node_ops.symlink(J,de,A)},rename(A,P){var W=ne.dirname(A),J=ne.dirname(P),de=ne.basename(A),Ae=ne.basename(P),qe,w,I;if(qe=d.lookupPath(A,{parent:!0}),w=qe.node,qe=d.lookupPath(P,{parent:!0}),I=qe.node,!w||!I)throw new d.ErrnoError(44);if(w.mount!==I.mount)throw new d.ErrnoError(75);var B=d.lookupNode(w,de),K=le.relative(A,J);if(K.charAt(0)!==".")throw new d.ErrnoError(28);if(K=le.relative(P,W),K.charAt(0)!==".")throw new d.ErrnoError(55);var oe;try{oe=d.lookupNode(I,Ae)}catch{}if(B!==oe){var Se=d.isDir(B.mode),Te=d.mayDelete(w,de,Se);if(Te)throw new d.ErrnoError(Te);if(Te=oe?d.mayDelete(I,Ae,Se):d.mayCreate(I,Ae),Te)throw new d.ErrnoError(Te);if(!w.node_ops.rename)throw new d.ErrnoError(63);if(d.isMountpoint(B)||oe&&d.isMountpoint(oe))throw new d.ErrnoError(10);if(I!==w&&(Te=d.nodePermissions(w,"w"),Te))throw new d.ErrnoError(Te);d.hashRemoveNode(B);try{w.node_ops.rename(B,I,Ae),B.parent=I}catch(Ie){throw Ie}finally{d.hashAddNode(B)}}},rmdir(A){var P=d.lookupPath(A,{parent:!0}),W=P.node,J=ne.basename(A),de=d.lookupNode(W,J),Ae=d.mayDelete(W,J,!0);if(Ae)throw new d.ErrnoError(Ae);if(!W.node_ops.rmdir)throw new d.ErrnoError(63);if(d.isMountpoint(de))throw new d.ErrnoError(10);W.node_ops.rmdir(W,J),d.destroyNode(de)},readdir(A){var P=d.lookupPath(A,{follow:!0}),W=P.node,J=d.checkOpExists(W.node_ops.readdir,54);return J(W)},unlink(A){var P=d.lookupPath(A,{parent:!0}),W=P.node;if(!W)throw new d.ErrnoError(44);var J=ne.basename(A),de=d.lookupNode(W,J),Ae=d.mayDelete(W,J,!1);if(Ae)throw new d.ErrnoError(Ae);if(!W.node_ops.unlink)throw new d.ErrnoError(63);if(d.isMountpoint(de))throw new d.ErrnoError(10);W.node_ops.unlink(W,J),d.destroyNode(de)},readlink(A){var P=d.lookupPath(A),W=P.node;if(!W)throw new d.ErrnoError(44);if(!W.node_ops.readlink)throw new d.ErrnoError(28);return W.node_ops.readlink(W)},stat(A,P){var W=d.lookupPath(A,{follow:!P}),J=W.node,de=d.checkOpExists(J.node_ops.getattr,63);return de(J)},fstat(A){var P=d.getStreamChecked(A),W=P.node,J=P.stream_ops.getattr,de=J?P:W;return J??=W.node_ops.getattr,d.checkOpExists(J,63),J(de)},lstat(A){return d.stat(A,!0)},doChmod(A,P,W,J){d.doSetAttr(A,P,{mode:W&4095|P.mode&-4096,ctime:Date.now(),dontFollow:J})},chmod(A,P,W){var J;if(typeof A=="string"){var de=d.lookupPath(A,{follow:!W});J=de.node}else J=A;d.doChmod(null,J,P,W)},lchmod(A,P){d.chmod(A,P,!0)},fchmod(A,P){var W=d.getStreamChecked(A);d.doChmod(W,W.node,P,!1)},doChown(A,P,W){d.doSetAttr(A,P,{timestamp:Date.now(),dontFollow:W})},chown(A,P,W,J){var de;if(typeof A=="string"){var Ae=d.lookupPath(A,{follow:!J});de=Ae.node}else de=A;d.doChown(null,de,J)},lchown(A,P,W){d.chown(A,P,W,!0)},fchown(A,P,W){var J=d.getStreamChecked(A);d.doChown(J,J.node,!1)},doTruncate(A,P,W){if(d.isDir(P.mode))throw new d.ErrnoError(31);if(!d.isFile(P.mode))throw new d.ErrnoError(28);var J=d.nodePermissions(P,"w");if(J)throw new d.ErrnoError(J);d.doSetAttr(A,P,{size:W,timestamp:Date.now()})},truncate(A,P){if(P<0)throw new d.ErrnoError(28);var W;if(typeof A=="string"){var J=d.lookupPath(A,{follow:!0});W=J.node}else W=A;d.doTruncate(null,W,P)},ftruncate(A,P){var W=d.getStreamChecked(A);if(P<0||(W.flags&2097155)===0)throw new d.ErrnoError(28);d.doTruncate(W,W.node,P)},utime(A,P,W){var J=d.lookupPath(A,{follow:!0}),de=J.node,Ae=d.checkOpExists(de.node_ops.setattr,63);Ae(de,{atime:P,mtime:W})},open(A,P,W=438){if(A==="")throw new d.ErrnoError(44);P=typeof P=="string"?Un(P):P,P&64?W=W&4095|32768:W=0;var J,de;if(typeof A=="object")J=A;else{de=A.endsWith("/");var Ae=d.lookupPath(A,{follow:!(P&131072),noent_okay:!0});J=Ae.node,A=Ae.path}var qe=!1;if(P&64)if(J){if(P&128)throw new d.ErrnoError(20)}else{if(de)throw new d.ErrnoError(31);J=d.mknod(A,W|511,0),qe=!0}if(!J)throw new d.ErrnoError(44);if(d.isChrdev(J.mode)&&(P&=-513),P&65536&&!d.isDir(J.mode))throw new d.ErrnoError(54);if(!qe){var w=d.mayOpen(J,P);if(w)throw new d.ErrnoError(w)}P&512&&!qe&&d.truncate(J,0),P&=-131713;var I=d.createStream({node:J,path:d.getPath(J),flags:P,seekable:!0,position:0,stream_ops:J.stream_ops,ungotten:[],error:!1});return I.stream_ops.open&&I.stream_ops.open(I),qe&&d.chmod(J,W&511),t.logReadFiles&&!(P&1)&&(A in d.readFiles||(d.readFiles[A]=1)),I},close(A){if(d.isClosed(A))throw new d.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(P){throw P}finally{d.closeStream(A.fd)}A.fd=null},isClosed(A){return A.fd===null},llseek(A,P,W){if(d.isClosed(A))throw new d.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new d.ErrnoError(70);if(W!=0&&W!=1&&W!=2)throw new d.ErrnoError(28);return A.position=A.stream_ops.llseek(A,P,W),A.ungotten=[],A.position},read(A,P,W,J,de){if(J<0||de<0)throw new d.ErrnoError(28);if(d.isClosed(A))throw new d.ErrnoError(8);if((A.flags&2097155)===1)throw new d.ErrnoError(8);if(d.isDir(A.node.mode))throw new d.ErrnoError(31);if(!A.stream_ops.read)throw new d.ErrnoError(28);var Ae=typeof de<"u";if(!Ae)de=A.position;else if(!A.seekable)throw new d.ErrnoError(70);var qe=A.stream_ops.read(A,P,W,J,de);return Ae||(A.position+=qe),qe},write(A,P,W,J,de,Ae){if(J<0||de<0)throw new d.ErrnoError(28);if(d.isClosed(A))throw new d.ErrnoError(8);if((A.flags&2097155)===0)throw new d.ErrnoError(8);if(d.isDir(A.node.mode))throw new d.ErrnoError(31);if(!A.stream_ops.write)throw new d.ErrnoError(28);A.seekable&&A.flags&1024&&d.llseek(A,0,2);var qe=typeof de<"u";if(!qe)de=A.position;else if(!A.seekable)throw new d.ErrnoError(70);var w=A.stream_ops.write(A,P,W,J,de,Ae);return qe||(A.position+=w),w},mmap(A,P,W,J,de){if((J&2)!==0&&(de&2)===0&&(A.flags&2097155)!==2)throw new d.ErrnoError(2);if((A.flags&2097155)===1)throw new d.ErrnoError(2);if(!A.stream_ops.mmap)throw new d.ErrnoError(43);if(!P)throw new d.ErrnoError(28);return A.stream_ops.mmap(A,P,W,J,de)},msync(A,P,W,J,de){return A.stream_ops.msync?A.stream_ops.msync(A,P,W,J,de):0},ioctl(A,P,W){if(!A.stream_ops.ioctl)throw new d.ErrnoError(59);return A.stream_ops.ioctl(A,P,W)},readFile(A,P={}){if(P.flags=P.flags||0,P.encoding=P.encoding||"binary",P.encoding!=="utf8"&&P.encoding!=="binary")throw new Error(`Invalid encoding type "${P.encoding}"`);var W,J=d.open(A,P.flags),de=d.stat(A),Ae=de.size,qe=new Uint8Array(Ae);return d.read(J,qe,0,Ae,0),P.encoding==="utf8"?W=be(qe):P.encoding==="binary"&&(W=qe),d.close(J),W},writeFile(A,P,W={}){W.flags=W.flags||577;var J=d.open(A,W.flags,W.mode);if(typeof P=="string"){var de=new Uint8Array(Oe(P)+1),Ae=je(P,de,0,de.length);d.write(J,de,0,Ae,void 0,W.canOwn)}else if(ArrayBuffer.isView(P))d.write(J,P,0,P.byteLength,void 0,W.canOwn);else throw new Error("Unsupported data type");d.close(J)},cwd:()=>d.currentPath,chdir(A){var P=d.lookupPath(A,{follow:!0});if(P.node===null)throw new d.ErrnoError(44);if(!d.isDir(P.node.mode))throw new d.ErrnoError(54);var W=d.nodePermissions(P.node,"x");if(W)throw new d.ErrnoError(W);d.currentPath=P.path},createDefaultDirectories(){d.mkdir("/tmp"),d.mkdir("/home"),d.mkdir("/home/web_user")},createDefaultDevices(){d.mkdir("/dev"),d.registerDevice(d.makedev(1,3),{read:()=>0,write:(J,de,Ae,qe,w)=>qe,llseek:()=>0}),d.mkdev("/dev/null",d.makedev(1,3)),ht.register(d.makedev(5,0),ht.default_tty_ops),ht.register(d.makedev(6,0),ht.default_tty1_ops),d.mkdev("/dev/tty",d.makedev(5,0)),d.mkdev("/dev/tty1",d.makedev(6,0));var A=new Uint8Array(1024),P=0,W=()=>(P===0&&(ie(A),P=A.byteLength),A[--P]);d.createDevice("/dev","random",W),d.createDevice("/dev","urandom",W),d.mkdir("/dev/shm"),d.mkdir("/dev/shm/tmp")},createSpecialDirectories(){d.mkdir("/proc");var A=d.mkdir("/proc/self");d.mkdir("/proc/self/fd"),d.mount({mount(){var P=d.createNode(A,"fd",16895,73);return P.stream_ops={llseek:we.stream_ops.llseek},P.node_ops={lookup(W,J){var de=+J,Ae=d.getStreamChecked(de),qe={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>Ae.path},id:de+1};return qe.parent=qe,qe},readdir(){return Array.from(d.streams.entries()).filter(([W,J])=>J).map(([W,J])=>W.toString())}},P}},{},"/proc/self/fd")},createStandardStreams(A,P,W){A?d.createDevice("/dev","stdin",A):d.symlink("/dev/tty","/dev/stdin"),P?d.createDevice("/dev","stdout",null,P):d.symlink("/dev/tty","/dev/stdout"),W?d.createDevice("/dev","stderr",null,W):d.symlink("/dev/tty1","/dev/stderr");var J=d.open("/dev/stdin",0),de=d.open("/dev/stdout",1),Ae=d.open("/dev/stderr",1)},staticInit(){d.nameTable=new Array(4096),d.mount(we,{},"/"),d.createDefaultDirectories(),d.createDefaultDevices(),d.createSpecialDirectories(),d.filesystems={MEMFS:we}},init(A,P,W){d.initialized=!0,A??=t.stdin,P??=t.stdout,W??=t.stderr,d.createStandardStreams(A,P,W)},quit(){d.initialized=!1;for(var A of d.streams)A&&d.close(A)},findObject(A,P){var W=d.analyzePath(A,P);return W.exists?W.object:null},analyzePath(A,P){try{var W=d.lookupPath(A,{follow:!P});A=W.path}catch{}var J={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var W=d.lookupPath(A,{parent:!0});J.parentExists=!0,J.parentPath=W.path,J.parentObject=W.node,J.name=ne.basename(A),W=d.lookupPath(A,{follow:!P}),J.exists=!0,J.path=W.path,J.object=W.node,J.name=W.node.name,J.isRoot=W.path==="/"}catch(de){J.error=de.errno}return J},createPath(A,P,W,J){A=typeof A=="string"?A:d.getPath(A);for(var de=P.split("/").reverse();de.length;){var Ae=de.pop();if(Ae){var qe=ne.join2(A,Ae);try{d.mkdir(qe)}catch(w){if(w.errno!=20)throw w}A=qe}}return qe},createFile(A,P,W,J,de){var Ae=ne.join2(typeof A=="string"?A:d.getPath(A),P),qe=Ti(J,de);return d.create(Ae,qe)},createDataFile(A,P,W,J,de,Ae){var qe=P;A&&(A=typeof A=="string"?A:d.getPath(A),qe=P?ne.join2(A,P):A);var w=Ti(J,de),I=d.create(qe,w);if(W){if(typeof W=="string"){for(var B=new Array(W.length),K=0,oe=W.length;Kthis.length-1||Te<0)){var Ie=Te%this.chunkSize,rt=Te/this.chunkSize|0;return this.getter(rt)[Ie]}}setDataGetter(Te){this.getter=Te}cacheLength(){var Te=new XMLHttpRequest;if(Te.open("HEAD",W,!1),Te.send(null),!(Te.status>=200&&Te.status<300||Te.status===304))throw new Error("Couldn't load "+W+". Status: "+Te.status);var Ie=Number(Te.getResponseHeader("Content-length")),rt,Ut=(rt=Te.getResponseHeader("Accept-Ranges"))&&rt==="bytes",ln=(rt=Te.getResponseHeader("Content-Encoding"))&&rt==="gzip",gn=1024*1024;Ut||(gn=Ie);var hn=(Dt,Kn)=>{if(Dt>Kn)throw new Error("invalid range ("+Dt+", "+Kn+") or no bytes requested!");if(Kn>Ie-1)throw new Error("only "+Ie+" bytes available! programmer error!");var Qn=new XMLHttpRequest;if(Qn.open("GET",W,!1),Ie!==gn&&Qn.setRequestHeader("Range","bytes="+Dt+"-"+Kn),Qn.responseType="arraybuffer",Qn.overrideMimeType&&Qn.overrideMimeType("text/plain; charset=x-user-defined"),Qn.send(null),!(Qn.status>=200&&Qn.status<300||Qn.status===304))throw new Error("Couldn't load "+W+". Status: "+Qn.status);return Qn.response!==void 0?new Uint8Array(Qn.response||[]):Ct(Qn.responseText||"",!0)},un=this;un.setDataGetter(Dt=>{var Kn=Dt*gn,Qn=(Dt+1)*gn-1;if(Qn=Math.min(Qn,Ie-1),typeof un.chunks[Dt]>"u"&&(un.chunks[Dt]=hn(Kn,Qn)),typeof un.chunks[Dt]>"u")throw new Error("doXHR failed!");return un.chunks[Dt]}),(ln||!Ie)&&(gn=Ie=1,Ie=this.getter(0).length,gn=Ie,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Ie,this._chunkSize=gn,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var qe=new Ae,w={isDevice:!1,contents:qe}}else var w={isDevice:!1,url:W};var I=d.createFile(A,P,w,J,de);w.contents?I.contents=w.contents:w.url&&(I.contents=null,I.url=w.url),Object.defineProperties(I,{usedBytes:{get:function(){return this.contents.length}}});var B={},K=Object.keys(I.stream_ops);K.forEach(Se=>{var Te=I.stream_ops[Se];B[Se]=(...Ie)=>(d.forceLoadFile(I),Te(...Ie))});function oe(Se,Te,Ie,rt,Ut){var ln=Se.node.contents;if(Ut>=ln.length)return 0;var gn=Math.min(ln.length-Ut,rt);if(ln.slice)for(var hn=0;hn(d.forceLoadFile(I),oe(Se,Te,Ie,rt,Ut)),B.mmap=(Se,Te,Ie,rt,Ut)=>{d.forceLoadFile(I);var ln=at(Te);if(!ln)throw new d.ErrnoError(48);return oe(Se,Q,ln,Te,Ie),{ptr:ln,allocated:!0}},I.stream_ops=B,I}},Ke={DEFAULT_POLLMASK:5,calculateAt(A,P,W){if(ne.isAbs(P))return P;var J;if(A===-100)J=d.cwd();else{var de=Ke.getStreamFromFD(A);J=de.path}if(P.length==0){if(!W)throw new d.ErrnoError(44);return J}return J+"/"+P},writeStat(A,P){j[A>>2]=P.dev,j[A+4>>2]=P.mode,he[A+8>>2]=P.nlink,j[A+12>>2]=P.uid,j[A+16>>2]=P.gid,j[A+20>>2]=P.rdev,Pe=[P.size>>>0,(_e=P.size,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+24>>2]=Pe[0],j[A+28>>2]=Pe[1],j[A+32>>2]=4096,j[A+36>>2]=P.blocks;var W=P.atime.getTime(),J=P.mtime.getTime(),de=P.ctime.getTime();return Pe=[Math.floor(W/1e3)>>>0,(_e=Math.floor(W/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+40>>2]=Pe[0],j[A+44>>2]=Pe[1],he[A+48>>2]=W%1e3*1e3*1e3,Pe=[Math.floor(J/1e3)>>>0,(_e=Math.floor(J/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+56>>2]=Pe[0],j[A+60>>2]=Pe[1],he[A+64>>2]=J%1e3*1e3*1e3,Pe=[Math.floor(de/1e3)>>>0,(_e=Math.floor(de/1e3),+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+72>>2]=Pe[0],j[A+76>>2]=Pe[1],he[A+80>>2]=de%1e3*1e3*1e3,Pe=[P.ino>>>0,(_e=P.ino,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[A+88>>2]=Pe[0],j[A+92>>2]=Pe[1],0},writeStatFs(A,P){j[A+4>>2]=P.bsize,j[A+40>>2]=P.bsize,j[A+8>>2]=P.blocks,j[A+12>>2]=P.bfree,j[A+16>>2]=P.bavail,j[A+20>>2]=P.files,j[A+24>>2]=P.ffree,j[A+28>>2]=P.fsid,j[A+44>>2]=P.flags,j[A+36>>2]=P.namelen},doMsync(A,P,W,J,de){if(!d.isFile(P.node.mode))throw new d.ErrnoError(43);if(J&2)return 0;var Ae=H.slice(A,A+W);d.msync(P,Ae,de,W,J)},getStreamFromFD(A){var P=d.getStreamChecked(A);return P},varargs:void 0,getStr(A){var P=U(A);return P}};function ul(A,P){try{return A=Ke.getStr(A),d.chmod(A,P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function us(A,P,W,J){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),W&-8)return-28;var de=d.lookupPath(P,{follow:!0}),Ae=de.node;if(!Ae)return-44;var qe="";return W&4&&(qe+="r"),W&2&&(qe+="w"),W&1&&(qe+="x"),qe&&d.nodePermissions(Ae,qe)?-2:0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function Fr(A,P){try{return d.fchmod(A,P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function Ps(A,P,W){try{return d.fchown(A,P,W),0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}var er=()=>{var A=j[+Ke.varargs>>2];return Ke.varargs+=4,A},cs=er;function Pr(A,P,W){Ke.varargs=W;try{var J=Ke.getStreamFromFD(A);switch(P){case 0:{var de=er();if(de<0)return-28;for(;d.streams[de];)de++;var Ae;return Ae=d.dupStream(J,de),Ae.fd}case 1:case 2:return 0;case 3:return J.flags;case 4:{var de=er();return J.flags|=de,0}case 12:{var de=cs(),qe=0;return Z[de+qe>>1]=2,0}case 13:case 14:return 0}return-28}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function fs(A,P){try{return Ke.writeStat(P,d.fstat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}var hi=(A,P)=>P+2097152>>>0<4194305-!!A?(A>>>0)+P*4294967296:NaN;function yo(A,P,W){var J=hi(P,W);try{return isNaN(J)?-61:(d.ftruncate(A,J),0)}catch(de){if(typeof d>"u"||de.name!=="ErrnoError")throw de;return-de.errno}}var wn=(A,P,W)=>je(A,H,P,W);function Us(A,P){try{if(P===0)return-28;var W=d.cwd(),J=Oe(W)+1;return P"u"||de.name!=="ErrnoError")throw de;return-de.errno}}function Xa(A,P){try{return A=Ke.getStr(A),Ke.writeStat(P,d.lstat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function $r(A,P,W){try{return P=Ke.getStr(P),P=Ke.calculateAt(A,P),d.mkdir(P,W,0),0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}function Jr(A,P,W,J){try{P=Ke.getStr(P);var de=J&256,Ae=J&4096;return J=J&-6401,P=Ke.calculateAt(A,P,Ae),Ke.writeStat(W,de?d.lstat(P):d.stat(P))}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return-qe.errno}}function ds(A,P,W,J){Ke.varargs=J;try{P=Ke.getStr(P),P=Ke.calculateAt(A,P);var de=J?er():0;return d.open(P,W,de).fd}catch(Ae){if(typeof d>"u"||Ae.name!=="ErrnoError")throw Ae;return-Ae.errno}}function bo(A,P,W,J){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),J<=0)return-28;var de=d.readlink(P),Ae=Math.min(J,Oe(de)),qe=Q[W+Ae];return wn(de,W,J+1),Q[W+Ae]=qe,Ae}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return-w.errno}}function hs(A){try{return A=Ke.getStr(A),d.rmdir(A),0}catch(P){if(typeof d>"u"||P.name!=="ErrnoError")throw P;return-P.errno}}function ps(A,P){try{return A=Ke.getStr(A),Ke.writeStat(P,d.stat(A))}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return-W.errno}}function So(A,P,W){try{if(P=Ke.getStr(P),P=Ke.calculateAt(A,P),!W)d.unlink(P);else if(W===512)d.rmdir(P);else return-28;return 0}catch(J){if(typeof d>"u"||J.name!=="ErrnoError")throw J;return-J.errno}}var ae=A=>he[A>>2]+j[A+4>>2]*4294967296;function Fe(A,P,W,J){try{P=Ke.getStr(P),P=Ke.calculateAt(A,P,!0);var de=Date.now(),Ae,qe;if(!W)Ae=de,qe=de;else{var w=ae(W),I=j[W+8>>2];I==1073741823?Ae=de:I==1073741822?Ae=null:Ae=w*1e3+I/1e6,W+=16,w=ae(W),I=j[W+8>>2],I==1073741823?qe=de:I==1073741822?qe=null:qe=w*1e3+I/1e6}return(qe??Ae)!==null&&d.utime(P,Ae,qe),0}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var Ye=()=>Mt(""),Be=0,He=()=>{fn=!1,Be=0},It=A=>A%4===0&&(A%100!==0||A%400===0),Bt=[0,31,60,91,121,152,182,213,244,274,305,335],wt=[0,31,59,90,120,151,181,212,243,273,304,334],Nt=A=>{var P=It(A.getFullYear()),W=P?Bt:wt,J=W[A.getMonth()]+A.getDate()-1;return J};function Kt(A,P,W){var J=hi(A,P),de=new Date(J*1e3);j[W>>2]=de.getSeconds(),j[W+4>>2]=de.getMinutes(),j[W+8>>2]=de.getHours(),j[W+12>>2]=de.getDate(),j[W+16>>2]=de.getMonth(),j[W+20>>2]=de.getFullYear()-1900,j[W+24>>2]=de.getDay();var Ae=Nt(de)|0;j[W+28>>2]=Ae,j[W+36>>2]=-(de.getTimezoneOffset()*60);var qe=new Date(de.getFullYear(),0,1),w=new Date(de.getFullYear(),6,1).getTimezoneOffset(),I=qe.getTimezoneOffset(),B=(w!=I&&de.getTimezoneOffset()==Math.min(I,w))|0;j[W+32>>2]=B}function yn(A,P,W,J,de,Ae,qe,w){var I=hi(de,Ae);try{var B=Ke.getStreamFromFD(J),K=d.mmap(B,A,I,P,W),oe=K.ptr;return j[qe>>2]=K.allocated,he[w>>2]=oe,0}catch(Se){if(typeof d>"u"||Se.name!=="ErrnoError")throw Se;return-Se.errno}}function Sn(A,P,W,J,de,Ae,qe){var w=hi(Ae,qe);try{var I=Ke.getStreamFromFD(de);W&2&&Ke.doMsync(A,I,P,J,w)}catch(B){if(typeof d>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var _t={},En=A=>{if(A instanceof dt||A=="unwind")return G;h(1,A)},ri=()=>fn||Be>0,Hn=A=>{G=A,ri()||(t.onExit?.(A),q=!0),h(A,new dt(A))},On=(A,P)=>{G=A,Hn(A)},Xi=On,Pt=()=>{if(!ri())try{Xi(G)}catch(A){En(A)}},Oi=A=>{if(!q)try{A(),Pt()}catch(P){En(P)}},xn=()=>performance.now(),ai=(A,P)=>{if(_t[A]&&(clearTimeout(_t[A].id),delete _t[A]),!P)return 0;var W=setTimeout(()=>{delete _t[A],Oi(()=>Jp(A,xn()))},P);return _t[A]={id:W,timeout_ms:P},0},Vn=(A,P,W,J)=>{var de=new Date().getFullYear(),Ae=new Date(de,0,1),qe=new Date(de,6,1),w=Ae.getTimezoneOffset(),I=qe.getTimezoneOffset(),B=Math.max(w,I);he[A>>2]=B*60,j[P>>2]=+(w!=I);var K=Te=>{var Ie=Te>=0?"-":"+",rt=Math.abs(Te),Ut=String(Math.floor(rt/60)).padStart(2,"0"),ln=String(rt%60).padStart(2,"0");return`UTC${Ie}${Ut}${ln}`},oe=K(w),Se=K(I);IDate.now(),Ur=()=>2147483648,zn=A=>{var P=k.buffer,W=(A-P.byteLength+65535)/65536|0;try{return k.grow(W),Ne(),1}catch{}},vi=A=>{var P=H.length;A>>>=0;var W=Ur();if(A>W)return!1;for(var J=1;J<=4;J*=2){var de=P*(1+.2/J);de=Math.min(de,A+100663296);var Ae=Math.min(W,bt(Math.max(A,de),65536)),qe=zn(Ae);if(qe)return!0}return!1},pi={},jn=()=>p||"./this.program",si=()=>{if(!si.strings){var A=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",P={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:A,_:jn()};for(var W in pi)pi[W]===void 0?delete P[W]:P[W]=pi[W];var J=[];for(var W in P)J.push(`${W}=${P[W]}`);si.strings=J}return si.strings},da=(A,P)=>{var W=0,J=0;for(var de of si()){var Ae=P+W;he[A+J>>2]=Ae,W+=wn(de,Ae,1/0)+1,J+=4}return 0},Eo=(A,P)=>{var W=si();he[A>>2]=W.length;var J=0;for(var de of W)J+=Oe(de)+1;return he[P>>2]=J,0};function Vu(A){try{var P=Ke.getStreamFromFD(A);return d.close(P),0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return W.errno}}function Gu(A,P){try{var W=0,J=0,de=0,Ae=Ke.getStreamFromFD(A),qe=Ae.tty?2:d.isDir(Ae.mode)?3:d.isLink(Ae.mode)?7:4;return Q[P]=qe,Z[P+2>>1]=de,Pe=[W>>>0,(_e=W,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[P+8>>2]=Pe[0],j[P+12>>2]=Pe[1],Pe=[J>>>0,(_e=J,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[P+16>>2]=Pe[0],j[P+20>>2]=Pe[1],0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return w.errno}}var Wu=(A,P,W,J)=>{for(var de=0,Ae=0;Ae>2],w=he[P+4>>2];P+=8;var I=d.read(A,Q,qe,w,J);if(I<0)return-1;if(de+=I,I>2]=Ae,0}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return qe.errno}}function Qu(A,P,W,J,de){var Ae=hi(P,W);try{if(isNaN(Ae))return 61;var qe=Ke.getStreamFromFD(A);return d.llseek(qe,Ae,J),Pe=[qe.position>>>0,(_e=qe.position,+Math.abs(_e)>=1?_e>0?+Math.floor(_e/4294967296)>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],j[de>>2]=Pe[0],j[de+4>>2]=Pe[1],qe.getdents&&Ae===0&&J===0&&(qe.getdents=null),0}catch(w){if(typeof d>"u"||w.name!=="ErrnoError")throw w;return w.errno}}function wo(A){try{var P=Ke.getStreamFromFD(A);return P.stream_ops?.fsync?P.stream_ops.fsync(P):0}catch(W){if(typeof d>"u"||W.name!=="ErrnoError")throw W;return W.errno}}var Xu=(A,P,W,J)=>{for(var de=0,Ae=0;Ae>2],w=he[P+4>>2];P+=8;var I=d.write(A,Q,qe,w,J);if(I<0)return-1;if(de+=I,I>2]=Ae,0}catch(qe){if(typeof d>"u"||qe.name!=="ErrnoError")throw qe;return qe.errno}}var it=function(){let A=typeof Asyncify=="object"?Asyncify.handleAsync.bind(Asyncify):null;t.handleAsync=A;let P=new Map;t.setCallback=(W,J)=>P.set(W,J),t.getCallback=W=>P.get(W),t.deleteCallback=W=>P.delete(W),it=function(W,J,...de){let Ae=P.get(J),qe=null,w=typeof Ae=="function"?Ae:Ae[qe=U(de.shift())];if(W){if(A)return A(()=>w.apply(Ae,de));throw new Error("Synchronous WebAssembly cannot call async function")}let I=w.apply(Ae,de);if(typeof I?.then=="function")throw console.error("unexpected Promise",w),new Error(`${qe} unexpectedly returned a Promise`);return I}};function Yu(...A){return it(!1,...A)}function cl(...A){return it(!0,...A)}function tu(...A){return it(!1,...A)}function fl(...A){return it(!0,...A)}function Ku(...A){return it(!1,...A)}function dl(...A){return it(!0,...A)}function Zu(...A){return it(!1,...A)}function hl(...A){return it(!0,...A)}function Jc(...A){return it(!1,...A)}function pl(...A){return it(!0,...A)}function zs(...A){return it(!1,...A)}function ml(...A){return it(!0,...A)}function _l(...A){return it(!1,...A)}function qs(...A){return it(!0,...A)}function $u(...A){return it(!1,...A)}function xo(...A){return it(!0,...A)}function ef(...A){return it(!1,...A)}function gl(...A){return it(!0,...A)}function Ju(...A){return it(!1,...A)}function vl(...A){return it(!0,...A)}function ec(...A){return it(!1,...A)}function yl(...A){return it(!0,...A)}function nu(...A){return it(!1,...A)}function bl(...A){return it(!0,...A)}function tc(...A){return it(!1,...A)}function To(...A){return it(!0,...A)}function nc(...A){return it(!1,...A)}function iu(...A){return it(!0,...A)}function ru(...A){return it(!1,...A)}function Sl(...A){return it(!0,...A)}function au(...A){return it(!1,...A)}function su(...A){return it(!0,...A)}var Bs=(A,P)=>{A<128?P.push(A):P.push(A%128|128,A>>7)},Mo=A=>{for(var P={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},W={parameters:[],results:A[0]=="v"?[]:[P[A[0]]]},J=1;J{var W=A.slice(0,1),J=A.slice(1),de={i:127,p:127,j:126,f:125,d:124,e:111};P.push(96),Bs(J.length,P);for(var Ae of J)P.push(de[Ae]);W=="v"?P.push(0):P.push(1,de[W])},Ao=(A,P)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(Mo(P),A);var W=[1];ic(P,W);var J=[0,97,115,109,1,0,0,0,1];Bs(W.length,J),J.push(...W),J.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var de=new WebAssembly.Module(new Uint8Array(J)),Ae=new WebAssembly.Instance(de,{e:{f:A}}),qe=Ae.exports.f;return qe},Zt,Xt=A=>Zt.get(A),ou=(A,P)=>{if(ms)for(var W=A;W(ms||(ms=new WeakMap,ou(0,Zt.length)),ms.get(A)||0),Ya=[],lu=()=>{if(Ya.length)return Ya.pop();try{Zt.grow(1)}catch(A){throw A instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":A}return Zt.length-1},Tr=(A,P)=>Zt.set(A,P),ha=(A,P)=>{var W=xr(A);if(W)return W;var J=lu();try{Tr(J,A)}catch(Ae){if(!(Ae instanceof TypeError))throw Ae;var de=Ao(A,P);Tr(J,de)}return ms.set(A,J),J},El=A=>{var P=t["_"+A];return P},Hs=(A,P)=>{Q.set(A,P)},Co=A=>hf(A),wl=A=>{var P=Oe(A)+1,W=Co(P);return wn(A,W,P),W},Ta=(A,P,W,J,de)=>{var Ae={string:Ie=>{var rt=0;return Ie!=null&&Ie!==0&&(rt=wl(Ie)),rt},array:Ie=>{var rt=Co(Ie.length);return Hs(Ie,rt),rt}};function qe(Ie){return P==="string"?U(Ie):P==="boolean"?!!Ie:Ie}var w=El(A),I=[],B=0;if(J)for(var K=0;K{var de=!W||W.every(qe=>qe==="number"||qe==="boolean"),Ae=P!=="string";return Ae&&de&&!J?El(A):(...qe)=>Ta(A,P,W,qe,J)},Ro=A=>lv(),xl=(A,P,W)=>{if(W??=2147483647,W<2)return 0;W-=2;for(var J=P,de=W>1]=qe,P+=2}return Z[P>>1]=0,P-J},Ma=(A,P,W)=>{if(W??=2147483647,W<4)return 0;for(var J=P,de=J+W-4,Ae=0;Ae=55296&&qe<=57343){var w=A.charCodeAt(++Ae);qe=65536+((qe&1023)<<10)|w&1023}if(j[P>>2]=qe,P+=4,P+4>de)break}return j[P>>2]=0,P-J},Aa=A=>{for(var P="";;){var W=H[A++];if(!W)return P;P+=String.fromCharCode(W)}},Vs=new TextDecoder("utf-16le"),uu=(A,P)=>{for(var W=A>>1,J=W+P/2,de=W;!(de>=J)&&te[de];)++de;return Vs.decode(te.subarray(W,de))},Tl=(A,P)=>{for(var W=0,J="";!(W>=P/4);){var de=j[A+W*4>>2];if(de==0)break;if(++W,de>=65536){var Ae=de-65536;J+=String.fromCharCode(55296|Ae>>10,56320|Ae&1023)}else J+=String.fromCharCode(de)}return J},rc=A=>{for(var P=[],W=0;W255&&(J&=255),P.push(String.fromCharCode(J))}return P.join("")},tf=Ro;d.createPreloadedFile=Wn,d.staticInit(),we.doesNotExistError=new d.ErrnoError(44),we.doesNotExistError.stack="",it(),t.noExitRuntime&&(fn=t.noExitRuntime),t.preloadPlugins&&(Yt=t.preloadPlugins),t.print&&(v=t.print),t.printErr&&(M=t.printErr),t.wasmBinary&&(O=t.wasmBinary),t.arguments&&(f=t.arguments),t.thisProgram&&(p=t.thisProgram),t.getTempRet0=Ro,t.ccall=Ta,t.cwrap=oi,t.addFunction=ha,t.setValue=kt,t.getValue=Le,t.UTF8ToString=U,t.stringToUTF8=wn,t.lengthBytesUTF8=Oe,t.intArrayFromString=Ct,t.intArrayToString=rc,t.AsciiToString=Aa,t.UTF16ToString=uu,t.stringToUTF16=xl,t.UTF32ToString=Tl,t.stringToUTF32=Ma,t.writeArrayToMemory=Hs,t._getTempRet0=tf;var Gs={a:ee,aa:ul,da:us,ba:Fr,$:Ps,b:Pr,_:fs,y:yo,U:Us,Y:Xa,R:$r,X:Jr,P:ds,N:bo,M:hs,Z:ps,K:So,J:Fe,F:Ye,E:He,w:Kt,u:yn,v:Sn,G:ai,Q:Vn,n:wr,g:xn,H:vi,S:da,T:Eo,o:Vu,I:Gu,O:ju,x:Qu,V:wo,L:$c,s:Yu,t:cl,ka:tu,oa:fl,j:Ku,k:dl,c:Zu,d:hl,ga:Jc,ha:pl,ia:zs,ja:ml,h:_l,i:qs,z:$u,A:xo,e:ef,f:gl,ea:Ju,fa:vl,B:ec,C:yl,p:nu,q:bl,la:tc,ma:To,D:Hn,na:nc,r:iu,l:ru,m:Sl,W:au,ca:su},me=await lt(),pe=me.qa,cd=t._powersync_init_static=me.ra,fd=t._memcpy=me.sa,ce=t._memset=me.ta,ue=t._memcmp=me.ua,G_=t._sqlite3_status64=me.va,np=t._sqlite3_status=me.wa,dd=t._sqlite3_msize=me.xa,hd=t._sqlite3_db_status=me.ya,yb=t._sqlite3_vfs_find=me.za,W_=t._sqlite3_vfs_register=me.Aa,j_=t._sqlite3_vfs_unregister=me.Ba,pd=t._sqlite3_release_memory=me.Ca,ip=t._sqlite3_soft_heap_limit64=me.Da,rp=t._sqlite3_memory_used=me.Ea,Q_=t._sqlite3_hard_heap_limit64=me.Fa,Io=t._sqlite3_memory_highwater=me.Ga,ap=t._sqlite3_malloc=me.Ha,bb=t._sqlite3_malloc64=me.Ia,X_=t._sqlite3_free=me.Ja,_s=t._sqlite3_realloc=me.Ka,md=t._sqlite3_realloc64=me.La,Y_=t._sqlite3_str_vappendf=me.Ma,sp=t._sqlite3_str_append=me.Na,K_=t._sqlite3_str_appendchar=me.Oa,Z_=t._sqlite3_str_appendall=me.Pa,op=t._sqlite3_str_appendf=me.Qa,lp=t._sqlite3_str_finish=me.Ra,$_=t._sqlite3_str_errcode=me.Sa,_d=t._sqlite3_str_length=me.Ta,nf=t._sqlite3_str_value=me.Ua,Mi=t._sqlite3_str_reset=me.Va,Sb=t._sqlite3_str_new=me.Wa,Eb=t._sqlite3_vmprintf=me.Xa,J_=t._sqlite3_mprintf=me.Ya,rf=t._sqlite3_vsnprintf=me.Za,Ml=t._sqlite3_snprintf=me._a,eg=t._sqlite3_log=me.$a,tg=t._sqlite3_randomness=me.ab,Ws=t._sqlite3_stricmp=me.bb,Mr=t._sqlite3_strnicmp=me.cb,ng=t._sqlite3_os_init=me.db,af=t._sqlite3_os_end=me.eb,ig=t._sqlite3_serialize=me.fb,sf=t._sqlite3_prepare_v2=me.gb,up=t._sqlite3_step=me.hb,cp=t._sqlite3_column_int64=me.ib,fp=t._sqlite3_reset=me.jb,dp=t._sqlite3_exec=me.kb,rg=t._sqlite3_column_int=me.lb,hp=t._sqlite3_finalize=me.mb,pp=t._sqlite3_deserialize=me.nb,gd=t._sqlite3_database_file_object=me.ob,mp=t._sqlite3_backup_init=me.pb,ag=t._sqlite3_backup_step=me.qb,sg=t._sqlite3_backup_finish=me.rb,og=t._sqlite3_backup_remaining=me.sb,lg=t._sqlite3_backup_pagecount=me.tb,ac=t._sqlite3_clear_bindings=me.ub,ug=t._sqlite3_value_blob=me.vb,js=t._sqlite3_value_text=me.wb,vd=t._sqlite3_value_bytes=me.xb,_p=t._sqlite3_value_bytes16=me.yb,gp=t._sqlite3_value_double=me.zb,vp=t._sqlite3_value_int=me.Ab,cg=t._sqlite3_value_int64=me.Bb,yp=t._sqlite3_value_subtype=me.Cb,yd=t._sqlite3_value_pointer=me.Db,fg=t._sqlite3_value_text16=me.Eb,bp=t._sqlite3_value_text16be=me.Fb,dg=t._sqlite3_value_text16le=me.Gb,wb=t._sqlite3_value_type=me.Hb,bd=t._sqlite3_value_encoding=me.Ib,hg=t._sqlite3_value_nochange=me.Jb,Sp=t._sqlite3_value_frombind=me.Kb,pg=t._sqlite3_value_dup=me.Lb,Ep=t._sqlite3_value_free=me.Mb,mg=t._sqlite3_result_blob=me.Nb,Ca=t._sqlite3_result_blob64=me.Ob,wp=t._sqlite3_result_double=me.Pb,_g=t._sqlite3_result_error=me.Qb,gg=t._sqlite3_result_error16=me.Rb,xb=t._sqlite3_result_int=me.Sb,Sd=t._sqlite3_result_int64=me.Tb,Ar=t._sqlite3_result_null=me.Ub,vg=t._sqlite3_result_pointer=me.Vb,zr=t._sqlite3_result_subtype=me.Wb,yg=t._sqlite3_result_text=me.Xb,sc=t._sqlite3_result_text64=me.Yb,bg=t._sqlite3_result_text16=me.Zb,Qs=t._sqlite3_result_text16be=me._b,Al=t._sqlite3_result_text16le=me.$b,gs=t._sqlite3_result_value=me.ac,xp=t._sqlite3_result_error_toobig=me.bc,Tp=t._sqlite3_result_zeroblob=me.cc,Ka=t._sqlite3_result_zeroblob64=me.dc,Sg=t._sqlite3_result_error_code=me.ec,oc=t._sqlite3_result_error_nomem=me.fc,of=t._sqlite3_user_data=me.gc,Cl=t._sqlite3_context_db_handle=me.hc,Eg=t._sqlite3_vtab_nochange=me.ic,wg=t._sqlite3_vtab_in_first=me.jc,lf=t._sqlite3_vtab_in_next=me.kc,xg=t._sqlite3_aggregate_context=me.lc,Ed=t._sqlite3_get_auxdata=me.mc,Tg=t._sqlite3_set_auxdata=me.nc,Mp=t._sqlite3_column_count=me.oc,Ap=t._sqlite3_data_count=me.pc,Cp=t._sqlite3_column_blob=me.qc,Mg=t._sqlite3_column_bytes=me.rc,Rp=t._sqlite3_column_bytes16=me.sc,Ra=t._sqlite3_column_double=me.tc,Ag=t._sqlite3_column_text=me.uc,lc=t._sqlite3_column_value=me.vc,pa=t._sqlite3_column_text16=me.wc,Cg=t._sqlite3_column_type=me.xc,Rg=t._sqlite3_column_name=me.yc,Tb=t._sqlite3_column_name16=me.zc,Rl=t._sqlite3_bind_blob=me.Ac,Ig=t._sqlite3_bind_blob64=me.Bc,Ip=t._sqlite3_bind_double=me.Cc,uc=t._sqlite3_bind_int=me.Dc,Lg=t._sqlite3_bind_int64=me.Ec,Ng=t._sqlite3_bind_null=me.Fc,kg=t._sqlite3_bind_pointer=me.Gc,Og=t._sqlite3_bind_text=me.Hc,wd=t._sqlite3_bind_text64=me.Ic,Lp=t._sqlite3_bind_text16=me.Jc,Mb=t._sqlite3_bind_value=me.Kc,Ab=t._sqlite3_bind_zeroblob=me.Lc,Cb=t._sqlite3_bind_zeroblob64=me.Mc,Dg=t._sqlite3_bind_parameter_count=me.Nc,Fg=t._sqlite3_bind_parameter_name=me.Oc,cc=t._sqlite3_bind_parameter_index=me.Pc,xd=t._sqlite3_db_handle=me.Qc,Pg=t._sqlite3_stmt_readonly=me.Rc,Ug=t._sqlite3_stmt_isexplain=me.Sc,Rb=t._sqlite3_stmt_explain=me.Tc,Ib=t._sqlite3_stmt_busy=me.Uc,Lb=t._sqlite3_next_stmt=me.Vc,Np=t._sqlite3_stmt_status=me.Wc,kp=t._sqlite3_sql=me.Xc,Op=t._sqlite3_expanded_sql=me.Yc,zg=t._sqlite3_value_numeric_type=me.Zc,uf=t._sqlite3_blob_open=me._c,Dp=t._sqlite3_blob_close=me.$c,qg=t._sqlite3_blob_read=me.ad,li=t._sqlite3_blob_write=me.bd,Fp=t._sqlite3_blob_bytes=me.cd,Nb=t._sqlite3_blob_reopen=me.dd,Bg=t._sqlite3_set_authorizer=me.ed,kb=t._sqlite3_strglob=me.fd,Ob=t._sqlite3_strlike=me.gd,Db=t._sqlite3_errmsg=me.hd,Fb=t._sqlite3_load_extension=me.id,Pp=t._sqlite3_enable_load_extension=me.jd,Lo=t._sqlite3_auto_extension=me.kd,Hg=t._sqlite3_cancel_auto_extension=me.ld,Td=t._sqlite3_reset_auto_extension=me.md,cu=t._sqlite3_prepare=me.nd,Up=t._sqlite3_prepare_v3=me.od,Vg=t._sqlite3_prepare16=me.pd,zp=t._sqlite3_prepare16_v2=me.qd,Pb=t._sqlite3_prepare16_v3=me.rd,Gg=t._sqlite3_get_table=me.sd,Wg=t._sqlite3_free_table=me.td,jg=t._sqlite3_create_module=me.ud,Qg=t._sqlite3_create_module_v2=me.vd,Xg=t._sqlite3_drop_modules=me.wd,qp=t._sqlite3_declare_vtab=me.xd,qn=t._sqlite3_vtab_on_conflict=me.yd,Ub=t._sqlite3_vtab_config=me.zd,Ia=t._sqlite3_vtab_collation=me.Ad,Bp=t._sqlite3_vtab_in=me.Bd,zb=t._sqlite3_vtab_rhs_value=me.Cd,Md=t._sqlite3_vtab_distinct=me.Dd,fc=t._sqlite3_keyword_name=me.Ed,dc=t._sqlite3_keyword_count=me.Fd,Yg=t._sqlite3_keyword_check=me.Gd,Hp=t._sqlite3_complete=me.Hd,Kg=t._sqlite3_complete16=me.Id,No=t._sqlite3_libversion=me.Jd,Vp=t._sqlite3_libversion_number=me.Kd,Gp=t._sqlite3_threadsafe=me.Ld,Wp=t._sqlite3_initialize=me.Md,jp=t._sqlite3_shutdown=me.Nd,Il=t._sqlite3_config=me.Od,Qp=t._sqlite3_db_mutex=me.Pd,qb=t._sqlite3_db_release_memory=me.Qd,Bb=t._sqlite3_db_cacheflush=me.Rd,Xp=t._sqlite3_db_config=me.Sd,Hb=t._sqlite3_last_insert_rowid=me.Td,Zg=t._sqlite3_set_last_insert_rowid=me.Ud,$g=t._sqlite3_changes64=me.Vd,Vb=t._sqlite3_changes=me.Wd,Ad=t._sqlite3_total_changes64=me.Xd,_n=t._sqlite3_total_changes=me.Yd,Gb=t._sqlite3_txn_state=me.Zd,Wb=t._sqlite3_close=me._d,Jg=t._sqlite3_close_v2=me.$d,cf=t._sqlite3_busy_handler=me.ae,jb=t._sqlite3_progress_handler=me.be,Qb=t._sqlite3_busy_timeout=me.ce,Xb=t._sqlite3_interrupt=me.de,Yb=t._sqlite3_is_interrupted=me.ee,Kb=t._sqlite3_create_function=me.fe,Yp=t._sqlite3_create_function_v2=me.ge,ev=t._sqlite3_create_window_function=me.he,Cd=t._sqlite3_create_function16=me.ie,tv=t._sqlite3_overload_function=me.je,Zb=t._sqlite3_trace_v2=me.ke,$b=t._sqlite3_commit_hook=me.le,fu=t._sqlite3_update_hook=me.me,Xs=t._sqlite3_rollback_hook=me.ne,Gi=t._sqlite3_autovacuum_pages=me.oe,Ys=t._sqlite3_wal_autocheckpoint=me.pe,Cr=t._sqlite3_wal_hook=me.qe,Jb=t._sqlite3_wal_checkpoint_v2=me.re,eS=t._sqlite3_wal_checkpoint=me.se,hr=t._sqlite3_error_offset=me.te,ko=t._sqlite3_errmsg16=me.ue,tS=t._sqlite3_errcode=me.ve,nS=t._sqlite3_extended_errcode=me.we,iS=t._sqlite3_system_errno=me.xe,rS=t._sqlite3_errstr=me.ye,aS=t._sqlite3_limit=me.ze,Kp=t._sqlite3_open=me.Ae,nv=t._sqlite3_open_v2=me.Be,sS=t._sqlite3_open16=me.Ce,iv=t._sqlite3_create_collation=me.De,oS=t._sqlite3_create_collation_v2=me.Ee,lS=t._sqlite3_create_collation16=me.Fe,hc=t._sqlite3_collation_needed=me.Ge,Oo=t._sqlite3_collation_needed16=me.He,uS=t._sqlite3_get_clientdata=me.Ie,cS=t._sqlite3_set_clientdata=me.Je,fS=t._sqlite3_get_autocommit=me.Ke,ff=t._sqlite3_table_column_metadata=me.Le,dS=t._sqlite3_sleep=me.Me,hS=t._sqlite3_extended_result_codes=me.Ne,pS=t._sqlite3_file_control=me.Oe,df=t._sqlite3_test_control=me.Pe,mS=t._sqlite3_create_filename=me.Qe,_S=t._sqlite3_free_filename=me.Re,gS=t._sqlite3_uri_parameter=me.Se,vS=t._sqlite3_uri_key=me.Te,yS=t._sqlite3_uri_boolean=me.Ue,bS=t._sqlite3_uri_int64=me.Ve,SS=t._sqlite3_filename_database=me.We,ES=t._sqlite3_filename_journal=me.Xe,wS=t._sqlite3_filename_wal=me.Ye,xS=t._sqlite3_db_name=me.Ze,TS=t._sqlite3_db_filename=me._e,MS=t._sqlite3_db_readonly=me.$e,rv=t._sqlite3_compileoption_used=me.af,AS=t._sqlite3_compileoption_get=me.bf,CS=t._sqlite3_sourceid=me.cf,RS=t._malloc=me.df,IS=t._free=me.ef,av=t._RegisterExtensionFunctions=me.ff,LS=t._getSqliteFree=me.gf,Zp=t._main=me.hf,sv=t._libauthorizer_set_authorizer=me.jf,NS=t._libfunction_create_function=me.kf,$p=t._libhook_commit_hook=me.lf,ov=t._libhook_update_hook=me.mf,Rd=t._libprogress_progress_handler=me.nf,kS=t._libvfs_vfs_register=me.of,Id=me.qf,Jp=me.rf,lv=me.sf,uv=me.tf,hf=me.uf,em=me.vf,cv=t.dynCall_viiiij=me.dynCall_viiiij,tm=t.dynCall_vijii=me.dynCall_vijii,Ld=t.dynCall_iiiij=me.dynCall_iiiij,nm=t.dynCall_viji=me.dynCall_viji,fv=t.dynCall_iij=me.dynCall_iij,Nd=t.dynCall_iijii=me.dynCall_iijii,kd=t.dynCall_iiji=me.dynCall_iiji,dv=t.dynCall_iiiiiij=me.dynCall_iiiiiij,im=t.dynCall_iiij=me.dynCall_iiij,rm=t.dynCall_jii=me.dynCall_jii,am=t.dynCall_ji=me.dynCall_ji,sm=t.dynCall_vij=me.dynCall_vij,om=t.dynCall_iiiiijii=me.dynCall_iiiiijii,OS=t.dynCall_j=me.dynCall_j,DS=t.dynCall_jj=me.dynCall_jj,FS=t.dynCall_jiij=me.dynCall_jiij,PS=t.dynCall_iiiiji=me.dynCall_iiiiji,hv=t.dynCall_iiiijii=me.dynCall_iiiijii,US=t.dynCall_ij=me.dynCall_ij,zS=t.dynCall_viiji=me.dynCall_viiji,qS=t.dynCall_viijii=me.dynCall_viijii,BS=t.dynCall_iiiijji=me.dynCall_iiiijji,HS=t._sqlite3_version=80488;function pv(){var A=Zp,P=0,W=0;try{var J=A(P,W);return On(J,!0),J}catch(de){return En(de)}}function Od(){if(We>0){gt=Od;return}if(Ve(),We>0){gt=Od;return}function A(){if(t.calledRun=!0,!q){Je(),i(t),t.onRuntimeInitialized?.();var P=t.noInitialRun||!1;P||pv(),st()}}t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),A()},1)):A()}function mv(){if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()()}return mv(),Od(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.set_authorizer=function(W,J,de){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,J instanceof A?1:0,"i32");let Ae=Ta("libauthorizer_set_authorizer","number",["number","number","number"],[W,J?1:0,P]);return!Ae&&J&&t.setCallback(P,(qe,w,I,B,K,oe)=>J(de,w,I,B,K,oe)),Ae}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=["xFunc","xStep","xFinal"],W=new Map;t.create_function=function(J,de,Ae,qe,w,I,B,K){let oe=t._sqlite3_malloc(4),Se={xFunc:I,xStep:B,xFinal:K};kt(oe,P.reduce((Ie,rt,Ut)=>Se[rt]instanceof A?Ie|1<J(Ae,qe,w,I,B))}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.commit_hook=function(W,J){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,J instanceof A?1:0,"i32"),Ta("libhook_commit_hook","void",["number","number","number"],[W,J?1:0,P]),J&&t.setCallback(P,de=>J())}})(),(function(){let A=Object.getPrototypeOf(async function(){}).constructor,P=0;t.progress_handler=function(W,J,de,Ae){P&&(t.deleteCallback(P),t._sqlite3_free(P),P=0),P=t._sqlite3_malloc(4),kt(P,de instanceof A?1:0,"i32"),Ta("libprogress_progress_handler","number",["number","number","number","number"],[W,J,de?1:0,P]),de&&t.setCallback(P,qe=>de(Ae))}})(),(function(){let A=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"],P=new Map;t.vfs_register=function(W,J){let de=0,Ae=0;A.forEach((w,I)=>{W[w]&&(de|=1<{});var Ote,G2,Roe,Qh=Da(()=>{J1();J1();Ote=512,G2=class{name;mxPathname=64;_module;constructor(e,t){this.name=e,this._module=t}close(){}isReady(){return!0}hasAsyncMethod(e){return!1}xOpen(e,t,i,r,a){return 14}xDelete(e,t,i){return 0}xAccess(e,t,i,r){return 0}xFullPathname(e,t,i,r){return 0}xGetLastError(e,t,i){return 0}xClose(e){return 0}xRead(e,t,i,r,a){return 0}xWrite(e,t,i,r,a){return 0}xTruncate(e,t,i){return 0}xSync(e,t){return 0}xFileSize(e,t){return 0}xLock(e,t){return 0}xUnlock(e,t){return 0}xCheckReservedLock(e,t){return 0}xFileControl(e,t,i){return 12}xSectorSize(e){return Ote}xDeviceCharacteristics(e){return 0}},Roe=[256,2048,512,4096,1024,8192,16384,524288].reduce((n,e)=>n|e)});function ZD(n,e){return e*4294967296+n+(n<0?2**32:0)}var Fte,Pte,Jl,$D,JD,ub=Da(()=>{Qh();Fte=Object.getPrototypeOf(async function(){}).constructor,Pte=24405875n*8640000n,Jl=class extends G2{constructor(e,t){super(e,t)}hasAsyncMethod(e){let t=`j${e.slice(1)}`;return this[t]instanceof Fte}getFilename(e){throw new Error("unimplemented")}jOpen(e,t,i,r){return 14}jDelete(e,t){return 0}jAccess(e,t,i){return 0}jFullPathname(e,t){let{read:i,written:r}=new TextEncoder().encodeInto(e,t);return i=t.length?10:(t[r]=0,0)}jGetLastError(e){return 0}jClose(e){return 0}jRead(e,t,i){return t.fill(0),522}jWrite(e,t,i){return 778}jTruncate(e,t){return 0}jSync(e,t){return 0}jFileSize(e,t){return 0}jLock(e,t){return 0}jUnlock(e,t){return 0}jCheckReservedLock(e,t){return t.setInt32(0,0,!0),0}jFileControl(e,t,i){return 12}jSectorSize(e){return super.xSectorSize(e)}jDeviceCharacteristics(e){return 0}xOpen(e,t,i,r,a){let s=this.#t(t,r),l=this.#n("Int32",a);return this.log?.("jOpen",s,i,"0x"+r.toString(16)),this.jOpen(s,i,r,l)}xRandomness(e,t,i){let r=new Uint8Array(t);crypto.getRandomValues(r);let a=i;return this._module.HEAPU8.set(r,a),t}xCurrentTimeInt64(e,t){let i=this.#n("BigInt64",t),r=BigInt(Date.now()),a=Pte+r;return i.setBigInt64(0,a,!0),0}xDelete(e,t,i){let r=this._module.UTF8ToString(t);return this.log?.("jDelete",r,i),this.jDelete(r,i)}xAccess(e,t,i,r){let a=this._module.UTF8ToString(t),s=this.#n("Int32",r);return this.log?.("jAccess",a,i),this.jAccess(a,i,s)}xFullPathname(e,t,i,r){let a=this._module.UTF8ToString(t),s=this._module.HEAPU8.subarray(r,r+i);return this.log?.("jFullPathname",a,i),this.jFullPathname(a,s)}xGetLastError(e,t,i){let r=this._module.HEAPU8.subarray(i,i+t);return this.log?.("jGetLastError",t),this.jGetLastError(r)}xClose(e){return this.log?.("jClose",e),this.jClose(e)}xRead(e,t,i,r,a){let s=this.#e(t,i),l=ZD(r,a);return this.log?.("jRead",e,i,l),this.jRead(e,s,l)}xWrite(e,t,i,r,a){let s=this.#e(t,i),l=ZD(r,a);return this.log?.("jWrite",e,s,l),this.jWrite(e,s,l)}xTruncate(e,t,i){let r=ZD(t,i);return this.log?.("jTruncate",e,r),this.jTruncate(e,r)}xSync(e,t){return this.log?.("jSync",e,t),this.jSync(e,t)}xFileSize(e,t){let i=this.#n("BigInt64",t);return this.log?.("jFileSize",e),this.jFileSize(e,i)}xLock(e,t){return this.log?.("jLock",e,t),this.jLock(e,t)}xUnlock(e,t){return this.log?.("jUnlock",e,t),this.jUnlock(e,t)}xCheckReservedLock(e,t){let i=this.#n("Int32",t);return this.log?.("jCheckReservedLock",e),this.jCheckReservedLock(e,i)}xFileControl(e,t,i){let r=new DataView(this._module.HEAPU8.buffer,this._module.HEAPU8.byteOffset+i);return this.log?.("jFileControl",e,t,r),this.jFileControl(e,t,r)}xSectorSize(e){return this.log?.("jSectorSize",e),this.jSectorSize(e)}xDeviceCharacteristics(e){return this.log?.("jDeviceCharacteristics",e),this.jDeviceCharacteristics(e)}#n(e,t){return new JD(this._module,t,e)}#e(e,t){return new $D(this._module,e,t)}#t(e,t){if(t&64){let i=e,r=1,a=[];for(;r;){let s=this._module.HEAPU8[i++];if(s)a.push(s);else switch(this._module.HEAPU8[i]||(r=null),r){case 1:a.push(63),r=2;break;case 2:a.push(61),r=3;break;case 3:a.push(38),r=2;break}}return new TextDecoder().decode(new Uint8Array(a))}return e?this._module.UTF8ToString(e):null}};$D=class{#n;#e=new Uint8Array;get#t(){return this.#e.buffer.byteLength===0&&(this.#e=this.#n.HEAPU8.subarray(this.byteOffset,this.byteOffset+this.byteLength)),this.#e}constructor(e,t,i){this.#n=e,this.byteOffset=t,this.length=this.byteLength=i}get buffer(){return this.#t.buffer}at(e){return this.#t.at(e)}copyWithin(e,t,i){this.#t.copyWithin(e,t,i)}entries(){return this.#t.entries()}every(e){return this.#t.every(e)}fill(e,t,i){this.#t.fill(e,t,i)}filter(e){return this.#t.filter(e)}find(e){return this.#t.find(e)}findIndex(e){return this.#t.findIndex(e)}findLast(e){return this.#t.findLast(e)}findLastIndex(e){return this.#t.findLastIndex(e)}forEach(e){this.#t.forEach(e)}includes(e,t){return this.#t.includes(e,t)}indexOf(e,t){return this.#t.indexOf(e,t)}join(e){return this.#t.join(e)}keys(){return this.#t.keys()}lastIndexOf(e,t){return this.#t.lastIndexOf(e,t)}map(e){return this.#t.map(e)}reduce(e,t){return this.#t.reduce(e,t)}reduceRight(e,t){return this.#t.reduceRight(e,t)}reverse(){this.#t.reverse()}set(e,t){this.#t.set(e,t)}slice(e,t){return this.#t.slice(e,t)}some(e){return this.#t.some(e)}sort(e){this.#t.sort(e)}subarray(e,t){return this.#t.subarray(e,t)}toLocaleString(e,t){return this.#t.toLocaleString(e,t)}toReversed(){return this.#t.toReversed()}toSorted(e){return this.#t.toSorted(e)}toString(){return this.#t.toString()}values(){return this.#t.values()}with(e,t){return this.#t.with(e,t)}[Symbol.iterator](){return this.#t[Symbol.iterator]()}},JD=class{#n;#e;#t=new DataView(new ArrayBuffer(0));get#i(){return this.#t.buffer.byteLength===0&&(this.#t=new DataView(this.#n.HEAPU8.buffer,this.#n.HEAPU8.byteOffset+this.byteOffset)),this.#t}constructor(e,t,i){this.#n=e,this.byteOffset=t,this.#e=i}get buffer(){return this.#i.buffer}get byteLength(){return this.#e==="Int32"?4:8}getInt32(e,t){if(this.#e!=="Int32")throw new Error("invalid type");if(!t)throw new Error("must be little endian");return this.#i.getInt32(e,t)}setInt32(e,t,i){if(this.#e!=="Int32")throw new Error("invalid type");if(!i)throw new Error("must be little endian");this.#i.setInt32(e,t,i)}getBigInt64(e,t){if(this.#e!=="BigInt64")throw new Error("invalid type");if(!t)throw new Error("must be little endian");return this.#i.getBigInt64(e,t)}setBigInt64(e,t,i){if(this.#e!=="BigInt64")throw new Error("invalid type");if(!i)throw new Error("must be little endian");this.#i.setBigInt64(e,t,i)}}});var W2,zte,KH,qte,iT,ZH=Da(()=>{Qh();W2={mode:"shared"},zte={ifAvailable:!0,mode:"shared"},KH={ifAvailable:!0,mode:"exclusive"},qte=["exclusive","shared","shared+hint"],iT=n=>class extends n{#n={lockPolicy:"exclusive",lockTimeout:1/0};#e=new Map;constructor(e,t,i){if(super(e,t,i),Object.assign(this.#n,i),qte.indexOf(this.#n.lockPolicy)===-1)throw new Error(`WebLocksMixin: invalid lock mode: ${i.lockPolicy}`)}async jLock(e,t){try{let i=this.#t(e);if(t<=i.type)return 0;switch(this.#n.lockPolicy){case"exclusive":return await this.#i(i,t);case"shared":case"shared+hint":return await this.#o(i,t)}}catch(i){return console.error("WebLocksMixin: lock error",i),3850}}async jUnlock(e,t){try{let i=this.#t(e);if(!(t{if(!i.ifAvailable&&this.#n.lockTimeout<1/0){let s=new AbortController;i=Object.assign({},i,{signal:s.signal}),setTimeout(()=>{s.abort(),r?.(!1)},this.#n.lockTimeout)}let a=`lock##${e.baseName}##${t}`;navigator.locks.request(a,i,s=>{if(s)return new Promise(l=>{e[t]=()=>{l(),e[t]=null},r(!0),r=null});e[t]=null,r(!1),r=null}).catch(s=>{if(s.name!=="AbortError")throw s})})}};iT.WRITE_HINT_OP_CODE=-9999});var JH={};pu(JH,{IDBBatchAtomicVFS:()=>rF,IDBContext:()=>Q2});function $H(n,e){let t=n.getUint32(e,!0);if(t){let i=new Uint8Array(n.buffer,t);return new TextDecoder().decode(i.subarray(0,i.indexOf(0)))}return null}function Hte(n){return new Promise((e,t)=>{n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}var Bte,iF,rF,Q2,eV=Da(()=>{ub();Qh();ZH();Bte=new Set(["TransactionInactiveError","InvalidStateError"]),iF=class{path;flags;metadata;fileSize=0;needsMetadataSync=!1;rollback=null;changedPages=new Set;synchronous="full";txOptions={durability:"strict"};constructor(e,t,i){this.path=e,this.flags=t,this.metadata=i}},rF=class n extends iT(Jl){mapIdToFile=new Map;lastError=null;log=null;#n;#e;static async create(e,t,i){let r=new n(e,t,i);return await r.isReady(),r}constructor(e,t,i={}){super(e,t,i),this.#n=this.#t(i.idbName??e)}async#t(e){this.#e=await Q2.create(e)}close(){this.#e.close()}async isReady(){await super.isReady(),await this.#n}getFilename(e){let t=this.mapIdToFile.get(e).path;return`IDB(${this.name}):${t}`}async jOpen(e,t,i,r){try{let s=new URL(e||Math.random().toString(36).slice(2),"file://").pathname,l=await this.#e.q(({metadata:f})=>f.get(s));if(!l&&i&4&&(l={name:s,fileSize:0,version:0},await this.#e.q(({metadata:f})=>f.put(l),"rw")),!l)throw new Error(`File ${s} not found`);let c=new iF(s,i,l);return this.mapIdToFile.set(t,c),r.setInt32(0,i,!0),0}catch(a){return this.lastError=a,14}}async jDelete(e,t){try{let r=new URL(e,"file://").pathname;return this.#e.q(({metadata:a,blocks:s})=>{let l=IDBKeyRange.bound([r,-1/0],[r,1/0]);s.delete(l),a.delete(r)},"rw"),t&&await this.#e.sync(!1),0}catch(i){return this.lastError=i,2570}}async jAccess(e,t,i){try{let a=new URL(e,"file://").pathname,s=await this.#e.q(({metadata:l})=>l.get(a));return i.setInt32(0,s?1:0,!0),0}catch(r){return this.lastError=r,3338}}async jClose(e){try{let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t.flags&8&&await this.#e.q(({metadata:i,blocks:r})=>{i.delete(t.path),r.delete(IDBKeyRange.bound([t.path,0],[t.path,1/0]))},"rw"),t.needsMetadataSync&&this.#e.q(({metadata:i})=>i.put(t.metadata),"rw"),await this.#e.sync(t.synchronous==="full"),0}catch(t){return this.lastError=t,4106}}async jRead(e,t,i){try{let r=this.mapIdToFile.get(e),a=0;for(;a{let _=IDBKeyRange.bound([r.path,-s],[r.path,1/0]);return h.get(_)});if(!l||l.data.byteLength-l.offset<=s)return t.fill(0,a),522;let c=t.subarray(a),f=s+l.offset,p=Math.min(Math.max(l.data.byteLength-f,0),c.byteLength);c.set(l.data.subarray(f,f+p)),a+=p}return 0}catch(r){return this.lastError=r,266}}jWrite(e,t,i){try{let r=this.mapIdToFile.get(e);if(r.flags&256&&!r.rollback){let c=Object.assign({pendingVersion:r.metadata.version-1},r.metadata);this.#e.q(({metadata:f})=>f.put(c),"rw",r.txOptions),r.rollback=Object.assign({},r.metadata),r.metadata.version--}r.flags&256&&r.changedPages.add(i);let a=t.slice(),s=r.metadata.version;if(!(i{f.put(c),r.changedPages.add(i)},"rw",r.txOptions)}else this.#e.q(async({blocks:c})=>{let f=IDBKeyRange.bound([r.path,-i],[r.path,1/0]),p=await c.get(f);p.data.subarray(i+p.offset).set(a),c.put(p)},"rw",r.txOptions);return r.metadata.fileSize{let a=IDBKeyRange.bound([i.path,-1/0],[i.path,-t,1/0]);r.delete(a)},"rw",i.txOptions),i.metadata.fileSize=t,i.needsMetadataSync=!0),0}catch(i){return this.lastError=i,1546}}async jSync(e,t){try{let i=this.mapIdToFile.get(e);return i.needsMetadataSync&&(this.#e.q(({metadata:r})=>r.put(i.metadata),"rw",i.txOptions),i.needsMetadataSync=!1),i.flags&256?i.synchronous==="full"&&await this.#e.sync(!0):await this.#e.sync(i.synchronous==="full"),0}catch(i){return this.lastError=i,1034}}jFileSize(e,t){try{let i=this.mapIdToFile.get(e);return t.setBigInt64(0,BigInt(i.metadata.fileSize),!0),0}catch(i){return this.lastError=i,1802}}async jLock(e,t){let i=this.mapIdToFile.get(e),r=await super.jLock(e,t);return t===1&&(i.metadata=await this.#e.q(async({metadata:a,blocks:s})=>{let l=await a.get(i.path);return l.pendingVersion&&(console.warn(`removing failed transaction ${l.pendingVersion}`),await new Promise((c,f)=>{let p=IDBKeyRange.bound([l.name,-1/0],[l.name,1/0]),h=s.openCursor(p);h.onsuccess=()=>{let _=h.result;_?(_.value.versionf(h.error)}),delete l.pendingVersion,a.put(l)),l},"rw",i.txOptions)),r}async jUnlock(e,t){if(t===0){let i=this.mapIdToFile.get(e);await this.#e.sync(i.synchronous==="full")}return super.jUnlock(e,t)}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=$H(i,4),s=$H(i,8);this.log?.("xFileControl",r.path,"PRAGMA",a,s);let l=f=>{let p=new TextEncoder().encode(f),h=this._module._sqlite3_malloc(p.byteLength);return this._module.HEAPU8.subarray(h,h+p.byteLength).set(p),i.setUint32(0,h,!0),1};switch(a.toLowerCase()){case"page_size":if(r.flags&256&&s&&r.metadata.fileSize)return 1;break;case"synchronous":if(s)switch(s.toLowerCase()){case"0":case"off":r.synchronous="off",r.txOptions={durability:"relaxed"};break;case"1":case"normal":r.synchronous="normal",r.txOptions={durability:"relaxed"};break;case"2":case"3":case"full":case"extra":r.synchronous="full",r.txOptions={durability:"strict"};break}break;case"write_hint":return super.jFileControl(e,iT.WRITE_HINT_OP_CODE,null)}break;case 21:if(this.log?.("xFileControl",r.path,"SYNC"),r.rollback){let f=Object.assign({},r.metadata),p=r.rollback.fileSize;this.#e.q(({metadata:h,blocks:_})=>{h.put(f);for(let g of r.changedPages)if(g{f.put(c);for(let h of r.changedPages)p.delete([r.path,-h,c.version-1]);r.changedPages.clear()},"rw",r.txOptions),r.needsMetadataSync=!1,r.rollback=null,0}}catch(r){return this.lastError=r,10}return super.jFileControl(e,t,i)}jDeviceCharacteristics(e){return 18432}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}};Q2=class n{#n;#e=null;#t=Promise.resolve();#i=null;#r=new WeakSet;log=null;static async create(e){let t=await new Promise((i,r)=>{let a=indexedDB.open(e,6);a.onupgradeneeded=async s=>{let l=a.result;switch(s.oldVersion&&console.log(`Upgrading IndexedDB from version ${s.oldVersion}`),s.oldVersion){case 0:l.createObjectStore("blocks",{keyPath:["path","offset","version"]}).createIndex("version",["path","version"]);case 5:let c=a.transaction;c.objectStore("blocks").deleteIndex("version");let p=l.createObjectStore("metadata",{keyPath:"name"});await new Promise((h,_)=>{let g={},E=c.objectStore("blocks").openCursor();E.onsuccess=()=>{let x=E.result;if(x){let S=x.value;typeof S.offset!="number"||S.path===g.path&&S.offset===g.offset?x.delete():S.offset===0&&(p.put({name:S.path,fileSize:S.fileSize,version:S.version}),delete S.fileSize,x.update(S)),g=S,x.continue()}else h()},E.onerror=()=>_(E.error)});break}},a.onsuccess=()=>i(a.result),a.onerror=()=>r(a.error)});return new n(t)}constructor(e){this.#n=e}close(){this.#n.close()}q(e,t="ro",i={}){let r=t==="ro"?"readonly":"readwrite",a=Object.assign({durability:"default"},i);return this.#e=(this.#e||Promise.resolve()).then(()=>this.#s(e,r,a)),this.#e}async#s(e,t,i){let r;this.#i&&this.#r.has(this.#i.transaction)&&this.#i.transaction.mode>=t&&this.#i.transaction.durability===i.durability&&(r=this.#i.transaction,this.#i.readyState==="pending"&&await new Promise(a=>{this.#i.addEventListener("success",a,{once:!0}),this.#i.addEventListener("error",a,{once:!0})}));for(let a=0;a<2;++a){r||(await this.#t,r=this.#n.transaction(this.#n.objectStoreNames,t,i),this.log?.("IDBTransaction open",t),this.#r.add(r),this.#t=new Promise((s,l)=>{r.addEventListener("complete",()=>{this.log?.("IDBTransaction complete"),this.#r.delete(r),s()}),r.addEventListener("abort",()=>{this.#r.delete(r),l(new Error("transaction aborted"))})}));try{let s=[...r.objectStoreNames].map(l=>[l,this.proxyStoreOrIndex(r.objectStore(l))]);return await e(Object.fromEntries(s))}catch(s){if(!a&&Bte.has(s.name)){this.log?.(`${s.name}, retrying`),r=null;continue}throw s}}}proxyStoreOrIndex(e){return new Proxy(e,{get:(t,i,r)=>{let a=Reflect.get(t,i,r);return typeof a=="function"?(...s)=>{let l=Reflect.apply(a,t,s);return l instanceof IDBRequest&&!i.endsWith("Cursor")?(this.#i=l,l.addEventListener("error",()=>{console.error(l.error),l.transaction.abort()},{once:!0}),Hte(l)):l}:a}})}async sync(e){this.#e&&(await this.#e,e&&await this.#t,this.reset())}reset(){this.#e=null,this.#t=Promise.resolve(),this.#i=null}}});var rV={};pu(rV,{AccessHandlePoolVFS:()=>fF});var iV,dF,Vte,Gte,cF,tV,nV,fb,Wte,jte,fF,aV=Da(()=>{ub();Qh();iV=4096,dF=512,Vte=4,Gte=8,cF=dF+Vte,tV=dF,nV=cF,fb=iV,Wte=542976,jte=6,fF=class n extends Jl{log=null;#n;#e;#t=new Map;#i=new Map;#r=new Set;#s=new Map;static async create(e,t){let i=new n(e,t);return await i.isReady(),i}constructor(e,t){super(e,t),this.#n=e}jOpen(e,t,i,r){try{let a=e?this.#f(e):Math.random().toString(36),s=this.#i.get(a);if(!s&&i&4)if(this.getSize(){let r=await i.createSyncAccessHandle();this.#t.set(r,t);let a=this.#d(r);a?this.#i.set(a,r):this.#r.add(r)}))}#a(){for(let e of this.#t.keys())e.close();this.#t.clear(),this.#i.clear(),this.#r.clear()}#d(e){let t=new Uint8Array(cF);e.read(t,{at:0});let r=new DataView(t.buffer,t.byteOffset).getUint32(tV);if(t[0]&&(r&8||(r&Wte)===0))return console.warn(`Remove file with unexpected flags ${r.toString(16)}`),this.#l(e,"",0),"";let a=new Uint32Array(Gte/4);e.read(a,{at:nV});let s=this.#u(t);if(a.every((l,c)=>l===s[c])){let l=t.findIndex(c=>c===0);return l===0&&e.truncate(fb),new TextDecoder().decode(t.subarray(0,l))}else return console.warn("Disassociating file with bad digest."),this.#l(e,"",0),""}#l(e,t,i){let r=new Uint8Array(cF);if(new TextEncoder().encodeInto(t,r).written>=dF)throw new Error("path too long");new DataView(r.buffer,r.byteOffset).setUint32(tV,i);let l=this.#u(r);e.write(r,{at:0}),e.write(l,{at:nV}),e.flush(),t?(this.#i.set(t,e),this.#r.delete(e)):(e.truncate(fb),this.#r.add(e))}#u(e){if(!e[0])return new Uint32Array([4274806656,2899230775]);let t=3735928559,i=1103547991;for(let r of e)t=Math.imul(t^r,2654435761),i=Math.imul(i^r,1597334677);return t=Math.imul(t^t>>>16,2246822507)^Math.imul(i^i>>>13,3266489909),i=Math.imul(i^i>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),new Uint32Array([t>>>0,i>>>0])}#f(e){return(typeof e=="string"?new URL(e,"file://localhost/"):e).pathname}#h(e){let t=this.#i.get(e);t&&(this.#i.delete(e),this.#l(t,"",0))}}});var oV={};pu(oV,{OPFSCoopSyncVFS:()=>pF});function sV(n,e){let t=n.getUint32(e,!0);if(t){let i=new Uint8Array(n.buffer,t);return new TextDecoder().decode(i.subarray(0,i.indexOf(0)))}return null}var Qte,Xte,hF,Yte,hT,X2,pF,lV=Da(()=>{ub();Qh();Qte=10,Xte=1e3,hF=["","-journal","-wal"],Yte=new FinalizationRegistry(n=>n()),hT=class{path;flags;accessHandle;persistentFile;constructor(e,t){this.path=e,this.flags=t}},X2=class{fileHandle;accessHandle=null;isLockBusy=!1;isFileLocked=!1;isRequestInProgress=!1;handleLockReleaser=null;handleRequestChannel;isHandleRequested=!1;constructor(e){this.fileHandle=e}},pF=class n extends Jl{mapIdToFile=new Map;lastError=null;log=null;persistentFiles=new Map;boundAccessHandles=new Map;unboundAccessHandles=new Set;accessiblePaths=new Set;releaser=null;static async create(e,t){let i=new n(e,t);return await Promise.all([i.isReady(),i.#n(Qte)]),i}constructor(e,t){super(e,t)}async#n(e){let t=await navigator.storage.getDirectory();for await(let a of t.values())a.kind==="directory"&&a.name.startsWith(".ahp-")&&await navigator.locks.request(a.name,{ifAvailable:!0},async s=>{s?(this.log?.(`Deleting temporary directory ${a.name}`),await t.removeEntry(a.name,{recursive:!0})):this.log?.(`Temporary directory ${a.name} is in use`)});let i=`.ahp-${Math.random().toString(36).slice(2)}`;this.releaser=await new Promise(a=>{navigator.locks.request(i,()=>new Promise(s=>{a(s)}))}),Yte.register(this,this.releaser);let r=await t.getDirectoryHandle(i,{create:!0});for(let a=0;a{let f=new hT(s,i);f.persistentFile=this.persistentFiles.get(s),await this.#t(f)})()),5}else return this.persistentFiles.delete(s),14;else{this.log?.(`creating persistent file for ${s}`);let f=!!(i&4);return this._module.retryOps.push((async()=>{try{let p=await navigator.storage.getDirectory(),h=s.split("/").filter(E=>E),_=h.pop();for(let E of h)p=await p.getDirectoryHandle(E,{create:f});for(let E of hF){let x=await p.getFileHandle(_+E,{create:f});await this.#e(x)}let g=new hT(s,i);g.persistentFile=this.persistentFiles.get(s),await this.#t(g)}catch(p){let h=new X2(null);this.persistentFiles.set(s,h),console.error(p)}})()),5}}if(!this.accessiblePaths.has(s)&&!(i&4))throw new Error(`File ${s} not found`);let l=new hT(s,i);return this.mapIdToFile.set(t,l),this.persistentFiles.has(s)?l.persistentFile=this.persistentFiles.get(s):this.boundAccessHandles.has(s)?l.accessHandle=this.boundAccessHandles.get(s):this.unboundAccessHandles.size&&(l.accessHandle=this.unboundAccessHandles.values().next().value,l.accessHandle.truncate(0),this.unboundAccessHandles.delete(l.accessHandle),this.boundAccessHandles.set(s,l.accessHandle)),this.accessiblePaths.add(s),r.setInt32(0,i,!0),0}catch(a){return this.lastError=a,14}}jDelete(e,t){try{let r=new URL(e,"file://").pathname;return this.persistentFiles.has(r)?this.persistentFiles.get(r).accessHandle.truncate(0):this.boundAccessHandles.get(r)?.truncate(0),this.accessiblePaths.delete(r),0}catch(i){return this.lastError=i,2570}}jAccess(e,t,i){try{let a=new URL(e,"file://").pathname;return i.setInt32(0,this.accessiblePaths.has(a)?1:0,!0),0}catch(r){return this.lastError=r,3338}}jClose(e){try{let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t?.flags&256?t.persistentFile?.handleLockReleaser&&this.#i(t):t?.flags&8&&(t.accessHandle.truncate(0),this.accessiblePaths.delete(t.path),this.persistentFiles.has(t.path)||(this.boundAccessHandles.delete(t.path),this.unboundAccessHandles.add(t.accessHandle))),0}catch(t){return this.lastError=t,4106}}jRead(e,t,i){try{let r=this.mapIdToFile.get(e),s=(r.accessHandle||r.persistentFile.accessHandle).read(t.subarray(),{at:i});return r.flags&256&&!r.persistentFile.isFileLocked&&this.#i(r),s{this.log?.(`received notification for ${i.path}`),i.persistentFile.isFileLocked?i.persistentFile.isHandleRequested=!0:this.#i(i),i.persistentFile.handleRequestChannel.onmessage=null},this.#t(i),this.log?.("returning SQLITE_BUSY"),i.persistentFile.isLockBusy=!0,5))}jUnlock(e,t){let i=this.mapIdToFile.get(e);return t===0&&(i.persistentFile.isLockBusy||(i.persistentFile.isHandleRequested&&(this.#i(i),i.persistentFile.isHandleRequested=!1),i.persistentFile.isFileLocked=!1)),0}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=sV(i,4),s=sV(i,8);switch(this.log?.("xFileControl",r.path,"PRAGMA",a,s),a.toLowerCase()){case"journal_mode":if(s&&!["off","memory","delete","wal"].includes(s.toLowerCase()))throw new Error('journal_mode must be "off", "memory", "delete", or "wal"');break}break}}catch(r){return this.lastError=r,10}return 12}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}async#e(e){let t=new X2(e),a=`/${(await(await navigator.storage.getDirectory()).resolve(e)).join("/")}`;return t.handleRequestChannel=new BroadcastChannel(`ahp:${a}`),this.persistentFiles.set(a,t),(await e.getFile()).size&&this.accessiblePaths.add(a),t}#t(e){return console.assert(!e.persistentFile.handleLockReleaser),e.persistentFile.isRequestInProgress?Promise.resolve():(e.persistentFile.isRequestInProgress=!0,this._module.retryOps.push((async()=>{e.persistentFile.handleLockReleaser=await this.#r(e.persistentFile);try{this.log?.(`creating access handles for ${e.path}`),await Promise.all(hF.map(async t=>{let i=this.persistentFiles.get(e.path+t);i&&(i.accessHandle=await i.fileHandle.createSyncAccessHandle())}))}catch(t){throw this.log?.(`failed to create access handles for ${e.path}`,t),this.#i(e),t}finally{e.persistentFile.isRequestInProgress=!1}})()),this._module.retryOps.at(-1))}#i(e){hF.forEach(t=>{let i=this.persistentFiles.get(e.path+t);i&&(i.accessHandle?.close(),i.accessHandle=null)}),this.log?.(`access handles closed for ${e.path}`),e.persistentFile.handleLockReleaser?.(),e.persistentFile.handleLockReleaser=null,this.log?.(`lock released for ${e.path}`)}#r(e){return new Promise(t=>{let i=e.handleRequestChannel.name,r=()=>{this.log?.(`notifying for ${i}`),e.handleRequestChannel.postMessage(null)},a=setInterval(r,Xte);setTimeout(r),this.log?.(`lock requested: ${i}`),navigator.locks.request(i,s=>(this.log?.(`lock acquired: ${i}`,s),clearInterval(a),new Promise(t)))})}}});var db,mF=Da(()=>{db=class{#n;#e=null;#t=Promise.resolve(null);#i=!1;constructor(e){this.#n=e}get name(){return this.#n}get mode(){return this.#e}close(){this.release()}async acquire(e,t=-1){if(this.#i)throw new Error("Lock is already being acquired");this.#i=!0;try{if(this.#e)throw new Error(`Lock ${this.#n} is already acquired`);return this.#t=new Promise((i,r)=>{let a={mode:e,ifAvailable:t===0};t>0&&(a.signal=AbortSignal.timeout(t)),navigator.locks.request(this.#n,a,s=>s===null?i(null):(this.#e=e,new Promise(l=>{i(l)}))).catch(s=>r(s))}),this.#t.then(i=>!!i)}finally{this.#i=!1}}release(){this.#t.then(e=>e?.(),()=>{}),this.#e=null}}});var pT,uV=Da(()=>{mF();pT=class extends db{#n;#e=!1;#t=!1;constructor(e){super(e),this.#n=new BroadcastChannel(e),this.#n.onmessage=t=>{this.#e?this.#t=!0:this.release()}}close(){super.close(),this.#n.onmessage=null,this.#n.close()}async acquire(e,t=-1){this.#e=!0;try{if(e===this.mode)return!0;if(this.mode)super.release();else if(await super.acquire(e,0))return!0;let i=super.acquire(e,t);return this.#n.postMessage({}),await i}catch(i){throw this.release(),i}}acquireIfHeld(e){return e===this.mode?(this.#e=!0,!0):!1}release(){super.release(),this.#e=!1,this.#t=!1}releaseLazy(){this.#e=!1,this.#t&&this.release()}}});var cV,Kte,fV,Xh,fa,_F,gF,vF,dV,hV,Y2,Yh,pV=Da(()=>{mF();cV=1e3,Kte=3e4,fV=931071620,Xh=32,fa=32,_F=0,gF=1,vF=2,dV=1,hV=2,Y2=class{log=null;options={autoCheckpoint:1,backstopInterval:Kte,journalSizeLimit:cV};#n;#e;#t;#i;#r;#s;#o=0;#a=null;#d=0;#l;#u=null;#f=null;#h=new Map;#c=new Map;#v=new Map;#x=0;#T=0;#_;#p;#g=0;#C=new AbortController;constructor(e,t,i,r={}){this.#n=e,this.#e=t,this.#t=i,this.options=Object.assign(this.options,r),this.#l=(async()=>{let{fileHeader:a}=await navigator.locks.request(`${this.#n}#ckpt`,async()=>(await this.#y(),{fileHeader:this.#t.map(l=>this.#b(l)).filter(l=>l).sort((l,c)=>l.nextTxId-c.nextTxId)[0]??this.#U(Math.floor(Math.random()*4294967295))}));this.#r=a,this.#i=this.#t[a.salt1&1],this.#s=Xh,this.#o=a.nextTxId-1,this.#_=new BroadcastChannel(`${e}#wa`),this.#_.onmessage=s=>{this.#z(s)};for(let s of this.#D())this.#S(s);this.#y(),this.#g=performance.now(),this.#w()})()}ready(){return this.#l}close(){this.#C.abort(),this.#_.onmessage=null,clearTimeout(this.#p),this.#f?.release(),this.#_.close()}isolateForRead(){if(this.#u!==null)throw new Error("Already in isolated state");this.#u="read",clearTimeout(this.#p),this.#p=null}isolateForWrite(){if(this.#u!==null)throw new Error("Already in isolated state");this.#u="write",clearTimeout(this.#p),this.#p=null,this.#E({readToCurrent:!0})}rejoin(){this.#u==="read"&&this.#E({autoCheckpoint:!0}),this.#u=null,this.#w()}read(e){let t=this.#a?.pages.get(e)??this.#h.get(e);return t?t.pageData?(this.log?.(`%cread page at ${e} from WAL ${t.waSalt1&1}:${t.waOffset} (cached)`,"color: black; background-color: gold;"),t.pageData):(this.log?.(`%cread page at ${e} from WAL ${t.waSalt1&1}:${t.waOffset}`,"color: black; background-color: gold;"),this.#O(t)):null}write(e,t,i){if(this.#u!=="write")throw new Error("Not in write isolated state");if(this.#a||(this.#H(),i.dstPageSize!==t.byteLength&&(this.#a.newPageSize=i.dstPageSize)),this.#a.newPageSize){let r=fa+this.#a.newPageSize;if(t.byteLength>this.#a.newPageSize)for(let a=0;a=e&&this.#a.pages.delete(t)}getFileSize(){return this.#a?.dbFileSize??this.#d}commit(){let e=this.#a;if(e.newPageSize&&e.pages.size===0){let a=1;for(let s=0;s0?this.options.journalSizeLimit:cV;a>=s&&(this.log?.(`%cchange WAL file at ${a} pages`,"color: black; background-color: lightskyblue;"),i=!0)}this.#V(i),this.#S(e),this.#y();let r={type:"tx",tx:e};this.#_.postMessage(r),this.#R(),this.#g=performance.now()}rollback(){this.#G()}sync(e){e.durability==="strict"&&this.#P()}async checkpoint(e={isPassive:!0}){let t={ifAvailable:e.isPassive};await navigator.locks.request(`${this.#n}#ckpt`,t,async i=>{if(!i||this.#C.signal.aborted)return;let r=this.#j()-1;if(e.isPassive){if(!this.#c.has(r)||(await this.#L()).reduce((c,f)=>Math.min(c,f.maxTxId),this.#o)l.maxTxId>=this.#o),r=this.#o;this.log?.(`%ccheckpoint through txId ${r}`,"color: black; background-color: lightgreen;"),this.#Q(),e.isPassive||this.#P();let a=new Set,s=this.#e.getSize();for(let l=this.#c.get(r);l;l=this.#c.get(l.id-1)){l.id===r&&s!==l.dbFileSize&&(s=l.dbFileSize,this.#e.truncate(s));for(let[c,f]of l.pages)if(cl.minTxId>r),this.#Y(),this.log?.("%ccheckpoint complete","color: black; background-color: lightgreen;")})}getWriteAheadSize(){return this.#x}isTransactionPending(){return!!this.#a}setBackstopInterval(e){this.options.backstopInterval=e,e>0&&this.#u&&this.#w()}#S(e){this.#c.set(e.id,e),e.pages.get(0).waSalt1===e.waSalt1?this.#T+=e.pages.size:this.#T=0,this.#x+=e.pages.size;for(let[i,r]of e.pages)this.#h.set(i,r);this.#d=e.dbFileSize}#E(e={}){let t=!1;for(;this.#v.size;){let i=this.#o+1,r;this.#v.has(i)?(r=this.#v.get(i),this.#v.delete(r.id),this.#B(r)):r=this.#F(),this.#S(r),t=!0}if(e.readToCurrent)for(let i of this.#D())this.#S(i),t=!0;t&&(this.#y(),e.autoCheckpoint&&this.#R()),(e.readToCurrent||t)&&(this.#g=performance.now())}#R(){this.options.autoCheckpoint>0&&this.checkpoint({isPassive:!0})}#I(e){this.log?.(`%capply checkpoint through txId ${e}`,"color: black; background-color: lightgreen;");for(let t=this.#c.get(e);t;t=this.#c.get(t.id-1)){for(let[i,r]of t.pages.entries())this.#h.get(i)===r&&(this.log?.(`%cremove txId ${t.id} page at offset ${i}`,"color: black; background-color: lightgreen;"),this.#h.delete(i));this.#c.delete(t.id),this.#x-=t.pages.size}this.#y()}#z(e){if(e.data.type==="tx"){let t=e.data.tx;t.id>this.#o&&(this.#v.set(t.id,t),this.#u===null&&this.#E({autoCheckpoint:!0}))}else if(e.data.type==="ckpt"){let t=e.data.ckptId;this.#I(t)}}#w(){if(this.options.backstopInterval<=0)return;if(this.#u)throw new Error("Backstop was invoked in an isolated state");if(performance.now()>=this.#g+this.options.backstopInterval){let i=this.#o;this.#E({readToCurrent:!0}),this.#o>i&&this.log?.(`%cbackstop txId ${i} -> ${this.#o}`,"color: black; background-color: lightyellow;"),this.#g=performance.now()}let t=this.#g+this.options.backstopInterval-performance.now();clearTimeout(this.#p),this.#p=self.setTimeout(()=>{this.#w()},t)}async#y(){let e=this.#f,t=this.#q();if(e?.name!==t&&(this.#f=new db(t),await this.#f.acquire("shared").then(()=>{e?.release()}),this.log)){let{minTxId:i,maxTxId:r}=this.#N(t);this.log?.(`%ctxId to ${i}:${r}`,"color: black; background-color: pink;")}}async#L(){let{held:e}=await navigator.locks.query();return e.map(t=>this.#N(t.name)).filter(t=>t!==null)}#q(){let e=this.#o,t=this.#c.keys().next().value??e+1;return`${this.#n}-txId<${t.toString(36)}:${e.toString(36)}>`}#N(e){let t=e.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/);return t?.[1]===this.#n?{name:t[1],minTxId:parseInt(t[2],36),maxTxId:parseInt(t[3],36),encoded:e}:null}async#k(e){let t=[];do t.length>0&&await Promise.all(t.map(i=>navigator.locks.request(i,async()=>{}))),t=(await this.#L()).filter(i=>!e(i)).map(i=>i.encoded);while(t.length>0)}#O(e){let t=this.#t[e.waSalt1&1],i=new Uint8Array(e.pageSize),r=t.read(i,{at:e.waOffset});if(r!==e.pageSize)throw new Error(`Short WAL read: expected ${e.pageSize} bytes, got ${r}`);return i}*#D(){for(;;){let e=this.#F();if(!e)break;yield e}}#F(){let e={id:0,pages:new Map,dbFileSize:0,waSalt1:0,waOffsetEnd:0},t=this.#s;for(;;){let i=this.#K(t);if(!i)return null;if(i.frameType===_F)e.pages.set(i.pageOffset,{pageSize:i.pageData.byteLength,waOffset:t+fa,waSalt1:this.#r.salt1});else{if(i.frameType===gF)return this.#o+=1,this.#s=t+i.byteLength,e.id=this.#o,e.dbFileSize=i.dbFileSize,e.waSalt1=this.#r.salt1,e.newPageSize=i.flags&dV?e.pages.get(0).pageSize:null,i.fileHeader&&(this.#A(i.fileHeader),e.waSalt1=this.#r.salt1,e.waOffsetEnd=this.#s),e;if(i.frameType===vF){this.#A(i.fileHeader),t=this.#s;continue}}t+=i.byteLength}}#B(e){if(e.waSalt1!==this.#r.salt1){let t=this.#A(null);if(!t||t.salt1!==e.waSalt1)throw new Error("invalid WAL file")}this.#o=e.id,this.#s=e.waOffsetEnd}#H(e={}){return this.#a={id:this.#o+1,pages:new Map,dbFileSize:this.#d,waSalt1:this.#r.salt1,waOffsetEnd:this.#s},this.#a}#M(e,t){let i=new DataView(new ArrayBuffer(fa));i.setUint8(0,_F),i.setUint16(2,t.byteLength===65536?1:t.byteLength),i.setBigUint64(8,BigInt(e)),i.setUint32(16,this.#r.salt1),i.setUint32(20,this.#r.salt2);let r=new Yh;r.update(new Uint8Array(i.buffer,0,fa-8)),r.update(t),i.setUint32(24,r.s0),i.setUint32(28,r.s1);let a=this.#i.write(i,{at:this.#a.waOffsetEnd})+this.#i.write(t,{at:this.#a.waOffsetEnd+fa});if(a!==i.byteLength+t.byteLength)throw new Error("write failed");let s={pageSize:t.byteLength,waOffset:this.#a.waOffsetEnd+fa,waSalt1:this.#r.salt1,pageData:e===0?t:void 0};return this.#a.pages.set(e,s),this.#a.waOffsetEnd+=a,s.waOffset}#V(e){let t=new DataView(new ArrayBuffer(fa));t.setUint8(0,gF),t.setUint8(1,(this.#a.newPageSize?dV:0)|(e?hV:0)),t.setBigUint64(8,BigInt(this.#a.dbFileSize)),t.setUint32(16,this.#r.salt1),t.setUint32(20,this.#r.salt2);let i=new Yh;i.update(new Uint8Array(t.buffer,0,fa-8)),t.setUint32(24,i.s0),t.setUint32(28,i.s1);let r=this.#i.write(t,{at:this.#a.waOffsetEnd});if(r!==t.byteLength)throw new Error("write failed");this.#a.waOffsetEnd+=r;let a=this.#a;return this.#a=null,this.#s=a.waOffsetEnd,this.#o=a.id,e&&(this.#W(),a.waSalt1=this.#r.salt1,a.waOffsetEnd=this.#s),a}#G(){this.#a=null,this.#i.truncate(this.#s)}#W(){let e=new DataView(new ArrayBuffer(fa));e.setUint8(0,vF),e.setUint32(16,this.#r.salt1),e.setUint32(20,this.#r.salt2);let t=new Yh;if(t.update(new Uint8Array(e.buffer,0,fa-8)),e.setUint32(24,t.s0),e.setUint32(28,t.s1),this.#i.write(e,{at:this.#s})!==e.byteLength)throw new Error("write failed");this.#r=this.#U(),this.#i=this.#m(),this.#s=Xh}#j(){return this.#r.nextTxId}#P(){this.#i.flush()}#Q(){this.#m().flush()}#X(){if(this.#c.has(this.#r.nextTxId-1))return!1;let e=this.#m();return e.getSize()>>0)?null:(this.#i=t,this.#r=e,this.#s=Xh,e)}#m(){return this.#i!==this.#t[0]?this.#t[0]:this.#t[1]}#b(e){let t=new DataView(new ArrayBuffer(Xh));if(e.read(t,{at:0})!==t.byteLength||t.getUint32(0)!==fV)return null;let i=new Yh;return i.update(new Uint8Array(t.buffer,0,Xh-8)),i.matches(t.getUint32(24),t.getUint32(28))?{nextTxId:Number(t.getBigUint64(8)),salt1:t.getUint32(16),salt2:t.getUint32(20)}:null}#K(e){let t=new DataView(new ArrayBuffer(fa));if(this.#i.read(t,{at:e})!==t.byteLength)return null;let i=t.getUint32(16),r=t.getUint32(20);if(i!==this.#r.salt1||r!==this.#r.salt2)return null;let a=(f=>f===1?65536:f)(t.getUint16(2)),s;if(a&&(s=new Uint8Array(a),this.#i.read(s,{at:e+fa})!==a))return null;let l=new Yh;if(l.update(new Uint8Array(t.buffer,0,fa-8)),s&&l.update(s),!l.matches(t.getUint32(24),t.getUint32(28)))return null;let c=t.getUint8(0);if(c===_F)return{frameType:c,byteLength:fa+a,pageOffset:Number(t.getBigUint64(8)),pageData:s};if(c===gF){let f=t.getUint8(1),p;return f&hV&&(p=this.#b(this.#m()),p?.salt1!==this.#r.salt1+1>>>0)?null:{frameType:c,byteLength:fa,flags:f,dbFileSize:Number(t.getBigUint64(8)),fileHeader:p}}else if(c===vF){let f=this.#b(this.#m());return f?.salt1!==this.#r.salt1+1>>>0?null:{frameType:c,byteLength:fa,fileHeader:f}}throw new Error(`Invalid frame type: ${c}`)}#U(e=this.#r.salt1){let t=this.#o+1,i=e+1>>>0,r=Math.floor(Math.random()*4294967295)>>>0,a=new DataView(new ArrayBuffer(Xh));a.setUint32(0,fV),a.setBigUint64(8,BigInt(t)),a.setUint32(16,i),a.setUint32(20,r);let s=new Yh;if(s.update(new Uint8Array(a.buffer,0,Xh-8)),a.setUint32(24,s.s0),a.setUint32(28,s.s1),this.#t[i&1].write(a,{at:0})!==a.byteLength)throw new Error("write failed");return{nextTxId:t,salt1:i,salt2:r}}},Yh=class{s0=0;s1=0;update(e){if(e.byteLength%8!==0)throw new Error("Data must be a multiple of 8 bytes");let t=ArrayBuffer.isView(e)?new Uint32Array(e.buffer,e.byteOffset,e.byteLength/4):new Uint32Array(e);for(let i=0;i>>0,this.s1=this.s1+t[i+1]+this.s0>>>0}matches(e,t){return this.s0===e&&this.s1===t}}});var _V={};pu(_V,{OPFSWriteAheadVFS:()=>yF});var $te,Jte,mV,yF,gV=Da(()=>{ub();Qh();uV();pV();$te=".wa-sqlite",Jte=6,mV=new FinalizationRegistry(n=>n()),yF=class n extends Jl{lastError=null;log=null;mapIdToFile=new Map;mapPathToFile=new Map;boundTempFiles=new Map;unboundTempFiles=new Set;options={nTmpFiles:Jte};_ready;static async create(e,t,i){let r=new n(e,t);return Object.assign(r.options,i),await r.isReady(),r}constructor(e,t){super(e,t),this._ready=(async()=>{let i=await navigator.storage.getDirectory();i=await i.getDirectoryHandle($te,{create:!0});for await(let a of i.keys())a.startsWith(".session-")&&await navigator.locks.request(a,{ifAvailable:!0},async s=>{if(s)try{await i.removeEntry(a,{recursive:!0})}catch{}});let r=`.session-${Math.random().toString(16).slice(2)}`;await new Promise(a=>{navigator.locks.request(r,()=>(a(),new Promise(s=>{mV.register(this,s)})))}),i=await i.getDirectoryHandle(r,{create:!0});for(let a=0;al.close()),this.unboundTempFiles.add(l)}})()}isReady(){return Promise.all([super.isReady(),this._ready]).then(()=>!0)}jOpen(e,t,i,r){try{e===null&&(e=Math.random().toString(16).slice(2));let a=this.mapPathToFile.get(e)??{zName:e,flags:i,retryResult:null};if(this.mapPathToFile.set(e,a),i&256){if(a.retryResult===null)return this._module.retryOps.push(this.#o(e,i,t,r)),5;if(a.retryResult instanceof Error){let s=a.retryResult;throw a.retryResult=null,s}a.accessHandle=a.retryResult.accessHandle,a.waHandles=a.retryResult.waHandles,a.writeAhead=a.retryResult.writeAhead,a.retryResult=null,a.lockState=0,a.lockingMode="normal",a.readLock=new pT(`${e}#read`),a.writeLock=new pT(`${e}#write`),a.useLazyLock="readwrite",a.timeout=-1,a.synchronous=1,a.writeHint=null,a.pageSize=null,a.overwrite=!1}else{if(i&540672)throw new Error("WAL and super-journal files are not supported");if(!a.accessHandle){if(!(i&4))throw new Error("file not found");a.accessHandle=this.#n(e)}}return this.mapIdToFile.set(t,a),r.setInt32(0,i,!0),0}catch(a){return console.error(a.stack),this.lastError=a,this.mapPathToFile.delete(e),14}}jDelete(e,t){try{if(this.boundTempFiles.has(e)){let i=this.mapPathToFile.get(e);this.#e(i)}else throw new Error(`unexpected file deletion: ${e}`);return 0}catch(i){return console.error(i.stack),this.lastError=i,2570}}jAccess(e,t,i){try{let r=this.mapPathToFile.get(e);return i.setInt32(0,r?1:0,!0),0}catch(r){return console.error(r.stack),this.lastError=r,3338}}jClose(e){try{let t=this.mapIdToFile.get(e);return t?.flags&256?(t.writeAhead.close(),t.accessHandle.close(),t.waHandles.forEach(i=>i.close()),this.mapPathToFile.delete(t?.zName),t.readLock.close(),t.writeLock.close()):t?.flags&8&&this.#e(t),this.mapIdToFile.delete(e),0}catch(t){return console.error(t.stack),this.lastError=t,4106}}jRead(e,t,i){try{let r=this.mapIdToFile.get(e),a=null;if(r.flags&256){let s=i<100?i:0,l=r.writeAhead.read(i-s);if(l){let c=l.subarray(s,s+t.byteLength);t.set(c),a=c.byteLength}}return a===null&&(a=r.accessHandle.read(t.subarray(),{at:i})),a1?"strict":"relaxed";i.writeAhead.sync({durability:r})}return 0}catch(i){return console.error(i.stack),this.lastError=i,1034}}jFileSize(e,t){try{let i=this.mapIdToFile.get(e),r;return i.flags&256?r=i.writeAhead.getFileSize()||i.accessHandle.getSize():r=i.accessHandle.getSize(),t.setBigInt64(0,BigInt(r),!0),0}catch(i){return console.error(i.stack),this.lastError=i,1802}}jLock(e,t){try{let i=this.mapIdToFile.get(e);if(i.lockState===0&&t===1){if(i.retryResult===null){if(i.lockingMode==="exclusive")return i.retryResult={},this._module.retryOps.push(this.#s(i)),5;if(i.writeHint)if(i.writeLock.acquireIfHeld("exclusive"))i.writeAhead.isolateForWrite();else return i.retryResult={},this._module.retryOps.push(this.#s(i)),5;else if(i.readLock.acquireIfHeld("shared"))i.writeAhead.isolateForRead();else return i.retryResult={},this._module.retryOps.push(this.#r(i)),5}else if(i.retryResult instanceof Error){let r=i.retryResult;throw i.retryResult=null,r}i.retryResult=null}else if(t>=2&&!i.writeLock.mode)throw new Error("Write transaction cannot use BEGIN DEFERRED");return i.lockState=t,0}catch(i){return i.name==="TimeoutError"?5:(console.error(i.stack),this.lastError=i,3850)}}jUnlock(e,t){try{let i=this.mapIdToFile.get(e);if(!i.retryResult&&t===0){switch(i.writeAhead.rejoin(),i.useLazyLock){case"none":i.writeLock.release(),i.readLock.release();break;case"read":i.writeLock.release(),i.readLock.releaseLazy();break;case"write":i.writeLock.releaseLazy(),i.readLock.release();break;case"readwrite":i.writeLock.releaseLazy(),i.readLock.releaseLazy();break}i.writeHint=null}i.lockState=t}catch(i){return console.error(i.stack),this.lastError=i,2058}}jCheckReservedLock(e,t){return console.assert(!1,"unexpected"),t.setInt32(0,0,!0),0}jFileControl(e,t,i){try{let r=this.mapIdToFile.get(e);switch(t){case 14:let a=this._module.UTF8ToString(i.getUint32(4,!0)),s=i.getUint32(8,!0),l=s?this._module.UTF8ToString(s):null;switch(this.log?.(`PRAGMA ${a} ${l}`),a.toLowerCase()){case"experimental_pragma_20251114":switch(l){case"1":r.writeHint="reserved";break;case"2":r.writeHint="exclusive";break;default:throw new Error(`unexpected write hint value: ${l}`)}break;case"backstop_interval":if(l!==null){let f=parseInt(l);r.writeAhead.setBackstopInterval(f)}else{let f=r.writeAhead.options.backstopInterval.toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"busy_timeout":if(l!==null)r.timeout=parseInt(l);else{let f=r.timeout.toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"journal_size_limit":if(l!==null){let f=parseInt(l);r.writeAhead.options.journalSizeLimit=f}break;case"locking_mode":switch(l?.toLowerCase()){case"normal":r.lockingMode="normal";break;case"exclusive":r.lockingMode="exclusive";break}break;case"page_size":if(l!==null){let f=parseInt(l);(f===1||f>=512&&f<=32768&&(f&f-1)===0)&&(r.pageSize=f===1?65536:f)}break;case"synchronous":if(l!==null)switch(l.toLowerCase()){case"off":case"0":r.synchronous=0;break;case"normal":case"1":r.synchronous=1;break;case"full":case"2":r.synchronous=2;break;case"extra":case"3":r.synchronous=3;break;default:throw new Error(`unexpected synchronous value: ${l}`)}break;case"vfs_trace":return l!==null&&(this.log=parseInt(l)!==0?console.debug:null,r.writeAhead.log=this.log),0;case"wal_autocheckpoint":l!==null&&(r.writeAhead.options.autoCheckpoint=parseInt(l));break;case"wal_checkpoint":let c=(l??"passive").toLowerCase();switch(c){case"passive":this._module.pendingOps.push(this.#i(r,c));break;case"full":case"restart":case"truncate":if(r.writeAhead.isTransactionPending())throw new Error("invalid while a transaction is in progress");this._module.pendingOps.push(this.#i(r,c));break;case"noop":break;default:throw new Error(`unexpected wal_checkpoint mode: ${l}`)}{let f=r.writeAhead.getWriteAheadSize().toString(),p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0;case"lazy_lock":if(l!==null){let f=l.toLowerCase();switch(f){case"read":case"write":case"readwrite":case"none":r.useLazyLock=f;break;default:throw new Error(`unexpected value for lazy_lock: ${l}`)}}{let f=r.useLazyLock,p=this._module._sqlite3_malloc64(f.length+1);this._module.stringToUTF8(f,p,f.length+1),i.setUint32(0,p,!0)}return 0}break;case 31:case 32:if(r.flags&256)return 0;break;case 33:if(r.flags&256)return r.writeAhead.rollback(),0;break;case 21:r.flags&256&&r.writeAhead.commit();break;case 11:r.overwrite=!0;break}}catch(r){return console.error(r.stack),this.lastError=r,10}return 12}jDeviceCharacteristics(e){return 18432}jGetLastError(e){if(this.lastError){console.error(this.lastError);let t=e.subarray(0,e.byteLength-1),{written:i}=new TextEncoder().encodeInto(this.lastError.message,t);e[i]=0}return 0}#n(e){if(this.unboundTempFiles.size===0)throw new Error("no temporary files available");let t=this.unboundTempFiles.values().next().value;return this.unboundTempFiles.delete(t),this.boundTempFiles.set(e,t),t}#e(e){e.accessHandle.truncate(0),this.mapPathToFile.delete(e.zName),this.unboundTempFiles.add(e.accessHandle),this.boundTempFiles.delete(e.zName)}#t(e,t){return`${e}-wa${t}`}async#i(e,t){let i=[];try{t!=="passive"&&e.lockState===0&&(await e.writeLock.acquire("exclusive"),i.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),i.push(()=>e.writeAhead.rejoin())),await e.writeAhead.checkpoint({isPassive:t==="passive"})}catch(r){throw r.name==="AbortError"&&(r.code=5),r}finally{for(;i.length;)i.pop()()}}async#r(e){let t=[];try{await e.readLock.acquire("shared",e.timeout),t.push(()=>e.readLock.release()),e.writeAhead.isolateForRead(),e.retryResult={}}catch(i){for(;t.length;)t.pop()();e.retryResult=i}}async#s(e){let t=[];try{e.lockingMode==="exclusive"&&(await e.readLock.acquire("exclusive",e.timeout),t.push(()=>e.readLock.release())),await e.writeLock.acquire("exclusive",e.timeout),t.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),e.retryResult={}}catch(i){for(;t.length;)t.pop()();e.retryResult=i}}async#o(e,t,i,r){let a=[],s=this.mapPathToFile.get(e);try{let{accessHandle:l,waHandles:c}=await navigator.locks.request(`${e}#open`,async p=>{let h=e.split("/").filter(O=>O),_=h.pop(),g=await navigator.storage.getDirectory(),E=!!(t&4);for(let O of h)g=await g.getDirectoryHandle(O,{create:E});let x=E&&await(async function(){try{return await g.getFileHandle(_),!1}catch(O){if(O.name==="NotFoundError")return!0;throw O}})();async function S(O,k){let G=await(await g.getFileHandle(O,k)).createSyncAccessHandle({mode:"readwrite-unsafe"});return a.push(()=>{G.close(),x&&g.removeEntry(O)}),G}let v=await S(_,{create:E}),M=await Promise.all([0,1].map(async O=>{let k=this.#t(_,O),q=await S(k,{create:!0});return x&&q.truncate(0),q}));return{accessHandle:v,waHandles:M}}),f=new Y2(e,l,c);await f.ready(),s.retryResult={accessHandle:l,waHandles:c,writeAhead:f}}catch(l){for(;a.length;)a.pop()();s.retryResult=l}}}});var vV={};pu(vV,{MemoryVFS:()=>bF});var bF,yV=Da(()=>{ub();Qh();bF=class n extends Jl{mapNameToFile=new Map;mapIdToFile=new Map;static async create(e,t){let i=new n(e,t);return await i.isReady(),i}constructor(e,t){super(e,t)}close(){for(let e of this.mapIdToFile.keys())this.jClose(e)}jOpen(e,t,i,r){let s=new URL(e||Math.random().toString(36).slice(2),"file://").pathname,l=this.mapNameToFile.get(s);if(!l)if(i&4)l={pathname:s,flags:i,size:0,data:new ArrayBuffer(0)},this.mapNameToFile.set(s,l);else return 14;return this.mapIdToFile.set(t,l),r.setInt32(0,i,!0),0}jClose(e){let t=this.mapIdToFile.get(e);return this.mapIdToFile.delete(e),t.flags&8&&this.mapNameToFile.delete(t.pathname),0}jRead(e,t,i){let r=this.mapIdToFile.get(e),a=Math.min(i,r.size),l=Math.min(i+t.byteLength,r.size)-a;return l&&t.set(new Uint8Array(r.data,a,l)),lr.data.byteLength){let a=Math.max(i+t.byteLength,2*r.data.byteLength),s=new ArrayBuffer(a);new Uint8Array(s).set(new Uint8Array(r.data,0,r.size)),r.data=s}return new Uint8Array(r.data,i,t.byteLength).set(t.subarray()),r.size=Math.max(r.size,i+t.byteLength),0}jTruncate(e,t){let i=this.mapIdToFile.get(e);return i.size=Math.min(i.size,t),0}jFileSize(e,t){let i=this.mapIdToFile.get(e);return t.setBigInt64(0,BigInt(i.size),!0),0}jDelete(e,t){let r=new URL(e,"file://").pathname;return this.mapNameToFile.delete(r),0}jAccess(e,t,i){let a=new URL(e,"file://").pathname,s=this.mapNameToFile.get(a);return i.setInt32(0,s?1:0,!0),0}}});var NG={};pu(NG,{WebSocketSupport:()=>UF});function Ine(){if(eG)return LT;eG=1,LT.byteLength=l,LT.toByteArray=f,LT.fromByteArray=_;for(var n=[],e=[],t=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,a=i.length;r0)throw new Error("Invalid string. Length must be a multiple of 4");var x=g.indexOf("=");x===-1&&(x=E);var S=x===E?0:4-x%4;return[x,S]}function l(g){var E=s(g),x=E[0],S=E[1];return(x+S)*3/4-S}function c(g,E,x){return(E+x)*3/4-x}function f(g){var E,x=s(g),S=x[0],v=x[1],M=new t(c(g,S,v)),O=0,k=v>0?S-4:S,q;for(q=0;q>16&255,M[O++]=E>>8&255,M[O++]=E&255;return v===2&&(E=e[g.charCodeAt(q)]<<2|e[g.charCodeAt(q+1)]>>4,M[O++]=E&255),v===1&&(E=e[g.charCodeAt(q)]<<10|e[g.charCodeAt(q+1)]<<4|e[g.charCodeAt(q+2)]>>2,M[O++]=E>>8&255,M[O++]=E&255),M}function p(g){return n[g>>18&63]+n[g>>12&63]+n[g>>6&63]+n[g&63]}function h(g,E,x){for(var S,v=[],M=E;Mk?k:O+M));return S===1?(E=g[x-1],v.push(n[E>>2]+n[E<<4&63]+"==")):S===2&&(E=(g[x-2]<<8)+g[x-1],v.push(n[E>>10]+n[E>>4&63]+n[E<<2&63]+"=")),v.join("")}return LT}function Lne(){return tG||(tG=1,PR.read=function(n,e,t,i,r){var a,s,l=r*8-i-1,c=(1<>1,p=-7,h=t?r-1:0,_=t?-1:1,g=n[e+h];for(h+=_,a=g&(1<<-p)-1,g>>=-p,p+=l;p>0;a=a*256+n[e+h],h+=_,p-=8);for(s=a&(1<<-p)-1,a>>=-p,p+=i;p>0;s=s*256+n[e+h],h+=_,p-=8);if(a===0)a=1-f;else{if(a===c)return s?NaN:(g?-1:1)*(1/0);s=s+Math.pow(2,i),a=a-f}return(g?-1:1)*s*Math.pow(2,a-i)},PR.write=function(n,e,t,i,r,a){var s,l,c,f=a*8-r-1,p=(1<>1,_=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=i?0:a-1,E=i?1:-1,x=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,s=p):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+h>=1?e+=_/c:e+=_*Math.pow(2,1-h),e*c>=2&&(s++,c/=2),s+h>=p?(l=0,s=p):s+h>=1?(l=(e*c-1)*Math.pow(2,r),s=s+h):(l=e*Math.pow(2,h-1)*Math.pow(2,r),s=0));r>=8;n[t+g]=l&255,g+=E,l/=256,r-=8);for(s=s<0;n[t+g]=s&255,g+=E,s/=256,f-=8);n[t+g-E]|=x*128}),PR}function Nne(){return nG||(nG=1,(function(n){let e=Ine(),t=Lne(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;n.Buffer=l,n.SlowBuffer=M,n.INSPECT_MAX_BYTES=50;let r=2147483647;n.kMaxLength=r,l.TYPED_ARRAY_SUPPORT=a(),!l.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{let L=new Uint8Array(1),N={foo:function(){return 42}};return Object.setPrototypeOf(N,Uint8Array.prototype),Object.setPrototypeOf(L,N),L.foo()===42}catch{return!1}}Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}});function s(L){if(L>r)throw new RangeError('The value "'+L+'" is invalid for option "size"');let N=new Uint8Array(L);return Object.setPrototypeOf(N,l.prototype),N}function l(L,N,U){if(typeof L=="number"){if(typeof N=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return h(L)}return c(L,N,U)}l.poolSize=8192;function c(L,N,U){if(typeof L=="string")return _(L,N);if(ArrayBuffer.isView(L))return E(L);if(L==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L);if(en(L,ArrayBuffer)||L&&en(L.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(en(L,SharedArrayBuffer)||L&&en(L.buffer,SharedArrayBuffer)))return x(L,N,U);if(typeof L=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let ee=L.valueOf&&L.valueOf();if(ee!=null&&ee!==L)return l.from(ee,N,U);let ne=S(L);if(ne)return ne;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof L[Symbol.toPrimitive]=="function")return l.from(L[Symbol.toPrimitive]("string"),N,U);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof L)}l.from=function(L,N,U){return c(L,N,U)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array);function f(L){if(typeof L!="number")throw new TypeError('"size" argument must be of type number');if(L<0)throw new RangeError('The value "'+L+'" is invalid for option "size"')}function p(L,N,U){return f(L),L<=0?s(L):N!==void 0?typeof U=="string"?s(L).fill(N,U):s(L).fill(N):s(L)}l.alloc=function(L,N,U){return p(L,N,U)};function h(L){return f(L),s(L<0?0:v(L)|0)}l.allocUnsafe=function(L){return h(L)},l.allocUnsafeSlow=function(L){return h(L)};function _(L,N){if((typeof N!="string"||N==="")&&(N="utf8"),!l.isEncoding(N))throw new TypeError("Unknown encoding: "+N);let U=O(L,N)|0,ee=s(U),ne=ee.write(L,N);return ne!==U&&(ee=ee.slice(0,ne)),ee}function g(L){let N=L.length<0?0:v(L.length)|0,U=s(N);for(let ee=0;ee=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return L|0}function M(L){return+L!=L&&(L=0),l.alloc(+L)}l.isBuffer=function(N){return N!=null&&N._isBuffer===!0&&N!==l.prototype},l.compare=function(N,U){if(en(N,Uint8Array)&&(N=l.from(N,N.offset,N.byteLength)),en(U,Uint8Array)&&(U=l.from(U,U.offset,U.byteLength)),!l.isBuffer(N)||!l.isBuffer(U))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(N===U)return 0;let ee=N.length,ne=U.length;for(let X=0,ie=Math.min(ee,ne);Xne.length?(l.isBuffer(ie)||(ie=l.from(ie)),ie.copy(ne,X)):Uint8Array.prototype.set.call(ne,ie,X);else if(l.isBuffer(ie))ie.copy(ne,X);else throw new TypeError('"list" argument must be an Array of Buffers');X+=ie.length}return ne};function O(L,N){if(l.isBuffer(L))return L.length;if(ArrayBuffer.isView(L)||en(L,ArrayBuffer))return L.byteLength;if(typeof L!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof L);let U=L.length,ee=arguments.length>2&&arguments[2]===!0;if(!ee&&U===0)return 0;let ne=!1;for(;;)switch(N){case"ascii":case"latin1":case"binary":return U;case"utf8":case"utf-8":return dt(L).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U*2;case"hex":return U>>>1;case"base64":return Ht(L).length;default:if(ne)return ee?-1:dt(L).length;N=(""+N).toLowerCase(),ne=!0}}l.byteLength=O;function k(L,N,U){let ee=!1;if((N===void 0||N<0)&&(N=0),N>this.length||((U===void 0||U>this.length)&&(U=this.length),U<=0)||(U>>>=0,N>>>=0,U<=N))return"";for(L||(L="utf8");;)switch(L){case"hex":return Qe(this,N,U);case"utf8":case"utf-8":return Me(this,N,U);case"ascii":return Ve(this,N,U);case"latin1":case"binary":return Je(this,N,U);case"base64":return ke(this,N,U);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return st(this,N,U);default:if(ee)throw new TypeError("Unknown encoding: "+L);L=(L+"").toLowerCase(),ee=!0}}l.prototype._isBuffer=!0;function q(L,N,U){let ee=L[N];L[N]=L[U],L[U]=ee}l.prototype.swap16=function(){let N=this.length;if(N%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let U=0;UU&&(N+=" ... "),""},i&&(l.prototype[i]=l.prototype.inspect),l.prototype.compare=function(N,U,ee,ne,X){if(en(N,Uint8Array)&&(N=l.from(N,N.offset,N.byteLength)),!l.isBuffer(N))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof N);if(U===void 0&&(U=0),ee===void 0&&(ee=N?N.length:0),ne===void 0&&(ne=0),X===void 0&&(X=this.length),U<0||ee>N.length||ne<0||X>this.length)throw new RangeError("out of range index");if(ne>=X&&U>=ee)return 0;if(ne>=X)return-1;if(U>=ee)return 1;if(U>>>=0,ee>>>=0,ne>>>=0,X>>>=0,this===N)return 0;let ie=X-ne,le=ee-U,be=Math.min(ie,le),tt=this.slice(ne,X),Oe=N.slice(U,ee);for(let je=0;je2147483647?U=2147483647:U<-2147483648&&(U=-2147483648),U=+U,Le(U)&&(U=ne?0:L.length-1),U<0&&(U=L.length+U),U>=L.length){if(ne)return-1;U=L.length-1}else if(U<0)if(ne)U=0;else return-1;if(typeof N=="string"&&(N=l.from(N,ee)),l.isBuffer(N))return N.length===0?-1:Q(L,N,U,ee,ne);if(typeof N=="number")return N=N&255,typeof Uint8Array.prototype.indexOf=="function"?ne?Uint8Array.prototype.indexOf.call(L,N,U):Uint8Array.prototype.lastIndexOf.call(L,N,U):Q(L,[N],U,ee,ne);throw new TypeError("val must be string, number or Buffer")}function Q(L,N,U,ee,ne){let X=1,ie=L.length,le=N.length;if(ee!==void 0&&(ee=String(ee).toLowerCase(),ee==="ucs2"||ee==="ucs-2"||ee==="utf16le"||ee==="utf-16le")){if(L.length<2||N.length<2)return-1;X=2,ie/=2,le/=2,U/=2}function be(Oe,je){return X===1?Oe[je]:Oe.readUInt16BE(je*X)}let tt;if(ne){let Oe=-1;for(tt=U;ttie&&(U=ie-le),tt=U;tt>=0;tt--){let Oe=!0;for(let je=0;jene&&(ee=ne)):ee=ne;let X=N.length;ee>X/2&&(ee=X/2);let ie;for(ie=0;ie>>0,isFinite(ee)?(ee=ee>>>0,ne===void 0&&(ne="utf8")):(ne=ee,ee=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let X=this.length-U;if((ee===void 0||ee>X)&&(ee=X),N.length>0&&(ee<0||U<0)||U>this.length)throw new RangeError("Attempt to write outside buffer bounds");ne||(ne="utf8");let ie=!1;for(;;)switch(ne){case"hex":return H(this,N,U,ee);case"utf8":case"utf-8":return Z(this,N,U,ee);case"ascii":case"latin1":case"binary":return te(this,N,U,ee);case"base64":return j(this,N,U,ee);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return he(this,N,U,ee);default:if(ie)throw new TypeError("Unknown encoding: "+ne);ne=(""+ne).toLowerCase(),ie=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ke(L,N,U){return N===0&&U===L.length?e.fromByteArray(L):e.fromByteArray(L.slice(N,U))}function Me(L,N,U){U=Math.min(L.length,U);let ee=[],ne=N;for(;ne239?4:X>223?3:X>191?2:1;if(ne+le<=U){let be,tt,Oe,je;switch(le){case 1:X<128&&(ie=X);break;case 2:be=L[ne+1],(be&192)===128&&(je=(X&31)<<6|be&63,je>127&&(ie=je));break;case 3:be=L[ne+1],tt=L[ne+2],(be&192)===128&&(tt&192)===128&&(je=(X&15)<<12|(be&63)<<6|tt&63,je>2047&&(je<55296||je>57343)&&(ie=je));break;case 4:be=L[ne+1],tt=L[ne+2],Oe=L[ne+3],(be&192)===128&&(tt&192)===128&&(Oe&192)===128&&(je=(X&15)<<18|(be&63)<<12|(tt&63)<<6|Oe&63,je>65535&&je<1114112&&(ie=je))}}ie===null?(ie=65533,le=1):ie>65535&&(ie-=65536,ee.push(ie>>>10&1023|55296),ie=56320|ie&1023),ee.push(ie),ne+=le}return Ne(ee)}let ze=4096;function Ne(L){let N=L.length;if(N<=ze)return String.fromCharCode.apply(String,L);let U="",ee=0;for(;eeee)&&(U=ee);let ne="";for(let X=N;Xee&&(N=ee),U<0?(U+=ee,U<0&&(U=0)):U>ee&&(U=ee),UU)throw new RangeError("Trying to access beyond buffer length")}l.prototype.readUintLE=l.prototype.readUIntLE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N],X=1,ie=0;for(;++ie>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N+--U],X=1;for(;U>0&&(X*=256);)ne+=this[N+--U]*X;return ne},l.prototype.readUint8=l.prototype.readUInt8=function(N,U){return N=N>>>0,U||We(N,1,this.length),this[N]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(N,U){return N=N>>>0,U||We(N,2,this.length),this[N]|this[N+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(N,U){return N=N>>>0,U||We(N,2,this.length),this[N]<<8|this[N+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(N,U){return N=N>>>0,U||We(N,4,this.length),(this[N]|this[N+1]<<8|this[N+2]<<16)+this[N+3]*16777216},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]*16777216+(this[N+1]<<16|this[N+2]<<8|this[N+3])},l.prototype.readBigUInt64LE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&<(N,this.length-8);let ne=U+this[++N]*2**8+this[++N]*2**16+this[++N]*2**24,X=this[++N]+this[++N]*2**8+this[++N]*2**16+ee*2**24;return BigInt(ne)+(BigInt(X)<>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&<(N,this.length-8);let ne=U*2**24+this[++N]*2**16+this[++N]*2**8+this[++N],X=this[++N]*2**24+this[++N]*2**16+this[++N]*2**8+ee;return(BigInt(ne)<>>0,U=U>>>0,ee||We(N,U,this.length);let ne=this[N],X=1,ie=0;for(;++ie=X&&(ne-=Math.pow(2,8*U)),ne},l.prototype.readIntBE=function(N,U,ee){N=N>>>0,U=U>>>0,ee||We(N,U,this.length);let ne=U,X=1,ie=this[N+--ne];for(;ne>0&&(X*=256);)ie+=this[N+--ne]*X;return X*=128,ie>=X&&(ie-=Math.pow(2,8*U)),ie},l.prototype.readInt8=function(N,U){return N=N>>>0,U||We(N,1,this.length),this[N]&128?(255-this[N]+1)*-1:this[N]},l.prototype.readInt16LE=function(N,U){N=N>>>0,U||We(N,2,this.length);let ee=this[N]|this[N+1]<<8;return ee&32768?ee|4294901760:ee},l.prototype.readInt16BE=function(N,U){N=N>>>0,U||We(N,2,this.length);let ee=this[N+1]|this[N]<<8;return ee&32768?ee|4294901760:ee},l.prototype.readInt32LE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]|this[N+1]<<8|this[N+2]<<16|this[N+3]<<24},l.prototype.readInt32BE=function(N,U){return N=N>>>0,U||We(N,4,this.length),this[N]<<24|this[N+1]<<16|this[N+2]<<8|this[N+3]},l.prototype.readBigInt64LE=kt(function(N){N=N>>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&<(N,this.length-8);let ne=this[N+4]+this[N+5]*2**8+this[N+6]*2**16+(ee<<24);return(BigInt(ne)<>>0,pn(N,"offset");let U=this[N],ee=this[N+7];(U===void 0||ee===void 0)&<(N,this.length-8);let ne=(U<<24)+this[++N]*2**16+this[++N]*2**8+this[++N];return(BigInt(ne)<>>0,U||We(N,4,this.length),t.read(this,N,!0,23,4)},l.prototype.readFloatBE=function(N,U){return N=N>>>0,U||We(N,4,this.length),t.read(this,N,!1,23,4)},l.prototype.readDoubleLE=function(N,U){return N=N>>>0,U||We(N,8,this.length),t.read(this,N,!0,52,8)},l.prototype.readDoubleBE=function(N,U){return N=N>>>0,U||We(N,8,this.length),t.read(this,N,!1,52,8)};function gt(L,N,U,ee,ne,X){if(!l.isBuffer(L))throw new TypeError('"buffer" argument must be a Buffer instance');if(N>ne||NL.length)throw new RangeError("Index out of range")}l.prototype.writeUintLE=l.prototype.writeUIntLE=function(N,U,ee,ne){if(N=+N,U=U>>>0,ee=ee>>>0,!ne){let le=Math.pow(2,8*ee)-1;gt(this,N,U,ee,le,0)}let X=1,ie=0;for(this[U]=N&255;++ie>>0,ee=ee>>>0,!ne){let le=Math.pow(2,8*ee)-1;gt(this,N,U,ee,le,0)}let X=ee-1,ie=1;for(this[U+X]=N&255;--X>=0&&(ie*=256);)this[U+X]=N/ie&255;return U+ee},l.prototype.writeUint8=l.prototype.writeUInt8=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,1,255,0),this[U]=N&255,U+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,65535,0),this[U]=N&255,this[U+1]=N>>>8,U+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,65535,0),this[U]=N>>>8,this[U+1]=N&255,U+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,4294967295,0),this[U+3]=N>>>24,this[U+2]=N>>>16,this[U+1]=N>>>8,this[U]=N&255,U+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,4294967295,0),this[U]=N>>>24,this[U+1]=N>>>16,this[U+2]=N>>>8,this[U+3]=N&255,U+4};function Et(L,N,U,ee,ne){sn(N,ee,ne,L,U,7);let X=Number(N&BigInt(4294967295));L[U++]=X,X=X>>8,L[U++]=X,X=X>>8,L[U++]=X,X=X>>8,L[U++]=X;let ie=Number(N>>BigInt(32)&BigInt(4294967295));return L[U++]=ie,ie=ie>>8,L[U++]=ie,ie=ie>>8,L[U++]=ie,ie=ie>>8,L[U++]=ie,U}function jt(L,N,U,ee,ne){sn(N,ee,ne,L,U,7);let X=Number(N&BigInt(4294967295));L[U+7]=X,X=X>>8,L[U+6]=X,X=X>>8,L[U+5]=X,X=X>>8,L[U+4]=X;let ie=Number(N>>BigInt(32)&BigInt(4294967295));return L[U+3]=ie,ie=ie>>8,L[U+2]=ie,ie=ie>>8,L[U+1]=ie,ie=ie>>8,L[U]=ie,U+8}l.prototype.writeBigUInt64LE=kt(function(N,U=0){return Et(this,N,U,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeBigUInt64BE=kt(function(N,U=0){return jt(this,N,U,BigInt(0),BigInt("0xffffffffffffffff"))}),l.prototype.writeIntLE=function(N,U,ee,ne){if(N=+N,U=U>>>0,!ne){let be=Math.pow(2,8*ee-1);gt(this,N,U,ee,be-1,-be)}let X=0,ie=1,le=0;for(this[U]=N&255;++X>0)-le&255;return U+ee},l.prototype.writeIntBE=function(N,U,ee,ne){if(N=+N,U=U>>>0,!ne){let be=Math.pow(2,8*ee-1);gt(this,N,U,ee,be-1,-be)}let X=ee-1,ie=1,le=0;for(this[U+X]=N&255;--X>=0&&(ie*=256);)N<0&&le===0&&this[U+X+1]!==0&&(le=1),this[U+X]=(N/ie>>0)-le&255;return U+ee},l.prototype.writeInt8=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,1,127,-128),N<0&&(N=255+N+1),this[U]=N&255,U+1},l.prototype.writeInt16LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,32767,-32768),this[U]=N&255,this[U+1]=N>>>8,U+2},l.prototype.writeInt16BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,2,32767,-32768),this[U]=N>>>8,this[U+1]=N&255,U+2},l.prototype.writeInt32LE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,2147483647,-2147483648),this[U]=N&255,this[U+1]=N>>>8,this[U+2]=N>>>16,this[U+3]=N>>>24,U+4},l.prototype.writeInt32BE=function(N,U,ee){return N=+N,U=U>>>0,ee||gt(this,N,U,4,2147483647,-2147483648),N<0&&(N=4294967295+N+1),this[U]=N>>>24,this[U+1]=N>>>16,this[U+2]=N>>>8,this[U+3]=N&255,U+4},l.prototype.writeBigInt64LE=kt(function(N,U=0){return Et(this,N,U,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),l.prototype.writeBigInt64BE=kt(function(N,U=0){return jt(this,N,U,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function zt(L,N,U,ee,ne,X){if(U+ee>L.length)throw new RangeError("Index out of range");if(U<0)throw new RangeError("Index out of range")}function Mt(L,N,U,ee,ne){return N=+N,U=U>>>0,ne||zt(L,N,U,4),t.write(L,N,U,ee,23,4),U+4}l.prototype.writeFloatLE=function(N,U,ee){return Mt(this,N,U,!0,ee)},l.prototype.writeFloatBE=function(N,U,ee){return Mt(this,N,U,!1,ee)};function Xe(L,N,U,ee,ne){return N=+N,U=U>>>0,ne||zt(L,N,U,8),t.write(L,N,U,ee,52,8),U+8}l.prototype.writeDoubleLE=function(N,U,ee){return Xe(this,N,U,!0,ee)},l.prototype.writeDoubleBE=function(N,U,ee){return Xe(this,N,U,!1,ee)},l.prototype.copy=function(N,U,ee,ne){if(!l.isBuffer(N))throw new TypeError("argument should be a Buffer");if(ee||(ee=0),!ne&&ne!==0&&(ne=this.length),U>=N.length&&(U=N.length),U||(U=0),ne>0&&ne=this.length)throw new RangeError("Index out of range");if(ne<0)throw new RangeError("sourceEnd out of bounds");ne>this.length&&(ne=this.length),N.length-U>>0,ee=ee===void 0?this.length:ee>>>0,N||(N=0);let X;if(typeof N=="number")for(X=U;X2**32?ne=Wt(String(U)):typeof U=="bigint"&&(ne=String(U),(U>BigInt(2)**BigInt(32)||U<-(BigInt(2)**BigInt(32)))&&(ne=Wt(ne)),ne+="n"),ee+=` It must be ${N}. Received ${ne}`,ee},RangeError);function Wt(L){let N="",U=L.length,ee=L[0]==="-"?1:0;for(;U>=ee+4;U-=3)N=`_${L.slice(U-3,U)}${N}`;return`${L.slice(0,U)}${N}`}function Lt(L,N,U){pn(N,"offset"),(L[N]===void 0||L[N+U]===void 0)&<(N,L.length-(U+1))}function sn(L,N,U,ee,ne,X){if(L>U||L= 0${ie} and < 2${ie} ** ${(X+1)*8}${ie}`:le=`>= -(2${ie} ** ${(X+1)*8-1}${ie}) and < 2 ** ${(X+1)*8-1}${ie}`,new et.ERR_OUT_OF_RANGE("value",le,L)}Lt(ee,ne,X)}function pn(L,N){if(typeof L!="number")throw new et.ERR_INVALID_ARG_TYPE(N,"number",L)}function lt(L,N,U){throw Math.floor(L)!==L?(pn(L,U),new et.ERR_OUT_OF_RANGE("offset","an integer",L)):N<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${N}`,L)}let _e=/[^+/0-9A-Za-z-_]/g;function Pe(L){if(L=L.split("=")[0],L=L.trim().replace(_e,""),L.length<2)return"";for(;L.length%4!==0;)L=L+"=";return L}function dt(L,N){N=N||1/0;let U,ee=L.length,ne=null,X=[];for(let ie=0;ie55295&&U<57344){if(!ne){if(U>56319){(N-=3)>-1&&X.push(239,191,189);continue}else if(ie+1===ee){(N-=3)>-1&&X.push(239,191,189);continue}ne=U;continue}if(U<56320){(N-=3)>-1&&X.push(239,191,189),ne=U;continue}U=(ne-55296<<10|U-56320)+65536}else ne&&(N-=3)>-1&&X.push(239,191,189);if(ne=null,U<128){if((N-=1)<0)break;X.push(U)}else if(U<2048){if((N-=2)<0)break;X.push(U>>6|192,U&63|128)}else if(U<65536){if((N-=3)<0)break;X.push(U>>12|224,U>>6&63|128,U&63|128)}else if(U<1114112){if((N-=4)<0)break;X.push(U>>18|240,U>>12&63|128,U>>6&63|128,U&63|128)}else throw new Error("Invalid code point")}return X}function vt(L){let N=[];for(let U=0;U>8,ne=U%256,X.push(ne),X.push(ee);return X}function Ht(L){return e.toByteArray(Pe(L))}function qt(L,N,U,ee){let ne;for(ne=0;ne=N.length||ne>=L.length);++ne)N[ne+U]=L[ne];return ne}function en(L,N){return L instanceof N||L!=null&&L.constructor!=null&&L.constructor.name!=null&&L.constructor.name===N.name}function Le(L){return L!==L}let fn=(function(){let L="0123456789abcdef",N=new Array(256);for(let U=0;U<16;++U){let ee=U*16;for(let ne=0;ne<16;++ne)N[ee+ne]=L[U]+L[ne]}return N})();function kt(L){return typeof BigInt>"u"?ge:L}function ge(){throw new Error("BigInt not supported")}})(kF)),kF}function kne(n){return{done:!1,value:n}}function Hu(){return rG||(rG=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.Frame=n.Lengths=n.Flags=n.FrameTypes=void 0;var e;(function(t){t[t.RESERVED=0]="RESERVED",t[t.SETUP=1]="SETUP",t[t.LEASE=2]="LEASE",t[t.KEEPALIVE=3]="KEEPALIVE",t[t.REQUEST_RESPONSE=4]="REQUEST_RESPONSE",t[t.REQUEST_FNF=5]="REQUEST_FNF",t[t.REQUEST_STREAM=6]="REQUEST_STREAM",t[t.REQUEST_CHANNEL=7]="REQUEST_CHANNEL",t[t.REQUEST_N=8]="REQUEST_N",t[t.CANCEL=9]="CANCEL",t[t.PAYLOAD=10]="PAYLOAD",t[t.ERROR=11]="ERROR",t[t.METADATA_PUSH=12]="METADATA_PUSH",t[t.RESUME=13]="RESUME",t[t.RESUME_OK=14]="RESUME_OK",t[t.EXT=63]="EXT"})(e=n.FrameTypes||(n.FrameTypes={})),(function(t){t[t.NONE=0]="NONE",t[t.COMPLETE=64]="COMPLETE",t[t.FOLLOWS=128]="FOLLOWS",t[t.IGNORE=512]="IGNORE",t[t.LEASE=64]="LEASE",t[t.METADATA=256]="METADATA",t[t.NEXT=32]="NEXT",t[t.RESPOND=128]="RESPOND",t[t.RESUME_ENABLE=128]="RESUME_ENABLE"})(n.Flags||(n.Flags={})),(function(t){function i(h){return(h&t.METADATA)===t.METADATA}t.hasMetadata=i;function r(h){return(h&t.COMPLETE)===t.COMPLETE}t.hasComplete=r;function a(h){return(h&t.NEXT)===t.NEXT}t.hasNext=a;function s(h){return(h&t.FOLLOWS)===t.FOLLOWS}t.hasFollows=s;function l(h){return(h&t.IGNORE)===t.IGNORE}t.hasIgnore=l;function c(h){return(h&t.RESPOND)===t.RESPOND}t.hasRespond=c;function f(h){return(h&t.LEASE)===t.LEASE}t.hasLease=f;function p(h){return(h&t.RESUME_ENABLE)===t.RESUME_ENABLE}t.hasResume=p})(n.Flags||(n.Flags={})),(function(t){t[t.FRAME=3]="FRAME",t[t.HEADER=6]="HEADER",t[t.METADATA=3]="METADATA",t[t.REQUEST=3]="REQUEST"})(n.Lengths||(n.Lengths={})),(function(t){function i(a){return a.streamId===0}t.isConnection=i;function r(a){return e.REQUEST_RESPONSE<=a.type&&a.type<=e.REQUEST_CHANNEL}t.isRequest=r})(n.Frame||(n.Frame={}))})(OF)),OF}function AG(){return aG||(aG=1,(function(n){var e=NT&&NT.__generator||function(X,ie){var le={label:0,sent:function(){if(Oe[0]&1)throw Oe[1];return Oe[1]},trys:[],ops:[]},be,tt,Oe,je;return je={next:Ct(0),throw:Ct(1),return:Ct(2)},typeof Symbol=="function"&&(je[Symbol.iterator]=function(){return this}),je;function Ct(ht){return function(De){return nn([ht,De])}}function nn(ht){if(be)throw new TypeError("Generator is already executing.");for(;le;)try{if(be=1,tt&&(Oe=ht[0]&2?tt.return:ht[0]?tt.throw||((Oe=tt.return)&&Oe.call(tt),0):tt.next)&&!(Oe=Oe.call(tt,ht[1])).done)return Oe;switch(tt=0,Oe&&(ht=[ht[0]&2,Oe.value]),ht[0]){case 0:case 1:Oe=ht;break;case 4:return le.label++,{value:ht[1],done:!1};case 5:le.label++,tt=ht[1],ht=[0];continue;case 7:ht=le.ops.pop(),le.trys.pop();continue;default:if(Oe=le.trys,!(Oe=Oe.length>0&&Oe[Oe.length-1])&&(ht[0]===6||ht[0]===2)){le=0;continue}if(ht[0]===3&&(!Oe||ht[1]>Oe[0]&&ht[1]>>16,le),le=X.writeUInt8(ie>>>8&255,le),X.writeUInt8(ie&255,le)}n.writeUInt24BE=a;function s(X,ie){var le=X.readUInt32BE(ie),be=X.readUInt32BE(ie+4);return le*i+be}n.readUInt64BE=s;function l(X,ie,le){var be=ie/i|0,tt=ie%i;return le=X.writeUInt32BE(be,le),X.writeUInt32BE(tt,le)}n.writeUInt64BE=l;var c=6,f=3;function p(X){var ie=r(X,0);return g(X.slice(f,f+ie))}n.deserializeFrameWithLength=p;function h(X){var ie,le,be,tt,Oe,je;return e(this,function(Ct){switch(Ct.label){case 0:ie=0,Ct.label=1;case 1:return ie+fX.length?[3,3]:(Oe=X.slice(be,tt),je=g(Oe),ie=tt,[4,[je,ie]])):[3,3];case 2:return Ct.sent(),[3,1];case 3:return[2]}})}n.deserializeFrames=h;function _(X){var ie=E(X),le=Vi.Buffer.allocUnsafe(ie.length+f);return a(le,ie.length,0),ie.copy(le,f),le}n.serializeFrameWithLength=_;function g(X){var ie=0,le=X.readInt32BE(ie);ie+=4;var be=X.readUInt16BE(ie);ie+=2;var tt=be>>>n.FRAME_TYPE_OFFFSET,Oe=be&n.FLAGS_MASK;switch(tt){case t.FrameTypes.SETUP:return k(X,le,Oe);case t.FrameTypes.PAYLOAD:return vt(X,le,Oe);case t.FrameTypes.ERROR:return H(X,le,Oe);case t.FrameTypes.KEEPALIVE:return he(X,le,Oe);case t.FrameTypes.REQUEST_FNF:return We(X,le,Oe);case t.FrameTypes.REQUEST_RESPONSE:return gt(X,le,Oe);case t.FrameTypes.REQUEST_STREAM:return Xe(X,le,Oe);case t.FrameTypes.REQUEST_CHANNEL:return et(X,le,Oe);case t.FrameTypes.METADATA_PUSH:return Et(X,le,Oe);case t.FrameTypes.REQUEST_N:return sn(X,le,Oe);case t.FrameTypes.RESUME:return en(X,le,Oe);case t.FrameTypes.RESUME_OK:return ge(X,le,Oe);case t.FrameTypes.CANCEL:return _e(X,le,Oe);case t.FrameTypes.LEASE:return Ne(X,le,Oe)}}n.deserializeFrame=g;function E(X){switch(X.type){case t.FrameTypes.SETUP:return M(X);case t.FrameTypes.PAYLOAD:return Pe(X);case t.FrameTypes.ERROR:return G(X);case t.FrameTypes.KEEPALIVE:return te(X);case t.FrameTypes.REQUEST_FNF:case t.FrameTypes.REQUEST_RESPONSE:return Ve(X);case t.FrameTypes.REQUEST_STREAM:case t.FrameTypes.REQUEST_CHANNEL:return zt(X);case t.FrameTypes.METADATA_PUSH:return Qe(X);case t.FrameTypes.REQUEST_N:return Wt(X);case t.FrameTypes.RESUME:return Ht(X);case t.FrameTypes.RESUME_OK:return fn(X);case t.FrameTypes.CANCEL:return pn(X);case t.FrameTypes.LEASE:return Me(X)}}n.serializeFrame=E;function x(X){switch(X.type){case t.FrameTypes.SETUP:return O(X);case t.FrameTypes.PAYLOAD:return dt(X);case t.FrameTypes.ERROR:return Q(X);case t.FrameTypes.KEEPALIVE:return j(X);case t.FrameTypes.REQUEST_FNF:case t.FrameTypes.REQUEST_RESPONSE:return Je(X);case t.FrameTypes.REQUEST_STREAM:case t.FrameTypes.REQUEST_CHANNEL:return Mt(X);case t.FrameTypes.METADATA_PUSH:return st(X);case t.FrameTypes.REQUEST_N:return Lt();case t.FrameTypes.RESUME:return qt(X);case t.FrameTypes.RESUME_OK:return kt();case t.FrameTypes.CANCEL:return lt();case t.FrameTypes.LEASE:return ze(X)}}n.sizeOfFrame=x;var S=14,v=2;function M(X){var ie=X.resumeToken!=null?X.resumeToken.byteLength:0,le=X.metadataMimeType!=null?Vi.Buffer.byteLength(X.metadataMimeType,"ascii"):0,be=X.dataMimeType!=null?Vi.Buffer.byteLength(X.dataMimeType,"ascii"):0,tt=N(X),Oe=Vi.Buffer.allocUnsafe(c+S+(ie?v+ie:0)+le+be+tt),je=L(X,Oe);return je=Oe.writeUInt16BE(X.majorVersion,je),je=Oe.writeUInt16BE(X.minorVersion,je),je=Oe.writeUInt32BE(X.keepAlive,je),je=Oe.writeUInt32BE(X.lifetime,je),X.flags&t.Flags.RESUME_ENABLE&&(je=Oe.writeUInt16BE(ie,je),X.resumeToken!=null&&(je+=X.resumeToken.copy(Oe,je))),je=Oe.writeUInt8(le,je),X.metadataMimeType!=null&&(je+=Oe.write(X.metadataMimeType,je,je+le,"ascii")),je=Oe.writeUInt8(be,je),X.dataMimeType!=null&&(je+=Oe.write(X.dataMimeType,je,je+be,"ascii")),U(X,Oe,je),Oe}function O(X){var ie=X.resumeToken!=null?X.resumeToken.byteLength:0,le=X.metadataMimeType!=null?Vi.Buffer.byteLength(X.metadataMimeType,"ascii"):0,be=X.dataMimeType!=null?Vi.Buffer.byteLength(X.dataMimeType,"ascii"):0,tt=N(X);return c+S+(ie?v+ie:0)+le+be+tt}function k(X,ie,le){X.length;var be=c,tt=X.readUInt16BE(be);be+=2;var Oe=X.readUInt16BE(be);be+=2;var je=X.readInt32BE(be);be+=4;var Ct=X.readInt32BE(be);be+=4;var nn=null;if(le&t.Flags.RESUME_ENABLE){var ht=X.readInt16BE(be);be+=2,nn=X.slice(be,be+ht),be+=ht}var De=X.readUInt8(be);be+=1;var bt=X.toString("ascii",be,be+De);be+=De;var at=X.readUInt8(be);be+=1;var we=X.toString("ascii",be,be+at);be+=at;var Rt={data:null,dataMimeType:we,flags:le,keepAlive:je,lifetime:Ct,majorVersion:tt,metadata:null,metadataMimeType:bt,minorVersion:Oe,resumeToken:nn,streamId:0,type:t.FrameTypes.SETUP};return ee(X,Rt,be),Rt}var q=4;function G(X){var ie=X.message!=null?Vi.Buffer.byteLength(X.message,"utf8"):0,le=Vi.Buffer.allocUnsafe(c+q+ie),be=L(X,le);return be=le.writeUInt32BE(X.code,be),X.message!=null&&le.write(X.message,be,be+ie,"utf8"),le}function Q(X){var ie=X.message!=null?Vi.Buffer.byteLength(X.message,"utf8"):0;return c+q+ie}function H(X,ie,le){X.length;var be=c,tt=X.readInt32BE(be);be+=4;var Oe=X.length-be,je="";return Oe>0&&(je=X.toString("utf8",be,be+Oe),be+=Oe),{code:tt,flags:le,message:je,streamId:ie,type:t.FrameTypes.ERROR}}var Z=8;function te(X){var ie=X.data!=null?X.data.byteLength:0,le=Vi.Buffer.allocUnsafe(c+Z+ie),be=L(X,le);return be=l(le,X.lastReceivedPosition,be),X.data!=null&&X.data.copy(le,be),le}function j(X){var ie=X.data!=null?X.data.byteLength:0;return c+Z+ie}function he(X,ie,le){X.length;var be=c,tt=s(X,be);be+=8;var Oe=null;return be0&&(ie.metadata=X.slice(le,le+be),le+=be)}le=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(i?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(U_,"__esModule",{value:!0}),U_.Deferred=void 0;var e=(function(){function t(){this._done=!1,this.onCloseCallbacks=[]}return Object.defineProperty(t.prototype,"done",{get:function(){return this._done},enumerable:!1,configurable:!0}),t.prototype.close=function(i){var r,a,s,l;if(this.done){console.warn("Trying to close for the second time. ".concat(i?"Dropping error [".concat(i,"]."):""));return}if(this._done=!0,this._error=i,i){try{for(var c=n(this.onCloseCallbacks),f=c.next();!f.done;f=c.next()){var p=f.value;p(i)}}catch(g){r={error:g}}finally{try{f&&!f.done&&(a=c.return)&&a.call(c)}finally{if(r)throw r.error}}return}try{for(var h=n(this.onCloseCallbacks),_=h.next();!_.done;_=h.next()){var p=_.value;p()}}catch(g){s={error:g}}finally{try{_&&!_.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}},t.prototype.onClose=function(i){if(this._done){i(this._error);return}this.onCloseCallbacks.push(i)},t})();return U_.Deferred=e,U_}function ep(){return lG||(lG=1,(function(n){var e=kT&&kT.__extends||(function(){var i=function(r,a){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,l){s.__proto__=l}||function(s,l){for(var c in l)Object.prototype.hasOwnProperty.call(l,c)&&(s[c]=l[c])},i(r,a)};return function(r,a){if(typeof a!="function"&&a!==null)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");i(r,a);function s(){this.constructor=r}r.prototype=a===null?Object.create(a):(s.prototype=a.prototype,new s)}})();Object.defineProperty(n,"__esModule",{value:!0}),n.ErrorCodes=n.RSocketError=void 0;var t=(function(i){e(r,i);function r(a,s){var l=i.call(this,s)||this;return l.code=a,l}return r})(Error);n.RSocketError=t,(function(i){i[i.RESERVED=0]="RESERVED",i[i.INVALID_SETUP=1]="INVALID_SETUP",i[i.UNSUPPORTED_SETUP=2]="UNSUPPORTED_SETUP",i[i.REJECTED_SETUP=3]="REJECTED_SETUP",i[i.REJECTED_RESUME=4]="REJECTED_RESUME",i[i.CONNECTION_CLOSE=258]="CONNECTION_CLOSE",i[i.CONNECTION_ERROR=257]="CONNECTION_ERROR",i[i.APPLICATION_ERROR=513]="APPLICATION_ERROR",i[i.REJECTED=514]="REJECTED",i[i.CANCELED=515]="CANCELED",i[i.INVALID=516]="INVALID",i[i.RESERVED_EXTENSION=4294967295]="RESERVED_EXTENSION"})(n.ErrorCodes||(n.ErrorCodes={}))})(kT)),kT}function Dne(){return uG||(uG=1,Object.defineProperty(FF,"__esModule",{value:!0})),FF}function RG(){return cG||(cG=1,(function(n){var e=od&&od.__extends||(function(){var h=function(_,g){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(E,x){E.__proto__=x}||function(E,x){for(var S in x)Object.prototype.hasOwnProperty.call(x,S)&&(E[S]=x[S])},h(_,g)};return function(_,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");h(_,g);function E(){this.constructor=_}_.prototype=g===null?Object.create(g):(E.prototype=g.prototype,new E)}})(),t=od&&od.__awaiter||function(h,_,g,E){function x(S){return S instanceof g?S:new g(function(v){v(S)})}return new(g||(g=Promise))(function(S,v){function M(q){try{k(E.next(q))}catch(G){v(G)}}function O(q){try{k(E.throw(q))}catch(G){v(G)}}function k(q){q.done?S(q.value):x(q.value).then(M,O)}k((E=E.apply(h,_||[])).next())})},i=od&&od.__generator||function(h,_){var g={label:0,sent:function(){if(S[0]&1)throw S[1];return S[1]},trys:[],ops:[]},E,x,S,v;return v={next:M(0),throw:M(1),return:M(2)},typeof Symbol=="function"&&(v[Symbol.iterator]=function(){return this}),v;function M(k){return function(q){return O([k,q])}}function O(k){if(E)throw new TypeError("Generator is already executing.");for(;g;)try{if(E=1,x&&(S=k[0]&2?x.return:k[0]?x.throw||((S=x.return)&&S.call(x),0):x.next)&&!(S=S.call(x,k[1])).done)return S;switch(x=0,S&&(k=[k[0]&2,S.value]),k[0]){case 0:case 1:S=k;break;case 4:return g.label++,{value:k[1],done:!1};case 5:g.label++,x=k[1],k=[0];continue;case 7:k=g.ops.pop(),g.trys.pop();continue;default:if(S=g.trys,!(S=S.length>0&&S[S.length-1])&&(k[0]===6||k[0]===2)){g=0;continue}if(k[0]===3&&(!S||k[1]>S[0]&&k[1]0&&p[p.length-1])&&(E[0]===6||E[0]===2)){l=0;continue}if(E[0]===3&&(!p||E[1]>p[0]&&E[1]s}Bu.isFragmentable=t;function i(a,s,l,c,f){var p,h,_,g,E,x,S,S,v,M,O,O,k,q;return f===void 0&&(f=!1),n(this,function(G){switch(G.label){case 0:return p=(q=(k=s.data)===null||k===void 0?void 0:k.byteLength)!==null&&q!==void 0?q:0,h=c!==e.FrameTypes.PAYLOAD,_=l,s.metadata?(E=s.metadata.byteLength,E!==0?[3,1]:(_-=e.Lengths.METADATA,g=Vi.Buffer.allocUnsafe(0),[3,6])):[3,6];case 1:return x=0,h?(_-=e.Lengths.METADATA,S=Math.min(E,x+_),g=s.metadata.slice(x,S),_-=g.byteLength,x=S,_!==0?[3,3]:(h=!1,[4,{type:c,flags:e.Flags.FOLLOWS|e.Flags.METADATA,data:void 0,metadata:g,streamId:a}])):[3,3];case 2:G.sent(),g=void 0,_=l,G.label=3;case 3:return x=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ns,"__esModule",{value:!0}),Ns.RequestChannelResponderStream=Ns.RequestChannelRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E,x,S){this.payload=h,this.isComplete=_,this.receiver=g,this.fragmentSize=E,this.initialRequestN=x,this.leaseManager=S,this.streamType=s.FrameTypes.REQUEST_CHANNEL}return p.prototype.handleReady=function(h,_){var g,E;if(this.outboundDone)return!1;this.streamId=h,this.stream=_,_.connect(this);var x=this.isComplete;if(x&&(this.outboundDone=x),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_CHANNEL))try{for(var S=i((0,a.fragmentWithRequestN)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_CHANNEL,this.initialRequestN,x)),v=S.next();!v.done;v=S.next()){var M=v.value;this.stream.send(M)}}catch(O){g={error:O}}finally{try{v&&!v.done&&(E=S.return)&&E.call(S)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_CHANNEL,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:(this.payload.metadata!==void 0?s.Flags.METADATA:s.Flags.NONE)|(x?s.Flags.COMPLETE:s.Flags.NONE),streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.inboundDone||(this.inboundDone=!0,this.outboundDone=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(E&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!x)){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,E);return}if(l.add(this,h.data,h.metadata))return;_="Unexpected frame size";break}case s.FrameTypes.CANCEL:{if(this.outboundDone)return;this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this),this.receiver.cancel();return}case s.FrameTypes.REQUEST_N:{if(this.outboundDone)return;if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.request(h.requestN);return}case s.FrameTypes.ERROR:{var v=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),l.cancel(this),v||this.receiver.cancel(),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return;default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.request=function(h){if(!this.inboundDone){if(!this.streamId){this.initialRequestN+=h;return}this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,requestN:h,streamId:this.streamId})}},p.prototype.cancel=function(){var h,_=this.inboundDone,g=this.outboundDone;if(!(_&&g)){if(this.inboundDone=!0,this.outboundDone=!0,g||this.receiver.cancel(),!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:_?s.FrameTypes.ERROR:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId,code:r.ErrorCodes.CANCELED,message:"Cancelled"}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onNext=function(h,_){var g,E;if(!this.outboundDone)if(_&&(this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this)),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,streamId:this.streamId,flags:s.Flags.NEXT|(h.metadata?s.Flags.METADATA:s.Flags.NONE)|(_?s.Flags.COMPLETE:s.Flags.NONE),data:h.data,metadata:h.metadata})},p.prototype.onComplete=function(){if(!this.streamId){this.isComplete=!0;return}this.outboundDone||(this.outboundDone=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,streamId:this.streamId,flags:s.Flags.COMPLETE,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},p.prototype.onError=function(h){if(!this.outboundDone){var _=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:s.FrameTypes.ERROR,streamId:this.streamId,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message}),this.stream.disconnect(this),_||this.receiver.onError(h)}},p.prototype.onExtension=function(h,_,g){if(!this.outboundDone){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){if(!(this.inboundDone&&this.outboundDone)){var _=this.inboundDone,g=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,l.cancel(this),g||this.receiver.cancel(),_||(h?this.receiver.onError(h):this.receiver.onComplete())}},p})();Ns.RequestChannelRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_CHANNEL,_.connect(this),s.Flags.hasFollows(x.flags)){l.add(this,x.data,x.metadata),this.initialRequestN=x.requestN,this.isComplete=s.Flags.hasComplete(x.flags);return}var S={data:x.data,metadata:x.metadata},v=s.Flags.hasComplete(x.flags);this.inboundDone=v;try{this.receiver=E(S,x.requestN,v,this),this.outboundDone&&this.defferedError&&this.receiver.onError(this.defferedError)}catch(M){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(M)}}return p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;_="Unexpected frame size";break}var E=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata},x=s.Flags.hasComplete(h.flags);if(this.receiver){if(x&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!s.Flags.hasNext(h.flags))){this.receiver.onComplete();return}this.receiver.onNext(E,x)}else{var S=this.isComplete||x;S&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this));try{this.receiver=this.handler(E,this.initialRequestN,S,this),this.outboundDone&&this.defferedError}catch(O){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(O)}}return}case s.FrameTypes.REQUEST_N:{if(!this.receiver||this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.request(h.requestN);return}case s.FrameTypes.ERROR:case s.FrameTypes.CANCEL:{var S=this.inboundDone,v=this.outboundDone;if(this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),l.cancel(this),!this.receiver)return;if(v||this.receiver.cancel(),!S){var M=g===s.FrameTypes.CANCEL?new r.RSocketError(r.ErrorCodes.CANCELED,"Cancelled"):new r.RSocketError(h.code,h.message);this.receiver.onError(M)}return}case s.FrameTypes.EXT:{if(!this.receiver||this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:_,streamId:this.streamId}),this.stream.disconnect(this),this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_))},p.prototype.onError=function(h){if(this.outboundDone){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}var _=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this),_||(this.receiver?this.receiver.onError(h):this.defferedError=h)},p.prototype.onNext=function(h,_){var g,E;if(!this.outboundDone){if(_&&(this.outboundDone=!0),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|(_?s.Flags.COMPLETE:s.Flags.NONE)|(h.metadata?s.Flags.METADATA:s.Flags.NONE),data:h.data,metadata:h.metadata,streamId:this.streamId});_&&this.inboundDone&&this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.outboundDone||(this.outboundDone=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.outboundDone&&this.inboundDone||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.request=function(h){this.inboundDone||this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,streamId:this.streamId,requestN:h})},p.prototype.cancel=function(){this.inboundDone||(this.inboundDone=!0,this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.outboundDone&&this.stream.disconnect(this))},p.prototype.close=function(h){if(this.inboundDone&&this.outboundDone){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}var _=this.inboundDone,g=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,l.cancel(this);var E=this.receiver;E&&(g||E.cancel(),_||(h?E.onError(h):E.onComplete()))},p})();return Ns.RequestChannelResponderStream=f,Ns}function Pne(){if(pG)return ks;pG=1;var n=ks&&ks.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=ks&&ks.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=ks&&ks.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=ks&&ks.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ks,"__esModule",{value:!0}),ks.RequestFnfResponderStream=ks.RequestFnFRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E){this.payload=h,this.receiver=_,this.fragmentSize=g,this.leaseManager=E,this.streamType=s.FrameTypes.REQUEST_FNF}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_FNF))try{for(var x=i((0,a.fragment)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_FNF)),S=x.next();!S.done;S=x.next()){var v=S.value;_.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else _.send({type:s.FrameTypes.REQUEST_FNF,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?s.Flags.METADATA:0,streamId:h});return this.done=!0,this.receiver.onComplete(),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.cancel=function(){var h;this.done||(this.done=!0,(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this))},p.prototype.handle=function(h){if(h.type==s.FrameTypes.ERROR){this.close(new r.RSocketError(h.code,h.message));return}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,"Received invalid frame"))},p.prototype.close=function(h){if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}h?this.receiver.onError(h):this.receiver.onComplete()},p})();ks.RequestFnFRequesterStream=c;var f=(function(){function p(h,_,g,E){if(this.streamId=h,this.stream=_,this.handler=g,this.streamType=s.FrameTypes.REQUEST_FNF,s.Flags.hasFollows(E.flags)){l.add(this,E.data,E.metadata),_.connect(this);return}var x={data:E.data,metadata:E.metadata};try{this.cancellable=g(x,this)}catch{}}return p.prototype.handle=function(h){var _;if(h.type==s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;_="Unexpected fragment size"}else{this.stream.disconnect(this);var g=l.reassemble(this,h.data,h.metadata);try{this.cancellable=this.handler(g,this)}catch{}return}else _="Unexpected frame type [".concat(h.type,"]");this.done=!0,h.type!=s.FrameTypes.CANCEL&&h.type!=s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,streamId:this.streamId,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:_}),this.stream.disconnect(this),l.cancel(this)},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,l.cancel(this),(_=this.cancellable)===null||_===void 0||_.cancel()},p.prototype.onError=function(h){},p.prototype.onComplete=function(){},p})();return ks.RequestFnfResponderStream=f,ks}function Une(){if(mG)return Os;mG=1;var n=Os&&Os.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=Os&&Os.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=Os&&Os.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=Os&&Os.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Os,"__esModule",{value:!0}),Os.RequestResponseResponderStream=Os.RequestResponseRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E){this.payload=h,this.receiver=_,this.fragmentSize=g,this.leaseManager=E,this.streamType=s.FrameTypes.REQUEST_RESPONSE}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,this.stream=_,_.connect(this),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_RESPONSE))try{for(var x=i((0,a.fragment)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_RESPONSE)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_RESPONSE,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?s.Flags.METADATA:0,streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(this.done=!0,this.stream.disconnect(this),!x){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,!0);return}if(!l.add(this,h.data,h.metadata)){_="Unexpected fragment size";break}return}case s.FrameTypes.ERROR:{this.done=!0,this.stream.disconnect(this),l.cancel(this),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:{if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.cancel=function(){var h;if(!this.done){if(this.done=!0,!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onExtension=function(h,_,g){if(!this.done){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){this.done||(this.done=!0,l.cancel(this),h?this.receiver.onError(h):this.receiver.onComplete())},p})();Os.RequestResponseRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_RESPONSE,_.connect(this),s.Flags.hasFollows(x.flags)){l.add(this,x.data,x.metadata);return}var S={data:x.data,metadata:x.metadata};try{this.receiver=E(S,this)}catch(v){this.onError(v)}}return p.prototype.handle=function(h){var _,g;if(!this.receiver||this.hasFragments)if(h.type===s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;g="Unexpected fragment size"}else{var E=l.reassemble(this,h.data,h.metadata);try{this.receiver=this.handler(E,this)}catch(x){this.onError(x)}return}else g="Unexpected frame type [".concat(h.type,"] during reassembly");else if(h.type===s.FrameTypes.EXT){this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}else g="Unexpected frame type [".concat(h.type,"]");this.done=!0,(_=this.receiver)===null||_===void 0||_.cancel(),h.type!==s.FrameTypes.CANCEL&&h.type!==s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:g,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)},p.prototype.onError=function(h){if(this.done){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onNext=function(h,_){var g,E;if(!this.done){if(this.done=!0,(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,!0)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|s.Flags.COMPLETE|(h.metadata?s.Flags.METADATA:0),data:h.data,metadata:h.metadata,streamId:this.streamId});this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.done||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel()},p})();return Os.RequestResponseResponderStream=f,Os}function zne(){if(_G)return Ds;_G=1;var n=Ds&&Ds.__createBinding||(Object.create?(function(p,h,_,g){g===void 0&&(g=_),Object.defineProperty(p,g,{enumerable:!0,get:function(){return h[_]}})}):(function(p,h,_,g){g===void 0&&(g=_),p[g]=h[_]})),e=Ds&&Ds.__setModuleDefault||(Object.create?(function(p,h){Object.defineProperty(p,"default",{enumerable:!0,value:h})}):function(p,h){p.default=h}),t=Ds&&Ds.__importStar||function(p){if(p&&p.__esModule)return p;var h={};if(p!=null)for(var _ in p)_!=="default"&&Object.prototype.hasOwnProperty.call(p,_)&&n(h,p,_);return e(h,p),h},i=Ds&&Ds.__values||function(p){var h=typeof Symbol=="function"&&Symbol.iterator,_=h&&p[h],g=0;if(_)return _.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&g>=p.length&&(p=void 0),{value:p&&p[g++],done:!p}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ds,"__esModule",{value:!0}),Ds.RequestStreamResponderStream=Ds.RequestStreamRequesterStream=void 0;var r=ep(),a=UR(),s=Hu(),l=t(zR()),c=(function(){function p(h,_,g,E,x){this.payload=h,this.receiver=_,this.fragmentSize=g,this.initialRequestN=E,this.leaseManager=x,this.streamType=s.FrameTypes.REQUEST_STREAM}return p.prototype.handleReady=function(h,_){var g,E;if(this.done)return!1;if(this.streamId=h,this.stream=_,_.connect(this),(0,a.isFragmentable)(this.payload,this.fragmentSize,s.FrameTypes.REQUEST_STREAM))try{for(var x=i((0,a.fragmentWithRequestN)(h,this.payload,this.fragmentSize,s.FrameTypes.REQUEST_STREAM,this.initialRequestN)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.REQUEST_STREAM,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:this.payload.metadata!==void 0?s.Flags.METADATA:0,streamId:h});return this.hasExtension&&this.stream.send({type:s.FrameTypes.EXT,streamId:h,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},p.prototype.handleReject=function(h){this.done||(this.done=!0,this.receiver.onError(h))},p.prototype.handle=function(h){var _,g=h.type;switch(g){case s.FrameTypes.PAYLOAD:{var E=s.Flags.hasComplete(h.flags),x=s.Flags.hasNext(h.flags);if(E||!s.Flags.hasFollows(h.flags)){if(E&&(this.done=!0,this.stream.disconnect(this),!x)){this.receiver.onComplete();return}var S=this.hasFragments?l.reassemble(this,h.data,h.metadata):{data:h.data,metadata:h.metadata};this.receiver.onNext(S,E);return}if(!l.add(this,h.data,h.metadata)){_="Unexpected fragment size";break}return}case s.FrameTypes.ERROR:{this.done=!0,this.stream.disconnect(this),l.cancel(this),this.receiver.onError(new r.RSocketError(h.code,h.message));return}case s.FrameTypes.EXT:{if(this.hasFragments){_="Unexpected frame type [".concat(g,"] during reassembly");break}this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}default:_="Unexpected frame type [".concat(g,"]")}this.close(new r.RSocketError(r.ErrorCodes.CANCELED,_)),this.stream.send({type:s.FrameTypes.CANCEL,streamId:this.streamId,flags:s.Flags.NONE}),this.stream.disconnect(this)},p.prototype.request=function(h){if(!this.done){if(!this.streamId){this.initialRequestN+=h;return}this.stream.send({type:s.FrameTypes.REQUEST_N,flags:s.Flags.NONE,requestN:h,streamId:this.streamId})}},p.prototype.cancel=function(){var h;if(!this.done){if(this.done=!0,!this.streamId){(h=this.leaseManager)===null||h===void 0||h.cancelRequest(this);return}this.stream.send({type:s.FrameTypes.CANCEL,flags:s.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),l.cancel(this)}},p.prototype.onExtension=function(h,_,g){if(!this.done){if(!this.streamId){this.hasExtension=!0,this.extendedType=h,this.extendedContent=_,this.flags=g?s.Flags.IGNORE:s.Flags.NONE;return}this.stream.send({streamId:this.streamId,type:s.FrameTypes.EXT,extendedType:h,extendedContent:_,flags:g?s.Flags.IGNORE:s.Flags.NONE})}},p.prototype.close=function(h){this.done||(this.done=!0,l.cancel(this),h?this.receiver.onError(h):this.receiver.onComplete())},p})();Ds.RequestStreamRequesterStream=c;var f=(function(){function p(h,_,g,E,x){if(this.streamId=h,this.stream=_,this.fragmentSize=g,this.handler=E,this.streamType=s.FrameTypes.REQUEST_STREAM,_.connect(this),s.Flags.hasFollows(x.flags)){this.initialRequestN=x.requestN,l.add(this,x.data,x.metadata);return}var S={data:x.data,metadata:x.metadata};try{this.receiver=E(S,x.requestN,this)}catch(v){this.onError(v)}}return p.prototype.handle=function(h){var _,g;if(!this.receiver||this.hasFragments)if(h.type===s.FrameTypes.PAYLOAD)if(s.Flags.hasFollows(h.flags)){if(l.add(this,h.data,h.metadata))return;g="Unexpected frame size"}else{var E=l.reassemble(this,h.data,h.metadata);try{this.receiver=this.handler(E,this.initialRequestN,this)}catch(x){this.onError(x)}return}else g="Unexpected frame type [".concat(h.type,"] during reassembly");else if(h.type===s.FrameTypes.REQUEST_N){this.receiver.request(h.requestN);return}else if(h.type===s.FrameTypes.EXT){this.receiver.onExtension(h.extendedType,h.extendedContent,s.Flags.hasIgnore(h.flags));return}else g="Unexpected frame type [".concat(h.type,"]");this.done=!0,l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel(),h.type!==s.FrameTypes.CANCEL&&h.type!==s.FrameTypes.ERROR&&this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:r.ErrorCodes.CANCELED,message:g,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onError=function(h){if(this.done){console.warn("Trying to error for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}this.done=!0,this.stream.send({type:s.FrameTypes.ERROR,flags:s.Flags.NONE,code:h instanceof r.RSocketError?h.code:r.ErrorCodes.APPLICATION_ERROR,message:h.message,streamId:this.streamId}),this.stream.disconnect(this)},p.prototype.onNext=function(h,_){var g,E;if(!this.done){if(_&&(this.done=!0),(0,a.isFragmentable)(h,this.fragmentSize,s.FrameTypes.PAYLOAD))try{for(var x=i((0,a.fragment)(this.streamId,h,this.fragmentSize,s.FrameTypes.PAYLOAD,_)),S=x.next();!S.done;S=x.next()){var v=S.value;this.stream.send(v)}}catch(M){g={error:M}}finally{try{S&&!S.done&&(E=x.return)&&E.call(x)}finally{if(g)throw g.error}}else this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.NEXT|(_?s.Flags.COMPLETE:s.Flags.NONE)|(h.metadata?s.Flags.METADATA:s.Flags.NONE),data:h.data,metadata:h.metadata,streamId:this.streamId});_&&this.stream.disconnect(this)}},p.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:s.FrameTypes.PAYLOAD,flags:s.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},p.prototype.onExtension=function(h,_,g){this.done||this.stream.send({type:s.FrameTypes.EXT,streamId:this.streamId,flags:g?s.Flags.IGNORE:s.Flags.NONE,extendedType:h,extendedContent:_})},p.prototype.close=function(h){var _;if(this.done){console.warn("Trying to close for the second time. ".concat(h?"Dropping error [".concat(h,"]."):""));return}l.cancel(this),(_=this.receiver)===null||_===void 0||_.cancel()},p})();return Ds.RequestStreamResponderStream=f,Ds}function IG(){if(gG)return Ls;gG=1,Object.defineProperty(Ls,"__esModule",{value:!0}),Ls.KeepAliveSender=Ls.KeepAliveHandler=Ls.DefaultConnectionFrameHandler=Ls.DefaultStreamRequestHandler=Ls.LeaseHandler=Ls.RSocketRequester=void 0;var n=ep(),e=Hu(),t=Fne(),i=Pne(),r=Une(),a=zne(),s=(function(){function E(x,S,v){this.connection=x,this.fragmentSize=S,this.leaseManager=v}return E.prototype.fireAndForget=function(x,S){var v=new i.RequestFnFRequesterStream(x,S,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(v):this.connection.multiplexerDemultiplexer.createRequestStream(v),v},E.prototype.requestResponse=function(x,S){var v=new r.RequestResponseRequesterStream(x,S,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(v):this.connection.multiplexerDemultiplexer.createRequestStream(v),v},E.prototype.requestStream=function(x,S,v){var M=new a.RequestStreamRequesterStream(x,v,this.fragmentSize,S,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(M):this.connection.multiplexerDemultiplexer.createRequestStream(M),M},E.prototype.requestChannel=function(x,S,v,M){var O=new t.RequestChannelRequesterStream(x,v,M,this.fragmentSize,S,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(O):this.connection.multiplexerDemultiplexer.createRequestStream(O),O},E.prototype.metadataPush=function(x,S){throw new Error("Method not implemented.")},E.prototype.close=function(x){this.connection.close(x)},E.prototype.onClose=function(x){this.connection.onClose(x)},E})();Ls.RSocketRequester=s;var l=(function(){function E(x,S){this.maxPendingRequests=x,this.multiplexer=S,this.pendingRequests=[],this.expirationTime=0,this.availableLease=0}return E.prototype.handle=function(x){for(this.expirationTime=x.ttl+Date.now(),this.availableLease=x.requestCount;this.availableLease>0&&this.pendingRequests.length>0;){var S=this.pendingRequests.shift();this.availableLease--,this.multiplexer.createRequestStream(S)}},E.prototype.requestLease=function(x){var S=this.availableLease;if(S>0&&Date.now()=this.maxPendingRequests){x.handleReject(new n.RSocketError(n.ErrorCodes.REJECTED,"No available lease given"));return}this.pendingRequests.push(x)},E.prototype.cancelRequest=function(x){var S=this.pendingRequests.indexOf(x);S>-1&&this.pendingRequests.splice(S,1)},E})();Ls.LeaseHandler=l;var c=(function(){function E(x,S){this.rsocket=x,this.fragmentSize=S}return E.prototype.handle=function(x,S){switch(x.type){case e.FrameTypes.REQUEST_FNF:this.rsocket.fireAndForget&&new i.RequestFnfResponderStream(x.streamId,S,this.rsocket.fireAndForget.bind(this.rsocket),x);return;case e.FrameTypes.REQUEST_RESPONSE:if(this.rsocket.requestResponse){new r.RequestResponseResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestResponse.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return;case e.FrameTypes.REQUEST_STREAM:if(this.rsocket.requestStream){new a.RequestStreamResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestStream.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return;case e.FrameTypes.REQUEST_CHANNEL:if(this.rsocket.requestChannel){new t.RequestChannelResponderStream(x.streamId,S,this.fragmentSize,this.rsocket.requestChannel.bind(this.rsocket),x);return}this.rejectRequest(x.streamId,S);return}},E.prototype.rejectRequest=function(x,S){S.send({type:e.FrameTypes.ERROR,streamId:x,flags:e.Flags.NONE,code:n.ErrorCodes.REJECTED,message:"No available handler found"})},E.prototype.close=function(){},E})();Ls.DefaultStreamRequestHandler=c;var f=(function(){function E(x,S,v,M,O){this.connection=x,this.keepAliveHandler=S,this.keepAliveSender=v,this.leaseHandler=M,this.rsocket=O}return E.prototype.handle=function(x){switch(x.type){case e.FrameTypes.KEEPALIVE:this.keepAliveHandler.handle(x);return;case e.FrameTypes.LEASE:if(this.leaseHandler){this.leaseHandler.handle(x);return}return;case e.FrameTypes.ERROR:this.connection.close(new n.RSocketError(x.code,x.message));return;case e.FrameTypes.METADATA_PUSH:this.rsocket.metadataPush;return;default:this.connection.multiplexerDemultiplexer.connectionOutbound.send({type:e.FrameTypes.ERROR,streamId:0,flags:e.Flags.NONE,message:"Received unknown frame type",code:n.ErrorCodes.CONNECTION_ERROR})}},E.prototype.pause=function(){var x;this.keepAliveHandler.pause(),(x=this.keepAliveSender)===null||x===void 0||x.pause()},E.prototype.resume=function(){var x;this.keepAliveHandler.start(),(x=this.keepAliveSender)===null||x===void 0||x.start()},E.prototype.close=function(x){var S;this.keepAliveHandler.close(),(S=this.rsocket.close)===null||S===void 0||S.call(this.rsocket,x)},E})();Ls.DefaultConnectionFrameHandler=f;var p;(function(E){E[E.Paused=0]="Paused",E[E.Running=1]="Running",E[E.Closed=2]="Closed"})(p||(p={}));var h=(function(){function E(x,S){this.connection=x,this.keepAliveTimeoutDuration=S,this.state=p.Paused,this.outbound=x.multiplexerDemultiplexer.connectionOutbound}return E.prototype.handle=function(x){this.keepAliveLastReceivedMillis=Date.now(),e.Flags.hasRespond(x.flags)&&this.outbound.send({type:e.FrameTypes.KEEPALIVE,streamId:0,data:x.data,flags:x.flags^e.Flags.RESPOND,lastReceivedPosition:0})},E.prototype.start=function(){this.state===p.Paused&&(this.keepAliveLastReceivedMillis=Date.now(),this.state=p.Running,this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),this.keepAliveTimeoutDuration))},E.prototype.pause=function(){this.state===p.Running&&(this.state=p.Paused,clearTimeout(this.activeTimeout))},E.prototype.close=function(){this.state=p.Closed,clearTimeout(this.activeTimeout)},E.prototype.timeoutCheck=function(){var x=Date.now(),S=x-this.keepAliveLastReceivedMillis;S>=this.keepAliveTimeoutDuration?this.connection.close(new Error("No keep-alive acks for ".concat(this.keepAliveTimeoutDuration," millis"))):this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),Math.max(100,this.keepAliveTimeoutDuration-S))},E})();Ls.KeepAliveHandler=h;var _;(function(E){E[E.Paused=0]="Paused",E[E.Running=1]="Running",E[E.Closed=2]="Closed"})(_||(_={}));var g=(function(){function E(x,S){this.outbound=x,this.keepAlivePeriodDuration=S,this.state=_.Paused}return E.prototype.sendKeepAlive=function(){this.outbound.send({type:e.FrameTypes.KEEPALIVE,streamId:0,data:void 0,flags:e.Flags.RESPOND,lastReceivedPosition:0})},E.prototype.start=function(){this.state===_.Paused&&(this.state=_.Running,this.activeInterval=setInterval(this.sendKeepAlive.bind(this),this.keepAlivePeriodDuration))},E.prototype.pause=function(){this.state===_.Running&&(this.state=_.Paused,clearInterval(this.activeInterval))},E.prototype.close=function(){this.state=_.Closed,clearInterval(this.activeInterval)},E})();return Ls.KeepAliveSender=g,Ls}function LG(){if(vG)return z_;vG=1;var n=z_&&z_.__values||function(r){var a=typeof Symbol=="function"&&Symbol.iterator,s=a&&r[a],l=0;if(s)return s.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&l>=r.length&&(r=void 0),{value:r&&r[l++],done:!r}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(z_,"__esModule",{value:!0}),z_.FrameStore=void 0;var e=DT(),t=AG(),i=(function(){function r(){this.storedFrames=[],this._lastReceivedFramePosition=0,this._firstAvailableFramePosition=0,this._lastSentFramePosition=0}return Object.defineProperty(r.prototype,"lastReceivedFramePosition",{get:function(){return this._lastReceivedFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"firstAvailableFramePosition",{get:function(){return this._firstAvailableFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"lastSentFramePosition",{get:function(){return this._lastSentFramePosition},enumerable:!1,configurable:!0}),r.prototype.store=function(a){this._lastSentFramePosition+=(0,t.sizeOfFrame)(a),this.storedFrames.push(a)},r.prototype.record=function(a){this._lastReceivedFramePosition+=(0,t.sizeOfFrame)(a)},r.prototype.dropTo=function(a){for(var s=a-this._firstAvailableFramePosition;s>0&&this.storedFrames.length>0;){var l=this.storedFrames.shift();s-=(0,t.sizeOfFrame)(l)}if(s!==0)throw new e.RSocketError(e.ErrorCodes.CONNECTION_ERROR,"State inconsistency. Expected bytes to drop ".concat(a-this._firstAvailableFramePosition," but actual ").concat(s));this._firstAvailableFramePosition=a},r.prototype.drain=function(a){var s,l;try{for(var c=n(this.storedFrames),f=c.next();!f.done;f=c.next()){var p=f.value;a(p)}}catch(h){s={error:h}}finally{try{f&&!f.done&&(l=c.return)&&l.call(c)}finally{if(s)throw s.error}}},r})();return z_.FrameStore=i,z_}function qne(){if(yG)return sd;yG=1;var n=sd&&sd.__awaiter||function(l,c,f,p){function h(_){return _ instanceof f?_:new f(function(g){g(_)})}return new(f||(f=Promise))(function(_,g){function E(v){try{S(p.next(v))}catch(M){g(M)}}function x(v){try{S(p.throw(v))}catch(M){g(M)}}function S(v){v.done?_(v.value):h(v.value).then(E,x)}S((p=p.apply(l,c||[])).next())})},e=sd&&sd.__generator||function(l,c){var f={label:0,sent:function(){if(_[0]&1)throw _[1];return _[1]},trys:[],ops:[]},p,h,_,g;return g={next:E(0),throw:E(1),return:E(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function E(S){return function(v){return x([S,v])}}function x(S){if(p)throw new TypeError("Generator is already executing.");for(;f;)try{if(p=1,h&&(_=S[0]&2?h.return:S[0]?h.throw||((_=h.return)&&_.call(h),0):h.next)&&!(_=_.call(h,S[1])).done)return _;switch(h=0,_&&(S=[S[0]&2,_.value]),S[0]){case 0:case 1:_=S;break;case 4:return f.label++,{value:S[1],done:!1};case 5:f.label++,h=S[1],S=[0];continue;case 7:S=f.ops.pop(),f.trys.pop();continue;default:if(_=f.trys,!(_=_.length>0&&_[_.length-1])&&(S[0]===6||S[0]===2)){f=0;continue}if(S[0]===3&&(!_||S[1]>_[0]&&S[1]<_[3])){f.label=S[1];break}if(S[0]===6&&f.label<_[1]){f.label=_[1],_=S;break}if(_&&f.label<_[2]){f.label=_[2],f.ops.push(S);break}_[2]&&f.ops.pop(),f.trys.pop();continue}S=c.call(l,f)}catch(v){S=[6,v],h=0}finally{p=_=0}if(S[0]&5)throw S[1];return{value:S[0]?S[1]:void 0,done:!0}}};Object.defineProperty(sd,"__esModule",{value:!0}),sd.RSocketConnector=void 0;var t=RG(),i=Hu(),r=IG(),a=LG(),s=(function(){function l(c){this.config=c}return l.prototype.connect=function(){var c,f,p,h,_,g,E,x,S,v,M,O,k,q,G,Q,H,Z,te,j;return n(this,void 0,void 0,function(){var he,ke,Me,ze,Ne,Ve,Je,Qe,st,We=this;return e(this,function(gt){switch(gt.label){case 0:return he=this.config,ke={type:i.FrameTypes.SETUP,dataMimeType:(f=(c=he.setup)===null||c===void 0?void 0:c.dataMimeType)!==null&&f!==void 0?f:"application/octet-stream",metadataMimeType:(h=(p=he.setup)===null||p===void 0?void 0:p.metadataMimeType)!==null&&h!==void 0?h:"application/octet-stream",keepAlive:(g=(_=he.setup)===null||_===void 0?void 0:_.keepAlive)!==null&&g!==void 0?g:6e4,lifetime:(x=(E=he.setup)===null||E===void 0?void 0:E.lifetime)!==null&&x!==void 0?x:3e5,metadata:(v=(S=he.setup)===null||S===void 0?void 0:S.payload)===null||v===void 0?void 0:v.metadata,data:(O=(M=he.setup)===null||M===void 0?void 0:M.payload)===null||O===void 0?void 0:O.data,resumeToken:(q=(k=he.resume)===null||k===void 0?void 0:k.tokenGenerator())!==null&&q!==void 0?q:null,streamId:0,majorVersion:1,minorVersion:0,flags:(!((Q=(G=he.setup)===null||G===void 0?void 0:G.payload)===null||Q===void 0)&&Q.metadata?i.Flags.METADATA:i.Flags.NONE)|(he.lease?i.Flags.LEASE:i.Flags.NONE)|(he.resume?i.Flags.RESUME_ENABLE:i.Flags.NONE)},[4,he.transport.connect(function(Et){return he.resume?new t.ResumableClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(-1),Et,Et,new a.FrameStore,ke.resumeToken.toString(),function(jt,zt){return n(We,void 0,void 0,function(){var Mt,Xe,et;return e(this,function(yt){switch(yt.label){case 0:return Mt=function(Wt){return Wt.send({type:i.FrameTypes.RESUME,streamId:0,flags:i.Flags.NONE,clientPosition:zt.firstAvailableFramePosition,serverPosition:zt.lastReceivedFramePosition,majorVersion:ke.minorVersion,minorVersion:ke.majorVersion,resumeToken:ke.resumeToken}),new t.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(Wt,Wt,jt)},Xe=-1,et=function(){return Xe++,he.resume.reconnectFunction(Xe).then(function(){return he.transport.connect(Mt).catch(et)})},[4,et()];case 1:return yt.sent(),[2]}})})}):new t.ClientServerInputMultiplexerDemultiplexer(t.StreamIdGenerator.create(-1),Et,Et)})];case 1:return Me=gt.sent(),ze=new r.KeepAliveSender(Me.multiplexerDemultiplexer.connectionOutbound,ke.keepAlive),Ne=new r.KeepAliveHandler(Me,ke.lifetime),Ve=he.lease?new r.LeaseHandler((H=he.lease.maxPendingRequests)!==null&&H!==void 0?H:256,Me.multiplexerDemultiplexer):void 0,Je=(Z=he.responder)!==null&&Z!==void 0?Z:{},Qe=new r.DefaultConnectionFrameHandler(Me,Ne,ze,Ve,Je),st=new r.DefaultStreamRequestHandler(Je,0),Me.onClose(function(Et){ze.close(),Ne.close(),Qe.close(Et)}),Me.multiplexerDemultiplexer.connectionInbound(Qe),Me.multiplexerDemultiplexer.handleRequestStream(st),Me.multiplexerDemultiplexer.connectionOutbound.send(ke),Ne.start(),ze.start(),[2,new r.RSocketRequester(Me,(j=(te=he.fragmentation)===null||te===void 0?void 0:te.maxOutboundFragmentSize)!==null&&j!==void 0?j:0,Ve)]}})})},l})();return sd.RSocketConnector=s,sd}function Bne(){if(bG)return ud;bG=1;var n=ud&&ud.__awaiter||function(c,f,p,h){function _(g){return g instanceof p?g:new p(function(E){E(g)})}return new(p||(p=Promise))(function(g,E){function x(M){try{v(h.next(M))}catch(O){E(O)}}function S(M){try{v(h.throw(M))}catch(O){E(O)}}function v(M){M.done?g(M.value):_(M.value).then(x,S)}v((h=h.apply(c,f||[])).next())})},e=ud&&ud.__generator||function(c,f){var p={label:0,sent:function(){if(g[0]&1)throw g[1];return g[1]},trys:[],ops:[]},h,_,g,E;return E={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(E[Symbol.iterator]=function(){return this}),E;function x(v){return function(M){return S([v,M])}}function S(v){if(h)throw new TypeError("Generator is already executing.");for(;p;)try{if(h=1,_&&(g=v[0]&2?_.return:v[0]?_.throw||((g=_.return)&&g.call(_),0):_.next)&&!(g=g.call(_,v[1])).done)return g;switch(_=0,g&&(v=[v[0]&2,g.value]),v[0]){case 0:case 1:g=v;break;case 4:return p.label++,{value:v[1],done:!1};case 5:p.label++,_=v[1],v=[0];continue;case 7:v=p.ops.pop(),p.trys.pop();continue;default:if(g=p.trys,!(g=g.length>0&&g[g.length-1])&&(v[0]===6||v[0]===2)){p=0;continue}if(v[0]===3&&(!g||v[1]>g[0]&&v[1]{kF={},LT={};PR={};Vi=Nne(),iG={done:!0,value:void 0};P_={},NT={},OF={};DF={};U_={};kT={};FF={};sd={},od={};Ls={},Ns={},Bu={};ld={};ks={};Os={};Ds={};z_={};ud={};PF={};Vne=DT(),q_={},OT={},B_={};Qne=jne(),Xne=10,Yne=5,Kne=2e4,MG=3e4,Zne=9e4,UF=class{#n;constructor(e){this.#n=e}async webSocketSyncStream({remote:e,buffered:t,request:i,abortSignal:r,requestPayload:a}){let s="application/json",l=i.userAgent;function c(H){return Vi.Buffer.from(JSON.stringify(H))}let f=t?10:1,p=null,h,_=null,g=!1,E=new this.#n.EventQueue({eventDelivered:()=>{E.countOutstandingEvents<=Yne&&(g=!1,q())}}),x=!1,S=!1,v=f,M=null,O=()=>{x||(x=!0,clearTimeout(h),p&&p.close(),_&&_.close(),E.notify(null))};function k(H){E.notify(H),E.countOutstandingEvents>=Xne&&(g=!0)}function q(){let H=f-v;!g&&H>0&&(M?.request(H),v=f)}if(r.aborted)throw new this.#n.AbortOperation("Connection request aborted");r.addEventListener("abort",O);let G=()=>{clearTimeout(h),h=setTimeout(()=>{e.logger.log({level:this.#n.LogLevels.error,message:`No data received on WebSocket in ${MG}ms, closing connection.`}),O()},MG)};G();let Q=new Vne.RSocketConnector({transport:new Qne.WebsocketClientTransport({url:i.url,wsCreator:H=>{let Z=p=e.createSocket(H);return Z.addEventListener("message",()=>{G()}),Z}}),setup:{keepAlive:Kne,lifetime:Zne,dataMimeType:s,metadataMimeType:s,payload:{data:null,metadata:c({token:i.headers.Authorization,user_agent:l})}}});try{_=await Q.connect(),p=null}catch(H){throw e.logger.log({level:this.#n.LogLevels.error,message:"Failed to connect WebSocket",error:H}),O(),H}return G(),_.onClose(()=>_=null),await new Promise((H,Z)=>{let te={next:async()=>{if(x)return iG;let j=await E.waitForEvent(r);return x?iG:kne(j)}};M=_.requestStream({data:c(a),metadata:c({path:i.path})},f,{onError:j=>{j.message.includes("PSYNC_")?j.message.includes("PSYNC_S21")&&e.invalidateCredentials():j.message!=="Closed. "&&e.invalidateCredentials(),j.message!=="Closed. "&&e.logger.log({level:this.#n.LogLevels.error,message:"RSocket error",error:j}),O(),S||Z(j)},onNext:j=>{S||(S=!0,H(te));let{data:he}=j;he&&k(he),v--,q()},onComplete:()=>{O()},onExtension:()=>{}})})}}});var mI=ci(tr(),1),tE=mI.default.createContext(null),Sc=()=>mI.default.useContext(tE);var I9=ci(tr(),1);var Jt={trace:10,debug:20,info:30,warn:40,error:50};function _I(n){let{prefix:e="PowerSync",minLevel:t=Jt.info}=n??{};return{prefix:e,minLevel:t,log({level:i,message:r,error:a}){if(i=Jt.error?s=console.error:i>=Jt.warn?s=console.warn:i>=Jt.info&&(s=console.info);let l=`[${e}]: ${r}`;a?s(l,a):s(l)}}}var ym;(function(n){n.TEXT="TEXT",n.INTEGER="INTEGER",n.REAL="REAL"})(ym||(ym={}));var y9={type:ym.TEXT},b9={type:ym.INTEGER},S9={type:ym.REAL},$n={text:y9,integer:b9,real:S9},s3=class{options;constructor(e){this.options=e}get name(){return this.options.name}get type(){return this.options.type}toJSON(){return{name:this.name,type:this.type}}};var E9={ascending:!0},kv=class n{options;static createAscending(e){return new n({name:e,ascending:!0})}constructor(e){this.options={...E9,...e}}get name(){return this.options.name}get ascending(){return this.options.ascending}toJSON(e){return{name:this.name,ascending:this.ascending,type:e.columns.find(t=>t.name===this.name)?.type??ym.TEXT}}};var w9={columns:[]},o3=class n{options;static createAscending(e,t){return new n({...e,columns:t.map(i=>kv.createAscending(i))})}constructor(e){this.options=e,this.options={...w9,...e}}get name(){return this.options.name}get columns(){return this.options.columns??[]}toJSON(e){return{name:this.name,columns:this.columns.map(t=>t.toJSON(e))}}};function l3(n){let e=n.trackPrevious;return{local_only:n.localOnly,insert_only:n.insertOnly,include_old:e&&(e.columns??!0),include_old_only_when_changed:typeof e=="object"&&e.onlyWhenChanged==!0,include_metadata:n.trackMetadata,ignore_empty_update:n.ignoreEmptyUpdates}}var hP=1999,nE={indexes:[],insertOnly:!1,localOnly:!1,trackPrevious:!1,trackMetadata:!1,ignoreEmptyUpdates:!1},Ov=/["'%,.#\s[\]]/,u3=class{options;constructor(e){this.options=e,this.applyDefaultOptions()}get name(){return this.options.name}get viewNameOverride(){return this.options.viewName}get viewName(){return this.viewNameOverride??this.name}get columns(){return this.options.columns}get indexes(){return this.options.indexes??[]}get localOnly(){return this.options.localOnly}get insertOnly(){return this.options.insertOnly}get trackPrevious(){return this.options.trackPrevious}get trackMetadata(){return this.options.trackMetadata}get ignoreEmptyUpdates(){return this.options.ignoreEmptyUpdates}get internalName(){return this.options.localOnly?`ps_data_local__${this.name}`:`ps_data__${this.name}`}get validName(){return!(Ov.test(this.name)||this.viewNameOverride!=null&&Ov.test(this.viewNameOverride))}validate(){if(Ov.test(this.name))throw new Error(`Invalid characters in table name: ${this.name}`);if(this.viewNameOverride&&Ov.test(this.viewNameOverride))throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);if(this.columns.length>hP)throw new Error(`Table has too many columns. The maximum number of columns is ${hP}.`);if(this.trackMetadata&&this.localOnly)throw new Error("Can't include metadata for local-only tables.");if(this.trackPrevious!=!1&&this.localOnly)throw new Error("Can't include old values for local-only tables.");let e=new Set;e.add("id");for(let i of this.columns){let{name:r}=i;if(i.name==="id")throw new Error("An id column is automatically added, custom id columns are not supported");if(e.has(r))throw new Error(`Duplicate column ${r}`);if(Ov.test(r))throw new Error(`Invalid characters in column name: ${i.name}`);e.add(r)}let t=new Set;for(let i of this.indexes){if(t.has(i.name))throw new Error(`Duplicate index ${i.name}`);if(Ov.test(i.name))throw new Error(`Invalid characters in index name: ${i.name}`);for(let r of i.columns)if(!e.has(r.name))throw new Error(`Column ${r.name} not found for index ${i.name}`);t.add(i.name)}}toJSON(){return{name:this.name,view_name:this.viewName,columns:this.columns.map(e=>e.toJSON()),indexes:this.indexes.map(e=>e.toJSON(this)),...l3(this)}}applyDefaultOptions(){this.options.insertOnly??=nE.insertOnly,this.options.localOnly??=nE.localOnly,this.options.trackPrevious??=nE.trackPrevious,this.options.trackMetadata??=nE.trackMetadata,this.options.ignoreEmptyUpdates??=nE.ignoreEmptyUpdates}},jd=class n extends u3{_mappedColumns;static createLocalOnly(e,t){return new n(e,{localOnly:!0,insertOnly:!1,...t})}static createInsertOnly(e,t){return new n(e,{localOnly:!1,insertOnly:!0,...t})}constructor(e,t){super(n.optionsFromColumns(e,t)),this._mappedColumns=e}copyWithName(e){return new u3({...this.options,name:e})}static optionsFromColumns(e,t){let i=Object.entries(e).map(([a,s])=>new s3({name:a,type:s.type})),r=Object.entries(t?.indexes??{}).map(([a,s])=>new o3({name:a,columns:s.map(l=>typeof l=="string"?new kv({name:l.replace(/^-/,""),ascending:!l.startsWith("-")}):l)}));return{name:"",columns:i,indexes:r,viewName:t?.viewName,insertOnly:t?.insertOnly,localOnly:t?.localOnly,trackPrevious:t?.trackPrevious,trackMetadata:t?.trackMetadata,ignoreEmptyUpdates:t?.ignoreEmptyUpdates}}};var Dv;(function(n){n[n.QUEUED_UPLOAD=0]="QUEUED_UPLOAD",n[n.QUEUED_DOWNLOAD=1]="QUEUED_DOWNLOAD",n[n.QUEUED_DELETE=2]="QUEUED_DELETE",n[n.SYNCED=3]="SYNCED",n[n.ARCHIVED=4]="ARCHIVED"})(Dv||(Dv={}));var xie={filename:$n.text,local_uri:$n.text,timestamp:$n.integer,size:$n.integer,media_type:$n.text,state:$n.integer,has_synced:$n.integer,meta_data:$n.text};var pP;(function(n){n.UTF8="utf8",n.Base64="base64"})(pP||(pP={}));var Fv=class{crud;haveMore;complete;constructor(e,t,i){this.crud=e,this.haveMore=t,this.complete=i}};var gI;(function(n){n.PUT="PUT",n.PATCH="PATCH",n.DELETE="DELETE"})(gI||(gI={}));var c3=class extends Fv{crud;complete;transactionId;constructor(e,t,i){super(e,!1,t),this.crud=e,this.complete=t,this.transactionId=i}};var Qd;(function(n){n.HTTP="http",n.WEB_SOCKET="web-socket"})(Qd||(Qd={}));var Xd;(function(n){n.Buffered="buffered",n.Sequential="sequential"})(Xd||(Xd={}));var iE=class{count;size;constructor(e,t=null){this.count=e,this.size=t}toString(){return this.size==null?`UploadQueueStats`:`UploadQueueStats`}};var Gr=class{listeners=new Set;constructor(){}dispose(){this.listeners.clear()}registerListener(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}iterateListeners(e){for(let t of this.listeners)e(t)}async iterateAsyncListeners(e){for(let t of Array.from(this.listeners.values()))await e(t)}};function mP(n,e){let t={};return n.forEach((i,r)=>t[i]=e[r]),t}function _P(n){let{insertId:e,rowsAffected:t,columnNames:i,rawRows:r}=n,a;function s(){return a||(a=r.map(c=>mP(i,c)))}function l(c){return a?a[c]:mP(i,r[c])}return{insertId:e,rowsAffected:t,get array(){return s()},rows:{length:r.length,get _array(){return s()},item:l},[Symbol.iterator](){let c=0;return{next:function(){if(c>=r.length)return{done:!0,value:void 0};let f=l(c);return c++,{done:!1,value:f}}}}}}function f3(n){return{...n,array:[],[Symbol.iterator](){return{next(){return{done:!0,value:void 0}}}}}}var bm=class{async getAll(e,t){let i=await this.execute(e,t);return Array.from(i)}async getOptional(e,t){let{array:i}=await this.execute(e,t);return i.length>0?i[0]:null}async get(e,t){let i=await this.getOptional(e,t);if(i==null)throw new Error("Result set is empty");return i}async execute(e,t){let i=await this.executeRaw(e,t);return _P(i)}async executeBatch(e,t=[]){let i,r=0;for(let a of t){let s=await this.execute(e,a);i=s.insertId,r+=s.rowsAffected??0}return f3({rowsAffected:r,insertId:i})}},vf=class extends Gr{readTransaction(e,t){return this.readLock(i=>d3.runWith(i,e),t)}writeTransaction(e,t){return this.writeLock(i=>d3.runWith(i,e),t)}getAll(e,t){return this.readLock(i=>i.getAll(e,t))}getOptional(e,t){return this.readLock(i=>i.getOptional(e,t))}get(e,t){return this.readLock(i=>i.get(e,t))}execute(e,t){return this.writeLock(i=>i.execute(e,t))}executeRaw(e,t){return this.writeLock(i=>i.executeRaw(e,t))}executeBatch(e,t){return this.writeTransaction(i=>i.executeBatch(e,t))}},d3=class n extends bm{inner;finalized=!1;constructor(e){super(),this.inner=e}async commit(){this.finalized||(this.finalized=!0,await this.inner.execute("COMMIT"))}async rollback(){this.finalized||(this.finalized=!0,await this.inner.execute("ROLLBACK"))}execute(e,t){return this.inner.execute(e,t)}executeRaw(e,t){return this.inner.executeRaw(e,t)}executeBatch(e,t){return this.inner.executeBatch(e,t)}static async runWith(e,t){let i=new n(e);try{await e.execute("BEGIN IMMEDIATE");let r=await t(i);return await i.commit(),r}catch(r){try{await i.rollback()}catch{}throw r}}};var h3=class n{types;props;tables;rawTables;constructor(e){if(Array.isArray(e)){for(let t of e)if(t.name==="")throw new Error("It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.");this.tables=e}else this.props=Object.fromEntries(Object.entries(e).map(([t,i])=>[t,i.copyWithName(t)])),this.tables=Object.values(this.props);this.rawTables=[]}withRawTables(e){for(let[t,i]of Object.entries(e))this.rawTables.push({name:t,...i})}validate(){for(let e of this.tables)e.validate()}toJSON(){return{tables:this.tables.map(e=>e.toJSON()),raw_tables:this.rawTables.map(n.rawTableToJson)}}static rawTableToJson(e){let t={name:e.name,put:e.put,delete:e.delete,clear:e.clear};if("schema"in e){let i=e.schema;t.table_name=i.tableName??e.name,t.synced_columns=i.syncedColumns,Object.assign(t,l3(e.schema))}return t}};var Fl;(function(n){n.INSERT="INSERT",n.UPDATE="UPDATE",n.DELETE="DELETE"})(Fl||(Fl={}));var gP={checkEquality:()=>!1};var rE;(function(n){n.ON_DATA="onData",n.ON_ERROR="onError",n.ON_STATE_CHANGE="onStateChange",n.SETTINGS_WILL_UPDATE="settingsWillUpdate",n.CLOSED="closed"})(rE||(rE={}));var p3=ci(tr(),1);var x9=(n,e)=>{let t;try{t=n.compile()}catch{return!1}let i=t,r=n.stringifiedParameters??JSON.stringify(i.parameters),a=JSON.stringify(e),s=p3.default.useRef({sqlStatement:i.sql,stringifiedParams:r,stringifiedOptions:a});return s.current.sqlStatement!==i.sql||s.current.stringifiedParams!=r||s.current.stringifiedOptions!=a?(s.current.sqlStatement=i.sql,s.current.stringifiedParams=r,s.current.stringifiedOptions=a,!0):!1},m3=(n,e=[],t)=>{let i=Sc(),r=p3.default.useMemo(()=>JSON.stringify(e),[e]),a=p3.default.useMemo(()=>typeof n=="string"?{compile:()=>({sql:n,parameters:e}),execute:()=>i.getAll(n,e),stringifiedParameters:r}:{compile:()=>{let l=n.compile();return{sql:l.sql,parameters:[...l.parameters]}},execute:()=>n.execute()},[n,i,r]),s=x9(a,t);return{parsedQuery:a,queryChanged:s}};var T9=ci(tr(),1);var L9=ci(tr(),1);var Uv=ci(tr(),1);var Pv=ci(tr(),1);function aE(){let n=(0,Pv.useContext)(tE),[e,t]=(0,Pv.useState)(n.currentStatus);return(0,Pv.useEffect)(()=>{let i=n.registerListener({statusChanged:r=>{t(r)}});return()=>i?.()},[n]),e}function k9(n){let e=Sc(),t=aE(),i=(0,Uv.useMemo)(()=>JSON.stringify(n),[n]),r=(0,Uv.useMemo)(()=>n.map(a=>({stream:e.syncStream(a.name,a.parameters??void 0),options:a})),[i]);return(0,Uv.useEffect)(()=>{let a=!0,s=[];for(let l of r)l.stream.subscribe(l.options).then(c=>{a?s.push(c):c.unsubscribe()});return()=>{a=!1;for(let l of s)l.unsubscribe()}},[i]),(0,Uv.useMemo)(()=>r.map(a=>t.forStream(a.stream)??null),[t,i])}function vI(n,e){let t=k9(e??[]);return e?e.every((i,r)=>i.waitForStream?t[r]?.subscription?.hasSynced===!0:!0):!0}var _3=ci(tr(),1),vP=n=>{let{query:e,powerSync:t,queryChanged:i,active:r}=n,[a,s]=_3.default.useState({isLoading:!0,isFetching:!0,data:[],error:void 0}),l=_3.default.useCallback(async c=>{s(f=>({...f,isLoading:!0,isFetching:!0,error:void 0}));try{let f=e.compile(),p=await e.execute({sql:f.sql,parameters:[...f.parameters],db:t});if(c.aborted)return;s(h=>({...h,isLoading:!1,isFetching:!1,data:p,error:void 0}))}catch(f){s(p=>({...p,isLoading:!1,isFetching:!1,data:[],error:f}))}},[i,e]);return _3.default.useEffect(()=>{if(r){let c=new AbortController;return l(c.signal),()=>{c.abort()}}},[t,r,i]),{...a,refresh:l}};var g3=ci(tr(),1);var yI=ci(tr(),1);var yP=n=>{let[e,t]=yI.default.useState(n?.state);return yI.default.useEffect(()=>{if(n)return t(n.state),n.registerListener({onStateChange:i=>{t({...i})}})},[n]),e};var bP=n=>{let{query:e,powerSync:t,queryChanged:i,options:r,active:a}=n;function s(){return a?r.rowComparator?t.customQuery(e).differentialWatch({rowComparator:r.rowComparator,reportFetching:r.reportFetching,throttleMs:r.throttleMs}):t.customQuery(e).watch({reportFetching:r.reportFetching,throttleMs:r.throttleMs}):null}let[l,c]=g3.default.useState(null),f=g3.default.useRef(null);g3.default.useEffect(()=>{l?.close();let _=s();return c(_),()=>{f.current?.(),_?.close()}},[t,a]),i&&(l?.updateSettings({query:e,throttleMs:r.throttleMs,reportFetching:r.reportFetching}),f.current?.(),f.current=l?.registerListener({settingsWillUpdate:()=>{f.current?.(),f.current=null}}));let p=(r.reportFetching??!0)&&!!f.current,h=yP(l);return{data:h?.data??[],isLoading:h?.isLoading??!0,error:h?.error,isFetching:(h?.isFetching??r.reportFetching??!0)||p}};function zv(n,e=[],t={}){let i=Sc();if(!i)return{...bI,isLoading:!1,error:new Error("PowerSync not configured.")};let{parsedQuery:r,queryChanged:a}=m3(n,e,t),s=vI(i,t?.streams),l=t?.runQueryOnce==!0,c=vP({query:r,powerSync:i,queryChanged:a,active:l&&s}),f=bP({query:r,powerSync:i,queryChanged:a,options:{reportFetching:t.reportFetching,throttleMs:t.throttleMs,rowComparator:t.rowComparator},active:!l&&s});return s?(l?c:f)??bI:{...bI}}var bI={isLoading:!0,isFetching:!1,data:[],error:void 0};var V_=ci(tr(),1),zG=ci(MB(),1);var Su=document.documentElement.dataset.appBase??"";function lw(n){history.pushState(null,"",`${Su}${n}`),dispatchEvent(new PopStateEvent("popstate"))}function Bj(){let n=location.pathname;Su&&n.startsWith(Su)&&(n=n.slice(Su.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n);return e?`${Su}/r/${e[1].toLowerCase()}`:Su||"/"}function rA(){return`/_kody/auth/logout?${new URLSearchParams({return_to:Bj()})}`}function Df(){let n=location.pathname;Su&&n.startsWith(Su)&&(n=n.slice(Su.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n),t=e?`${Su}/r/${e[1].toLowerCase()}`:Su||"/";return`/_kody/auth/login?${new URLSearchParams({app:"world-builder",return_to:t})}`}var Or=ci(tr(),1);var gr={minX:-48,maxX:47,minY:0,maxY:47,minZ:-48,maxZ:47},jm=[{key:"grass",label:"Grass",color:"#5fa04e"},{key:"dirt",label:"Dirt",color:"#8a5a3b"},{key:"stone",label:"Stone",color:"#8d9399"},{key:"cobble",label:"Cobblestone",color:"#6b7075"},{key:"brick",label:"Brick",color:"#b0503c"},{key:"wood",label:"Log",color:"#6e4b2a"},{key:"plank",label:"Planks",color:"#c49a5b"},{key:"leaves",label:"Leaves",color:"#2f7d32"},{key:"sand",label:"Sand",color:"#e2d29b"},{key:"water",label:"Water",color:"#3d7fd9",opacity:.7},{key:"glass",label:"Glass",color:"#bfe6f5",opacity:.35},{key:"snow",label:"Snow",color:"#f4f7fa"},{key:"gold",label:"Gold",color:"#f2c230",emissive:"#4a3500"},{key:"lava",label:"Lava",color:"#ff6a1a",emissive:"#b33000"},{key:"obsidian",label:"Obsidian",color:"#2a2338"},{key:"banner",label:"Banner",color:"#c2185b"}],lse=new Set(jm.map(n=>n.key)),uw={maxUploadOps:200,maxAgentBlocksPerCall:600,humanBlocksPerMinute:900,agentBlocksPerMinute:6e3,cursorUpdatesPerMinute:400,maxBlocksPerWorld:6e4,maxPromptLength:280,maxNameLength:40};function AB(n,e,t,i){return`${n}:${e}:${t}:${i}`}function cw(n,e,t){return Number.isInteger(n)&&Number.isInteger(e)&&Number.isInteger(t)&&n>=gr.minX&&n<=gr.maxX&&e>=gr.minY&&e<=gr.maxY&&t>=gr.minZ&&t<=gr.maxZ}function CB(n){let e=n.userName.split(/\s+/)[0]||n.userName,t=jm.map(i=>i.key).join(", ");return`You're joining a live, shared 3D voxel world in Kody World Builder: the room "${n.roomName}". Room link: ${n.roomUrl} Room code: ${n.roomCode} Everyone in the room watches your blocks appear live as you place them. HOW TO CALL IT Run the code below through Kody. If you're connected to Kody over MCP, pass it to Kody's \`execute\` tool. No local code or shell is needed. If you have a terminal, \`npx -y @kodycodes/cli@latest execute --file build.mjs\` also works. Package: @kentcdodds/world-builder. Import each function from 'kody:@kentcdodds/world-builder/'. Always pass room: '${n.roomCode}'. For agentName, use your own assistant name: "Claude", "ChatGPT", "Grok", etc. The room shows you as "${e}'s ". STEPS 1. Look before you build: import describeWorld from 'kody:@kentcdodds/world-builder/describe-world' const info = await describeWorld({ room: '${n.roomCode}' }) This returns occupiedBounds, a heightMap of 8x8 cells (-1 = empty), and recentBuilds. Pick an empty spot. You can pass region: { minX, maxX, minY, maxY, minZ, maxZ } to get the exact blocks in an area. 2. Start a build: import startBuild from 'kody:@kentcdodds/world-builder/start-build' const { buildId } = await startBuild({ room: '${n.roomCode}', agentName: '', prompt: '' }) 3. Place blocks, in order from the ground up: import placeBlocks from 'kody:@kentcdodds/world-builder/place-blocks' await placeBlocks({ buildId, blocks: [{ x, y, z, material }, ...] }) Each call takes up to ${uw.maxAgentBlocksPerCall} blocks, and the server streams them in batches of 24 so people watch the build grow. One execute run stops after about 90 seconds, and 600 blocks take about 5 to 10 seconds to stream. For builds over about 1,200 blocks, split the work across several execute runs: run startBuild once, keep the buildId, then do one or two placeBlocks calls per run. To remove blocks, use remove-blocks with { buildId, blocks: [{ x, y, z }] }. 4. Finish: import finishBuild from 'kody:@kentcdodds/world-builder/finish-build' await finishBuild({ buildId }) // or { buildId, status: 'failed' } if you give up WORLD RULES - The y axis points up, and the ground is y = 0. x runs ${gr.minX}..${gr.maxX}, z runs ${gr.minZ}..${gr.maxZ}, and y runs ${gr.minY}..${gr.maxY}. Every coordinate must be an integer. - Materials: ${t}. - Blocks that are out of bounds or use an unknown material are skipped, and the reply counts them in "rejected". - Limits: ${uw.maxAgentBlocksPerCall} blocks per call, about ${uw.agentBlocksPerMinute} blocks per minute per agent, and ${uw.maxBlocksPerWorld.toLocaleString("en-US")} blocks per room. If a call fails with a rate limit, wait about a minute and continue from where you stopped. - Placing a block where one already exists replaces it. Don't build over other people's work unless you're asked to. TIPS - Plan the full structure as a list of blocks in code (loops for walls, floors and towers), then place it in chunks. - A good castle is about 20x20 blocks and 900 to 1,200 blocks in total. Use a stone wall ring with crenellations, four taller towers, a gate, wood details, and a few glass windows. - When you're done, tell me what you built and where (its x/z center). Reply "Ready" and wait for my build request.`}var Hi=ci($o(),1),Fy={width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},NB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("path",{d:"M12 3 3 7.5v9L12 21l9-4.5v-9L12 3Z"}),(0,Hi.jsx)("path",{d:"M12 12v9M3 7.5l9 4.5 9-4.5"})]}),kB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("path",{d:"M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14"}),(0,Hi.jsx)("path",{d:"M10 11v6M14 11v6"})]}),Py=()=>(0,Hi.jsxs)("svg",{...Fy,width:16,height:16,"aria-hidden":"true",children:[(0,Hi.jsx)("rect",{x:"4",y:"8",width:"16",height:"11",rx:"3"}),(0,Hi.jsx)("path",{d:"M12 4v4M9 13h.01M15 13h.01"})]}),sA=()=>(0,Hi.jsxs)("svg",{...Fy,width:16,height:16,"aria-hidden":"true",children:[(0,Hi.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,Hi.jsx)("path",{d:"M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6"})]}),OB=()=>(0,Hi.jsxs)("svg",{...Fy,"aria-hidden":"true",children:[(0,Hi.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,Hi.jsx)("path",{d:"M15 4v16"})]}),oA=({state:n})=>(0,Hi.jsx)("svg",{...Fy,width:18,height:18,"aria-hidden":"true",className:`sync-icon ${n}`,children:n==="offline"?(0,Hi.jsxs)(Hi.Fragment,{children:[(0,Hi.jsx)("path",{d:"M2 2l20 20"}),(0,Hi.jsx)("path",{d:"M8.5 16.5a5 5 0 0 1 7 0M5 13a10 10 0 0 1 5-2.7M19 13a10 10 0 0 0-2.2-1.6M12 20h.01"})]}):(0,Hi.jsxs)(Hi.Fragment,{children:[(0,Hi.jsx)("path",{d:"M21 12a9 9 0 0 1-15.5 6.2L3 16"}),(0,Hi.jsx)("path",{d:"M3 12a9 9 0 0 1 15.5-6.2L21 8"}),(0,Hi.jsx)("path",{d:"M21 3v5h-5M3 21v-5h5"})]})});var di=ci(tr()),oH=ci(tr());var V1={};pu(V1,{ACESFilmicToneMapping:()=>W0,AddEquation:()=>Wh,AddOperation:()=>kO,AdditiveAnimationBlendMode:()=>S2,AdditiveBlending:()=>i2,AgXToneMapping:()=>d2,AlphaFormat:()=>y2,AlwaysCompare:()=>jO,AlwaysDepth:()=>Nw,AlwaysStencilFunc:()=>qO,AmbientLight:()=>Px,AnimationAction:()=>Xx,AnimationClip:()=>Hh,AnimationLoader:()=>vC,AnimationMixer:()=>LC,AnimationObjectGroup:()=>IC,AnimationUtils:()=>gC,ArcCurve:()=>ix,ArrayCamera:()=>Gx,ArrowHelper:()=>ZC,AttachedBindMode:()=>ZA,Audio:()=>jx,AudioAnalyser:()=>RC,AudioContext:()=>q0,AudioListener:()=>AC,AudioLoader:()=>TC,AxesHelper:()=>$C,BackSide:()=>ss,BasicDepthPacking:()=>UO,BasicShadowMap:()=>n2,BatchedMesh:()=>Xw,BezierInterpolant:()=>Lx,Bone:()=>g0,BooleanKeyframeTrack:()=>Hc,Box2:()=>Yx,Box3:()=>sa,Box3Helper:()=>YC,BoxGeometry:()=>Bc,BoxHelper:()=>XC,BufferAttribute:()=>Li,BufferGeometry:()=>Nn,BufferGeometryLoader:()=>Hx,ByteType:()=>m2,Cache:()=>Au,Camera:()=>b_,CameraHelper:()=>QC,CanvasTexture:()=>y0,CapsuleGeometry:()=>Jw,CatmullRomCurve3:()=>rx,CineonToneMapping:()=>c2,CircleGeometry:()=>ex,ClampToEdgeWrapping:()=>Ms,Clock:()=>H0,Color:()=>Vt,ColorKeyframeTrack:()=>D0,ColorManagement:()=>Gn,Compatibility:()=>O5,CompressedArrayTexture:()=>hC,CompressedCubeTexture:()=>pC,CompressedTexture:()=>h_,CompressedTextureLoader:()=>yC,ConeGeometry:()=>E0,ConstantAlphaFactor:()=>IO,ConstantColorFactor:()=>CO,Controls:()=>V0,CubeCamera:()=>Vx,CubeDepthTexture:()=>$w,CubeReflectionMapping:()=>Du,CubeRefractionMapping:()=>Jf,CubeTexture:()=>Uh,CubeTextureLoader:()=>bC,CubeUVReflectionMapping:()=>x_,CubicBezierCurve:()=>w0,CubicBezierCurve3:()=>ax,CubicInterpolant:()=>Rx,CullFaceBack:()=>t2,CullFaceFront:()=>hO,CullFaceFrontBack:()=>j6,CullFaceNone:()=>dO,Curve:()=>mo,CurvePath:()=>ox,CustomBlending:()=>pO,CustomToneMapping:()=>f2,CylinderGeometry:()=>S0,Cylindrical:()=>PC,Data3DTexture:()=>u_,DataArrayTexture:()=>l_,DataTexture:()=>As,DataTextureLoader:()=>SC,DataUtils:()=>nC,DecrementStencilOp:()=>f5,DecrementWrapStencilOp:()=>h5,DefaultLoadingManager:()=>$O,DepthFormat:()=>Cu,DepthStencilFormat:()=>ed,DepthTexture:()=>jf,DetachedBindMode:()=>OO,DirectionalLight:()=>Fx,DirectionalLightHelper:()=>jC,DiscreteInterpolant:()=>Ix,DodecahedronGeometry:()=>tx,DoubleSide:()=>ku,DstAlphaFactor:()=>wO,DstColorFactor:()=>TO,DynamicCopyUsage:()=>C5,DynamicDrawUsage:()=>E5,DynamicReadUsage:()=>T5,EdgesGeometry:()=>nx,EllipseCurve:()=>p_,EqualCompare:()=>VO,EqualDepth:()=>Ow,EqualStencilFunc:()=>g5,EquirectangularReflectionMapping:()=>j0,EquirectangularRefractionMapping:()=>Q0,Euler:()=>Kl,EventDispatcher:()=>po,ExternalTexture:()=>b0,ExtrudeGeometry:()=>fx,FileLoader:()=>Zl,Float16BufferAttribute:()=>lC,Float32BufferAttribute:()=>an,FloatType:()=>as,Fog:()=>Bw,FogExp2:()=>qw,FramebufferTexture:()=>dC,FrontSide:()=>$f,Frustum:()=>qc,FrustumArray:()=>Qw,GLBufferAttribute:()=>FC,GLSL1:()=>I5,GLSL3:()=>E2,GreaterCompare:()=>GO,GreaterDepth:()=>Fw,GreaterEqualCompare:()=>D1,GreaterEqualDepth:()=>Dw,GreaterEqualStencilFunc:()=>S5,GreaterStencilFunc:()=>y5,GridHelper:()=>GC,Group:()=>Vf,HTMLTexture:()=>mC,HalfFloatType:()=>$l,HemisphereLight:()=>kx,HemisphereLightHelper:()=>VC,IcosahedronGeometry:()=>dx,ImageBitmapLoader:()=>xC,ImageLoader:()=>Vh,ImageUtils:()=>zw,IncrementStencilOp:()=>c5,IncrementWrapStencilOp:()=>d5,InstancedBufferAttribute:()=>Wf,InstancedBufferGeometry:()=>Bx,InstancedInterleavedBuffer:()=>DC,InstancedMesh:()=>jw,Int16BufferAttribute:()=>sC,Int32BufferAttribute:()=>oC,Int8BufferAttribute:()=>iC,IntType:()=>Zx,InterleavedBuffer:()=>d_,InterleavedBufferAttribute:()=>Ph,Interpolant:()=>Xf,InterpolateBezier:()=>$A,InterpolateDiscrete:()=>l0,InterpolateLinear:()=>Uw,InterpolateSmooth:()=>Tw,InterpolationSamplingMode:()=>k5,InterpolationSamplingType:()=>N5,InvertStencilOp:()=>p5,KeepStencilOp:()=>Mw,KeyframeTrack:()=>Cs,LOD:()=>Vw,LatheGeometry:()=>hx,Layers:()=>zc,LessCompare:()=>HO,LessDepth:()=>kw,LessEqualCompare:()=>O1,LessEqualDepth:()=>s_,LessEqualStencilFunc:()=>v5,LessStencilFunc:()=>_5,Light:()=>Nu,LightProbe:()=>zx,LightShadow:()=>y_,Line:()=>Lu,Line3:()=>zC,LineBasicMaterial:()=>xa,LineCurve:()=>x0,LineCurve3:()=>sx,LineDashedMaterial:()=>Cx,LineLoop:()=>Yw,LineSegments:()=>nl,LinearFilter:()=>Ji,LinearInterpolant:()=>O0,LinearMipMapLinearFilter:()=>Z6,LinearMipMapNearestFilter:()=>K6,LinearMipmapLinearFilter:()=>Fu,LinearMipmapNearestFilter:()=>X0,LinearSRGBColorSpace:()=>Oh,LinearToneMapping:()=>l2,LinearTransfer:()=>c0,Loader:()=>Wa,LoaderUtils:()=>z0,LoadingManager:()=>P0,LoopOnce:()=>DO,LoopPingPong:()=>PO,LoopRepeat:()=>FO,MOUSE:()=>Yf,Material:()=>Zr,MaterialBlending:()=>Q6,MaterialLoader:()=>qx,MathUtils:()=>w2,Matrix2:()=>UC,Matrix3:()=>In,Matrix4:()=>Cn,MaxEquation:()=>vO,Mesh:()=>dr,MeshBasicMaterial:()=>Iu,MeshDepthMaterial:()=>N0,MeshDistanceMaterial:()=>k0,MeshLambertMaterial:()=>Mx,MeshMatcapMaterial:()=>Ax,MeshNormalMaterial:()=>Tx,MeshPhongMaterial:()=>wx,MeshPhysicalMaterial:()=>Ex,MeshStandardMaterial:()=>Bh,MeshToonMaterial:()=>xx,MinEquation:()=>gO,MirroredRepeatWrapping:()=>o0,MixOperation:()=>NO,MultiplyBlending:()=>a2,MultiplyOperation:()=>G0,NearestFilter:()=>br,NearestMipMapLinearFilter:()=>Y6,NearestMipMapNearestFilter:()=>X6,NearestMipmapLinearFilter:()=>T_,NearestMipmapNearestFilter:()=>p2,NeutralToneMapping:()=>h2,NeverCompare:()=>BO,NeverDepth:()=>Lw,NeverStencilFunc:()=>m5,NoBlending:()=>Ou,NoColorSpace:()=>jc,NoNormalPacking:()=>a5,NoToneMapping:()=>_o,NormalAnimationBlendMode:()=>k1,NormalBlending:()=>w_,NormalGAPacking:()=>o5,NormalRGPacking:()=>s5,NotEqualCompare:()=>WO,NotEqualDepth:()=>Pw,NotEqualStencilFunc:()=>b5,NumberKeyframeTrack:()=>g_,Object3D:()=>gi,ObjectLoader:()=>wC,ObjectSpaceNormalMap:()=>zO,OctahedronGeometry:()=>R0,OneFactor:()=>bO,OneMinusConstantAlphaFactor:()=>LO,OneMinusConstantColorFactor:()=>RO,OneMinusDstAlphaFactor:()=>xO,OneMinusDstColorFactor:()=>MO,OneMinusSrcAlphaFactor:()=>o2,OneMinusSrcColorFactor:()=>EO,OrthographicCamera:()=>Gc,PCFShadowMap:()=>Gh,PCFSoftShadowMap:()=>E_,PMREMGenerator:()=>q1,Path:()=>zh,PerspectiveCamera:()=>yr,Plane:()=>fo,PlaneGeometry:()=>__,PlaneHelper:()=>KC,PointLight:()=>Dx,PointLightHelper:()=>HC,Points:()=>Kw,PointsMaterial:()=>v0,PolarGridHelper:()=>WC,PolyhedronGeometry:()=>Qf,PositionalAudio:()=>CC,PropertyBinding:()=>Ii,PropertyMixer:()=>Qx,QuadraticBezierCurve:()=>T0,QuadraticBezierCurve3:()=>M0,Quaternion:()=>Lr,QuaternionKeyframeTrack:()=>v_,QuaternionLinearInterpolant:()=>Nx,R11_EAC_Format:()=>c1,RED_GREEN_RGTC2_Format:()=>tb,RED_RGTC1_Format:()=>I1,REVISION:()=>fO,RG11_EAC_Format:()=>eb,RGBADepthPacking:()=>n5,RGBAFormat:()=>wa,RGBAIntegerFormat:()=>n1,RGBA_ASTC_10x10_Format:()=>x1,RGBA_ASTC_10x5_Format:()=>S1,RGBA_ASTC_10x6_Format:()=>E1,RGBA_ASTC_10x8_Format:()=>w1,RGBA_ASTC_12x10_Format:()=>T1,RGBA_ASTC_12x12_Format:()=>M1,RGBA_ASTC_4x4_Format:()=>h1,RGBA_ASTC_5x4_Format:()=>p1,RGBA_ASTC_5x5_Format:()=>m1,RGBA_ASTC_6x5_Format:()=>_1,RGBA_ASTC_6x6_Format:()=>g1,RGBA_ASTC_8x5_Format:()=>v1,RGBA_ASTC_8x6_Format:()=>y1,RGBA_ASTC_8x8_Format:()=>b1,RGBA_BPTC_Format:()=>A1,RGBA_ETC2_EAC_Format:()=>u1,RGBA_PVRTC_2BPPV1_Format:()=>s1,RGBA_PVRTC_4BPPV1_Format:()=>a1,RGBA_S3TC_DXT1_Format:()=>Z0,RGBA_S3TC_DXT3_Format:()=>$0,RGBA_S3TC_DXT5_Format:()=>J0,RGBDepthPacking:()=>i5,RGBFormat:()=>b2,RGBIntegerFormat:()=>$6,RGB_BPTC_SIGNED_Format:()=>C1,RGB_BPTC_UNSIGNED_Format:()=>R1,RGB_ETC1_Format:()=>o1,RGB_ETC2_Format:()=>l1,RGB_PVRTC_2BPPV1_Format:()=>r1,RGB_PVRTC_4BPPV1_Format:()=>i1,RGB_S3TC_DXT1_Format:()=>K0,RGDepthPacking:()=>r5,RGFormat:()=>td,RGIntegerFormat:()=>t1,RawShaderMaterial:()=>L0,Ray:()=>Ru,Raycaster:()=>B0,RectAreaLight:()=>Ux,RedFormat:()=>e1,RedIntegerFormat:()=>Y0,ReinhardToneMapping:()=>u2,RenderObjectRefreshType:()=>D5,RenderTarget:()=>h0,RenderTarget3D:()=>NC,RepeatWrapping:()=>s0,ReplaceStencilOp:()=>u5,ReverseSubtractEquation:()=>_O,RingGeometry:()=>px,SIGNED_R11_EAC_Format:()=>f1,SIGNED_RED_GREEN_RGTC2_Format:()=>N1,SIGNED_RED_RGTC1_Format:()=>L1,SIGNED_RG11_EAC_Format:()=>d1,SRGBColorSpace:()=>Yr,SRGBTransfer:()=>xi,Scene:()=>f_,ShaderChunk:()=>Bn,ShaderLib:()=>Pu,ShaderMaterial:()=>Ga,ShadowMaterial:()=>Sx,Shape:()=>qh,ShapeGeometry:()=>mx,ShapePath:()=>JC,ShapeUtils:()=>Yl,ShortType:()=>_2,Skeleton:()=>Ww,SkeletonHelper:()=>BC,SkinnedMesh:()=>Gw,Source:()=>JA,Sphere:()=>Kr,SphereGeometry:()=>I0,Spherical:()=>S_,SphericalHarmonics3:()=>U0,SplineCurve:()=>A0,SpotLight:()=>Ox,SpotLightHelper:()=>qC,Sprite:()=>Hw,SpriteMaterial:()=>_0,SrcAlphaFactor:()=>s2,SrcAlphaSaturateFactor:()=>AO,SrcColorFactor:()=>SO,StaticCopyUsage:()=>A5,StaticDrawUsage:()=>F1,StaticReadUsage:()=>x5,StereoCamera:()=>MC,StreamCopyUsage:()=>R5,StreamDrawUsage:()=>w5,StreamReadUsage:()=>M5,StringKeyframeTrack:()=>Vc,SubtractEquation:()=>mO,SubtractiveBlending:()=>r2,TOUCH:()=>Kf,TangentSpaceNormalMap:()=>Wc,TetrahedronGeometry:()=>_x,Texture:()=>Sr,TextureLoader:()=>EC,TextureSource:()=>Xl,TextureUtils:()=>e2,Timer:()=>Wx,TimestampQuery:()=>L5,TorusGeometry:()=>gx,TorusKnotGeometry:()=>vx,Triangle:()=>Mu,TriangleFanDrawMode:()=>t5,TriangleStripDrawMode:()=>e5,TrianglesDrawMode:()=>J6,TubeGeometry:()=>yx,UVMapping:()=>Kx,Uint16BufferAttribute:()=>p0,Uint32BufferAttribute:()=>m0,Uint8BufferAttribute:()=>rC,Uint8ClampedBufferAttribute:()=>aC,Uniform:()=>kC,UniformsGroup:()=>OC,UniformsLib:()=>Gt,UniformsUtils:()=>ZO,UnsignedByteType:()=>ja,UnsignedInt101111Type:()=>v2,UnsignedInt248Type:()=>A_,UnsignedInt5999Type:()=>g2,UnsignedIntType:()=>il,UnsignedShort4444Type:()=>$x,UnsignedShort5551Type:()=>Jx,UnsignedShortType:()=>M_,VSMShadowMap:()=>Zf,Vector2:()=>ut,Vector3:()=>ve,Vector4:()=>Ni,VectorKeyframeTrack:()=>F0,VideoFrameTexture:()=>fC,VideoTexture:()=>Zw,WebGL3DRenderTarget:()=>tC,WebGLArrayRenderTarget:()=>eC,WebGLCoordinateSystem:()=>ho,WebGLCubeRenderTarget:()=>B1,WebGLRenderTarget:()=>Va,WebGLRenderer:()=>H1,WebGLUtils:()=>T8,WebGPUCoordinateSystem:()=>Dh,WebXRController:()=>c_,WireframeGeometry:()=>bx,WrapAroundEnding:()=>u0,ZeroCurvatureEnding:()=>Nh,ZeroFactor:()=>yO,ZeroSlopeEnding:()=>kh,ZeroStencilOp:()=>l5,createCanvasElement:()=>QO,error:()=>cn,getConsoleFunction:()=>U5,log:()=>d0,setConsoleFunction:()=>P5,warn:()=>Ft,warnOnce:()=>Uc});var fO="186",Yf={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Kf={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},dO=0,t2=1,hO=2,j6=3,n2=0,Gh=1,E_=2,Zf=3,$f=0,ss=1,ku=2,Ou=0,w_=1,i2=2,r2=3,a2=4,pO=5,Q6=6,Wh=100,mO=101,_O=102,gO=103,vO=104,yO=200,bO=201,SO=202,EO=203,s2=204,o2=205,wO=206,xO=207,TO=208,MO=209,AO=210,CO=211,RO=212,IO=213,LO=214,Lw=0,Nw=1,kw=2,s_=3,Ow=4,Dw=5,Fw=6,Pw=7,G0=0,NO=1,kO=2,_o=0,l2=1,u2=2,c2=3,W0=4,f2=5,d2=6,h2=7,ZA="attached",OO="detached",Kx=300,Du=301,Jf=302,j0=303,Q0=304,x_=306,s0=1e3,Ms=1001,o0=1002,br=1003,p2=1004,X6=1004,T_=1005,Y6=1005,Ji=1006,X0=1007,K6=1007,Fu=1008,Z6=1008,ja=1009,m2=1010,_2=1011,M_=1012,Zx=1013,il=1014,as=1015,$l=1016,$x=1017,Jx=1018,A_=1020,g2=35902,v2=35899,y2=1021,b2=1022,wa=1023,Cu=1026,ed=1027,e1=1028,Y0=1029,td=1030,t1=1031,$6=1032,n1=1033,K0=33776,Z0=33777,$0=33778,J0=33779,i1=35840,r1=35841,a1=35842,s1=35843,o1=36196,l1=37492,u1=37496,c1=37488,f1=37489,eb=37490,d1=37491,h1=37808,p1=37809,m1=37810,_1=37811,g1=37812,v1=37813,y1=37814,b1=37815,S1=37816,E1=37817,w1=37818,x1=37819,T1=37820,M1=37821,A1=36492,C1=36494,R1=36495,I1=36283,L1=36284,tb=36285,N1=36286,DO=2200,FO=2201,PO=2202,l0=2300,Uw=2301,Tw=2302,$A=2303,Nh=2400,kh=2401,u0=2402,k1=2500,S2=2501,J6=0,e5=1,t5=2,UO=3200,n5=3201,i5=3202,r5=3203,Wc=0,zO=1,jc="",Yr="srgb",Oh="srgb-linear",c0="linear",xi="srgb",a5="",s5="rg",o5="ga",l5=0,Mw=7680,u5=7681,c5=7682,f5=7683,d5=34055,h5=34056,p5=5386,m5=512,_5=513,g5=514,v5=515,y5=516,b5=517,S5=518,qO=519,BO=512,HO=513,VO=514,O1=515,GO=516,WO=517,D1=518,jO=519,F1=35044,E5=35048,w5=35040,x5=35045,T5=35049,M5=35041,A5=35046,C5=35050,R5=35042,I5="100",E2="300 es",ho=2e3,Dh=2001,L5={COMPUTE:"compute",RENDER:"render"},N5={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},k5={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"},O5={TEXTURE_COMPARE:"depthTextureCompare"},D5={NONE:0,SHARED:1,FULL:2};function Gj(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}var Wj={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function r0(n,e){return new Wj[n](e)}function F5(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function f0(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function QO(){let n=f0("canvas");return n.style.display="block",n}var DB={},Fh=null;function P5(n){Fh=n}function U5(){return Fh}function d0(...n){let e="THREE."+n.shift();Fh?Fh("log",e,...n):console.log(e,...n)}function z5(n){let e=n[0];if(typeof e=="string"&&e.startsWith("TSL:")){let t=n[1];t&&t.isStackTrace?n[0]+=" "+t.getLocation():n[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return n}function Ft(...n){n=z5(n);let e="THREE."+n.shift();if(Fh)Fh("warn",e,...n);else{let t=n[0];t&&t.isStackTrace?console.warn(t.getError(e)):console.warn(e,...n)}}function cn(...n){n=z5(n);let e="THREE."+n.shift();if(Fh)Fh("error",e,...n);else{let t=n[0];t&&t.isStackTrace?console.error(t.getError(e)):console.error(e,...n)}}function Uc(...n){let e=n.join(" ");e in DB||(DB[e]=!0,Ft(...n))}function q5(n,e,t){return new Promise(function(i,r){function a(){switch(n.clientWaitSync(e,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(a,t);break;default:i()}}setTimeout(a,t)})}var B5={[Lw]:Nw,[kw]:Fw,[Ow]:Pw,[s_]:Dw,[Nw]:Lw,[Fw]:kw,[Pw]:Ow,[Dw]:s_},po=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){let i=this._listeners;return i===void 0?!1:i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){let i=this._listeners;if(i===void 0)return;let r=i[e];if(r!==void 0){let a=r.indexOf(t);a!==-1&&r.splice(a,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let i=t[e.type];if(i!==void 0){e.target=this;let r=i.slice(0);for(let a=0,s=r.length;a>8&255]+ns[n>>16&255]+ns[n>>24&255]+"-"+ns[e&255]+ns[e>>8&255]+"-"+ns[e>>16&15|64]+ns[e>>24&255]+"-"+ns[t&63|128]+ns[t>>8&255]+"-"+ns[t>>16&255]+ns[t>>24&255]+ns[i&255]+ns[i>>8&255]+ns[i>>16&255]+ns[i>>24&255]).toLowerCase()}function Tn(n,e,t){return Math.max(e,Math.min(t,n))}function XO(n,e){return(n%e+e)%e}function jj(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)}function Qj(n,e,t){return n!==e?(t-n)/(e-n):0}function Aw(n,e,t){return(1-t)*n+t*e}function Xj(n,e,t,i){return Aw(n,e,1-Math.exp(-t*i))}function Yj(n,e=1){return e-Math.abs(XO(n,e*2)-e)}function Kj(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function Zj(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function $j(n,e){return n+Math.floor(Math.random()*(e-n+1))}function Jj(n,e){return n+Math.random()*(e-n)}function eQ(n){return n*(.5-Math.random())}function tQ(n){n!==void 0&&(FB=n);let e=FB+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function nQ(n){return n*a_}function iQ(n){return n*o_}function rQ(n){return n>0&&Number.isInteger(n)&&2**Math.round(Math.log2(n))===n}function aQ(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function sQ(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function oQ(n,e,t,i,r){let a=Math.cos,s=Math.sin,l=a(t/2),c=s(t/2),f=a((e+i)/2),p=s((e+i)/2),h=a((e-i)/2),_=s((e-i)/2),g=a((i-e)/2),E=s((i-e)/2);switch(r){case"XYX":n.set(l*p,c*h,c*_,l*f);break;case"YZY":n.set(c*_,l*p,c*h,l*f);break;case"ZXZ":n.set(c*h,c*_,l*p,l*f);break;case"XZX":n.set(l*p,c*E,c*g,l*f);break;case"YXY":n.set(c*g,l*p,c*E,l*f);break;case"ZYZ":n.set(c*E,c*g,l*p,l*f);break;default:Ft("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function Ts(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:case Uint8ClampedArray:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("THREE.MathUtils: Invalid component type.")}}function Pn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:case Uint8ClampedArray:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("THREE.MathUtils: Invalid component type.")}}var w2={DEG2RAD:a_,RAD2DEG:o_,generateUUID:tl,clamp:Tn,euclideanModulo:XO,mapLinear:jj,inverseLerp:Qj,lerp:Aw,damp:Xj,pingpong:Yj,smoothstep:Kj,smootherstep:Zj,randInt:$j,randFloat:Jj,randFloatSpread:eQ,seededRandom:tQ,degToRad:nQ,radToDeg:iQ,isPowerOfTwo:rQ,ceilPowerOfTwo:aQ,floorPowerOfTwo:sQ,setQuaternionFromProperEuler:oQ,normalize:Pn,denormalize:Ts},ut=class n{static{n.prototype.isVector2=!0}constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("THREE.Vector2: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("THREE.Vector2: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Tn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),r=Math.sin(t),a=this.x-e.x,s=this.y-e.y;return this.x=a*i-s*r+e.x,this.y=a*r+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Lr=class{constructor(e=0,t=0,i=0,r=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=r}static slerpFlat(e,t,i,r,a,s,l){let c=i[r+0],f=i[r+1],p=i[r+2],h=i[r+3],_=a[s+0],g=a[s+1],E=a[s+2],x=a[s+3];if(h!==x||c!==_||f!==g||p!==E){let S=c*_+f*g+p*E+h*x;S<0&&(_=-_,g=-g,E=-E,x=-x,S=-S);let v=1-l;if(S<.9995){let M=Math.acos(S),O=Math.sin(M);v=Math.sin(v*M)/O,l=Math.sin(l*M)/O,c=c*v+_*l,f=f*v+g*l,p=p*v+E*l,h=h*v+x*l}else{c=c*v+_*l,f=f*v+g*l,p=p*v+E*l,h=h*v+x*l;let M=1/Math.sqrt(c*c+f*f+p*p+h*h);c*=M,f*=M,p*=M,h*=M}}e[t]=c,e[t+1]=f,e[t+2]=p,e[t+3]=h}static multiplyQuaternionsFlat(e,t,i,r,a,s){let l=i[r],c=i[r+1],f=i[r+2],p=i[r+3],h=a[s],_=a[s+1],g=a[s+2],E=a[s+3];return e[t]=l*E+p*h+c*g-f*_,e[t+1]=c*E+p*_+f*h-l*g,e[t+2]=f*E+p*g+l*_-c*h,e[t+3]=p*E-l*h-c*_-f*g,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let i=e._x,r=e._y,a=e._z,s=e._order,l=Math.cos,c=Math.sin,f=l(i/2),p=l(r/2),h=l(a/2),_=c(i/2),g=c(r/2),E=c(a/2);switch(s){case"XYZ":this._x=_*p*h+f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h-_*g*E;break;case"YXZ":this._x=_*p*h+f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h+_*g*E;break;case"ZXY":this._x=_*p*h-f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h-_*g*E;break;case"ZYX":this._x=_*p*h-f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h+_*g*E;break;case"YZX":this._x=_*p*h+f*g*E,this._y=f*g*h+_*p*E,this._z=f*p*E-_*g*h,this._w=f*p*h-_*g*E;break;case"XZY":this._x=_*p*h-f*g*E,this._y=f*g*h-_*p*E,this._z=f*p*E+_*g*h,this._w=f*p*h+_*g*E;break;default:Ft("Quaternion: .setFromEuler() encountered an unknown order: "+s)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],r=t[4],a=t[8],s=t[1],l=t[5],c=t[9],f=t[2],p=t[6],h=t[10],_=i+l+h;if(_>0){let g=.5/Math.sqrt(_+1);this._w=.25/g,this._x=(p-c)*g,this._y=(a-f)*g,this._z=(s-r)*g}else if(i>l&&i>h){let g=2*Math.sqrt(1+i-l-h);this._w=(p-c)/g,this._x=.25*g,this._y=(r+s)/g,this._z=(a+f)/g}else if(l>h){let g=2*Math.sqrt(1+l-i-h);this._w=(a-f)/g,this._x=(r+s)/g,this._y=.25*g,this._z=(c+p)/g}else{let g=2*Math.sqrt(1+h-i-l);this._w=(s-r)/g,this._x=(a+f)/g,this._y=(c+p)/g,this._z=.25*g}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return i<1e-8?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Tn(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(i===0)return this;let r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,r=e._y,a=e._z,s=e._w,l=t._x,c=t._y,f=t._z,p=t._w;return this._x=i*p+s*l+r*f-a*c,this._y=r*p+s*c+a*l-i*f,this._z=a*p+s*f+i*c-r*l,this._w=s*p-i*l-r*c-a*f,this._onChangeCallback(),this}slerp(e,t){let i=e._x,r=e._y,a=e._z,s=e._w,l=this.dot(e);l<0&&(i=-i,r=-r,a=-a,s=-s,l=-l);let c=1-t;if(l<.9995){let f=Math.acos(l),p=Math.sin(f);c=Math.sin(c*f)/p,t=Math.sin(t*f)/p,this._x=this._x*c+i*t,this._y=this._y*c+r*t,this._z=this._z*c+a*t,this._w=this._w*c+s*t,this._onChangeCallback()}else this._x=this._x*c+i*t,this._y=this._y*c+r*t,this._z=this._z*c+a*t,this._w=this._w*c+s*t,this.normalize();return this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),a=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),a*Math.sin(t),a*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},ve=class n{static{n.prototype.isVector3=!0}constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("THREE.Vector3: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("THREE.Vector3: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(PB.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(PB.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*t+a[3]*i+a[6]*r,this.y=a[1]*t+a[4]*i+a[7]*r,this.z=a[2]*t+a[5]*i+a[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,a=e.elements,s=1/(a[3]*t+a[7]*i+a[11]*r+a[15]);return this.x=(a[0]*t+a[4]*i+a[8]*r+a[12])*s,this.y=(a[1]*t+a[5]*i+a[9]*r+a[13])*s,this.z=(a[2]*t+a[6]*i+a[10]*r+a[14])*s,this}applyQuaternion(e){let t=this.x,i=this.y,r=this.z,a=e.x,s=e.y,l=e.z,c=e.w,f=2*(s*r-l*i),p=2*(l*t-a*r),h=2*(a*i-s*t);return this.x=t+c*f+s*h-l*p,this.y=i+c*p+l*f-a*h,this.z=r+c*h+a*p-s*f,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*t+a[4]*i+a[8]*r,this.y=a[1]*t+a[5]*i+a[9]*r,this.z=a[2]*t+a[6]*i+a[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this.z=Tn(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this.z=Tn(this.z,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,r=e.y,a=e.z,s=t.x,l=t.y,c=t.z;return this.x=r*c-a*l,this.y=a*s-i*c,this.z=i*l-r*s,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return gk.copy(this).projectOnVector(e),this.sub(gk)}reflect(e){return this.sub(gk.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Tn(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,i=Math.sqrt(1-t*t);return this.x=i*Math.cos(e),this.y=t,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},gk=new ve,PB=new Lr,In=class n{static{n.prototype.isMatrix3=!0}constructor(e,t,i,r,a,s,l,c,f){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,r,a,s,l,c,f)}set(e,t,i,r,a,s,l,c,f){let p=this.elements;return p[0]=e,p[1]=r,p[2]=l,p[3]=t,p[4]=a,p[5]=c,p[6]=i,p[7]=s,p[8]=f,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,r=t.elements,a=this.elements,s=i[0],l=i[3],c=i[6],f=i[1],p=i[4],h=i[7],_=i[2],g=i[5],E=i[8],x=r[0],S=r[3],v=r[6],M=r[1],O=r[4],k=r[7],q=r[2],G=r[5],Q=r[8];return a[0]=s*x+l*M+c*q,a[3]=s*S+l*O+c*G,a[6]=s*v+l*k+c*Q,a[1]=f*x+p*M+h*q,a[4]=f*S+p*O+h*G,a[7]=f*v+p*k+h*Q,a[2]=_*x+g*M+E*q,a[5]=_*S+g*O+E*G,a[8]=_*v+g*k+E*Q,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],r=e[2],a=e[3],s=e[4],l=e[5],c=e[6],f=e[7],p=e[8];return t*s*p-t*l*f-i*a*p+i*l*c+r*a*f-r*s*c}invert(){let e=this.elements,t=e[0],i=e[1],r=e[2],a=e[3],s=e[4],l=e[5],c=e[6],f=e[7],p=e[8],h=p*s-l*f,_=l*c-p*a,g=f*a-s*c,E=t*h+i*_+r*g;if(E===0)return this.set(0,0,0,0,0,0,0,0,0);let x=1/E;return e[0]=h*x,e[1]=(r*f-p*i)*x,e[2]=(l*i-r*s)*x,e[3]=_*x,e[4]=(p*t-r*c)*x,e[5]=(r*a-l*t)*x,e[6]=g*x,e[7]=(i*c-f*t)*x,e[8]=(s*t-i*a)*x,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,a,s,l){let c=Math.cos(a),f=Math.sin(a);return this.set(i*c,i*f,-i*(c*s+f*l)+s+e,-r*f,r*c,-r*(-f*s+c*l)+l+t,0,0,1),this}scale(e,t){return Uc("Matrix3: .scale() is deprecated. Use .makeScale() instead."),this.premultiply(vk.makeScale(e,t)),this}rotate(e){return Uc("Matrix3: .rotate() is deprecated. Use .makeRotation() instead."),this.premultiply(vk.makeRotation(-e)),this}translate(e,t){return Uc("Matrix3: .translate() is deprecated. Use .makeTranslation() instead."),this.premultiply(vk.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}},vk=new In,UB=new In().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),zB=new In().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function lQ(){let n={enabled:!0,workingColorSpace:Oh,spaces:{},convert:function(r,a,s){return this.enabled===!1||a===s||!a||!s||(this.spaces[a].transfer===xi&&(r.r=Gf(r.r),r.g=Gf(r.g),r.b=Gf(r.b)),this.spaces[a].primaries!==this.spaces[s].primaries&&(r.applyMatrix3(this.spaces[a].toXYZ),r.applyMatrix3(this.spaces[s].fromXYZ)),this.spaces[s].transfer===xi&&(r.r=a0(r.r),r.g=a0(r.g),r.b=a0(r.b))),r},workingToColorSpace:function(r,a){return this.convert(r,this.workingColorSpace,a)},colorSpaceToWorking:function(r,a){return this.convert(r,a,this.workingColorSpace)},getPrimaries:function(r){return this.spaces[r].primaries},getTransfer:function(r){return r===jc?c0:this.spaces[r].transfer},getToneMappingMode:function(r){return this.spaces[r].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(r,a=this.workingColorSpace){return r.fromArray(this.spaces[a].luminanceCoefficients)},define:function(r){Object.assign(this.spaces,r)},_getMatrix:function(r,a,s){return r.copy(this.spaces[a].toXYZ).multiply(this.spaces[s].fromXYZ)},_getDrawingBufferColorSpace:function(r){return this.spaces[r].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(r=this.workingColorSpace){return this.spaces[r].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(r,a){return Uc("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),n.workingToColorSpace(r,a)},toWorkingColorSpace:function(r,a){return Uc("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),n.colorSpaceToWorking(r,a)}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],i=[.3127,.329];return n.define({[Oh]:{primaries:e,whitePoint:i,transfer:c0,toXYZ:UB,fromXYZ:zB,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:Yr},outputColorSpaceConfig:{drawingBufferColorSpace:Yr}},[Yr]:{primaries:e,whitePoint:i,transfer:xi,toXYZ:UB,fromXYZ:zB,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:Yr}}}),n}var Gn=lQ();function Gf(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function a0(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}var Uy,zw=class{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let i;if(e instanceof HTMLCanvasElement)i=e;else{Uy===void 0&&(Uy=f0("canvas")),Uy.width=e.width,Uy.height=e.height;let r=Uy.getContext("2d");e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0,e.width,e.height),i=Uy}return i.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){let t=f0("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let r=i.getImageData(0,0,e.width,e.height),a=r.data;for(let s=0;s1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(bk).x}get height(){return this.source.getSize(bk).y}get depth(){return this.source.getSize(bk).z}get image(){return this.source.data}set image(e){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.normalized=e.normalized,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(let t in e){let i=e[t];if(i===void 0){Ft(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){Ft(`Texture.setValues(): property '${t}' does not exist.`);continue}r&&i&&r.isVector2&&i.isVector2||r&&i&&r.isVector3&&i.isVector3||r&&i&&r.isMatrix3&&i.isMatrix3?r.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let i={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,normalized:this.normalized,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==Kx)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case s0:e.x=e.x-Math.floor(e.x);break;case Ms:e.x=e.x<0?0:1;break;case o0:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case s0:e.y=e.y-Math.floor(e.y);break;case Ms:e.y=e.y<0?0:1;break;case o0:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}};Sr.DEFAULT_IMAGE=null;Sr.DEFAULT_MAPPING=Kx;Sr.DEFAULT_ANISOTROPY=1;var Ni=class n{static{n.prototype.isVector4=!0}constructor(e=0,t=0,i=0,r=1){this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("THREE.Vector4: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("THREE.Vector4: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,r=this.z,a=this.w,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r+s[12]*a,this.y=s[1]*t+s[5]*i+s[9]*r+s[13]*a,this.z=s[2]*t+s[6]*i+s[10]*r+s[14]*a,this.w=s[3]*t+s[7]*i+s[11]*r+s[15]*a,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,a,c=e.elements,f=c[0],p=c[4],h=c[8],_=c[1],g=c[5],E=c[9],x=c[2],S=c[6],v=c[10];if(Math.abs(p-_)<.01&&Math.abs(h-x)<.01&&Math.abs(E-S)<.01){if(Math.abs(p+_)<.1&&Math.abs(h+x)<.1&&Math.abs(E+S)<.1&&Math.abs(f+g+v-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let O=(f+1)/2,k=(g+1)/2,q=(v+1)/2,G=(p+_)/4,Q=(h+x)/4,H=(E+S)/4;return O>k&&O>q?O<.01?(i=0,r=.707106781,a=.707106781):(i=Math.sqrt(O),r=G/i,a=Q/i):k>q?k<.01?(i=.707106781,r=0,a=.707106781):(r=Math.sqrt(k),i=G/r,a=H/r):q<.01?(i=.707106781,r=.707106781,a=0):(a=Math.sqrt(q),i=Q/a,r=H/a),this.set(i,r,a,t),this}let M=Math.sqrt((S-E)*(S-E)+(h-x)*(h-x)+(_-p)*(_-p));return Math.abs(M)<.001&&(M=1),this.x=(S-E)/M,this.y=(h-x)/M,this.z=(_-p)/M,this.w=Math.acos((f+g+v-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Tn(this.x,e.x,t.x),this.y=Tn(this.y,e.y,t.y),this.z=Tn(this.z,e.z,t.z),this.w=Tn(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=Tn(this.x,e,t),this.y=Tn(this.y,e,t),this.z=Tn(this.z,e,t),this.w=Tn(this.w,e,t),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Tn(i,e,t))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},h0=class extends po{constructor(e=1,t=1,i={}){super(),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ji,depthBuffer:!0,stencilBuffer:!1,resolveColorBuffer:!0,resolveDepthBuffer:!0,resolveStencilBuffer:!0,storeMultisampledColorBuffer:!0,storeMultisampledDepthBuffer:!0,storeMultisampledStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1,useArrayDepthTexture:!1},i),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=i.depth,this.scissor=new Ni(0,0,e,t),this.scissorTest=!1,this.viewport=new Ni(0,0,e,t),this.textures=[];let r={width:e,height:t,depth:i.depth},a=new Sr(r),s=i.count;for(let l=0;l1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,i=e.textures.length;t>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let i=0;i0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.pivot!==null&&(r.pivot=this.pivot.toArray()),this.morphTargetDictionary!==void 0&&(r.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(r.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.geometryInfo=this._geometryInfo.map(l=>({...l,boundingBox:l.boundingBox?l.boundingBox.toJSON():void 0,boundingSphere:l.boundingSphere?l.boundingSphere.toJSON():void 0})),r.instanceInfo=this._instanceInfo.map(l=>({...l})),r.availableInstanceIds=this._availableInstanceIds.slice(),r.availableGeometryIds=this._availableGeometryIds.slice(),r.nextIndexStart=this._nextIndexStart,r.nextVertexStart=this._nextVertexStart,r.geometryCount=this._geometryCount,r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.matricesTexture=this._matricesTexture.toJSON(e),r.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(r.boundingBox=this.boundingBox.toJSON()));function a(l,c){return l[c.uuid]===void 0&&(l[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=a(e.geometries,this.geometry);let l=this.geometry.parameters;if(l!==void 0&&l.shapes!==void 0){let c=l.shapes;if(Array.isArray(c))for(let f=0,p=c.length;f0){r.children=[];for(let l=0;l0){r.animations=[];for(let l=0;l0&&(i.geometries=l),c.length>0&&(i.materials=c),f.length>0&&(i.textures=f),p.length>0&&(i.images=p),h.length>0&&(i.shapes=h),_.length>0&&(i.skeletons=_),g.length>0&&(i.animations=g),E.length>0&&(i.nodes=E)}return i.object=r,i;function s(l){let c=[];for(let f in l){let p=l[f];delete p.metadata,c.push(p)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.pivot=e.pivot!==null?e.pivot.clone():null,this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;ig+E?(f.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!f.inputState.pinching&&_<=g-E&&(f.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(a=t.getPose(e.gripSpace,i),a!==null&&(c.matrix.fromArray(a.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,a.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(a.linearVelocity)):c.hasLinearVelocity=!1,a.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(a.angularVelocity)):c.hasAngularVelocity=!1,c.eventsEnabled&&c.dispatchEvent({type:"gripUpdated",data:e,target:this})));l!==null&&(r=t.getPose(e.targetRaySpace,i),r===null&&a!==null&&(r=a),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(gQ)))}return l!==null&&(l.visible=r!==null),c!==null&&(c.visible=a!==null),f!==null&&(f.visible=s!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let i=new Vf;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},H5={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ah={h:0,s:0,l:0},cA={h:0,s:0,l:0};function Ek(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}var Vt=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){let r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Yr){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Gn.colorSpaceToWorking(this,t),this}setRGB(e,t,i,r=Gn.workingColorSpace){return this.r=e,this.g=t,this.b=i,Gn.colorSpaceToWorking(this,r),this}setHSL(e,t,i,r=Gn.workingColorSpace){if(e=XO(e,1),t=Tn(t,0,1),i=Tn(i,0,1),t===0)this.r=this.g=this.b=i;else{let a=i<=.5?i*(1+t):i+t-i*t,s=2*i-a;this.r=Ek(s,a,e+1/3),this.g=Ek(s,a,e),this.b=Ek(s,a,e-1/3)}return Gn.colorSpaceToWorking(this,r),this}setStyle(e,t=Yr){function i(a){a!==void 0&&parseFloat(a)<1&&Ft("Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let a,s=r[1],l=r[2];switch(s){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,t);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,t);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,t);break;default:Ft("Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){let a=r[1],s=a.length;if(s===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,t);if(s===6)return this.setHex(parseInt(a,16),t);Ft("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Yr){let i=H5[e.toLowerCase()];return i!==void 0?this.setHex(i,t):Ft("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Gf(e.r),this.g=Gf(e.g),this.b=Gf(e.b),this}copyLinearToSRGB(e){return this.r=a0(e.r),this.g=a0(e.g),this.b=a0(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Yr){return Gn.workingToColorSpace(is.copy(this),e),Math.round(Tn(is.r*255,0,255))*65536+Math.round(Tn(is.g*255,0,255))*256+Math.round(Tn(is.b*255,0,255))}getHexString(e=Yr){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Gn.workingColorSpace){Gn.workingToColorSpace(is.copy(this),t);let i=is.r,r=is.g,a=is.b,s=Math.max(i,r,a),l=Math.min(i,r,a),c,f,p=(l+s)/2;if(l===s)c=0,f=0;else{let h=s-l;switch(f=p<=.5?h/(s+l):h/(2-s-l),s){case i:c=(r-a)/h+(r0?r.multiplyScalar(1/Math.sqrt(a)):r.set(0,0,0)}static getBarycoord(e,t,i,r,a){wu.subVectors(r,t),Pf.subVectors(i,t),wk.subVectors(e,t);let s=wu.dot(wu),l=wu.dot(Pf),c=wu.dot(wk),f=Pf.dot(Pf),p=Pf.dot(wk),h=s*f-l*l;if(h===0)return a.set(0,0,0),null;let _=1/h,g=(f*c-l*p)*_,E=(s*p-l*c)*_;return a.set(1-g-E,E,g)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,Uf)===null?!1:Uf.x>=0&&Uf.y>=0&&Uf.x+Uf.y<=1}static getInterpolation(e,t,i,r,a,s,l,c){return this.getBarycoord(e,t,i,r,Uf)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(a,Uf.x),c.addScaledVector(s,Uf.y),c.addScaledVector(l,Uf.z),c)}static getInterpolatedAttribute(e,t,i,r,a,s){return Ak.setScalar(0),Ck.setScalar(0),Rk.setScalar(0),Ak.fromBufferAttribute(e,t),Ck.fromBufferAttribute(e,i),Rk.fromBufferAttribute(e,r),s.setScalar(0),s.addScaledVector(Ak,a.x),s.addScaledVector(Ck,a.y),s.addScaledVector(Rk,a.z),s}static isFrontFacing(e,t,i,r){return wu.subVectors(i,t),Pf.subVectors(e,t),wu.cross(Pf).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return wu.subVectors(this.c,this.b),Pf.subVectors(this.a,this.b),wu.cross(Pf).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return n.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return n.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,a){return n.getInterpolation(e,this.a,this.b,this.c,t,i,r,a)}containsPoint(e){return n.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return n.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i=this.a,r=this.b,a=this.c,s,l;Hy.subVectors(r,i),Vy.subVectors(a,i),xk.subVectors(e,i);let c=Hy.dot(xk),f=Vy.dot(xk);if(c<=0&&f<=0)return t.copy(i);Tk.subVectors(e,r);let p=Hy.dot(Tk),h=Vy.dot(Tk);if(p>=0&&h<=p)return t.copy(r);let _=c*h-p*f;if(_<=0&&c>=0&&p<=0)return s=c/(c-p),t.copy(i).addScaledVector(Hy,s);Mk.subVectors(e,a);let g=Hy.dot(Mk),E=Vy.dot(Mk);if(E>=0&&g<=E)return t.copy(a);let x=g*f-c*E;if(x<=0&&f>=0&&E<=0)return l=f/(f-E),t.copy(i).addScaledVector(Vy,l);let S=p*E-g*h;if(S<=0&&h-p>=0&&g-E>=0)return QB.subVectors(a,r),l=(h-p)/(h-p+(g-E)),t.copy(r).addScaledVector(QB,l);let v=1/(S+x+_);return s=x*v,l=_*v,t.copy(i).addScaledVector(Hy,s).addScaledVector(Vy,l)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},sa=class{constructor(e=new ve(1/0,1/0,1/0),t=new ve(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,xu),xu.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(dw),dA.subVectors(this.max,dw),Gy.subVectors(e.a,dw),Wy.subVectors(e.b,dw),jy.subVectors(e.c,dw),Ch.subVectors(Wy,Gy),Rh.subVectors(jy,Wy),Qm.subVectors(Gy,jy);let t=[0,-Ch.z,Ch.y,0,-Rh.z,Rh.y,0,-Qm.z,Qm.y,Ch.z,0,-Ch.x,Rh.z,0,-Rh.x,Qm.z,0,-Qm.x,-Ch.y,Ch.x,0,-Rh.y,Rh.x,0,-Qm.y,Qm.x,0];return!Ik(t,Gy,Wy,jy,dA)||(t=[1,0,0,0,1,0,0,0,1],!Ik(t,Gy,Wy,jy,dA))?!1:(hA.crossVectors(Ch,Rh),t=[hA.x,hA.y,hA.z],Ik(t,Gy,Wy,jy,dA))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,xu).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(xu).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(zf[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),zf[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),zf[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),zf[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),zf[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),zf[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),zf[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),zf[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(zf),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}},zf=[new ve,new ve,new ve,new ve,new ve,new ve,new ve,new ve],xu=new ve,fA=new sa,Gy=new ve,Wy=new ve,jy=new ve,Ch=new ve,Rh=new ve,Qm=new ve,dw=new ve,dA=new ve,hA=new ve,Xm=new ve;function Ik(n,e,t,i,r){for(let a=0,s=n.length-3;a<=s;a+=3){Xm.fromArray(n,a);let l=r.x*Math.abs(Xm.x)+r.y*Math.abs(Xm.y)+r.z*Math.abs(Xm.z),c=e.dot(Xm),f=t.dot(Xm),p=i.dot(Xm);if(Math.max(-Math.max(c,f,p),Math.min(c,f,p))>l)return!1}return!0}var Hf=vQ();function vQ(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),r=new Uint32Array(512);for(let c=0;c<256;++c){let f=c-127;f<-27?(i[c]=0,i[c|256]=32768,r[c]=24,r[c|256]=24):f<-14?(i[c]=1024>>-f-14,i[c|256]=1024>>-f-14|32768,r[c]=-f-1,r[c|256]=-f-1):f<=15?(i[c]=f+15<<10,i[c|256]=f+15<<10|32768,r[c]=13,r[c|256]=13):f<128?(i[c]=31744,i[c|256]=64512,r[c]=24,r[c|256]=24):(i[c]=31744,i[c|256]=64512,r[c]=13,r[c|256]=13)}let a=new Uint32Array(2048),s=new Uint32Array(64),l=new Uint32Array(64);for(let c=1;c<1024;++c){let f=c<<13,p=0;for(;(f&8388608)===0;)f<<=1,p-=8388608;f&=-8388609,p+=947912704,a[c]=f|p}for(let c=1024;c<2048;++c)a[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)s[c]=c<<23;s[31]=1199570944,s[32]=2147483648;for(let c=33;c<63;++c)s[c]=2147483648+(c-32<<23);s[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(l[c]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:r,mantissaTable:a,exponentTable:s,offsetTable:l}}function co(n){Math.abs(n)>65504&&Ft("DataUtils.toHalfFloat(): Value out of range."),n=Tn(n,-65504,65504),Hf.floatView[0]=n;let e=Hf.uint32View[0],t=e>>23&511;return Hf.baseTable[t]+((e&8388607)>>Hf.shiftTable[t])}function ww(n){let e=n>>10;return Hf.uint32View[0]=Hf.mantissaTable[Hf.offsetTable[e]+(n&1023)]+Hf.exponentTable[e],Hf.floatView[0]}var nC=class{static toHalfFloat(e){return co(e)}static fromHalfFloat(e){return ww(e)}},Xr=new ve,pA=new ut,yQ=0,Li=class extends po{constructor(e,t,i=!1){if(super(),Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:yQ++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=F1,this.updateRanges=[],this.gpuType=as,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,a=this.itemSize;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;hw.subVectors(e,this.center);let t=hw.lengthSq();if(t>this.radius*this.radius){let i=Math.sqrt(t),r=(i-this.radius)*.5;this.center.addScaledVector(hw,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Lk.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(hw.copy(e.center).add(Lk)),this.expandByPoint(hw.copy(e.center).sub(Lk))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}},SQ=0,Ql=new Cn,Nk=new gi,Qy=new ve,el=new sa,pw=new sa,Ea=new ve,Nn=class n extends po{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:SQ++}),this.uuid=tl(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(Gj(e)?m0:p0)(e,1):this.index=e,this}setIndirect(e,t=0){return this.indirect=e,this.indirectOffset=t,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,i=0){this.groups.push({start:e,count:t,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let a=new In().getNormalMatrix(e);i.applyNormalMatrix(a),i.needsUpdate=!0}let r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(e){return Ql.makeRotationFromQuaternion(e),this.applyMatrix4(Ql),this}rotateX(e){return Ql.makeRotationX(e),this.applyMatrix4(Ql),this}rotateY(e){return Ql.makeRotationY(e),this.applyMatrix4(Ql),this}rotateZ(e){return Ql.makeRotationZ(e),this.applyMatrix4(Ql),this}translate(e,t,i){return Ql.makeTranslation(e,t,i),this.applyMatrix4(Ql),this}scale(e,t,i){return Ql.makeScale(e,t,i),this.applyMatrix4(Ql),this}lookAt(e){return Nk.lookAt(e),Nk.updateMatrix(),this.applyMatrix4(Nk.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Qy).negate(),this.translate(Qy.x,Qy.y,Qy.z),this}setFromPoints(e){let t=this.getAttribute("position");if(t===void 0){let i=[];for(let r=0,a=e.length;rt.count&&Ft("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){cn("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new ve(-1/0,-1/0,-1/0),new ve(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,r=t.length;i0&&(e.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){let c=this.parameters;for(let f in c)c[f]!==void 0&&(e[f]=c[f]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let c in i){let f=i[c];e.data.attributes[c]=f.toJSON(e.data)}let r={},a=!1;for(let c in this.morphAttributes){let f=this.morphAttributes[c],p=[];for(let h=0,_=f.length;h<_;h++){let g=f[h];p.push(g.toJSON(e.data))}p.length>0&&(r[c]=p,a=!0)}a&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);let s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));let l=this.boundingSphere;return l!==null&&(e.data.boundingSphere=l.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;i!==null&&this.setIndex(i.clone());let r=e.attributes;for(let f in r){let p=r[f];this.setAttribute(f,p.clone(t))}let a=e.morphAttributes;for(let f in a){let p=[],h=a[f];for(let _=0,g=h.length;_1)?null:t.copy(e.start).addScaledVector(r,s)}intersectsLine(e){let t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let i=t||wQ.getNormalMatrix(e),r=this.coplanarPoint(kk).applyMatrix4(e),a=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}toJSON(){return{normal:this.normal.toArray(),constant:this.constant}}fromJSON(e){return this.normal.fromArray(e.normal),this.constant=e.constant,this}},xQ=0,Zr=class extends po{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:xQ++}),this.uuid=tl(),this.name="",this.type="Material",this.blending=w_,this.side=$f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=s2,this.blendDst=o2,this.blendEquation=Wh,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Vt(0,0,0),this.blendAlpha=0,this.depthFunc=s_,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=qO,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Mw,this.stencilZFail=Mw,this.stencilZPass=Mw,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let i=e[t];if(i===void 0){Ft(`Material: parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){Ft(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector2&&i&&i.isVector2||r&&r.isEuler&&i&&i.isEuler||r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let i={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,i.blending=this.blending,i.side=this.side,i.shadowSide=this.shadowSide,i.vertexColors=this.vertexColors,i.opacity=this.opacity,i.transparent=this.transparent,i.blendSrc=this.blendSrc,i.blendDst=this.blendDst,i.blendEquation=this.blendEquation,i.blendSrcAlpha=this.blendSrcAlpha,i.blendDstAlpha=this.blendDstAlpha,i.blendEquationAlpha=this.blendEquationAlpha,i.blendColor=this.blendColor.getHex(),i.blendAlpha=this.blendAlpha,i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.clipIntersection=this.clipIntersection,i.clipShadows=this.clipShadows,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,i.stencilWrite=this.stencilWrite,i.polygonOffset=this.polygonOffset,i.polygonOffsetFactor=this.polygonOffsetFactor,i.polygonOffsetUnits=this.polygonOffsetUnits,i.dithering=this.dithering,i.alphaTest=this.alphaTest,i.alphaHash=this.alphaHash,i.alphaToCoverage=this.alphaToCoverage,i.premultipliedAlpha=this.premultipliedAlpha,i.forceSinglePass=this.forceSinglePass,i.allowOverride=this.allowOverride,i.visible=this.visible,i.toneMapped=this.toneMapped,i.name=this.name,this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(i.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(i.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.retroreflectivity!==void 0&&(i.retroreflectivity=this.retroreflectivity),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),Array.isArray(this.clippingPlanes)&&this.clippingPlanes.length>0&&(i.clippingPlanes=this.clippingPlanes.map(a=>a.toJSON())),this.rotation!==void 0&&(i.rotation=this.rotation),this.depthPacking!==void 0&&(i.depthPacking=this.depthPacking),this.linewidth!==void 0&&(i.linewidth=this.linewidth),this.linecap!==void 0&&(i.linecap=this.linecap),this.linejoin!==void 0&&(i.linejoin=this.linejoin),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.wireframe!==void 0&&(i.wireframe=this.wireframe),this.wireframeLinewidth!==void 0&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==void 0&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==void 0&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading!==void 0&&(i.flatShading=this.flatShading),this.fog!==void 0&&(i.fog=this.fog),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(a){let s=[];for(let l in a){let c=a[l];delete c.metadata,s.push(c)}return s}if(t){let a=r(e.textures),s=r(e.images);a.length>0&&(i.textures=a),s.length>0&&(i.images=s)}return i}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new Vt().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.retroreflectivity!==void 0&&(this.retroreflectivity=e.retroreflectivity),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.clippingPlanes!==void 0&&(this.clippingPlanes=e.clippingPlanes.map(i=>new fo().fromJSON(i))),e.clipIntersection!==void 0&&(this.clipIntersection=e.clipIntersection),e.clipShadows!==void 0&&(this.clipShadows=e.clipShadows),e.depthPacking!==void 0&&(this.depthPacking=e.depthPacking),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.linecap!==void 0&&(this.linecap=e.linecap),e.linejoin!==void 0&&(this.linejoin=e.linejoin),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(typeof e.vertexColors=="number"?this.vertexColors=e.vertexColors>0:this.vertexColors=e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let i=e.normalScale;Array.isArray(i)===!1&&(i=[i,i]),this.normalScale=new ut().fromArray(i)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new ut().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(t!==null){let r=t.length;i=new Array(r);for(let a=0;a!==r;++a)i[a]=t[a].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},_0=class extends Zr{constructor(e){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Vt(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Xy,mw=new ve,Yy=new ve,Ky=new ve,Zy=new ut,_w=new ut,V5=new Cn,mA=new ve,gw=new ve,_A=new ve,XB=new ut,Ok=new ut,YB=new ut,Hw=class extends gi{constructor(e=new _0){if(super(),this.isSprite=!0,this.type="Sprite",Xy===void 0){Xy=new Nn;let t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),i=new d_(t,5);Xy.setIndex([0,1,2,0,2,3]),Xy.setAttribute("position",new Ph(i,3,0,!1)),Xy.setAttribute("uv",new Ph(i,2,3,!1))}this.geometry=Xy,this.material=e,this.center=new ut(.5,.5),this.count=1}intersectsFrustum(e){return e.intersectsSprite(this)}raycast(e,t){e.camera===null&&cn('Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Yy.setFromMatrixScale(this.matrixWorld),V5.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Ky.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Yy.multiplyScalar(-Ky.z);let i=this.material.rotation,r,a;i!==0&&(a=Math.cos(i),r=Math.sin(i));let s=this.center;gA(mA.set(-.5,-.5,0),Ky,s,Yy,r,a),gA(gw.set(.5,-.5,0),Ky,s,Yy,r,a),gA(_A.set(.5,.5,0),Ky,s,Yy,r,a),XB.set(0,0),Ok.set(1,0),YB.set(1,1);let l=e.ray.intersectTriangle(mA,gw,_A,!1,mw);if(l===null&&(gA(gw.set(-.5,.5,0),Ky,s,Yy,r,a),Ok.set(0,1),l=e.ray.intersectTriangle(mA,_A,gw,!1,mw),l===null))return;let c=e.ray.origin.distanceTo(mw);ce.far||t.push({distance:c,point:mw.clone(),uv:Mu.getInterpolation(mw,mA,gw,_A,XB,Ok,YB,new ut),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function gA(n,e,t,i,r,a){Zy.subVectors(n,t).addScalar(.5).multiply(i),r!==void 0?(_w.x=a*Zy.x-r*Zy.y,_w.y=r*Zy.x+a*Zy.y):_w.copy(Zy),n.copy(e),n.x+=_w.x,n.y+=_w.y,n.applyMatrix4(V5)}var vA=new ve,KB=new ve,Vw=class extends gi{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);let t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){vA.setFromMatrixPosition(this.matrixWorld);let r=e.ray.origin.distanceTo(vA);this.getObjectForDistance(r).raycast(e,t)}}update(e){let t=this.levels;if(t.length>1){vA.setFromMatrixPosition(e.matrixWorld),KB.setFromMatrixPosition(this.matrixWorld);let i=vA.distanceTo(KB)/e.zoom;t[0].object.visible=!0;let r,a;for(r=1,a=t.length;r=s)t[r-1].object.visible=!1,t[r].object.visible=!0;else break}for(this._currentLevel=r-1;r0)if(h=s*c-l,_=s*l-c,E=a*p,h>=0)if(_>=-E)if(_<=E){let x=1/p;h*=x,_*=x,g=h*(h+s*_+2*l)+_*(s*h+_+2*c)+f}else _=a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;else _=-a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;else _<=-E?(h=Math.max(0,-(-s*a+l)),_=h>0?-a:Math.min(Math.max(-a,-c),a),g=-h*h+_*(_+2*c)+f):_<=E?(h=0,_=Math.min(Math.max(-a,-c),a),g=_*(_+2*c)+f):(h=Math.max(0,-(s*a+l)),_=h>0?a:Math.min(Math.max(-a,-c),a),g=-h*h+_*(_+2*c)+f);else _=s>0?-a:a,h=Math.max(0,-(s*_+l)),g=-h*h+_*(_+2*c)+f;return i&&i.copy(this.origin).addScaledVector(this.direction,h),r&&r.copy(Dk).addScaledVector(yA,_),g}intersectSphere(e,t){if(e.radius<0)return null;qf.subVectors(e.center,this.origin);let i=qf.dot(this.direction),r=qf.dot(qf)-i*i,a=e.radius*e.radius;if(r>a)return null;let s=Math.sqrt(a-r),l=i-s,c=i+s;return c<0?null:l<0?this.at(c,t):this.at(l,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,a,s,l,c,f=1/this.direction.x,p=1/this.direction.y,h=1/this.direction.z,_=this.origin;return f>=0?(i=(e.min.x-_.x)*f,r=(e.max.x-_.x)*f):(i=(e.max.x-_.x)*f,r=(e.min.x-_.x)*f),p>=0?(a=(e.min.y-_.y)*p,s=(e.max.y-_.y)*p):(a=(e.max.y-_.y)*p,s=(e.min.y-_.y)*p),i>s||a>r||((a>i||isNaN(i))&&(i=a),(s=0?(l=(e.min.z-_.z)*h,c=(e.max.z-_.z)*h):(l=(e.max.z-_.z)*h,c=(e.min.z-_.z)*h),i>c||l>r)||((l>i||i!==i)&&(i=l),(c=0?i:r,t)}intersectsBox(e){return this.intersectBox(e,qf)!==null}intersectTriangle(e,t,i,r,a){let s=this.origin,l=this.direction,c=l.x,f=l.y,p=l.z,h=e.x-s.x,_=e.y-s.y,g=e.z-s.z,E=t.x-s.x,x=t.y-s.y,S=t.z-s.z,v=i.x-s.x,M=i.y-s.y,O=i.z-s.z,k=Math.abs(c),q=Math.abs(f),G=Math.abs(p),Q,H,Z,te,j,he,ke,Me,ze,Ne,Ve,Je;if(k>=q&&k>=G?(Z=c,he=h,ze=E,Je=v,c>=0?(Q=f,H=p,te=_,j=g,ke=x,Me=S,Ne=M,Ve=O):(Q=p,H=f,te=g,j=_,ke=S,Me=x,Ne=O,Ve=M)):q>=G?(Z=f,he=_,ze=x,Je=M,f>=0?(Q=p,H=c,te=g,j=h,ke=S,Me=E,Ne=O,Ve=v):(Q=c,H=p,te=h,j=g,ke=E,Me=S,Ne=v,Ve=O)):(Z=p,he=g,ze=S,Je=O,p>=0?(Q=c,H=f,te=h,j=_,ke=E,Me=x,Ne=v,Ve=M):(Q=f,H=c,te=_,j=h,ke=x,Me=E,Ne=M,Ve=v)),Z===0)return null;let Qe=Q/Z,st=H/Z,We=1/Z,gt=te-Qe*he,Et=j-st*he,jt=ke-Qe*ze,zt=Me-st*ze,Mt=Ne-Qe*Je,Xe=Ve-st*Je,et=Mt*zt-Xe*jt,yt=gt*Xe-Et*Mt,Wt=jt*Et-zt*gt;if(r){if(et<0||yt<0||Wt<0)return null}else if((et<0||yt<0||Wt<0)&&(et>0||yt>0||Wt>0))return null;let Lt=et+yt+Wt;if(Lt===0)return null;let sn=We*(et*he+yt*ze+Wt*Je);return(Lt>0?sn<0:sn>0)?null:this.at(sn/Lt,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Iu=class extends Zr{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Vt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},ZB=new Cn,Ym=new Ru,SA=new Kr,$B=new ve,EA=new ve,wA=new ve,xA=new ve,Fk=new ve,TA=new ve,JB=new ve,MA=new ve,dr=class extends gi{constructor(e=new Nn,t=new Iu){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a(e.far-e.near)**2))&&(ZB.copy(a).invert(),Ym.copy(e.ray).applyMatrix4(ZB),!(i.boundingBox!==null&&Ym.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ym)))}_computeIntersections(e,t,i){let r,a=this.geometry,s=this.material,l=a.index,c=a.attributes.position,f=a.attributes.uv,p=a.attributes.uv1,h=a.attributes.normal,_=a.groups,g=a.drawRange;if(l!==null)if(Array.isArray(s))for(let E=0,x=_.length;Et.far?null:{distance:f,point:MA.clone(),object:n}}function AA(n,e,t,i,r,a,s,l,c,f){n.getVertexPosition(l,EA),n.getVertexPosition(c,wA),n.getVertexPosition(f,xA);let p=TQ(n,e,t,i,EA,wA,xA,JB);if(p){let h=new ve;Mu.getBarycoord(JB,EA,wA,xA,h),r&&(p.uv=Mu.getInterpolatedAttribute(r,l,c,f,h,new ut)),a&&(p.uv1=Mu.getInterpolatedAttribute(a,l,c,f,h,new ut)),s&&(p.normal=Mu.getInterpolatedAttribute(s,l,c,f,h,new ve),p.normal.dot(i.direction)>0&&p.normal.multiplyScalar(-1));let _={a:l,b:c,c:f,normal:new ve,materialIndex:0};Mu.getNormal(EA,wA,xA,_.normal),p.face=_,p.barycoord=h}return p}var vw=new Ni,e6=new Ni,t6=new Ni,MQ=new Ni,n6=new Cn,CA=new ve,Pk=new Kr,i6=new Cn,Uk=new Ru,Gw=class extends dr{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=ZA,this.bindMatrix=new Cn,this.bindMatrixInverse=new Cn,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let e=this.geometry;this.boundingBox===null&&(this.boundingBox=new sa),this.boundingBox.makeEmpty();let t=e.getAttribute("position");for(let i=0;i0?e.max.x:e.min.x,IA.y=r.normal.y>0?e.max.y:e.min.y,IA.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(IA)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},o6=new Cn,Qw=class n{constructor(){this.coordinateSystem=ho,this._frustums=[],this._count=0}setFromArrayCamera(e){let t=e.cameras,i=this._frustums;for(let r=0;r=a.length&&a.push({start:-1,count:-1,z:-1,index:-1});let l=a[this.index];s.push(l),this.index++,l.start=e,l.count=t,l.z=i,l.index=r}reset(){this.list.length=0,this.index=0}},uo=new Cn,NQ=new Vt(1,1,1),kQ=new qc,OQ=new Qw,LA=new sa,Zm=new Kr,Sw=new ve,l6=new ve,DQ=new ve,qk=new Jk,rs=new dr,NA=[];function FQ(n,e,t=0){let i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){let r=n.count;for(let a=0;a65535?new Uint32Array(r):new Uint16Array(r);t.setIndex(new Li(a,1))}this._geometryInitialized=!0}}_validateGeometry(e){let t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(let i in t.attributes){if(!e.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);let r=e.getAttribute(i),a=t.getAttribute(i);if(r.itemSize!==a.itemSize||r.normalized!==a.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){let t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){let t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sa);let e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let i=0,r=t.length;i=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");let i={visible:!0,active:!0,geometryIndex:e},r=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(zk),r=this._availableInstanceIds.shift(),this._instanceInfo[r]=i):(r=this._instanceInfo.length,this._instanceInfo.push(i));let a=this._matricesTexture;uo.identity().toArray(a.image.data,r*16),a.needsUpdate=!0;let s=this._colorsTexture;return s&&(NQ.toArray(s.image.data,r*4),s.needsUpdate=!0),this._visibilityChanged=!0,r}addGeometry(e,t=-1,i=-1){this._initializeGeometry(e),this._validateGeometry(e);let r={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;r.vertexStart=this._nextVertexStart,r.reservedVertexCount=t===-1?e.getAttribute("position").count:t;let s=e.getIndex();if(s!==null&&(r.indexStart=this._nextIndexStart,r.reservedIndexCount=i===-1?s.count:i),r.indexStart!==-1&&r.indexStart+r.reservedIndexCount>this._maxIndexCount||r.vertexStart+r.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(zk),c=this._availableGeometryIds.shift(),a[c]=r):(c=this._geometryCount,this._geometryCount++,a.push(r)),this.setGeometryAt(c,e),this._nextIndexStart=r.indexStart+r.reservedIndexCount,this._nextVertexStart=r.vertexStart+r.reservedVertexCount,c}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);let i=this.geometry,r=i.getIndex()!==null,a=i.getIndex(),s=t.getIndex(),l=this._geometryInfo[e];if(r&&s.count>l.reservedIndexCount||t.attributes.position.count>l.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");let c=l.vertexStart,f=l.reservedVertexCount;l.vertexCount=t.getAttribute("position").count;for(let p in i.attributes){let h=t.getAttribute(p),_=i.getAttribute(p);FQ(h,_,c);let g=h.itemSize;for(let E=h.count,x=f;E=t.length||t[e].active===!1)return this;let i=this._instanceInfo;for(let r=0,a=i.length;rl).sort((s,l)=>i[s].vertexStart-i[l].vertexStart),a=this.geometry;for(let s=0,l=i.length;s=this._geometryCount)return null;let i=this.geometry,r=this._geometryInfo[e];if(r.boundingBox===null){let a=new sa,s=i.index,l=i.attributes.position;for(let c=r.start,f=r.start+r.count;c=this._geometryCount)return null;let i=this.geometry,r=this._geometryInfo[e];if(r.boundingSphere===null){let a=new Kr;this.getBoundingBoxAt(e,LA),LA.getCenter(a.center);let s=i.index,l=i.attributes.position,c=0;for(let f=r.start,p=r.start+r.count;fl.active);if(Math.max(...i.map(l=>l.vertexStart+l.reservedVertexCount))>e)throw new Error(`THREE.BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(c=>c.indexStart+c.reservedIndexCount))>t)throw new Error(`THREE.BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);let a=this.geometry;a.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Nn,this._initializeGeometry(a));let s=this.geometry;a.index&&$m(a.index.array,s.index.array);for(let l in a.attributes)$m(a.attributes[l].array,s.attributes[l].array)}raycast(e,t){let i=this._instanceInfo,r=this._geometryInfo,a=this.matrixWorld,s=this.geometry;rs.material=this.material,rs.geometry.index=s.index,rs.geometry.attributes=s.attributes,rs.geometry.boundingBox===null&&(rs.geometry.boundingBox=new sa),rs.geometry.boundingSphere===null&&(rs.geometry.boundingSphere=new Kr);for(let l=0,c=i.length;l({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._multiDrawBytesPerElement=e._multiDrawBytesPerElement,this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){super.dispose(),this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,t,i,r,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;let s=r.getIndex(),l=s===null?1:s.array.BYTES_PER_ELEMENT,c=1;a.wireframe&&(c=2,l=r.attributes.position.count>65535?4:2);let f=this._instanceInfo,p=this._multiDrawStarts,h=this._multiDrawCounts,_=this._geometryInfo,g=this.perObjectFrustumCulled,E=this._indirectTexture,x=E.image.data,S=i.isArrayCamera?OQ:kQ;g&&(i.isArrayCamera?S.setFromArrayCamera(i):(uo.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),S.setFromProjectionMatrix(uo,i.coordinateSystem,i.reversedDepth)));let v=0;if(this.sortObjects){uo.copy(this.matrixWorld).invert(),Sw.setFromMatrixPosition(i.matrixWorld).applyMatrix4(uo),l6.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(uo);for(let k=0,q=f.length;k0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;ai)return;Bk.applyMatrix4(n.matrixWorld);let f=e.ray.origin.distanceTo(Bk);if(!(fe.far))return{distance:f,point:c6.clone().applyMatrix4(n.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:n}}var f6=new ve,d6=new ve,nl=class extends Lu{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[];for(let r=0,a=t.count;r0){let r=t[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;ar.far)return;a.push({distance:f,distanceToRay:Math.sqrt(l),point:c,index:e,face:null,faceIndex:null,barycoord:null,object:s})}}var Zw=class extends Sr{constructor(e,t,i,r,a=Ji,s=Ji,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;let p=this;function h(){p.needsUpdate=!0,p._requestVideoFrameCallbackId=e.requestVideoFrameCallback(h)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(h))}clone(){return new this.constructor(this.image).copy(this)}update(){let e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}},fC=class extends Zw{constructor(e,t,i,r,a,s,l,c){super({},e,t,i,r,a,s,l,c),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}},dC=class extends Sr{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=br,this.minFilter=br,this.generateMipmaps=!1,this.needsUpdate=!0}},h_=class extends Sr{constructor(e,t,i,r,a,s,l,c,f,p,h,_){super(null,s,l,c,f,p,r,a,h,_),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},hC=class extends h_{constructor(e,t,i,r,a,s){super(e,t,i,a,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=Ms,this.layerUpdates=new Set}copy(e){return super.copy(e),this.wrapR=e.wrapR,this}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},pC=class extends h_{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,Du),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},Uh=class extends Sr{constructor(e=[],t=Du,i,r,a,s,l,c,f,p){super(e,t,i,r,a,s,l,c,f,p),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},y0=class extends Sr{constructor(e,t,i,r,a,s,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isCanvasTexture=!0,this.needsUpdate=!0}},mC=class extends Sr{constructor(e,t,i,r,a,s,l,c,f){super(e,t,i,r,a,s,l,c,f),this.isHTMLTexture=!0,this.generateMipmaps=!1,this.needsUpdate=!0;let p=e?e.parentNode:null;p!==null&&"requestPaint"in p&&(p.onpaint=()=>{this.needsUpdate=!0},p.requestPaint())}dispose(){let e=this.image?this.image.parentNode:null;e!==null&&"onpaint"in e&&(e.onpaint=null),super.dispose()}},jf=class extends Sr{constructor(e,t,i=il,r,a,s,l=br,c=br,f,p=Cu,h=1){if(p!==Cu&&p!==ed)throw new Error("THREE.DepthTexture: format must be either THREE.DepthFormat or THREE.DepthStencilFormat");let _={width:e,height:t,depth:h};super(_,r,a,s,l,c,p,i,f),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new Xl(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return t.compareFunction=this.compareFunction,t}},$w=class extends jf{constructor(e,t=il,i=Du,r,a,s=br,l=br,c,f=Cu){let p={width:e,height:e,depth:1},h=[p,p,p,p,p,p];super(e,e,t,i,r,a,s,l,c,f),this.image=h,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}},b0=class extends Sr{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}},Bc=class n extends Nn{constructor(e=1,t=1,i=1,r=1,a=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:a,depthSegments:s};let l=this;r=Math.floor(r),a=Math.floor(a),s=Math.floor(s);let c=[],f=[],p=[],h=[],_=0,g=0;E("z","y","x",-1,-1,i,t,e,s,a,0),E("z","y","x",1,-1,i,t,-e,s,a,1),E("x","z","y",1,1,e,i,t,r,s,2),E("x","z","y",1,-1,e,i,-t,r,s,3),E("x","y","z",1,-1,e,t,i,r,a,4),E("x","y","z",-1,-1,e,t,-i,r,a,5),this.setIndex(c),this.setAttribute("position",new an(f,3)),this.setAttribute("normal",new an(p,3)),this.setAttribute("uv",new an(h,2));function E(x,S,v,M,O,k,q,G,Q,H,Z){let te=k/Q,j=q/H,he=k/2,ke=q/2,Me=G/2,ze=Q+1,Ne=H+1,Ve=0,Je=0,Qe=new ve;for(let st=0;st0?1:-1,p.push(Qe.x,Qe.y,Qe.z),h.push(gt/Q),h.push(1-st/H),Ve+=1}}for(let st=0;st0){let Z=(M-1)*x;for(let te=0;te0&&O(!0),t>0&&O(!1)),this.setIndex(p),this.setAttribute("position",new an(h,3)),this.setAttribute("normal",new an(_,3)),this.setAttribute("uv",new an(g,2));function M(){let k=new ve,q=new ve,G=0,Q=(t-e)/i;for(let H=0;H<=a;H++){let Z=[],te=H/a,j=te*(t-e)+e;for(let he=0;he<=r;he++){let ke=he/r,Me=ke*c+l,ze=Math.sin(Me),Ne=Math.cos(Me);q.x=j*ze,q.y=-te*i+S,q.z=j*Ne,h.push(q.x,q.y,q.z),k.set(ze,Q,Ne).normalize(),_.push(k.x,k.y,k.z),g.push(ke,1-te),Z.push(E++)}x.push(Z)}for(let H=0;H0||Z!==0)&&(p.push(te,j,ke),G+=3),(t>0||Z!==a-1)&&(p.push(j,he,ke),G+=3)}f.addGroup(v,G,0),v+=G}function O(k){let q=E,G=new ut,Q=new ve,H=0,Z=k===!0?e:t,te=k===!0?1:-1;for(let he=1;he<=r;he++)h.push(0,S*te,0),_.push(0,te,0),g.push(.5,.5),E++;let j=E;for(let he=0;he<=r;he++){let Me=he/r*c+l,ze=Math.cos(Me),Ne=Math.sin(Me);Q.x=Z*Ne,Q.y=S*te,Q.z=Z*ze,h.push(Q.x,Q.y,Q.z),_.push(0,te,0),G.x=ze*.5+.5,G.y=Ne*.5*te+.5,g.push(G.x,G.y),E++}for(let he=0;he.9&&Q<.1&&(O<.2&&(s[M+0]+=1),k<.2&&(s[M+2]+=1),q<.2&&(s[M+4]+=1))}}function _(M){a.push(M.x,M.y,M.z)}function g(M,O){let k=M*3;O.x=e[k+0],O.y=e[k+1],O.z=e[k+2]}function E(){let M=new ve,O=new ve,k=new ve,q=new ve,G=new ut,Q=new ut,H=new ut;for(let Z=0,te=0;Z0)c=r-1;else{c=r;break}if(r=c,i[r]===s)return r/(a-1);let p=i[r],_=i[r+1]-p,g=(s-p)/_;return(r+g)/(a-1)}getTangent(e,t){let r=e-1e-4,a=e+1e-4;r<0&&(r=0),a>1&&(a=1);let s=this.getPoint(r),l=this.getPoint(a),c=t||(s.isVector2?new ut:new ve);return c.copy(l).sub(s).normalize(),c}getTangentAt(e,t){let i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t=!1){let i=new ve,r=[],a=[],s=[],l=new ve,c=new Cn;for(let g=0;g<=e;g++){let E=g/e;r[g]=this.getTangentAt(E,new ve)}a[0]=new ve,s[0]=new ve;let f=Number.MAX_VALUE,p=Math.abs(r[0].x),h=Math.abs(r[0].y),_=Math.abs(r[0].z);p<=f&&(f=p,i.set(1,0,0)),h<=f&&(f=h,i.set(0,1,0)),_<=f&&i.set(0,0,1),l.crossVectors(r[0],i).normalize(),a[0].crossVectors(r[0],l),s[0].crossVectors(r[0],a[0]);for(let g=1;g<=e;g++){if(a[g]=a[g-1].clone(),s[g]=s[g-1].clone(),l.crossVectors(r[g-1],r[g]),l.length()>Number.EPSILON){l.normalize();let E=Math.acos(Tn(r[g-1].dot(r[g]),-1,1));a[g].applyMatrix4(c.makeRotationAxis(l,E))}s[g].crossVectors(r[g],a[g])}if(t===!0){let g=Math.acos(Tn(a[0].dot(a[e]),-1,1));g/=e,r[0].dot(l.crossVectors(a[0],a[e]))>0&&(g=-g);for(let E=1;E<=e;E++)a[E].applyMatrix4(c.makeRotationAxis(r[E],g*E)),s[E].crossVectors(r[E],a[E])}return{tangents:r,normals:a,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},p_=class extends mo{constructor(e=0,t=0,i=1,r=1,a=0,s=Math.PI*2,l=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=a,this.aEndAngle=s,this.aClockwise=l,this.aRotation=c}getPoint(e,t=new ut){let i=t,r=Math.PI*2,a=this.aEndAngle-this.aStartAngle,s=Math.abs(a)r;)a-=r;a0?0:(Math.floor(Math.abs(l)/a)+1)*a:c===0&&l===a-1&&(l=a-2,c=1);let f,p;this.closed||l>0?f=r[(l-1)%a]:(_6.subVectors(r[0],r[1]).add(r[0]),f=_6);let h=r[l%a],_=r[(l+1)%a];if(this.closed||l+2r.length-2?r.length-1:s+1],h=r[s>r.length-3?r.length-1:s+2];return i.set(g6(l,c.x,f.x,p.x,h.x),g6(l,c.y,f.y,p.y,h.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){let s=r[a]-i,l=this.curves[a],c=l.getLength(),f=c===0?0:1-s/c;return l.getPointAt(f,t)}a++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){let h=f.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(f);let p=f.getPoint(1);return this.currentPoint.copy(p),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},qh=class extends zh{constructor(e){super(e),this.uuid=tl(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let i=0,r=this.holes.length;i80*t){l=n[0],c=n[1];let p=l,h=c;for(let _=t;_p&&(p=g),E>h&&(h=E)}f=Math.max(p-l,h-c),f=f!==0?32767/f:0}return lx(a,s,t,l,c,f,0),s}function G5(n,e,t,i,r){let a;if(r===sX(n,e,t,i)>0)for(let s=e;s=e;s-=i)a=v6(s/i|0,n[s],n[s+1],a);return a&&C0(a,a.next)&&(cx(a),a=a.next),a}function m_(n,e){if(!n)return n;e||(e=n);let t=n,i;do if(i=!1,!t.steiner&&(C0(t,t.next)||fr(t.prev,t,t.next)===0)){if(cx(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function lx(n,e,t,i,r,a,s){if(!n)return;!s&&a&&eX(n,i,r,a);let l=n;for(;n.prev!==n.next;){let c=n.prev,f=n.next;if(a?jQ(n,i,r,a):WQ(n)){e.push(c.i,n.i,f.i),cx(n),n=f.next,l=f.next;continue}if(n=f,n===l){s?s===1?(n=QQ(m_(n),e),lx(n,e,t,i,r,a,2)):s===2&&XQ(n,e,t,i,r,a):lx(m_(n),e,t,i,r,a,1);break}}}function WQ(n){let e=n.prev,t=n,i=n.next;if(fr(e,t,i)>=0)return!1;let r=e.x,a=t.x,s=i.x,l=e.y,c=t.y,f=i.y,p=Math.min(r,a,s),h=Math.min(l,c,f),_=Math.max(r,a,s),g=Math.max(l,c,f),E=i.next;for(;E!==e;){if(E.x>=p&&E.x<=_&&E.y>=h&&E.y<=g&&xw(r,l,a,c,s,f,E.x,E.y)&&fr(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function jQ(n,e,t,i){let r=n.prev,a=n,s=n.next;if(fr(r,a,s)>=0)return!1;let l=r.x,c=a.x,f=s.x,p=r.y,h=a.y,_=s.y,g=Math.min(l,c,f),E=Math.min(p,h,_),x=Math.max(l,c,f),S=Math.max(p,h,_),v=tO(g,E,e,t,i),M=tO(x,S,e,t,i),O=n.prevZ,k=n.nextZ;for(;O&&O.z>=v&&k&&k.z<=M;){if(O.x>=g&&O.x<=x&&O.y>=E&&O.y<=S&&O!==r&&O!==s&&xw(l,p,c,h,f,_,O.x,O.y)&&fr(O.prev,O,O.next)>=0||(O=O.prevZ,k.x>=g&&k.x<=x&&k.y>=E&&k.y<=S&&k!==r&&k!==s&&xw(l,p,c,h,f,_,k.x,k.y)&&fr(k.prev,k,k.next)>=0))return!1;k=k.nextZ}for(;O&&O.z>=v;){if(O.x>=g&&O.x<=x&&O.y>=E&&O.y<=S&&O!==r&&O!==s&&xw(l,p,c,h,f,_,O.x,O.y)&&fr(O.prev,O,O.next)>=0)return!1;O=O.prevZ}for(;k&&k.z<=M;){if(k.x>=g&&k.x<=x&&k.y>=E&&k.y<=S&&k!==r&&k!==s&&xw(l,p,c,h,f,_,k.x,k.y)&&fr(k.prev,k,k.next)>=0)return!1;k=k.nextZ}return!0}function QQ(n,e){let t=n;do{let i=t.prev,r=t.next.next;!C0(i,r)&&j5(i,t,t.next,r)&&ux(i,r)&&ux(r,i)&&(e.push(i.i,t.i,r.i),cx(t),cx(t.next),t=n=r),t=t.next}while(t!==n);return m_(t)}function XQ(n,e,t,i,r,a){let s=n;do{let l=s.next.next;for(;l!==s.prev;){if(s.i!==l.i&&iX(s,l)){let c=Q5(s,l);s=m_(s,s.next),c=m_(c,c.next),lx(s,e,t,i,r,a,0),lx(c,e,t,i,r,a,0);return}l=l.next}s=s.next}while(s!==n)}function YQ(n,e,t,i){let r=[];for(let a=0,s=e.length;a=t.next.y&&t.next.y!==t.y){let h=t.x+(r-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>a&&(a=h,s=t.x=t.x&&t.x>=c&&i!==t.x&&W5(rs.x||t.x===s.x&&JQ(s,t)))&&(s=t,p=h)}t=t.next}while(t!==l);return s}function JQ(n,e){return fr(n.prev,n,e.prev)<0&&fr(e.next,n,n.next)<0}function eX(n,e,t,i){let r=n;do r.z===0&&(r.z=tO(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,tX(r)}function tX(n){let e,t=1;do{let i=n,r;n=null;let a=null;for(e=0;i;){e++;let s=i,l=0;for(let f=0;f0||c>0&&s;)l!==0&&(c===0||!s||i.z<=s.z)?(r=i,i=i.nextZ,l--):(r=s,s=s.nextZ,c--),a?a.nextZ=r:n=r,r.prevZ=a,a=r;i=s}a.nextZ=null,t*=2}while(e>1);return n}function tO(n,e,t,i,r){return n=(n-t)*r|0,e=(e-i)*r|0,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n|e<<1}function nX(n){let e=n,t=n;do(e.x=(n-s)*(a-l)&&(n-s)*(i-l)>=(t-s)*(e-l)&&(t-s)*(a-l)>=(r-s)*(i-l)}function xw(n,e,t,i,r,a,s,l){return!(n===s&&e===l)&&W5(n,e,t,i,r,a,s,l)}function iX(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!rX(n,e)&&(ux(n,e)&&ux(e,n)&&aX(n,e)&&(fr(n.prev,n,e.prev)||fr(n,e.prev,e))||C0(n,e)&&fr(n.prev,n,n.next)>0&&fr(e.prev,e,e.next)>0)}function fr(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function C0(n,e){return n.x===e.x&&n.y===e.y}function j5(n,e,t,i){let r=BA(fr(n,e,t)),a=BA(fr(n,e,i)),s=BA(fr(t,i,n)),l=BA(fr(t,i,e));return!!(r!==a&&s!==l||r===0&&qA(n,t,e)||a===0&&qA(n,i,e)||s===0&&qA(t,n,i)||l===0&&qA(t,e,i))}function qA(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function BA(n){return n>0?1:n<0?-1:0}function rX(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&j5(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}function ux(n,e){return fr(n.prev,n,n.next)<0?fr(n,e,n.next)>=0&&fr(n,n.prev,e)>=0:fr(n,e,n.prev)<0||fr(n,n.next,e)<0}function aX(n,e){let t=n,i=!1,r=(n.x+e.x)/2,a=(n.y+e.y)/2;do t.y>a!=t.next.y>a&&t.next.y!==t.y&&r<(t.next.x-t.x)*(a-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==n);return i}function Q5(n,e){let t=nO(n.i,n.x,n.y),i=nO(e.i,e.x,e.y),r=n.next,a=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,a.next=i,i.prev=a,i}function v6(n,e,t,i){let r=nO(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function cx(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function nO(n,e,t){return{i:n,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function sX(n,e,t,i){let r=0;for(let a=e,s=t-i;a2&&n[e-1].equals(n[0])&&n.pop()}function b6(n,e){for(let t=0;tNumber.EPSILON){let ge=Math.sqrt(fn),L=Math.sqrt(en*en+Le*Le),N=_e.x-qt/ge,U=_e.y+Ht/ge,ee=Pe.x-Le/L,ne=Pe.y+en/L,X=((ee-N)*Le-(ne-U)*en)/(Ht*Le-qt*en);dt=N+Ht*X-lt.x,vt=U+qt*X-lt.y;let ie=dt*dt+vt*vt;if(ie<=2)return new ut(dt,vt);Qt=Math.sqrt(ie/2)}else{let ge=!1;Ht>Number.EPSILON?en>Number.EPSILON&&(ge=!0):Ht<-Number.EPSILON?en<-Number.EPSILON&&(ge=!0):Math.sign(qt)===Math.sign(Le)&&(ge=!0),ge?(dt=-qt,vt=Ht,Qt=Math.sqrt(fn)):(dt=Ht,vt=qt,Qt=Math.sqrt(fn/2))}return new ut(dt/Qt,vt/Qt)}let Qe=[];for(let lt=0,_e=ze.length,Pe=_e-1,dt=lt+1;lt<_e;lt++,Pe++,dt++)Pe===_e&&(Pe=0),dt===_e&&(dt=0),Qe[lt]=Je(ze[lt],ze[Pe],ze[dt]);let st=[],We,gt=Qe.concat();for(let lt=0,_e=Me;lt<_e;lt++){let Pe=j[lt];We=[];for(let dt=0,vt=Pe.length,Qt=vt-1,Ht=dt+1;dt=0;lt--){let _e=lt/S,Pe=g*Math.cos(_e*Math.PI/2),dt=E*Math.sin(_e*Math.PI/2)+x;for(let vt=0,Qt=ze.length;vt=0;){let dt=Pe,vt=Pe-1;vt<0&&(vt=lt.length-1);for(let Qt=0,Ht=p+S*2;Qt0)&&g.push(O,k,G),(v!==i-1||c0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let i={};for(let r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}fromJSON(e,t){if(super.fromJSON(e,t),e.uniforms!==void 0)for(let i in e.uniforms){let r=e.uniforms[i];switch(this.uniforms[i]={},r.type){case"t":this.uniforms[i].value=t[r.value]||null;break;case"c":this.uniforms[i].value=new Vt().setHex(r.value);break;case"v2":this.uniforms[i].value=new ut().fromArray(r.value);break;case"v3":this.uniforms[i].value=new ve().fromArray(r.value);break;case"v4":this.uniforms[i].value=new Ni().fromArray(r.value);break;case"m3":this.uniforms[i].value=new In().fromArray(r.value);break;case"m4":this.uniforms[i].value=new Cn().fromArray(r.value);break;default:this.uniforms[i].value=r.value}}if(e.defines!==void 0&&(this.defines=e.defines),e.vertexShader!==void 0&&(this.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(this.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(this.glslVersion=e.glslVersion),e.extensions!==void 0)for(let i in e.extensions)this.extensions[i]=e.extensions[i];return e.lights!==void 0&&(this.lights=e.lights),e.clipping!==void 0&&(this.clipping=e.clipping),this}},L0=class extends Ga{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}},Bh=class extends Zr{constructor(e){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new Vt(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},Ex=class extends Bh{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ut(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return Tn(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Vt(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Vt(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Vt(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._retroreflectivity=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get retroreflectivity(){return this._retroreflectivity}set retroreflectivity(e){this._retroreflectivity>0!=e>0&&this.version++,this._retroreflectivity=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.retroreflectivity=e.retroreflectivity,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},wx=class extends Zr{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Vt(16777215),this.specular=new Vt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},xx=class extends Zr{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Vt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},Tx=class extends Zr{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},Mx=class extends Zr{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Vt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Kl,this.combine=G0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},N0=class extends Zr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=UO,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},k0=class extends Zr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},Ax=class extends Zr{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Vt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Wc,this.normalScale=new ut(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}},Cx=class extends xa{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function Tu(n,e){return!n||n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function Iw(n){return n!==void 0&&n.inTangents!==void 0&&n.outTangents!==void 0}function X5(n){function e(r,a){return n[r]-n[a]}let t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(e),i}function rO(n,e,t){let i=n.length,r=new n.constructor(i);for(let a=0,s=0;s!==i;++a){let l=t[a]*e;for(let c=0;c!==e;++c)r[s++]=n[l+c]}return r}function Y5(n,e,t,i){let r=1,a=n[0];for(;a!==void 0&&a[i]===void 0;)a=n[r++];if(a===void 0)return;let s=a[i];if(s!==void 0)if(Array.isArray(s))do s=a[i],s!==void 0&&(e.push(a.time),t.push(...s)),a=n[r++];while(a!==void 0);else if(s.toArray!==void 0)do s=a[i],s!==void 0&&(e.push(a.time),s.toArray(t,t.length)),a=n[r++];while(a!==void 0);else do s=a[i],s!==void 0&&(e.push(a.time),t.push(s)),a=n[r++];while(a!==void 0)}function hX(n,e,t,i,r=30){let a=n.clone();a.name=e;let s=[];for(let c=0;c=i)){h.push(f.times[g]);for(let x=0;xa.tracks[c].times[0]&&(l=a.tracks[c].times[0]);for(let c=0;c=l.times[E]){let v=E*h+p,M=v+h-p;x=l.values.slice(v,M)}else{let v=l.createInterpolant(),M=p,O=h-p;v.evaluate(a),x=v.resultBuffer.slice(M,O)}c==="quaternion"&&new Lr().fromArray(x).normalize().conjugate().toArray(x);let S=f.times.length;for(let v=0;v=a)){let l=t[1];e=a)break t}s=i,i=0;break n}break e}for(;i>>1;et;)--s;if(++s,a!==0||s!==r){a>=s&&(s=Math.max(s,1),a=s-1);let l=this.getValueSize();this.times=i.slice(a,s),this.values=this.values.slice(a*l,s*l)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(cn("KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,r=this.values,a=i.length;a===0&&(cn("KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let l=0;l!==a;l++){let c=i[l];if(typeof c=="number"&&isNaN(c)){cn("KeyframeTrack: Time is not a valid number.",this,l,c),e=!1;break}if(s!==null&&s>c){cn("KeyframeTrack: Out of order keys.",this,l,c,s),e=!1;break}s=c}if(r!==void 0&&F5(r))for(let l=0,c=r.length;l!==c;++l){let f=r[l];if(isNaN(f)){cn("KeyframeTrack: Value is not a valid number.",this,l,f),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=this.getInterpolation()===Tw,a=e.length-1,s=1;for(let l=1;l0){e[s]=e[a];for(let l=a*i,c=s*i,f=0;f!==i;++f)t[c+f]=t[l+f];++s}return s!==e.length?(this.times=e.slice(0,s),this.values=t.slice(0,s*i)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),i=this.constructor,r=new i(this.name,e,t);return r.createInterpolant=this.createInterpolant,Iw(this.settings)&&(r.settings={inTangents:this.settings.inTangents.slice(),outTangents:this.settings.outTangents.slice()}),r}};function x6(n,e){for(let t=0,i=n.length;t!==i;t+=2)n[t]*=e}Cs.prototype.ValueTypeName="";Cs.prototype.TimeBufferType=Float32Array;Cs.prototype.ValueBufferType=Float32Array;Cs.prototype.DefaultInterpolation=Uw;var Hc=class extends Cs{constructor(e,t,i){super(e,t,i)}};Hc.prototype.ValueTypeName="bool";Hc.prototype.ValueBufferType=Array;Hc.prototype.DefaultInterpolation=l0;Hc.prototype.InterpolantFactoryMethodLinear=void 0;Hc.prototype.InterpolantFactoryMethodSmooth=void 0;var D0=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};D0.prototype.ValueTypeName="color";var g_=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};g_.prototype.ValueTypeName="number";var Nx=class extends Xf{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){let a=this.resultBuffer,s=this.sampleValues,l=this.valueSize,c=(i-t)/(r-t),f=e*l;for(let p=f+l;f!==p;f+=4)Lr.slerpFlat(a,0,s,f-l,s,f,c);return a}},v_=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}InterpolantFactoryMethodLinear(e){return new Nx(this.times,this.values,this.getValueSize(),e)}};v_.prototype.ValueTypeName="quaternion";v_.prototype.InterpolantFactoryMethodSmooth=void 0;var Vc=class extends Cs{constructor(e,t,i){super(e,t,i)}};Vc.prototype.ValueTypeName="string";Vc.prototype.ValueBufferType=Array;Vc.prototype.DefaultInterpolation=l0;Vc.prototype.InterpolantFactoryMethodLinear=void 0;Vc.prototype.InterpolantFactoryMethodSmooth=void 0;var F0=class extends Cs{constructor(e,t,i,r){super(e,t,i,r)}};F0.prototype.ValueTypeName="vector";var Hh=class{constructor(e="",t=-1,i=[],r=k1){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=tl(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,r=1/(e.fps||1);for(let s=0,l=i.length;s!==l;++s)t.push(vX(i[s]).scale(r));let a=new this(e.name,e.duration,t,e.blendMode);return a.uuid=e.uuid,a.userData=JSON.parse(e.userData||"{}"),a}static toJSON(e){let t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let a=0,s=i.length;a!==s;++a)t.push(Cs.toJSON(i[a]));return r}static CreateFromMorphTargetSequence(e,t,i,r){let a=t.length,s=[];for(let l=0;l1){let h=p[1],_=r[h];_||(r[h]=_=[]),_.push(f)}}let s=[];for(let l in r)s.push(this.CreateFromMorphTargetSequence(l,r[l],t,i));return s}resetDuration(){let e=this.tracks,t=0;for(let i=0,r=e.length;i!==r;++i){let a=this.tracks[i];t=Math.max(t,a.times[a.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e{t&&t(a),this.manager.itemEnd(e)},0);return}if(Bf[e]!==void 0){Bf[e].push({onLoad:t,onProgress:i,onError:r});return}Bf[e]=[],Bf[e].push({onLoad:t,onProgress:i,onError:r});let s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),l=this.mimeType,c=this.responseType;fetch(s).then(f=>{if(f.status===200||f.status===0){if(f.status===0&&Ft("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||f.body===void 0||f.body.getReader===void 0)return f;let p=Bf[e],h=f.body.getReader(),_=f.headers.get("X-File-Size")||f.headers.get("Content-Length"),g=_?parseInt(_):0,E=g!==0,x=0,S=new ReadableStream({start(v){M();function M(){h.read().then(({done:O,value:k})=>{if(O)v.close();else{x+=k.byteLength;let q=new ProgressEvent("progress",{lengthComputable:E,loaded:x,total:g});for(let G=0,Q=p.length;G{v.error(O)})}}});return new Response(S)}else throw new aO(`fetch for "${f.url}" responded with ${f.status}: ${f.statusText}`,f)}).then(f=>{switch(c){case"arraybuffer":return f.arrayBuffer();case"blob":return f.blob();case"document":return f.text().then(p=>new DOMParser().parseFromString(p,l));case"json":return f.json();default:if(l==="")return f.text();{let h=/charset="?([^;"\s]*)"?/i.exec(l),_=h&&h[1]?h[1].toLowerCase():void 0,g=new TextDecoder(_);return f.arrayBuffer().then(E=>g.decode(E))}}}).then(f=>{Au.add(`file:${e}`,f);let p=Bf[e];delete Bf[e];for(let h=0,_=p.length;h<_;h++){let g=p[h];g.onLoad&&g.onLoad(f)}}).catch(f=>{let p=Bf[e];if(p===void 0)throw this.manager.itemError(e),f;delete Bf[e];for(let h=0,_=p.length;h<_;h++){let g=p[h];g.onError&&g.onError(f)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},vC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new Zl(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(l){try{t(a.parse(JSON.parse(l)))}catch(c){r?r(c):cn(c),a.manager.itemError(e)}},i,r)}parse(e){let t=[];for(let i=0;i0){let c=new P0(t);a=new Vh(c),a.setCrossOrigin(this.crossOrigin);for(let f=0,p=e.length;f0){r=new Vh(this.manager),r.setCrossOrigin(this.crossOrigin);for(let s=0,l=e.length;s{let v=null,M=null;return S.boundingBox!==void 0&&(v=new sa().fromJSON(S.boundingBox)),S.boundingSphere!==void 0&&(M=new Kr().fromJSON(S.boundingSphere)),{...S,boundingBox:v,boundingSphere:M}}),s._instanceInfo=e.instanceInfo,s._availableInstanceIds=e._availableInstanceIds,s._availableGeometryIds=e._availableGeometryIds,s._nextIndexStart=e.nextIndexStart,s._nextVertexStart=e.nextVertexStart,s._geometryCount=e.geometryCount,s._maxInstanceCount=e.maxInstanceCount,s._maxVertexCount=e.maxVertexCount,s._maxIndexCount=e.maxIndexCount,s._geometryInitialized=e.geometryInitialized,s._matricesTexture=f(e.matricesTexture.uuid),s._indirectTexture=f(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(s._colorsTexture=f(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(s.boundingSphere=new Kr().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(s.boundingBox=new sa().fromJSON(e.boundingBox));break;case"LOD":s=new Vw;break;case"Line":s=new Lu(l(e.geometry),c(e.material));break;case"LineLoop":s=new Yw(l(e.geometry),c(e.material));break;case"LineSegments":s=new nl(l(e.geometry),c(e.material));break;case"PointCloud":case"Points":s=new Kw(l(e.geometry),c(e.material));break;case"Sprite":s=new Hw(c(e.material));break;case"Group":s=new Vf;break;case"Bone":s=new g0;break;default:s=new gi}if(s.uuid=e.uuid,e.name!==void 0&&(s.name=e.name),e.matrix!==void 0?(s.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=e.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(e.position!==void 0&&s.position.fromArray(e.position),e.rotation!==void 0&&s.rotation.fromArray(e.rotation),e.quaternion!==void 0&&s.quaternion.fromArray(e.quaternion),e.scale!==void 0&&s.scale.fromArray(e.scale)),e.up!==void 0&&s.up.fromArray(e.up),e.pivot!==void 0&&(s.pivot=new ve().fromArray(e.pivot)),e.morphTargetDictionary!==void 0&&(s.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),e.morphTargetInfluences!==void 0&&(s.morphTargetInfluences=e.morphTargetInfluences.slice()),e.castShadow!==void 0&&(s.castShadow=e.castShadow),e.receiveShadow!==void 0&&(s.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(s.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(s.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(s.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(s.shadow.radius=e.shadow.radius),e.shadow.blurSamples!==void 0&&(s.shadow.blurSamples=e.shadow.blurSamples),e.shadow.focus!==void 0&&(s.shadow.focus=e.shadow.focus),e.shadow.aspect!==void 0&&(s.shadow.aspect=e.shadow.aspect),e.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(s.visible=e.visible),e.frustumCulled!==void 0&&(s.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(s.renderOrder=e.renderOrder),e.static!==void 0&&(s.static=e.static),e.userData!==void 0&&(s.userData=e.userData),e.layers!==void 0&&(s.layers.mask=e.layers),e.children!==void 0){let _=e.children;for(let g=0;g<_.length;g++)s.add(this.parseObject(_[g],t,i,r,a))}if(e.animations!==void 0){let _=e.animations;for(let g=0;g<_.length;g++){let E=_[g];s.animations.push(a[E])}}if(e.type==="LOD"){e.autoUpdate!==void 0&&(s.autoUpdate=e.autoUpdate);let _=e.levels;for(let g=0;g<_.length;g++){let E=_[g],x=s.getObjectByProperty("uuid",E.object);x!==void 0&&s.addLevel(x,E.distance,E.hysteresis)}}return s}bindSkeletons(e,t){Object.keys(t).length!==0&&e.traverse(function(i){if(i.isSkinnedMesh===!0&&i.skeleton!==void 0){let r=t[i.skeleton];r===void 0?Ft("ObjectLoader: No skeleton found with UUID:",i.skeleton):i.bind(r,i.bindMatrix)}})}bindLightTargets(e){e.traverse(function(t){if(t.isDirectionalLight||t.isSpotLight){let i=t.target,r=e.getObjectByProperty("uuid",i);r!==void 0?t.target=r:t.target=new gi}})}},yX={UVMapping:Kx,CubeReflectionMapping:Du,CubeRefractionMapping:Jf,EquirectangularReflectionMapping:j0,EquirectangularRefractionMapping:Q0,CubeUVReflectionMapping:x_},L6={RepeatWrapping:s0,ClampToEdgeWrapping:Ms,MirroredRepeatWrapping:o0},N6={NearestFilter:br,NearestMipmapNearestFilter:p2,NearestMipmapLinearFilter:T_,LinearFilter:Ji,LinearMipmapNearestFilter:X0,LinearMipmapLinearFilter:Fu},Xk=new WeakMap,xC=class extends Wa{constructor(e){super(e),this.isImageBitmapLoader=!0,typeof createImageBitmap>"u"&&Ft("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&Ft("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,t,i,r){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let a=this,s=Au.get(`image-bitmap:${e}`);if(s!==void 0){if(a.manager.itemStart(e),s.then){s.then(f=>{Xk.has(s)===!0?(r&&r(Xk.get(s)),a.manager.itemError(e),a.manager.itemEnd(e)):(t&&t(f),a.manager.itemEnd(e))});return}setTimeout(function(){t&&t(s),a.manager.itemEnd(e)},0);return}let l={};l.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",l.headers=this.requestHeader,l.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;let c=fetch(e,l).then(function(f){return f.blob()}).then(function(f){return createImageBitmap(f,Object.assign({},a.options,{colorSpaceConversion:"none"}))}).then(function(f){return Au.add(`image-bitmap:${e}`,f),t&&t(f),a.manager.itemEnd(e),f}).catch(function(f){r&&r(f),Xk.set(c,f),Au.remove(`image-bitmap:${e}`),a.manager.itemError(e),a.manager.itemEnd(e)});Au.add(`image-bitmap:${e}`,c),a.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},GA,q0=class{static getContext(){return GA===void 0&&(GA=new(window.AudioContext||window.webkitAudioContext)),GA}static setContext(e){GA=e}},TC=class extends Wa{constructor(e){super(e)}load(e,t,i,r){let a=this,s=new Zl(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(c){try{let f=c.slice(0),p=q0.getContext(),h=e+"#decode";a.manager.itemStart(h),p.decodeAudioData(f,function(_){t(_),a.manager.itemEnd(h)}).catch(function(_){l(_),a.manager.itemEnd(h)})}catch(f){l(f)}},i,r);function l(c){r?r(c):cn(c),a.manager.itemError(e)}}},k6=new Cn,O6=new Cn,Jm=new Cn,MC=class{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new yr,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new yr,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){let t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Jm.copy(e.projectionMatrix);let r=t.eyeSep/2,a=r*t.near/t.focus,s=t.near*Math.tan(a_*t.fov*.5)/t.zoom,l,c;O6.elements[12]=-r,k6.elements[12]=r,l=-s*t.aspect+a,c=s*t.aspect+a,Jm.elements[0]=2*t.near/(c-l),Jm.elements[8]=(c+l)/(c-l),this.cameraL.projectionMatrix.copy(Jm),l=-s*t.aspect-a,c=s*t.aspect-a,Jm.elements[0]=2*t.near/(c-l),Jm.elements[8]=(c+l)/(c-l),this.cameraR.projectionMatrix.copy(Jm)}this.cameraL.matrix.copy(e.matrixWorld).multiply(O6),this.cameraL.matrixWorldNeedsUpdate=!0,this.cameraR.matrix.copy(e.matrixWorld).multiply(k6),this.cameraR.matrixWorldNeedsUpdate=!0}},e0=-90,t0=1,Vx=class extends gi{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;let r=new yr(e0,t0,e,t);r.layers=this.layers,this.add(r);let a=new yr(e0,t0,e,t);a.layers=this.layers,this.add(a);let s=new yr(e0,t0,e,t);s.layers=this.layers,this.add(s);let l=new yr(e0,t0,e,t);l.layers=this.layers,this.add(l);let c=new yr(e0,t0,e,t);c.layers=this.layers,this.add(c);let f=new yr(e0,t0,e,t);f.layers=this.layers,this.add(f)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[i,r,a,s,l,c]=t;for(let f of t)this.remove(f);if(e===ho)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),l.up.set(0,1,0),l.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Dh)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),l.up.set(0,-1,0),l.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let f of t)this.add(f),f.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();let{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[a,s,l,c,f,p]=this.children,h=e.getRenderTarget(),_=e.getActiveCubeFace(),g=e.getActiveMipmapLevel(),E=e.xr.enabled;e.xr.enabled=!1;let x=i.texture.generateMipmaps;i.texture.generateMipmaps=!1;let S=!1;e.isWebGLRenderer===!0?S=e.state.buffers.depth.getReversed():S=e.reversedDepthBuffer,e.setRenderTarget(i,0,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,a),e.setRenderTarget(i,1,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,s),e.setRenderTarget(i,2,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,l),e.setRenderTarget(i,3,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,c),e.setRenderTarget(i,4,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,f),i.texture.generateMipmaps=x,e.setRenderTarget(i,5,r),S&&e.autoClear===!1&&e.clearDepth(),e.render(t,p),e.setRenderTarget(h,_,g),e.xr.enabled=E,i.texture.needsPMREMUpdate=!0}},Gx=class extends yr{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}},Wx=class{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=performance.now(),this._delta=0,this._elapsed=0,this._timescale=1,this._document=null,this._pageVisibilityHandler=null}connect(e){this._document=e,e.hidden!==void 0&&(this._pageVisibilityHandler=bX.bind(this),e.addEventListener("visibilitychange",this._pageVisibilityHandler,!1))}disconnect(){this._pageVisibilityHandler!==null&&(this._document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this._pageVisibilityHandler=null),this._document=null}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(e){return this._timescale=e,this}reset(){return this._currentTime=performance.now()-this._startTime,this}dispose(){this.disconnect()}update(e){return this._pageVisibilityHandler!==null&&this._document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(e!==void 0?e:performance.now())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};function bX(){this._document.hidden===!1&&this.reset()}var e_=new ve,Yk=new Lr,SX=new ve,t_=new ve,n_=new ve,AC=class extends gi{constructor(){super(),this.type="AudioListener",this.context=q0.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._timer=new Wx}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this._timer.update();let t=this.context.listener;if(this.timeDelta=this._timer.getDelta(),this.matrixWorld.decompose(e_,Yk,SX),t_.set(0,0,-1).applyQuaternion(Yk),n_.set(0,1,0).applyQuaternion(Yk),t.positionX){let i=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(e_.x,i),t.positionY.linearRampToValueAtTime(e_.y,i),t.positionZ.linearRampToValueAtTime(e_.z,i),t.forwardX.linearRampToValueAtTime(t_.x,i),t.forwardY.linearRampToValueAtTime(t_.y,i),t.forwardZ.linearRampToValueAtTime(t_.z,i),t.upX.linearRampToValueAtTime(n_.x,i),t.upY.linearRampToValueAtTime(n_.y,i),t.upZ.linearRampToValueAtTime(n_.z,i)}else t.setPosition(e_.x,e_.y,e_.z),t.setOrientation(t_.x,t_.y,t_.z,n_.x,n_.y,n_.z)}},jx=class extends gi{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){Ft("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;let t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){Ft("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let c=t,f=t+t;c!==f;++c)if(i[c]!==i[c+t]){l.setValue(i,r);break}}saveOriginalState(){let e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let a=i,s=r;a!==s;++a)t[a]=t[r+a%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){let e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i=.5)for(let s=0;s!==a;++s)e[t+s]=e[i+s]}_slerp(e,t,i,r){Lr.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,a){let s=this._workIndex*a;Lr.multiplyQuaternionsFlat(e,s,e,t,e,i),Lr.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,i,r,a){let s=1-r;for(let l=0;l!==a;++l){let c=t+l;e[c]=e[c]*s+e[i+l]*r}}_lerpAdditive(e,t,i,r,a){for(let s=0;s!==a;++s){let l=t+s;e[l]=e[l]+e[i+s]*r}}},JO="\\[\\]\\.:\\/",wX=new RegExp("["+JO+"]","g"),eD="[^"+JO+"]",xX="[^"+JO.replace("\\.","")+"]",TX=/((?:WC+[\/:])*)/.source.replace("WC",eD),MX=/(WCOD+)?/.source.replace("WCOD",xX),AX=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",eD),CX=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",eD),RX=new RegExp("^"+TX+MX+AX+CX+"$"),IX=["material","materials","bones","map"],uO=class{constructor(e,t,i){let r=i||Ii.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,r=this._bindings[i];r!==void 0&&r.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,a=i.length;r!==a;++r)i[r].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Ii=class n{constructor(e,t,i){this.path=t,this.parsedPath=i||n.parseTrackName(t),this.node=n.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new n.Composite(e,t,i):new n(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(wX,"")}static parseTrackName(e){let t=RX.exec(e);if(t===null)throw new Error("THREE.PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){let a=i.nodeName.substring(r+1);IX.indexOf(a)!==-1&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=a)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("THREE.PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){let i=function(a){for(let s=0;s=a){let h=a++,_=e[h];t[_.uuid]=p,e[p]=_,t[f]=h,e[h]=c;for(let g=0,E=r;g!==E;++g){let x=i[g],S=x[h],v=x[p];x[p]=S,x[h]=v}}}this.nCachedObjects_=a}uncache(){let e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length,a=this.nCachedObjects_,s=e.length;for(let l=0,c=arguments.length;l!==c;++l){let f=arguments[l],p=f.uuid,h=t[p];if(h!==void 0)if(delete t[p],h0){let c=this._interpolants,f=this._propertyBindings;switch(this.blendMode){case S2:for(let p=0,h=c.length;p!==h;++p)c[p].evaluate(s),f[p].accumulateAdditive(l);break;case k1:default:for(let p=0,h=c.length;p!==h;++p)c[p].evaluate(s),f[p].accumulate(r,l)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;let i=this._weightInterpolant;if(i!==null){let r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),r===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;let i=this._timeScaleInterpolant;if(i!==null){let r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(t===0?this.paused=!0:(this._restoreTimeScale!==null&&(t=this._restoreTimeScale),this.timeScale=t),this.stopWarping())}}return this._effectiveTimeScale=t,t}_updateTime(e){let t=this._clip.duration,i=this.loop,r=this.time+e,a=this._loopCount,s=i===PO;if(e===0)return a===-1?r:s&&(a&1)===1?t-r:r;if(i===DO){a===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else if(r<0)r=0;else{this.time=r;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(a===-1&&(e>=0?(a=0,this._setEndings(!0,this.repetitions===0,s)):this._setEndings(this.repetitions===0,!0,s)),r>=t||r<0){let l=Math.floor(r/t);r-=t*l,a+=Math.abs(l);let c=this.repetitions-a;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){let f=e<0;this._setEndings(f,!f,s)}else this._setEndings(!1,!1,s);this._loopCount=a,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:l})}}else this._loopCount=a,this.time=r;if(s&&(a&1)===1)return t-r}return r}_setEndings(e,t,i){let r=this._interpolantSettings;i?(r.endingStart=kh,r.endingEnd=kh):(e?r.endingStart=this.zeroSlopeAtStart?kh:Nh:r.endingStart=u0,t?r.endingEnd=this.zeroSlopeAtEnd?kh:Nh:r.endingEnd=u0)}_scheduleFading(e,t,i){let r=this._mixer,a=r.time,s=this._weightInterpolant;s===null&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);let l=s.parameterPositions,c=s.sampleValues;return l[0]=a,c[0]=t,l[1]=a+e,c[1]=i,this}},LX=new Float32Array(1),LC=class extends po{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}_bindAction(e,t){let i=e._localRoot||this._root,r=e._clip.tracks,a=r.length,s=e._propertyBindings,l=e._interpolants,c=i.uuid,f=this._bindingsByRootAndName,p=f[c];p===void 0&&(p={},f[c]=p);for(let h=0;h!==a;++h){let _=r[h],g=_.name,E=p[g];if(E!==void 0)++E.referenceCount,s[h]=E;else{if(E=s[h],E!==void 0){E._cacheIndex===null&&(++E.referenceCount,this._addInactiveBinding(E,c,g));continue}let x=t&&t._propertyBindings[h].binding.parsedPath;E=new Qx(Ii.create(i,g,x),_.ValueTypeName,_.getValueSize()),++E.referenceCount,this._addInactiveBinding(E,c,g),s[h]=E}l[h].resultBuffer=E.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){let i=(e._localRoot||this._root).uuid,r=e._clip.uuid,a=this._actionsByClip[r];this._bindAction(e,a&&a.knownActions[0]),this._addInactiveAction(e,r,i)}let t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){let a=t[i];a.useCount++===0&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){let t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){let a=t[i];--a.useCount===0&&(a.restoreOriginalState(),this._takeBackBinding(a))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){let t=e._cacheIndex;return t!==null&&t=0;--i)e[i].stop();return this}update(e){e*=this.timeScale;let t=this._actions,i=this._nActiveActions,r=this.time+=e,a=Math.sign(e),s=this._accuIndex^=1;for(let f=0;f!==i;++f)t[f]._update(r,e,a,s);let l=this._bindings,c=this._nActiveBindings;for(let f=0;f!==c;++f)l[f].apply(s);return this}setTime(e){this.time=0;for(let t=0;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,U6).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},z6=new ve,WA=new ve,n0=new ve,i0=new ve,Kk=new ve,kX=new ve,OX=new ve,zC=class{constructor(e=new ve,t=new ve){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){z6.subVectors(e,this.start),WA.subVectors(this.end,this.start);let i=WA.dot(WA);if(i===0)return 0;let a=WA.dot(z6)/i;return t&&(a=Tn(a,0,1)),a}closestPointToPoint(e,t,i){let r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}distanceSqToLine3(e,t=kX,i=OX){let r=10000000000000001e-32,a,s,l=this.start,c=e.start,f=this.end,p=e.end;n0.subVectors(f,l),i0.subVectors(p,c),Kk.subVectors(l,c);let h=n0.dot(n0),_=i0.dot(i0),g=i0.dot(Kk);if(h<=r&&_<=r)return t.copy(l),i.copy(c),t.sub(i),t.dot(t);if(h<=r)a=0,s=g/_,s=Tn(s,0,1);else{let E=n0.dot(Kk);if(_<=r)s=0,a=Tn(-E/h,0,1);else{let x=n0.dot(i0),S=h*_-x*x;S!==0?a=Tn((x*g-E*_)/S,0,1):a=0,s=(x*a+g)/_,s<0?(s=0,a=Tn(-E/h,0,1)):s>1&&(s=1,a=Tn((x-E)/h,0,1))}}return t.copy(l).addScaledVector(n0,a),i.copy(c).addScaledVector(i0,s),t.distanceToSquared(i)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},q6=new ve,qC=class extends gi{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";let i=new Nn,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,l=1,c=32;s1)for(let h=0;h.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{W6.set(e.z,0,-e.x).normalize();let t=Math.acos(e.y);this.quaternion.setFromAxisAngle(W6,t)}}setLength(e,t=e*.2,i=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){super.dispose(),this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},$C=class extends nl{constructor(e=1){let t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new Nn;r.setAttribute("position",new an(t,3)),r.setAttribute("color",new an(i,3));let a=new xa({vertexColors:!0,toneMapped:!1});super(r,a),this.type="AxesHelper"}setColors(e,t,i){let r=new Vt,a=this.geometry.attributes.color.array;return r.set(e),r.toArray(a,0),r.toArray(a,3),r.set(t),r.toArray(a,6),r.toArray(a,9),r.set(i),r.toArray(a,12),r.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){super.dispose(),this.geometry.dispose(),this.material.dispose()}},JC=class{constructor(){this.type="ShapePath",this.color=new Vt,this.subPaths=[],this.currentPath=null,this.userData={}}moveTo(e,t){return this.currentPath=new zh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,a,s){return this.currentPath.bezierCurveTo(e,t,i,r,a,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(){function e(c,f){let p=!1,h=f.length;for(let _=0,g=h-1;_c.y!=x.y>c.y&&c.x<(x.x-E.x)*(c.y-E.y)/(x.y-E.y)+E.x&&(p=!p)}return p}function t(c,f){let p=f.getCenter(new ut);if(e(p,c))return p;let h=p.y,_=[],g=c.length;for(let E=0;Eh!=S.y>h){let v=x.x+(h-x.y)*(S.x-x.x)/(S.y-x.y);_.push(v)}}return _.length>1&&(_.sort((E,x)=>E-x),p.x=(_[0]+_[1])/2),p}let i=this.userData.style&&this.userData.style.fillRule||"nonzero";i!=="nonzero"&&i!=="evenodd"&&(Ft('Fill-rule "'+i+'" is not supported, falling back to "nonzero".'),i="nonzero");let r=i==="nonzero"?(c=>c!==0):(c=>(c&1)!==0),a=[];for(let c of this.subPaths){let f=c.getPoints();if(f.length<3)continue;let p=Yl.area(f);if(p===0)continue;let h=new Yx;for(let _=0;_f.absArea-c.absArea);for(let c=0;c=0;h--){let _=a[h];if(_.boundingBox.containsBox(f.boundingBox)&&e(f.interiorPoint,_.points)){f.container=_.exclude?_.container:_,p=_.winding,f.winding+=p;break}}r(f.winding)===r(p)&&(f.exclude=!0)}for(let c of a)c.exclude||(c.role=c.container===null||c.container.role==="hole"?"outer":"hole");let s=[],l=new Map;for(let c of a){if(c.exclude||c.role!=="outer")continue;let f=new qh;f.curves=c.subPath.curves,s.push(f),l.set(c,f)}for(let c of a){if(c.exclude||c.role!=="hole")continue;let f=l.get(c.container);if(!f)continue;let p=new zh;p.curves=c.subPath.curves,f.holes.push(p)}return s}},V0=class extends po{constructor(e,t=null){super(),this.object=e,this.domElement=t,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(e){this.domElement!==null&&this.disconnect(),this.domElement=e}disconnect(){}dispose(){}update(){}};function FX(n,e){let t=n.image&&n.image.width?n.image.width/n.image.height:1;return t>e?(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2):(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0),n}function PX(n,e){let t=n.image&&n.image.width?n.image.width/n.image.height:1;return t>e?(n.repeat.x=e/t,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0):(n.repeat.x=1,n.repeat.y=t/e,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2),n}function UX(n){return n.repeat.x=1,n.repeat.y=1,n.offset.x=0,n.offset.y=0,n}function x2(n,e,t,i){let r=zX(i);switch(t){case y2:return n*e;case e1:return n*e/r.components*r.byteLength;case Y0:return n*e/r.components*r.byteLength;case td:return n*e*2/r.components*r.byteLength;case t1:return n*e*2/r.components*r.byteLength;case b2:return n*e*3/r.components*r.byteLength;case wa:return n*e*4/r.components*r.byteLength;case n1:return n*e*4/r.components*r.byteLength;case K0:case Z0:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case $0:case J0:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case r1:case s1:return Math.max(n,16)*Math.max(e,8)/4;case i1:case a1:return Math.max(n,8)*Math.max(e,8)/2;case o1:case l1:case c1:case f1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*8;case u1:case eb:case d1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case h1:return Math.floor((n+3)/4)*Math.floor((e+3)/4)*16;case p1:return Math.floor((n+4)/5)*Math.floor((e+3)/4)*16;case m1:return Math.floor((n+4)/5)*Math.floor((e+4)/5)*16;case _1:return Math.floor((n+5)/6)*Math.floor((e+4)/5)*16;case g1:return Math.floor((n+5)/6)*Math.floor((e+5)/6)*16;case v1:return Math.floor((n+7)/8)*Math.floor((e+4)/5)*16;case y1:return Math.floor((n+7)/8)*Math.floor((e+5)/6)*16;case b1:return Math.floor((n+7)/8)*Math.floor((e+7)/8)*16;case S1:return Math.floor((n+9)/10)*Math.floor((e+4)/5)*16;case E1:return Math.floor((n+9)/10)*Math.floor((e+5)/6)*16;case w1:return Math.floor((n+9)/10)*Math.floor((e+7)/8)*16;case x1:return Math.floor((n+9)/10)*Math.floor((e+9)/10)*16;case T1:return Math.floor((n+11)/12)*Math.floor((e+9)/10)*16;case M1:return Math.floor((n+11)/12)*Math.floor((e+11)/12)*16;case A1:case C1:case R1:return Math.ceil(n/4)*Math.ceil(e/4)*16;case I1:case L1:return Math.ceil(n/4)*Math.ceil(e/4)*8;case tb:case N1:return Math.ceil(n/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${t} format.`)}function zX(n){switch(n){case ja:case m2:return{byteLength:1,components:1};case M_:case _2:case $l:return{byteLength:2,components:1};case $x:case Jx:return{byteLength:2,components:4};case il:case Zx:case as:return{byteLength:4,components:1};case g2:case v2:return{byteLength:4,components:3}}throw new Error(`THREE.TextureUtils: Unknown texture type ${n}.`)}var e2=class{static contain(e,t){return FX(e,t)}static cover(e,t){return PX(e,t)}static fill(e){return UX(e)}static getByteLength(e,t,i,r){return x2(e,t,i,r)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"186"}}));typeof window<"u"&&(window.__THREE__?Ft("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="186");function y8(){let n=null,e=!1,t=null,i=null;function r(a,s){i=n.requestAnimationFrame(r),t(a,s)}return{start:function(){e!==!0&&t!==null&&n!==null&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n!==null&&n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(a){t=a},setContext:function(a){n=a}}}function qX(n){let e=new WeakMap;function t(l,c){let f=l.array,p=l.usage,h=f.byteLength,_=n.createBuffer();n.bindBuffer(c,_),n.bufferData(c,f,p),l.onUploadCallback();let g;if(f instanceof Float32Array)g=n.FLOAT;else if(typeof Float16Array<"u"&&f instanceof Float16Array)g=n.HALF_FLOAT;else if(f instanceof Uint16Array)l.isFloat16BufferAttribute?g=n.HALF_FLOAT:g=n.UNSIGNED_SHORT;else if(f instanceof Int16Array)g=n.SHORT;else if(f instanceof Uint32Array)g=n.UNSIGNED_INT;else if(f instanceof Int32Array)g=n.INT;else if(f instanceof Int8Array)g=n.BYTE;else if(f instanceof Uint8Array)g=n.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)g=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:_,type:g,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version,size:h}}function i(l,c,f){let p=c.array,h=c.updateRanges;if(n.bindBuffer(f,l),h.length===0)n.bufferSubData(f,0,p);else{h.sort((g,E)=>g.start-E.start);let _=0;for(let g=1;g 0 vec4 plane; #ifdef ALPHA_TO_COVERAGE float distanceToPlane, distanceGradient; float clipOpacity = 1.0; #pragma unroll_loop_start for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; distanceGradient = fwidth( distanceToPlane ) / 2.0; clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); if ( clipOpacity == 0.0 ) discard; } #pragma unroll_loop_end #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES float unionClipOpacity = 1.0; #pragma unroll_loop_start for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; distanceGradient = fwidth( distanceToPlane ) / 2.0; unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); } #pragma unroll_loop_end clipOpacity *= 1.0 - unionClipOpacity; #endif diffuseColor.a *= clipOpacity; if ( diffuseColor.a == 0.0 ) discard; #else #pragma unroll_loop_start for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; } #pragma unroll_loop_end #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES bool clipped = true; #pragma unroll_loop_start for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { plane = clippingPlanes[ i ]; clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; } #pragma unroll_loop_end if ( clipped ) discard; #endif #endif #endif`,iY=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; #endif`,rY=`#if NUM_CLIPPING_PLANES > 0 varying vec3 vClipPosition; #endif`,aY=`#if NUM_CLIPPING_PLANES > 0 vClipPosition = - mvPosition.xyz; #endif`,sY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) diffuseColor *= vColor; #endif`,oY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) varying vec4 vColor; #endif`,lY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) varying vec4 vColor; #endif`,uY=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) vColor = vec4( 1.0 ); #endif #ifdef USE_COLOR_ALPHA vColor *= color; #elif defined( USE_COLOR ) vColor.rgb *= color; #endif #ifdef USE_INSTANCING_COLOR vColor.rgb *= instanceColor.rgb; #endif #ifdef USE_BATCHING_COLOR vColor *= getBatchingColor( getIndirectIndex( gl_DrawID ) ); #endif`,cY=`#define PI 3.141592653589793 #define PI2 6.283185307179586 #define PI_HALF 1.5707963267948966 #define RECIPROCAL_PI 0.3183098861837907 #define RECIPROCAL_PI2 0.15915494309189535 #define EPSILON 1e-6 #ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif #define whiteComplement( a ) ( 1.0 - saturate( a ) ) float pow2( const in float x ) { return x*x; } vec3 pow2( const in vec3 x ) { return x*x; } float pow3( const in float x ) { return x*x*x; } float pow4( const in float x ) { float x2 = x*x; return x2*x2; } float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } highp float rand( const in vec2 uv ) { const highp float a = 12.9898, b = 78.233, c = 43758.5453; highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); return fract( sin( sn ) * c ); } #ifdef HIGH_PRECISION float precisionSafeLength( vec3 v ) { return length( v ); } #else float precisionSafeLength( vec3 v ) { float maxComponent = max3( abs( v ) ); return length( v / maxComponent ) * maxComponent; } #endif struct IncidentLight { vec3 color; vec3 direction; bool visible; }; struct ReflectedLight { vec3 directDiffuse; vec3 directSpecular; vec3 indirectDiffuse; vec3 indirectSpecular; }; #ifdef USE_ALPHAHASH varying vec3 vPosition; #endif vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } #define inverseTransformDirection transformDirectionByInverseViewMatrix vec3 transformNormalByInverseViewMatrix( in vec3 normal, in mat4 viewMatrix ) { return normalize( ( vec4( normal, 0.0 ) * viewMatrix ).xyz ); } vec3 transformDirectionByInverseViewMatrix( in vec3 dir, in mat4 viewMatrix ) { return normalize( ( vec4( dir, 0.0 ) * viewMatrix ).xyz ); } bool isPerspectiveMatrix( mat4 m ) { return m[ 2 ][ 3 ] == - 1.0; } vec2 equirectUv( in vec3 dir ) { float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; return vec2( u, v ); } vec3 BRDF_Lambert( const in vec3 diffuseColor ) { return RECIPROCAL_PI * diffuseColor; } vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); } float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); } // validated`,fY=`#ifdef ENVMAP_TYPE_CUBE_UV #define cubeUV_minMipLevel 4.0 #define cubeUV_minTileSize 16.0 float getFace( vec3 direction ) { vec3 absDirection = abs( direction ); float face = - 1.0; if ( absDirection.x > absDirection.z ) { if ( absDirection.x > absDirection.y ) face = direction.x > 0.0 ? 0.0 : 3.0; else face = direction.y > 0.0 ? 1.0 : 4.0; } else { if ( absDirection.z > absDirection.y ) face = direction.z > 0.0 ? 2.0 : 5.0; else face = direction.y > 0.0 ? 1.0 : 4.0; } return face; } vec2 getUV( vec3 direction, float face ) { vec2 uv; if ( face == 0.0 ) { uv = vec2( direction.z, direction.y ) / abs( direction.x ); } else if ( face == 1.0 ) { uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); } else if ( face == 2.0 ) { uv = vec2( - direction.x, direction.y ) / abs( direction.z ); } else if ( face == 3.0 ) { uv = vec2( - direction.z, direction.y ) / abs( direction.x ); } else if ( face == 4.0 ) { uv = vec2( - direction.x, direction.z ) / abs( direction.y ); } else { uv = vec2( direction.x, direction.y ) / abs( direction.z ); } return 0.5 * ( uv + 1.0 ); } vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { float face = getFace( direction ); float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); mipInt = max( mipInt, cubeUV_minMipLevel ); float faceSize = exp2( mipInt ); highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; if ( face > 2.0 ) { uv.y += faceSize; face -= 3.0; } uv.x += face * faceSize; uv.x += filterInt * 3.0 * cubeUV_minTileSize; uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); uv.x *= CUBEUV_TEXEL_WIDTH; uv.y *= CUBEUV_TEXEL_HEIGHT; #ifdef texture2DGradEXT return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; #else return texture2D( envMap, uv ).rgb; #endif } #define cubeUV_r0 1.0 #define cubeUV_m0 - 2.0 #define cubeUV_r1 0.8 #define cubeUV_m1 - 1.0 #define cubeUV_r4 0.4 #define cubeUV_m4 2.0 #define cubeUV_r5 0.305 #define cubeUV_m5 3.0 #define cubeUV_r6 0.21 #define cubeUV_m6 4.0 float roughnessToMip( float roughness ) { float mip = 0.0; if ( roughness >= cubeUV_r1 ) { mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; } else if ( roughness >= cubeUV_r4 ) { mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; } else if ( roughness >= cubeUV_r5 ) { mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; } else if ( roughness >= cubeUV_r6 ) { mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; } else { mip = - 2.0 * log2( 1.16 * roughness ); } return mip; } vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); float mipF = fract( mip ); float mipInt = floor( mip ); vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); if ( mipF == 0.0 ) { return vec4( color0, 1.0 ); } else { vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); return vec4( mix( color0, color1, mipF ), 1.0 ); } } #endif`,dY=`vec3 transformedNormal = objectNormal; #ifdef USE_TANGENT vec3 transformedTangent = objectTangent; #endif #ifdef USE_BATCHING mat3 bm = mat3( batchingMatrix ); transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); transformedNormal = bm * transformedNormal; #ifdef USE_TANGENT transformedTangent = bm * transformedTangent; #endif #endif #ifdef USE_INSTANCING mat3 im = mat3( instanceMatrix ); transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); transformedNormal = im * transformedNormal; #ifdef USE_TANGENT transformedTangent = im * transformedTangent; #endif #endif transformedNormal = normalMatrix * transformedNormal; #ifdef FLIP_SIDED transformedNormal = - transformedNormal; #endif #ifdef USE_TANGENT transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; #endif`,hY=`#ifdef USE_DISPLACEMENTMAP uniform sampler2D displacementMap; uniform float displacementScale; uniform float displacementBias; #endif`,pY=`#ifdef USE_DISPLACEMENTMAP transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); #endif`,mY=`#ifdef USE_EMISSIVEMAP vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE emissiveColor = sRGBTransferEOTF( emissiveColor ); #endif totalEmissiveRadiance *= emissiveColor.rgb; #endif`,_Y=`#ifdef USE_EMISSIVEMAP uniform sampler2D emissiveMap; #endif`,gY="gl_FragColor = linearToOutputTexel( gl_FragColor );",vY=`vec4 LinearTransferOETF( in vec4 value ) { return value; } vec4 sRGBTransferEOTF( in vec4 value ) { return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); } vec4 sRGBTransferOETF( in vec4 value ) { return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); }`,yY=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vec3 cameraToFrag; if ( isOrthographic ) { cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); } else { cameraToFrag = normalize( vWorldPosition - cameraPosition ); } vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); #ifdef ENVMAP_MODE_REFLECTION vec3 reflectVec = reflect( cameraToFrag, worldNormal ); #else vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); #endif #else vec3 reflectVec = vReflect; #endif #ifdef ENVMAP_TYPE_CUBE vec4 envColor = textureCube( envMap, envMapRotation * reflectVec ); #ifdef ENVMAP_BLENDING_MULTIPLY outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); #elif defined( ENVMAP_BLENDING_MIX ) outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); #elif defined( ENVMAP_BLENDING_ADD ) outgoingLight += envColor.xyz * specularStrength * reflectivity; #endif #endif #endif`,bY=`#ifdef USE_ENVMAP uniform float envMapIntensity; uniform mat3 envMapRotation; #ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #else uniform sampler2D envMap; #endif #endif`,SY=`#ifdef USE_ENVMAP uniform float reflectivity; #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif #ifdef ENV_WORLDPOS varying vec3 vWorldPosition; uniform float refractionRatio; #else varying vec3 vReflect; #endif #endif`,EY=`#ifdef USE_ENVMAP #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) #define ENV_WORLDPOS #endif #ifdef ENV_WORLDPOS varying vec3 vWorldPosition; #else varying vec3 vReflect; uniform float refractionRatio; #endif #endif`,wY=`#ifdef USE_ENVMAP #ifdef ENV_WORLDPOS vWorldPosition = worldPosition.xyz; #else vec3 cameraToVertex; if ( isOrthographic ) { cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); } else { cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); } vec3 worldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); #ifdef ENVMAP_MODE_REFLECTION vReflect = reflect( cameraToVertex, worldNormal ); #else vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); #endif #endif #endif`,xY=`#ifdef USE_FOG vFogDepth = - mvPosition.z; #endif`,TY=`#ifdef USE_FOG varying float vFogDepth; #endif`,MY=`#ifdef USE_FOG #ifdef FOG_EXP2 float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); #else float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); #endif gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); #endif`,AY=`#ifdef USE_FOG uniform vec3 fogColor; varying float vFogDepth; #ifdef FOG_EXP2 uniform float fogDensity; #else uniform float fogNear; uniform float fogFar; #endif #endif`,CY=`#ifdef USE_GRADIENTMAP uniform sampler2D gradientMap; #endif vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { float dotNL = dot( normal, lightDirection ); vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); #ifdef USE_GRADIENTMAP return vec3( texture2D( gradientMap, coord ).r ); #else vec2 fw = fwidth( coord ) * 0.5; return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); #endif }`,RY=`#ifdef USE_LIGHTMAP uniform sampler2D lightMap; uniform float lightMapIntensity; #endif`,IY=`LambertMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularStrength = specularStrength;`,LY=`varying vec3 vViewPosition; struct LambertMaterial { vec3 diffuseColor; float specularStrength; }; void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Lambert #define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,NY=`uniform bool receiveShadow; uniform vec3 ambientLightColor; #if defined( USE_LIGHT_PROBES ) uniform vec3 lightProbe[ 9 ]; #endif vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { float x = normal.x, y = normal.y, z = normal.z; vec3 result = shCoefficients[ 0 ] * 0.886227; result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); return result; } vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); return irradiance; } vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { vec3 irradiance = ambientLightColor; return irradiance; } float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); if ( cutoffDistance > 0.0 ) { distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); } return distanceFalloff; } float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { return smoothstep( coneCosine, penumbraCosine, angleCosine ); } #if NUM_SUN_LIGHTS > 0 struct SunLight { vec3 direction; vec3 color; }; uniform SunLight sunLights[ NUM_SUN_LIGHTS ]; void getSunLightInfo( const in SunLight sunLight, out IncidentLight light ) { light.color = sunLight.color; light.direction = sunLight.direction; light.visible = true; } #endif #if NUM_DIR_LIGHTS > 0 struct DirectionalLight { vec3 direction; vec3 color; }; uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { light.color = directionalLight.color; light.direction = directionalLight.direction; light.visible = true; } #endif #if NUM_POINT_LIGHTS > 0 struct PointLight { vec3 position; vec3 color; float distance; float decay; }; uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { vec3 lVector = pointLight.position - geometryPosition; light.direction = normalize( lVector ); float lightDistance = length( lVector ); light.color = pointLight.color; light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); light.visible = ( light.color != vec3( 0.0 ) ); } #endif #if NUM_SPOT_LIGHTS > 0 struct SpotLight { vec3 position; vec3 direction; vec3 color; float distance; float decay; float coneCos; float penumbraCos; }; uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { vec3 lVector = spotLight.position - geometryPosition; light.direction = normalize( lVector ); float angleCos = dot( light.direction, spotLight.direction ); float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); if ( spotAttenuation > 0.0 ) { float lightDistance = length( lVector ); light.color = spotLight.color * spotAttenuation; light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); light.visible = ( light.color != vec3( 0.0 ) ); } else { light.color = vec3( 0.0 ); light.visible = false; } } #endif #if NUM_RECT_AREA_LIGHTS > 0 struct RectAreaLight { vec3 color; vec3 position; vec3 halfWidth; vec3 halfHeight; }; uniform sampler2D ltc_1; uniform sampler2D ltc_2; uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; #endif #if NUM_HEMI_LIGHTS > 0 struct HemisphereLight { vec3 direction; vec3 skyColor; vec3 groundColor; }; uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { float dotNL = dot( normal, hemiLight.direction ); float hemiDiffuseWeight = 0.5 * dotNL + 0.5; vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); return irradiance; } #endif #include `,kY=`#ifdef USE_ENVMAP vec3 getIBLIrradiance( const in vec3 normal ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); return PI * envMapColor.rgb * envMapIntensity; #else return vec3( 0.0 ); #endif } vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 reflectVec = reflect( - viewDir, normal ); reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); reflectVec = transformDirectionByInverseViewMatrix( reflectVec, viewMatrix ); vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); return envMapColor.rgb * envMapIntensity; #else return vec3( 0.0 ); #endif } #ifdef USE_RETROREFLECTION vec3 getIBLRetroRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 retroVec = normalize( mix( viewDir, normal, pow4( roughness ) ) ); retroVec = transformDirectionByInverseViewMatrix( retroVec, viewMatrix ); vec4 envMapColor = textureCubeUV( envMap, envMapRotation * retroVec, roughness ); return envMapColor.rgb * envMapIntensity; #else return vec3( 0.0 ); #endif } #endif #ifdef USE_ANISOTROPY vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 bentNormal = cross( bitangent, viewDir ); bentNormal = normalize( cross( bentNormal, bitangent ) ); bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); return getIBLRadiance( viewDir, bentNormal, roughness ); #else return vec3( 0.0 ); #endif } #ifdef USE_RETROREFLECTION vec3 getIBLAnisotropyRetroRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { #ifdef ENVMAP_TYPE_CUBE_UV vec3 bentNormal = cross( bitangent, viewDir ); bentNormal = normalize( cross( bentNormal, bitangent ) ); bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); return getIBLRetroRadiance( viewDir, bentNormal, roughness ); #else return vec3( 0.0 ); #endif } #endif #endif #endif`,OY=`ToonMaterial material; material.diffuseColor = diffuseColor.rgb;`,DY=`varying vec3 vViewPosition; struct ToonMaterial { vec3 diffuseColor; }; void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_Toon #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,FY=`BlinnPhongMaterial material; material.diffuseColor = diffuseColor.rgb; material.specularColor = specular; material.specularShininess = shininess; material.specularStrength = specularStrength;`,PY=`varying vec3 vViewPosition; struct BlinnPhongMaterial { vec3 diffuseColor; vec3 specularColor; float specularShininess; float specularStrength; }; void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; } void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); } #define RE_Direct RE_Direct_BlinnPhong #define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,UY=`PhysicalMaterial material; material.diffuseColor = diffuseColor.rgb; material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor ); material.metalness = metalnessFactor; vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; material.roughness = min( material.roughness, 1.0 ); #ifdef IOR material.ior = ior; #ifdef USE_SPECULAR float specularIntensityFactor = specularIntensity; vec3 specularColorFactor = specularColor; #ifdef USE_SPECULAR_COLORMAP specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; #endif #ifdef USE_SPECULAR_INTENSITYMAP specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; #endif material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); #else float specularIntensityFactor = 1.0; vec3 specularColorFactor = vec3( 1.0 ); material.specularF90 = 1.0; #endif material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor; material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); #else material.specularColor = vec3( 0.04 ); material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); material.specularF90 = 1.0; #endif #ifdef USE_CLEARCOAT material.clearcoat = clearcoat; material.clearcoatRoughness = clearcoatRoughness; material.clearcoatF0 = vec3( 0.04 ); material.clearcoatF90 = 1.0; #ifdef USE_CLEARCOATMAP material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; #endif material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); material.clearcoatRoughness += geometryRoughness; material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); #endif #ifdef USE_DISPERSION material.dispersion = dispersion; #endif #ifdef USE_RETROREFLECTION material.retroreflectivity = retroreflectivity; #endif #ifdef USE_IRIDESCENCE material.iridescence = iridescence; material.iridescenceIOR = iridescenceIOR; #ifdef USE_IRIDESCENCEMAP material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; #else material.iridescenceThickness = iridescenceThicknessMaximum; #endif #endif #ifdef USE_SHEEN material.sheenColor = sheenColor; #ifdef USE_SHEEN_COLORMAP material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; #endif material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 ); #ifdef USE_SHEEN_ROUGHNESSMAP material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; #endif #endif #ifdef USE_ANISOTROPY #ifdef USE_ANISOTROPYMAP mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; #else vec2 anisotropyV = anisotropyVector; #endif material.anisotropy = length( anisotropyV ); if( material.anisotropy == 0.0 ) { anisotropyV = vec2( 1.0, 0.0 ); } else { anisotropyV /= material.anisotropy; material.anisotropy = saturate( material.anisotropy ); } material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; #endif`,zY=`uniform sampler2D dfgLUT; struct PhysicalMaterial { vec3 diffuseColor; vec3 diffuseContribution; vec3 specularColor; vec3 specularColorBlended; float roughness; float metalness; float specularF90; float dispersion; vec2 dfg; vec3 multiScatteringCompensation; #ifdef USE_RETROREFLECTION float retroreflectivity; #endif #ifdef USE_CLEARCOAT float clearcoat; float clearcoatRoughness; vec3 clearcoatF0; float clearcoatF90; #endif #ifdef USE_IRIDESCENCE float iridescence; float iridescenceIOR; float iridescenceThickness; vec3 iridescenceFresnel; vec3 iridescenceF0Dielectric; vec3 iridescenceF0Metallic; #endif #ifdef USE_SHEEN vec3 sheenColor; float sheenRoughness; #endif #ifdef IOR float ior; #endif #ifdef USE_TRANSMISSION float transmission; float transmissionAlpha; float thickness; float attenuationDistance; vec3 attenuationColor; #endif #ifdef USE_ANISOTROPY float anisotropy; float alphaT; vec3 anisotropyT; vec3 anisotropyB; #endif }; vec3 clearcoatSpecularDirect = vec3( 0.0 ); vec3 clearcoatSpecularIndirect = vec3( 0.0 ); vec3 sheenSpecularDirect = vec3( 0.0 ); vec3 sheenSpecularIndirect = vec3(0.0 ); vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); float x2 = x * x; float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); } float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { float a2 = pow2( alpha ); float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); return 0.5 / max( gv + gl, EPSILON ); } float D_GGX( const in float alpha, const in float dotNH ) { float a2 = pow2( alpha ); float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; return RECIPROCAL_PI * a2 / pow2( denom ); } #ifdef USE_ANISOTROPY float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); return 0.5 / max( gv + gl, EPSILON ); } float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { float a2 = alphaT * alphaB; highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); highp float v2 = dot( v, v ); float w2 = a2 / v2; return RECIPROCAL_PI * a2 * pow2 ( w2 ); } #endif #ifdef USE_CLEARCOAT vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { vec3 f0 = material.clearcoatF0; float f90 = material.clearcoatF90; float roughness = material.clearcoatRoughness; float alpha = pow2( roughness ); vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float dotVH = saturate( dot( viewDir, halfDir ) ); vec3 F = F_Schlick( f0, f90, dotVH ); float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); float D = D_GGX( alpha, dotNH ); return F * ( V * D ); } #endif vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { vec3 f0 = material.specularColorBlended; float f90 = material.specularF90; float roughness = material.roughness; float alpha = pow2( roughness ); vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float dotVH = saturate( dot( viewDir, halfDir ) ); vec3 F = F_Schlick( f0, f90, dotVH ); #ifdef USE_IRIDESCENCE F = mix( F, material.iridescenceFresnel, material.iridescence ); #endif #ifdef USE_ANISOTROPY float dotTL = dot( material.anisotropyT, lightDir ); float dotTV = dot( material.anisotropyT, viewDir ); float dotTH = dot( material.anisotropyT, halfDir ); float dotBL = dot( material.anisotropyB, lightDir ); float dotBV = dot( material.anisotropyB, viewDir ); float dotBH = dot( material.anisotropyB, halfDir ); float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); #else float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); float D = D_GGX( alpha, dotNH ); #endif return F * ( V * D ); } vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { const float LUT_SIZE = 64.0; const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; const float LUT_BIAS = 0.5 / LUT_SIZE; float dotNV = saturate( dot( N, V ) ); vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); uv = uv * LUT_SCALE + LUT_BIAS; return uv; } float LTC_ClippedSphereFormFactor( const in vec3 f ) { float l = length( f ); return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); } vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { float x = dot( v1, v2 ); float y = abs( x ); float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; float b = 3.4175940 + ( 4.1616724 + y ) * y; float v = a / b; float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; return cross( v1, v2 ) * theta_sintheta; } vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; vec3 lightNormal = cross( v1, v2 ); if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); vec3 T1, T2; T1 = normalize( V - N * dot( V, N ) ); T2 = - cross( N, T1 ); mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); vec3 coords[ 4 ]; coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); coords[ 0 ] = normalize( coords[ 0 ] ); coords[ 1 ] = normalize( coords[ 1 ] ); coords[ 2 ] = normalize( coords[ 2 ] ); coords[ 3 ] = normalize( coords[ 3 ] ); vec3 vectorFormFactor = vec3( 0.0 ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); return vec3( result ); } #if defined( USE_SHEEN ) float D_Charlie( float roughness, float dotNH ) { float alpha = pow2( roughness ); float invAlpha = 1.0 / alpha; float cos2h = dotNH * dotNH; float sin2h = max( 1.0 - cos2h, 0.0078125 ); return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); } float V_Neubelt( float dotNV, float dotNL ) { return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); } vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { vec3 halfDir = normalize( lightDir + viewDir ); float dotNL = saturate( dot( normal, lightDir ) ); float dotNV = saturate( dot( normal, viewDir ) ); float dotNH = saturate( dot( normal, halfDir ) ); float D = D_Charlie( sheenRoughness, dotNH ); float V = V_Neubelt( dotNV, dotNL ); return sheenColor * ( D * V ); } #endif float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { float dotNV = saturate( dot( normal, viewDir ) ); float r2 = roughness * roughness; float rInv = 1.0 / ( roughness + 0.1 ); float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv; float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv; float DG = exp( a * dotNV + b ); return saturate( DG ); } vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { float dotNV = saturate( dot( normal, viewDir ) ); vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; return specularColor * fab.x + specularF90 * fab.y; } #ifdef USE_IRIDESCENCE void computeMultiscatteringIridescence( const in vec2 fab, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, inout vec3 singleScatter, inout vec3 multiScatter ) { #else void computeMultiscattering( const in vec2 fab, const in vec3 specularColor, const in float specularF90, inout vec3 singleScatter, inout vec3 multiScatter ) { #endif #ifdef USE_IRIDESCENCE vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); #else vec3 Fr = specularColor; #endif vec3 FssEss = Fr * fab.x + specularF90 * fab.y; float Ess = fab.x + fab.y; float Ems = 1.0 - Ess; vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); singleScatter += FssEss; multiScatter += Fms * Ems; } #if NUM_RECT_AREA_LIGHTS > 0 void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { vec3 normal = geometryNormal; vec3 viewDir = geometryViewDir; vec3 position = geometryPosition; vec3 lightPos = rectAreaLight.position; vec3 halfWidth = rectAreaLight.halfWidth; vec3 halfHeight = rectAreaLight.halfHeight; vec3 lightColor = rectAreaLight.color; float roughness = material.roughness; vec3 rectCoords[ 4 ]; rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; vec2 uv = LTC_Uv( normal, viewDir, roughness ); vec4 t1 = texture2D( ltc_1, uv ); vec4 t2 = texture2D( ltc_2, uv ); mat3 mInv = mat3( vec3( t1.x, 0, t1.y ), vec3( 0, 1, 0 ), vec3( t1.z, 0, t1.w ) ); vec3 fresnel = ( material.specularColorBlended * t2.x + ( material.specularF90 - material.specularColorBlended ) * t2.y ); reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); #ifdef USE_CLEARCOAT vec3 Ncc = geometryClearcoatNormal; vec2 uvClearcoat = LTC_Uv( Ncc, viewDir, material.clearcoatRoughness ); vec4 t1Clearcoat = texture2D( ltc_1, uvClearcoat ); vec4 t2Clearcoat = texture2D( ltc_2, uvClearcoat ); mat3 mInvClearcoat = mat3( vec3( t1Clearcoat.x, 0, t1Clearcoat.y ), vec3( 0, 1, 0 ), vec3( t1Clearcoat.z, 0, t1Clearcoat.w ) ); vec3 fresnelClearcoat = material.clearcoatF0 * t2Clearcoat.x + ( material.clearcoatF90 - material.clearcoatF0 ) * t2Clearcoat.y; clearcoatSpecularDirect += lightColor * fresnelClearcoat * LTC_Evaluate( Ncc, viewDir, position, mInvClearcoat, rectCoords ); #endif } #endif void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); vec3 irradiance = dotNL * directLight.color; #ifdef USE_CLEARCOAT float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); vec3 ccIrradiance = dotNLcc * directLight.color; clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); #endif #ifdef USE_SHEEN sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness ); float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL ); irradiance *= sheenEnergyComp; #endif vec3 specularBRDF = BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); #ifdef USE_RETROREFLECTION vec3 retroViewDir = reflect( - geometryViewDir, geometryNormal ); vec3 retroSpecularBRDF = BRDF_GGX( directLight.direction, retroViewDir, geometryNormal, material ); specularBRDF = mix( specularBRDF, retroSpecularBRDF, saturate( material.retroreflectivity ) ); #endif reflectedLight.directSpecular += irradiance * specularBRDF * material.multiScatteringCompensation; vec3 halfDir = normalize( directLight.direction + geometryViewDir ); float dotVH = saturate( dot( geometryViewDir, halfDir ) ); vec3 F = F_Schlick( material.specularColor, material.specularF90, dotVH ); #ifdef USE_RETROREFLECTION vec3 retroHalfDir = normalize( directLight.direction + retroViewDir ); float dotRetroVH = saturate( dot( retroViewDir, retroHalfDir ) ); vec3 retroF = F_Schlick( material.specularColor, material.specularF90, dotRetroVH ); F = mix( F, retroF, saturate( material.retroreflectivity ) ); #endif reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - F ); } void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { vec3 singleScattering = vec3( 0.0 ); vec3 multiScattering = vec3( 0.0 ); #ifdef USE_IRIDESCENCE computeMultiscatteringIridescence( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScattering, multiScattering ); #else computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScattering, multiScattering ); #endif vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - singleScattering - multiScattering ); #ifdef USE_SHEEN float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); sheenSpecularIndirect += irradiance * material.sheenColor * sheenAlbedo * RECIPROCAL_PI; float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; diffuse *= sheenEnergyComp; #endif reflectedLight.indirectDiffuse += diffuse; } void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { #ifdef USE_CLEARCOAT clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); #endif #ifdef USE_SHEEN sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI; #endif vec3 singleScatteringDielectric = vec3( 0.0 ); vec3 multiScatteringDielectric = vec3( 0.0 ); vec3 singleScatteringMetallic = vec3( 0.0 ); vec3 multiScatteringMetallic = vec3( 0.0 ); #ifdef USE_IRIDESCENCE computeMultiscatteringIridescence( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScatteringDielectric, multiScatteringDielectric ); computeMultiscatteringIridescence( material.dfg, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceF0Metallic, singleScatteringMetallic, multiScatteringMetallic ); #else computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScatteringDielectric, multiScatteringDielectric ); computeMultiscattering( material.dfg, material.diffuseColor, material.specularF90, singleScatteringMetallic, multiScatteringMetallic ); #endif vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness ); vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness ); vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric; vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric ); vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; vec3 indirectSpecular = radiance * singleScattering; indirectSpecular += multiScattering * cosineWeightedIrradiance; vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance; #ifdef USE_SHEEN float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; indirectSpecular *= sheenEnergyComp; indirectDiffuse *= sheenEnergyComp; #endif reflectedLight.indirectSpecular += indirectSpecular; reflectedLight.indirectDiffuse += indirectDiffuse; } #define RE_Direct RE_Direct_Physical #define RE_Direct_RectArea RE_Direct_RectArea_Physical #define RE_IndirectDiffuse RE_IndirectDiffuse_Physical #define RE_IndirectSpecular RE_IndirectSpecular_Physical float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); }`,qY=` vec3 geometryPosition = - vViewPosition; vec3 geometryNormal = normal; vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); vec3 geometryClearcoatNormal = vec3( 0.0 ); #ifdef USE_CLEARCOAT geometryClearcoatNormal = clearcoatNormal; #endif #ifdef USE_IRIDESCENCE float dotNVi = saturate( dot( normal, geometryViewDir ) ); if ( material.iridescenceThickness == 0.0 ) { material.iridescence = 0.0; } else { material.iridescence = saturate( material.iridescence ); } if ( material.iridescence > 0.0 ) { vec3 iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); vec3 iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); material.iridescenceFresnel = mix( iridescenceFresnelDielectric, iridescenceFresnelMetallic, material.metalness ); material.iridescenceF0Dielectric = Schlick_to_F0( iridescenceFresnelDielectric, 1.0, dotNVi ); material.iridescenceF0Metallic = Schlick_to_F0( iridescenceFresnelMetallic, 1.0, dotNVi ); } #endif #ifdef STANDARD float dotNVms = saturate( dot( geometryNormal, geometryViewDir ) ); material.dfg = texture2D( dfgLUT, vec2( material.roughness, dotNVms ) ).rg; #if ( NUM_SUN_LIGHTS > 0 || NUM_DIR_LIGHTS > 0 || NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) float EssMs = material.dfg.x + material.dfg.y; material.multiScatteringCompensation = 1.0 + material.specularColorBlended * ( 1.0 / EssMs - 1.0 ); #endif #endif IncidentLight directLight; #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) PointLight pointLight; #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 PointLightShadow pointLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { pointLight = pointLights[ i ]; getPointLightInfo( pointLight, geometryPosition, directLight ); #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) pointLightShadow = pointLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) SpotLight spotLight; vec4 spotColor; vec3 spotLightCoord; bool inSpotLightMap; #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 SpotLightShadow spotLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { spotLight = spotLights[ i ]; getSpotLightInfo( spotLight, geometryPosition, directLight ); #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS #else #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) #endif #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; #endif #undef SPOT_LIGHT_MAP_INDEX #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) spotLightShadow = spotLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_SUN_LIGHTS > 0 ) && defined( RE_Direct ) SunLight sunLight; #if defined( USE_SHADOWMAP ) && NUM_SUN_LIGHT_SHADOWS > 0 SunLightShadow sunLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_SUN_LIGHTS; i ++ ) { sunLight = sunLights[ i ]; getSunLightInfo( sunLight, directLight ); #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SUN_LIGHT_SHADOWS ) sunLightShadow = sunLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getSunShadow( sunShadowMap[ i ], sunLightShadow, UNROLLED_LOOP_INDEX ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) DirectionalLight directionalLight; #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 DirectionalLightShadow directionalLightShadow; #endif #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { directionalLight = directionalLights[ i ]; getDirectionalLightInfo( directionalLight, directLight ); #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) directionalLightShadow = directionalLightShadows[ i ]; directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; #endif RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) RectAreaLight rectAreaLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { rectAreaLight = rectAreaLights[ i ]; RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); } #pragma unroll_loop_end #endif #if defined( RE_IndirectDiffuse ) vec3 iblIrradiance = vec3( 0.0 ); vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); #if defined( USE_LIGHT_PROBES ) irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); #endif #if ( NUM_HEMI_LIGHTS > 0 ) #pragma unroll_loop_start for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); } #pragma unroll_loop_end #endif #ifdef USE_LIGHT_PROBES_GRID vec3 probeWorldPos = ( ( vec4( geometryPosition, 1.0 ) - viewMatrix[ 3 ] ) * viewMatrix ).xyz; vec3 probeWorldNormal = transformNormalByInverseViewMatrix( geometryNormal, viewMatrix ); irradiance += getLightProbeGridIrradiance( probeWorldPos, probeWorldNormal ); #endif #endif #if defined( RE_IndirectSpecular ) vec3 radiance = vec3( 0.0 ); vec3 clearcoatRadiance = vec3( 0.0 ); #endif`,BY=`#if defined( RE_IndirectDiffuse ) #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; irradiance += lightMapIrradiance; #endif #if defined( USE_ENVMAP ) && defined( ENVMAP_TYPE_CUBE_UV ) #if defined( STANDARD ) || defined( LAMBERT ) || defined( PHONG ) iblIrradiance += getIBLIrradiance( geometryNormal ); #endif #endif #endif #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) #ifdef USE_ANISOTROPY vec3 iblRadiance = getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); #else vec3 iblRadiance = getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); #endif #ifdef USE_RETROREFLECTION #ifdef USE_ANISOTROPY vec3 retroIBLRadiance = getIBLAnisotropyRetroRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); #else vec3 retroIBLRadiance = getIBLRetroRadiance( geometryViewDir, geometryNormal, material.roughness ); #endif iblRadiance = mix( iblRadiance, retroIBLRadiance, saturate( material.retroreflectivity ) ); #endif radiance += iblRadiance; #ifdef USE_CLEARCOAT clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); #endif #endif`,HY=`#if defined( RE_IndirectDiffuse ) #if defined( LAMBERT ) || defined( PHONG ) irradiance += iblIrradiance; #endif RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif #if defined( RE_IndirectSpecular ) RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); #endif`,VY=`#ifdef USE_LIGHT_PROBES_GRID uniform highp sampler3D probesSH; uniform vec3 probesMin; uniform vec3 probesMax; uniform vec3 probesResolution; vec3 getLightProbeGridIrradiance( vec3 worldPos, vec3 worldNormal ) { vec3 res = probesResolution; vec3 gridRange = probesMax - probesMin; vec3 resMinusOne = res - 1.0; vec3 probeSpacing = gridRange / resMinusOne; vec3 samplePos = worldPos + worldNormal * probeSpacing * 0.5; vec3 uvw = clamp( ( samplePos - probesMin ) / gridRange, 0.0, 1.0 ); uvw = uvw * resMinusOne / res + 0.5 / res; float nz = res.z; float paddedSlices = nz + 2.0; float atlasDepth = 7.0 * paddedSlices; float uvZBase = uvw.z * nz + 1.0; vec4 s0 = texture( probesSH, vec3( uvw.xy, ( uvZBase ) / atlasDepth ) ); vec4 s1 = texture( probesSH, vec3( uvw.xy, ( uvZBase + paddedSlices ) / atlasDepth ) ); vec4 s2 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 2.0 * paddedSlices ) / atlasDepth ) ); vec4 s3 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 3.0 * paddedSlices ) / atlasDepth ) ); vec4 s4 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 4.0 * paddedSlices ) / atlasDepth ) ); vec4 s5 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 5.0 * paddedSlices ) / atlasDepth ) ); vec4 s6 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 6.0 * paddedSlices ) / atlasDepth ) ); vec3 c0 = s0.xyz; vec3 c1 = vec3( s0.w, s1.xy ); vec3 c2 = vec3( s1.zw, s2.x ); vec3 c3 = s2.yzw; vec3 c4 = s3.xyz; vec3 c5 = vec3( s3.w, s4.xy ); vec3 c6 = vec3( s4.zw, s5.x ); vec3 c7 = s5.yzw; vec3 c8 = s6.xyz; float x = worldNormal.x, y = worldNormal.y, z = worldNormal.z; vec3 result = c0 * 0.886227; result += c1 * 2.0 * 0.511664 * y; result += c2 * 2.0 * 0.511664 * z; result += c3 * 2.0 * 0.511664 * x; result += c4 * 2.0 * 0.429043 * x * y; result += c5 * 2.0 * 0.429043 * y * z; result += c6 * ( 0.743125 * z * z - 0.247708 ); result += c7 * 2.0 * 0.429043 * x * z; result += c8 * 0.429043 * ( x * x - y * y ); return max( result, vec3( 0.0 ) ); } #endif`,GY=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; #endif`,WY=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) uniform float logDepthBufFC; varying float vFragDepth; varying float vIsPerspective; #endif`,jY=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER varying float vFragDepth; varying float vIsPerspective; #endif`,QY=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER vFragDepth = 1.0 + gl_Position.w; vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); #endif`,XY=`#ifdef USE_MAP vec4 sampledDiffuseColor = texture2D( map, vMapUv ); #ifdef DECODE_VIDEO_TEXTURE sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); #endif diffuseColor *= sampledDiffuseColor; #endif`,YY=`#ifdef USE_MAP uniform sampler2D map; #endif`,KY=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) #if defined( USE_POINTS_UV ) vec2 uv = vUv; #else vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; #endif #endif #ifdef USE_MAP diffuseColor *= texture2D( map, uv ); #endif #ifdef USE_ALPHAMAP diffuseColor.a *= texture2D( alphaMap, uv ).g; #endif`,ZY=`#if defined( USE_POINTS_UV ) varying vec2 vUv; #else #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) uniform mat3 uvTransform; #endif #endif #ifdef USE_MAP uniform sampler2D map; #endif #ifdef USE_ALPHAMAP uniform sampler2D alphaMap; #endif`,$Y=`float metalnessFactor = metalness; #ifdef USE_METALNESSMAP vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); metalnessFactor *= texelMetalness.b; #endif`,JY=`#ifdef USE_METALNESSMAP uniform sampler2D metalnessMap; #endif`,eK=`#ifdef USE_INSTANCING_MORPH float morphTargetInfluences[ MORPHTARGETS_COUNT ]; float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; } #endif`,tK=`#if defined( USE_MORPHCOLORS ) vColor *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { #if defined( USE_COLOR_ALPHA ) if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; #elif defined( USE_COLOR ) if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; #endif } #endif`,nK=`#ifdef USE_MORPHNORMALS objectNormal *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; } #endif`,iK=`#ifdef USE_MORPHTARGETS #ifndef USE_INSTANCING_MORPH uniform float morphTargetBaseInfluence; uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; #endif uniform sampler2DArray morphTargetsTexture; uniform ivec2 morphTargetsTextureSize; vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; int y = texelIndex / morphTargetsTextureSize.x; int x = texelIndex - y * morphTargetsTextureSize.x; ivec3 morphUV = ivec3( x, y, morphTargetIndex ); return texelFetch( morphTargetsTexture, morphUV, 0 ); } #endif`,rK=`#ifdef USE_MORPHTARGETS transformed *= morphTargetBaseInfluence; for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; } #endif`,aK=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; #ifdef FLAT_SHADED vec3 fdx = dFdx( vViewPosition ); vec3 fdy = dFdy( vViewPosition ); vec3 normal = normalize( cross( fdx, fdy ) ); #else vec3 normal = normalize( vNormal ); #ifdef DOUBLE_SIDED normal *= faceDirection; #endif #endif #if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) #ifdef USE_TANGENT mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); #else mat3 tbn = getTangentFrame( - vViewPosition, normal, #if defined( USE_NORMALMAP ) vNormalMapUv #elif defined( USE_CLEARCOAT_NORMALMAP ) vClearcoatNormalMapUv #else vUv #endif ); #endif #ifdef DOUBLE_SIDED tbn[0] *= faceDirection; tbn[1] *= faceDirection; #endif #endif #ifdef USE_CLEARCOAT_NORMALMAP #ifdef USE_TANGENT mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); #else mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); #endif #ifdef DOUBLE_SIDED tbn2[0] *= faceDirection; tbn2[1] *= faceDirection; #endif #endif vec3 nonPerturbedNormal = normal;`,sK=`#ifdef USE_NORMALMAP_OBJECTSPACE normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; #ifdef FLIP_SIDED normal = - normal; #endif #ifdef DOUBLE_SIDED normal = normal * faceDirection; #endif normal = normalize( normalMatrix * normal ); #elif defined( USE_NORMALMAP_TANGENTSPACE ) vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; #if defined( USE_PACKED_NORMALMAP ) mapN = vec3( mapN.xy, sqrt( saturate( 1.0 - dot( mapN.xy, mapN.xy ) ) ) ); #endif mapN.xy *= normalScale; normal = normalize( tbn * mapN ); #elif defined( USE_BUMPMAP ) normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); #endif`,oK=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif #endif`,lK=`#ifndef FLAT_SHADED varying vec3 vNormal; #ifdef USE_TANGENT varying vec3 vTangent; varying vec3 vBitangent; #endif #endif`,uK=`#ifndef FLAT_SHADED vNormal = normalize( transformedNormal ); #ifdef USE_TANGENT vTangent = normalize( transformedTangent ); vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); #ifdef FLIP_SIDED vBitangent = - vBitangent; #endif #endif #endif`,cK=`#ifdef USE_NORMALMAP uniform sampler2D normalMap; uniform vec2 normalScale; #endif #ifdef USE_NORMALMAP_OBJECTSPACE uniform mat3 normalMatrix; #endif #if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { vec3 q0 = dFdx( eye_pos.xyz ); vec3 q1 = dFdy( eye_pos.xyz ); vec2 st0 = dFdx( uv.st ); vec2 st1 = dFdy( uv.st ); vec3 N = surf_norm; vec3 q1perp = cross( q1, N ); vec3 q0perp = cross( N, q0 ); vec3 T = q1perp * st0.x + q0perp * st1.x; vec3 B = q1perp * st0.y + q0perp * st1.y; float det = max( dot( T, T ), dot( B, B ) ); float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); return mat3( T * scale, B * scale, N ); } #endif`,fK=`#ifdef USE_CLEARCOAT vec3 clearcoatNormal = nonPerturbedNormal; #endif`,dK=`#ifdef USE_CLEARCOAT_NORMALMAP vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; clearcoatMapN.xy *= clearcoatNormalScale; clearcoatNormal = normalize( tbn2 * clearcoatMapN ); #endif`,hK=`#ifdef USE_CLEARCOATMAP uniform sampler2D clearcoatMap; #endif #ifdef USE_CLEARCOAT_NORMALMAP uniform sampler2D clearcoatNormalMap; uniform vec2 clearcoatNormalScale; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform sampler2D clearcoatRoughnessMap; #endif`,pK=`#ifdef USE_IRIDESCENCEMAP uniform sampler2D iridescenceMap; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform sampler2D iridescenceThicknessMap; #endif`,mK=`#ifdef OPAQUE diffuseColor.a = 1.0; #endif #ifdef USE_TRANSMISSION diffuseColor.a *= material.transmissionAlpha; #endif gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,_K=`vec3 packNormalToRGB( const in vec3 normal ) { return normalize( normal ) * 0.5 + 0.5; } vec3 unpackRGBToNormal( const in vec3 rgb ) { return 2.0 * rgb.xyz - 1.0; } const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; const float Inv255 = 1. / 255.; const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); vec4 packDepthToRGBA( const in float v ) { if( v <= 0.0 ) return vec4( 0., 0., 0., 0. ); if( v >= 1.0 ) return vec4( 1., 1., 1., 1. ); float vuf; float af = modf( v * PackFactors.a, vuf ); float bf = modf( vuf * ShiftRight8, vuf ); float gf = modf( vuf * ShiftRight8, vuf ); return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); } vec3 packDepthToRGB( const in float v ) { if( v <= 0.0 ) return vec3( 0., 0., 0. ); if( v >= 1.0 ) return vec3( 1., 1., 1. ); float vuf; float bf = modf( v * PackFactors.b, vuf ); float gf = modf( vuf * ShiftRight8, vuf ); return vec3( vuf * Inv255, gf * PackUpscale, bf ); } vec2 packDepthToRG( const in float v ) { if( v <= 0.0 ) return vec2( 0., 0. ); if( v >= 1.0 ) return vec2( 1., 1. ); float vuf; float gf = modf( v * 256., vuf ); return vec2( vuf * Inv255, gf ); } float unpackRGBAToDepth( const in vec4 v ) { return dot( v, UnpackFactors4 ); } float unpackRGBToDepth( const in vec3 v ) { return dot( v, UnpackFactors3 ); } float unpackRGToDepth( const in vec2 v ) { return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; } vec4 pack2HalfToRGBA( const in vec2 v ) { vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); } vec2 unpackRGBATo2Half( const in vec4 v ) { return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); } float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { return ( viewZ + near ) / ( near - far ); } float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { #ifdef USE_REVERSED_DEPTH_BUFFER return depth * ( far - near ) - far; #else return depth * ( near - far ) - near; #endif } float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); } float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { #ifdef USE_REVERSED_DEPTH_BUFFER return ( near * far ) / ( ( near - far ) * depth - near ); #else return ( near * far ) / ( ( far - near ) * depth - far ); #endif }`,gK=`#ifdef PREMULTIPLIED_ALPHA gl_FragColor.rgb *= gl_FragColor.a; #endif`,vK=`vec4 mvPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING mvPosition = batchingMatrix * mvPosition; #endif #ifdef USE_INSTANCING mvPosition = instanceMatrix * mvPosition; #endif mvPosition = modelViewMatrix * mvPosition; gl_Position = projectionMatrix * mvPosition;`,yK=`#ifdef DITHERING gl_FragColor.rgb = dithering( gl_FragColor.rgb ); #endif`,bK=`#ifdef DITHERING vec3 dithering( vec3 color ) { float grid_position = rand( gl_FragCoord.xy ); vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); return color + dither_shift_RGB; } #endif`,SK=`float roughnessFactor = roughness; #ifdef USE_ROUGHNESSMAP vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); roughnessFactor *= texelRoughness.g; #endif`,EK=`#ifdef USE_ROUGHNESSMAP uniform sampler2D roughnessMap; #endif`,wK=`#if NUM_SPOT_LIGHT_COORDS > 0 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #if NUM_SPOT_LIGHT_MAPS > 0 uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; #endif #ifdef USE_SHADOWMAP #if NUM_SUN_LIGHT_SHADOWS > 0 #define SUN_LIGHT_CASCADES 2 #if defined( SHADOWMAP_TYPE_PCF ) uniform sampler2DShadow sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ]; #else uniform sampler2D sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ]; #endif uniform mat4 sunShadowMatrix[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ]; uniform vec4 sunShadowCascade[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ]; varying vec4 vSunShadowWorldPosition; varying vec3 vSunShadowWorldNormal; struct SunLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform SunLightShadow sunLightShadows[ NUM_SUN_LIGHT_SHADOWS ]; #endif #if NUM_DIR_LIGHT_SHADOWS > 0 #if defined( SHADOWMAP_TYPE_PCF ) uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; #else uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; #endif varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; struct DirectionalLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 #if defined( SHADOWMAP_TYPE_PCF ) uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; #else uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; #endif struct SpotLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; #endif #if NUM_POINT_LIGHT_SHADOWS > 0 #if defined( SHADOWMAP_TYPE_PCF ) uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; #elif defined( SHADOWMAP_TYPE_BASIC ) uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; #endif varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; struct PointLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; float shadowCameraNear; float shadowCameraFar; }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif #if defined( SHADOWMAP_TYPE_PCF ) float interleavedGradientNoise( vec2 position ) { return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) ); } vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) { const float goldenAngle = 2.399963229728653; float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) ); float theta = float( sampleIndex ) * goldenAngle + phi; return vec2( cos( theta ), sin( theta ) ) * r; } #endif #if defined( SHADOWMAP_TYPE_PCF ) float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { float shadow = 1.0; shadowCoord.xyz /= shadowCoord.w; shadowCoord.z += shadowBias; bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; bool frustumTest = inFrustum && shadowCoord.z <= 1.0; if ( frustumTest ) { vec2 texelSize = vec2( 1.0 ) / shadowMapSize; float radius = shadowRadius * texelSize.x; float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; shadow = ( texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) ) ) * 0.2; } return mix( 1.0, shadow, shadowIntensity ); } #elif defined( SHADOWMAP_TYPE_VSM ) float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { float shadow = 1.0; shadowCoord.xyz /= shadowCoord.w; #ifdef USE_REVERSED_DEPTH_BUFFER shadowCoord.z -= shadowBias; #else shadowCoord.z += shadowBias; #endif bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; bool frustumTest = inFrustum && shadowCoord.z <= 1.0; if ( frustumTest ) { vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg; float mean = distribution.x; float variance = distribution.y * distribution.y; #ifdef USE_REVERSED_DEPTH_BUFFER float hard_shadow = step( mean, shadowCoord.z ); #else float hard_shadow = step( shadowCoord.z, mean ); #endif if ( hard_shadow == 1.0 ) { shadow = 1.0; } else { variance = max( variance, 0.0000001 ); float d = shadowCoord.z - mean; float p_max = variance / ( variance + d * d ); p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 ); shadow = max( hard_shadow, p_max ); } } return mix( 1.0, shadow, shadowIntensity ); } #else float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { float shadow = 1.0; shadowCoord.xyz /= shadowCoord.w; #ifdef USE_REVERSED_DEPTH_BUFFER shadowCoord.z -= shadowBias; #else shadowCoord.z += shadowBias; #endif bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; bool frustumTest = inFrustum && shadowCoord.z <= 1.0; if ( frustumTest ) { float depth = texture2D( shadowMap, shadowCoord.xy ).r; #ifdef USE_REVERSED_DEPTH_BUFFER shadow = step( depth, shadowCoord.z ); #else shadow = step( shadowCoord.z, depth ); #endif } return mix( 1.0, shadow, shadowIntensity ); } #endif #if NUM_SUN_LIGHT_SHADOWS > 0 float getSunShadow( #if defined( SHADOWMAP_TYPE_PCF ) sampler2DShadow shadowMap, #else sampler2D shadowMap, #endif SunLightShadow sunLightShadow, int shadowIndex ) { vec4 shadowWorldPosition = vec4( vSunShadowWorldPosition.xyz + vSunShadowWorldNormal * sunLightShadow.shadowNormalBias, 1.0 ); float viewDepth = vSunShadowWorldPosition.w; int cascadeOffset = shadowIndex * SUN_LIGHT_CASCADES; float shadow = 1.0; for ( int i = SUN_LIGHT_CASCADES - 1; i >= 0; i -- ) { vec4 cascade = sunShadowCascade[ cascadeOffset + i ]; if ( viewDepth >= cascade.x && viewDepth < cascade.y ) { float cascadeShadow = getShadow( shadowMap, sunLightShadow.shadowMapSize, sunLightShadow.shadowIntensity, sunLightShadow.shadowBias, sunLightShadow.shadowRadius, sunShadowMatrix[ cascadeOffset + i ] * shadowWorldPosition ); shadow = mix( cascadeShadow, shadow, smoothstep( cascade.z, cascade.y, viewDepth ) ); } } return shadow; } #endif #if NUM_POINT_LIGHT_SHADOWS > 0 #if defined( SHADOWMAP_TYPE_PCF ) float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { float shadow = 1.0; vec3 lightToPosition = shadowCoord.xyz; vec3 bd3D = normalize( lightToPosition ); vec3 absVec = abs( lightToPosition ); float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { #ifdef USE_REVERSED_DEPTH_BUFFER float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); dp -= shadowBias; #else float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); dp += shadowBias; #endif float texelSize = shadowRadius / shadowMapSize.x; vec3 absDir = abs( bd3D ); vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 ); tangent = normalize( cross( bd3D, tangent ) ); vec3 bitangent = cross( bd3D, tangent ); float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; vec2 sample0 = vogelDiskSample( 0, 5, phi ); vec2 sample1 = vogelDiskSample( 1, 5, phi ); vec2 sample2 = vogelDiskSample( 2, 5, phi ); vec2 sample3 = vogelDiskSample( 3, 5, phi ); vec2 sample4 = vogelDiskSample( 4, 5, phi ); shadow = ( texture( shadowMap, vec4( bd3D + ( tangent * sample0.x + bitangent * sample0.y ) * texelSize, dp ) ) + texture( shadowMap, vec4( bd3D + ( tangent * sample1.x + bitangent * sample1.y ) * texelSize, dp ) ) + texture( shadowMap, vec4( bd3D + ( tangent * sample2.x + bitangent * sample2.y ) * texelSize, dp ) ) + texture( shadowMap, vec4( bd3D + ( tangent * sample3.x + bitangent * sample3.y ) * texelSize, dp ) ) + texture( shadowMap, vec4( bd3D + ( tangent * sample4.x + bitangent * sample4.y ) * texelSize, dp ) ) ) * 0.2; } return mix( 1.0, shadow, shadowIntensity ); } #elif defined( SHADOWMAP_TYPE_BASIC ) float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { float shadow = 1.0; vec3 lightToPosition = shadowCoord.xyz; vec3 absVec = abs( lightToPosition ); float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); dp += shadowBias; vec3 bd3D = normalize( lightToPosition ); float depth = textureCube( shadowMap, bd3D ).r; #ifdef USE_REVERSED_DEPTH_BUFFER depth = 1.0 - depth; #endif shadow = step( dp, depth ); } return mix( 1.0, shadow, shadowIntensity ); } #endif #endif #endif`,xK=`#if NUM_SPOT_LIGHT_COORDS > 0 uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; #endif #ifdef USE_SHADOWMAP #if NUM_SUN_LIGHT_SHADOWS > 0 varying vec4 vSunShadowWorldPosition; varying vec3 vSunShadowWorldNormal; #endif #if NUM_DIR_LIGHT_SHADOWS > 0 uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; struct DirectionalLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 struct SpotLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; }; uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; #endif #if NUM_POINT_LIGHT_SHADOWS > 0 uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; struct PointLightShadow { float shadowIntensity; float shadowBias; float shadowNormalBias; float shadowRadius; vec2 shadowMapSize; float shadowCameraNear; float shadowCameraFar; }; uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; #endif #endif`,TK=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SUN_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) #ifdef HAS_NORMAL vec3 shadowWorldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); #else vec3 shadowWorldNormal = vec3( 0.0 ); #endif vec4 shadowWorldPosition; #endif #if defined( USE_SHADOWMAP ) #if NUM_SUN_LIGHT_SHADOWS > 0 vSunShadowWorldPosition = vec4( worldPosition.xyz, - mvPosition.z ); vSunShadowWorldNormal = shadowWorldNormal; #endif #if NUM_DIR_LIGHT_SHADOWS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif #if NUM_POINT_LIGHT_SHADOWS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif #endif #if NUM_SPOT_LIGHT_COORDS > 0 #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { shadowWorldPosition = worldPosition; #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; #endif vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; } #pragma unroll_loop_end #endif`,MK=`float getShadowMask() { float shadow = 1.0; #ifdef USE_SHADOWMAP #if NUM_SUN_LIGHT_SHADOWS > 0 SunLightShadow sunLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_SUN_LIGHT_SHADOWS; i ++ ) { sunLight = sunLightShadows[ i ]; shadow *= receiveShadow ? getSunShadow( sunShadowMap[ i ], sunLight, UNROLLED_LOOP_INDEX ) : 1.0; } #pragma unroll_loop_end #endif #if NUM_DIR_LIGHT_SHADOWS > 0 DirectionalLightShadow directionalLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { directionalLight = directionalLightShadows[ i ]; shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; } #pragma unroll_loop_end #endif #if NUM_SPOT_LIGHT_SHADOWS > 0 SpotLightShadow spotLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { spotLight = spotLightShadows[ i ]; shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; } #pragma unroll_loop_end #endif #if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) PointLightShadow pointLight; #pragma unroll_loop_start for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { pointLight = pointLightShadows[ i ]; shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; } #pragma unroll_loop_end #endif #endif return shadow; }`,AK=`#ifdef USE_SKINNING mat4 boneMatX = getBoneMatrix( skinIndex.x ); mat4 boneMatY = getBoneMatrix( skinIndex.y ); mat4 boneMatZ = getBoneMatrix( skinIndex.z ); mat4 boneMatW = getBoneMatrix( skinIndex.w ); #endif`,CK=`#ifdef USE_SKINNING uniform mat4 bindMatrix; uniform mat4 bindMatrixInverse; uniform highp sampler2D boneTexture; mat4 getBoneMatrix( const in float i ) { int size = textureSize( boneTexture, 0 ).x; int j = int( i ) * 4; int x = j % size; int y = j / size; vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); return mat4( v1, v2, v3, v4 ); } #endif`,RK=`#ifdef USE_SKINNING vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); vec4 skinned = vec4( 0.0 ); skinned += boneMatX * skinVertex * skinWeight.x; skinned += boneMatY * skinVertex * skinWeight.y; skinned += boneMatZ * skinVertex * skinWeight.z; skinned += boneMatW * skinVertex * skinWeight.w; transformed = ( bindMatrixInverse * skinned ).xyz; #endif`,IK=`#ifdef USE_SKINNING mat4 skinMatrix = mat4( 0.0 ); skinMatrix += skinWeight.x * boneMatX; skinMatrix += skinWeight.y * boneMatY; skinMatrix += skinWeight.z * boneMatZ; skinMatrix += skinWeight.w * boneMatW; skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; #ifdef USE_TANGENT objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; #endif #endif`,LK=`float specularStrength; #ifdef USE_SPECULARMAP vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); specularStrength = texelSpecular.r; #else specularStrength = 1.0; #endif`,NK=`#ifdef USE_SPECULARMAP uniform sampler2D specularMap; #endif`,kK=`#if defined( TONE_MAPPING ) gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); #endif`,OK=`#ifndef saturate #define saturate( a ) clamp( a, 0.0, 1.0 ) #endif uniform float toneMappingExposure; vec3 LinearToneMapping( vec3 color ) { return saturate( toneMappingExposure * color ); } vec3 ReinhardToneMapping( vec3 color ) { color *= toneMappingExposure; return saturate( color / ( vec3( 1.0 ) + color ) ); } vec3 CineonToneMapping( vec3 color ) { color *= toneMappingExposure; color = max( vec3( 0.0 ), color - 0.004 ); return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); } vec3 RRTAndODTFit( vec3 v ) { vec3 a = v * ( v + 0.0245786 ) - 0.000090537; vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; return a / b; } vec3 ACESFilmicToneMapping( vec3 color ) { const mat3 ACESInputMat = mat3( vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), vec3( 0.04823, 0.01566, 0.83777 ) ); const mat3 ACESOutputMat = mat3( vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), vec3( -0.07367, -0.00605, 1.07602 ) ); color *= toneMappingExposure / 0.6; color = ACESInputMat * color; color = RRTAndODTFit( color ); color = ACESOutputMat * color; return saturate( color ); } const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( vec3( 1.6605, - 0.1246, - 0.0182 ), vec3( - 0.5876, 1.1329, - 0.1006 ), vec3( - 0.0728, - 0.0083, 1.1187 ) ); const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( vec3( 0.6274, 0.0691, 0.0164 ), vec3( 0.3293, 0.9195, 0.0880 ), vec3( 0.0433, 0.0113, 0.8956 ) ); vec3 agxDefaultContrastApprox( vec3 x ) { vec3 x2 = x * x; vec3 x4 = x2 * x2; return + 15.5 * x4 * x2 - 40.14 * x4 * x + 31.96 * x4 - 6.868 * x2 * x + 0.4298 * x2 + 0.1191 * x - 0.00232; } vec3 AgXToneMapping( vec3 color ) { const mat3 AgXInsetMatrix = mat3( vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) ); const mat3 AgXOutsetMatrix = mat3( vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) ); const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; color *= toneMappingExposure; color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; color = AgXInsetMatrix * color; color = max( color, 1e-10 ); color = log2( color ); color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); color = clamp( color, 0.0, 1.0 ); color = agxDefaultContrastApprox( color ); color = AgXOutsetMatrix * color; color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); color = LINEAR_REC2020_TO_LINEAR_SRGB * color; color = clamp( color, 0.0, 1.0 ); return color; } vec3 NeutralToneMapping( vec3 color ) { const float StartCompression = 0.8 - 0.04; const float Desaturation = 0.15; color *= toneMappingExposure; float x = min( color.r, min( color.g, color.b ) ); float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; color -= offset; float peak = max( color.r, max( color.g, color.b ) ); if ( peak < StartCompression ) return color; float d = 1. - StartCompression; float newPeak = 1. - d * d / ( peak + d - StartCompression ); color *= newPeak / peak; float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); return mix( color, vec3( newPeak ), g ); } vec3 CustomToneMapping( vec3 color ) { return color; }`,DK=`#ifdef USE_TRANSMISSION material.transmission = transmission; material.transmissionAlpha = 1.0; material.thickness = thickness; material.attenuationDistance = attenuationDistance; material.attenuationColor = attenuationColor; #ifdef USE_TRANSMISSIONMAP material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; #endif #ifdef USE_THICKNESSMAP material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; #endif vec3 pos = vWorldPosition; vec3 v = normalize( cameraPosition - pos ); vec3 n = transformNormalByInverseViewMatrix( normal, viewMatrix ); vec4 transmitted = getIBLVolumeRefraction( n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90, pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, material.attenuationColor, material.attenuationDistance ); material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); #endif`,FK=`#ifdef USE_TRANSMISSION uniform float transmission; uniform float thickness; uniform float attenuationDistance; uniform vec3 attenuationColor; #ifdef USE_TRANSMISSIONMAP uniform sampler2D transmissionMap; #endif #ifdef USE_THICKNESSMAP uniform sampler2D thicknessMap; #endif uniform vec2 transmissionSamplerSize; uniform sampler2D transmissionSamplerMap; uniform mat4 modelMatrix; uniform mat4 projectionMatrix; varying vec3 vWorldPosition; float w0( float a ) { return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); } float w1( float a ) { return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); } float w2( float a ){ return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); } float w3( float a ) { return ( 1.0 / 6.0 ) * ( a * a * a ); } float g0( float a ) { return w0( a ) + w1( a ); } float g1( float a ) { return w2( a ) + w3( a ); } float h0( float a ) { return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); } float h1( float a ) { return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); } vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { uv = uv * texelSize.zw + 0.5; vec2 iuv = floor( uv ); vec2 fuv = fract( uv ); float g0x = g0( fuv.x ); float g1x = g1( fuv.x ); float h0x = h0( fuv.x ); float h1x = h1( fuv.x ); float h0y = h0( fuv.y ); float h1y = h1( fuv.y ); vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); } vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); vec2 fLodSizeInv = 1.0 / fLodSize; vec2 cLodSizeInv = 1.0 / cLodSize; vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); return mix( fSample, cSample, fract( lod ) ); } vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); vec3 modelScale; modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); return normalize( refractionVector ) * thickness * modelScale; } float applyIorToRoughness( const in float roughness, const in float ior ) { return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); } vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); } vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { if ( isinf( attenuationDistance ) ) { return vec3( 1.0 ); } else { vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; } } vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, const in vec3 attenuationColor, const in float attenuationDistance ) { vec4 transmittedLight; vec3 transmittance; #ifdef USE_DISPERSION float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); for ( int i = 0; i < 3; i ++ ) { vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); vec3 refractedRayExit = position + transmissionRay; vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); vec2 refractionCoords = ndcPos.xy / ndcPos.w; refractionCoords += 1.0; refractionCoords /= 2.0; vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); transmittedLight[ i ] = transmissionSample[ i ]; transmittedLight.a += transmissionSample.a; transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; } transmittedLight.a /= 3.0; #else vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); vec3 refractedRayExit = position + transmissionRay; vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); vec2 refractionCoords = ndcPos.xy / ndcPos.w; refractionCoords += 1.0; refractionCoords /= 2.0; transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); #endif vec3 attenuatedColor = transmittance * transmittedLight.rgb; vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); } #endif`,PK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP varying vec2 vMapUv; #endif #ifdef USE_ALPHAMAP varying vec2 vAlphaMapUv; #endif #ifdef USE_LIGHTMAP varying vec2 vLightMapUv; #endif #ifdef USE_AOMAP varying vec2 vAoMapUv; #endif #ifdef USE_BUMPMAP varying vec2 vBumpMapUv; #endif #ifdef USE_NORMALMAP varying vec2 vNormalMapUv; #endif #ifdef USE_EMISSIVEMAP varying vec2 vEmissiveMapUv; #endif #ifdef USE_METALNESSMAP varying vec2 vMetalnessMapUv; #endif #ifdef USE_ROUGHNESSMAP varying vec2 vRoughnessMapUv; #endif #ifdef USE_ANISOTROPYMAP varying vec2 vAnisotropyMapUv; #endif #ifdef USE_CLEARCOATMAP varying vec2 vClearcoatMapUv; #endif #ifdef USE_CLEARCOAT_NORMALMAP varying vec2 vClearcoatNormalMapUv; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP varying vec2 vClearcoatRoughnessMapUv; #endif #ifdef USE_IRIDESCENCEMAP varying vec2 vIridescenceMapUv; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP varying vec2 vIridescenceThicknessMapUv; #endif #ifdef USE_SHEEN_COLORMAP varying vec2 vSheenColorMapUv; #endif #ifdef USE_SHEEN_ROUGHNESSMAP varying vec2 vSheenRoughnessMapUv; #endif #ifdef USE_SPECULARMAP varying vec2 vSpecularMapUv; #endif #ifdef USE_SPECULAR_COLORMAP varying vec2 vSpecularColorMapUv; #endif #ifdef USE_SPECULAR_INTENSITYMAP varying vec2 vSpecularIntensityMapUv; #endif #ifdef USE_TRANSMISSIONMAP uniform mat3 transmissionMapTransform; varying vec2 vTransmissionMapUv; #endif #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; #endif`,UK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) varying vec2 vUv; #endif #ifdef USE_MAP uniform mat3 mapTransform; varying vec2 vMapUv; #endif #ifdef USE_ALPHAMAP uniform mat3 alphaMapTransform; varying vec2 vAlphaMapUv; #endif #ifdef USE_LIGHTMAP uniform mat3 lightMapTransform; varying vec2 vLightMapUv; #endif #ifdef USE_AOMAP uniform mat3 aoMapTransform; varying vec2 vAoMapUv; #endif #ifdef USE_BUMPMAP uniform mat3 bumpMapTransform; varying vec2 vBumpMapUv; #endif #ifdef USE_NORMALMAP uniform mat3 normalMapTransform; varying vec2 vNormalMapUv; #endif #ifdef USE_DISPLACEMENTMAP uniform mat3 displacementMapTransform; varying vec2 vDisplacementMapUv; #endif #ifdef USE_EMISSIVEMAP uniform mat3 emissiveMapTransform; varying vec2 vEmissiveMapUv; #endif #ifdef USE_METALNESSMAP uniform mat3 metalnessMapTransform; varying vec2 vMetalnessMapUv; #endif #ifdef USE_ROUGHNESSMAP uniform mat3 roughnessMapTransform; varying vec2 vRoughnessMapUv; #endif #ifdef USE_ANISOTROPYMAP uniform mat3 anisotropyMapTransform; varying vec2 vAnisotropyMapUv; #endif #ifdef USE_CLEARCOATMAP uniform mat3 clearcoatMapTransform; varying vec2 vClearcoatMapUv; #endif #ifdef USE_CLEARCOAT_NORMALMAP uniform mat3 clearcoatNormalMapTransform; varying vec2 vClearcoatNormalMapUv; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP uniform mat3 clearcoatRoughnessMapTransform; varying vec2 vClearcoatRoughnessMapUv; #endif #ifdef USE_SHEEN_COLORMAP uniform mat3 sheenColorMapTransform; varying vec2 vSheenColorMapUv; #endif #ifdef USE_SHEEN_ROUGHNESSMAP uniform mat3 sheenRoughnessMapTransform; varying vec2 vSheenRoughnessMapUv; #endif #ifdef USE_IRIDESCENCEMAP uniform mat3 iridescenceMapTransform; varying vec2 vIridescenceMapUv; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP uniform mat3 iridescenceThicknessMapTransform; varying vec2 vIridescenceThicknessMapUv; #endif #ifdef USE_SPECULARMAP uniform mat3 specularMapTransform; varying vec2 vSpecularMapUv; #endif #ifdef USE_SPECULAR_COLORMAP uniform mat3 specularColorMapTransform; varying vec2 vSpecularColorMapUv; #endif #ifdef USE_SPECULAR_INTENSITYMAP uniform mat3 specularIntensityMapTransform; varying vec2 vSpecularIntensityMapUv; #endif #ifdef USE_TRANSMISSIONMAP uniform mat3 transmissionMapTransform; varying vec2 vTransmissionMapUv; #endif #ifdef USE_THICKNESSMAP uniform mat3 thicknessMapTransform; varying vec2 vThicknessMapUv; #endif`,zK=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) vUv = vec3( uv, 1 ).xy; #endif #ifdef USE_MAP vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; #endif #ifdef USE_ALPHAMAP vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; #endif #ifdef USE_LIGHTMAP vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; #endif #ifdef USE_AOMAP vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; #endif #ifdef USE_BUMPMAP vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; #endif #ifdef USE_NORMALMAP vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; #endif #ifdef USE_DISPLACEMENTMAP vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; #endif #ifdef USE_EMISSIVEMAP vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; #endif #ifdef USE_METALNESSMAP vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_ROUGHNESSMAP vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_ANISOTROPYMAP vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOATMAP vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOAT_NORMALMAP vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; #endif #ifdef USE_CLEARCOAT_ROUGHNESSMAP vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_IRIDESCENCEMAP vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; #endif #ifdef USE_IRIDESCENCE_THICKNESSMAP vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_SHEEN_COLORMAP vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; #endif #ifdef USE_SHEEN_ROUGHNESSMAP vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULARMAP vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULAR_COLORMAP vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; #endif #ifdef USE_SPECULAR_INTENSITYMAP vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; #endif #ifdef USE_TRANSMISSIONMAP vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; #endif #ifdef USE_THICKNESSMAP vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; #endif`,qK=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 vec4 worldPosition = vec4( transformed, 1.0 ); #ifdef USE_BATCHING worldPosition = batchingMatrix * worldPosition; #endif #ifdef USE_INSTANCING worldPosition = instanceMatrix * worldPosition; #endif worldPosition = modelMatrix * worldPosition; #endif`,BK=`varying vec2 vUv; uniform mat3 uvTransform; void main() { vUv = ( uvTransform * vec3( uv, 1 ) ).xy; gl_Position = vec4( position.xy, 1.0, 1.0 ); }`,HK=`uniform sampler2D t2D; uniform float backgroundIntensity; varying vec2 vUv; void main() { vec4 texColor = texture2D( t2D, vUv ); #ifdef DECODE_VIDEO_TEXTURE texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); #endif texColor.rgb *= backgroundIntensity; gl_FragColor = texColor; #include #include }`,VK=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; }`,GK=`#ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #elif defined( ENVMAP_TYPE_CUBE_UV ) uniform sampler2D envMap; #endif uniform float backgroundBlurriness; uniform float backgroundIntensity; uniform mat3 backgroundRotation; varying vec3 vWorldDirection; #include void main() { #ifdef ENVMAP_TYPE_CUBE vec4 texColor = textureCube( envMap, backgroundRotation * vWorldDirection ); #elif defined( ENVMAP_TYPE_CUBE_UV ) vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); #else vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); #endif texColor.rgb *= backgroundIntensity; gl_FragColor = texColor; #include #include }`,WK=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include gl_Position.z = gl_Position.w; }`,jK=`uniform samplerCube tCube; uniform float tFlip; uniform float opacity; varying vec3 vWorldDirection; void main() { vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); gl_FragColor = texColor; gl_FragColor.a *= opacity; #include #include }`,QK=`#include #include #include #include #include #include #include #include varying vec2 vHighPrecisionZW; void main() { #include #include #include #include #ifdef USE_DISPLACEMENTMAP #include #include #include #endif #include #include #include #include #include #include #include vHighPrecisionZW = gl_Position.zw; }`,XK=`#if DEPTH_PACKING == 3200 uniform float opacity; #endif #include #include #include #include #include #include #include #include #include varying vec2 vHighPrecisionZW; void main() { vec4 diffuseColor = vec4( 1.0 ); #include #if DEPTH_PACKING == 3200 diffuseColor.a = opacity; #endif #include #include #include #include #include #ifdef USE_REVERSED_DEPTH_BUFFER float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; #else float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; #endif #if DEPTH_PACKING == 3200 gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); #elif DEPTH_PACKING == 3201 gl_FragColor = packDepthToRGBA( fragCoordZ ); #elif DEPTH_PACKING == 3202 gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); #elif DEPTH_PACKING == 3203 gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); #endif }`,YK=`#define DISTANCE varying vec3 vWorldPosition; #include #include #include #include #include #include #include void main() { #include #include #include #include #ifdef USE_DISPLACEMENTMAP #include #include #include #endif #include #include #include #include #include #include #include vWorldPosition = worldPosition.xyz; }`,KK=`#define DISTANCE uniform vec3 referencePosition; uniform float nearDistance; uniform float farDistance; varying vec3 vWorldPosition; #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( 1.0 ); #include #include #include #include #include float dist = length( vWorldPosition - referencePosition ); dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); dist = saturate( dist ); gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 ); }`,ZK=`varying vec3 vWorldDirection; #include void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include }`,$K=`uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); #include #include }`,JK=`uniform float scale; attribute float lineDistance; varying float vLineDistance; #include #include #include #include #include #include #include void main() { vLineDistance = scale * lineDistance; #include #include #include #include #include #include #include #include #include #include }`,eZ=`uniform vec3 diffuse; uniform float opacity; uniform float dashSize; uniform float totalSize; varying float vLineDistance; #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include if ( mod( vLineDistance, totalSize ) > dashSize ) { discard; } vec3 outgoingLight = vec3( 0.0 ); #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include #include }`,tZ=`#include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include }`,nZ=`uniform vec3 diffuse; uniform float opacity; #ifndef FLAT_SHADED varying vec3 vNormal; #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include #include #include #include #include #include #include #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); #ifdef USE_LIGHTMAP vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; #else reflectedLight.indirectDiffuse += vec3( 1.0 ); #endif #include reflectedLight.indirectDiffuse *= diffuseColor.rgb; vec3 outgoingLight = reflectedLight.indirectDiffuse; #include #include #include #include #include #include #include }`,iZ=`#define LAMBERT varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #include }`,rZ=`#define LAMBERT uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; #include #include #include #include #include #include #include }`,aZ=`#define MATCAP varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; }`,sZ=`#define MATCAP uniform vec3 diffuse; uniform float opacity; uniform sampler2D matcap; varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include #include #include #include #include #include #include #include #include vec3 viewDir = normalize( vViewPosition ); vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); vec3 y = cross( viewDir, x ); vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; #ifdef USE_MATCAP vec4 matcapColor = texture2D( matcap, uv ); #else vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); #endif vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; #include #include #include #include #include #include }`,oZ=`#define NORMAL #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) vViewPosition = - mvPosition.xyz; #endif }`,lZ=`#define NORMAL uniform float opacity; #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) varying vec3 vViewPosition; #endif #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); #include #include #include #include gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a ); #ifdef OPAQUE gl_FragColor.a = 1.0; #endif }`,uZ=`#define PHONG varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #include }`,cZ=`#define PHONG uniform vec3 diffuse; uniform vec3 emissive; uniform vec3 specular; uniform float shininess; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; #include #include #include #include #include #include #include }`,fZ=`#define STANDARD varying vec3 vViewPosition; #ifdef USE_TRANSMISSION varying vec3 vWorldPosition; #endif #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include #ifdef USE_TRANSMISSION vWorldPosition = worldPosition.xyz; #endif }`,dZ=`#define STANDARD #ifdef PHYSICAL #define IOR #define USE_SPECULAR #endif uniform vec3 diffuse; uniform vec3 emissive; uniform float roughness; uniform float metalness; uniform float opacity; #ifdef IOR uniform float ior; #endif #ifdef USE_SPECULAR uniform float specularIntensity; uniform vec3 specularColor; #ifdef USE_SPECULAR_COLORMAP uniform sampler2D specularColorMap; #endif #ifdef USE_SPECULAR_INTENSITYMAP uniform sampler2D specularIntensityMap; #endif #endif #ifdef USE_CLEARCOAT uniform float clearcoat; uniform float clearcoatRoughness; #endif #ifdef USE_DISPERSION uniform float dispersion; #endif #ifdef USE_RETROREFLECTION uniform float retroreflectivity; #endif #ifdef USE_IRIDESCENCE uniform float iridescence; uniform float iridescenceIOR; uniform float iridescenceThicknessMinimum; uniform float iridescenceThicknessMaximum; #endif #ifdef USE_SHEEN uniform vec3 sheenColor; uniform float sheenRoughness; #ifdef USE_SHEEN_COLORMAP uniform sampler2D sheenColorMap; #endif #ifdef USE_SHEEN_ROUGHNESSMAP uniform sampler2D sheenRoughnessMap; #endif #endif #ifdef USE_ANISOTROPY uniform vec2 anisotropyVector; #ifdef USE_ANISOTROPYMAP uniform sampler2D anisotropyMap; #endif #endif varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; #include vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; #ifdef USE_SHEEN outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect; #endif #ifdef USE_CLEARCOAT float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; #endif #include #include #include #include #include #include }`,hZ=`#define TOON varying vec3 vViewPosition; #include #include #include #include #include #include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vViewPosition = - mvPosition.xyz; #include #include #include }`,pZ=`#define TOON uniform vec3 diffuse; uniform vec3 emissive; uniform float opacity; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #include #include #include #include #include #include #include #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; #include #include #include #include #include #include }`,mZ=`uniform float size; uniform float scale; #include #include #include #include #include #include #ifdef USE_POINTS_UV varying vec2 vUv; uniform mat3 uvTransform; #endif void main() { #ifdef USE_POINTS_UV vUv = ( uvTransform * vec3( uv, 1 ) ).xy; #endif #include #include #include #include #include #include gl_PointSize = size; #ifdef USE_SIZEATTENUATION bool isPerspective = isPerspectiveMatrix( projectionMatrix ); if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); #endif #include #include #include #include }`,_Z=`uniform vec3 diffuse; uniform float opacity; #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include vec3 outgoingLight = vec3( 0.0 ); #include #include #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include #include }`,gZ=`#include #include #include #include #include #include #include void main() { #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include }`,vZ=`uniform vec3 color; uniform float opacity; #include #include #include #include #include #include #include void main() { #include gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); #include #include #include #include }`,yZ=`uniform float rotation; uniform vec2 center; #include #include #include #include #include void main() { #include vec4 mvPosition = modelViewMatrix[ 3 ]; vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); #ifndef USE_SIZEATTENUATION bool isPerspective = isPerspectiveMatrix( projectionMatrix ); if ( isPerspective ) scale *= - mvPosition.z; #endif vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; vec2 rotatedPosition; rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; mvPosition.xy += rotatedPosition; gl_Position = projectionMatrix * mvPosition; #include #include #include }`,bZ=`uniform vec3 diffuse; uniform float opacity; #include #include #include #include #include #include #include #include #include void main() { vec4 diffuseColor = vec4( diffuse, opacity ); #include vec3 outgoingLight = vec3( 0.0 ); #include #include #include #include #include outgoingLight = diffuseColor.rgb; #include #include #include #include }`,Bn={alphahash_fragment:BX,alphahash_pars_fragment:HX,alphamap_fragment:VX,alphamap_pars_fragment:GX,alphatest_fragment:WX,alphatest_pars_fragment:jX,aomap_fragment:QX,aomap_pars_fragment:XX,batching_pars_vertex:YX,batching_vertex:KX,begin_vertex:ZX,beginnormal_vertex:$X,bsdfs:JX,iridescence_fragment:eY,bumpmap_pars_fragment:tY,clipping_planes_fragment:nY,clipping_planes_pars_fragment:iY,clipping_planes_pars_vertex:rY,clipping_planes_vertex:aY,color_fragment:sY,color_pars_fragment:oY,color_pars_vertex:lY,color_vertex:uY,common:cY,cube_uv_reflection_fragment:fY,defaultnormal_vertex:dY,displacementmap_pars_vertex:hY,displacementmap_vertex:pY,emissivemap_fragment:mY,emissivemap_pars_fragment:_Y,colorspace_fragment:gY,colorspace_pars_fragment:vY,envmap_fragment:yY,envmap_common_pars_fragment:bY,envmap_pars_fragment:SY,envmap_pars_vertex:EY,envmap_physical_pars_fragment:kY,envmap_vertex:wY,fog_vertex:xY,fog_pars_vertex:TY,fog_fragment:MY,fog_pars_fragment:AY,gradientmap_pars_fragment:CY,lightmap_pars_fragment:RY,lights_lambert_fragment:IY,lights_lambert_pars_fragment:LY,lights_pars_begin:NY,lights_toon_fragment:OY,lights_toon_pars_fragment:DY,lights_phong_fragment:FY,lights_phong_pars_fragment:PY,lights_physical_fragment:UY,lights_physical_pars_fragment:zY,lights_fragment_begin:qY,lights_fragment_maps:BY,lights_fragment_end:HY,lightprobes_pars_fragment:VY,logdepthbuf_fragment:GY,logdepthbuf_pars_fragment:WY,logdepthbuf_pars_vertex:jY,logdepthbuf_vertex:QY,map_fragment:XY,map_pars_fragment:YY,map_particle_fragment:KY,map_particle_pars_fragment:ZY,metalnessmap_fragment:$Y,metalnessmap_pars_fragment:JY,morphinstance_vertex:eK,morphcolor_vertex:tK,morphnormal_vertex:nK,morphtarget_pars_vertex:iK,morphtarget_vertex:rK,normal_fragment_begin:aK,normal_fragment_maps:sK,normal_pars_fragment:oK,normal_pars_vertex:lK,normal_vertex:uK,normalmap_pars_fragment:cK,clearcoat_normal_fragment_begin:fK,clearcoat_normal_fragment_maps:dK,clearcoat_pars_fragment:hK,iridescence_pars_fragment:pK,opaque_fragment:mK,packing:_K,premultiplied_alpha_fragment:gK,project_vertex:vK,dithering_fragment:yK,dithering_pars_fragment:bK,roughnessmap_fragment:SK,roughnessmap_pars_fragment:EK,shadowmap_pars_fragment:wK,shadowmap_pars_vertex:xK,shadowmap_vertex:TK,shadowmask_pars_fragment:MK,skinbase_vertex:AK,skinning_pars_vertex:CK,skinning_vertex:RK,skinnormal_vertex:IK,specularmap_fragment:LK,specularmap_pars_fragment:NK,tonemapping_fragment:kK,tonemapping_pars_fragment:OK,transmission_fragment:DK,transmission_pars_fragment:FK,uv_pars_fragment:PK,uv_pars_vertex:UK,uv_vertex:zK,worldpos_vertex:qK,background_vert:BK,background_frag:HK,backgroundCube_vert:VK,backgroundCube_frag:GK,cube_vert:WK,cube_frag:jK,depth_vert:QK,depth_frag:XK,distance_vert:YK,distance_frag:KK,equirect_vert:ZK,equirect_frag:$K,linedashed_vert:JK,linedashed_frag:eZ,meshbasic_vert:tZ,meshbasic_frag:nZ,meshlambert_vert:iZ,meshlambert_frag:rZ,meshmatcap_vert:aZ,meshmatcap_frag:sZ,meshnormal_vert:oZ,meshnormal_frag:lZ,meshphong_vert:uZ,meshphong_frag:cZ,meshphysical_vert:fZ,meshphysical_frag:dZ,meshtoon_vert:hZ,meshtoon_frag:pZ,points_vert:mZ,points_frag:_Z,shadow_vert:gZ,shadow_frag:vZ,sprite_vert:yZ,sprite_frag:bZ},Gt={common:{diffuse:{value:new Vt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new In}},envmap:{envMap:{value:null},envMapRotation:{value:new In},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new In}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new In}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new In},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new In},normalScale:{value:new ut(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new In},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new In}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new In}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new In}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Vt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},sunLights:{value:[],properties:{direction:{},color:{}}},sunLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},sunShadowMatrix:{value:[]},sunShadowCascade:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null},probesSH:{value:null},probesMin:{value:new ve},probesMax:{value:new ve},probesResolution:{value:new ve}},points:{diffuse:{value:new Vt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0},uvTransform:{value:new In}},sprite:{diffuse:{value:new Vt(16777215)},opacity:{value:1},center:{value:new ut(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new In},alphaMap:{value:null},alphaMapTransform:{value:new In},alphaTest:{value:0}}},Pu={basic:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.fog]),vertexShader:Bn.meshbasic_vert,fragmentShader:Bn.meshbasic_frag},lambert:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},envMapIntensity:{value:1}}]),vertexShader:Bn.meshlambert_vert,fragmentShader:Bn.meshlambert_frag},phong:{uniforms:os([Gt.common,Gt.specularmap,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},specular:{value:new Vt(1118481)},shininess:{value:30},envMapIntensity:{value:1}}]),vertexShader:Bn.meshphong_vert,fragmentShader:Bn.meshphong_frag},standard:{uniforms:os([Gt.common,Gt.envmap,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.roughnessmap,Gt.metalnessmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag},toon:{uniforms:os([Gt.common,Gt.aomap,Gt.lightmap,Gt.emissivemap,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.gradientmap,Gt.fog,Gt.lights,{emissive:{value:new Vt(0)}}]),vertexShader:Bn.meshtoon_vert,fragmentShader:Bn.meshtoon_frag},matcap:{uniforms:os([Gt.common,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,Gt.fog,{matcap:{value:null}}]),vertexShader:Bn.meshmatcap_vert,fragmentShader:Bn.meshmatcap_frag},points:{uniforms:os([Gt.points,Gt.fog]),vertexShader:Bn.points_vert,fragmentShader:Bn.points_frag},dashed:{uniforms:os([Gt.common,Gt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Bn.linedashed_vert,fragmentShader:Bn.linedashed_frag},depth:{uniforms:os([Gt.common,Gt.displacementmap]),vertexShader:Bn.depth_vert,fragmentShader:Bn.depth_frag},normal:{uniforms:os([Gt.common,Gt.bumpmap,Gt.normalmap,Gt.displacementmap,{opacity:{value:1}}]),vertexShader:Bn.meshnormal_vert,fragmentShader:Bn.meshnormal_frag},sprite:{uniforms:os([Gt.sprite,Gt.fog]),vertexShader:Bn.sprite_vert,fragmentShader:Bn.sprite_frag},background:{uniforms:{uvTransform:{value:new In},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Bn.background_vert,fragmentShader:Bn.background_frag},backgroundCube:{uniforms:{envMap:{value:null},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new In}},vertexShader:Bn.backgroundCube_vert,fragmentShader:Bn.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Bn.cube_vert,fragmentShader:Bn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Bn.equirect_vert,fragmentShader:Bn.equirect_frag},distance:{uniforms:os([Gt.common,Gt.displacementmap,{referencePosition:{value:new ve},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Bn.distance_vert,fragmentShader:Bn.distance_frag},shadow:{uniforms:os([Gt.lights,Gt.fog,{color:{value:new Vt(0)},opacity:{value:1}}]),vertexShader:Bn.shadow_vert,fragmentShader:Bn.shadow_frag}};Pu.physical={uniforms:os([Pu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new In},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new In},clearcoatNormalScale:{value:new ut(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new In},dispersion:{value:0},retroreflectivity:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new In},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new In},sheen:{value:0},sheenColor:{value:new Vt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new In},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new In},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new In},transmissionSamplerSize:{value:new ut},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new In},attenuationDistance:{value:0},attenuationColor:{value:new Vt(0)},specularColor:{value:new Vt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new In},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new In},anisotropyVector:{value:new ut},anisotropyMap:{value:null},anisotropyMapTransform:{value:new In}}]),vertexShader:Bn.meshphysical_vert,fragmentShader:Bn.meshphysical_frag};var T2={r:0,b:0,g:0},SZ=new Cn,b8=new In;b8.set(-1,0,0,0,1,0,0,0,1);function EZ(n,e,t,i,r,a){let s=new Vt(0),l=r===!0?0:1,c,f,p=null,h=0,_=null;function g(M){let O=M.isScene===!0?M.background:null;if(O&&O.isTexture){let k=M.backgroundBlurriness>0;O=e.get(O,k)}return O}function E(M){let O=!1,k=g(M);k===null?S(s,l):k&&k.isColor&&(S(k,1),O=!0);let q=n.xr.getEnvironmentBlendMode();q==="additive"?t.buffers.color.setClear(0,0,0,1,a):q==="alpha-blend"&&t.buffers.color.setClear(0,0,0,0,a),(n.autoClear||O)&&(t.buffers.depth.setTest(!0),t.buffers.depth.setMask(!0),t.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function x(M,O){let k=g(O);k&&(k.isCubeTexture||k.mapping===x_)?(f===void 0&&(f=new dr(new Bc(1,1,1),new Ga({name:"BackgroundCubeMaterial",uniforms:C_(Pu.backgroundCube.uniforms),vertexShader:Pu.backgroundCube.vertexShader,fragmentShader:Pu.backgroundCube.fragmentShader,side:ss,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(q,G,Q){this.matrixWorld.copyPosition(Q.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(f)),f.material.uniforms.envMap.value=k,f.material.uniforms.backgroundBlurriness.value=O.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=O.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(SZ.makeRotationFromEuler(O.backgroundRotation)).transpose(),k.isCubeTexture&&k.isRenderTargetTexture===!1&&f.material.uniforms.backgroundRotation.value.premultiply(b8),f.material.toneMapped=Gn.getTransfer(k.colorSpace)!==xi,(p!==k||h!==k.version||_!==n.toneMapping)&&(f.material.needsUpdate=!0,p=k,h=k.version,_=n.toneMapping),f.layers.enableAll(),M.unshift(f,f.geometry,f.material,0,0,null)):k&&k.isTexture&&(c===void 0&&(c=new dr(new __(2,2),new Ga({name:"BackgroundMaterial",uniforms:C_(Pu.background.uniforms),vertexShader:Pu.background.vertexShader,fragmentShader:Pu.background.fragmentShader,side:$f,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=k,c.material.uniforms.backgroundIntensity.value=O.backgroundIntensity,c.material.toneMapped=Gn.getTransfer(k.colorSpace)!==xi,k.matrixAutoUpdate===!0&&k.updateMatrix(),c.material.uniforms.uvTransform.value.copy(k.matrix),(p!==k||h!==k.version||_!==n.toneMapping)&&(c.material.needsUpdate=!0,p=k,h=k.version,_=n.toneMapping),c.layers.enableAll(),M.unshift(c,c.geometry,c.material,0,0,null))}function S(M,O){M.getRGB(T2,KO(n)),t.buffers.color.setClear(T2.r,T2.g,T2.b,O,a)}function v(){f!==void 0&&(f.geometry.dispose(),f.material.dispose(),f=void 0),c!==void 0&&(c.geometry.dispose(),c.material.dispose(),c=void 0)}return{getClearColor:function(){return s},setClearColor:function(M,O=1){s.set(M),l=O,S(s,l)},getClearAlpha:function(){return l},setClearAlpha:function(M){l=M,S(s,l)},render:E,addToRenderList:x,dispose:v}}function wZ(n,e){let t=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=_(null),a=r,s=!1;function l(j,he,ke,Me,ze){let Ne=!1,Ve=h(j,Me,ke,he);a!==Ve&&(a=Ve,f(a.object)),Ne=g(j,Me,ke,ze),Ne&&E(j,Me,ke,ze),ze!==null&&e.update(ze,n.ELEMENT_ARRAY_BUFFER),(Ne||s)&&(s=!1,k(j,he,ke,Me),ze!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,e.get(ze).buffer))}function c(){return n.createVertexArray()}function f(j){return n.bindVertexArray(j)}function p(j){return n.deleteVertexArray(j)}function h(j,he,ke,Me){let ze=Me.wireframe===!0,Ne=i[he.id];Ne===void 0&&(Ne={},i[he.id]=Ne);let Ve=j.isInstancedMesh===!0?j.id:0,Je=Ne[Ve];Je===void 0&&(Je={},Ne[Ve]=Je);let Qe=Je[ke.id];Qe===void 0&&(Qe={},Je[ke.id]=Qe);let st=Qe[ze];return st===void 0&&(st=_(c()),Qe[ze]=st),st}function _(j){let he=[],ke=[],Me=[];for(let ze=0;ze=0){let We=ze[Qe],gt=Ne[Qe];if(gt===void 0&&(Qe==="instanceMatrix"&&j.instanceMatrix&&(gt=j.instanceMatrix),Qe==="instanceColor"&&j.instanceColor&&(gt=j.instanceColor)),We===void 0||We.attribute!==gt||gt&&We.data!==gt.data)return!0;Ve++}return a.attributesNum!==Ve||a.index!==Me}function E(j,he,ke,Me){let ze={},Ne=he.attributes,Ve=0,Je=ke.getAttributes();for(let Qe in Je)if(Je[Qe].location>=0){let We=Ne[Qe];We===void 0&&(Qe==="instanceMatrix"&&j.instanceMatrix&&(We=j.instanceMatrix),Qe==="instanceColor"&&j.instanceColor&&(We=j.instanceColor));let gt={};gt.attribute=We,We&&We.data&&(gt.data=We.data),ze[Qe]=gt,Ve++}a.attributes=ze,a.attributesNum=Ve,a.index=Me}function x(){let j=a.newAttributes;for(let he=0,ke=j.length;he=0){let st=ze[Je];if(st===void 0&&(Je==="instanceMatrix"&&j.instanceMatrix&&(st=j.instanceMatrix),Je==="instanceColor"&&j.instanceColor&&(st=j.instanceColor)),st!==void 0){let We=st.normalized,gt=st.itemSize,Et=e.get(st);if(Et===void 0)continue;let jt=Et.buffer,zt=Et.type,Mt=Et.bytesPerElement,Xe=zt===n.INT||zt===n.UNSIGNED_INT||st.gpuType===Zx;if(st.isInterleavedBufferAttribute){let et=st.data,yt=et.stride,Wt=st.offset;if(et.isInstancedInterleavedBuffer){for(let Lt=0;Lt0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";Q="mediump"}return Q==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let f=t.precision!==void 0?t.precision:"highp",p=c(f);p!==f&&(Ft("WebGLRenderer:",f,"not supported, using",p,"instead."),f=p);let h=t.logarithmicDepthBuffer===!0,_=t.reversedDepthBuffer===!0&&e.has("EXT_clip_control");t.reversedDepthBuffer===!0&&_===!1&&Ft("WebGLRenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer.");let g=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),E=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),x=n.getParameter(n.MAX_TEXTURE_SIZE),S=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),M=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),O=n.getParameter(n.MAX_VARYING_VECTORS),k=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),q=n.getParameter(n.MAX_SAMPLES),G=n.getParameter(n.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:a,getMaxPrecision:c,textureFormatReadable:s,textureTypeReadable:l,precision:f,logarithmicDepthBuffer:h,reversedDepthBuffer:_,maxTextures:g,maxVertexTextures:E,maxTextureSize:x,maxCubemapSize:S,maxAttributes:v,maxVertexUniforms:M,maxVaryings:O,maxFragmentUniforms:k,maxSamples:q,samples:G}}function MZ(n){let e=this,t=null,i=0,r=!1,a=!1,s=new fo,l=new In,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(h,_){let g=h.length!==0||_||i!==0||r;return r=_,i=h.length,g},this.beginShadows=function(){a=!0,p(null)},this.endShadows=function(){a=!1},this.setGlobalState=function(h,_){t=p(h,_,0)},this.setState=function(h,_,g){let E=h.clippingPlanes,x=h.clipIntersection,S=h.clipShadows,v=n.get(h);if(!r||E===null||E.length===0||a&&!S)a?p(null):f();else{let M=a?0:i,O=M*4,k=v.clippingState||null;c.value=k,k=p(E,_,O,g);for(let q=0;q!==O;++q)k[q]=t[q];v.clippingState=k,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=M}};function f(){c.value!==t&&(c.value=t,c.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function p(h,_,g,E){let x=h!==null?h.length:0,S=null;if(x!==0){if(S=c.value,E!==!0||S===null){let v=g+x*4,M=_.matrixWorldInverse;l.getNormalMatrix(M),(S===null||S.length0&&this._blur(c,0,0,t),this._applyPMREM(c),this._cleanup(c),c}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=t8(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=e8(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?q:0,q,q),h.setRenderTarget(r),v&&h.render(x,c),h.render(e,c)}h.toneMapping=g,h.autoClear=_,e.background=M}_textureToCubeUV(e,t){let i=this._renderer,r=e.mapping===Du||e.mapping===Jf;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=t8()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=e8());let a=r?this._cubemapMaterial:this._equirectMaterial,s=this._lodMeshes[0];s.material=a;let l=a.uniforms;l.envMap.value=e;let c=this._cubeSize;nb(t,0,0,3*c,2*c),i.setRenderTarget(t),i.render(s,P1)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;let r=this._lodMeshes.length;for(let a=1;aE-ib?i-E+ib:0),v=4*(this._cubeSize-x);c.envMap.value=e.texture,c.roughness.value=g,c.mipInt.value=E-t,nb(a,S,v,3*x,2*x),r.setRenderTarget(a),r.render(l,P1),c.envMap.value=a.texture,c.roughness.value=0,c.mipInt.value=E-i,nb(e,S,v,3*x,2*x),r.setRenderTarget(e),r.render(l,P1)}_blur(e,t,i,r){let a=this._pingPongRenderTarget,s=Math.min(r,Math.PI)/Math.SQRT2;this._blurPass(e,a,t,i,s),this._blurPass(a,e,i,i,s)}_blurPass(e,t,i,r,a){let s=this._renderer,l=this._blurMaterial,c=this._lodMeshes[r];c.material=l;let f=l.uniforms;f.envMap.value=e.texture,f.sigma.value=a,f.mipInt.value=this._lodMax-i;let p=this._sizeLods[r],h=3*p*(r>this._lodMax-ib?r-this._lodMax+ib:0),_=4*(this._cubeSize-p);nb(t,h,_,3*p,2*p),s.setRenderTarget(t),s.render(c,P1)}};function LZ(n){let e=[],t=[],i=n,r=n-ib+1+AZ;for(let a=0;a2?0:-1,k=[M,O,0,M+2/3,O,0,M+2/3,O+1,0,M,O,0,M+2/3,O+1,0,M,O+1,0];E.set(k,g*_*v);for(let q=0;q<_;q++){let G=p[q*2]*2-1,Q=p[q*2+1]*2-1;v===0?R_.set(1,Q,G):v===1?R_.set(-G,1,-Q):v===2?R_.set(-G,Q,1):v===3?R_.set(-1,Q,-G):v===4?R_.set(-G,-1,Q):R_.set(G,Q,-1),R_.toArray(x,(v*_+q)*g)}}let S=new Nn;S.setAttribute("position",new Li(E,g)),S.setAttribute("outputDirection",new Li(x,g)),t.push(new dr(S,null)),i>ib&&i--}return{lodMeshes:t,sizeLods:e}}function J5(n,e,t){let i=new Va(n,e,t);return i.texture.mapping=x_,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function nb(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function NZ(n,e,t){return new Ga({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:RZ,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:A2(),fragmentShader:` precision highp float; precision highp int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform float roughness; uniform float mipInt; #define ENVMAP_TYPE_CUBE_UV #include #define PI 3.14159265359 // Van der Corput radical inverse float radicalInverse_VdC(uint bits) { bits = (bits << 16u) | (bits >> 16u); bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); return float(bits) * 2.3283064365386963e-10; // / 0x100000000 } // Hammersley sequence vec2 hammersley(uint i, uint N) { return vec2(float(i) / float(N), radicalInverse_VdC(i)); } // GGX VNDF importance sampling (Eric Heitz 2018) // "Sampling the GGX Distribution of Visible Normals" // https://jcgt.org/published/0007/04/01/ vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { float alpha = roughness * roughness; // Section 4.1: Orthonormal basis vec3 T1 = vec3(1.0, 0.0, 0.0); vec3 T2 = cross(V, T1); // Section 4.2: Parameterization of projected area float r = sqrt(Xi.x); float phi = 2.0 * PI * Xi.y; float t1 = r * cos(phi); float t2 = r * sin(phi); float s = 0.5 * (1.0 + V.z); t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; // Section 4.3: Reprojection onto hemisphere vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * V; // Section 3.4: Transform back to ellipsoid configuration return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); } void main() { vec3 N = normalize(vOutputDirection); vec3 V = N; // Assume view direction equals normal for pre-filtering vec3 prefilteredColor = vec3(0.0); float totalWeight = 0.0; // For very low roughness, just sample the environment directly if (roughness < 0.001) { gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); return; } // Tangent space basis for VNDF sampling vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); vec3 tangent = normalize(cross(up, N)); vec3 bitangent = cross(N, tangent); for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); // For PMREM, V = N, so in tangent space V is always (0, 0, 1) vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); // Transform H back to world space vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); vec3 L = normalize(2.0 * dot(V, H) * H - V); float NdotL = max(dot(N, L), 0.0); if(NdotL > 0.0) { // Sample environment at fixed mip level // VNDF importance sampling handles the distribution filtering vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); // Weight by NdotL for the split-sum approximation // VNDF PDF naturally accounts for the visible microfacet distribution prefilteredColor += sampleColor * NdotL; totalWeight += NdotL; } } if (totalWeight > 0.0) { prefilteredColor = prefilteredColor / totalWeight; } gl_FragColor = vec4(prefilteredColor, 1.0); } `,blending:Ou,depthTest:!1,depthWrite:!1})}function kZ(n,e,t){return new Ga({name:"SphericalGaussianBlur",defines:{SAMPLES:CZ,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},sigma:{value:0},mipInt:{value:0}},vertexShader:A2(),fragmentShader:` precision highp float; precision highp int; varying vec3 vOutputDirection; uniform sampler2D envMap; uniform float sigma; uniform float mipInt; #define ENVMAP_TYPE_CUBE_UV #include #define PI 3.14159265359 #define GOLDEN_ANGLE 2.39996322973 void main() { if ( sigma == 0.0 ) { gl_FragColor = vec4( bilinearCubeUV( envMap, vOutputDirection, mipInt ), 1.0 ); return; } vec3 outputDirection = normalize( vOutputDirection ); vec3 up = abs( outputDirection.z ) < 0.999 ? vec3( 0.0, 0.0, 1.0 ) : vec3( 1.0, 0.0, 0.0 ); vec3 tangent = normalize( cross( up, outputDirection ) ); vec3 bitangent = cross( outputDirection, tangent ); // Truncate the kernel at three standard deviations or at the antipode. float thetaMax = min( 3.0 * sigma, PI ); float truncation = 1.0 - exp( - 0.5 * thetaMax * thetaMax / ( sigma * sigma ) ); vec3 accumColor = vec3( 0.0 ); float accumWeight = 0.0; for ( int i = 0; i < SAMPLES; i ++ ) { // Stratified inverse-CDF sampling of the Gaussian, placed on a golden-angle spiral. float stratum = ( float( i ) + 0.5 ) / float( SAMPLES ); float theta = sigma * sqrt( - 2.0 * log( 1.0 - stratum * truncation ) ); float phi = float( i ) * GOLDEN_ANGLE; vec3 offset = cos( phi ) * tangent + sin( phi ) * bitangent; vec3 sampleDirection = cos( theta ) * outputDirection + sin( theta ) * offset; // Correct the planar sample density to solid angle. float weight = sin( theta ) / theta; accumColor += weight * bilinearCubeUV( envMap, sampleDirection, mipInt ); accumWeight += weight; } gl_FragColor = vec4( accumColor / accumWeight, 1.0 ); } `,blending:Ou,depthTest:!1,depthWrite:!1})}function e8(){return new Ga({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:A2(),fragmentShader:` precision mediump float; precision mediump int; varying vec3 vOutputDirection; uniform sampler2D envMap; #include void main() { vec3 outputDirection = normalize( vOutputDirection ); vec2 uv = equirectUv( outputDirection ); gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); } `,blending:Ou,depthTest:!1,depthWrite:!1})}function t8(){return new Ga({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:A2(),fragmentShader:` precision mediump float; precision mediump int; uniform float flipEnvMap; varying vec3 vOutputDirection; uniform samplerCube envMap; void main() { gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); } `,blending:Ou,depthTest:!1,depthWrite:!1})}function A2(){return` precision mediump float; precision mediump int; attribute vec3 outputDirection; varying vec3 vOutputDirection; void main() { vOutputDirection = outputDirection; gl_Position = vec4( position, 1.0 ); } `}var B1=class extends Va{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new Uh(r),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:` varying vec3 vWorldDirection; vec3 transformDirection( in vec3 dir, in mat4 matrix ) { return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); } void main() { vWorldDirection = transformDirection( position, modelMatrix ); #include #include } `,fragmentShader:` uniform sampler2D tEquirect; varying vec3 vWorldDirection; #include void main() { vec3 direction = normalize( vWorldDirection ); vec2 sampleUV = equirectUv( direction ); gl_FragColor = texture2D( tEquirect, sampleUV ); } `},r=new Bc(5,5,5),a=new Ga({name:"CubemapFromEquirect",uniforms:C_(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:ss,blending:Ou});a.uniforms.tEquirect.value=t;let s=new dr(r,a),l=t.minFilter;return t.minFilter===Fu&&(t.minFilter=Ji),new Vx(1,10,this).update(e,s),t.minFilter=l,s.geometry.dispose(),s.material.dispose(),this}clear(e,t=!0,i=!0,r=!0){let a=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,i,r);e.setRenderTarget(a)}};function OZ(n){let e=new WeakMap,t=new WeakMap,i=null;function r(_,g=!1){return _==null?null:g?s(_):a(_)}function a(_){if(_&&_.isTexture){let g=_.mapping;if(g===j0||g===Q0)if(e.has(_)){let E=e.get(_).texture;return l(E,_.mapping)}else{let E=_.image;if(E&&E.height>0){let x=new B1(E.height);return x.fromEquirectangularTexture(n,_),e.set(_,x),_.addEventListener("dispose",f),l(x.texture,_.mapping)}else return null}}return _}function s(_){if(_&&_.isTexture){let g=_.mapping,E=g===j0||g===Q0,x=g===Du||g===Jf;if(E||x){let S=t.get(_),v=S!==void 0?S.texture.pmremVersion:0;if(_.isRenderTargetTexture&&_.pmremVersion!==v)return i===null&&(i=new q1(n)),S=E?i.fromEquirectangular(_,S):i.fromCubemap(_,S),S.texture.pmremVersion=_.pmremVersion,t.set(_,S),S.texture;if(S!==void 0)return S.texture;{let M=_.image;return E&&M&&M.height>0||x&&M&&c(M)?(i===null&&(i=new q1(n)),S=E?i.fromEquirectangular(_):i.fromCubemap(_),S.texture.pmremVersion=_.pmremVersion,t.set(_,S),_.addEventListener("dispose",p),S.texture):null}}}return _}function l(_,g){return g===j0?_.mapping=Du:g===Q0&&(_.mapping=Jf),_}function c(_){let g=0,E=6;for(let x=0;x=65535?m0:p0)(_,1);S.version=x;let v=a.get(h);v&&e.remove(v),a.set(h,S)}function p(h){let _=a.get(h);if(_){let g=h.index;g!==null&&_.versione.maxTextureSize&&(q=Math.ceil(k/e.maxTextureSize),k=e.maxTextureSize);let G=new Float32Array(k*q*4*h),Q=new l_(G,k,q,h);Q.type=as,Q.needsUpdate=!0;let H=O*4;for(let te=0;te #include void main() { gl_FragColor = texture2D( tDiffuse, vUv ); #ifdef LINEAR_TONE_MAPPING gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); #elif defined( REINHARD_TONE_MAPPING ) gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); #elif defined( CINEON_TONE_MAPPING ) gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); #elif defined( ACES_FILMIC_TONE_MAPPING ) gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); #elif defined( AGX_TONE_MAPPING ) gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); #elif defined( NEUTRAL_TONE_MAPPING ) gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); #elif defined( CUSTOM_TONE_MAPPING ) gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); #endif #ifdef SRGB_TRANSFER gl_FragColor = sRGBTransferOETF( gl_FragColor ); #endif }`,depthTest:!1,depthWrite:!1}),h=new dr(f,p),_=new Gc(-1,1,1,-1,0,1),g=null,E=null,x=!1,S,v=null,M=[],O=!1;this.setSize=function(k,q){s.setSize(k,q),l!==null&&l.setSize(k,q),c!==null&&c.setSize(k,q);for(let G=0;G0&&M[0].isRenderPass===!0;let q=s.width,G=s.height;M.length>0&&l===null&&(l=new Va(q,G,{type:$l,depthBuffer:!1,stencilBuffer:!1}),c=new Va(q,G,{type:$l,depthBuffer:!1,stencilBuffer:!1}));for(let Q=0;Q0)return n;let r=e*t,a=n8[r];if(a===void 0&&(a=new Float32Array(r),n8[r]=a),e!==0){i.toArray(a,0);for(let s=1,l=0;s!==e;++s)l+=t,n[s].toArray(a,l)}return a}function oa(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t0&&(this.seq=r.concat(a))}setValue(e,t,i,r){let a=this.map[t];a!==void 0&&a.setValue(e,i,r)}setOptional(e,t,i){let r=t[i];r!==void 0&&this.setValue(e,i,r)}static upload(e,t,i,r){for(let a=0,s=t.length;a!==s;++a){let l=t[a],c=i[l.id];c.needsUpdate!==!1&&l.setValue(e,c.value,r)}}static seqWithValue(e,t){let i=[];for(let r=0,a=e.length;r!==a;++r){let s=e[r];s.id in t&&i.push(s)}return i}};function l8(n,e,t){let i=n.createShader(e);return n.shaderSource(i,t),n.compileShader(i),i}var I$=37297,L$=0;function N$(n,e){let t=n.split(` `),i=[],r=Math.max(e-6,0),a=Math.min(e+6,t.length);for(let s=r;s":" "} ${l}: ${t[s]}`)}return i.join(` `)}var u8=new In;function k$(n){Gn._getMatrix(u8,Gn.workingColorSpace,n);let e=`mat3( ${u8.elements.map(t=>t.toFixed(4))} )`;switch(Gn.getTransfer(n)){case c0:return[e,"LinearTransferOETF"];case xi:return[e,"sRGBTransferOETF"];default:return Ft("WebGLProgram: Unsupported color space: ",n),[e,"LinearTransferOETF"]}}function c8(n,e,t){let i=n.getShaderParameter(e,n.COMPILE_STATUS),a=(n.getShaderInfoLog(e)||"").trim();if(i&&a==="")return"";let s=/ERROR: 0:(\d+)/.exec(a);if(s){let l=parseInt(s[1]);return t.toUpperCase()+` `+a+` `+N$(n.getShaderSource(e),l)}else return a}function O$(n,e){let t=k$(e);return[`vec4 ${n}( vec4 value ) {`,` return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(` `)}var D$={[l2]:"Linear",[u2]:"Reinhard",[c2]:"Cineon",[W0]:"ACESFilmic",[d2]:"AgX",[h2]:"Neutral",[f2]:"Custom"};function F$(n,e){let t=D$[e];return t===void 0?(Ft("WebGLProgram: Unsupported toneMapping:",e),"vec3 "+n+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}var M2=new ve;function P$(){Gn.getLuminanceCoefficients(M2);let n=M2.x.toFixed(4),e=M2.y.toFixed(4),t=M2.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${n}, ${e}, ${t} );`," return dot( weights, rgb );","}"].join(` `)}function U$(n){return[n.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",n.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(z1).join(` `)}function z$(n){let e=[];for(let t in n){let i=n[t];i!==!1&&e.push("#define "+t+" "+i)}return e.join(` `)}function q$(n,e){let t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function fD(n){return n.replace(B$,V$)}var H$=new Map;function V$(n,e){let t=Bn[e];if(t===void 0){let i=H$.get(e);if(i!==void 0)t=Bn[i],Ft('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("THREE.WebGLProgram: Can not resolve #include <"+e+">")}return fD(t)}var G$=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function h8(n){return n.replace(G$,W$)}function W$(n,e,t,i){let r="";for(let a=parseInt(e);a0&&(S+=` `),v=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E].filter(z1).join(` `),v.length>0&&(v+=` `)):(S=[p8(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+p:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexNormals?"#define HAS_NORMAL":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` `].filter(z1).join(` `),v=[p8(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,E,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+f:"",t.envMap?"#define "+p:"",t.envMap?"#define "+h:"",_?"#define CUBEUV_TEXEL_WIDTH "+_.texelWidth:"",_?"#define CUBEUV_TEXEL_HEIGHT "+_.texelHeight:"",_?"#define CUBEUV_MAX_MIP "+_.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.packedNormalMap?"#define USE_PACKED_NORMALMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.retroreflection?"#define USE_RETROREFLECTION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas||t.batchingColor?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.numLightProbeGrids>0?"#define USE_LIGHT_PROBES_GRID":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==_o?"#define TONE_MAPPING":"",t.toneMapping!==_o?Bn.tonemapping_pars_fragment:"",t.toneMapping!==_o?F$("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Bn.colorspace_pars_fragment,O$("linearToOutputTexel",t.outputColorSpace),P$(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` `].filter(z1).join(` `)),s=fD(s),s=f8(s,t),s=d8(s,t),l=fD(l),l=f8(l,t),l=d8(l,t),s=h8(s),l=h8(l),t.isRawShaderMaterial!==!0&&(M=`#version 300 es `,S=[g,"#define attribute in","#define varying out","#define texture2D texture"].join(` `)+` `+S,v=["#define varying in",t.glslVersion===E2?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===E2?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` `+v);let O=M+S+s,k=M+v+l,q=l8(r,r.VERTEX_SHADER,O),G=l8(r,r.FRAGMENT_SHADER,k);r.attachShader(x,q),r.attachShader(x,G),t.index0AttributeName!==void 0?r.bindAttribLocation(x,0,t.index0AttributeName):t.hasPositionAttribute===!0&&r.bindAttribLocation(x,0,"position"),r.linkProgram(x);function Q(j){if(n.debug.checkShaderErrors){let he=r.getProgramInfoLog(x)||"",ke=r.getShaderInfoLog(q)||"",Me=r.getShaderInfoLog(G)||"",ze=he.trim(),Ne=ke.trim(),Ve=Me.trim(),Je=!0,Qe=!0;if(r.getProgramParameter(x,r.LINK_STATUS)===!1)if(Je=!1,typeof n.debug.onShaderError=="function")n.debug.onShaderError(r,x,q,G);else{let st=c8(r,q,"vertex"),We=c8(r,G,"fragment");cn("WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(x,r.VALIDATE_STATUS)+` Material Name: `+j.name+` Material Type: `+j.type+` Program Info Log: `+ze+` `+st+` `+We)}else ze!==""?Ft("WebGLProgram: Program Info Log:",ze):(Ne===""||Ve==="")&&(Qe=!1);Qe&&(j.diagnostics={runnable:Je,programLog:ze,vertexShader:{log:Ne,prefix:S},fragmentShader:{log:Ve,prefix:v}})}r.deleteShader(q),r.deleteShader(G),H=new rb(r,x),Z=q$(r,x)}let H;this.getUniforms=function(){return H===void 0&&Q(this),H};let Z;this.getAttributes=function(){return Z===void 0&&Q(this),Z};let te=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return te===!1&&(te=r.getProgramParameter(x,I$)),te},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(x),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=L$++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=q,this.fragmentShader=G,this}var nJ=0,dD=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e,t,i){let r=this._getShaderCacheForMaterial(e);return r.has(t)===!1&&(r.add(t),t.usedTimes++),r.has(i)===!1&&(r.add(i),i.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderStage(e){return this._getShaderStage(e.vertexShader)}getFragmentShaderStage(e){return this._getShaderStage(e.fragmentShader)}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return i===void 0&&(i=new hD(e),t.set(e,i)),i}},hD=class{constructor(e){this.id=nJ++,this.code=e,this.usedTimes=0}};function iJ(n){return n===td||n===eb||n===tb}function rJ(n,e,t,i,r,a){let s=new zc,l=new dD,c=new Set,f=[],p=new Map,h=i.logarithmicDepthBuffer,_=i.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function E(H){return c.add(H),H===0?"uv":`uv${H}`}function x(H,Z,te,j,he,ke){let Me=j.fog,ze=he.geometry,Ne=H.isMeshStandardMaterial||H.isMeshLambertMaterial||H.isMeshPhongMaterial?j.environment:null,Ve=H.isMeshStandardMaterial||H.isMeshLambertMaterial&&!H.envMap||H.isMeshPhongMaterial&&!H.envMap,Je=e.get(H.envMap||Ne,Ve),Qe=Je&&Je.mapping===x_?Je.image.height:null,st=g[H.type];H.precision!==null&&(_=i.getMaxPrecision(H.precision),_!==H.precision&&Ft("WebGLProgram.getParameters:",H.precision,"not supported, using",_,"instead."));let We=ze.morphAttributes.position||ze.morphAttributes.normal||ze.morphAttributes.color,gt=We!==void 0?We.length:0,Et=0;ze.morphAttributes.position!==void 0&&(Et=1),ze.morphAttributes.normal!==void 0&&(Et=2),ze.morphAttributes.color!==void 0&&(Et=3);let jt,zt,Mt,Xe;if(st){let Wn=Pu[st];jt=Wn.vertexShader,zt=Wn.fragmentShader}else{jt=H.vertexShader,zt=H.fragmentShader;let Wn=l.getVertexShaderStage(H),Un=l.getFragmentShaderStage(H);l.update(H,Wn,Un),Mt=Wn.id,Xe=Un.id}let et=n.getRenderTarget(),yt=n.state.buffers.depth.getReversed(),Wt=he.isInstancedMesh===!0,Lt=he.isBatchedMesh===!0,sn=!!H.map,pn=!!H.matcap,lt=!!Je,_e=!!H.aoMap,Pe=!!H.lightMap,dt=!!H.bumpMap&&H.wireframe===!1,vt=!!H.normalMap,Qt=!!H.displacementMap,Ht=!!H.emissiveMap,qt=!!H.metalnessMap,en=!!H.roughnessMap,Le=H.anisotropy>0,fn=H.clearcoat>0,kt=H.dispersion>0,ge=H.retroreflectivity>0,L=H.iridescence>0,N=H.sheen>0,U=H.transmission>0,ee=Le&&!!H.anisotropyMap,ne=fn&&!!H.clearcoatMap,X=fn&&!!H.clearcoatNormalMap,ie=fn&&!!H.clearcoatRoughnessMap,le=L&&!!H.iridescenceMap,be=L&&!!H.iridescenceThicknessMap,tt=N&&!!H.sheenColorMap,Oe=N&&!!H.sheenRoughnessMap,je=!!H.specularMap,Ct=!!H.specularColorMap,nn=!!H.specularIntensityMap,ht=U&&!!H.transmissionMap,De=U&&!!H.thicknessMap,bt=!!H.gradientMap,at=!!H.alphaMap,we=H.alphaTest>0,Rt=!!H.alphaHash,ft=!!H.extensions,Yt=_o;H.toneMapped&&(et===null||et.isXRRenderTarget===!0)&&(Yt=n.toneMapping);let $t={shaderID:st,shaderType:H.type,shaderName:H.name,vertexShader:jt,fragmentShader:zt,defines:H.defines,customVertexShaderID:Mt,customFragmentShaderID:Xe,isRawShaderMaterial:H.isRawShaderMaterial===!0,glslVersion:H.glslVersion,precision:_,batching:Lt,batchingColor:Lt&&he._colorsTexture!==null,instancing:Wt,instancingColor:Wt&&he.instanceColor!==null,instancingMorph:Wt&&he.morphTexture!==null,outputColorSpace:et===null?n.outputColorSpace:et.isXRRenderTarget===!0?et.texture.colorSpace:Gn.workingColorSpace,alphaToCoverage:!!H.alphaToCoverage,map:sn,matcap:pn,envMap:lt,envMapMode:lt&&Je.mapping,envMapCubeUVHeight:Qe,aoMap:_e,lightMap:Pe,bumpMap:dt,normalMap:vt,displacementMap:Qt,emissiveMap:Ht,normalMapObjectSpace:vt&&H.normalMapType===zO,normalMapTangentSpace:vt&&H.normalMapType===Wc,packedNormalMap:vt&&H.normalMapType===Wc&&iJ(H.normalMap.format),metalnessMap:qt,roughnessMap:en,anisotropy:Le,anisotropyMap:ee,clearcoat:fn,clearcoatMap:ne,clearcoatNormalMap:X,clearcoatRoughnessMap:ie,dispersion:kt,retroreflection:ge,iridescence:L,iridescenceMap:le,iridescenceThicknessMap:be,sheen:N,sheenColorMap:tt,sheenRoughnessMap:Oe,specularMap:je,specularColorMap:Ct,specularIntensityMap:nn,transmission:U,transmissionMap:ht,thicknessMap:De,gradientMap:bt,opaque:H.transparent===!1&&H.blending===w_&&H.alphaToCoverage===!1,alphaMap:at,alphaTest:we,alphaHash:Rt,combine:H.combine,mapUv:sn&&E(H.map.channel),aoMapUv:_e&&E(H.aoMap.channel),lightMapUv:Pe&&E(H.lightMap.channel),bumpMapUv:dt&&E(H.bumpMap.channel),normalMapUv:vt&&E(H.normalMap.channel),displacementMapUv:Qt&&E(H.displacementMap.channel),emissiveMapUv:Ht&&E(H.emissiveMap.channel),metalnessMapUv:qt&&E(H.metalnessMap.channel),roughnessMapUv:en&&E(H.roughnessMap.channel),anisotropyMapUv:ee&&E(H.anisotropyMap.channel),clearcoatMapUv:ne&&E(H.clearcoatMap.channel),clearcoatNormalMapUv:X&&E(H.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ie&&E(H.clearcoatRoughnessMap.channel),iridescenceMapUv:le&&E(H.iridescenceMap.channel),iridescenceThicknessMapUv:be&&E(H.iridescenceThicknessMap.channel),sheenColorMapUv:tt&&E(H.sheenColorMap.channel),sheenRoughnessMapUv:Oe&&E(H.sheenRoughnessMap.channel),specularMapUv:je&&E(H.specularMap.channel),specularColorMapUv:Ct&&E(H.specularColorMap.channel),specularIntensityMapUv:nn&&E(H.specularIntensityMap.channel),transmissionMapUv:ht&&E(H.transmissionMap.channel),thicknessMapUv:De&&E(H.thicknessMap.channel),alphaMapUv:at&&E(H.alphaMap.channel),vertexTangents:!!ze.attributes.tangent&&(vt||Le),vertexNormals:!!ze.attributes.normal,vertexColors:H.vertexColors,vertexAlphas:H.vertexColors===!0&&!!ze.attributes.color&&ze.attributes.color.itemSize===4,pointsUvs:he.isPoints===!0&&!!ze.attributes.uv&&(sn||at),fog:!!Me,useFog:H.fog===!0,fogExp2:!!Me&&Me.isFogExp2,flatShading:H.wireframe===!1&&(H.flatShading===!0||ze.attributes.normal===void 0&&vt===!1&&(H.isMeshLambertMaterial||H.isMeshPhongMaterial||H.isMeshStandardMaterial||H.isMeshPhysicalMaterial)),sizeAttenuation:H.sizeAttenuation===!0,logarithmicDepthBuffer:h,reversedDepthBuffer:yt,skinning:he.isSkinnedMesh===!0,hasPositionAttribute:ze.attributes.position!==void 0,morphTargets:ze.morphAttributes.position!==void 0,morphNormals:ze.morphAttributes.normal!==void 0,morphColors:ze.morphAttributes.color!==void 0,morphTargetsCount:gt,morphTextureStride:Et,numSunLights:Z.sun.length,numDirLights:Z.directional.length,numPointLights:Z.point.length,numSpotLights:Z.spot.length,numSpotLightMaps:Z.spotLightMap.length,numRectAreaLights:Z.rectArea.length,numHemiLights:Z.hemi.length,numSunLightShadows:Z.sunShadowMap.length,numDirLightShadows:Z.directionalShadowMap.length,numPointLightShadows:Z.pointShadowMap.length,numSpotLightShadows:Z.spotShadowMap.length,numSpotLightShadowsWithMaps:Z.numSpotLightShadowsWithMaps,numLightProbes:Z.numLightProbes,numLightProbeGrids:ke.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:H.dithering,shadowMapEnabled:n.shadowMap.enabled&&te.length>0,shadowMapType:n.shadowMap.type,toneMapping:Yt,decodeVideoTexture:sn&&H.map.isVideoTexture===!0&&Gn.getTransfer(H.map.colorSpace)===xi,decodeVideoTextureEmissive:Ht&&H.emissiveMap.isVideoTexture===!0&&Gn.getTransfer(H.emissiveMap.colorSpace)===xi,premultipliedAlpha:H.premultipliedAlpha,doubleSided:H.side===ku,flipSided:H.side===ss,useDepthPacking:H.depthPacking>=0,depthPacking:H.depthPacking||0,index0AttributeName:H.index0AttributeName,extensionClipCullDistance:ft&&H.extensions.clipCullDistance===!0&&t.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(ft&&H.extensions.multiDraw===!0||Lt)&&t.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:t.has("KHR_parallel_shader_compile"),customProgramCacheKey:H.customProgramCacheKey()};return $t.vertexUv1s=c.has(1),$t.vertexUv2s=c.has(2),$t.vertexUv3s=c.has(3),c.clear(),$t}function S(H){let Z=[];if(H.shaderID?Z.push(H.shaderID):(Z.push(H.customVertexShaderID),Z.push(H.customFragmentShaderID)),H.defines!==void 0)for(let te in H.defines)Z.push(te),Z.push(H.defines[te]);return H.isRawShaderMaterial===!1&&(v(Z,H),M(Z,H),Z.push(n.outputColorSpace)),Z.push(H.customProgramCacheKey),Z.join()}function v(H,Z){H.push(Z.precision),H.push(Z.outputColorSpace),H.push(Z.envMapMode),H.push(Z.envMapCubeUVHeight),H.push(Z.mapUv),H.push(Z.alphaMapUv),H.push(Z.lightMapUv),H.push(Z.aoMapUv),H.push(Z.bumpMapUv),H.push(Z.normalMapUv),H.push(Z.displacementMapUv),H.push(Z.emissiveMapUv),H.push(Z.metalnessMapUv),H.push(Z.roughnessMapUv),H.push(Z.anisotropyMapUv),H.push(Z.clearcoatMapUv),H.push(Z.clearcoatNormalMapUv),H.push(Z.clearcoatRoughnessMapUv),H.push(Z.iridescenceMapUv),H.push(Z.iridescenceThicknessMapUv),H.push(Z.sheenColorMapUv),H.push(Z.sheenRoughnessMapUv),H.push(Z.specularMapUv),H.push(Z.specularColorMapUv),H.push(Z.specularIntensityMapUv),H.push(Z.transmissionMapUv),H.push(Z.thicknessMapUv),H.push(Z.combine),H.push(Z.fogExp2),H.push(Z.sizeAttenuation),H.push(Z.morphTargetsCount),H.push(Z.morphAttributeCount),H.push(Z.numSunLights),H.push(Z.numDirLights),H.push(Z.numPointLights),H.push(Z.numSpotLights),H.push(Z.numSpotLightMaps),H.push(Z.numHemiLights),H.push(Z.numRectAreaLights),H.push(Z.numSunLightShadows),H.push(Z.numDirLightShadows),H.push(Z.numPointLightShadows),H.push(Z.numSpotLightShadows),H.push(Z.numSpotLightShadowsWithMaps),H.push(Z.numLightProbes),H.push(Z.shadowMapType),H.push(Z.toneMapping),H.push(Z.numClippingPlanes),H.push(Z.numClipIntersection),H.push(Z.depthPacking)}function M(H,Z){s.disableAll(),Z.instancing&&s.enable(0),Z.instancingColor&&s.enable(1),Z.instancingMorph&&s.enable(2),Z.matcap&&s.enable(3),Z.envMap&&s.enable(4),Z.normalMapObjectSpace&&s.enable(5),Z.normalMapTangentSpace&&s.enable(6),Z.clearcoat&&s.enable(7),Z.iridescence&&s.enable(8),Z.alphaTest&&s.enable(9),Z.vertexColors&&s.enable(10),Z.vertexAlphas&&s.enable(11),Z.vertexUv1s&&s.enable(12),Z.vertexUv2s&&s.enable(13),Z.vertexUv3s&&s.enable(14),Z.vertexTangents&&s.enable(15),Z.anisotropy&&s.enable(16),Z.alphaHash&&s.enable(17),Z.batching&&s.enable(18),Z.dispersion&&s.enable(19),Z.retroreflection&&s.enable(24),Z.batchingColor&&s.enable(20),Z.gradientMap&&s.enable(21),Z.packedNormalMap&&s.enable(22),Z.vertexNormals&&s.enable(23),H.push(s.mask),s.disableAll(),Z.fog&&s.enable(0),Z.useFog&&s.enable(1),Z.flatShading&&s.enable(2),Z.logarithmicDepthBuffer&&s.enable(3),Z.reversedDepthBuffer&&s.enable(4),Z.skinning&&s.enable(5),Z.morphTargets&&s.enable(6),Z.morphNormals&&s.enable(7),Z.morphColors&&s.enable(8),Z.premultipliedAlpha&&s.enable(9),Z.shadowMapEnabled&&s.enable(10),Z.doubleSided&&s.enable(11),Z.flipSided&&s.enable(12),Z.useDepthPacking&&s.enable(13),Z.dithering&&s.enable(14),Z.transmission&&s.enable(15),Z.sheen&&s.enable(16),Z.opaque&&s.enable(17),Z.pointsUvs&&s.enable(18),Z.decodeVideoTexture&&s.enable(19),Z.decodeVideoTextureEmissive&&s.enable(20),Z.alphaToCoverage&&s.enable(21),Z.numLightProbeGrids>0&&s.enable(22),Z.hasPositionAttribute&&s.enable(23),H.push(s.mask)}function O(H){let Z=g[H.type],te;if(Z){let j=Pu[Z];te=ZO.clone(j.uniforms)}else te=H.uniforms;return te}function k(H,Z){let te=p.get(Z);return te!==void 0?++te.usedTimes:(te=new tJ(n,Z,H,r),f.push(te),p.set(Z,te)),te}function q(H){if(--H.usedTimes===0){let Z=f.indexOf(H);f[Z]=f[f.length-1],f.pop(),p.delete(H.cacheKey),H.destroy()}}function G(H){l.remove(H)}function Q(){l.dispose()}return{getParameters:x,getProgramCacheKey:S,getUniforms:O,acquireProgram:k,releaseProgram:q,releaseShaderCache:G,programs:f,dispose:Q}}function aJ(){let n=new WeakMap;function e(s){return n.has(s)}function t(s){let l=n.get(s);return l===void 0&&(l={},n.set(s,l)),l}function i(s){n.delete(s)}function r(s,l,c){n.get(s)[l]=c}function a(){n=new WeakMap}return{has:e,get:t,remove:i,update:r,dispose:a}}function sJ(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.materialVariant!==e.materialVariant?n.materialVariant-e.materialVariant:n.z!==e.z?n.z-e.z:n.id-e.id}function m8(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function _8(){let n=[],e=0,t=[],i=[],r=[];function a(){e=0,t.length=0,i.length=0,r.length=0}function s(_){let g=0;return _.isInstancedMesh&&(g+=2),_.isSkinnedMesh&&(g+=1),g}function l(_,g,E,x,S,v){let M=n[e];return M===void 0?(M={id:_.id,object:_,geometry:g,material:E,materialVariant:s(_),groupOrder:x,renderOrder:_.renderOrder,z:S,group:v},n[e]=M):(M.id=_.id,M.object=_,M.geometry=g,M.material=E,M.materialVariant=s(_),M.groupOrder=x,M.renderOrder=_.renderOrder,M.z=S,M.group=v),e++,M}function c(_,g,E,x,S,v,M){M.reversedDepth===!0&&(S=-S);let O=l(_,g,E,x,S,v);E.transmission>0?i.push(O):E.transparent===!0?r.push(O):t.push(O)}function f(_,g,E,x,S,v){let M=l(_,g,E,x,S,v);E.transmission>0?i.unshift(M):E.transparent===!0?r.unshift(M):t.unshift(M)}function p(_,g){t.length>1&&t.sort(_||sJ),i.length>1&&i.sort(g||m8),r.length>1&&r.sort(g||m8)}function h(){for(let _=e,g=n.length;_=a.length?(s=new _8,a.push(s)):s=a[r],s}function t(){n=new WeakMap}return{get:e,dispose:t}}function lJ(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={direction:new ve,color:new Vt};break;case"SpotLight":t={position:new ve,direction:new ve,color:new Vt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new ve,color:new Vt,distance:0,decay:0};break;case"HemisphereLight":t={direction:new ve,skyColor:new Vt,groundColor:new Vt};break;case"RectAreaLight":t={color:new Vt,position:new ve,halfWidth:new ve,halfHeight:new ve};break}return n[e.id]=t,t}}}function uJ(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}var cJ=0;function fJ(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function dJ(n){let e=new lJ,t=uJ(),i={version:0,hash:{sunLength:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numSunShadows:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],sun:[],sunShadow:[],sunShadowMap:[],sunShadowMatrix:[],sunShadowCascade:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)i.probe.push(new ve);let r=new ve,a=new Cn,s=new Cn;function l(f){let p=0,h=0,_=0;for(let he=0;he<9;he++)i.probe[he].set(0,0,0);let g=0,E=0,x=0,S=0,v=0,M=0,O=0,k=0,q=0,G=0,Q=0,H=0,Z=0,te=0;f.sort(fJ);for(let he=0,ke=f.length;he0&&(n.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=Gt.LTC_FLOAT_1,i.rectAreaLTC2=Gt.LTC_FLOAT_2):(i.rectAreaLTC1=Gt.LTC_HALF_1,i.rectAreaLTC2=Gt.LTC_HALF_2)),i.ambient[0]=p,i.ambient[1]=h,i.ambient[2]=_;let j=i.hash;(j.sunLength!==g||j.directionalLength!==S||j.pointLength!==v||j.spotLength!==M||j.rectAreaLength!==O||j.hemiLength!==k||j.numSunShadows!==E||j.numDirectionalShadows!==q||j.numPointShadows!==G||j.numSpotShadows!==Q||j.numSpotMaps!==H||j.numLightProbes!==te)&&(i.sun.length=g,i.directional.length=S,i.spot.length=M,i.rectArea.length=O,i.point.length=v,i.hemi.length=k,i.sunShadow.length=E,i.sunShadowMap.length=E,i.sunShadowMatrix.length=x,i.sunShadowCascade.length=x,i.directionalShadow.length=q,i.directionalShadowMap.length=q,i.directionalShadowMatrix.length=q,i.pointShadow.length=G,i.pointShadowMap.length=G,i.pointShadowMatrix.length=G,i.spotShadow.length=Q,i.spotShadowMap.length=Q,i.spotLightMatrix.length=Q+H-Z,i.spotLightMap.length=H,i.numSpotLightShadowsWithMaps=Z,i.numLightProbes=te,j.sunLength=g,j.directionalLength=S,j.pointLength=v,j.spotLength=M,j.rectAreaLength=O,j.hemiLength=k,j.numSunShadows=E,j.numDirectionalShadows=q,j.numPointShadows=G,j.numSpotShadows=Q,j.numSpotMaps=H,j.numLightProbes=te,i.version=cJ++)}function c(f,p){let h=0,_=0,g=0,E=0,x=0,S=0,v=p.matrixWorldInverse;for(let M=0,O=f.length;M=s.length?(l=new g8(n),s.push(l)):l=s[a],l}function i(){e=new WeakMap}return{get:t,dispose:i}}var pJ=`void main() { gl_Position = vec4( position, 1.0 ); }`,mJ=`uniform sampler2D shadow_pass; uniform vec2 resolution; uniform float radius; void main() { const float samples = float( VSM_SAMPLES ); float mean = 0.0; float squared_mean = 0.0; float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); float uvStart = samples <= 1.0 ? 0.0 : - 1.0; for ( float i = 0.0; i < samples; i ++ ) { float uvOffset = uvStart + i * uvStride; #ifdef HORIZONTAL_PASS vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg; mean += distribution.x; squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; #else float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r; mean += depth; squared_mean += depth * depth; #endif } mean = mean / samples; squared_mean = squared_mean / samples; float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) ); gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 ); }`,_J=[new ve(1,0,0),new ve(-1,0,0),new ve(0,1,0),new ve(0,-1,0),new ve(0,0,1),new ve(0,0,-1)],gJ=[new ve(0,-1,0),new ve(0,-1,0),new ve(0,0,1),new ve(0,0,-1),new ve(0,-1,0),new ve(0,-1,0)],v8=new Cn,U1=new ve,sD=new ve;function vJ(n,e,t){let i=new qc,r=new ut,a=new ut,s=new Ni,l=new N0,c=new k0,f={},p=t.maxTextureSize,h={[$f]:ss,[ss]:$f,[ku]:ku},_=new Ga({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ut},radius:{value:4}},vertexShader:pJ,fragmentShader:mJ}),g=_.clone();g.defines.HORIZONTAL_PASS=1;let E=new Nn;E.setAttribute("position",new Li(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let x=new dr(E,_),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Gh;let v=this.type;this.render=function(G,Q,H){if(S.enabled===!1||S.autoUpdate===!1&&S.needsUpdate===!1||G.length===0)return;this.type===E_&&(Ft("WebGLShadowMap: PCFSoftShadowMap has been removed. Using PCFShadowMap instead."),this.type=Gh);let Z=n.getRenderTarget(),te=n.getActiveCubeFace(),j=n.getActiveMipmapLevel(),he=n.state;he.setBlending(Ou),he.buffers.depth.getReversed()===!0?he.buffers.color.setClear(0,0,0,0):he.buffers.color.setClear(1,1,1,1),he.buffers.depth.setTest(!0),he.setScissorTest(!1);let ke=v!==this.type;ke&&Q.traverse(function(Me){Me.material&&(Array.isArray(Me.material)?Me.material.forEach(ze=>ze.needsUpdate=!0):Me.material.needsUpdate=!0)});for(let Me=0,ze=G.length;Mep||r.y>p)&&(r.x>p&&(a.x=Math.floor(p/Je.x),r.x=a.x*Je.x,Ve.mapSize.x=a.x),r.y>p&&(a.y=Math.floor(p/Je.y),r.y=a.y*Je.y,Ve.mapSize.y=a.y));let Qe=n.state.buffers.depth.getReversed();if(Ve.camera._reversedDepth=Qe,Ve.map===null||ke===!0){if(Ve.map!==null&&(Ve.map.depthTexture!==null&&(Ve.map.depthTexture.dispose(),Ve.map.depthTexture=null),Ve.map.dispose()),this.type===Zf){if(Ne.isPointLight){Ft("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}Ve.map=new Va(r.x,r.y,{format:td,type:$l,minFilter:Ji,magFilter:Ji,generateMipmaps:!1}),Ve.map.texture.name=Ne.name+".shadowMap",Ve.map.depthTexture=new jf(r.x,r.y,as),Ve.map.depthTexture.name=Ne.name+".shadowMapDepth",Ve.map.depthTexture.format=Cu,Ve.map.depthTexture.compareFunction=null,Ve.map.depthTexture.minFilter=br,Ve.map.depthTexture.magFilter=br}else Ne.isPointLight?(Ve.map=new B1(r.x),Ve.map.depthTexture=new $w(r.x,il)):(Ve.map=new Va(r.x,r.y),Ve.map.depthTexture=new jf(r.x,r.y,il)),Ve.map.depthTexture.name=Ne.name+".shadowMap",Ve.map.depthTexture.format=Cu,this.type===Gh?(Ve.map.depthTexture.compareFunction=Qe?D1:O1,Ve.map.depthTexture.minFilter=Ji,Ve.map.depthTexture.magFilter=Ji):(Ve.map.depthTexture.compareFunction=null,Ve.map.depthTexture.minFilter=br,Ve.map.depthTexture.magFilter=br);Ve.camera.updateProjectionMatrix()}Ve.map.isWebGLCubeRenderTarget!==!0&&(Ve.map.width!==r.x||Ve.map.height!==r.y)&&Ve.map.setSize(r.x,r.y);let st=Ve.map.isWebGLCubeRenderTarget?6:Ve.getViewportCount();Ne.isPointLight!==!0&&Ve.updateMatrices(Ne,H);for(let We=0;We0||Q.map&&Q.alphaTest>0||Q.alphaToCoverage===!0){let he=te.uuid,ke=Q.uuid,Me=f[he];Me===void 0&&(Me={},f[he]=Me);let ze=Me[ke];ze===void 0&&(ze=te.clone(),Me[ke]=ze,Q.addEventListener("dispose",q)),te=ze}if(te.visible=Q.visible,te.wireframe=Q.wireframe,Z===Zf?te.side=Q.shadowSide!==null?Q.shadowSide:Q.side:te.side=Q.shadowSide!==null?Q.shadowSide:h[Q.side],te.alphaMap=Q.alphaMap,te.alphaTest=Q.alphaToCoverage===!0?.5:Q.alphaTest,te.map=Q.map,te.clipShadows=Q.clipShadows,te.clippingPlanes=Q.clippingPlanes,te.clipIntersection=Q.clipIntersection,te.displacementMap=Q.displacementMap,te.displacementScale=Q.displacementScale,te.displacementBias=Q.displacementBias,te.wireframeLinewidth=Q.wireframeLinewidth,te.linewidth=Q.linewidth,H.isPointLight===!0&&te.isMeshDistanceMaterial===!0){let he=n.properties.get(te);he.light=H}return te}function k(G,Q,H,Z,te){if(G.visible===!1)return;if(G.layers.test(Q.layers)&&(G.isMesh||G.isLine||G.isPoints)&&(G.castShadow||G.receiveShadow&&te===Zf)&&(!G.frustumCulled||G.intersectsFrustum(i))){G.modelViewMatrix.multiplyMatrices(H.matrixWorldInverse,G.matrixWorld);let ke=e.update(G),Me=G.material;if(Array.isArray(Me)){let ze=ke.groups;for(let Ne=0,Ve=ze.length;Ne=1):Qe.indexOf("OpenGL ES")!==-1&&(Je=parseFloat(/^OpenGL ES (\d)/.exec(Qe)[1]),Ve=Je>=2);let st=null,We={},gt=n.getParameter(n.SCISSOR_BOX),Et=n.getParameter(n.VIEWPORT),jt=new Ni().fromArray(gt),zt=new Ni().fromArray(Et);function Mt(De,bt,at,we){let Rt=new Uint8Array(4),ft=n.createTexture();n.bindTexture(De,ft),n.texParameteri(De,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(De,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Yt=0;Yt"u"?!1:/OculusBrowser/g.test(navigator.userAgent),f=new ut,p=new WeakMap,h=new Set,_,g=new WeakMap,E=!1;try{E=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(ge,L){return E?new OffscreenCanvas(ge,L):f0("canvas")}function S(ge,L,N){let U=1,ee=kt(ge);if((ee.width>N||ee.height>N)&&(U=N/Math.max(ee.width,ee.height)),U<1)if(typeof HTMLImageElement<"u"&&ge instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&ge instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&ge instanceof ImageBitmap||typeof VideoFrame<"u"&&ge instanceof VideoFrame){let ne=Math.floor(U*ee.width),X=Math.floor(U*ee.height);_===void 0&&(_=x(ne,X));let ie=L?x(ne,X):_;return ie.width=ne,ie.height=X,ie.getContext("2d").drawImage(ge,0,0,ne,X),Ft("WebGLRenderer: Texture has been resized from ("+ee.width+"x"+ee.height+") to ("+ne+"x"+X+")."),ie}else return"data"in ge&&Ft("WebGLRenderer: Image in DataTexture is too big ("+ee.width+"x"+ee.height+")."),ge;return ge}function v(ge){return ge.generateMipmaps}function M(ge){n.generateMipmap(ge)}function O(ge){return ge.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:ge.isWebGL3DRenderTarget?n.TEXTURE_3D:ge.isWebGLArrayRenderTarget||ge.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function k(ge,L,N,U,ee,ne=!1){if(ge!==null){if(n[ge]!==void 0)return n[ge];Ft("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+ge+"'")}let X;U&&(X=e.get("EXT_texture_norm16"),X||Ft("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let ie=L;if(L===n.RED&&(N===n.FLOAT&&(ie=n.R32F),N===n.HALF_FLOAT&&(ie=n.R16F),N===n.UNSIGNED_BYTE&&(ie=n.R8),N===n.UNSIGNED_SHORT&&X&&(ie=X.R16_EXT),N===n.SHORT&&X&&(ie=X.R16_SNORM_EXT)),L===n.RED_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.R8UI),N===n.UNSIGNED_SHORT&&(ie=n.R16UI),N===n.UNSIGNED_INT&&(ie=n.R32UI),N===n.BYTE&&(ie=n.R8I),N===n.SHORT&&(ie=n.R16I),N===n.INT&&(ie=n.R32I)),L===n.RG&&(N===n.FLOAT&&(ie=n.RG32F),N===n.HALF_FLOAT&&(ie=n.RG16F),N===n.UNSIGNED_BYTE&&(ie=n.RG8),N===n.UNSIGNED_SHORT&&X&&(ie=X.RG16_EXT),N===n.SHORT&&X&&(ie=X.RG16_SNORM_EXT)),L===n.RG_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RG8UI),N===n.UNSIGNED_SHORT&&(ie=n.RG16UI),N===n.UNSIGNED_INT&&(ie=n.RG32UI),N===n.BYTE&&(ie=n.RG8I),N===n.SHORT&&(ie=n.RG16I),N===n.INT&&(ie=n.RG32I)),L===n.RGB_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RGB8UI),N===n.UNSIGNED_SHORT&&(ie=n.RGB16UI),N===n.UNSIGNED_INT&&(ie=n.RGB32UI),N===n.BYTE&&(ie=n.RGB8I),N===n.SHORT&&(ie=n.RGB16I),N===n.INT&&(ie=n.RGB32I)),L===n.RGBA_INTEGER&&(N===n.UNSIGNED_BYTE&&(ie=n.RGBA8UI),N===n.UNSIGNED_SHORT&&(ie=n.RGBA16UI),N===n.UNSIGNED_INT&&(ie=n.RGBA32UI),N===n.BYTE&&(ie=n.RGBA8I),N===n.SHORT&&(ie=n.RGBA16I),N===n.INT&&(ie=n.RGBA32I)),L===n.RGB&&(N===n.UNSIGNED_SHORT&&X&&(ie=X.RGB16_EXT),N===n.SHORT&&X&&(ie=X.RGB16_SNORM_EXT),N===n.UNSIGNED_INT_5_9_9_9_REV&&(ie=n.RGB9_E5),N===n.UNSIGNED_INT_10F_11F_11F_REV&&(ie=n.R11F_G11F_B10F)),L===n.RGBA){let le=ne?c0:Gn.getTransfer(ee);N===n.FLOAT&&(ie=n.RGBA32F),N===n.HALF_FLOAT&&(ie=n.RGBA16F),N===n.UNSIGNED_BYTE&&(ie=le===xi?n.SRGB8_ALPHA8:n.RGBA8),N===n.UNSIGNED_SHORT&&X&&(ie=X.RGBA16_EXT),N===n.SHORT&&X&&(ie=X.RGBA16_SNORM_EXT),N===n.UNSIGNED_SHORT_4_4_4_4&&(ie=n.RGBA4),N===n.UNSIGNED_SHORT_5_5_5_1&&(ie=n.RGB5_A1)}return(ie===n.R16F||ie===n.R32F||ie===n.RG16F||ie===n.RG32F||ie===n.RGBA16F||ie===n.RGBA32F)&&e.get("EXT_color_buffer_float"),ie}function q(ge,L){let N;return ge?L===null||L===il||L===A_?N=n.DEPTH24_STENCIL8:L===as?N=n.DEPTH32F_STENCIL8:L===M_&&(N=n.DEPTH24_STENCIL8,Ft("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):L===null||L===il||L===A_?N=n.DEPTH_COMPONENT24:L===as?N=n.DEPTH_COMPONENT32F:L===M_&&(N=n.DEPTH_COMPONENT16),N}function G(ge,L){return v(ge)===!0||ge.isFramebufferTexture&&ge.minFilter!==br&&ge.minFilter!==Ji?Math.log2(Math.max(L.width,L.height))+1:ge.mipmaps!==void 0&&ge.mipmaps.length>0?ge.mipmaps.length:ge.isCompressedTexture&&Array.isArray(ge.image)?L.mipmaps.length:1}function Q(ge){let L=ge.target;L.removeEventListener("dispose",Q),Z(L),L.isVideoTexture&&p.delete(L),L.isHTMLTexture&&h.delete(L)}function H(ge){let L=ge.target;L.removeEventListener("dispose",H),j(L)}function Z(ge){let L=i.get(ge);if(L.__webglInit===void 0)return;let N=ge.source,U=g.get(N);if(U){let ee=U[L.__cacheKey];ee.usedTimes--,ee.usedTimes===0&&te(ge),Object.keys(U).length===0&&g.delete(N)}i.remove(ge)}function te(ge){let L=i.get(ge);n.deleteTexture(L.__webglTexture);let N=ge.source,U=g.get(N);delete U[L.__cacheKey],s.memory.textures--}function j(ge){let L=i.get(ge);if(ge.depthTexture&&(ge.depthTexture.dispose(),i.remove(ge.depthTexture)),ge.isWebGLCubeRenderTarget)for(let U=0;U<6;U++){if(Array.isArray(L.__webglFramebuffer[U]))for(let ee=0;ee=r.maxTextures&&Ft("WebGLTextures: Trying to use "+(ge+1)+" texture units while this GPU supports only "+r.maxTextures),he+=1,ge}function Ve(ge){let L=[];return L.push(ge.wrapS),L.push(ge.wrapT),L.push(ge.wrapR||0),L.push(ge.magFilter),L.push(ge.minFilter),L.push(ge.anisotropy),L.push(ge.internalFormat),L.push(ge.format),L.push(ge.type),L.push(ge.generateMipmaps),L.push(ge.premultiplyAlpha),L.push(ge.flipY),L.push(ge.unpackAlignment),L.push(ge.colorSpace),L.join()}function Je(ge,L){let N=i.get(ge);if(ge.isVideoTexture&&Le(ge),ge.isRenderTargetTexture===!1&&ge.isExternalTexture!==!0&&ge.version>0&&N.__version!==ge.version){let U=ge.image;if(U===null)Ft("WebGLRenderer: Texture marked for update but no image data found.");else if(U.complete===!1)Ft("WebGLRenderer: Texture marked for update but image is incomplete");else{yt(N,ge,L);return}}else ge.isExternalTexture&&(N.__webglTexture=ge.sourceTexture?ge.sourceTexture:null);t.bindTexture(n.TEXTURE_2D,N.__webglTexture,n.TEXTURE0+L)}function Qe(ge,L){let N=i.get(ge);if(ge.isRenderTargetTexture===!1&&ge.version>0&&N.__version!==ge.version){yt(N,ge,L);return}else ge.isExternalTexture&&(N.__webglTexture=ge.sourceTexture?ge.sourceTexture:null);t.bindTexture(n.TEXTURE_2D_ARRAY,N.__webglTexture,n.TEXTURE0+L)}function st(ge,L){let N=i.get(ge);if(ge.isRenderTargetTexture===!1&&ge.version>0&&N.__version!==ge.version){yt(N,ge,L);return}t.bindTexture(n.TEXTURE_3D,N.__webglTexture,n.TEXTURE0+L)}function We(ge,L){let N=i.get(ge);if(ge.isCubeDepthTexture!==!0&&ge.version>0&&N.__version!==ge.version){Wt(N,ge,L);return}t.bindTexture(n.TEXTURE_CUBE_MAP,N.__webglTexture,n.TEXTURE0+L)}let gt={[s0]:n.REPEAT,[Ms]:n.CLAMP_TO_EDGE,[o0]:n.MIRRORED_REPEAT},Et={[br]:n.NEAREST,[p2]:n.NEAREST_MIPMAP_NEAREST,[T_]:n.NEAREST_MIPMAP_LINEAR,[Ji]:n.LINEAR,[X0]:n.LINEAR_MIPMAP_NEAREST,[Fu]:n.LINEAR_MIPMAP_LINEAR},jt={[BO]:n.NEVER,[jO]:n.ALWAYS,[HO]:n.LESS,[O1]:n.LEQUAL,[VO]:n.EQUAL,[D1]:n.GEQUAL,[GO]:n.GREATER,[WO]:n.NOTEQUAL};function zt(ge,L){if(L.type===as&&e.has("OES_texture_float_linear")===!1&&(L.magFilter===Ji||L.magFilter===X0||L.magFilter===T_||L.magFilter===Fu||L.minFilter===Ji||L.minFilter===X0||L.minFilter===T_||L.minFilter===Fu)&&Ft("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(ge,n.TEXTURE_WRAP_S,gt[L.wrapS]),n.texParameteri(ge,n.TEXTURE_WRAP_T,gt[L.wrapT]),(ge===n.TEXTURE_3D||ge===n.TEXTURE_2D_ARRAY)&&n.texParameteri(ge,n.TEXTURE_WRAP_R,gt[L.wrapR]),n.texParameteri(ge,n.TEXTURE_MAG_FILTER,Et[L.magFilter]),n.texParameteri(ge,n.TEXTURE_MIN_FILTER,Et[L.minFilter]),L.compareFunction&&(n.texParameteri(ge,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(ge,n.TEXTURE_COMPARE_FUNC,jt[L.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(L.magFilter===br||L.minFilter!==T_&&L.minFilter!==Fu||L.type===as&&e.has("OES_texture_float_linear")===!1)return;if(L.anisotropy>1||i.get(L).__currentAnisotropy){let N=e.get("EXT_texture_filter_anisotropic");n.texParameterf(ge,N.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),i.get(L).__currentAnisotropy=L.anisotropy}}}function Mt(ge,L){let N=!1;ge.__webglInit===void 0&&(ge.__webglInit=!0,L.addEventListener("dispose",Q));let U=L.source,ee=g.get(U);ee===void 0&&(ee={},g.set(U,ee));let ne=Ve(L);if(ne!==ge.__cacheKey){ee[ne]===void 0&&(ee[ne]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,N=!0),ee[ne].usedTimes++;let X=ee[ge.__cacheKey];X!==void 0&&(ee[ge.__cacheKey].usedTimes--,X.usedTimes===0&&te(L)),ge.__cacheKey=ne,ge.__webglTexture=ee[ne].texture}return N}function Xe(ge,L,N){return Math.floor(Math.floor(ge/N)/L)}function et(ge,L,N,U){let ne=ge.updateRanges;if(ne.length===0)t.texSubImage2D(n.TEXTURE_2D,0,0,0,L.width,L.height,N,U,L.data);else{ne.sort((tt,Oe)=>tt.start-Oe.start);let X=0;for(let tt=1;tt0){nn&&ht&&t.texStorage2D(n.TEXTURE_2D,bt,Oe,Ct[0].width,Ct[0].height);for(let at=0,we=Ct.length;at0){let Rt=x2(je.width,je.height,L.format,L.type);for(let ft of L.layerUpdates){let Yt=je.data.subarray(ft*Rt/je.data.BYTES_PER_ELEMENT,(ft+1)*Rt/je.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,ft,je.width,je.height,1,be,Yt)}}else t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,0,je.width,je.height,le.depth,be,je.data)}else t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,at,Oe,je.width,je.height,le.depth,0,je.data,0,0);else Ft("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else nn?De&&t.texSubImage3D(n.TEXTURE_2D_ARRAY,at,0,0,0,je.width,je.height,le.depth,be,tt,je.data):t.texImage3D(n.TEXTURE_2D_ARRAY,at,Oe,je.width,je.height,le.depth,0,be,tt,je.data);L.layerUpdates.size>0&&L.clearLayerUpdates()}else{nn&&ht&&t.texStorage2D(n.TEXTURE_2D,bt,Oe,Ct[0].width,Ct[0].height);for(let at=0,we=Ct.length;at0){let at=x2(le.width,le.height,L.format,L.type);for(let we of L.layerUpdates){let Rt=le.data.subarray(we*at/le.data.BYTES_PER_ELEMENT,(we+1)*at/le.data.BYTES_PER_ELEMENT);t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,we,le.width,le.height,1,be,tt,Rt)}L.clearLayerUpdates()}else t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,le.width,le.height,le.depth,be,tt,le.data)}else t.texImage3D(n.TEXTURE_2D_ARRAY,0,Oe,le.width,le.height,le.depth,0,be,tt,le.data);else if(L.isData3DTexture)nn?(ht&&t.texStorage3D(n.TEXTURE_3D,bt,Oe,le.width,le.height,le.depth),De&&t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,le.width,le.height,le.depth,be,tt,le.data)):t.texImage3D(n.TEXTURE_3D,0,Oe,le.width,le.height,le.depth,0,be,tt,le.data);else if(L.isFramebufferTexture){if(ht)if(nn)t.texStorage2D(n.TEXTURE_2D,bt,Oe,le.width,le.height);else{let at=le.width,we=le.height;for(let Rt=0;Rt>=1,we>>=1}}else if(L.isHTMLTexture){if("texElementImage2D"in n){let at=n.canvas;if(at.hasAttribute("layoutsubtree")||at.setAttribute("layoutsubtree","true"),le.parentNode!==at){at.appendChild(le),h.add(L),at.onpaint=we=>{let Rt=we.changedElements;for(let ft of h)Rt.includes(ft.image)&&(ft.needsUpdate=!0)},at.requestPaint();return}if(n.texElementImage2D.length===3)n.texElementImage2D(n.TEXTURE_2D,n.RGBA8,le);else{let Rt=n.RGBA,ft=n.RGBA,Yt=n.UNSIGNED_BYTE;n.texElementImage2D(n.TEXTURE_2D,0,Rt,ft,Yt,le)}n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE)}}else if(Ct.length>0){if(nn&&ht){let at=kt(Ct[0]);t.texStorage2D(n.TEXTURE_2D,bt,Oe,at.width,at.height)}for(let at=0,we=Ct.length;at0&&we++;let ft=kt(Oe[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,we,ht,ft.width,ft.height)}for(let ft=0;ft<6;ft++)if(tt){De?at&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,0,0,Oe[ft].width,Oe[ft].height,Ct,nn,Oe[ft].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ft,0,ht,Oe[ft].width,Oe[ft].height,0,Ct,nn,Oe[ft].data);for(let Yt=0;Yt>ne),je=Math.max(1,L.height>>ne);ee===n.TEXTURE_3D||ee===n.TEXTURE_2D_ARRAY?t.texImage3D(ee,ne,le,Oe,je,L.depth,0,X,ie,null):t.texImage2D(ee,ne,le,Oe,je,0,X,ie,null)}t.bindFramebuffer(n.FRAMEBUFFER,ge),en(L)?l.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,U,ee,tt.__webglTexture,0,qt(L)):(ee===n.TEXTURE_2D||ee>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&ee<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,U,ee,tt.__webglTexture,ne),t.bindFramebuffer(n.FRAMEBUFFER,null)}function sn(ge,L,N){if(n.bindRenderbuffer(n.RENDERBUFFER,ge),L.depthBuffer){let U=L.depthTexture,ee=U&&U.isDepthTexture?U.type:null,ne=q(L.stencilBuffer,ee),X=L.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;en(L)?l.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,qt(L),ne,L.width,L.height):N?n.renderbufferStorageMultisample(n.RENDERBUFFER,qt(L),ne,L.width,L.height):n.renderbufferStorage(n.RENDERBUFFER,ne,L.width,L.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,X,n.RENDERBUFFER,ge)}else{let U=L.textures;for(let ee=0;ee{delete L.__boundDepthTexture,delete L.__depthDisposeCallback,U.removeEventListener("dispose",ee)};U.addEventListener("dispose",ee),L.__depthDisposeCallback=ee}L.__boundDepthTexture=U}if(ge.depthTexture&&!L.__autoAllocateDepthBuffer)if(N)for(let U=0;U<6;U++)pn(L.__webglFramebuffer[U],ge,U);else{let U=ge.texture.mipmaps;U&&U.length>0?pn(L.__webglFramebuffer[0],ge,0):pn(L.__webglFramebuffer,ge,0)}else if(N){L.__webglDepthbuffer=[];for(let U=0;U<6;U++)if(t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer[U]),L.__webglDepthbuffer[U]===void 0)L.__webglDepthbuffer[U]=n.createRenderbuffer(),sn(L.__webglDepthbuffer[U],ge,!1);else{let ee=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ne=L.__webglDepthbuffer[U];n.bindRenderbuffer(n.RENDERBUFFER,ne),n.framebufferRenderbuffer(n.FRAMEBUFFER,ee,n.RENDERBUFFER,ne)}}else{let U=ge.texture.mipmaps;if(U&&U.length>0?t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer[0]):t.bindFramebuffer(n.FRAMEBUFFER,L.__webglFramebuffer),L.__webglDepthbuffer===void 0)L.__webglDepthbuffer=n.createRenderbuffer(),sn(L.__webglDepthbuffer,ge,!1);else{let ee=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,ne=L.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,ne),n.framebufferRenderbuffer(n.FRAMEBUFFER,ee,n.RENDERBUFFER,ne)}}t.bindFramebuffer(n.FRAMEBUFFER,null)}function _e(ge,L,N){let U=i.get(ge);L!==void 0&&Lt(U.__webglFramebuffer,ge,ge.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),N!==void 0&<(ge)}function Pe(ge){let L=ge.texture,N=i.get(ge),U=i.get(L);ge.addEventListener("dispose",H);let ee=ge.textures,ne=ge.isWebGLCubeRenderTarget===!0,X=ee.length>1;if(X||(U.__webglTexture===void 0&&(U.__webglTexture=n.createTexture()),U.__version=L.version,s.memory.textures++),ne){N.__webglFramebuffer=[];for(let ie=0;ie<6;ie++)if(L.mipmaps&&L.mipmaps.length>0){N.__webglFramebuffer[ie]=[];for(let le=0;le0){N.__webglFramebuffer=[];for(let ie=0;ie0&&en(ge)===!1){N.__webglMultisampledFramebuffer=n.createFramebuffer(),N.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,N.__webglMultisampledFramebuffer);for(let ie=0;ie0)for(let le=0;le0)for(let le=0;le0){if(en(ge)===!1){let L=ge.textures,N=ge.width,U=ge.height,ee=n.COLOR_BUFFER_BIT,ne=ge.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,X=i.get(ge),ie=L.length>1;if(ie)for(let be=0;be0?t.bindFramebuffer(n.DRAW_FRAMEBUFFER,X.__webglFramebuffer[0]):t.bindFramebuffer(n.DRAW_FRAMEBUFFER,X.__webglFramebuffer);for(let be=0;be0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function Le(ge){let L=s.render.frame;p.get(ge)!==L&&(p.set(ge,L),ge.update())}function fn(ge,L){let N=ge.colorSpace,U=ge.format,ee=ge.type;return ge.isCompressedTexture===!0||ge.isVideoTexture===!0||N!==Oh&&N!==jc&&(Gn.getTransfer(N)===xi?(U!==wa||ee!==ja)&&Ft("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):cn("WebGLTextures: Unsupported texture color space:",N)),L}function kt(ge){return typeof HTMLImageElement<"u"&&ge instanceof HTMLImageElement?(f.width=ge.naturalWidth||ge.width,f.height=ge.naturalHeight||ge.height):typeof VideoFrame<"u"&&ge instanceof VideoFrame?(f.width=ge.displayWidth,f.height=ge.displayHeight):(f.width=ge.width,f.height=ge.height),f}this.allocateTextureUnit=Ne,this.resetTextureUnits=ke,this.getTextureUnits=Me,this.setTextureUnits=ze,this.setTexture2D=Je,this.setTexture2DArray=Qe,this.setTexture3D=st,this.setTextureCube=We,this.rebindTextures=_e,this.setupRenderTarget=Pe,this.updateRenderTargetMipmap=dt,this.updateMultisampleRenderTarget=Ht,this.setupDepthRenderbuffer=lt,this.setupFrameBufferTexture=Lt,this.useMultisampledRTT=en,this.isReversedDepthBuffer=function(){return t.buffers.depth.getReversed()}}function T8(n,e){function t(i,r=jc){let a,s=Gn.getTransfer(r);if(i===ja)return n.UNSIGNED_BYTE;if(i===$x)return n.UNSIGNED_SHORT_4_4_4_4;if(i===Jx)return n.UNSIGNED_SHORT_5_5_5_1;if(i===g2)return n.UNSIGNED_INT_5_9_9_9_REV;if(i===v2)return n.UNSIGNED_INT_10F_11F_11F_REV;if(i===m2)return n.BYTE;if(i===_2)return n.SHORT;if(i===M_)return n.UNSIGNED_SHORT;if(i===Zx)return n.INT;if(i===il)return n.UNSIGNED_INT;if(i===as)return n.FLOAT;if(i===$l)return n.HALF_FLOAT;if(i===y2)return n.ALPHA;if(i===b2)return n.RGB;if(i===wa)return n.RGBA;if(i===Cu)return n.DEPTH_COMPONENT;if(i===ed)return n.DEPTH_STENCIL;if(i===e1)return n.RED;if(i===Y0)return n.RED_INTEGER;if(i===td)return n.RG;if(i===t1)return n.RG_INTEGER;if(i===n1)return n.RGBA_INTEGER;if(i===K0||i===Z0||i===$0||i===J0)if(s===xi)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(i===K0)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Z0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===$0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===J0)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(i===K0)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Z0)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===$0)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===J0)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===i1||i===r1||i===a1||i===s1)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(i===i1)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===r1)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===a1)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===s1)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===o1||i===l1||i===u1||i===c1||i===f1||i===eb||i===d1)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(i===o1||i===l1)return s===xi?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(i===u1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC;if(i===c1)return a.COMPRESSED_R11_EAC;if(i===f1)return a.COMPRESSED_SIGNED_R11_EAC;if(i===eb)return a.COMPRESSED_RG11_EAC;if(i===d1)return a.COMPRESSED_SIGNED_RG11_EAC}else return null;if(i===h1||i===p1||i===m1||i===_1||i===g1||i===v1||i===y1||i===b1||i===S1||i===E1||i===w1||i===x1||i===T1||i===M1)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(i===h1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===p1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===m1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===_1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===g1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===v1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===y1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===b1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===S1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===E1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===w1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===x1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===T1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===M1)return s===xi?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===A1||i===C1||i===R1)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(i===A1)return s===xi?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===C1)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===R1)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===I1||i===L1||i===tb||i===N1)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(i===I1)return a.COMPRESSED_RED_RGTC1_EXT;if(i===L1)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===tb)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===N1)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===A_?n.UNSIGNED_INT_24_8:n[i]!==void 0?n[i]:null}return{convert:t}}var SJ=` void main() { gl_Position = vec4( position, 1.0 ); }`,EJ=` uniform sampler2DArray depthColor; uniform float depthWidth; uniform float depthHeight; void main() { vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); if ( coord.x >= 1.0 ) { gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; } else { gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; } }`,pD=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){let i=new b0(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){let t=e.cameras[0].viewport,i=new Ga({vertexShader:SJ,fragmentShader:EJ,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new dr(new __(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},mD=class extends po{constructor(e,t){super();let i=this,r=null,a=1,s=null,l="local-floor",c=1,f=null,p=null,h=null,_=null,g=null,E=null,x=typeof XRWebGLBinding<"u",S=new pD,v={},M=t.getContextAttributes(),O=null,k=null,q=[],G=[],Q=new ut,H=null,Z=null,te=new yr;te.viewport=new Ni;let j=new yr;j.viewport=new Ni;let he=[te,j],ke=new Gx,Me=null,ze=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getTargetRaySpace()},this.getControllerGrip=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getGripSpace()},this.getHand=function(Xe){let et=q[Xe];return et===void 0&&(et=new c_,q[Xe]=et),et.getHandSpace()};function Ne(Xe){let et=G.indexOf(Xe.inputSource);if(et===-1)return;let yt=q[et];yt!==void 0&&(yt.update(Xe.inputSource,Xe.frame,f||s),yt.dispatchEvent({type:Xe.type,data:Xe.inputSource}))}function Ve(){r.removeEventListener("select",Ne),r.removeEventListener("selectstart",Ne),r.removeEventListener("selectend",Ne),r.removeEventListener("squeeze",Ne),r.removeEventListener("squeezestart",Ne),r.removeEventListener("squeezeend",Ne),r.removeEventListener("end",Ve),r.removeEventListener("inputsourceschange",Je);for(let Xe=0;Xe=0&&(G[Wt]=null,q[Wt].disconnect(yt))}for(let et=0;et=G.length){G.push(yt),Wt=sn;break}else if(G[sn]===null){G[sn]=yt,Wt=sn;break}if(Wt===-1)break}let Lt=q[Wt];Lt&&Lt.connect(yt)}}let Qe=new ve,st=new ve;function We(Xe,et,yt){Qe.setFromMatrixPosition(et.matrixWorld),st.setFromMatrixPosition(yt.matrixWorld);let Wt=Qe.distanceTo(st),Lt=et.projectionMatrix.elements,sn=yt.projectionMatrix.elements,pn=Lt[14]/(Lt[10]-1),lt=Lt[14]/(Lt[10]+1),_e=(Lt[9]+1)/Lt[5],Pe=(Lt[9]-1)/Lt[5],dt=(Lt[8]-1)/Lt[0],vt=(sn[8]+1)/sn[0],Qt=pn*dt,Ht=pn*vt,qt=Wt/(-dt+vt),en=qt*-dt;if(et.matrixWorld.decompose(Xe.position,Xe.quaternion,Xe.scale),Xe.translateX(en),Xe.translateZ(qt),Xe.matrixWorld.compose(Xe.position,Xe.quaternion,Xe.scale),Xe.matrixWorldInverse.copy(Xe.matrixWorld).invert(),Lt[10]===-1)Xe.projectionMatrix.copy(et.projectionMatrix),Xe.projectionMatrixInverse.copy(et.projectionMatrixInverse);else{let Le=pn+qt,fn=lt+qt,kt=Qt-en,ge=Ht+(Wt-en),L=_e*lt/fn*Le,N=Pe*lt/fn*Le;Xe.projectionMatrix.makePerspective(kt,ge,L,N,Le,fn),Xe.projectionMatrixInverse.copy(Xe.projectionMatrix).invert()}}function gt(Xe,et){et===null?Xe.matrixWorld.copy(Xe.matrix):Xe.matrixWorld.multiplyMatrices(et.matrixWorld,Xe.matrix),Xe.matrixWorldInverse.copy(Xe.matrixWorld).invert()}this.updateCamera=function(Xe){if(r===null)return;let et=Xe.near,yt=Xe.far;S.texture!==null&&(S.depthNear>0&&(et=S.depthNear),S.depthFar>0&&(yt=S.depthFar)),ke.near=j.near=te.near=et,ke.far=j.far=te.far=yt,(Me!==ke.near||ze!==ke.far)&&(r.updateRenderState({depthNear:ke.near,depthFar:ke.far}),Me=ke.near,ze=ke.far),ke.layers.mask=Xe.layers.mask|6,te.layers.mask=ke.layers.mask&-5,j.layers.mask=ke.layers.mask&-3;let Wt=Xe.parent,Lt=ke.cameras;gt(ke,Wt);for(let sn=0;sn0&&(S.alphaTest.value=v.alphaTest);let M=e.get(v),O=M.envMap,k=M.envMapRotation;O&&(S.envMap.value=O,S.envMapRotation.value.setFromMatrix4(wJ.makeRotationFromEuler(k)).transpose(),O.isCubeTexture&&O.isRenderTargetTexture===!1&&S.envMapRotation.value.premultiply(M8),S.reflectivity.value=v.reflectivity,S.ior.value=v.ior,S.refractionRatio.value=v.refractionRatio),v.lightMap&&(S.lightMap.value=v.lightMap,S.lightMapIntensity.value=v.lightMapIntensity,t(v.lightMap,S.lightMapTransform)),v.aoMap&&(S.aoMap.value=v.aoMap,S.aoMapIntensity.value=v.aoMapIntensity,t(v.aoMap,S.aoMapTransform))}function s(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform))}function l(S,v){S.dashSize.value=v.dashSize,S.totalSize.value=v.dashSize+v.gapSize,S.scale.value=v.scale}function c(S,v,M,O){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.size.value=v.size*M,S.scale.value=O*.5,v.map&&(S.map.value=v.map,t(v.map,S.uvTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function f(S,v){S.diffuse.value.copy(v.color),S.opacity.value=v.opacity,S.rotation.value=v.rotation,v.map&&(S.map.value=v.map,t(v.map,S.mapTransform)),v.alphaMap&&(S.alphaMap.value=v.alphaMap,t(v.alphaMap,S.alphaMapTransform)),v.alphaTest>0&&(S.alphaTest.value=v.alphaTest)}function p(S,v){S.specular.value.copy(v.specular),S.shininess.value=Math.max(v.shininess,1e-4)}function h(S,v){v.gradientMap&&(S.gradientMap.value=v.gradientMap)}function _(S,v){S.metalness.value=v.metalness,v.metalnessMap&&(S.metalnessMap.value=v.metalnessMap,t(v.metalnessMap,S.metalnessMapTransform)),S.roughness.value=v.roughness,v.roughnessMap&&(S.roughnessMap.value=v.roughnessMap,t(v.roughnessMap,S.roughnessMapTransform)),v.envMap&&(S.envMapIntensity.value=v.envMapIntensity)}function g(S,v,M){S.ior.value=v.ior,v.sheen>0&&(S.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),S.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(S.sheenColorMap.value=v.sheenColorMap,t(v.sheenColorMap,S.sheenColorMapTransform)),v.sheenRoughnessMap&&(S.sheenRoughnessMap.value=v.sheenRoughnessMap,t(v.sheenRoughnessMap,S.sheenRoughnessMapTransform))),v.clearcoat>0&&(S.clearcoat.value=v.clearcoat,S.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(S.clearcoatMap.value=v.clearcoatMap,t(v.clearcoatMap,S.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(S.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,t(v.clearcoatRoughnessMap,S.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(S.clearcoatNormalMap.value=v.clearcoatNormalMap,t(v.clearcoatNormalMap,S.clearcoatNormalMapTransform),S.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===ss&&S.clearcoatNormalScale.value.negate())),v.dispersion>0&&(S.dispersion.value=v.dispersion),v.retroreflectivity>0&&(S.retroreflectivity.value=v.retroreflectivity),v.iridescence>0&&(S.iridescence.value=v.iridescence,S.iridescenceIOR.value=v.iridescenceIOR,S.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],S.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(S.iridescenceMap.value=v.iridescenceMap,t(v.iridescenceMap,S.iridescenceMapTransform)),v.iridescenceThicknessMap&&(S.iridescenceThicknessMap.value=v.iridescenceThicknessMap,t(v.iridescenceThicknessMap,S.iridescenceThicknessMapTransform))),v.transmission>0&&(S.transmission.value=v.transmission,S.transmissionSamplerMap.value=M.texture,S.transmissionSamplerSize.value.set(M.width,M.height),v.transmissionMap&&(S.transmissionMap.value=v.transmissionMap,t(v.transmissionMap,S.transmissionMapTransform)),S.thickness.value=v.thickness,v.thicknessMap&&(S.thicknessMap.value=v.thicknessMap,t(v.thicknessMap,S.thicknessMapTransform)),S.attenuationDistance.value=v.attenuationDistance,S.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(S.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(S.anisotropyMap.value=v.anisotropyMap,t(v.anisotropyMap,S.anisotropyMapTransform))),S.specularIntensity.value=v.specularIntensity,S.specularColor.value.copy(v.specularColor),v.specularColorMap&&(S.specularColorMap.value=v.specularColorMap,t(v.specularColorMap,S.specularColorMapTransform)),v.specularIntensityMap&&(S.specularIntensityMap.value=v.specularIntensityMap,t(v.specularIntensityMap,S.specularIntensityMapTransform))}function E(S,v){v.matcap&&(S.matcap.value=v.matcap)}function x(S,v){let M=e.get(v).light;S.referencePosition.value.setFromMatrixPosition(M.matrixWorld),S.nearDistance.value=M.shadow.camera.near,S.farDistance.value=M.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function TJ(n,e,t,i){let r={},a={},s=[],l=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function c(k,q){let G=q.program;i.uniformBlockBinding(k,G)}function f(k,q){let G=r[k.id];G===void 0&&(S(k),G=p(k),r[k.id]=G,k.addEventListener("dispose",M));let Q=q.program;i.updateUBOMapping(k,Q);let H=e.render.frame;a[k.id]!==H&&(_(k),a[k.id]=H)}function p(k){let q=h();k.__bindingPointIndex=q;let G=n.createBuffer(),Q=k.__size,H=k.usage;return n.bindBuffer(n.UNIFORM_BUFFER,G),n.bufferData(n.UNIFORM_BUFFER,Q,H),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,q,G),G}function h(){for(let k=0;k0&&(G+=Q-H),k.__size=G,k.__cache={},this}function v(k){let q={boundary:0,storage:0};return typeof k=="number"||typeof k=="boolean"?(q.boundary=4,q.storage=4):k.isVector2?(q.boundary=8,q.storage=8):k.isVector3||k.isColor?(q.boundary=16,q.storage=12):k.isVector4?(q.boundary=16,q.storage=16):k.isMatrix3?(q.boundary=48,q.storage=48):k.isMatrix4?(q.boundary=64,q.storage=64):k.isTexture?Ft("WebGLRenderer: Texture samplers can not be part of an uniforms group."):ArrayBuffer.isView(k)?(q.boundary=16,q.storage=k.byteLength):Ft("WebGLRenderer: Unsupported uniform value type.",k),q}function M(k){let q=k.target;q.removeEventListener("dispose",M);let G=s.indexOf(q.__bindingPointIndex);s.splice(G,1),n.deleteBuffer(r[q.id]),delete r[q.id],delete a[q.id]}function O(){for(let k in r)n.deleteBuffer(r[k]);s=[],r={},a={}}return{bind:c,update:f,dispose:O}}var MJ=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),Qc=null;function AJ(){return Qc===null&&(Qc=new As(MJ,16,16,td,$l),Qc.name="DFG_LUT",Qc.minFilter=Ji,Qc.magFilter=Ji,Qc.wrapS=Ms,Qc.wrapT=Ms,Qc.generateMipmaps=!1,Qc.needsUpdate=!0),Qc}var H1=class{constructor(e={}){let{canvas:t=QO(),context:i=null,depth:r=!0,stencil:a=!1,alpha:s=!1,antialias:l=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:f=!1,powerPreference:p="default",failIfMajorPerformanceCaveat:h=!1,reversedDepthBuffer:_=!1,outputBufferType:g=ja}=e;this.isWebGLRenderer=!0;let E;if(i!==null){if(typeof WebGLRenderingContext<"u"&&i instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");E=i.getContextAttributes().alpha}else E=s;let x=g,S=new Set([n1,t1,Y0]),v=new Set([ja,il,M_,A_,$x,Jx]),M=new Uint32Array(4),O=new Int32Array(4),k=new ve,q=null,G=null,Q=[],H=[],Z=null;this.domElement=t,this.debug={checkShaderErrors:!0,diagnostics:{keywords:!1},onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=_o,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let te=this,j=!1,he=null,ke=null,Me=null,ze=null;this._outputColorSpace=Yr;let Ne=0,Ve=0,Je=null,Qe=-1,st=null,We=new Ni,gt=new Ni,Et=null,jt=new Vt(0),zt=0,Mt=t.width,Xe=t.height,et=1,yt=null,Wt=null,Lt=new Ni(0,0,Mt,Xe),sn=new Ni(0,0,Mt,Xe),pn=!1,lt=new qc,_e=!1,Pe=!1,dt=new Cn,vt=new ve,Qt=new Ni,Ht={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},qt=!1;function en(){return Je===null?et:1}let Le=i;function fn(ae,Fe){return t.getContext(ae,Fe)}let kt,ge,L,N,U,ee,ne,X,ie,le,be,tt,Oe,je,Ct,nn,ht,De,bt,at,we,Rt,ft;try{let ae={alpha:!0,depth:r,stencil:a,antialias:l,premultipliedAlpha:c,preserveDrawingBuffer:f,powerPreference:p,failIfMajorPerformanceCaveat:h};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${"186"}`),t.addEventListener("webglcontextlost",Wn,!1),t.addEventListener("webglcontextrestored",Un,!1),t.addEventListener("webglcontextcreationerror",Ti,!1),Le===null){let Fe="webgl2";if(Le=fn(Fe,ae),Le===null)throw fn(Fe)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}Yt()}catch(ae){throw t.removeEventListener("webglcontextlost",Wn,!1),t.removeEventListener("webglcontextrestored",Un,!1),t.removeEventListener("webglcontextcreationerror",Ti,!1),cn("WebGLRenderer: "+ae.message),ae}function Yt(){kt=new DZ(Le),kt.init(),we=new T8(Le,kt),ge=new TZ(Le,kt,e,we),L=new yJ(Le,kt),ge.reversedDepthBuffer&&_&&L.buffers.depth.setReversed(!0),ke=Le.createFramebuffer(),Me=Le.createFramebuffer(),ze=Le.createFramebuffer(),N=new UZ(Le),U=new aJ,ee=new bJ(Le,kt,L,U,ge,we,N),ne=new OZ(te),X=new qX(Le),Rt=new wZ(Le,X),ie=new FZ(Le,X,N,Rt),le=new qZ(Le,ie,X,Rt,N),De=new zZ(Le,ge,ee),Ct=new MZ(U),be=new rJ(te,ne,kt,ge,Rt,Ct),tt=new xJ(te,U),Oe=new oJ,je=new hJ(kt),ht=new EZ(te,ne,L,le,E,c),nn=new vJ(te,le,ge),ft=new TJ(Le,N,ge,L),bt=new xZ(Le,kt,N),at=new PZ(Le,kt,N),N.programs=be.programs,te.capabilities=ge,te.extensions=kt,te.properties=U,te.renderLists=Oe,te.shadowMap=nn,te.state=L,te.info=N}x!==ja&&(Z=new HZ(x,t.width,t.height,l,r,a));let $t=new mD(te,Le);this.xr=$t,this.getContext=function(){return Le},this.getContextAttributes=function(){return Le.getContextAttributes()},this.forceContextLoss=function(){let ae=kt.get("WEBGL_lose_context");ae&&ae.loseContext()},this.forceContextRestore=function(){let ae=kt.get("WEBGL_lose_context");ae&&ae.restoreContext()},this.getPixelRatio=function(){return et},this.setPixelRatio=function(ae){ae!==void 0&&(et=ae,this.setSize(Mt,Xe,!1))},this.getSize=function(ae){return ae.set(Mt,Xe)},this.setSize=function(ae,Fe,Ye=!0){if($t.isPresenting){Ft("WebGLRenderer: Can't change size while VR device is presenting.");return}Mt=ae,Xe=Fe,t.width=Math.floor(ae*et),t.height=Math.floor(Fe*et),Ye===!0&&(t.style.width=ae+"px",t.style.height=Fe+"px"),Z!==null&&Z.setSize(t.width,t.height),this.setViewport(0,0,ae,Fe)},this.getDrawingBufferSize=function(ae){return ae.set(Mt*et,Xe*et).floor()},this.setDrawingBufferSize=function(ae,Fe,Ye){Mt=ae,Xe=Fe,et=Ye,t.width=Math.floor(ae*Ye),t.height=Math.floor(Fe*Ye),this.setViewport(0,0,ae,Fe)},this.setEffects=function(ae){if(x===ja){cn("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(ae){for(let Fe=0;Fe{function It(){if(Be.forEach(function(Bt){let Nt=U.get(Bt).currentProgram;(Nt===void 0||Nt.isReady())&&Be.delete(Bt)}),Be.size===0){He(ae);return}setTimeout(It,10)}kt.get("KHR_parallel_shader_compile")!==null?It():setTimeout(It,10)})};let Fr=null;function Ps(ae){Fr&&Fr(ae)}function er(){Pr.stop()}function cs(){Pr.start()}let Pr=new y8;Pr.setAnimationLoop(Ps),typeof self<"u"&&Pr.setContext(self),this.setAnimationLoop=function(ae){Fr=ae,$t.setAnimationLoop(ae),ae===null?Pr.stop():Pr.start()},$t.addEventListener("sessionstart",er),$t.addEventListener("sessionend",cs),this.render=function(ae,Fe){if(Fe!==void 0&&Fe.isCamera!==!0){cn("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(j===!0)return;he!==null&&he.renderStart(ae,Fe);let Ye=$t.enabled===!0&&$t.isPresenting===!0,Be=Z!==null&&(Je===null||Ye)&&Z.begin(te,Je);if(ae.matrixWorldAutoUpdate===!0&&ae.updateMatrixWorld(),Fe.parent===null&&Fe.matrixWorldAutoUpdate===!0&&Fe.updateMatrixWorld(),$t.enabled===!0&&$t.isPresenting===!0&&(Z===null||Z.isCompositing()===!1)&&($t.cameraAutoUpdate===!0&&$t.updateCamera(Fe),Fe=$t.getCamera()),ae.isScene===!0&&ae.onBeforeRender(te,ae,Fe,Je),G=je.get(ae,H.length),G.init(Fe),G.state.textureUnits=ee.getTextureUnits(),H.push(G),dt.multiplyMatrices(Fe.projectionMatrix,Fe.matrixWorldInverse),lt.setFromProjectionMatrix(dt,ho,Fe.reversedDepth),Pe=this.localClippingEnabled,_e=Ct.init(this.clippingPlanes,Pe),q=Oe.get(ae,Q.length),q.init(),Q.push(q),$t.enabled===!0&&$t.isPresenting===!0){let Bt=te.xr.getDepthSensingMesh();Bt!==null&&fs(Bt,Fe,-1/0,te.sortObjects)}fs(ae,Fe,0,te.sortObjects),q.finish(),he!==null&&he.updateLights(G.state.lightsArray),te.sortObjects===!0&&q.sort(yt,Wt),qt=$t.enabled===!1||$t.isPresenting===!1||$t.hasDepthSensing()===!1,qt&&ht.addToRenderList(q,ae),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),_e===!0&&Ct.beginShadows();let He=G.state.shadowsArray;if(nn.render(He,ae,Fe),_e===!0&&Ct.endShadows(),(Be&&Z.hasRenderPass())===!1){let Bt=q.opaque,wt=q.transmissive;if(G.setupLights(),Fe.isArrayCamera){let Nt=Fe.cameras;if(wt.length>0)for(let Kt=0,yn=Nt.length;Kt0&&yo(Bt,wt,ae,Fe),qt&&ht.render(ae),hi(q,ae,Fe)}Je!==null&&Ve===0&&(ee.updateMultisampleRenderTarget(Je),ee.updateRenderTargetMipmap(Je)),Be&&Z.end(te),ae.isScene===!0&&ae.onAfterRender(te,ae,Fe),Rt.resetDefaultState(),Qe=-1,st=null,H.pop(),H.length>0?(G=H[H.length-1],ee.setTextureUnits(G.state.textureUnits),_e===!0&&Ct.setGlobalState(te.clippingPlanes,G.state.camera)):G=null,Q.pop(),Q.length>0?q=Q[Q.length-1]:q=null,he!==null&&he.renderEnd()};function fs(ae,Fe,Ye,Be){if(ae.visible===!1)return;if(ae.layers.test(Fe.layers)){if(ae.isGroup)Ye=ae.renderOrder;else if(ae.isLOD)ae.autoUpdate===!0&&ae.update(Fe);else if(ae.isLightProbeGrid)G.pushLightProbeGrid(ae);else if(ae.isLight)G.pushLight(ae),ae.castShadow&&G.pushShadow(ae);else if(ae.isSprite){if(!ae.frustumCulled||ae.intersectsFrustum(lt)){Be&&Qt.setFromMatrixPosition(ae.matrixWorld).applyMatrix4(dt);let Bt=le.update(ae),wt=ae.material;wt.visible&&q.push(ae,Bt,wt,Ye,Qt.z,null,Fe)}}else if((ae.isMesh||ae.isLine||ae.isPoints)&&(!ae.frustumCulled||ae.intersectsFrustum(lt))){let Bt=le.update(ae),wt=ae.material;if(Be&&(ae.boundingSphere!==void 0?(ae.boundingSphere===null&&ae.computeBoundingSphere(),Qt.copy(ae.boundingSphere.center)):(Bt.boundingSphere===null&&Bt.computeBoundingSphere(),Qt.copy(Bt.boundingSphere.center)),Qt.applyMatrix4(ae.matrixWorld).applyMatrix4(dt)),Array.isArray(wt)){let Nt=Bt.groups;for(let Kt=0,yn=Nt.length;Kt0&&wn(He,Fe,Ye),It.length>0&&wn(It,Fe,Ye),Bt.length>0&&wn(Bt,Fe,Ye),L.buffers.depth.setTest(!0),L.buffers.depth.setMask(!0),L.buffers.color.setMask(!0),L.setPolygonOffset(!1)}function yo(ae,Fe,Ye,Be){if((Ye.isScene===!0?Ye.overrideMaterial:null)!==null)return;if(G.state.transmissionRenderTarget[Be.id]===void 0){let _t=kt.has("EXT_color_buffer_half_float")||kt.has("EXT_color_buffer_float");G.state.transmissionRenderTarget[Be.id]=new Va(1,1,{generateMipmaps:!0,type:_t?$l:ja,minFilter:Fu,samples:Math.max(4,ge.samples),stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,storeMultisampledDepthBuffer:!1,storeMultisampledStencilBuffer:!1,colorSpace:Gn.workingColorSpace})}let It=G.state.transmissionRenderTarget[Be.id],Bt=Be.viewport||We;It.setSize(Bt.z*te.transmissionResolutionScale,Bt.w*te.transmissionResolutionScale);let wt=te.getRenderTarget(),Nt=te.getActiveCubeFace(),Kt=te.getActiveMipmapLevel();te.setRenderTarget(It),te.getClearColor(jt),zt=te.getClearAlpha(),zt<1&&te.setClearColor(16777215,.5),te.clear(),qt&&ht.render(Ye);let yn=te.toneMapping;te.toneMapping=_o;let Sn=Be.viewport;if(Be.viewport!==void 0&&(Be.viewport=void 0),G.setupLightsView(Be),_e===!0&&Ct.setGlobalState(te.clippingPlanes,Be),wn(ae,Ye,Be),ee.updateMultisampleRenderTarget(It),ee.updateRenderTargetMipmap(It),kt.has("WEBGL_multisampled_render_to_texture")===!1){let _t=!1;for(let En=0,ri=Fe.length;En0,Be.currentProgram=Sn,Be.uniformsList=null,Sn}function $r(ae){if(ae.uniformsList===null){let Fe=ae.currentProgram.getUniforms();ae.uniformsList=rb.seqWithValue(Fe.seq,ae.uniforms)}return ae.uniformsList}function Jr(ae,Fe){let Ye=U.get(ae);Ye.outputColorSpace=Fe.outputColorSpace,Ye.batching=Fe.batching,Ye.batchingColor=Fe.batchingColor,Ye.instancing=Fe.instancing,Ye.instancingColor=Fe.instancingColor,Ye.instancingMorph=Fe.instancingMorph,Ye.skinning=Fe.skinning,Ye.morphTargets=Fe.morphTargets,Ye.morphNormals=Fe.morphNormals,Ye.morphColors=Fe.morphColors,Ye.morphTargetsCount=Fe.morphTargetsCount,Ye.numClippingPlanes=Fe.numClippingPlanes,Ye.numIntersection=Fe.numClipIntersection,Ye.vertexAlphas=Fe.vertexAlphas,Ye.vertexTangents=Fe.vertexTangents,Ye.toneMapping=Fe.toneMapping}function ds(ae,Fe){if(ae.length===0)return null;if(ae.length===1)return ae[0].texture!==null?ae[0]:null;k.setFromMatrixPosition(Fe.matrixWorld);for(let Ye=0,Be=ae.length;Ye0),_t=!!Ye.morphAttributes.position,En=!!Ye.morphAttributes.normal,ri=!!Ye.morphAttributes.color,Hn=_o;Be.toneMapped&&(Je===null||Je.isXRRenderTarget===!0)&&(Hn=te.toneMapping);let On=Ye.morphAttributes.position||Ye.morphAttributes.normal||Ye.morphAttributes.color,Xi=On!==void 0?On.length:0,Pt=U.get(Be),Oi=G.state.lights;if(_e===!0&&(Pe===!0||ae!==st)){let jn=ae===st&&Be.id===Qe;Ct.setState(Be,ae,jn)}let xn=!1;Be.version===Pt.__version?(Pt.needsLights&&Pt.lightsStateVersion!==Oi.state.version||Pt.outputColorSpace!==wt||He.isBatchedMesh&&Pt.batching===!1||!He.isBatchedMesh&&Pt.batching===!0||He.isBatchedMesh&&Pt.batchingColor===!0&&He._colorsTexture===null||He.isBatchedMesh&&Pt.batchingColor===!1&&He._colorsTexture!==null||He.isInstancedMesh&&Pt.instancing===!1||!He.isInstancedMesh&&Pt.instancing===!0||He.isSkinnedMesh&&Pt.skinning===!1||!He.isSkinnedMesh&&Pt.skinning===!0||He.isInstancedMesh&&Pt.instancingColor===!0&&He.instanceColor===null||He.isInstancedMesh&&Pt.instancingColor===!1&&He.instanceColor!==null||He.isInstancedMesh&&Pt.instancingMorph===!0&&He.morphTexture===null||He.isInstancedMesh&&Pt.instancingMorph===!1&&He.morphTexture!==null||Pt.envMap!==Kt||Be.fog===!0&&Pt.fog!==It||Pt.numClippingPlanes!==void 0&&(Pt.numClippingPlanes!==Ct.numPlanes||Pt.numIntersection!==Ct.numIntersection)||Pt.vertexAlphas!==yn||Pt.vertexTangents!==Sn||Pt.morphTargets!==_t||Pt.morphNormals!==En||Pt.morphColors!==ri||Pt.toneMapping!==Hn||Pt.morphTargetsCount!==Xi||!!Pt.lightProbeGrid!=G.state.lightProbeGridArray.length>0)&&(xn=!0):(xn=!0,Pt.__version=Be.version);let ai=Pt.currentProgram;xn===!0&&(ai=Xa(Be,Fe,He),he&&Be.isNodeMaterial&&he.onUpdateProgram(Be,ai,Pt));let Vn=!1,wr=!1,Ur=!1,zn=ai.getUniforms(),vi=Pt.uniforms;if(L.useProgram(ai.program)&&(Vn=!0,wr=!0,Ur=!0),Be.id!==Qe&&(Qe=Be.id,wr=!0),Pt.needsLights){let jn=ds(G.state.lightProbeGridArray,He);Pt.lightProbeGrid!==jn&&(Pt.lightProbeGrid=jn,wr=!0)}if(Vn||st!==ae){L.buffers.depth.getReversed()&&ae.reversedDepth!==!0&&(ae._reversedDepth=!0,ae.updateProjectionMatrix()),zn.setValue(Le,"projectionMatrix",ae.projectionMatrix),zn.setValue(Le,"viewMatrix",ae.matrixWorldInverse);let si=zn.map.cameraPosition;si!==void 0&&si.setValue(Le,vt.setFromMatrixPosition(ae.matrixWorld)),ge.logarithmicDepthBuffer&&zn.setValue(Le,"logDepthBufFC",2/(Math.log(ae.far+1)/Math.LN2)),(Be.isMeshPhongMaterial||Be.isMeshToonMaterial||Be.isMeshLambertMaterial||Be.isMeshBasicMaterial||Be.isMeshStandardMaterial||Be.isShaderMaterial)&&zn.setValue(Le,"isOrthographic",ae.isOrthographicCamera===!0),st!==ae&&(st=ae,wr=!0,Ur=!0)}if(Pt.needsLights&&(Oi.state.sunShadowMap.length>0&&zn.setValue(Le,"sunShadowMap",Oi.state.sunShadowMap,ee),Oi.state.directionalShadowMap.length>0&&zn.setValue(Le,"directionalShadowMap",Oi.state.directionalShadowMap,ee),Oi.state.spotShadowMap.length>0&&zn.setValue(Le,"spotShadowMap",Oi.state.spotShadowMap,ee),Oi.state.pointShadowMap.length>0&&zn.setValue(Le,"pointShadowMap",Oi.state.pointShadowMap,ee)),He.isSkinnedMesh){zn.setOptional(Le,He,"bindMatrix"),zn.setOptional(Le,He,"bindMatrixInverse");let jn=He.skeleton;jn&&(jn.boneTexture===null&&jn.computeBoneTexture(),zn.setValue(Le,"boneTexture",jn.boneTexture,ee))}He.isBatchedMesh&&(zn.setOptional(Le,He,"batchingTexture"),zn.setValue(Le,"batchingTexture",He._matricesTexture,ee),zn.setOptional(Le,He,"batchingIdTexture"),zn.setValue(Le,"batchingIdTexture",He._indirectTexture,ee),zn.setOptional(Le,He,"batchingColorTexture"),He._colorsTexture!==null&&zn.setValue(Le,"batchingColorTexture",He._colorsTexture,ee));let pi=Ye.morphAttributes;if((pi.position!==void 0||pi.normal!==void 0||pi.color!==void 0)&&De.update(He,Ye,ai),(wr||Pt.receiveShadow!==He.receiveShadow)&&(Pt.receiveShadow=He.receiveShadow,zn.setValue(Le,"receiveShadow",He.receiveShadow)),(Be.isMeshStandardMaterial||Be.isMeshLambertMaterial||Be.isMeshPhongMaterial)&&Be.envMap===null&&Fe.environment!==null&&(vi.envMapIntensity.value=Fe.environmentIntensity),vi.dfgLUT!==void 0&&(vi.dfgLUT.value=AJ()),wr){if(zn.setValue(Le,"toneMappingExposure",te.toneMappingExposure),Pt.needsLights&&hs(vi,Ur),It&&Be.fog===!0&&tt.refreshFogUniforms(vi,It),tt.refreshMaterialUniforms(vi,Be,et,Xe,G.state.transmissionRenderTarget[ae.id]),Pt.needsLights&&Pt.lightProbeGrid){let jn=Pt.lightProbeGrid;vi.probesSH.value=jn.texture,vi.probesMin.value.copy(jn.boundingBox.min),vi.probesMax.value.copy(jn.boundingBox.max),vi.probesResolution.value.copy(jn.resolution)}rb.upload(Le,$r(Pt),vi,ee)}if(Be.isShaderMaterial&&Be.uniformsNeedUpdate===!0&&(rb.upload(Le,$r(Pt),vi,ee),Be.uniformsNeedUpdate=!1),Be.isSpriteMaterial&&zn.setValue(Le,"center",He.center),zn.setValue(Le,"modelViewMatrix",He.modelViewMatrix),zn.setValue(Le,"normalMatrix",He.normalMatrix),zn.setValue(Le,"modelMatrix",He.matrixWorld),Be.uniformsGroups!==void 0){let jn=Be.uniformsGroups;for(let si=0,da=jn.length;si0&&ee.useMultisampledRTT(ae)===!1?Be=U.get(ae).__webglMultisampledFramebuffer:Array.isArray(Kt)?Be=Kt[Ye]:Be=Kt,We.copy(ae.viewport),gt.copy(ae.scissor),Et=ae.scissorTest}else We.copy(Lt).multiplyScalar(et).floor(),gt.copy(sn).multiplyScalar(et).floor(),Et=pn;if(Ye!==0&&(Be=ke),L.bindFramebuffer(Le.FRAMEBUFFER,Be)&&L.drawBuffers(ae,Be),L.viewport(We),L.scissor(gt),L.setScissorTest(Et),He){let wt=U.get(ae.texture);Le.framebufferTexture2D(Le.FRAMEBUFFER,Le.COLOR_ATTACHMENT0,Le.TEXTURE_CUBE_MAP_POSITIVE_X+Fe,wt.__webglTexture,Ye)}else if(It){let wt=Fe;for(let Nt=0;Nt1&&Le.readBuffer(Le.COLOR_ATTACHMENT0+wt);let _t=So(Kt);if(_t.__formatReadable===!1){cn("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(_t.__typeReadable===!1){cn("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Fe>=0&&Fe<=ae.width-Be&&Ye>=0&&Ye<=ae.height-He&&Le.readPixels(Fe,Ye,Be,He,we.convert(yn),we.convert(Sn),It)}finally{let Kt=Je!==null?U.get(Je).__webglFramebuffer:null;L.bindFramebuffer(Le.FRAMEBUFFER,Kt)}}},this.readRenderTargetPixelsAsync=async function(ae,Fe,Ye,Be,He,It,Bt,wt=0){if(!(ae&&ae.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Nt=U.get(ae).__webglFramebuffer;if(ae.isWebGLCubeRenderTarget&&Bt!==void 0&&(Nt=Nt[Bt]),Nt)if(Fe>=0&&Fe<=ae.width-Be&&Ye>=0&&Ye<=ae.height-He){L.bindFramebuffer(Le.FRAMEBUFFER,Nt);let Kt=ae.textures[wt],yn=Kt.format,Sn=Kt.type;ae.textures.length>1&&Le.readBuffer(Le.COLOR_ATTACHMENT0+wt);let _t=So(Kt);if(_t.__formatReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(_t.__typeReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");let En=Le.createBuffer();Le.bindBuffer(Le.PIXEL_PACK_BUFFER,En),Le.bufferData(Le.PIXEL_PACK_BUFFER,It.byteLength,Le.STREAM_READ),Le.readPixels(Fe,Ye,Be,He,we.convert(yn),we.convert(Sn),0),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,null);let ri=Je!==null?U.get(Je).__webglFramebuffer:null;L.bindFramebuffer(Le.FRAMEBUFFER,ri);let Hn=Le.fenceSync(Le.SYNC_GPU_COMMANDS_COMPLETE,0);return Le.flush(),await q5(Le,Hn,4),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,En),Le.getBufferSubData(Le.PIXEL_PACK_BUFFER,0,It),Le.bindBuffer(Le.PIXEL_PACK_BUFFER,null),Le.deleteBuffer(En),Le.deleteSync(Hn),It}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(ae,Fe=null,Ye=0){let Be=Math.pow(2,-Ye),He=Math.floor(ae.image.width*Be),It=Math.floor(ae.image.height*Be),Bt=Fe!==null?Fe.x:0,wt=Fe!==null?Fe.y:0;ee.setTexture2D(ae,0),Le.copyTexSubImage2D(Le.TEXTURE_2D,Ye,0,0,Bt,wt,He,It),L.unbindTexture()},this.copyTextureToTexture=function(ae,Fe,Ye=null,Be=null,He=0,It=0){let Bt,wt,Nt,Kt,yn,Sn,_t,En,ri,Hn=ae.isCompressedTexture?ae.mipmaps[It]:ae.image;if(Ye!==null)Bt=Ye.max.x-Ye.min.x,wt=Ye.max.y-Ye.min.y,Nt=Ye.isBox3?Ye.max.z-Ye.min.z:1,Kt=Ye.min.x,yn=Ye.min.y,Sn=Ye.isBox3?Ye.min.z:0;else{let vi=Math.pow(2,-He);Bt=Math.floor(Hn.width*vi),wt=Math.floor(Hn.height*vi),ae.isDataArrayTexture?Nt=Hn.depth:ae.isData3DTexture?Nt=Math.floor(Hn.depth*vi):Nt=1,Kt=0,yn=0,Sn=0}Be!==null?(_t=Be.x,En=Be.y,ri=Be.z):(_t=0,En=0,ri=0);let On=we.convert(Fe.format),Xi=we.convert(Fe.type),Pt;Fe.isData3DTexture?(ee.setTexture3D(Fe,0),Pt=Le.TEXTURE_3D):Fe.isDataArrayTexture||Fe.isCompressedArrayTexture?(ee.setTexture2DArray(Fe,0),Pt=Le.TEXTURE_2D_ARRAY):(ee.setTexture2D(Fe,0),Pt=Le.TEXTURE_2D),L.activeTexture(Le.TEXTURE0),L.pixelStorei(Le.UNPACK_FLIP_Y_WEBGL,Fe.flipY),L.pixelStorei(Le.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Fe.premultiplyAlpha),L.pixelStorei(Le.UNPACK_ALIGNMENT,Fe.unpackAlignment);let Oi=L.getParameter(Le.UNPACK_ROW_LENGTH),xn=L.getParameter(Le.UNPACK_IMAGE_HEIGHT),ai=L.getParameter(Le.UNPACK_SKIP_PIXELS),Vn=L.getParameter(Le.UNPACK_SKIP_ROWS),wr=L.getParameter(Le.UNPACK_SKIP_IMAGES);L.pixelStorei(Le.UNPACK_ROW_LENGTH,Hn.width),L.pixelStorei(Le.UNPACK_IMAGE_HEIGHT,Hn.height),L.pixelStorei(Le.UNPACK_SKIP_PIXELS,Kt),L.pixelStorei(Le.UNPACK_SKIP_ROWS,yn),L.pixelStorei(Le.UNPACK_SKIP_IMAGES,Sn);let Ur=ae.isDataArrayTexture||ae.isData3DTexture,zn=Fe.isDataArrayTexture||Fe.isData3DTexture;if(ae.isDepthTexture){let vi=U.get(ae),pi=U.get(Fe),jn=U.get(vi.__renderTarget),si=U.get(pi.__renderTarget);L.bindFramebuffer(Le.READ_FRAMEBUFFER,jn.__webglFramebuffer),L.bindFramebuffer(Le.DRAW_FRAMEBUFFER,si.__webglFramebuffer);for(let da=0;da{let e,t=new Set,i=(f,p)=>{let h=typeof f=="function"?f(e):f;if(!Object.is(h,e)){let _=e;e=p??(typeof h!="object"||h===null)?h:Object.assign({},e,h),t.forEach(g=>g(e,_))}},r=()=>e,l={setState:i,getState:r,getInitialState:()=>c,subscribe:f=>(t.add(f),()=>t.delete(f))},c=e=n(i,r,l);return l},F8=(n=>n?D8(n):D8);var{useSyncExternalStoreWithSelector:WJ}=z8.default,jJ=n=>n;function QJ(n,e=jJ,t){let i=WJ(n.subscribe,n.getState,n.getInitialState,e,t);return U8.default.useDebugValue(i),i}var P8=(n,e)=>{let t=F8(n),i=(r,a=e)=>QJ(t,r,a);return Object.assign(i,t),i},q8=((n,e)=>n?P8(n,e):P8);var XJ=n=>typeof n=="object"&&typeof n.then=="function",I_=[];function B8(n,e,t=(i,r)=>i===r){if(n===e)return!0;if(!n||!e)return!1;let i=n.length;if(e.length!==i)return!1;for(let r=0;r0&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.remove,i.lifespan)),a.response;if(!t)throw a.promise}let r={keys:e,equal:i.equal,remove:()=>{let a=I_.indexOf(r);a!==-1&&I_.splice(a,1)},promise:(XJ(n)?n:n(...e)).then(a=>{r.response=a,i.lifespan&&i.lifespan>0&&(r.timeout=setTimeout(r.remove,i.lifespan))}).catch(a=>r.error=a)};if(I_.push(r),!t)throw r.promise}var V8=(n,e,t)=>H8(n,e,!1,t),G8=(n,e,t)=>void H8(n,e,!0,t);var W8=n=>{if(n===void 0||n.length===0)I_.splice(0,I_.length);else{let e=I_.find(t=>B8(n,t.keys,t.equal));e&&e.remove()}};var ar=ci(tr(),1),Mse=(()=>{var n,e;return typeof window<"u"&&(((n=window.document)==null?void 0:n.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative")})()?ar.default.useLayoutEffect:ar.default.useEffect;function W1(n,e,t){if(!n)return;if(t(n)===!0)return n;let i=e?n.return:n.child;for(;i;){let r=W1(i,e,t);if(r)return r;i=e?null:i.sibling}}function j8(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}var gD=j8(ar.default.createContext(null)),G1=class extends ar.default.Component{render(){return ar.default.createElement(gD.Provider,{value:this._reactInternals},this.props.children)}};function I2(){let n=ar.default.useContext(gD);if(n===null)throw new Error("its-fine: useFiber must be called within a !");let e=ar.default.useId();return ar.default.useMemo(()=>{for(let t of[n,n?.alternate]){if(!t)continue;let i=W1(t,!1,r=>{let a=r.memoizedState;for(;a;){if(a.memoizedState===e)return!0;a=a.next}});if(i)return i}},[n,e])}var YJ=Symbol.for("react.context"),KJ=n=>n!==null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===YJ;function ZJ(){let n=I2(),[e]=ar.default.useState(()=>new Map);e.clear();let t=n;for(;t;){let i=t.type;KJ(i)&&i!==gD&&!e.has(i)&&e.set(i,ar.default.use(j8(i))),t=t.return}return e}function Q8(){let n=ZJ();return ar.default.useMemo(()=>Array.from(n.keys()).reduce((e,t)=>i=>ar.default.createElement(e,null,ar.default.createElement(t.Provider,{...i,value:n.get(t)})),e=>ar.default.createElement(G1,{...e})),[n])}function $J(n){if(typeof requestAnimationFrame=="function"){let t=requestAnimationFrame(n);return()=>cancelAnimationFrame(t)}let e=setTimeout(n,16);return()=>clearTimeout(e)}function X8(){if(!ar.default.Activity)throw new Error("its-fine: useActivityBridge requires React 19.2 or later!");let n=I2(),[e]=ar.default.useState(()=>{let t=[],i=!1;W1(n,!0,c=>{var f,p;if(c.elementType===ar.default.Activity){let h=((f=c.child)==null?void 0:f.tag)===22?c.child.stateNode:null;if(typeof h?._visibility!="number")throw new Error("its-fine: unsupported React Activity internals!");t.push(h)}else c.tag===22&&((p=c.return)==null?void 0:p.elementType)!==ar.default.Activity&&(i=!0)});let r="hidden",a=new Set,s,l={mounted:!1,connected:!1,subscribe(c){return a.add(c),()=>{a.delete(c)}},sync(c){l.mounted&&!l.connected&&i&&t.length>0?s||(s=$J(()=>{s=void 0,l.sync(!0)})):(s?.(),s=void 0);let f=r;if(l.mounted?l.connected?f="visible":c&&(f=t.every(p=>(p._visibility&1)!==0)?"visible":"hidden"):f="hidden",r!==f){r=f;for(let p of a)p()}},Bridge({children:c}){return ar.default.createElement(ar.default.Activity,{mode:ar.default.useSyncExternalStore(l.subscribe,()=>r,()=>"hidden")},c)}};return l});return ar.default.useInsertionEffect(()=>(e.mounted=!0,queueMicrotask(()=>e.sync(!1)),()=>{e.mounted=!1,queueMicrotask(()=>e.sync(!1))}),[e]),ar.default.useLayoutEffect(()=>(e.connected=!0,e.sync(!1),()=>{e.connected=!1,e.sync(!0)}),[e]),e.Bridge}var Qa=ci(S3());var k_=((n,e)=>typeof window<"u"&&(((n=window.document)==null?void 0:n.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative"))()?di.useLayoutEffect:di.useEffect;function LD(n){let e=di.useRef(n);return k_(()=>void(e.current=n),[n]),e}function JJ({promise:n,onSettled:e}){return di.use(n),k_(e,[e]),null}function lH(){let[n,e]=di.useState(null),t=di.useCallback(()=>e(null),[]),i=di.useCallback(a=>e(s=>s??Promise.resolve(a).then(()=>{},()=>{})),[]);return[n?(0,nd.jsx)(di.Suspense,{fallback:null,children:(0,nd.jsx)(JJ,{promise:n,onSettled:t})}):null,i]}var eee=di.Activity?X8:()=>di.Fragment;function uH(){let n=I2(),e=Q8(),t=eee();return di.useMemo(()=>({children:i})=>{let a=!!W1(n,!0,s=>s.type===di.StrictMode)?di.StrictMode:di.Fragment;return(0,nd.jsx)(a,{children:(0,nd.jsx)(t,{children:(0,nd.jsx)(e,{children:i})})})},[n,e,t])}function cH({set:n}){return k_(()=>(n(new Promise(()=>null)),()=>n(!1)),[n]),null}var fH=(n=>(n=class extends di.Component{constructor(...t){super(...t),this.state={error:!1}}componentDidCatch(t){this.props.set(t)}render(){return this.state.error?null:this.props.children}},n.getDerivedStateFromError=()=>({error:!0}),n))();function ND(n){let e=n.root;for(;e.getState().previousRoot;)e=e.getState().previousRoot;return e}var dH=n=>n&&n.isOrthographicCamera,hH=n=>n&&n.hasOwnProperty("current"),tee=n=>n!=null&&(typeof n=="string"||typeof n=="number"||n.isColor),Y8=()=>{};function kD(n){var e;let t=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],t),n[1]):n}function nee(n){if(typeof window>"u"||typeof window.matchMedia!="function"||!window.devicePixelRatio)return()=>{};let e,t=()=>{try{var a,s;e=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),typeof((a=e)==null?void 0:a.addEventListener)=="function"?e.addEventListener("change",r):(s=e)==null||s.addListener==null||s.addListener(r)}catch{e=void 0}},i=()=>{var a,s;typeof((a=e)==null?void 0:a.removeEventListener)=="function"?e.removeEventListener("change",r):(s=e)==null||s.removeListener==null||s.removeListener(r),e=void 0},r=()=>{i(),t(),n()};return t(),i}function L_(n){var e;return(e=n.__r3f)==null?void 0:e.root.getState()}var Nr={obj:n=>n===Object(n)&&!Nr.arr(n)&&typeof n!="function",fun:n=>typeof n=="function",str:n=>typeof n=="string",num:n=>typeof n=="number",boo:n=>typeof n=="boolean",und:n=>n===void 0,nul:n=>n===null,arr:n=>Array.isArray(n),equ(n,e,{arrays:t="shallow",objects:i="reference",strict:r=!0}={}){if(typeof n!=typeof e||!!n!=!!e)return!1;if(Nr.str(n)||Nr.num(n)||Nr.boo(n))return n===e;let a=Nr.obj(n);if(a&&i==="reference")return n===e;let s=Nr.arr(n);if(s&&t==="reference")return n===e;if((s||a)&&n===e)return!0;let l;for(l in n)if(!(l in e))return!1;if(a&&t==="shallow"&&i==="shallow"){for(l in r?e:n)if(!Nr.equ(n[l],e[l],{strict:r,objects:"reference"}))return!1}else for(l in r?e:n)if(n[l]!==e[l])return!1;if(Nr.und(l)){if(s&&n.length===0&&e.length===0||a&&Object.keys(n).length===0&&Object.keys(e).length===0)return!0;if(n!==e)return!1}return!0}};function pH(n){let e={nodes:{},materials:{},meshes:{}};return n&&n.traverse(t=>{t.name&&(e.nodes[t.name]=t),t.material&&!e.materials[t.material.name]&&(e.materials[t.material.name]=t.material),t.isMesh&&!e.meshes[t.name]&&(e.meshes[t.name]=t)}),e}function mH(n){n.type!=="Scene"&&(n.dispose==null||n.dispose());for(let e in n){let t=n[e];t?.type!=="Scene"&&(t==null||t.dispose==null||t.dispose())}}var _H=["children","key","ref"];function TD(n){let e={};for(let t in n)_H.includes(t)||(e[t]=n[t]);return e}function k2(n,e,t,i){let r=n,a=r?.__r3f;return a||(a={root:e,type:t,parent:null,children:[],props:TD(i),object:r,eventCount:0,handlers:{},previousVisible:void 0,isHidden:!1},r&&(r.__r3f=a)),a}function Y1(n,e){if(!e.includes("-"))return{root:n,key:e,target:n[e]};if(e in n)return{root:n,key:e,target:n[e]};let t=n,i=e.split("-");for(let r of i){if(typeof t!="object"||t===null){if(t!==void 0){let a=i.slice(i.indexOf(r)).join("-");return{root:t,key:a,target:void 0}}return{root:n,key:e,target:void 0}}e=r,n=t,t=t[e]}return{root:n,key:e,target:t}}var K8=/-\d+$/;function O2(n,e){if(Nr.str(e.props.attach)){if(K8.test(e.props.attach)){let r=e.props.attach.replace(K8,""),{root:a,key:s}=Y1(n.object,r);Array.isArray(a[s])||(a[s]=[])}let{root:t,key:i}=Y1(n.object,e.props.attach);e.previousAttach=t[i],t[i]=e.object}else Nr.fun(e.props.attach)&&(e.previousAttach=e.props.attach(n.object,e.object))}function D2(n,e){if(Nr.str(e.props.attach)){let{root:t,key:i}=Y1(n.object,e.props.attach),r=e.previousAttach;r===void 0?delete t[i]:t[i]=r}else e.previousAttach==null||e.previousAttach(n.object,e.object);delete e.previousAttach}var MD=[..._H,"args","dispose","attach","object","onUpdate","dispose"],Z8=new Map;function iee(n){let e=Z8.get(n.constructor);try{e||(e=new n.constructor,Z8.set(n.constructor,e))}catch{}return e}function ree(n,e){let t={};for(let i in e)if(!MD.includes(i)&&!Nr.equ(e[i],n.props[i])){t[i]=e[i];for(let r in e)r.startsWith(`${i}-`)&&(t[r]=e[r])}for(let i in n.props){if(MD.includes(i)||e.hasOwnProperty(i))continue;let{root:r,key:a}=Y1(n.object,i);if(r.constructor&&r.constructor.length===0){let s=iee(r);Nr.und(s)||(t[i]=s[a])}else t[i]=0}return t}var aee=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],see=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function jh(n,e){var t;let i=n.__r3f,r=i&&ND(i).getState(),a=i?.eventCount;for(let l in e){let c=e[l];if(MD.includes(l))continue;if(i&&see.test(l)){typeof c=="function"?i.handlers[l]=c:delete i.handlers[l],i.eventCount=Object.keys(i.handlers).length;continue}if(c===void 0)continue;if(l==="visible"&&i!=null&&i.isHidden&&i.previousVisible!==void 0){i.previousVisible=c;continue}let{root:f,key:p,target:h}=Y1(n,l);if(h===void 0&&(typeof f!="object"||f===null))throw Error(`R3F: Cannot set "${l}". Ensure it is an object before setting "${p}".`);if(h instanceof zc&&c instanceof zc)h.mask=c.mask;else if(h instanceof Vt&&tee(c))h.set(c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&typeof h.copy=="function"&&c!=null&&c.constructor&&h.constructor===c.constructor)h.copy(c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&Array.isArray(c))typeof h.fromArray=="function"?h.fromArray(c):h.set(...c);else if(h!==null&&typeof h=="object"&&typeof h.set=="function"&&typeof c=="number")typeof h.setScalar=="function"?h.setScalar(c):h.set(c);else if(f instanceof Ga&&p==="uniforms"&&Nr.obj(c)){Nr.obj(f.uniforms)||(f.uniforms={});let _=f.uniforms,g=c;for(let E in g){let x=g[E],S=_[E];S?Object.assign(S,x):_[E]={...x}}}else{var s;f[p]=c,r&&!r.linear&&aee.includes(p)&&(s=f[p])!=null&&s.isTexture&&f[p].format===wa&&f[p].type===ja&&(f[p].colorSpace=Yr)}}if(i!=null&&i.parent&&r!=null&&r.internal&&(t=i.object)!=null&&t.isObject3D&&a!==i.eventCount){let l=i.object,c=r.internal.interaction.indexOf(l);c>-1&&r.internal.interaction.splice(c,1),i.eventCount&&l.raycast!==null&&r.internal.interaction.push(l)}return i&&i.props.attach===void 0&&(i.object.isBufferGeometry?i.props.attach="geometry":i.object.isMaterial&&(i.props.attach="material")),i&&Z1(i),n}function Z1(n){var e;if(!n.parent)return;n.props.onUpdate==null||n.props.onUpdate(n.object);let t=(e=n.root)==null||e.getState==null?void 0:e.getState();t&&t.internal.frames===0&&t.invalidate()}function oee(n,e){n.manual||(dH(n)?(n.left=e.width/-2,n.right=e.width/2,n.top=e.height/2,n.bottom=e.height/-2):n.aspect=e.width/e.height,n.updateProjectionMatrix())}var Rs=n=>n?.isObject3D;function Q1(n){return(n.eventObject||n.object).uuid+"/"+n.index+n.instanceId}function gH(n,e,t,i){let r=t.get(e);r&&(t.delete(e),t.size===0&&(n.delete(i),r.target.releasePointerCapture(i)))}function lee(n,e,t){let{internal:i}=n.getState();for(let r=0;r{if(r.eventObject===e||r.object===e){i.hovered.delete(a);let s={...r,eventObject:r.eventObject===e?t:r.eventObject,object:r.object===e?t:r.object};i.hovered.set(Q1(s),s)}}),i.capturedMap.forEach(r=>{for(let[a,s]of Array.from(r)){let{intersection:l}=s;a!==e&&l.object!==e&&l.eventObject!==e||(a===e&&r.delete(a),r.set(a===e?t:a,{...s,intersection:{...l,object:l.object===e?t:l.object,eventObject:l.eventObject===e?t:l.eventObject}}))}})}function uee(n,e){let{internal:t}=n.getState();t.interaction=t.interaction.filter(i=>i!==e),t.initialHits=t.initialHits.filter(i=>i!==e),t.hovered.forEach((i,r)=>{(i.eventObject===e||i.object===e)&&t.hovered.delete(r)}),t.capturedMap.forEach((i,r)=>{gH(t.capturedMap,e,i,r)})}function vH(n){function e(c){let{internal:f}=n.getState(),p=c.offsetX-f.initialClick[0],h=c.offsetY-f.initialClick[1];return Math.round(Math.sqrt(p*p+h*h))}function t(c){return c.filter(f=>["Move","Over","Enter","Out","Leave"].some(p=>{var h;return(h=f.__r3f)==null?void 0:h.handlers["onPointer"+p]}))}function i(c,f){let p=n.getState(),h=new Set,_=[],g=f?f(p.internal.interaction):p.internal.interaction;for(let v=0;v{let O=L_(v.object),k=L_(M.object);return!O||!k?v.distance-M.distance:k.events.priority-O.events.priority||v.distance-M.distance}).filter(v=>{let M=Q1(v);return h.has(M)?!1:(h.add(M),!0)});p.events.filter&&(x=p.events.filter(x,p));for(let v of x){let M=v.object;for(;M;){var S;(S=M.__r3f)!=null&&S.eventCount&&_.push({...v,eventObject:M}),M=M.parent}}if("pointerId"in c&&p.internal.capturedMap.has(c.pointerId))for(let v of p.internal.capturedMap.get(c.pointerId).values())h.has(Q1(v.intersection))||_.push(v.intersection);return _}function r(c,f,p,h){if(c.length){let _={stopped:!1};for(let g of c){let E=L_(g.object);if(E||g.object.traverseAncestors(x=>{let S=L_(x);if(S)return E=S,!1}),E){let{raycaster:x,pointer:S,camera:v,internal:M}=E,O=new ve(S.x,S.y,0).unproject(v),k=Z=>{var te,j;return(te=(j=M.capturedMap.get(Z))==null?void 0:j.has(g.eventObject))!=null?te:!1},q=Z=>{let te={intersection:g,target:f.target};M.capturedMap.has(Z)?M.capturedMap.get(Z).set(g.eventObject,te):M.capturedMap.set(Z,new Map([[g.eventObject,te]])),f.target.setPointerCapture(Z)},G=Z=>{let te=M.capturedMap.get(Z);te&&gH(M.capturedMap,g.eventObject,te,Z)},Q={};for(let Z in f){let te=f[Z];typeof te!="function"&&(Q[Z]=te)}let H={...g,...Q,pointer:S,intersections:c,stopped:_.stopped,delta:p,unprojectedPoint:O,ray:x.ray,camera:v,stopPropagation(){let Z="pointerId"in f&&M.capturedMap.get(f.pointerId);if((!Z||Z.has(g.eventObject))&&(H.stopped=_.stopped=!0,M.hovered.size&&Array.from(M.hovered.values()).find(te=>te.eventObject===g.eventObject))){let te=c.slice(0,c.indexOf(g));a([...te,g])}},target:{hasPointerCapture:k,setPointerCapture:q,releasePointerCapture:G},currentTarget:{hasPointerCapture:k,setPointerCapture:q,releasePointerCapture:G},nativeEvent:f};if(h(H),_.stopped===!0)break}}}return c}function a(c){let{internal:f}=n.getState();for(let p of f.hovered.values())if(!c.length||!c.find(h=>h.object===p.object&&h.index===p.index&&h.instanceId===p.instanceId)){let _=p.eventObject.__r3f;if(f.hovered.delete(Q1(p)),_!=null&&_.eventCount){let g=_.handlers,E={...p,intersections:c};g.onPointerOut==null||g.onPointerOut(E),g.onPointerLeave==null||g.onPointerLeave(E)}}}function s(c,f){for(let p=0;pa([]);case"onLostPointerCapture":return f=>{let{internal:p}=n.getState();"pointerId"in f&&p.capturedMap.has(f.pointerId)&&requestAnimationFrame(()=>{p.capturedMap.has(f.pointerId)&&(p.capturedMap.delete(f.pointerId),a([]))})}}return function(p){let{onPointerMissed:h,internal:_}=n.getState();_.lastEvent.current=p;let g=c==="onPointerMove",E=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",S=i(p,g?t:void 0),v=E?e(p):0;c==="onPointerDown"&&(_.initialClick=[p.offsetX,p.offsetY],_.initialHits=S.map(O=>O.eventObject)),E&&!S.length&&v<=2&&(s(p,_.interaction),h&&h(p)),g&&a(S);function M(O){let k=O.eventObject,q=k.__r3f;if(!(q!=null&&q.eventCount))return;let G=q.handlers;if(g){if(G.onPointerOver||G.onPointerEnter||G.onPointerOut||G.onPointerLeave){let Q=Q1(O),H=_.hovered.get(Q);H?H.stopped&&O.stopPropagation():(_.hovered.set(Q,O),G.onPointerOver==null||G.onPointerOver(O),G.onPointerEnter==null||G.onPointerEnter(O))}G.onPointerMove==null||G.onPointerMove(O)}else{let Q=G[c];Q?(!E||_.initialHits.includes(k))&&(s(p,_.interaction.filter(H=>!_.initialHits.includes(H))),Q(O)):E&&_.initialHits.includes(k)&&s(p,_.interaction.filter(H=>!_.initialHits.includes(H)))}}r(S,p,v,M)}}return{handlePointer:l}}var OD=n=>typeof n?.then=="function",cee=n=>Object.assign(Promise.resolve(n),{status:"fulfilled",value:n}),fee=n=>{let e=Promise.reject(n);return e.catch(()=>{}),Object.assign(e,{status:"rejected",reason:n})},dee=()=>{let n,e,t=new Promise((i,r)=>{n=a=>{Object.assign(t,{status:"fulfilled",value:a}),i(a)},e=a=>{Object.assign(t,{status:"rejected",reason:a}),r(a)}});return t.status="pending",t.catch(()=>{}),{promise:t,resolve:n,reject:e}},DD=n=>!!(n!=null&&n.render);function hee(n,e){let t={canvas:n,powerPreference:"high-performance",antialias:!0,alpha:!0};return typeof e=="function"?e(t):DD(e)?e:new H1({...t,...e})}function pee(n){if((n.hasInitialized==null?void 0:n.hasInitialized())===!1)return;let e=X1(()=>{var t;return n.dispose?n.dispose():(t=n.renderLists)==null||t.dispose==null?void 0:t.dispose()});if(OD(e))return Promise.resolve(e).catch(t=>console.warn("[R3F] Error disposing renderer",t)).then(()=>X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss()));X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss())}function mee(n,e){if(n){if(e)return pee(n);X1(()=>{var t;return(t=n.renderLists)==null||t.dispose==null?void 0:t.dispose()}),X1(()=>n.forceContextLoss==null?void 0:n.forceContextLoss())}}function X1(n){try{return n()}catch(e){console.warn("[R3F] Error while unmounting root; teardown may be incomplete:",e)}}var FD=di.createContext(null),_ee=(n,e)=>{let t=q8((l,c)=>{let f=new ve,p=new ve,h=new ve;function _(v=c().camera,M=p,O=c().size){let{width:k,height:q,top:G,left:Q}=O,H=k/q;M.isVector3?h.copy(M):h.set(...M);let Z=v.getWorldPosition(f).distanceTo(h);if(dH(v))return{width:k/v.zoom,height:q/v.zoom,top:G,left:Q,factor:1,distance:Z,aspect:H};{let te=v.fov*Math.PI/180,j=2*Math.tan(te/2)*Z,he=j*(k/q);return{width:he,height:j,top:G,left:Q,factor:k/he,distance:Z,aspect:H}}}let g,E=v=>l(M=>({performance:{...M.performance,current:v}})),x=new ut;return{set:l,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(v=1)=>n(c(),v),advance:(v,M)=>e(v,M,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new H0,pointer:x,mouse:x,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{let v=c();g&&clearTimeout(g),v.performance.current!==v.performance.min&&E(v.performance.min),g=setTimeout(()=>E(c().performance.max),v.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:_},setEvents:v=>l(M=>({...M,events:{...M.events,...v}})),setSize:(v,M,O=0,k=0)=>{let q=c().camera,G={width:v,height:M,top:O,left:k};l(Q=>({size:G,viewport:{...Q.viewport,..._(q,p,G)}}))},setDpr:v=>l(M=>{let O=kD(v);return{viewport:{...M.viewport,dpr:O,initialDpr:M.viewport.initialDpr||O}}}),setFrameloop:(v="always")=>{let M=c().clock;M.stop(),M.elapsedTime=0,v!=="never"&&(M.start(),M.elapsedTime=0),l(()=>({frameloop:v}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:di.createRef(),active:!1,frames:0,priority:0,subscribe:(v,M,O)=>{let k=c().internal;return k.priority=k.priority+(M>0?1:0),k.subscribers.push({ref:v,priority:M,store:O}),k.subscribers=k.subscribers.sort((q,G)=>q.priority-G.priority),()=>{let q=c().internal;q!=null&&q.subscribers&&(q.priority=q.priority-(M>0?1:0),q.subscribers=q.subscribers.filter(G=>G.ref!==v))}}}}}),i=t.getState(),r=i.size,a=i.viewport.dpr,s=i.camera;return t.subscribe(()=>{let{camera:l,size:c,viewport:f,gl:p,set:h}=t.getState();if(c.width!==r.width||c.height!==r.height||f.dpr!==a){r=c,a=f.dpr,oee(l,c),f.dpr>0&&p.setPixelRatio(f.dpr);let _=typeof HTMLCanvasElement<"u"&&p.domElement instanceof HTMLCanvasElement;p.setSize(c.width,c.height,_)}l!==s&&(s=l,h(_=>({viewport:{..._.viewport,..._.viewport.getCurrentViewport(l)}})))}),t.subscribe(l=>n(l)),t};function PD(){let n=di.useContext(FD);if(!n)throw new Error("R3F: Hooks can only be used within the Canvas component!");return n}function UD(n=t=>t,e){return PD()(n,e)}function $1(n,e=0){let t=PD(),i=t.getState().internal.subscribe,r=LD(n);return k_(()=>i(r,e,t),[e,i,t]),null}var $8=new WeakMap,gee=n=>{var e;return typeof n=="function"&&(n==null||(e=n.prototype)==null?void 0:e.constructor)===n};function yH(n,e){return function(t,...i){let r;return gee(t)?(r=$8.get(t),r||(r=new t,$8.set(t,r))):r=t,n&&n(r),Promise.all(i.map(a=>new Promise((s,l)=>r.load(a,c=>{Rs(c?.scene)&&Object.assign(c,pH(c.scene)),s(c)},e,c=>l(new Error(`Could not load ${a}: ${c?.message}`))))))}}function zD(n,e,t,i){let r=Array.isArray(e)?e:[e],a=V8(yH(t,i),[n,...r],{equal:Nr.equ});return Array.isArray(e)?a:a[0]}zD.preload=function(n,e,t){let i=Array.isArray(e)?e:[e];return G8(yH(t),[n,...i])};zD.clear=function(n,e){let t=Array.isArray(e)?e:[e];return W8([n,...t])};var vee=1,J8=8,N2=32,eH=2,yee=268435456,bee={objects:"shallow"};function See(n,e){if(!e&&typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement&&n.parentElement){let{width:t,height:i,top:r,left:a}=n.parentElement.getBoundingClientRect();return{width:t,height:i,top:r,left:a}}else if(!e&&typeof OffscreenCanvas<"u"&&n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...e}}function Eee({store:n,configuration:e},t,i){let{gl:r,scene:a,camera:s,shadows:l=!1,linear:c=!1,flat:f=!1,legacy:p=!1,frameloop:h="always",dpr:_=[1,2],performance:g,onPointerMissed:E}=i,x=See(t,i.size),S={...i,shadows:l,linear:c,flat:f,legacy:p,frameloop:h,size:x},v=n.getState(),M=v.gl,O=e.previous,k=te=>!O||!Nr.equ(S[te],O[te],bee);e.previous=void 0;let q=v.raycaster;if(q||v.set({raycaster:q=new B0}),k("raycaster")){var G;let{params:te,...j}=(G=i.raycaster)!=null?G:{};jh(q,{...j,params:{...q.params,...te}})}if(!v.camera||v.camera===e.camera&&k("camera")){e.camera=s;let te=s?.isCamera,j=te?s:i.orthographic?new Gc(0,0,0,0,.1,1e3):new yr(75,0,.1,1e3);te||(j.position.z=5,s&&(jh(j,s),j.manual||("aspect"in s||"left"in s||"right"in s||"bottom"in s||"top"in s)&&(j.manual=!0,j.updateProjectionMatrix())),!v.camera&&!(s!=null&&s.rotation)&&j.lookAt(0,0,0)),v.set({camera:j}),q.camera=j}if(!v.scene){let te;a!=null&&a.isScene?(te=a,k2(te,n,"",{})):(te=new f_,k2(te,n,"",{}),a&&jh(te,a)),v.set({scene:te})}if(i.events&&!v.events.handlers&&v.set({events:i.events(n)}),k("size")&&v.setSize(x.width,x.height,x.top,x.left),v.viewport.dpr!==kD(_)&&v.setDpr(_),k("frameloop")&&v.setFrameloop(h),k("onPointerMissed")&&v.set({onPointerMissed:E}),g&&k("performance")&&v.set(te=>({performance:{...te.performance,...g}})),!v.xr){var Q;let te=(ke,Me)=>{let ze=n.getState();ze.frameloop!=="never"&&GD(ke,!0,ze,Me)},j=()=>{let ke=n.getState();ke.gl.xr.enabled=ke.gl.xr.isPresenting,ke.gl.xr.setAnimationLoop(ke.gl.xr.isPresenting?te:null),ke.gl.xr.isPresenting||q2(ke)},he={connect(){let ke=n.getState().gl;ke.xr.addEventListener("sessionstart",j),ke.xr.addEventListener("sessionend",j)},disconnect(){let ke=n.getState().gl;ke.xr.removeEventListener("sessionstart",j),ke.xr.removeEventListener("sessionend",j)}};typeof((Q=M.xr)==null?void 0:Q.addEventListener)=="function"&&he.connect(),v.set({xr:he})}if(M.shadowMap&&k("shadows")){let te=M.shadowMap.enabled,j=M.shadowMap.type;if(M.shadowMap.enabled=!!l,Nr.boo(l))M.shadowMap.type=E_;else if(Nr.str(l)){var H;let he={basic:n2,percentage:Gh,soft:E_,variance:Zf};M.shadowMap.type=(H=he[l])!=null?H:E_}else Nr.obj(l)&&Object.assign(M.shadowMap,l);(te!==M.shadowMap.enabled||j!==M.shadowMap.type)&&(M.shadowMap.needsUpdate=!0)}let Z=r&&!Nr.fun(r)&&!DD(r)?r:void 0;k("legacy")&&(Gn.enabled=!p,v.set({legacy:p})),k("linear")&&(Z?.outputColorSpace===void 0&&(M.outputColorSpace=c?Oh:Yr),v.set({linear:c})),k("flat")&&(Z?.toneMapping===void 0&&(M.toneMapping=f?_o:W0),v.set({flat:f})),Z&&k("gl")&&jh(M,Z),e.previous=S}function wee(n){let e=()=>{var r;return(r=n.store.getState().gl)==null?void 0:r.xr},t=()=>{var r,a,s,l;let c=n.store.getState();if((r=e())!=null&&r.isPresenting||(a=e())!=null&&a.getSession!=null&&a.getSession()){e().addEventListener("sessionend",t);return}(s=e())==null||s.removeEventListener==null||s.removeEventListener("sessionend",t);let f=n.configuration.previous;if(!f)return;let p=(l=f.dpr)!=null?l:[1,2];c.viewport.dpr!==kD(p)&&c.setDpr(p)},i=nee(t);return()=>{var r;i(),(r=e())==null||r.removeEventListener==null||r.removeEventListener("sessionend",t)}}var xee={name:"@react-three/fiber",version:"9.8.2",description:"A React renderer for Threejs",keywords:["react","renderer","fiber","three","threejs"],author:"Paul Henschel (https://github.com/drcmda)",license:"MIT",maintainers:["Josh Ellis (https://github.com/joshuaellis)","Cody Bennett (https://github.com/codyjasonbennett)","Kris Baumgarter (https://github.com/krispya)"],bugs:{url:"https://github.com/pmndrs/react-three-fiber/issues"},homepage:"https://github.com/pmndrs/react-three-fiber#readme",repository:{type:"git",url:"git+https://github.com/pmndrs/react-three-fiber.git"},collective:{type:"opencollective",url:"https://opencollective.com/react-three-fiber"},main:"dist/react-three-fiber.cjs.js",module:"dist/react-three-fiber.esm.js",types:"dist/react-three-fiber.cjs.d.ts","react-native":"native/dist/react-three-fiber-native.cjs.js",files:["dist","native","react-reconciler","CHANGELOG.md"],sideEffects:!1,preconstruct:{entrypoints:["index.tsx","native.tsx"]},scripts:{prebuild:"cp ../../readme.md readme.md"},devDependencies:{"@types/react-reconciler":"^0.33.0","react-reconciler":"^0.34.0"},dependencies:{"@babel/runtime":"^7.17.8","@types/webxr":"*","base64-js":"^1.5.1",buffer:"^6.0.3","its-fine":"^2.1.1","react-use-measure":"^2.1.7",scheduler:"^0.28.0","suspend-react":"^0.1.3","use-sync-external-store":"^1.4.0",zustand:"^5.0.3"},peerDependencies:{expo:">=43.0","expo-asset":">=8.4","expo-file-system":">=11.0","expo-gl":">=11.0",react:">=19 <19.4","react-dom":">=19 <19.4","react-native":">=0.78",three:">=0.156"},peerDependenciesMeta:{"react-dom":{optional:!0},"react-native":{optional:!0},expo:{optional:!0},"expo-asset":{optional:!0},"expo-file-system":{optional:!0},"expo-gl":{optional:!0}}};function Tee(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var tH={exports:{}},AD={exports:{}};AD.exports;var nH;function Mee(){return nH||(nH=1,(function(n){n.exports=function(e){function t(o,u,m,y){return new Fb(o,u,m,y)}function i(){}function r(o){var u="https://react.dev/errors/"+o;if(1ye||(o.current=se[ye],se[ye]=null,ye--)}function E(o,u){ye++,se[ye]=o.current,o.current=u}function x(o){return o>>>=0,o===0?32:31-(ot(o)/xt|0)|0}function S(o){var u=o&42;if(u!==0)return u;switch(o&-o){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&-o;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function v(o,u,m){var y=o.pendingLanes;if(y===0)return 0;var C=0,F=o.suspendedLanes,re=o.pingedLanes;o=o.warmLanes;var Re=y&134217727;return Re!==0?(y=Re&~F,y!==0?C=S(y):(re&=Re,re!==0?C=S(re):m||(m=Re&~o,m!==0&&(C=S(m))))):(Re=y&~F,Re!==0?C=S(Re):re!==0?C=S(re):m||(m=y&~o,m!==0&&(C=S(m)))),C===0?0:u!==0&&u!==C&&(u&F)===0&&(F=C&-C,m=u&-u,F>=m||F===32&&(m&4194048)!==0)?u:C}function M(o,u){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&u)===0}function O(o,u){(u&8)!==0&&(u|=u&32);var m=o.entangledLanes;if(m!==0)for(o=o.entanglements,m&=u;0m;m++)u.push(o);return u}function Q(o,u){o.pendingLanes|=u,u!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function H(o,u,m,y,C,F){var re=o.pendingLanes;o.pendingLanes=m,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=m,o.entangledLanes&=m,o.errorRecoveryDisabledLanes&=m,o.shellSuspendCounter=0;var Re=o.entanglements,$e=o.expirationTimes,pt=o.hiddenUpdates;for(m=re&~m;0)":-1C||$e[y]!==pt[C]){var St=` `+$e[y].replace(" at new "," at ");return o.displayName&&St.includes("")&&(St=St.replace("",o.displayName)),St}while(1<=y&&0<=C);break}}}finally{VR=!1,Error.prepareStackTrace=m}return(m=o?o.displayName||o.name:"")?Qe(m):""}function We(o,u){switch(o.tag){case 26:case 27:case 5:return Qe(o.type);case 16:return Qe("Lazy");case 13:return o.child!==u&&u!==null?Qe("Suspense Fallback"):Qe("Suspense");case 19:return Qe("SuspenseList");case 0:case 15:return st(o.type,!1);case 11:return st(o.type.render,!1);case 1:return st(o.type,!0);case 31:return Qe("Activity");case 30:return Qe("ViewTransition");default:return""}}function gt(o){try{var u="",m=null;do u+=We(o,m),m=o,o=o.return;while(o);return u}catch(y){return` Error generating stack: `+y.message+` `+y.stack}}function Et(o,u){if(typeof o=="object"&&o!==null){var m=WF.get(o);return m!==void 0?m:(u={value:o,source:u,stack:gt(u)},WF.set(o,u),u)}return{value:o,source:u,stack:gt(u)}}function jt(o,u){_v[gv++]=GS,_v[gv++]=zT,zT=o,GS=u}function zt(o,u,m){Nl[kl++]=mc,Nl[kl++]=_c,Nl[kl++]=Fd,Fd=o;var y=mc;o=_c;var C=32-Ce(y)-1;y&=~(1<>=re,C-=re,mc=1<<32-Ce(u)+C|m<bi?(Vr=Mn,Mn=null):Vr=Mn.sibling;var _i=rn(Ze,Mn,nt[bi],Tt);if(_i===null){Mn===null&&(Mn=Vr);break}o&&Mn&&_i.alternate===null&&u(Ze,Mn),Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i,Mn=Vr}if(bi===nt.length)return m(Ze,Mn),Xn&&jt(Ze,bi),bn;if(Mn===null){for(;bibi?(Vr=Mn,Mn=null):Vr=Mn.sibling;var Wd=rn(Ze,Mn,_i.value,Tt);if(Wd===null){Mn===null&&(Mn=Vr);break}o&&Mn&&Wd.alternate===null&&u(Ze,Mn),Ge=F(Wd,Ge,bi),ur===null?bn=Wd:ur.sibling=Wd,ur=Wd,Mn=Vr}if(_i.done)return m(Ze,Mn),Xn&&jt(Ze,bi),bn;if(Mn===null){for(;!_i.done;bi++,_i=nt.next())_i=Ot(Ze,_i.value,Tt),_i!==null&&(Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i);return Xn&&jt(Ze,bi),bn}for(Mn=y(Mn);!_i.done;bi++,_i=nt.next())_i=Zn(Mn,Ze,bi,_i.value,Tt),_i!==null&&(o&&(Vr=_i.alternate,Vr!==null&&Mn.delete(Vr.key===null?bi:Vr.key)),Ge=F(_i,Ge,bi),ur===null?bn=_i:ur.sibling=_i,ur=_i);return o&&Mn.forEach(function(YG){return u(Ze,YG)}),Xn&&jt(Ze,bi),bn}function vm(Ze,Ge,nt,Tt){if(typeof nt=="object"&&nt!==null&&nt.type===dc&&nt.key===null&&nt.props.ref===void 0&&(nt=nt.props.children),typeof nt=="object"&&nt!==null){switch(nt.$$typeof){case Md:e:{for(var bn=nt.key;Ge!==null;){if(Ge.key===bn){if(bn=nt.type,bn===dc){if(Ge.tag===7){m(Ze,Ge.sibling),Tt=C(Ge,nt.props.children),Fr(Tt,nt),Tt.return=Ze,Ze=Tt;break e}}else if(Ge.elementType===bn||typeof bn=="object"&&bn!==null&&bn.$$typeof===Il&&d(bn)===Ge.type){m(Ze,Ge.sibling),Tt=C(Ge,nt.props),Fr(Tt,nt),Tt.return=Ze,Ze=Tt;break e}m(Ze,Ge);break}else u(Ze,Ge);Ge=Ge.sibling}nt.type===dc?(Tt=cu(nt.props.children,Ze.mode,Tt,nt.key),Fr(Tt,nt),Tt.return=Ze,Ze=Tt):(Tt=Td(nt.type,nt.key,nt.props,null,Ze.mode,Tt),Fr(Tt,nt),Tt.return=Ze,Ze=Tt)}return re(Ze);case fc:e:{for(bn=nt.key;Ge!==null;){if(Ge.key===bn)if(Ge.tag===4&&Ge.stateNode.containerInfo===nt.containerInfo&&Ge.stateNode.implementation===nt.implementation){m(Ze,Ge.sibling),Tt=C(Ge,nt.children||[]),Tt.return=Ze,Ze=Tt;break e}else{m(Ze,Ge);break}else u(Ze,Ge);Ge=Ge.sibling}Tt=zp(nt,Ze.mode,Tt),Tt.return=Ze,Ze=Tt}return re(Ze);case Il:return nt=d(nt),vm(Ze,Ge,nt,Tt)}if(Ad(nt))return yi(Ze,Ge,nt,Tt);if(p(nt)){if(bn=p(nt),typeof bn!="function")throw Error(r(150));return nt=bn.call(nt),Gd(Ze,Ge,nt,Tt)}if(typeof nt.then=="function")return vm(Ze,Ge,us(nt),Tt);if(nt.$$typeof===No)return vm(Ze,Ge,N(Ze,nt),Tt);Ps(Ze,nt)}return typeof nt=="string"&&nt!==""||typeof nt=="number"||typeof nt=="bigint"?(nt=""+nt,Ge!==null&&Ge.tag===6?(m(Ze,Ge.sibling),Tt=C(Ge,nt),Tt.return=Ze,Ze=Tt):(m(Ze,Ge),Tt=Up(nt,Ze.mode,Tt),Tt.return=Ze,Ze=Tt),re(Ze)):m(Ze,Ge)}return function(Ze,Ge,nt,Tt){try{XS=0;var bn=vm(Ze,Ge,nt,Tt);return Ev=null,bn}catch(Mn){if(Mn===Sv||Mn===VT)throw Mn;var ur=t(29,Mn,null,Ze.mode);return ur.lanes=Tt,ur.return=Ze,ur}finally{}}}function cs(){for(var o=wv,u=YR=wv=0;uF?F:8);var re=_n.T,Re={};Re.types=re!==null?re.types:null,_n.T=Re,Zt(o,!1,u,m);try{var $e=C(),pt=_n.S;if(pt!==null&&pt(Re,$e),$e!==null&&typeof $e=="object"&&typeof $e.then=="function"){var St=Rt($e,y);Ao(o,u,St,Ra(o))}else Ao(o,u,y,Ra(o))}catch(Ot){Ao(o,u,{then:function(){},status:"rejected",reason:Ot},Ra())}finally{hr(F),re!==null&&Re.types!==null&&(re.types=Re.types),_n.T=re}}function ru(o){var u=o.memoizedState;if(u!==null)return u;u={memoizedState:hc,baseState:hc,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pi,lastRenderedState:hc},next:null};var m={};return u.next={memoizedState:m,baseState:m,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pi,lastRenderedState:m},next:null},o.memoizedState=u,o=o.alternate,o!==null&&(o.memoizedState=u),u}function Sl(){return L(Oo)}function au(){return Vn().memoizedState}function su(){return Vn().memoizedState}function Bs(o){for(var u=o.return;u!==null;){switch(u.tag){case 24:case 3:var m=Ra();o=$r(m);var y=Jr(u,o,m);y!==null&&(pa(y,u,m),ds(y,u,m)),u={cache:ee()},o.payload=u;return}u=u.return}}function Mo(o,u,m){var y=Ra();m={lane:y,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null},Xt(o)?ou(u,m):(m=fs(o,u,m,y),m!==null&&(pa(m,o,y),ms(m,u,y)))}function ic(o,u,m){var y=Ra();Ao(o,u,m,y)}function Ao(o,u,m,y){var C={lane:y,revertLane:0,gesture:null,action:m,hasEagerState:!1,eagerState:null,next:null};if(Xt(o))ou(u,C);else{var F=o.alternate;if(o.lanes===0&&(F===null||F.lanes===0)&&(F=u.lastRenderedReducer,F!==null))try{var re=u.lastRenderedState,Re=F(re,m);if(C.hasEagerState=!0,C.eagerState=Re,Po(Re,re))return Pr(o,u,C,0),Wi===null&&cs(),!1}catch{}finally{}if(m=fs(o,u,C,y),m!==null)return pa(m,o,y),ms(m,u,y),!0}return!1}function Zt(o,u,m,y){if(y={lane:2,revertLane:bt(),gesture:null,action:y,hasEagerState:!1,eagerState:null,next:null},Xt(o)){if(u)throw Error(r(479))}else u=fs(o,m,y,2),u!==null&&pa(u,o,2)}function Xt(o){var u=o.alternate;return o===Dn||u!==null&&u===Dn}function ou(o,u){xv=jT=!0;var m=o.pending;m===null?u.next=u:(u.next=m.next,m.next=u),o.pending=u}function ms(o,u,m){if((m&4194048)!==0){var y=u.lanes;y&=o.pendingLanes,m|=y,u.lanes=m,te(o,m)}}function xr(o,u,m,y){u=o.memoizedState,m=m(y,u),m=m==null?u:Bp({},u,m),o.memoizedState=m,o.lanes===0&&(o.updateQueue.baseState=m)}function Ya(o,u,m,y,C,F,re){return o=o.stateNode,typeof o.shouldComponentUpdate=="function"?o.shouldComponentUpdate(y,F,re):u.prototype&&u.prototype.isPureReactComponent?!Wn(m,y)||!Wn(C,F):!0}function lu(o,u,m,y){o=u.state,typeof u.componentWillReceiveProps=="function"&&u.componentWillReceiveProps(m,y),typeof u.UNSAFE_componentWillReceiveProps=="function"&&u.UNSAFE_componentWillReceiveProps(m,y),u.state!==o&&ZR.enqueueReplaceState(u,u.state,null)}function Tr(o,u){var m=u;if("ref"in u){m={};for(var y in u)y!=="ref"&&(m[y]=u[y])}if(o=o.defaultProps){m===u&&(m=Bp({},m));for(var C in o)m[C]===void 0&&(m[C]=o[C])}return m}function ha(o,u){try{var m=o.onUncaughtError;m(u.value,{componentStack:u.stack})}catch(y){setTimeout(function(){throw y})}}function El(o,u,m){try{var y=o.onCaughtError;y(m.value,{componentStack:m.stack,errorBoundary:u.tag===1?u.stateNode:null})}catch(C){setTimeout(function(){throw C})}}function Hs(o,u,m){return m=$r(m),m.tag=3,m.payload={element:null},m.callback=function(){ha(o,u)},m}function Co(o){return o=$r(o),o.tag=3,o}function wl(o,u,m,y){var C=m.type.getDerivedStateFromError;if(typeof C=="function"){var F=y.value;o.payload=function(){return C(F)},o.callback=function(){El(u,m,y)}}var re=m.stateNode;re!==null&&typeof re.componentDidCatch=="function"&&(o.callback=function(){El(u,m,y),typeof C!="function"&&(Vd===null?Vd=new Set([this]):Vd.add(this));var Re=y.stack;this.componentDidCatch(y.value,{componentStack:Re!==null?Re:""})})}function Ta(o,u,m,y,C){if(m.flags|=32768,y!==null&&typeof y=="object"&&typeof y.then=="function"){if(u=m.alternate,u!==null&&fn(u,m,C,!0),m=ka.current,m!==null){switch(m.tag){case 31:case 13:case 19:return vs===null?wd():m.alternate===null&&pr===0&&(pr=3),m.flags&=-257,m.flags|=65536,m.lanes=C,y===GT?m.flags|=16384:(u=m.updateQueue,u===null?m.updateQueue=new Set([y]):u.add(y),Fp(o,y,C)),!1;case 22:return m.flags|=65536,y===GT?m.flags|=16384:(u=m.updateQueue,u===null?(u={transitions:null,markerInstances:null,retryQueue:new Set([y])},m.updateQueue=u):(m=u.retryQueue,m===null?u.retryQueue=new Set([y]):m.add(y)),Fp(o,y,C)),!1}throw Error(r(435,m.tag))}return Fp(o,y,C),wd(),!1}if(Xn)return u=ka.current,u!==null?((u.flags&65536)===0&&(u.flags|=256),u.flags|=65536,u.lanes=C,y!==GR&&(o=Error(r(422),{cause:y}),Qt(Et(o,m)))):(y!==GR&&(u=Error(r(423),{cause:y}),Qt(Et(u,m))),o=o.current.alternate,o.flags|=65536,C&=-C,o.lanes|=C,y=Et(y,m),C=Hs(o.stateNode,y,C),bo(o,C),pr!==4&&(pr=2)),!1;var F=Error(r(520),{cause:y});if(F=Et(F,m),$S===null?$S=[F]:$S.push(F),pr!==4&&(pr=2),u===null)return!0;y=Et(y,m),m=u;do{switch(m.tag){case 3:return m.flags|=65536,o=C&-C,m.lanes|=o,o=Hs(m.stateNode,y,o),bo(m,o),!1;case 1:if(u=m.type,F=m.stateNode,(m.flags&128)===0&&(typeof u.getDerivedStateFromError=="function"||F!==null&&typeof F.componentDidCatch=="function"&&(Vd===null||!Vd.has(F))))return m.flags|=65536,C&=-C,m.lanes|=C,C=Co(C),wl(C,o,m,y),bo(m,C),!1;break;case 22:if(m.memoizedState!==null)return m.flags|=65536,!1}m=m.return}while(m!==null);return!1}function oi(o,u,m,y){u.child=o===null?QF(u,null,m,y):hm(u,o.child,m,y)}function Ro(o,u,m,y,C){m=m.render;var F=u.ref;if("ref"in y){var re={};for(var Re in y)Re!=="ref"&&(re[Re]=y[Re])}else re=y;return ge(u),y=ri(o,u,m,re,F,C),Re=Pt(),o!==null&&!Br?(Oi(o,u,C),Io(o,u,C)):(Xn&&Re&&Mt(u),u.flags|=1,oi(o,u,y,C),u.child)}function xl(o,u,m,y,C){if(o===null){var F=m.type;return typeof F=="function"&&!Pp(F)&&F.defaultProps===void 0&&m.compare===null?(u.tag=15,u.type=F,Ma(o,u,F,y,C)):(o=Td(m.type,null,y,u,u.mode,C),o.ref=u.ref,o.return=u,u.child=o)}if(F=o.child,!ap(o,C)){var re=F.memoizedProps;if(m=m.compare,m=m!==null?m:Wn,m(re,y)&&o.ref===u.ref)return Io(o,u,C)}return u.flags|=1,o=Lo(F,y),o.ref=u.ref,o.return=u,u.child=o}function Ma(o,u,m,y,C){if(o!==null){var F=o.memoizedProps;if(Wn(F,y)&&o.ref===u.ref)if(Br=!1,u.pendingProps=y=F,ap(o,C))(o.flags&131072)!==0&&(Br=!0);else return u.lanes=o.lanes,Io(o,u,C)}return me(o,u,m,y,C)}function Aa(o,u,m,y){var C=y.children,F=o!==null?o.memoizedState:null;if(o===null&&u.stateNode===null&&(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),y.mode==="hidden"){if((u.flags&128)!==0){if(F=F!==null?F.baseLanes|m:m,o!==null){for(y=u.child=o.child,C=0;y!==null;)C=C|y.lanes|y.childLanes,y=y.sibling;y=C&~F}else y=0,u.child=null;return uu(o,u,F,m,y)}if((m&536870912)!==0)u.memoizedState={baseLanes:0,cachePool:null},o!==null&&Yt(u,F!==null?F.cachePool:null),F!==null?Fe(u,F):Ye(),Bt(u);else return y=u.lanes=536870912,uu(o,u,F!==null?F.baseLanes|m:m,m,y)}else F!==null?(Yt(u,F.cachePool),Fe(u,F),wt(),u.memoizedState=null):(o!==null&&Yt(u,null),Ye(),wt());return oi(o,u,C,m),u.child}function Vs(o,u){return o!==null&&o.tag===22||u.stateNode!==null||(u.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),u.sibling}function uu(o,u,m,y,C){var F=ft();return F=F===null?null:{parent:Xs?or._currentValue:or._currentValue2,pool:F},u.memoizedState={baseLanes:m,cachePool:F},o!==null&&Yt(u,null),Ye(),Bt(u),o!==null&&fn(o,u,y,!0),u.childLanes=C,null}function Tl(o,u){return u=dd({mode:u.mode,children:u.children},o.mode),u.ref=o.ref,o.child=u,u.return=o,u}function rc(o,u,m){return hm(u,o.child,null,m),o=Tl(u,u.pendingProps),o.flags|=2,Nt(u),u.memoizedState=null,o}function tf(o,u,m){var y=u.pendingProps,C=(u.flags&128)!==0;if(u.flags&=-129,o===null){if(Xn){if(y.mode==="hidden")return o=Tl(u,y),u.lanes=536870912,o.memoizedState={baseLanes:0,cachePool:null},Vs(null,o);if(It(u),(o=nr)?(o=A(o,Ol),o!==null&&(u.memoizedState={dehydrated:o,treeContext:Fd!==null?{id:mc,overflow:_c}:null,retryLane:536870912,hydrationErrors:null},m=Vg(o),m.return=u,u.child=m,ma=u,nr=null)):o=null,o===null)throw pn(u);return u.lanes=536870912,null}return Tl(u,y)}var F=o.memoizedState;if(F!==null){var re=F.dehydrated;if(It(u),C)if(u.flags&256)u.flags&=-257,u=rc(o,u,m);else if(u.memoizedState!==null)u.child=o.child,u.flags|=128,u=null;else throw Error(r(558));else if(Br||fn(o,u,m,!1),C=(m&o.childLanes)!==0,Br||C){if(qd.current===null){if(y=Wi,y!==null&&(re=j(y,m),re!==0&&re!==F.retryLane))throw F.retryLane=re,hi(o,re),pa(y,o,re),$R;wd()}u=rc(o,u,m)}else o=F.treeContext,Cr&&(nr=BS(re),ma=u,Xn=!0,Ud=null,Ol=!1,o!==null&&et(u,o)),u=Tl(u,y),u.flags|=134221824;return u}return o=Lo(o.child,{mode:y.mode,children:y.children}),o.ref=u.ref,u.child=o,o.return=u,o}function Gs(o,u){var m=u.ref;if(m===null)o!==null&&o.ref!==null&&(u.flags|=4194816);else{if(typeof m!="function"&&typeof m!="object")throw Error(r(284));(o===null||o.ref!==m)&&(u.flags|=4194816)}}function me(o,u,m,y,C){return ge(u),m=ri(o,u,m,y,void 0,C),y=Pt(),o!==null&&!Br?(Oi(o,u,C),Io(o,u,C)):(Xn&&y&&Mt(u),u.flags|=1,oi(o,u,m,C),u.child)}function pe(o,u,m,y,C,F){return ge(u),u.updateQueue=null,m=On(u,y,m,C),Hn(o),y=Pt(),o!==null&&!Br?(Oi(o,u,F),Io(o,u,F)):(Xn&&y&&Mt(u),u.flags|=1,oi(o,u,m,F),u.child)}function cd(o,u,m,y,C){if(ge(u),u.stateNode===null){var F=xe,re=m.contextType;typeof re=="object"&&re!==null&&(F=L(re)),F=new m(y,F),u.memoizedState=F.state!==null&&F.state!==void 0?F.state:null,F.updater=ZR,u.stateNode=F,F._reactInternals=u,F=u.stateNode,F.props=y,F.state=u.memoizedState,F.refs={},Us(u),re=m.contextType,F.context=typeof re=="object"&&re!==null?L(re):xe,F.state=u.memoizedState,re=m.getDerivedStateFromProps,typeof re=="function"&&(xr(u,m,re,y),F.state=u.memoizedState),typeof m.getDerivedStateFromProps=="function"||typeof F.getSnapshotBeforeUpdate=="function"||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(re=F.state,typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount(),re!==F.state&&ZR.enqueueReplaceState(F,F.state,null),ps(u,y,F,C),hs(),F.state=u.memoizedState),typeof F.componentDidMount=="function"&&(u.flags|=4194308),y=!0}else if(o===null){F=u.stateNode;var Re=u.memoizedProps,$e=Tr(m,Re);F.props=$e;var pt=F.context,St=m.contextType;re=xe,typeof St=="object"&&St!==null&&(re=L(St));var Ot=m.getDerivedStateFromProps;St=typeof Ot=="function"||typeof F.getSnapshotBeforeUpdate=="function",Re=u.pendingProps!==Re,St||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(Re||pt!==re)&&lu(u,F,y,re),zd=!1;var rn=u.memoizedState;F.state=rn,ps(u,y,F,C),hs(),pt=u.memoizedState,Re||rn!==pt||zd?(typeof Ot=="function"&&(xr(u,m,Ot,y),pt=u.memoizedState),($e=zd||Ya(u,m,$e,y,rn,pt,re))?(St||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount()),typeof F.componentDidMount=="function"&&(u.flags|=4194308)):(typeof F.componentDidMount=="function"&&(u.flags|=4194308),u.memoizedProps=y,u.memoizedState=pt),F.props=y,F.state=pt,F.context=re,y=$e):(typeof F.componentDidMount=="function"&&(u.flags|=4194308),y=!1)}else{F=u.stateNode,Xa(o,u),re=u.memoizedProps,St=Tr(m,re),F.props=St,Ot=u.pendingProps,rn=F.context,pt=m.contextType,$e=xe,typeof pt=="object"&&pt!==null&&($e=L(pt)),Re=m.getDerivedStateFromProps,(pt=typeof Re=="function"||typeof F.getSnapshotBeforeUpdate=="function")||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(re!==Ot||rn!==$e)&&lu(u,F,y,$e),zd=!1,rn=u.memoizedState,F.state=rn,ps(u,y,F,C),hs();var Zn=u.memoizedState;re!==Ot||rn!==Zn||zd||o!==null&&o.dependencies!==null&&kt(o.dependencies)?(typeof Re=="function"&&(xr(u,m,Re,y),Zn=u.memoizedState),(St=zd||Ya(u,m,St,y,rn,Zn,$e)||o!==null&&o.dependencies!==null&&kt(o.dependencies))?(pt||typeof F.UNSAFE_componentWillUpdate!="function"&&typeof F.componentWillUpdate!="function"||(typeof F.componentWillUpdate=="function"&&F.componentWillUpdate(y,Zn,$e),typeof F.UNSAFE_componentWillUpdate=="function"&&F.UNSAFE_componentWillUpdate(y,Zn,$e)),typeof F.componentDidUpdate=="function"&&(u.flags|=4),typeof F.getSnapshotBeforeUpdate=="function"&&(u.flags|=1024)):(typeof F.componentDidUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=1024),u.memoizedProps=y,u.memoizedState=Zn),F.props=y,F.state=Zn,F.context=$e,y=St):(typeof F.componentDidUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||re===o.memoizedProps&&rn===o.memoizedState||(u.flags|=1024),y=!1)}return F=y,Gs(o,u),y=(u.flags&128)!==0,F||y?(F=u.stateNode,m=y&&typeof m.getDerivedStateFromError!="function"?null:F.render(),u.flags|=1,o!==null&&y?(u.child=hm(u,o.child,null,C),u.child=hm(u,null,m,C)):oi(o,u,m,C),u.memoizedState=F.state,o=u.child):o=Io(o,u,C),o}function fd(o,u,m,y){return dt(),u.flags|=256,oi(o,u,m,y),u.child}function ce(o){return{baseLanes:o,cachePool:$t()}}function ue(o,u,m){return o=o!==null?o.childLanes&~m:0,u&&(o|=qo),o}function G_(o,u,m){var y=u.pendingProps,C=!1,F=(u.flags&128)!==0,re;if((re=F)||(re=o!==null&&o.memoizedState===null?!1:(Oa.current&2)!==0),re&&(C=!0,u.flags&=-129),re=(u.flags&32)!==0,u.flags&=-33,o===null){if(Xn){if(C?He(u):wt(),(o=nr)?(o=P(o,Ol),o!==null&&(u.memoizedState={dehydrated:o,treeContext:Fd!==null?{id:mc,overflow:_c}:null,retryLane:536870912,hydrationErrors:null},m=Vg(o),m.return=u,u.child=m,ma=u,nr=null)):o=null,o===null)throw pn(u);return om(o)?u.lanes=32:u.lanes=536870912,null}return F=y.children,y=y.fallback,C?(wt(),C=u.mode,F=dd({mode:"hidden",children:F},C),y=cu(y,C,m,null),F.return=u,y.return=u,F.sibling=y,u.child=F,y=u.child,y.memoizedState=ce(m),y.childLanes=ue(o,re,m),u.memoizedState=JR,Vs(null,y)):(He(u),np(u,F))}var Re=o.memoizedState;if(Re!==null){var $e=Re.dehydrated;if($e!==null)return yb(o,u,F,re,y,$e,Re,m)}return C?(wt(),C=y.fallback,F=u.mode,Re=o.child,$e=Re.sibling,y=Lo(Re,{mode:"hidden",children:y.children}),y.subtreeFlags=Re.subtreeFlags&1206910976,$e!==null?C=Lo($e,C):(C=cu(C,F,m,null),C.flags|=2),C.return=u,y.return=u,y.sibling=C,u.child=y,Vs(null,y),y=u.child,C=o.child.memoizedState,C===null?C=ce(m):(F=C.cachePool,F!==null?(Re=Xs?or._currentValue:or._currentValue2,F=F.parent!==Re?{parent:Re,pool:Re}:F):F=$t(),C={baseLanes:C.baseLanes|m,cachePool:F}),y.memoizedState=C,y.childLanes=ue(o,re,m),u.memoizedState=JR,Vs(o.child,y)):(He(u),m=o.child,o=m.sibling,m=Lo(m,{mode:"visible",children:y.children}),m.return=u,m.sibling=null,o!==null&&(re=u.deletions,re===null?(u.deletions=[o],u.flags|=16):re.push(o)),u.child=m,u.memoizedState=null,m)}function np(o,u){return u=dd({mode:"visible",children:u},o.mode),u.return=o,o.child=u}function dd(o,u){return o=t(22,o,null,u),o.lanes=0,o}function hd(o,u,m){return hm(u,o.child,null,m),o=np(u,u.pendingProps.children),o.flags|=2,u.memoizedState=null,o}function yb(o,u,m,y,C,F,re,Re){if(m)return u.flags&256?(He(u),u.flags&=-257,hd(o,u,Re)):u.memoizedState!==null?(wt(),u.child=o.child,u.flags|=128,null):(wt(),F=C.fallback,re=u.mode,C=dd({mode:"visible",children:C.children},re),F=cu(F,re,Re,null),F.flags|=2,C.return=u,F.return=u,C.sibling=F,u.child=C,hm(u,o.child,null,Re),C=u.child,C.memoizedState=ce(Re),C.childLanes=ue(o,y,Re),u.memoizedState=JR,Vs(null,C));if(He(u),om(F))return y=OS(F).digest,y!==""&&(C=Error(r(419)),C.stack="",C.digest=y,Qt({value:C,source:null,stack:null})),hd(o,u,Re);if(Br||fn(o,u,Re,!1),y=(Re&o.childLanes)!==0,Br||y){if(qd.current!==null)return hd(o,u,Re);if(y=Wi,y!==null&&(C=j(y,Re),C!==0&&C!==re.retryLane))throw re.retryLane=C,hi(o,C),pa(y,o,C),$R;return sm(F)||wd(),hd(o,u,Re)}return sm(F)?(u.flags|=192,u.child=o.child,null):(o=re.treeContext,Cr&&(nr=HS(F),ma=u,Xn=!0,Ud=null,Ol=!1,o!==null&&et(u,o)),u=np(u,C.children),u.flags|=134221824,u)}function W_(o,u,m){o.lanes|=u;var y=o.alternate;y!==null&&(y.lanes|=u),en(o.return,u,m)}function j_(o){for(var u=null;o!==null;){var m=o.alternate;m!==null&&Sn(m)===null&&(u=o),o=o.sibling}return u}function pd(o,u,m,y,C,F){var re=o.memoizedState;re===null?o.memoizedState={isBackwards:u,rendering:null,renderingStartTime:0,last:y,tail:m,tailMode:C,treeForkCount:F}:(re.isBackwards=u,re.rendering=null,re.renderingStartTime=0,re.last=y,re.tail=m,re.tailMode=C,re.treeForkCount=F)}function ip(o){var u=o.child;for(o.child=null;u!==null;){var m=u.sibling;u.sibling=o.child,o.child=u,u=m}}function rp(o,u,m){var y=u.pendingProps,C=y.revealOrder,F=y.tail;y=y.children;var re=Oa.current;if(u.flags&128)return Kt(u,re),null;var Re=(re&2)!==0;if(Re?(re=re&1|2,u.flags|=128):re&=1,Kt(u,re),C==="backwards"&&o!==null?(ip(o),oi(o,u,y,m),ip(o)):oi(o,u,y,m),y=Xn?GS:0,!Re&&o!==null&&(o.flags&128)!==0)e:for(o=u.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&W_(o,m,u);else if(o.tag===19)W_(o,m,u);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===u)break e;for(;o.sibling===null;){if(o.return===null||o.return===u)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(C){case"backwards":m=j_(u.child),m===null?(C=u.child,u.child=null):(C=m.sibling,m.sibling=null,ip(u)),pd(u,!0,C,null,F,y);break;case"unstable_legacy-backwards":for(m=null,C=u.child,u.child=null;C!==null;){if(o=C.alternate,o!==null&&Sn(o)===null){u.child=C;break}o=C.sibling,C.sibling=m,m=C,C=o}pd(u,!0,m,null,F,y);break;case"together":pd(u,!1,null,null,void 0,y);break;case"independent":u.memoizedState=null;break;default:m=j_(u.child),m===null?(C=u.child,u.child=null):(C=m.sibling,m.sibling=null),pd(u,!1,C,m,F,y)}return u.child}function Q_(o,u,m){var y=u.pendingProps;return Ht(u,u.type,y.value),oi(o,u,y.children,m),u.child}function Io(o,u,m){if(o!==null&&(u.dependencies=o.dependencies),Hd|=u.lanes,(m&u.childLanes)===0)if(o!==null){if(fn(o,u,m,!1),(m&u.childLanes)===0)return null}else return null;if(o!==null&&u.child!==o.child)throw Error(r(153));if(u.child!==null){for(o=u.child,m=Lo(o,o.pendingProps),u.child=m,m.return=u;o.sibling!==null;)o=o.sibling,m=m.sibling=Lo(o,o.pendingProps),m.return=u;m.sibling=null}return u.child}function ap(o,u){return(o.lanes&u)!==0?!0:(o=o.dependencies,!!(o!==null&&kt(o)))}function bb(o,u,m){switch(u.tag){case 3:yt(u,u.stateNode.containerInfo),Ht(u,or,o.memoizedState.cache),dt();break;case 27:case 5:Lt(u);break;case 4:yt(u,u.stateNode.containerInfo);break;case 10:Ht(u,u.type,u.memoizedProps.value);break;case 31:if(u.memoizedState!==null)return u.flags|=128,It(u),null;break;case 13:var y=u.memoizedState;if(y!==null){if(y.dehydrated!==null)return He(u),u.flags|=128,null;y=fn(o,u,m,!1);var C=u.child.childLanes;return y||(m&C)!==0?G_(o,u,m):(He(u),o=Io(o,u,m),o!==null?o.sibling:null)}He(u);break;case 19:if(u.flags&128)return rp(o,u,m);if(C=(o.flags&128)!==0,y=(m&u.childLanes)!==0,y||(fn(o,u,m,!1),y=(m&u.childLanes)!==0),C){if(y)return rp(o,u,m);u.flags|=128}if(C=u.memoizedState,C!==null&&(C.rendering=null,C.tail=null,C.lastEffect=null),Kt(u,Oa.current),y)break;return null;case 22:return u.lanes=0,Aa(o,u,m,u.pendingProps);case 24:Ht(u,or,o.memoizedState.cache)}return Io(o,u,m)}function X_(o,u,m){if(o!==null)if(o.memoizedProps!==u.pendingProps)Br=!0;else{if(!ap(o,m)&&(u.flags&128)===0)return Br=!1,bb(o,u,m);Br=(o.flags&131072)!==0}else Br=!1,Xn&&(u.flags&1048576)!==0&&zt(u,GS,u.index);switch(u.lanes=0,u.tag){case 16:e:{var y=u.pendingProps;if(o=d(u.elementType),u.type=o,typeof o=="function")Pp(o)?(y=Tr(o,y),u.tag=1,u=cd(null,u,o,y,m)):(u.tag=0,u=me(null,u,o,y,m));else{if(o!=null){var C=o.$$typeof;if(C===Vp){u.tag=11,u=Ro(null,u,o,y,m);break e}else if(C===jp){u.tag=14,u=xl(null,u,o,y,m);break e}else if(C===No){u.tag=10,u.type=o,u=Q_(null,u,m);break e}}throw u=h(o)||o,Error(r(306,u,""))}}return u;case 0:return me(o,u,u.type,u.pendingProps,m);case 1:return y=u.type,C=Tr(y,u.pendingProps),cd(o,u,y,C,m);case 3:e:{if(yt(u,u.stateNode.containerInfo),o===null)throw Error(r(387));var F=u.pendingProps;C=u.memoizedState,y=C.element,Xa(o,u),ps(u,F,null,m);var re=u.memoizedState;if(F=re.cache,Ht(u,or,F),F!==C.cache&&Le(u,[or],m,!0),hs(),F=re.element,Cr&&C.isDehydrated)if(C={element:F,isDehydrated:!1,cache:re.cache},u.updateQueue.baseState=C,u.memoizedState=C,u.flags&256){u=fd(o,u,F,m);break e}else if(F!==y){y=Et(Error(r(424)),u),Qt(y),u=fd(o,u,F,m);break e}else for(Cr&&(nr=qS(u.stateNode.containerInfo),ma=u,Xn=!0,Ud=null,Ol=!0),m=QF(u,null,F,m),u.child=m;m;)m.flags=m.flags&-3|134221824,m=m.sibling;else{if(dt(),F===y){u=Io(o,u,m);break e}oi(o,u,F,m)}u=u.child}return u;case 26:if(Dt)return Gs(o,u),o===null?(m=ea(u.type,null,u.pendingProps,null))?u.memoizedState=m:Xn||(u.stateNode=T(u.type,u.pendingProps,Pd.current,u)):u.memoizedState=ea(u.type,o.memoizedProps,u.pendingProps,o.memoizedState),null;case 27:if(Ee)return Lt(u),o===null&&Ee&&Xn&&(y=u.stateNode=Ue(u.type,u.pendingProps,Pd.current,Na.current,!1),ma=u,Ol=!0,nr=pv(u.type,y,nr)),oi(o,u,u.pendingProps.children,m),Gs(o,u),o===null&&(u.flags|=4194304),u.child;case 5:return o===null&&Xn&&(hn(u.type,u.pendingProps,Na.current),(C=y=nr)&&(y=Od(y,u.type,u.pendingProps,Ol),y!==null?(u.stateNode=y,ma=u,nr=zS(y),Ol=!1,C=!0):C=!1),C||pn(u)),Lt(u),C=u.type,F=u.pendingProps,re=o!==null?o.memoizedProps:null,y=F.children,Cd(C,F)?y=null:re!==null&&Cd(C,re)&&(u.flags|=32),u.memoizedState!==null&&(C=ri(o,u,Xi,null,null,m),Xs?Oo._currentValue=C:Oo._currentValue2=C),Gs(o,u),oi(o,u,y,m),u.child;case 6:return o===null&&Xn&&(un(u.pendingProps,Na.current),(o=m=nr)&&(m=mv(m,u.pendingProps,Ol),m!==null?(u.stateNode=m,ma=u,nr=null,o=!0):o=!1),o||pn(u)),null;case 13:return G_(o,u,m);case 4:return yt(u,u.stateNode.containerInfo),y=u.pendingProps,o===null?u.child=hm(u,null,y,m):oi(o,u,y,m),u.child;case 11:return Ro(o,u,u.type,u.pendingProps,m);case 7:return y=u.pendingProps,Gs(o,u),oi(o,u,y,m),u.child;case 8:return oi(o,u,u.pendingProps.children,m),u.child;case 12:return oi(o,u,u.pendingProps.children,m),u.child;case 10:return Q_(o,u,m);case 9:return C=u.type._context,y=u.pendingProps.children,ge(u),C=L(C),y=y(C),u.flags|=1,oi(o,u,y,m),u.child;case 14:return xl(o,u,u.type,u.pendingProps,m);case 15:return Ma(o,u,u.type,u.pendingProps,m);case 19:return rp(o,u,m);case 31:return tf(o,u,m);case 22:return Aa(o,u,m,u.pendingProps);case 24:return ge(u),y=L(or),o===null?(C=ft(),C===null&&(C=Wi,F=ee(),C.pooledCache=F,F.refCount++,F!==null&&(C.pooledCacheLanes|=m),C=F),u.memoizedState={parent:y,cache:C},Us(u),Ht(u,or,C)):((o.lanes&m)!==0&&(Xa(o,u),ps(u,null,null,m),hs()),C=o.memoizedState,F=u.memoizedState,C.parent!==y?(C={parent:y,cache:y},u.memoizedState=C,u.lanes===0&&(u.memoizedState=u.updateQueue.baseState=C),Ht(u,or,y)):(y=F.cache,Ht(u,or,y),y!==C.cache&&Le(u,[or],m,!0))),oi(o,u,u.pendingProps.children,m),u.child;case 30:return u.stateNode===null&&(u.stateNode={autoName:null,paired:null,clones:null,ref:null}),y=u.pendingProps,y.name!=null&&y.name!=="auto"?u.flags|=o===null?18882560:18874368:Xn&&Mt(u),o!==null&&o.memoizedProps.name!==y.name?u.flags|=4194816:Gs(o,u),oi(o,u,y.children,m),u.child;case 29:throw u.pendingProps}throw Error(r(156,u.tag))}function _s(o){o.flags|=4}function md(o){Ys&&(o.flags|=8)}function Y_(o,u){if(o!==null&&o.child===u.child)return!1;if((u.flags&16)!==0)return!0;for(o=u.child;o!==null;){if((o.flags&8218)!==0||(o.subtreeFlags&8218)!==0)return!0;o=o.sibling}return!1}function sp(o,u,m,y){if(Gi)for(m=u.child;m!==null;){if(m.tag===5||m.tag===6)Yp(o,m.stateNode);else if(!(m.tag===4||Ee&&m.tag===27)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===u)break;for(;m.sibling===null;){if(m.return===null||m.return===u)return;m=m.return}m.sibling.return=m.return,m=m.sibling}else if(Ys)for(var C=u.child;C!==null;){if(C.tag===5){var F=C.stateNode;m&&y&&(F=rm(F,C.type,C.memoizedProps)),Yp(o,F)}else if(C.tag===6)F=C.stateNode,m&&y&&(F=am(F,C.memoizedProps)),Yp(o,F);else if(C.tag!==4){if(C.tag===22&&C.memoizedState!==null)F=C.child,F!==null&&(F.return=C),sp(o,C,!0,!0);else if(C.child!==null){C.child.return=C,C=C.child;continue}}if(C===u)break;for(;C.sibling===null;){if(C.return===null||C.return===u)return;C=C.return}C.sibling.return=C.return,C=C.sibling}}function K_(o,u,m,y){var C=!1;if(Ys)for(var F=u.child;F!==null;){if(F.tag===5){var re=F.stateNode;m&&y&&(re=rm(re,F.type,F.memoizedProps)),kd(o,re)}else if(F.tag===6)re=F.stateNode,m&&y&&(re=am(re,F.memoizedProps)),kd(o,re);else if(F.tag!==4){if(F.tag===22&&F.memoizedState!==null)C=F.child,C!==null&&(C.return=F),K_(o,F,!0,!0),C=!0;else if(F.child!==null){F.child.return=F,F=F.child;continue}}if(F===u)break;for(;F.sibling===null;){if(F.return===null||F.return===u)return C;F=F.return}F.sibling.return=F.return,F=F.sibling}return C}function Z_(o,u){if(Ys&&Y_(o,u)){o=u.stateNode;var m=o.containerInfo,y=Nd();K_(y,u,!1,!1),o.pendingChildren=y,_s(u),dv(m,y)}}function op(o,u,m,y){if(Gi)o.memoizedProps!==y&&_s(u);else if(Ys){var C=o.stateNode,F=o.memoizedProps;if((o=Y_(o,u))||F!==y){var re=Na.current;F=fv(C,m,F,y,!o,null),F===C?u.stateNode=C:(md(u),ev(F,m,y,re)&&_s(u),u.stateNode=F,o&&sp(F,u,!1,!1))}else u.stateNode=C}}function lp(o,u,m,y,C){if((o.mode&32)!==0&&(m===null?rS(u,y):aS(u,m,y))){if(o.flags|=16777216,(C&335544128)===C||Kp(u,y))if(nv(o.stateNode,u,y))o.flags|=8192;else if(Ng())o.flags|=8192;else throw dm=GT,XR}else o.flags&=-16777217}function $_(o,u){if(V(u)){if(o.flags|=16777216,!$(u))if(Ng())o.flags|=8192;else throw dm=GT,XR}else o.flags&=-16777217}function _d(o,u){u!==null&&(o.flags|=4),o.flags&16384&&(u=o.tag!==22?q():536870912,o.lanes|=u,Av|=u)}function nf(o,u){if(!Xn)switch(o.tailMode){case"visible":break;case"collapsed":for(var m=o.tail,y=null;m!==null;)m.alternate!==null&&(y=m),m=m.sibling;y===null?u||o.tail===null?o.tail=null:o.tail.sibling=null:y.sibling=null;break;default:for(u=o.tail,m=null;u!==null;)u.alternate!==null&&(m=u),u=u.sibling;m===null?o.tail=null:m.sibling=null}}function Mi(o){var u=o.alternate!==null&&o.alternate.child===o.child,m=0,y=0;if(u)for(var C=o.child;C!==null;)m|=C.lanes|C.childLanes,y|=C.subtreeFlags&1206910976,y|=C.flags&1206910976,C.return=o,C=C.sibling;else for(C=o.child;C!==null;)m|=C.lanes|C.childLanes,y|=C.subtreeFlags,y|=C.flags,C.return=o,C=C.sibling;return o.subtreeFlags|=y,o.childLanes=m,u}function Sb(o,u,m){var y=u.pendingProps;switch(Xe(u),u.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mi(u),null;case 1:return Mi(u),null;case 3:return m=u.stateNode,y=null,o!==null&&(y=o.memoizedState.cache),u.memoizedState.cache!==y&&(u.flags|=2048),qt(or),Wt(),m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null),(o===null||o.child===null)&&(Pe(u)?_s(u):o===null||o.memoizedState.isDehydrated&&(u.flags&256)===0||(u.flags|=1024,vt())),Z_(o,u),Mi(u),null;case 26:if(Dt){var C=u.type,F=u.memoizedState;return o===null?(_s(u),F!==null?(Mi(u),$_(u,F)):(Mi(u),lp(u,C,null,y,m))):F?F!==o.memoizedState?(_s(u),Mi(u),$_(u,F)):(Mi(u),u.flags&=-16777217):(F=o.memoizedProps,Gi?F!==y&&_s(u):op(o,u,C,y),Mi(u),lp(u,C,F,y,m)),null}case 27:if(Ee){if(sn(u),m=Pd.current,C=u.type,o!==null&&u.stateNode!=null)Gi?o.memoizedProps!==y&&_s(u):op(o,u,C,y);else{if(!y){if(u.stateNode===null)throw Error(r(166));return Mi(u),u.subtreeFlags&=-33554433,null}o=Na.current,Pe(u)?lt(u,o):(o=Ue(C,y,m,o,!0),u.stateNode=o,_s(u))}return Mi(u),u.subtreeFlags&=-33554433,null}case 5:if(sn(u),C=u.type,o!==null&&u.stateNode!=null)op(o,u,C,y);else{if(!y){if(u.stateNode===null)throw Error(r(166));return Mi(u),u.subtreeFlags&=-33554433,null}if(F=Na.current,Pe(u))lt(u,F),Se(u.stateNode,C,y,F)&&(u.flags|=64);else{var re=Kb(C,y,Pd.current,F,u);md(u),sp(re,u,!1,!1),u.stateNode=re,ev(re,C,y,F)&&_s(u)}}return Mi(u),u.subtreeFlags&=-33554433,lp(u,u.type,o===null?null:o.memoizedProps,u.pendingProps,m),null;case 6:if(o&&u.stateNode!=null)m=o.memoizedProps,Gi?m!==y&&_s(u):Ys&&(m!==y?(o=Pd.current,m=Na.current,md(u),u.stateNode=tv(y,o,m,u)):u.stateNode=o.stateNode);else{if(typeof y!="string"&&u.stateNode===null)throw Error(r(166));if(o=Pd.current,m=Na.current,Pe(u)){if(!Cr)throw Error(r(176));if(o=u.stateNode,m=u.memoizedProps,y=null,C=ma,C!==null)switch(C.tag){case 27:case 5:y=C.memoizedProps}J(o,m,u,y)||pn(u,!0)}else md(u),u.stateNode=tv(y,o,m,u)}return Mi(u),null;case 31:if(m=u.memoizedState,o===null||o.memoizedState!==null){if(y=Pe(u),m!==null){if(o===null){if(!y)throw Error(r(318));if(!Cr)throw Error(r(556));if(o=u.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));de(o,u)}else dt(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Mi(u),o=!1}else m=vt(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=m),o=!0;if(!o)return u.flags&256?(Nt(u),u):(Nt(u),null);if((u.flags&128)!==0)throw Error(r(558))}return Mi(u),null;case 13:if(y=u.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(C=Pe(u),y!==null&&y.dehydrated!==null){if(o===null){if(!C)throw Error(r(318));if(!Cr)throw Error(r(344));if(C=u.memoizedState,C=C!==null?C.dehydrated:null,!C)throw Error(r(317));Ae(C,u)}else dt(),(u.flags&128)===0&&(u.memoizedState=null),u.flags|=4;Mi(u),C=!1}else C=vt(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=C),C=!0;if(!C)return u.flags&256?(Nt(u),u):(Nt(u),null)}return Nt(u),(u.flags&128)!==0?(u.lanes=m,u):(m=y!==null,o=o!==null&&o.memoizedState!==null,m&&(y=u.child,C=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(C=y.alternate.memoizedState.cachePool.pool),F=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(F=y.memoizedState.cachePool.pool),F!==C&&(y.flags|=2048)),m!==o&&m&&(u.child.flags|=8192),_d(u,u.updateQueue),Mi(u),null);case 4:return Wt(),Z_(o,u),o===null&&eS(u.stateNode.containerInfo),u.flags|=67108864,Mi(u),null;case 10:return qt(u.type),Mi(u),null;case 19:if(yn(u),y=u.memoizedState,y===null)return Mi(u),null;if(C=(u.flags&128)!==0,F=y.rendering,F===null)if(C)nf(y,!1);else{if(pr!==0||o!==null&&(o.flags&128)!==0)for(o=u.child;o!==null;){if(F=Sn(o),F!==null){for(u.flags|=128,nf(y,!1),o=F.updateQueue,u.updateQueue=o,_d(u,o),u.subtreeFlags=0,o=m,m=u.child;m!==null;)Hg(m,o),m=m.sibling;return Kt(u,Oa.current&1|2),Xn&&jt(u,y.treeForkCount),u.child}o=o.sibling}y.tail!==null&&mi()>JS&&(u.flags|=128,C=!0,nf(y,!1),u.lanes=4194304)}else{if(!C)if(o=Sn(F),o!==null){if(u.flags|=128,C=!0,o=o.updateQueue,u.updateQueue=o,_d(u,o),nf(y,!0),y.tail===null&&y.tailMode!=="collapsed"&&y.tailMode!=="visible"&&!F.alternate&&!Xn)return Mi(u),null}else 2*mi()-y.renderingStartTime>JS&&m!==536870912&&(u.flags|=128,C=!0,nf(y,!1),u.lanes=4194304);y.isBackwards?(F.sibling=u.child,u.child=F):(o=y.last,o!==null?o.sibling=F:u.child=F,y.last=F)}if(y.tail!==null){o=y.tail;e:{for(m=o;m!==null;){if(m.alternate!==null){m=!1;break e}m=m.sibling}m=!0}return y.rendering=o,y.tail=o.sibling,y.renderingStartTime=mi(),o.sibling=null,F=Oa.current,F=C?F&1|2:F&1,y.tailMode==="visible"||y.tailMode==="collapsed"||!m||Xn?Kt(u,F):(m=F,E(ka,u),E(Oa,m),vs===null&&(vs=u)),Xn&&jt(u,y.treeForkCount),o}return Mi(u),null;case 22:case 23:return Nt(u),Be(),y=u.memoizedState!==null,o!==null?o.memoizedState!==null!==y&&(u.flags|=8192):y&&(u.flags|=8192),y?(m&536870912)!==0&&(u.flags&128)===0&&(Mi(u),u.subtreeFlags&6&&(u.flags|=8192)):Mi(u),m=u.updateQueue,m!==null&&_d(u,m.retryQueue),m=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(m=o.memoizedState.cachePool.pool),y=null,u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(y=u.memoizedState.cachePool.pool),y!==m&&(u.flags|=2048),o!==null&&g(fm),null;case 24:return m=null,o!==null&&(m=o.memoizedState.cache),u.memoizedState.cache!==m&&(u.flags|=2048),qt(or),Mi(u),null;case 25:return null;case 30:return u.flags|=33554432,Mi(u),null}throw Error(r(156,u.tag))}function Eb(o,u){switch(Xe(u),u.tag){case 1:return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 3:return qt(or),Wt(),o=u.flags,(o&65536)!==0&&(o&128)===0?(u.flags=o&-65537|128,u):null;case 26:case 27:case 5:return sn(u),null;case 31:if(u.memoizedState!==null){if(Nt(u),u.alternate===null)throw Error(r(340));dt()}return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 13:if(Nt(u),o=u.memoizedState,o!==null&&o.dehydrated!==null){if(u.alternate===null)throw Error(r(340));dt()}return o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 19:return yn(u),o=u.flags,o&65536?(u.flags=o&-65537|128,o=u.memoizedState,o!==null&&(o.rendering=null,o.tail=null),u.flags|=4,u):null;case 4:return Wt(),null;case 10:return qt(u.type),null;case 22:case 23:return Nt(u),Be(),o!==null&&g(fm),o=u.flags,o&65536?(u.flags=o&-65537|128,u):null;case 24:return qt(or),null;case 25:return null;default:return null}}function J_(o,u){switch(Xe(u),u.tag){case 3:qt(or),Wt();break;case 26:case 27:case 5:sn(u);break;case 4:Wt();break;case 31:u.memoizedState!==null&&Nt(u);break;case 13:Nt(u);break;case 19:yn(u);break;case 10:qt(u.type);break;case 22:case 23:Nt(u),Be(),o!==null&&g(fm);break;case 24:qt(or)}}function rf(o,u){try{var m=u.updateQueue,y=m!==null?m.lastEffect:null;if(y!==null){var C=y.next;m=C;do{if((m.tag&o)===o){y=void 0;var F=m.create,re=m.inst;y=F(),re.destroy=y}m=m.next}while(m!==C)}}catch(Re){li(u,u.return,Re)}}function Ml(o,u,m){try{var y=u.updateQueue,C=y!==null?y.lastEffect:null;if(C!==null){var F=C.next;y=F;do{if((y.tag&o)===o){var re=y.inst,Re=re.destroy;if(Re!==void 0){re.destroy=void 0,C=u;var $e=m,pt=Re;try{pt()}catch(St){li(C,$e,St)}}}y=y.next}while(y!==F)}}catch(St){li(u,u.return,St)}}function eg(o){var u=o.updateQueue;if(u!==null){var m=o.stateNode;try{ae(u,m)}catch(y){li(o,o.return,y)}}}function tg(o,u,m){m.props=Tr(o.type,o.memoizedProps),m.state=o.memoizedState;try{m.componentWillUnmount()}catch(y){li(o,u,y)}}function Ws(o,u){try{var m=o.ref;if(m!==null){switch(o.tag){case 26:case 27:case 5:var y=cf(o.stateNode);break;case 30:var C=o.stateNode,F=ze(o.memoizedProps,C);(C.ref===null||C.ref.name!==F)&&(C.ref=hf(F)),y=C.ref;break;case 7:o.stateNode===null&&(o.stateNode=cv(o)),y=o.stateNode;break;default:y=o.stateNode}typeof m=="function"?o.refCleanup=m(y):m.current=y}}catch(re){li(o,u,re)}}function Mr(o,u){var m=o.ref,y=o.refCleanup;if(m!==null)if(typeof y=="function")try{y()}catch(C){li(o,u,C)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof m=="function")try{m(null)}catch(C){li(o,u,C)}else m.current=null}function ng(){var o=$a;return $a=!1,o}function af(o,u){if((o.tag===5||o.tag===27||o.tag===6)&&o.alternate===null&&u!==null)for(var m=0;m";case $T:return":has("+(Cp(o)||"")+")";case JT:return'[role="'+o.value+'"]';case t3:return'"'+o.value+'"';case e3:return'[data-testname="'+o.value+'"]';default:throw Error(r(365))}}function Mg(o,u){var m=[];o=[o,0];for(var y=0;ym?32:m;m=_n.T;var C=ko();try{hr(y),_n.T=null,y=sI,sI=null;var F=hu,re=bc;if(lr=0,gm=hu=null,bc=0,(ei&6)!==0)throw Error(r(331));var Re=ei;if(ei|=4,xg(F.current),Sg(F,F.current,re,y),ei=Re,tt(0,!1),Fo&&typeof Fo.onPostCommitFiberRoot=="function")try{Fo.onPostCommitFiberRoot(VS,F)}catch{}return!0}finally{hr(C),_n.T=m,zg(o,u)}}function qg(o,u,m){u=Et(m,u),u=Hs(o.stateNode,u,2),o=Jr(o,u,2),o!==null&&(Q(o,2),be(o))}function li(o,u,m){if(o.tag===3)qg(o,o,m);else for(;u!==null;){if(u.tag===3){qg(u,o,m);break}else if(u.tag===1){var y=u.stateNode;if(typeof u.type.getDerivedStateFromError=="function"||typeof y.componentDidCatch=="function"&&(Vd===null||!Vd.has(y))){o=Et(m,o),m=Co(2),y=Jr(u,m,2),y!==null&&(wl(m,y,u,o),Q(y,2),be(y));break}}u=u.return}}function Fp(o,u,m){var y=o.pingCache;if(y===null){y=o.pingCache=new XG;var C=new Set;y.set(u,C)}else C=y.get(u),C===void 0&&(C=new Set,y.set(u,C));C.has(m)||(nI=!0,C.add(m),o=Nb.bind(null,o,u,m),u.then(o,o))}function Nb(o,u,m){var y=o.pingCache;y!==null&&y.delete(u),o.pingedLanes|=o.suspendedLanes&m,o.warmLanes&=~m,Wi===o&&(ui&m)===m&&((pr===4||pr===3&&(ui&62914560)===ui&&300>mi()-n3)&&(ei&2)===0?uc(o,0):iI|=m,Av===ui&&(Av=0)),be(o)}function Bg(o,u){u===0&&(u=q()),o=hi(o,u),o!==null&&(Q(o,u),be(o))}function kb(o){var u=o.memoizedState,m=0;u!==null&&(m=u.retryLane),Bg(o,m)}function Ob(o,u){var m=0;switch(o.tag){case 31:case 13:var y=o.stateNode,C=o.memoizedState;C!==null&&(m=C.retryLane);break;case 19:y=o.stateNode;break;case 22:y=o.stateNode._retryCache;break;default:throw Error(r(314))}y!==null&&y.delete(u),Bg(o,m)}function Db(o,u){return on(o,u)}function Fb(o,u,m,y){this.tag=o,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=u,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=y,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pp(o){return o=o.prototype,!(!o||!o.isReactComponent)}function Lo(o,u){var m=o.alternate;return m===null?(m=t(o.tag,u,o.key,o.mode),m.elementType=o.elementType,m.type=o.type,m.stateNode=o.stateNode,m.alternate=o,o.alternate=m):(m.pendingProps=u,m.type=o.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=o.flags&1206910976,m.childLanes=o.childLanes,m.lanes=o.lanes,m.child=o.child,m.memoizedProps=o.memoizedProps,m.memoizedState=o.memoizedState,m.updateQueue=o.updateQueue,u=o.dependencies,m.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext},m.sibling=o.sibling,m.index=o.index,m.ref=o.ref,m.refCleanup=o.refCleanup,m}function Hg(o,u){o.flags&=1206910978;var m=o.alternate;return m===null?(o.childLanes=0,o.lanes=u,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=m.childLanes,o.lanes=m.lanes,o.child=m.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=m.memoizedProps,o.memoizedState=m.memoizedState,o.updateQueue=m.updateQueue,o.type=m.type,u=m.dependencies,o.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),o}function Td(o,u,m,y,C,F){var re=0;if(y=o,typeof y=="function")Pp(y)&&(re=1);else if(typeof y=="string")re=Dt&&Ee?Kn(o,m,Na.current)?26:z(o)?27:5:Dt?Kn(o,m,Na.current)?26:5:Ee&&z(o)?27:5;else e:switch(y){case Qp:return o=t(31,m,u,C),o.elementType=Qp,o.lanes=F,o;case dc:return cu(m.children,C,F,u);case Yg:re=8,C|=24;break;case Hp:return o=t(12,m,u,C|2),o.elementType=Hp,o.lanes=F,o;case Gp:return o=t(13,m,u,C),o.elementType=Gp,o.lanes=F,o;case Wp:return o=t(19,m,u,C),o.elementType=Wp,o.lanes=F,o;case qb:case Xp:return o=C|32,o=t(30,m,u,o),o.elementType=Xp,o.lanes=F,o.stateNode={autoName:null,paired:null,clones:null,ref:null},o;default:if(typeof y=="object"&&y!==null)switch(y.$$typeof){case No:re=10;break e;case Kg:re=9;break e;case Vp:re=11;break e;case jp:re=14;break e;case Il:re=16,y=null;break e}re=29,m=Error(r(130,o===null?"null":typeof o,"")),y=null}return u=t(re,m,u,C),u.elementType=o,u.type=y,u.lanes=F,u}function cu(o,u,m,y){return o=t(7,o,y,u),o.lanes=m,o}function Up(o,u,m){return o=t(6,o,null,u),o.lanes=m,o}function Vg(o){var u=t(18,null,null,0);return u.stateNode=o,u}function zp(o,u,m){return u=t(4,o.children!==null?o.children:[],o.key,u),u.lanes=m,u.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},u}function Pb(o,u,m,y,C,F,re,Re,$e){this.tag=1,this.containerInfo=o,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=fu,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=G(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=G(0),this.hiddenUpdates=G(null),this.identifierPrefix=y,this.onUncaughtError=C,this.onCaughtError=F,this.onRecoverableError=re,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=$e,this.transitionTypes=null,this.incompleteTransitions=new Map}function Gg(o,u,m,y,C,F,re,Re,$e,pt,St,Ot){return o=new Pb(o,u,m,re,$e,pt,St,Ot,Re),u=1,F===!0&&(u|=24),F=t(3,null,null,u),o.current=F,F.stateNode=o,u=ee(),u.refCount++,o.pooledCache=u,u.refCount++,F.memoizedState={element:y,isDehydrated:m,cache:u},Us(F),o}function Wg(o){return o?(o=xe,o):xe}function jg(o){var u=o._reactInternals;if(u===void 0)throw typeof o.render=="function"?Error(r(188)):(o=Object.keys(o).join(","),Error(r(268,o)));return o=l(u),o=o!==null?c(o):null,o===null?null:cf(o.stateNode)}function Qg(o,u,m,y,C,F){C=Wg(C),y.context===null?y.context=C:y.pendingContext=C,y=$r(u),y.payload={element:m},F=F===void 0?null:F,F!==null&&(y.callback=F),m=Jr(o,y,u),m!==null&&(pa(m,o,u),ds(m,o,u))}function Xg(o,u){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var m=o.retryLane;o.retryLane=m!==0&&m=pt&&F>=Ot&&C<=St&&re<=rn){o.splice(u,1);break}else if(y!==pt||m.width!==$e.width||rnre){if(!(F!==Ot||m.height!==$e.height||StC)){pt>y&&($e.width+=pt-y,$e.x=y),StF&&($e.height+=Ot-F,$e.y=F),rnm&&(m=Re)),Re ")+` No matching component was found for: `)+o.join(" > ")}return null},qn.getPublicRootInstance=function(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 27:case 5:return cf(o.child.stateNode);default:return o.child.stateNode}},qn.injectIntoDevTools=function(){var o={bundleType:0,version:Gb,rendererPackageName:Wb,currentDispatcherRef:_n,reconcilerVersion:"19.3.0"};if(Jg!==null&&(o.rendererConfig=Jg),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")o=!1;else{var u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(u.isDisabled||!u.supportsFiber)o=!0;else{try{VS=u.inject(o),Fo=u}catch{}o=!!u.checkDCE}}return o},qn.isAlreadyRendering=function(){return(ei&6)!==0},qn.observeVisibleRects=function(o,u,m,y){if(!ff)throw Error(r(363));o=Rp(o,u);var C=gS(o,m,y).disconnect;return{disconnect:function(){C()}}},qn.shouldError=function(){return null},qn.shouldSuspend=function(){return!1},qn.startHostTransition=function(o,u,m,y){if(o.tag!==5)throw Error(r(476));var C=ru(o).queue;iu(o,C,u,hc,m===null?i:function(){var F=ru(o);return F.next===null&&(F=o.alternate.memoizedState),Ao(o,F.next.queue,{},Ra()),m(y)})},qn.updateContainer=function(o,u,m,y){var C=u.current,F=Ra();return Qg(C,F,o,u,m,y),F},qn.updateContainerSync=function(o,u,m,y){return Qg(u.current,2,o,u,m,y),2},qn},n.exports.default=n.exports,Object.defineProperty(n.exports,"__esModule",{value:!0})})(AD)),AD.exports}var Aee={exports:{}};Aee.exports;var iH;function Cee(){return iH||(iH=1,tH.exports=Mee()),tH.exports}var Ree=Cee(),Iee=Tee(Ree),F2={},Lee=0,z2=n=>`${n[0].toUpperCase()}${n.slice(1)}`;function Nee(n){return n in F2}function qD(n){return F2[n]}function BD(n){if(typeof n=="function"){let e=`${Lee++}`;return F2[e]=n,e}else Object.assign(F2,n)}function kee(n){let e=Iee(n);return e.injectIntoDevTools(),e}var bH=0,Oee=/^three(?=[A-Z])/;function SH(n,e){let t=z2(n),i=qD(t);if(n!=="primitive"&&!i)throw new Error(`R3F: ${t} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(n==="primitive"&&!e.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(e.args!==void 0&&!Array.isArray(e.args))throw new Error("R3F: The args prop must be an array!")}function Dee(n,e,t){var i;return n=Nee(z2(n))?n:n.replace(Oee,""),SH(n,e),n==="primitive"&&(i=e.object)!=null&&i.__r3f&&delete e.object.__r3f,k2(e.object,t,n,e)}function Fee(n){if(!n.isHidden){var e;n.props.attach&&(e=n.parent)!=null&&e.object?D2(n.parent,n):Rs(n.object)&&(n.previousVisible=n.object.visible,n.object.visible=!1),n.isHidden=!0,Z1(n)}}function EH(n){if(n.isHidden){var e;if(n.props.attach&&(e=n.parent)!=null&&e.object)O2(n.parent,n);else if(Rs(n.object)){var t;n.object.visible=(t=n.previousVisible)!=null?t:!0}n.previousVisible=void 0,n.isHidden=!1,Z1(n)}}function HD(n,e,t){let i=e.root.getState();if(!(!n.parent&&n.object!==i.scene)){if(!e.object){var r,a;let s=qD(z2(e.type));e.object=(r=e.props.object)!=null?r:new s(...(a=e.props.args)!=null?a:[]),e.object.__r3f=e}if(jh(e.object,e.props),e.props.attach)O2(n,e);else if(Rs(e.object)&&Rs(n.object)){let s=n.object.children.indexOf(t?.object);if(t&&s!==-1){let l=n.object.children.indexOf(e.object);if(l!==-1){n.object.children.splice(l,1);let c=l{try{n.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?e():(0,Qa.unstable_scheduleCallback)(Qa.unstable_IdlePriority,e)}}function CD(n,e,t){if(!e)return;let i=!!e.parent;e.parent=null;let r=n.children.indexOf(e);r!==-1&&n.children.splice(r,1),e.props.attach?D2(n,e):Rs(e.object)&&Rs(n.object)&&(n.object.remove(e.object),uee(ND(e),e.object));let a=e.props.dispose!==null&&t!==!1;for(let l=e.children.length-1;l>=0;l--){let c=e.children[l];CD(e,c,a)}if(e.children.length=0,delete e.object.__r3f,a&&e.type!=="primitive"&&e.object.type!=="Scene"&&wH(e.object),t===void 0&&i){var s;let l=(s=e.root)==null||s.getState==null?void 0:s.getState();l&&l.internal.frames===0&&l.invalidate()}}function Pee(n,e){for(let t of[n,n.alternate])if(t!==null)if(typeof t.ref=="function"){t.refCleanup==null||t.refCleanup();let i=t.ref(e);typeof i=="function"&&(t.refCleanup=i)}else t.ref&&(t.ref.current=e)}var K1=[];function Uee(){if(K1.length!==0)try{zee()}finally{K1.length=0}}function zee(){for(let[t]of K1){let i=t.parent;if(i){t.props.attach?D2(i,t):Rs(t.object)&&Rs(i.object)&&i.object.remove(t.object);for(let r of t.children)r.props.attach?D2(t,r):Rs(r.object)&&Rs(t.object)&&t.object.remove(r.object)}t.isHidden&&EH(t),t.object.__r3f&&delete t.object.__r3f,t.type!=="primitive"&&wH(t.object)}for(let[t,i,r]of K1){t.props=i;let a=t.parent;if(a){var n,e;let s=qD(z2(t.type)),l=t.object;t.object=(n=t.props.object)!=null?n:new s(...(e=t.props.args)!=null?e:[]),t.object.__r3f=t,Pee(r,t.object),lee(ND(t),l,t.object),jh(t.object,t.props),t.props.attach?O2(a,t):Rs(t.object)&&Rs(a.object)&&a.object.add(t.object);for(let c of t.children)c.props.attach?O2(t,c):Rs(c.object)&&Rs(t.object)&&t.object.add(c.object);Z1(t)}}}var yD=()=>{},aH={},L2=bH;function qee(n){switch(n){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return eH;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return J8;case"message":switch((0,Qa.unstable_getCurrentPriorityLevel)()){case Qa.unstable_ImmediatePriority:return eH;case Qa.unstable_UserBlockingPriority:return J8;case Qa.unstable_NormalPriority:case Qa.unstable_LowPriority:return N2;case Qa.unstable_IdlePriority:return yee;default:return N2}default:return N2}}function Bee(n){typeof queueMicrotask=="function"?queueMicrotask(n):typeof Promise<"u"?Promise.resolve().then(n).catch(e=>{setTimeout(()=>{throw e})}):setTimeout(n)}var N_=kee({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:Dee,removeChild:CD,appendChild:vD,appendInitialChild:vD,insertBefore:rH,appendChildToContainer(n,e){let t=n.getState().scene.__r3f;!e||!t||vD(t,e)},removeChildFromContainer(n,e){let t=n.getState().scene.__r3f;!e||!t||CD(t,e)},insertInContainerBefore(n,e,t){let i=n.getState().scene.__r3f;!e||!t||!i||rH(i,e,t)},getRootHostContext:()=>aH,getChildHostContext:()=>aH,commitUpdate(n,e,t,i,r){var a,s,l;SH(e,i);let c=!1;if((n.type==="primitive"&&t.object!==i.object||((a=i.args)==null?void 0:a.length)!==((s=t.args)==null?void 0:s.length)||(l=i.args)!=null&&l.some((f,p)=>{var h;return f!==((h=t.args)==null?void 0:h[p])}))&&(c=!0),c)K1.push([n,TD(i),r]);else{let f=ree(n,i),p=n.props.attach;n.props=TD(i),p!==void 0?n.props.attach=p:delete n.props.attach,Object.keys(f).length&&jh(n.object,f)}},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:n=>n?.object,prepareForCommit:()=>null,preparePortalMount:n=>k2(n.getState().scene,n,"",{}),resetAfterCommit:Uee,shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:Fee,unhideInstance:EH,createTextInstance:yD,hideTextInstance:yD,unhideTextInstance:yD,supportsMicrotasks:!0,scheduleMicrotask:Bee,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:di.createContext(null),setCurrentUpdatePriority(n){L2=n},getCurrentUpdatePriority(){return L2},resolveUpdatePriority(){var n;if(L2!==bH)return L2;let e=typeof window<"u"?(n=window.event)==null?void 0:n.type:void 0;return e===void 0?N2:qee(e)},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:xee.version,applyViewTransitionName(n,e,t){},restoreViewTransitionName(n,e){},cancelViewTransitionName(n,e,t){},cancelRootViewTransitionName(n){},restoreRootViewTransitionName(n){},InstanceMeasurement:null,measureInstance:n=>null,wasInstanceInViewport:n=>!0,hasInstanceChanged:(n,e)=>!1,hasInstanceAffectedParent:(n,e)=>!1,suspendOnActiveViewTransition(n,e){},startViewTransition(n,e,t,i,r,a,s,l,c,f,p){return i(),r(),p?.(),s(),null},startGestureTransition(n,e,t,i,r,a,s,l,c,f){return s(),l(),f?.(),null},stopViewTransition(n){},addViewTransitionFinishedListener(n,e){e()},createViewTransitionInstance:n=>null,getCurrentGestureOffset(n){throw new Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance(n,e){return n},cloneMutableTextInstance(n){return n},cloneRootViewTransitionContainer(n){throw new Error("Not implemented.")},removeRootViewTransitionClone(n,e){throw new Error("Not implemented.")},createFragmentInstance:n=>null,updateFragmentInstanceFiber(n,e){},commitNewChildToFragmentInstance(n,e){},deleteChildFromFragmentInstance(n,e){},measureClonedInstance:n=>null,maySuspendCommitOnUpdate:(n,e,t)=>!1,maySuspendCommitInSyncRender:(n,e)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(n,e)=>null});var id=new Map;function P2(n,e){let t=n.state;switch(e.type){case"use":return t.status==="disposed"?!1:(n.state={status:"open"},!0);case"unmount":return t.status==="disposed"?!1:(n.state={status:"closing",token:e.token},!0);case"dispose":return t.status!=="closing"||t.token!==e.token?!1:(n.state={status:"disposed"},!0)}}function VD(n){let e=id.get(n),t=e?.fiber,i=e?.store;e&&console.warn("R3F.createRoot should only be called once!");let r=typeof reportError=="function"?reportError:console.error,a=i||_ee(q2,GD),s=t||N_.createContainer(a,vee,null,!1,null,"",r,r,r,null),l=e||{fiber:s,store:a,state:{status:"open"},ready:cee(void 0),configuration:{},ownsRenderer:!1};e||id.set(n,l);let c=!1;return{get ready(){return l.ready},configure(f={}){if(!P2(l,{type:"use"}))return fee(new Error("R3F: Cannot configure a root after disposal has started."));let p=l.ready,{promise:h,resolve:_,reject:g}=dee();l.ready=h;let E=S=>{let v=a.getState();v.gl||(l.ownsRenderer=!DD(f.gl),v.set({gl:S})),Eee(l,n,f),!l.unwatchDpr&&(f.dpr===void 0||Array.isArray(f.dpr))&&(l.unwatchDpr=wee(l)),_(this)},x=()=>{try{var S;let v=(S=a.getState().gl)!=null?S:hee(n,f.gl);OD(v)?Promise.resolve(v).then(E).catch(g):E(v)}catch(v){g(v)}};return p.status==="pending"?p.then(x,g):x(),h},render(f){if(!P2(l,{type:"use"}))return a;if(!a.getState().gl&&l.ready.status==="fulfilled"&&this.configure(),l.ready.status==="rejected")throw l.ready.reason;let p=()=>{var h;if(l.state.status!=="open"||l.ready.status==="rejected")return;if(l.ready.status==="pending"){l.ready.then(p,r);return}let _=(h=l.configuration.previous)==null?void 0:h.onCreated,g=(0,nd.jsx)(Hee,{store:a,children:f,onCreated:_,rootElement:n});if(c){N_.updateContainer(g,s,null,Y8);return}c=!0,N_.updateContainerSync(g,s,null,Y8),N_.flushSyncWork()};return p(),a},unmount(){id.get(n)===l&&xH(n)}}}function Hee({store:n,children:e,onCreated:t,rootElement:i}){return k_(()=>{let r=n.getState();r.set(a=>({internal:{...a.internal,active:!0}})),t&&t(r),n.getState().events.connected||r.events.connect==null||r.events.connect(i)},[]),(0,nd.jsx)(FD.Provider,{value:n,children:e})}function j1(n){try{return n()}catch(e){console.warn("[R3F] Error while unmounting root; teardown may be incomplete:",e)}}function xH(n,e){let t=id.get(n),i=Symbol("unmount");if(!t||!P2(t,{type:"unmount",token:i}))return;let r=()=>{var a;if(t.ready.status==="pending"){t.ready.then(r,r);return}if(!P2(t,{type:"dispose",token:i}))return;id.delete(n);let s=t.store.getState();s.internal.active=!1,j1(()=>t.unwatchDpr==null?void 0:t.unwatchDpr()),j1(()=>s.events.disconnect==null?void 0:s.events.disconnect()),(a=s.gl)!=null&&a.xr&&j1(()=>s.xr.disconnect()),s.scene&&j1(()=>mH(s.scene));let l=j1(()=>mee(s.gl,t.ownsRenderer));OD(l)?l.then(()=>e?.(n)):e?.(n)};N_.updateContainer(null,t.fiber,null,()=>{t.state.status!=="closing"||t.state.token!==i||N_.updateContainer(null,t.fiber,null,r)})}var Vee=new Set,Gee=new Set,Wee=new Set;function bD(n,e){if(n.size)for(let{callback:t}of n.values())t(e)}function lb(n,e){switch(n){case"before":return bD(Vee,e);case"after":return bD(Gee,e);case"tail":return bD(Wee,e)}}var SD,ED;function RD(n,e,t){let i=e.clock.getDelta();e.frameloop==="never"&&typeof n=="number"&&(i=n-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=n),SD=e.internal.subscribers;for(let r=0;r0)&&!((e=ob.gl.xr)!=null&&e.isPresenting)&&(wD+=RD(n,ob))}if(ID=!1,lb("after",n),wD===0)return lb("tail",n),U2=!1,cancelAnimationFrame(sH)}function q2(n,e=1){var t;if(!n)return id.forEach(i=>q2(i.store.getState(),e));(t=n.gl.xr)!=null&&t.isPresenting||!n.internal.active||n.frameloop==="never"||(e>1?n.internal.frames=Math.min(60,n.internal.frames+e):ID?n.internal.frames=2:n.internal.frames=1,U2||(U2=!0,requestAnimationFrame(TH)))}function GD(n,e=!0,t,i){if(e&&lb("before",n),t)RD(n,t,i);else for(let r of id.values())RD(n,r.store.getState());e&&lb("after",n)}var xD={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function WD(n){let{handlePointer:e}=vH(n);return{priority:1,enabled:!0,compute(t,i,r){i.pointer.set(t.offsetX/i.size.width*2-1,-(t.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(xD).reduce((t,i)=>({...t,[i]:e(i)}),{}),update:()=>{var t;let{events:i,internal:r}=n.getState();(t=r.lastEvent)!=null&&t.current&&i.handlers&&i.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{let{set:i,events:r}=n.getState();if(r.disconnect==null||r.disconnect(),i(a=>({events:{...a.events,connected:t}})),r.handlers)for(let a in r.handlers){let s=r.handlers[a],[l,c]=xD[a];t.addEventListener(l,s,{passive:c})}},disconnect:()=>{let{set:t,events:i}=n.getState();if(i.connected){if(i.handlers)for(let r in i.handlers){let a=i.handlers[r],[s]=xD[r];i.connected.removeEventListener(s,a)}t(r=>({events:{...r.events,connected:void 0}}))}}}}var kr=ci(tr());var rl=ci(tr(),1);function MH(n,e){let t;return(...i)=>{window.clearTimeout(t),t=window.setTimeout(()=>n(...i),e)}}function AH({debounce:n,scroll:e,polyfill:t,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){let r=t||(typeof window>"u"?class{}:window.ResizeObserver);if(!r)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[a,s]=(0,rl.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),l=(0,rl.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a,orientationHandler:null}),c=n?typeof n=="number"?n:n.scroll:null,f=n?typeof n=="number"?n:n.resize:null,p=(0,rl.useRef)(!1);(0,rl.useEffect)(()=>(p.current=!0,()=>void(p.current=!1)));let[h,_,g]=(0,rl.useMemo)(()=>{let v=()=>{if(!l.current.element)return;let{left:M,top:O,width:k,height:q,bottom:G,right:Q,x:H,y:Z}=l.current.element.getBoundingClientRect(),te={left:M,top:O,width:k,height:q,bottom:G,right:Q,x:H,y:Z};l.current.element instanceof HTMLElement&&i&&(te.height=l.current.element.offsetHeight,te.width=l.current.element.offsetWidth),Object.freeze(te),p.current&&!Yee(l.current.lastBounds,te)&&s(l.current.lastBounds=te)};return[v,f?MH(v,f):v,c?MH(v,c):v]},[s,i,c,f]);function E(){l.current.scrollContainers&&(l.current.scrollContainers.forEach(v=>v.removeEventListener("scroll",g,!0)),l.current.scrollContainers=null),l.current.resizeObserver&&(l.current.resizeObserver.disconnect(),l.current.resizeObserver=null),l.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",l.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",l.current.orientationHandler))}function x(){l.current.element&&(l.current.resizeObserver=new r(g),l.current.resizeObserver.observe(l.current.element),e&&l.current.scrollContainers&&l.current.scrollContainers.forEach(v=>v.addEventListener("scroll",g,{capture:!0,passive:!0})),l.current.orientationHandler=()=>{g()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",l.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",l.current.orientationHandler))}let S=v=>{!v||v===l.current.element||(E(),l.current.element=v,l.current.scrollContainers=CH(v),x())};return Qee(g,!!e),jee(_),(0,rl.useEffect)(()=>{E(),x()},[e,g,_]),(0,rl.useEffect)(()=>E,[]),[S,a,h]}function jee(n){(0,rl.useEffect)(()=>{let e=n;return window.addEventListener("resize",e),()=>void window.removeEventListener("resize",e)},[n])}function Qee(n,e){(0,rl.useEffect)(()=>{if(e){let t=n;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",t,!0)}},[n,e])}function CH(n){let e=[];if(!n||n===document.body)return e;let{overflow:t,overflowX:i,overflowY:r}=window.getComputedStyle(n);return[t,i,r].some(a=>a==="auto"||a==="scroll")&&e.push(n),[...e,...CH(n.parentElement)]}var Xee=["x","y","top","bottom","left","right","width","height"],Yee=(n,e)=>Xee.every(t=>n[t]===e[t]);var Uu=ci($o());var Qse=ci(S3());function Kee({ref:n,children:e,fallback:t,resize:i,style:r,gl:a,events:s=WD,eventSource:l,eventPrefix:c,shadows:f,linear:p,flat:h,legacy:_,orthographic:g,frameloop:E,dpr:x,performance:S,raycaster:v,camera:M,scene:O,onPointerMissed:k,onCreated:q,...G}){kr.useMemo(()=>BD(V1),[]);let Q=uH(),[H,Z]=AH({scroll:!0,debounce:{scroll:50,resize:0},...i}),te=kr.useRef(null),j=kr.useRef(null);kr.useImperativeHandle(n,()=>te.current);let he=LD(k),ke=kr.useCallback(jt=>he.current==null?void 0:he.current(jt),[he]),[Me,ze]=kr.useState(!1),[Ne,Ve]=kr.useState(!1);if(Me)throw Me;if(Ne)throw Ne;let Je=kr.useRef(null),[Qe,st]=lH(),We=kr.useRef(null),gt=()=>l?hH(l)?l.current:l:j.current;return kr.useInsertionEffect(()=>()=>{let jt=Je.current;Je.current=null,jt?.unmount()},[]),k_(()=>{let jt=te.current;Z.width>0&&Z.height>0&&jt&&(Je.current||(Je.current=VD(jt)),Je.current.configure({gl:a,scene:O,events:s,shadows:f,linear:p,flat:h,legacy:_,orthographic:g,frameloop:E,dpr:x,performance:S,raycaster:v,camera:M,size:Z,onPointerMissed:ke,onCreated:zt=>{var Mt;We.current=zt,zt.events.connect==null||zt.events.connect((Mt=gt())!=null?Mt:j.current),c&&zt.setEvents({compute:(Xe,et)=>{let yt=Xe[c+"X"],Wt=Xe[c+"Y"];et.pointer.set(yt/et.size.width*2-1,-(Wt/et.size.height)*2+1),et.raycaster.setFromCamera(et.pointer,et.camera)}}),q?.(zt)}}).catch(Ve),Je.current.ready.status==="fulfilled"?Je.current.render((0,Uu.jsx)(Q,{children:(0,Uu.jsx)(fH,{set:Ve,children:(0,Uu.jsx)(kr.Suspense,{fallback:(0,Uu.jsx)(cH,{set:ze}),children:e??null})})})):Je.current.ready.status==="pending"&&st(Je.current.ready))}),kr.useEffect(()=>{var jt;let zt=(jt=We.current)==null?void 0:jt.get(),Mt=gt();zt&&Mt&&zt.events.connected!==Mt&&(zt.events.connect==null||zt.events.connect(Mt))}),kr.useEffect(()=>{let jt=te.current;return()=>{var zt;jt.isConnected||(zt=Je.current)==null||zt.unmount()}},[]),(0,Uu.jsxs)("div",{ref:j,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:l?"none":"auto",...r},...G,children:[(0,Uu.jsx)("div",{ref:H,style:{width:"100%",height:"100%"},children:(0,Uu.jsx)("canvas",{ref:te,style:{display:"block"},children:t})}),Qe]})}function RH(n){return(0,Uu.jsx)(G1,{children:(0,Uu.jsx)(Kee,{...n})})}var ca=ci(tr(),1);var IH={type:"change"},QD={type:"start"},NH={type:"end"},B2=new Ru,LH=new fo,Zee=Math.cos(70*w2.DEG2RAD),ua=new ve,go=2*Math.PI,zi={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},jD=1e-6,H2=class extends V0{constructor(e,t=null){super(e,t),this.state=zi.NONE,this.target=new ve,this.cursor=new ve,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Yf.ROTATE,MIDDLE:Yf.DOLLY,RIGHT:Yf.PAN},this.touches={ONE:Kf.ROTATE,TWO:Kf.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new ve,this._lastQuaternion=new Lr,this._lastTargetPosition=new ve,this._quat=new Lr().setFromUnitVectors(e.up,new ve(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new S_,this._sphericalDelta=new S_,this._scale=1,this._panOffset=new ve,this._rotateStart=new ut,this._rotateEnd=new ut,this._rotateDelta=new ut,this._panStart=new ut,this._panEnd=new ut,this._panDelta=new ut,this._dollyStart=new ut,this._dollyEnd=new ut,this._dollyDelta=new ut,this._dollyDirection=new ve,this._mouse=new ut,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Jee.bind(this),this._onPointerDown=$ee.bind(this),this._onPointerUp=ete.bind(this),this._onContextMenu=ote.bind(this),this._onMouseWheel=ite.bind(this),this._onKeyDown=rte.bind(this),this._onTouchStart=ate.bind(this),this._onTouchMove=ste.bind(this),this._onMouseDown=tte.bind(this),this._onMouseMove=nte.bind(this),this._interceptControlDown=lte.bind(this),this._interceptControlUp=ute.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}set cursorStyle(e){this._cursorStyle=e,e==="grab"?this.domElement.style.cursor="grab":this.domElement.style.cursor="auto"}get cursorStyle(){return this._cursorStyle}connect(e){super.connect(e),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.state=zi.NONE,this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents();let e=this.domElement.getRootNode();e.removeEventListener("keydown",this._interceptControlDown,{capture:!0}),e.removeEventListener("keyup",this._interceptControlUp,{capture:!0}),this._controlActive=!1,this._pointers.length=0,this._pointerPositions={},this.domElement.style.touchAction="",this.domElement.style.cursor="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(e){e.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=e}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(IH),this.update(),this.state=zi.NONE}pan(e,t){this._pan(e,t),this.update()}dollyIn(e){this._dollyIn(e),this.update()}dollyOut(e){this._dollyOut(e),this.update()}rotateLeft(e){this._rotateLeft(e),this.update()}rotateUp(e){this._rotateUp(e),this.update()}update(e=null){let t=this.object.position;ua.copy(t).sub(this.target),ua.applyQuaternion(this._quat),this._spherical.setFromVector3(ua),this.autoRotate&&this.state===zi.NONE&&this._rotateLeft(this._getAutoRotationAngle(e)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(i)&&isFinite(r)&&(i<-Math.PI?i+=go:i>Math.PI&&(i-=go),r<-Math.PI?r+=go:r>Math.PI&&(r-=go),i<=r?this._spherical.theta=Math.max(i,Math.min(r,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(i+r)/2?Math.max(i,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let a=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{let s=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),a=s!=this._spherical.radius}if(ua.setFromSpherical(this._spherical),ua.applyQuaternion(this._quatInverse),t.copy(this.target).add(ua),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let s=null;if(this.object.isPerspectiveCamera){let l=ua.length();s=this._clampDistance(l*this._scale);let c=l-s;this.object.position.addScaledVector(this._dollyDirection,c),this.object.updateMatrixWorld(),a=!!c}else if(this.object.isOrthographicCamera){let l=new ve(this._mouse.x,this._mouse.y,0);l.unproject(this.object);let c=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),a=c!==this.object.zoom;let f=new ve(this._mouse.x,this._mouse.y,0);f.unproject(this.object),this.object.position.sub(f).add(l),this.object.updateMatrixWorld(),s=ua.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;s!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position):(B2.origin.copy(this.object.position),B2.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(B2.direction))jD||8*(1-this._lastQuaternion.dot(this.object.quaternion))>jD||this._lastTargetPosition.distanceToSquared(this.target)>jD?(this.dispatchEvent(IH),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?go/60*this.autoRotateSpeed*e:go/60/60*this.autoRotateSpeed}_getZoomScale(e){let t=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*t)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,t){ua.setFromMatrixColumn(t,0),ua.multiplyScalar(-e),this._panOffset.add(ua)}_panUp(e,t){this.screenSpacePanning===!0?ua.setFromMatrixColumn(t,1):(ua.setFromMatrixColumn(t,0),ua.crossVectors(this.object.up,ua)),ua.multiplyScalar(e),this._panOffset.add(ua)}_pan(e,t){let i=this.domElement;if(this.object.isPerspectiveCamera){let r=this.object.position;ua.copy(r).sub(this.target);let a=ua.length();a*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*a/i.clientHeight,this.object.matrix),this._panUp(2*t*a/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(e,t){if(!this.zoomToCursor)return;this._performCursorZoom=!0;let i=this.domElement.getBoundingClientRect(),r=e-i.left,a=t-i.top,s=i.width,l=i.height;this._mouse.x=r/s*2-1,this._mouse.y=-(a/l)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let t=this.domElement;this._rotateLeft(go*this._rotateDelta.x/t.clientHeight),this._rotateUp(go*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let t=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-go*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),t=!0;break}t&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._rotateStart.set(i,r)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panStart.set(i,r)}}_handleTouchStartDolly(e){let t=this._getSecondPointerPosition(e),i=e.pageX-t.x,r=e.pageY-t.y,a=Math.sqrt(i*i+r*r);this._dollyStart.set(0,a)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{let i=this._getSecondPointerPosition(e),r=.5*(e.pageX+i.x),a=.5*(e.pageY+i.y);this._rotateEnd.set(r,a)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);let t=this.domElement;this._rotateLeft(go*this._rotateDelta.x/t.clientHeight),this._rotateUp(go*this._rotateDelta.y/t.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{let t=this._getSecondPointerPosition(e),i=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);this._panEnd.set(i,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){let t=this._getSecondPointerPosition(e),i=e.pageX-t.x,r=e.pageY-t.y,a=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,a),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);let s=(e.pageX+t.x)*.5,l=(e.pageY+t.y)*.5;this._updateZoomParameters(s,l)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let t=0;t[n.key,new Bh({color:n.color,roughness:.85,metalness:n.key==="gold"?.4:0,transparent:n.opacity!=null,opacity:n.opacity??1,emissive:n.emissive??"#000000",depthWrite:n.opacity==null})]));function fte(n){let e=0;for(let t=0;tnew gi,[]),l=(0,ca.useMemo)(()=>new Vt,[]);(0,ca.useLayoutEffect)(()=>{let f=r.current;if(!f)return;let p=performance.now();e.forEach((h,_)=>{let g=t.get(h.id),E=g?Math.min(1,(p-g)/OH):1;s.position.set(h.x,h.y+(1-E)*1.5,h.z),s.scale.setScalar(.3+.7*E),s.updateMatrix(),f.setMatrixAt(_,s.matrix),l.setScalar(fte(h.id)),f.setColorAt(_,l)}),f.count=e.length,f.instanceMatrix.needsUpdate=!0,f.instanceColor&&(f.instanceColor.needsUpdate=!0),f.computeBoundingSphere()},[e,t,s,l]),$1(()=>{let f=r.current;if(!f||t.size===0)return;let p=performance.now(),h=!1;e.forEach((_,g)=>{let E=t.get(_.id);if(!E)return;let x=Math.min(1,(p-E)/OH),S=1-Math.pow(1-x,3);s.position.set(_.x,_.y+(1-S)*1.5,_.z),s.scale.setScalar(.3+.7*S),s.updateMatrix(),f.setMatrixAt(g,s.matrix),h=!0,x>=1&&t.delete(_.id)}),h&&(f.instanceMatrix.needsUpdate=!0)});let c=kH.get(n)??kH.get("stone");return(0,ki.jsx)("instancedMesh",{ref:r,args:[cte,c,a],frustumCulled:!1,onPointerMove:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"move"),onClick:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"click"),onContextMenu:f=>i(f,f.instanceId!=null?e[f.instanceId]??null:null,"context")})}function hte(){let{camera:n,gl:e}=UD(),t=(0,ca.useMemo)(()=>new H2(n,e.domElement),[n,e]);return(0,ca.useEffect)(()=>(t.target.set(0,3,0),e.domElement.clientWidth/Math.max(1,e.domElement.clientHeight)<.9&&n.position.multiplyScalar(1.7),t.enableDamping=!0,t.dampingFactor=.08,t.maxPolarAngle=Math.PI*.47,t.minDistance=6,t.maxDistance=140,t.update(),()=>t.dispose()),[t,n,e]),$1(()=>t.update()),null}function pte(n,e){let t=document.createElement("canvas"),i=t.getContext("2d");i.font="600 44px system-ui, sans-serif";let r=Math.ceil(i.measureText(n).width)+48;t.width=r,t.height=76,i.font="600 44px system-ui, sans-serif",i.fillStyle="rgba(12,16,26,0.82)",i.beginPath(),i.roundRect(0,0,r,76,38),i.fill(),i.fillStyle=e,i.beginPath(),i.arc(30,38,11,0,Math.PI*2),i.fill(),i.fillStyle="#fff",i.fillText(n,50,53);let a=new y0(t);return a.colorSpace=Yr,{tex:a,aspect:r/76}}function DH({text:n,color:e,position:t}){let{tex:i,aspect:r}=(0,ca.useMemo)(()=>pte(n,e),[n,e]);return(0,ca.useEffect)(()=>()=>i.dispose(),[i]),(0,ki.jsx)("sprite",{position:t,scale:[.9*r,.9,1],renderOrder:10,children:(0,ki.jsx)("spriteMaterial",{map:i,depthTest:!1,transparent:!0})})}function mte({player:n,at:e}){let t=(0,ca.useRef)(null);return $1(({clock:i})=>{t.current&&(t.current.position.y=e.y+1.6+Math.sin(i.elapsedTime*3)*.15)}),(0,ki.jsxs)("group",{ref:t,position:[e.x,e.y+1.6,e.z],children:[(0,ki.jsxs)("mesh",{rotation:[0,0,Math.PI/4],children:[(0,ki.jsx)("octahedronGeometry",{args:[.35]}),(0,ki.jsx)("meshStandardMaterial",{color:n.color,emissive:n.color,emissiveIntensity:.6})]}),(0,ki.jsx)(DH,{text:n.display_name,color:n.color,position:[0,.9,0]})]})}function V2(n){let{blocks:e,players:t,builds:i,meId:r,mode:a,canEdit:s}=n,l=(0,ca.useRef)(new Map).current,c=(0,ca.useRef)(null),[f,p]=(0,ca.useState)(null),h=c.current;if(h===null)c.current=new Set(e.map(q=>q.id));else{let q=performance.now(),G=new Set;for(let Q of e)G.add(Q.id),h.has(Q.id)||l.set(Q.id,q);c.current=G}let _=(0,ca.useMemo)(()=>{let q=new Map;for(let G of e){let Q=q.get(G.material)??[];Q.push(G),q.set(G.material,Q)}return q},[e]),g=(0,ca.useMemo)(()=>{let q=new Set(i.filter(Q=>Q.status==="building"||Q.status==="planning").map(Q=>Q.author_id)),G=new Map;for(let Q of e){if(!Q.placed_by||!q.has(Q.placed_by))continue;let H=G.get(Q.placed_by);(!H||(Q.seq??0)>(H.seq??0))&&G.set(Q.placed_by,Q)}return t.filter(Q=>Q.kind==="agent"&&G.has(Q.id)).map(Q=>({player:Q,at:G.get(Q.id)}))},[e,i,t]),E=t.filter(q=>q.id!==r&&q.kind==="human"&&q.cursor_x!=null&&q.last_seen!=null&&Date.now()-Date.parse(q.last_seen.replace(" ","T")+(q.last_seen.endsWith("Z")||/[+-]\d\d(:?\d\d)?$/.test(q.last_seen)?"":"Z"))<9e4),x=(q,G,Q)=>{if(G){if(Q)return{cell:{x:G.x,y:G.y,z:G.z},block:G};let Z=q.face?.normal;if(!Z)return null;let te={x:G.x+Math.round(Z.x),y:G.y+Math.round(Z.y),z:G.z+Math.round(Z.z)};return cw(te.x,te.y,te.z)?{cell:te,block:null}:null}if(Q)return null;let H={x:Math.round(q.point.x),y:0,z:Math.round(q.point.z)};return cw(H.x,H.y,H.z)?{cell:H,block:null}:null},S=(q,G,Q)=>{if(q.stopPropagation(),!s)return;let H=q.nativeEvent,Z=Q==="context"||a==="remove"||H.shiftKey||H.altKey,te=x(q,G,Z);if(Q==="move"){p(te?{cell:te.cell,remove:Z}:null),n.onHover(te?.cell??null);return}Q==="context"&&H.preventDefault?.(),!(q.delta>6)&&te&&(Z&&te.block?n.onRemove(te.block):Z||n.onPlace(te.cell))},v=gr.maxX-gr.minX+1,M=gr.maxZ-gr.minZ+1,O=(gr.maxX+gr.minX)/2,k=(gr.maxZ+gr.minZ)/2;return(0,ki.jsxs)(RH,{camera:{position:[26,24,30],fov:50,near:.1,far:600},dpr:[1,2],onContextMenu:q=>q.preventDefault(),onPointerMissed:()=>{p(null),n.onHover(null)},children:[(0,ki.jsx)("color",{attach:"background",args:["#9fc9ee"]}),(0,ki.jsx)("fog",{attach:"fog",args:["#9fc9ee",90,220]}),(0,ki.jsx)("hemisphereLight",{args:["#ffffff","#5b6b4a",1.1]}),(0,ki.jsx)("directionalLight",{position:[30,50,20],intensity:1.4}),(0,ki.jsx)(hte,{}),(0,ki.jsxs)("mesh",{rotation:[-Math.PI/2,0,0],position:[O,-.5,k],onPointerMove:q=>S(q,null,"move"),onClick:q=>S(q,null,"click"),children:[(0,ki.jsx)("planeGeometry",{args:[v,M]}),(0,ki.jsx)("meshStandardMaterial",{color:"#6fae5a",roughness:1})]}),(0,ki.jsx)("gridHelper",{args:[v,v,"#64a252","#64a252"],position:[O,-.49,k]}),[..._.entries()].map(([q,G])=>(0,ki.jsx)(dte,{material:q,blocks:G,bornAt:l,onPointer:S},q)),f?(0,ki.jsxs)("mesh",{position:[f.cell.x,f.cell.y,f.cell.z],raycast:()=>null,children:[(0,ki.jsx)("boxGeometry",{args:[1.04,1.04,1.04]}),(0,ki.jsx)("meshBasicMaterial",{color:f.remove?"#ff4d4f":"#ffffff",transparent:!0,opacity:.35,depthWrite:!1})]}):null,E.map(q=>(0,ki.jsxs)("group",{position:[q.cursor_x,q.cursor_y,q.cursor_z],children:[(0,ki.jsxs)("mesh",{raycast:()=>null,children:[(0,ki.jsx)("boxGeometry",{args:[1.06,1.06,1.06]}),(0,ki.jsx)("meshBasicMaterial",{color:q.color,wireframe:!0})]}),(0,ki.jsx)(DH,{text:q.display_name,color:q.color,position:[0,1.2,0]})]},q.id)),g.map(q=>(0,ki.jsx)(mte,{player:q.player,at:q.at},q.player.id))]})}var At=ci($o(),1),PH=document.documentElement.dataset.appBase??"";function _te({room:n,name:e}){let[t,i]=(0,Or.useState)(!1),[r,a]=(0,Or.useState)(e),[s,l]=(0,Or.useState)(!1);if(!n.isOwner)return(0,At.jsx)("span",{className:"world-name",children:e});if(!t)return(0,At.jsxs)("button",{type:"button",className:"world-name editable",title:"Rename room",onClick:()=>(a(e),i(!0)),children:[e,(0,At.jsx)("span",{className:"edit-hint","aria-hidden":"true",children:"\u270E"})]});async function c(){let f=r.trim();if(!f||f===e)return i(!1);l(!0),await fetch(`${PH}/api/rooms/${n.slug}`,{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({name:f})}).catch(()=>null),l(!1),i(!1)}return(0,At.jsx)("form",{className:"rename",onSubmit:f=>{f.preventDefault(),c()},children:(0,At.jsx)("input",{autoFocus:!0,"aria-label":"Room name",value:r,maxLength:40,disabled:s,onChange:f=>a(f.target.value),onBlur:()=>void c(),onKeyDown:f=>f.key==="Escape"&&i(!1)})})}async function FH(n){try{return await navigator.clipboard.writeText(n),!0}catch{let e=document.createElement("textarea");e.value=n,e.setAttribute("readonly",""),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let t=document.execCommand("copy");return e.remove(),t}}function gte(){let[n,e]=(0,Or.useState)(null);return(0,Or.useEffect)(()=>{if(!n)return;let t=setTimeout(()=>e(null),2200);return()=>clearTimeout(t)},[n]),[n,e]}function vte(n){let[e,t]=(0,Or.useState)(()=>Date.now());return(0,Or.useEffect)(()=>{let i=setInterval(()=>t(Date.now()),n);return()=>clearInterval(i)},[n]),e}var yte=n=>{if(!n)return 0;let e=n.includes("T")?n:n.replace(" ","T");return Date.parse(/[zZ]|[+-]\d\d(:?\d\d)?$/.test(e)?e:e+"Z")};function UH({session:n,initialRoom:e}){let t=Sc(),i=aE(),r=e.worldId,a=n.player??null,s=n.signedIn&&!!a,[l,c]=(0,Or.useState)("place"),[f,p]=(0,Or.useState)("stone"),[h,_]=(0,Or.useState)(()=>window.matchMedia("(min-width: 900px)").matches),g=vte(5e3),{data:E}=zv("SELECT id, world_id, x, y, z, material, build_id, placed_by, seq FROM blocks WHERE world_id = ?",[r]),{data:x}=zv("SELECT * FROM players WHERE world_id = ? ORDER BY display_name",[r]),{data:S}=zv("SELECT * FROM builds WHERE world_id = ? ORDER BY created_at DESC LIMIT 20",[r]),{data:v}=zv("SELECT id, name FROM worlds WHERE id = ?",[r]),M=v[0]?.name??e.name,O=`${location.origin}${PH}/r/${e.slug}`,[k,q]=gte(),G=async()=>{let Ne=CB({roomUrl:O,roomCode:e.slug,roomName:M,userName:a?.displayName??"Me"});window.__wbPrompt=Ne,await FH(Ne)&&q("prompt")},Q=async()=>{await FH(O)&&q("link")},H=(0,Or.useMemo)(()=>new Map(x.map(Ne=>[Ne.id,Ne])),[x]),Z=x.filter(Ne=>{let Ve=yte(Ne.last_seen),Je=S.some(Qe=>Qe.author_id===Ne.id&&(Qe.status==="building"||Qe.status==="planning"));return Ne.id===a?.id||Je||g-Ve<12e4}),te=(0,Or.useCallback)(async Ne=>{if(!a)return;let Ve=AB(r,Ne.x,Ne.y,Ne.z);await t.writeTransaction(async Je=>{await Je.getOptional("SELECT id FROM blocks WHERE id = ?",[Ve])?await Je.execute("UPDATE blocks SET material = ?, placed_by = ?, build_id = NULL WHERE id = ?",[f,a.id,Ve]):await Je.execute("INSERT INTO blocks (id, world_id, x, y, z, material, placed_by) VALUES (?, ?, ?, ?, ?, ?, ?)",[Ve,r,Ne.x,Ne.y,Ne.z,f,a.id])})},[t,a,r,f]),j=(0,Or.useCallback)(async Ne=>{await t.execute("DELETE FROM blocks WHERE id = ?",[Ne.id])},[t]),he=(0,Or.useRef)(void 0);(0,Or.useEffect)(()=>{if(!a)return;let Ne="",Ve=setInterval(()=>{let Je=he.current;if(Je===void 0)return;let Qe=Je?`${Je.x}:${Je.y}:${Je.z}`:"none";Qe!==Ne&&(Ne=Qe,t.execute("UPDATE players SET cursor_x = ?, cursor_y = ?, cursor_z = ?, world_id = ? WHERE id = ?",[Je?.x??null,Je?.y??null,Je?.z??null,r,a.id]))},350);return()=>clearInterval(Ve)},[t,a,r]);let ke=(0,Or.useCallback)(Ne=>{he.current=Ne},[]),Me=i.connected?i.dataFlowStatus?.uploading||i.dataFlowStatus?.downloading||!i.hasSynced?"syncing":"synced":"offline",ze={synced:"Live",syncing:"Syncing",offline:"Offline"}[Me];return(0,At.jsxs)("div",{className:`app ${h?"panel-open":""}`,children:[(0,At.jsxs)("header",{className:"topbar",children:[(0,At.jsxs)("div",{className:"brand",children:[(0,At.jsx)("img",{src:`${document.documentElement.dataset.assetBase}/icon.png`,alt:"",width:28,height:28}),(0,At.jsxs)("div",{className:"brand-text",children:[(0,At.jsx)("strong",{children:"World Builder"}),(0,At.jsx)(_te,{room:e,name:M})]})]}),(0,At.jsxs)("div",{className:"top-right",children:[(0,At.jsx)("button",{type:"button",className:"chip",onClick:Q,title:"Copy the room link to share it",children:k==="link"?"Link copied!":"Share"}),s?(0,At.jsxs)("button",{type:"button",className:"chip primary",onClick:G,title:"Copy a prompt that teaches your agent to build in this room",children:[(0,At.jsx)(Py,{}),(0,At.jsx)("span",{className:"chip-label",children:k==="prompt"?"Copied!":"Copy prompt for your agent"})]}):(0,At.jsx)("a",{className:"chip primary",href:Df(),children:"Sign in to build"}),(0,At.jsxs)("div",{className:"avatars","aria-label":`${Z.length} builders online`,children:[Z.slice(0,5).map(Ne=>(0,At.jsx)("span",{className:"avatar",style:{background:Ne.color},title:Ne.display_name,children:Ne.kind==="agent"?(0,At.jsx)(Py,{}):bte(Ne.display_name)},Ne.id)),Z.length>5?(0,At.jsxs)("span",{className:"avatar more",children:["+",Z.length-5]}):null]}),(0,At.jsx)("span",{className:`sync ${Me}`,title:`Sync: ${ze}`,"aria-label":`Sync status: ${ze}`,children:(0,At.jsx)(oA,{state:Me})}),n.signedIn?(0,At.jsx)("a",{className:"chip",href:rA(),title:"Sign out of Kody on this site",children:"Sign out"}):null,(0,At.jsx)("button",{type:"button",className:"icon-btn",onClick:()=>_(Ne=>!Ne),"aria-label":"Toggle side panel","aria-pressed":h,children:(0,At.jsx)(OB,{})})]})]}),(0,At.jsxs)("main",{className:"stage",children:[(0,At.jsx)(V2,{blocks:E,players:x,builds:S,meId:a?.id??null,mode:l,canEdit:s,onPlace:te,onRemove:j,onHover:ke}),i.hasSynced?null:(0,At.jsx)("div",{className:"stage-overlay","aria-hidden":"true",children:(0,At.jsx)("div",{className:"boot-cube"})}),s?null:(0,At.jsxs)("div",{className:"banner",children:["You're watching. ",(0,At.jsx)("a",{href:Df(),children:"Sign in to build"})]}),k==="prompt"?(0,At.jsx)("div",{className:"toast",role:"status",children:"Copied! Paste it into Claude, ChatGPT or Grok, then ask for a castle."}):null]}),s?(0,At.jsxs)("nav",{className:"toolbar","aria-label":"Build tools",children:[(0,At.jsxs)("div",{className:"modes",role:"radiogroup","aria-label":"Mode",children:[(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":l==="place",className:l==="place"?"on":"",onClick:()=>c("place"),title:"Place blocks",children:(0,At.jsx)(NB,{})}),(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":l==="remove",className:l==="remove"?"on":"",onClick:()=>c("remove"),title:"Remove blocks (or right-click / shift-click)",children:(0,At.jsx)(kB,{})})]}),(0,At.jsx)("div",{className:"palette",role:"radiogroup","aria-label":"Block",children:jm.map(Ne=>(0,At.jsx)("button",{type:"button",role:"radio","aria-checked":f===Ne.key,"aria-label":Ne.label,title:Ne.label,className:`swatch ${f===Ne.key?"on":""}`,style:{background:Ne.color,opacity:Ne.opacity?.75:1},onClick:()=>{p(Ne.key),c("place")}},Ne.key))})]}):null,(0,At.jsxs)("aside",{className:"panel","aria-label":"World activity",children:[(0,At.jsxs)("section",{children:[(0,At.jsxs)("h2",{children:["Builders ",(0,At.jsx)("span",{className:"count",children:Z.length})]}),(0,At.jsxs)("ul",{className:"people",children:[Z.length===0?(0,At.jsx)("li",{className:"muted",children:"Nobody here yet."}):null,Z.map(Ne=>(0,At.jsxs)("li",{children:[(0,At.jsx)("span",{className:"dot",style:{background:Ne.color}}),(0,At.jsx)("span",{className:"kind",children:Ne.kind==="agent"?(0,At.jsx)(Py,{}):(0,At.jsx)(sA,{})}),(0,At.jsx)("span",{className:"name",children:Ne.display_name}),Ne.id===a?.id?(0,At.jsx)("span",{className:"pill",children:"you"}):null]},Ne.id))]})]}),(0,At.jsxs)("section",{children:[(0,At.jsx)("h2",{children:"Build feed"}),(0,At.jsxs)("ul",{className:"feed",children:[S.length===0?(0,At.jsx)("li",{className:"muted",children:"No agent builds yet. Ask your agent to build something!"}):null,S.map(Ne=>{let Ve=H.get(Ne.author_id),Je=Ne.status==="building"||Ne.status==="planning";return(0,At.jsxs)("li",{className:Je?"active":"",children:[(0,At.jsxs)("div",{className:"feed-head",children:[(0,At.jsx)("span",{className:"dot",style:{background:Ve?.color??"#888"}}),(0,At.jsx)("span",{className:"name",children:Ve?.display_name??"An agent"}),(0,At.jsx)("span",{className:`status ${Ne.status}`,children:Je?"building":Ne.status})]}),Ne.prompt?(0,At.jsx)("p",{className:"prompt",children:Ne.prompt}):null,(0,At.jsxs)("div",{className:"feed-meta",children:[Ne.block_count.toLocaleString()," blocks"]})]},Ne.id)})]})]}),(0,At.jsxs)("section",{className:"howto",children:[(0,At.jsx)("h2",{children:"Bring your agent"}),(0,At.jsxs)("p",{children:["Connect Claude, ChatGPT or Grok to Kody. Copy the prompt, paste it into your agent, then ask: ",(0,At.jsx)("em",{children:'"Build me a castle."'})," Its blocks stream in here live."]}),s?(0,At.jsx)("button",{type:"button",className:"cta small",onClick:G,children:k==="prompt"?"Copied!":"Copy prompt for your agent"}):(0,At.jsx)("a",{className:"cta small",href:Df(),children:"Sign in to build"})]}),(0,At.jsxs)("details",{className:"details",children:[(0,At.jsx)("summary",{children:"Details"}),(0,At.jsxs)("dl",{children:[(0,At.jsx)("dt",{children:"Blocks"}),(0,At.jsx)("dd",{children:E.length.toLocaleString()}),(0,At.jsx)("dt",{children:"Room code"}),(0,At.jsx)("dd",{className:"mono",children:e.slug}),(0,At.jsx)("dt",{children:"World id"}),(0,At.jsx)("dd",{className:"mono",children:r}),(0,At.jsx)("dt",{children:"Your player"}),(0,At.jsx)("dd",{className:"mono",children:a?.id??"spectator"}),(0,At.jsx)("dt",{children:"Sync"}),(0,At.jsxs)("dd",{children:[ze,i.lastSyncedAt?` \xB7 ${i.lastSyncedAt.toLocaleTimeString()}`:""]}),(0,At.jsx)("dt",{children:"PowerSync"}),(0,At.jsx)("dd",{className:"mono",children:new URL(n.powersyncUrl).host})]})]})]})]})}function bte(n){return n.split(/\s+/).map(e=>e[0]).join("").slice(0,2).toUpperCase()}var zu=ci(tr(),1);function zH(n,e,t=7){let i=new Map,r=(s,l,c,f)=>{cw(s,l,c)&&i.set(`${s}:${l}:${c}`,{x:s,y:l,z:c,material:f})},a=5;for(let s=-t;s<=t;s++)for(let l=-t;l<=t;l++)r(n+s,0,e+l,(s+l)%2===0?"cobble":"stone");for(let s=1;s<=a;s++)for(let l=-t;l<=t;l++)for(let[c,f]of[[l,-t],[l,t],[-t,l],[t,l]])f===t&&Math.abs(c)<=1&&s<=3||r(n+c,s,e+f,"stone");for(let s=-t;s<=t;s+=2)for(let[l,c]of[[s,-t],[s,t],[-t,s],[t,s]])r(n+l,a+1,e+c,"cobble");for(let[s,l]of[[-t,-t],[t,-t],[-t,t],[t,t]]){let c=a+4;for(let f=1;f<=c;f++)for(let p=-1;p<=1;p++)for(let h=-1;h<=1;h++)(p!==0||h!==0||f===c)&&r(n+s+p,f,e+l+h,"brick");for(let f=-2;f<=2;f++)for(let p=-2;p<=2;p++)(Math.abs(f)===2||Math.abs(p)===2)&&r(n+s+f,c+1,e+l+p,"obsidian");r(n+s,c+1,e+l,"gold")}for(let s=1;s<=7;s++)for(let l=-2;l<=2;l++)for(let c=-2;c<=2;c++)if(Math.abs(l)===2||Math.abs(c)===2){let f=s===4&&(l===0||c===0);r(n+l,s,e+c,f?"glass":"plank")}for(let s=-2;s<=2;s++)for(let l=-2;l<=2;l++)r(n+s,8,e+l,"wood");for(let s=9;s<=12;s++)r(n,s,e,"wood");return r(n+1,12,e,"banner"),r(n+2,12,e,"banner"),r(n+1,11,e,"banner"),[...i.values()].sort((s,l)=>s.y-l.y||s.z-l.z||s.x-l.x)}var Jn=ci($o(),1),Ste="preview",XD=()=>{};function Ete(){let n=(0,zu.useMemo)(()=>zH(0,0),[]),[e,t]=(0,zu.useState)(0);return(0,zu.useEffect)(()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){t(n.length);return}let r=setInterval(()=>t(a=>a>=n.length+60?0:a+12),120);return()=>clearInterval(r)},[n]),(0,zu.useMemo)(()=>n.slice(0,Math.min(e,n.length)).map(i=>({id:`${i.x}:${i.y}:${i.z}`,world_id:Ste,x:i.x,y:i.y,z:i.z,material:i.material,build_id:null,placed_by:null,seq:null})),[n,e])}function qH({appBase:n}){let e=Ete(),[t,i]=(0,zu.useState)(null),[r,a]=(0,zu.useState)(!1),[s,l]=(0,zu.useState)(null);(0,zu.useEffect)(()=>{fetch(`${n}/api/me`,{credentials:"same-origin"}).then(p=>p.json()).then(i,()=>i({signedIn:!1}))},[n]);async function c(){a(!0),l(null);try{let p=await fetch(`${n}/api/rooms`,{method:"POST",credentials:"same-origin"}),h=await p.json().catch(()=>({}));if(!p.ok||!h.room)throw new Error(h.error??"Could not create a room. Try again.");lw(`/r/${h.room.slug}`)}catch(p){l(p instanceof Error?p.message:"Could not create a room. Try again."),a(!1)}}let f=t!==null&&!t.signedIn;return(0,Jn.jsxs)("div",{className:"landing",children:[(0,Jn.jsx)("div",{className:"landing-preview","aria-hidden":"true",children:(0,Jn.jsx)(V2,{blocks:e,players:[],builds:[],meId:null,mode:"place",canEdit:!1,onPlace:XD,onRemove:XD,onHover:XD})}),(0,Jn.jsxs)("header",{className:"landing-top",children:[(0,Jn.jsxs)("div",{className:"brand",children:[(0,Jn.jsx)("img",{src:`${document.documentElement.dataset.assetBase}/icon.png`,alt:"",width:30,height:30}),(0,Jn.jsx)("strong",{children:"World Builder"})]}),t?.signedIn?(0,Jn.jsx)("a",{className:"chip",href:rA(),title:"Sign out of Kody on this site",children:"Sign out"}):f?(0,Jn.jsx)("a",{className:"chip",href:Df(),children:"Sign in to build"}):null]}),(0,Jn.jsxs)("main",{className:"hero",children:[(0,Jn.jsxs)("p",{className:"eyebrow",children:[(0,Jn.jsx)("span",{className:"live-dot"})," Live multiplayer \xB7 humans + agents"]}),(0,Jn.jsx)("h1",{children:"Build a 3D world together, with your friends and your AI agents."}),(0,Jn.jsx)("p",{className:"lede",children:"Open a room, share the link, and place blocks together. Then paste one prompt into Claude, ChatGPT or Grok and ask for a castle. Everyone in the room watches it go up block by block."}),(0,Jn.jsxs)("div",{className:"hero-actions",children:[(0,Jn.jsx)("button",{type:"button",className:"cta",onClick:c,disabled:r||f||t===null,children:r?"Creating\u2026":"Create a room"}),(0,Jn.jsx)("button",{type:"button",className:"cta ghost",onClick:()=>lw("/r/main"),children:"Watch the main world"}),f?(0,Jn.jsxs)("p",{className:"hint",children:[(0,Jn.jsx)("a",{href:Df(),children:"Sign in to build"})," and create your own room, or watch the main world."]}):null,s?(0,Jn.jsx)("p",{className:"hint error",role:"alert",children:s}):null]}),(0,Jn.jsxs)("ul",{className:"features",children:[(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(sA,{}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"One-click rooms"})," with a private share link"]})]}),(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(Py,{}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"Bring your own agent"})," over Kody MCP or the CLI"]})]}),(0,Jn.jsxs)("li",{children:[(0,Jn.jsx)(oA,{state:"synced"}),(0,Jn.jsxs)("span",{children:[(0,Jn.jsx)("strong",{children:"Live sync"})," for every block, powered by PowerSync"]})]})]})]}),(0,Jn.jsxs)("footer",{className:"landing-foot",children:["Powered by ",(0,Jn.jsx)("a",{href:"https://www.powersync.com",target:"_blank",rel:"noreferrer",children:"PowerSync"})," and"," ",(0,Jn.jsx)("a",{href:"https://kody.codes",target:"_blank",rel:"noreferrer",children:"Kody"})]})]})}var ls;(function(n){n.IDBBatchAtomicVFS="IDBBatchAtomicVFS",n.OPFSCoopSyncVFS="OPFSCoopSyncVFS",n.AccessHandlePoolVFS="AccessHandlePoolVFS",n.OPFSWriteAheadVFS="OPFSWriteAheadVFS",n.InMemoryVfs="InMemoryVFS"})(ls||(ls={}));function mT(n){return n!=ls.IDBBatchAtomicVFS&&n!=ls.InMemoryVfs}async function ene(n){if(n){let{default:e}=await Promise.resolve().then(()=>(HH(),BH));return e()}else{let{default:e}=await Promise.resolve().then(()=>(GH(),VH));return e()}}async function tne(n){if(n){let{default:e}=await Promise.resolve().then(()=>(jH(),WH));return e()}else{let{default:e}=await Promise.resolve().then(()=>(XH(),QH));return e()}}async function bV({vfs:n,filename:e,encryptionKey:t}){let i=tne,r;switch(n){case ls.IDBBatchAtomicVFS:{i=ene;let{IDBBatchAtomicVFS:s}=await Promise.resolve().then(()=>(eV(),JH));r=l=>s.create(e,l,{lockPolicy:"exclusive"});break}case ls.AccessHandlePoolVFS:{let{AccessHandlePoolVFS:s}=await Promise.resolve().then(()=>(aV(),rV));r=l=>s.create(e,l);break}case ls.OPFSCoopSyncVFS:{let{OPFSCoopSyncVFS:s}=await Promise.resolve().then(()=>(lV(),oV));r=l=>s.create(e,l);break}case ls.OPFSWriteAheadVFS:{let{OPFSWriteAheadVFS:s}=await Promise.resolve().then(()=>(gV(),_V));r=l=>s.create(e,l,{});break}case ls.InMemoryVfs:{let{MemoryVFS:s}=await Promise.resolve().then(()=>(yV(),vV));r=l=>s.create(e,l);break}}let a=await i(t);return{module:a,vfs:await r(a)}}var EV=Symbol("Comlink.proxy"),wF=Symbol("Comlink.endpoint"),_T=Symbol("Comlink.releaseProxy"),SF=Symbol("Comlink.finalizer"),Z2=Symbol("Comlink.thrown"),wV=n=>typeof n=="object"&&n!==null||typeof n=="function",nne={canHandle:n=>wV(n)&&n[EV],serialize(n){let{port1:e,port2:t}=new MessageChannel;return tR(n,e),[t,[t]]},deserialize(n){return n.start(),gT(n)}},ine={canHandle:n=>wV(n)&&Z2 in n,serialize({value:n}){let e;return n instanceof Error?e={isError:!0,value:{message:n.message,name:n.name,stack:n.stack}}:e={isError:!1,value:n},[e,[]]},deserialize(n){throw n.isError?Object.assign(new Error(n.value.message),n.value):n.value}},xV=new Map([["proxy",nne],["throw",ine]]);function rne(n,e){for(let t of n)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function tR(n,e=globalThis,t=["*"]){e.addEventListener("message",function i(r){if(!r||!r.data)return;if(!rne(t,r.origin)){console.warn(`Invalid origin '${r.origin}' for comlink proxy`);return}let{id:a,type:s,path:l}=Object.assign({path:[]},r.data),c=(r.data.argumentList||[]).map(F_),f;try{let p=l.slice(0,-1).reduce((_,g)=>_[g],n),h=l.reduce((_,g)=>_[g],n);switch(s){case"GET":f=h;break;case"SET":p[l.slice(-1)[0]]=F_(r.data.value),f=!0;break;case"APPLY":f=h.apply(p,c);break;case"CONSTRUCT":{let _=new h(...c);f=nR(_)}break;case"ENDPOINT":{let{port1:_,port2:g}=new MessageChannel;tR(n,g),f=vT(_,[_])}break;case"RELEASE":f=void 0;break;default:return}}catch(p){f={value:p,[Z2]:0}}Promise.resolve(f).catch(p=>({value:p,[Z2]:0})).then(p=>{let[h,_]=eR(p);e.postMessage(Object.assign(Object.assign({},h),{id:a}),_),s==="RELEASE"&&(e.removeEventListener("message",i),TV(e),SF in n&&typeof n[SF]=="function"&&n[SF]())}).catch(p=>{let[h,_]=eR({value:new TypeError("Unserializable return value"),[Z2]:0});e.postMessage(Object.assign(Object.assign({},h),{id:a}),_)})}),e.start&&e.start()}function ane(n){return n.constructor.name==="MessagePort"}function TV(n){ane(n)&&n.close()}function gT(n,e){let t=new Map;return n.addEventListener("message",function(r){let{data:a}=r;if(!a||!a.id)return;let s=t.get(a.id);if(s)try{s(a)}finally{t.delete(a.id)}}),EF(n,t,[],e)}function K2(n){if(n)throw new Error("Proxy has been released and is not useable")}function MV(n){return hb(n,new Map,{type:"RELEASE"}).then(()=>{TV(n)})}var $2=new WeakMap,J2="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{let e=($2.get(n)||0)-1;$2.set(n,e),e===0&&MV(n)});function sne(n,e){let t=($2.get(e)||0)+1;$2.set(e,t),J2&&J2.register(n,e,n)}function one(n){J2&&J2.unregister(n)}function EF(n,e,t=[],i=function(){}){let r=!1,a=new Proxy(i,{get(s,l){if(K2(r),l===_T)return()=>{one(a),MV(n),e.clear(),r=!0};if(l==="then"){if(t.length===0)return{then:()=>a};let c=hb(n,e,{type:"GET",path:t.map(f=>f.toString())}).then(F_);return c.then.bind(c)}return EF(n,e,[...t,l])},set(s,l,c){K2(r);let[f,p]=eR(c);return hb(n,e,{type:"SET",path:[...t,l].map(h=>h.toString()),value:f},p).then(F_)},apply(s,l,c){K2(r);let f=t[t.length-1];if(f===wF)return hb(n,e,{type:"ENDPOINT"}).then(F_);if(f==="bind")return EF(n,e,t.slice(0,-1));let[p,h]=SV(c);return hb(n,e,{type:"APPLY",path:t.map(_=>_.toString()),argumentList:p},h).then(F_)},construct(s,l){K2(r);let[c,f]=SV(l);return hb(n,e,{type:"CONSTRUCT",path:t.map(p=>p.toString()),argumentList:c},f).then(F_)}});return sne(a,n),a}function lne(n){return Array.prototype.concat.apply([],n)}function SV(n){let e=n.map(eR);return[e.map(t=>t[0]),lne(e.map(t=>t[1]))]}var AV=new WeakMap;function vT(n,e){return AV.set(n,e),n}function nR(n){return Object.assign(n,{[EV]:!0})}function eR(n){for(let[e,t]of xV)if(t.canHandle(n)){let[i,r]=t.serialize(n);return[{type:"HANDLER",name:e,value:i},r]}return[{type:"RAW",value:n},AV.get(n)||[]]}function F_(n){switch(n.type){case"HANDLER":return xV.get(n.name).deserialize(n.value);case"RAW":return n.value}}function hb(n,e,t,i){return new Promise(r=>{let a=une();e.set(a,r),n.start&&n.start(),n.postMessage(Object.assign({id:a},t),i)})}function une(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var Kh;(function(n){n.DATA="ps_data",n.CRUD="ps_crud",n.BUCKETS="ps_buckets",n.OPLOG="ps_oplog",n.UNTYPED="ps_untyped"})(Kh||(Kh={}));var Is;(function(n){n.PROCESS_TEXT_LINE="line_text",n.PROCESS_BSON_LINE="line_binary",n.STOP="stop",n.START="start",n.NOTIFY_TOKEN_REFRESHED="refreshed_token",n.NOTIFY_CRUD_UPLOAD_COMPLETED="completed_upload",n.UPDATE_SUBSCRIPTIONS="update_subscriptions",n.CONNECTION_STATE="connection"})(Is||(Is={}));async function rR(n,e,t){let{rawRows:i}=await n.executeRaw("SELECT CAST(powersync_control(?, ?) AS TEXT)",[e,t]);return i[0][0]}function yT(n,e=null){return rR(n,"target_checkpoint_request_id",e)}var xF="9223372036854775807";var aR=class{internal;totalOperations;downloadedOperations;downloadedFraction;constructor(e){this.internal=e;let t=this.untilPriority(2147483647);this.totalOperations=t.totalOperations,this.downloadedOperations=t.downloadedOperations,this.downloadedFraction=t.downloadedFraction}untilPriority(e){let t=0,i=0;for(let a of Object.values(this.internal.buckets))a.priority<=e&&(i+=a.since_last,t+=a.target_count-a.at_last);let r=t==0?0:i/t;return{totalOperations:t,downloadedOperations:i,downloadedFraction:r}}};var Kc=class{core;jsState;constructor(e,t){this.core=e,this.jsState=t}get connected(){return this.core?.connected??!1}get connecting(){return this.core?.connecting??!1}get downloading(){return this.core?.downloading!=null}get uploading(){return this.jsState.uploading??!1}get downloadError(){return this.jsState.downloadError}get uploadError(){return this.jsState.uploadError}get dataFlowStatus(){return{downloading:this.downloading,uploading:this.uploading,downloadError:this.downloadError,uploadError:this.uploadError}}get lastSyncedAt(){return this.statusForPriority(2147483647)?.lastSyncedAt}get hasSynced(){return this.statusForPriority(2147483647)?.hasSynced}get syncStreams(){return this.core?.streams.map(e=>new oR(this,e))}forStream(e){let t=JSON.stringify(e.parameters),i=this.core?.streams?.find(r=>r.name==e.name&&t==JSON.stringify(r.parameters));return i&&new oR(this,i)}get priorityStatusEntries(){return this.core?.priority_status.map(CV)}get downloadProgress(){let e=this.core?.downloading;return e==null?null:new aR(e)}statusForPriority(e){let t=this.core?.priority_status;if(t!=null){for(let i of t)if(i.priority>=e)return CV(i);return{priority:e,lastSyncedAt:void 0,hasSynced:!1}}}isEqual(e){let t=(s,l)=>l instanceof Error?this.serializeError(l):l,i={core:this.core,jsState:this.jsState},r=e,a={core:r.core,jsState:r.jsState};return JSON.stringify(i,t)==JSON.stringify(a,t)}getMessage(){return`SyncStatus`}toJSON(){return{core:this.core,dataFlow:{uploading:this.uploading,uploadError:this.serializeError(this.uploadError),downloadError:this.serializeError(this.downloadError)}}}serializeError(e){if(typeof e>"u")return;let t={name:e.name,message:e.message,stack:e.stack};return typeof e.cause<"u"&&(t.cause=e.cause instanceof Error?this.serializeError(e.cause):e.cause),t}};function cne(n){return n==null?void 0:new Date(n/1e3)}function CV(n){return{priority:n.priority,hasSynced:n.has_synced??void 0,lastSyncedAt:cne(n.last_synced_at)}}var oR=class{status;core;subscription;constructor(e,t){this.status=e,this.core=t,this.subscription={name:t.name,parameters:t.parameters,active:t.active,isDefault:t.is_default,hasExplicitSubscription:t.has_explicit_subscription,expiresAt:t.expires_at!=null?new Date(t.expires_at*1e3):null,hasSynced:t.last_synced_at!=null,lastSyncedAt:t.last_synced_at!=null?new Date(t.last_synced_at*1e3):null}}get progress(){if(this.status.core?.downloading==null)return null;let{total:e,downloaded:t}=this.core.progress,i=e==0?0:t/e;return{totalOperations:e,downloadedOperations:t,downloadedFraction:i}}get priority(){return this.core.priority}};function RV(n,e){return{appMetadata:n.appMetadata??{},connectionMethod:n.connectionMethod??e,fetchStrategy:n.fetchStrategy??Xd.Buffered,params:n.params??{},includeDefaultStreams:n.includeDefaultStreams??!0,retryDelayMs:n.retryDelayMs??5e3,crudUploadThrottleMs:n.crudUploadThrottleMs??1e3,checkpointMode:n.checkpointMode??"legacy"}}var bT=class extends Gr{options;connectingPromise;syncStreamInitPromise;disconnectingPromise;pendingConnectionOptions;currentOptions;syncStreamImplementation;syncDisposer;locallyActiveSubscriptions=new Map;constructor(e){super(),this.options=e,this.connectingPromise=null,this.syncStreamInitPromise=null,this.disconnectingPromise=null,this.pendingConnectionOptions=null,this.syncStreamImplementation=null,this.currentOptions=null,this.syncDisposer=null}get connector(){return this.pendingConnectionOptions?.connector??null}get connectionOptions(){return this.currentOptions??this.pendingConnectionOptions?.options??null}get logger(){return this.options.logger}async close(){await this.syncStreamImplementation?.dispose(),await this.syncDisposer?.()}async connect(e,t,i){let r=!!this.pendingConnectionOptions,a=RV(t,this.options.defaultConnectionMethod);this.pendingConnectionOptions={connector:e,options:a,schema:i},e.postCheckpointRequest&&a.checkpointMode=="legacy"&&this.logger.log({level:Jt.warn,message:"The backend connector implements postCheckpointRequest, but connect() was called without checkpoint requests enabled."}),(!r||this.syncStreamImplementation)&&await this.disconnectInternal();let s=async()=>{if(this.pendingConnectionOptions)return this.connectingPromise=this.connectInternal().catch(()=>{}).finally(s),this.connectingPromise;this.connectingPromise=null};return this.connectingPromise??=this.connectInternal().catch(()=>{}).finally(s),this.connectingPromise}async connectInternal(){let e=null;await this.disconnectInternal(),this.syncStreamInitPromise=new Promise(async(t,i)=>{try{if(!this.pendingConnectionOptions){this.logger.log({level:Jt.debug,message:"No pending connection options found, not creating sync stream implementation"}),t();return}if(this.disconnectingPromise){t();return}let{connector:r,options:a,schema:s}=this.pendingConnectionOptions;e=a,this.currentOptions=a,this.pendingConnectionOptions=null;let l=this.subscriptionIdentity,{sync:c,onDispose:f}=await this.options.createSyncImplementation(r,{subscriptions:this.activeStreams,serializedSchema:s});this.iterateListeners(p=>p.syncStreamCreated?.(c)),this.syncStreamImplementation=c,this.syncDisposer=f,await this.syncStreamImplementation.waitForReady(),this.subscriptionIdentity!==l&&this.syncStreamImplementation.updateSubscriptions(this.activeStreams),t()}catch(r){i(r)}}),await this.syncStreamInitPromise,this.syncStreamInitPromise=null,e&&(await this.disconnectingPromise,this.logger.log({level:Jt.debug,message:"Attempting to connect to PowerSync instance"}),await this.syncStreamImplementation?.connect(e))}async disconnect(){this.pendingConnectionOptions=null,this.currentOptions=null,await this.disconnectInternal()}async disconnectInternal(){if(this.disconnectingPromise)return this.disconnectingPromise;this.disconnectingPromise=this.performDisconnect(),await this.disconnectingPromise,this.disconnectingPromise=null}async performDisconnect(){await this.syncStreamInitPromise;let e=this.syncStreamImplementation;this.syncStreamImplementation=null;let t=this.syncDisposer;this.syncDisposer=null,await e?.disconnect(),await e?.dispose(),await t?.()}stream(e,t,i){let r={name:t,parameters:i},a=s=>e.firstStatusMatching(l=>l.forStream(r)?.subscription.hasSynced,s);return{...r,subscribe:async s=>{await e.rustSubscriptionsCommand({subscribe:{stream:{name:t,params:i},ttl:s?.ttl,priority:s?.priority}}),this.syncStreamImplementation||await e.resolveOfflineSyncStatus();let l=`${t}|${JSON.stringify(i)}`,c=this.locallyActiveSubscriptions.get(l);if(c==null){let f=()=>{this.locallyActiveSubscriptions.delete(l),this.subscriptionsMayHaveChanged()};c=new TF(t,i,this.logger,a,f),this.locallyActiveSubscriptions.set(l,c),this.subscriptionsMayHaveChanged()}return new MF(c)},unsubscribeAll:async()=>{await e.rustSubscriptionsCommand({unsubscribe:{name:t,params:i}}),this.subscriptionsMayHaveChanged()}}}get activeStreams(){return[...this.locallyActiveSubscriptions.values()].map(e=>({name:e.name,params:e.parameters}))}get subscriptionIdentity(){return[...this.locallyActiveSubscriptions.keys()].join(` `)}subscriptionsMayHaveChanged(){this.syncStreamImplementation?.updateSubscriptions(this.activeStreams)}},TF=class{name;parameters;logger;waitForFirstSync;clearSubscription;refcount=0;constructor(e,t,i,r,a){this.name=e,this.parameters=t,this.logger=i,this.waitForFirstSync=r,this.clearSubscription=a}decrementRefCount(){this.refcount--,this.refcount==0&&this.clearSubscription()}},MF=class{subscription;active=!0;constructor(e){this.subscription=e,e.refcount++,IV?.register(this,e,this)}get name(){return this.subscription.name}get parameters(){return this.subscription.parameters}waitForFirstSync(e){return this.subscription.waitForFirstSync(e)}unsubscribe(){this.active&&(this.active=!1,IV?.unregister(this),this.subscription.decrementRefCount())}},IV="FinalizationRegistry"in globalThis?new FinalizationRegistry(n=>{n.logger.log({level:Jt.warn,message:`A subscription to ${n.name} with params ${JSON.stringify(n.parameters)} leaked! Please ensure calling unsubscribe() when you don't need a subscription anymore. For global subscriptions, consider storing them in global fields to avoid this warning.`})}):null;var lR=class{table;head;_length;constructor(e){this.table=[...e],this.head=0,this._length=this.table.length}get isEmpty(){return this.length==0}get length(){return this._length}removeFirst(){if(this.isEmpty)throw new Error("Queue is empty");let e=this.table[this.head];return this._length--,this.table[this.head]=void 0,this.head=(this.head+1)%this.table.length,e}addLast(e){if(this.length==this.table.length)throw new Error("Queue is full");this.table[(this.head+this._length)%this.table.length]=e,this._length++}};var ST=class{available;size;firstWaiter;lastWaiter;constructor(e){this.available=new lR(e),this.size=this.available.length}addWaiter(e,t){let i={isActive:!0,acquiredItems:[],remainingItems:e,onAcquire:t,prev:this.lastWaiter};return this.lastWaiter?(this.lastWaiter.next=i,this.lastWaiter=i):this.lastWaiter=this.firstWaiter=i,i}deactivateWaiter(e){let{prev:t,next:i}=e;e.isActive=!1,t&&(t.next=i),i&&(i.prev=t),e==this.firstWaiter&&(this.firstWaiter=i),e==this.lastWaiter&&(this.lastWaiter=t)}requestPermits(e,t){if(e<=0||e>this.size)throw new Error(`Invalid amount of items requested (${e}), must be between 1 and ${this.size}`);return new Promise((i,r)=>{function a(){r(t?.reason??new Error("Semaphore acquire aborted"))}if(t?.aborted)return a();let s,l=()=>{let p=s.acquiredItems;s.acquiredItems=[];for(let h of p){let _=this.firstWaiter;_?(_.acquiredItems.push(h),_.remainingItems--,_.remainingItems==0&&_.onAcquire()):this.available.addLast(h)}},c=()=>{t?.removeEventListener("abort",c),s.isActive&&(this.deactivateWaiter(s),a())},f=()=>{this.deactivateWaiter(s),t?.removeEventListener("abort",c);let p=s.acquiredItems;i({items:p,release:l})};for(s=this.addWaiter(e,f);!this.available.isEmpty&&s.remainingItems>0;)s.acquiredItems.push(this.available.removeFirst()),s.remainingItems--;if(s.remainingItems==0)return f();t?.addEventListener("abort",c)})}async requestOne(e){let{items:t,release:i}=await this.requestPermits(1,e);return{release:i,item:t[0]}}requestAll(e){return this.requestPermits(this.size,e)}},Dr=class{inner=new ST([null]);async acquire(e){let{release:t}=await this.inner.requestOne(e);return t}async runExclusive(e,t){let i=await this.acquire(t);try{return await e()}finally{i()}}};var AF={throttleMs:30,reportFetching:!0};var fne={useStorageByDefault:!1},LV=12e4,uR=class{options;schema;defaultConfig;cleanupTimeout;isDisposed;constructor(e){this.options=e,this.schema=e.schema,e.db.registerListener({schemaChanged:i=>{this.schema=i}}),this.isDisposed=!1,this.defaultConfig=fne;let t=async()=>{if(this.cleanupTimeout=null,!this.isDisposed)try{await this.cleanupResources()}catch(i){this.db.logger.log({level:Jt.error,error:i,message:"Caught error while attempting to cleanup triggers"})}finally{if(this.isDisposed)return;this.cleanupTimeout=setTimeout(t,LV)}};this.cleanupTimeout=setTimeout(t,LV)}get db(){return this.options.db}async getUUID(e){let{id:t}=await(e??this.db).get(` SELECT uuid () as id `);return t.replace(/-/g,"_")}async removeTriggers(e,t){for(let i of t)await e.execute(`DROP TRIGGER IF EXISTS ${i}; `)}dispose(){this.isDisposed=!0,this.cleanupTimeout&&clearTimeout(this.cleanupTimeout)}updateDefaults(e){this.defaultConfig={...this.defaultConfig,...e}}generateTriggerName(e,t,i){return`__ps_temp_trigger_${e.toLowerCase()}__${t}__${i}`}async cleanupResources(){await this.db.database.writeLock(async e=>{let t=await e.getAll(` SELECT name FROM sqlite_master WHERE type = 'trigger' AND name LIKE '__ps_temp_trigger_%' `),i=/^__ps_temp_trigger_(?:insert|update|delete)__(.+)__([a-f0-9_]{36})$/i,r=new Map;for(let a of t){let s=a.name.match(i);if(s){let[,l,c]=s,f=r.get(c);f?f.triggerNames.push(a.name):r.set(c,{table:l,id:c,triggerNames:[a.name]})}}for(let a of r.values())if(!await this.options.claimManager.checkClaim(a.id)){this.db.logger.log({level:Jt.debug,message:`Clearing resources for trigger ${a.id} with table ${a.table}`});for(let l of a.triggerNames)await e.execute(`DROP TRIGGER IF EXISTS ${l}`);await e.execute(`DROP TABLE IF EXISTS ${a.table}`)}})}async createDiffTrigger(e){await this.db.waitForReady();let{source:t,destination:i,columns:r,when:a,hooks:s,setupContext:l,useStorage:c=this.defaultConfig.useStorageByDefault}=e,f=Object.keys(a);if(f.length==0)throw new Error("At least one WHEN operation must be specified for the trigger.");let p=c?"":"TEMP",h=Object.fromEntries(Object.entries(a).map(([G,Q])=>[G,`WHEN ${Q}`])),_=this.schema.tables.find(G=>G.viewName==t);if(!_)throw new Error(`Source table or view "${t}" not found in the schema.`);let g=r??_.columns.map(G=>G.name),E=_.internalName,x=[],S=await this.getUUID(l),v=c?await this.options.claimManager.obtainClaim(S):null,M=(G="NEW")=>r==null?`${G}.data`:r.length==0?"'{}'":`json_object(${g.map(Q=>`'${Q}', json_extract(${G}.data, '$.${Q}')`).join(", ")})`,O=this.db.registerListener({schemaChanged:()=>{this.db.logger.log({level:Jt.warn,message:"The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results."})}}),k=async G=>{let{context:Q}=G??{};O();let H=async Z=>{await this.removeTriggers(Z,x),await Z.execute(`DROP TABLE IF EXISTS ${i};`),await v?.()};Q?await H(Q):await this.db.writeLock(H)},q=async G=>{if(await s?.beforeCreate?.(G),await G.execute(` CREATE ${p} TABLE ${i} ( operation_id INTEGER PRIMARY KEY AUTOINCREMENT, id TEXT, operation TEXT, timestamp TEXT, value TEXT, previous_value TEXT ) `),f.includes(Fl.INSERT)){let Q=this.generateTriggerName(Fl.INSERT,i,S);x.push(Q),await G.execute(` CREATE ${p} TRIGGER ${Q} AFTER INSERT ON ${E} ${h[Fl.INSERT]} BEGIN INSERT INTO ${i} (id, operation, timestamp, value) VALUES ( NEW.id, 'INSERT', strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'), ${M("NEW")} ); END `)}if(f.includes(Fl.UPDATE)){let Q=this.generateTriggerName(Fl.UPDATE,i,S);x.push(Q),await G.execute(` CREATE ${p} TRIGGER ${Q} AFTER UPDATE ON ${E} ${h[Fl.UPDATE]} BEGIN INSERT INTO ${i} (id, operation, timestamp, value, previous_value) VALUES ( NEW.id, 'UPDATE', strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'), ${M("NEW")}, ${M("OLD")} ); END; `)}if(f.includes(Fl.DELETE)){let Q=this.generateTriggerName(Fl.DELETE,i,S);x.push(Q),await G.execute(` CREATE ${p} TRIGGER ${Q} AFTER DELETE ON ${E} ${h[Fl.DELETE]} BEGIN INSERT INTO ${i} (id, operation, timestamp, value) VALUES ( OLD.id, 'DELETE', strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'), ${M("OLD")} ); END; `)}};try{return l?await q(l):await this.db.writeLock(q),k}catch(G){try{await k(l?{context:l}:void 0)}catch(Q){throw new AggregateError([G,Q],"Error during operation and cleanup")}throw G}}async trackTableDiff(e){let{source:t,when:i,columns:r,hooks:a,throttleMs:s=30}=e;await this.db.waitForReady();let l=this.schema.tables.find(g=>g.viewName==t);if(!l)throw new Error(`Source table or view "${t}" not found in the schema.`);let c=r??l.columns.map(g=>g.name),f=await this.getUUID(),p=`__ps_temp_track_${t}_${f}`,h=new AbortController,_=()=>h.abort();this.db.onChange({onChange:async()=>{h.signal.aborted||await this.db.writeTransaction(async g=>{let E=await e.onChange({context:g,destinationTable:p,withDiff:async(x,S,v)=>{let O=` WITH DIFF AS ( SELECT ${v?.castOperationIdAsText?"id, operation, CAST(operation_id AS TEXT) as operation_id, timestamp, value, previous_value":"*"} FROM ${p} ORDER BY operation_id ASC ) ${x} `;return g.getAll(O,S)},withExtractedDiff:async(x,S)=>{let v=` WITH DIFF AS ( SELECT id, ${c.length>0?`${c.map(M=>`json_extract(value, '$.${M}') as ${M}`).join(", ")},`:""} operation_id as __operation_id, operation as __operation, timestamp as __timestamp, previous_value as __previous_value FROM ${p} ORDER BY __operation_id ASC ) ${x} `;return g.getAll(v,S)}});return await g.execute(`DELETE FROM ${p};`),E})}},{tables:[p],signal:h.signal,throttleMs:s});try{let g=await this.createDiffTrigger({source:t,destination:p,columns:c,when:i,hooks:a});return async()=>{_(),await g()}}catch(g){try{_()}catch(E){throw new AggregateError([g,E],"Error during operation and cleanup")}throw g}}};var Zh=class n{clientId;id;op;opData;previousValues;table;transactionId;metadata;static fromRow(e){let t=JSON.parse(e.data);return new n(parseInt(e.id),t.op,t.type,t.id,e.tx_id,t.data,t.old,t.metadata)}constructor(e,t,i,r,a,s,l,c){this.clientId=e,this.id=r,this.op=t,this.opData=s,this.table=i,this.transactionId=a,this.previousValues=l,this.metadata=c}toJSON(){return{op_id:this.clientId,op:this.op,type:this.table,id:this.id,tx_id:this.transactionId,data:this.opData,old:this.previousValues,metadata:this.metadata}}equals(e){return JSON.stringify(this.toComparisonArray())==JSON.stringify(e.toComparisonArray())}toComparisonArray(){return[this.transactionId,this.clientId,this.op,this.table,this.id,this.opData,this.previousValues,this.metadata]}};var fR=class extends Gr{get listenerCounts(){let e={},t=0;for(let i of this.listeners)for(let r in i)i[r]&&(e[r]=(e[r]??0)+1,t++);return{...e,total:t}}get listenerMeta(){return{counts:this.listenerCounts,registerListener:e=>this.metaListener.registerListener(e)}}metaListener;constructor(){super(),this.metaListener=new Gr}registerListener(e){let t=super.registerListener(e),i=this.listenerCounts;return this.metaListener.iterateListeners(r=>{r.listenersChanged?.(i)}),()=>{t();let r=this.listenerCounts;this.metaListener.iterateListeners(a=>{a.listenersChanged?.(r)})}}};var pb=class extends fR{options;state;abortController;initialized;_closed;disposeListeners;get closed(){return this._closed}constructor(e){super(),this.options=e,this.abortController=new AbortController,this._closed=!1,this.state=this.constructInitialState(),this.disposeListeners=null,this.initialized=this.init(this.abortController.signal)}constructInitialState(){return{isLoading:!0,isFetching:this.reportFetching,error:null,lastUpdated:null,data:this.options.placeholderData}}get reportFetching(){return this.options.watchOptions.reportFetching??!0}async updateSettingsInternal(e,t){this._closed||t.aborted||(this.options.watchOptions=e,this.iterateListeners(i=>i[rE.SETTINGS_WILL_UPDATE]?.()),!this.state.isFetching&&this.reportFetching&&await this.updateState({isFetching:!0}),await this.runWithReporting(()=>this.linkQuery({abortSignal:t,settings:e})))}async updateSettings(e){this.abortController.abort();let t=new AbortController;return this.abortController=t,await this.initialized,this.updateSettingsInternal(e,t.signal)}async updateState(e){this._closed||(typeof e.error<"u"&&(await this.iterateAsyncListenersWithError(async t=>t.onError?.(e.error)),e.isFetching=!1,e.isLoading=!1),Object.assign(this.state,{lastUpdated:new Date},e),typeof e.data<"u"&&await this.iterateAsyncListenersWithError(async t=>t.onData?.(this.state.data)),await this.iterateAsyncListenersWithError(async t=>t.onStateChange?.(this.state)))}async init(e){let{db:t}=this.options,i=t.registerListener({closing:async()=>{await this.close()}});await t.waitForReady();let r=t.registerListener({schemaChanged:async()=>{await this.runWithReporting(async()=>{await this.updateSettings(this.options.watchOptions)})}}),a=()=>{i(),r()};if(this._closed){a();return}this.disposeListeners=a,await this.runWithReporting(async()=>{await this.updateSettingsInternal(this.options.watchOptions,e)})}async close(){this._closed=!0,this.abortController.abort(),this.disposeListeners?.(),this.disposeListeners=null,this.iterateListeners(e=>e.closed?.()),this.listeners.clear()}async runWithReporting(e){try{await e()}catch(t){await this.updateState({error:t})}}async iterateAsyncListenersWithError(e){try{await this.iterateAsyncListeners(async t=>e(t))}catch(t){try{await this.iterateAsyncListeners(async i=>i.onError?.(t))}catch(i){this.options.db.logger.log({level:Jt.error,message:"Watched query error handler threw an Error",error:i})}}}};var mb=class extends pb{options;constructor(e){super(e),this.options=e}checkEquality(e,t){return this.options.comparator?.checkEquality?.(e,t)??!1}async linkQuery(e){let{db:t,watchOptions:i}=this.options,{abortSignal:r}=e,a=i.query.compile(),s=await t.resolveTables(a.sql,a.parameters,{tables:e.settings.triggerOnTables});t.onChangeWithCallback({onChange:async()=>{if(!(this.closed||r.aborted))try{this.reportFetching&&!this.state.isFetching&&await this.updateState({isFetching:!0});let l={},c=await i.query.execute({sql:a.sql,parameters:[...a.parameters],db:this.options.db});if(r.aborted)return;this.reportFetching&&(l.isFetching=!1),this.state.isLoading&&(l.isLoading=!1),this.checkEquality(c,this.state.data)||Object.assign(l,{data:c}),this.state.error&&(l.error=null),Object.keys(l).length>0&&await this.updateState(l)}catch(l){await this.updateState({error:l})}}},{signal:r,tables:s,throttleMs:i.throttleMs,triggerImmediate:!0})}};var ET=Symbol.asyncIterator??Symbol.for("Symbol.asyncIterator");var ol={done:!0,value:void 0};function ad(n){return{done:!1,value:n}}function NV(n){let e=!1,t,i=null,r=!1,a=[],s=()=>{let c=t;return t=void 0,c},l=()=>{let c=p=>{r=!1;let h=s();h?p(h):i=p};r=!0,n.next().then(p=>{e=p.done==!0,c(h=>h.resolve(p))},p=>{c(h=>h.reject(p))})};return{next:()=>new Promise((c,f)=>{if(e)return c(ol);if(i){i({resolve:c,reject:f}),i=null;return}if(a.length){let p=a.shift();p.status==="fulfilled"?c(ad(p.value)):f(p.reason);return}t={resolve:c,reject:f},r||l()}),inject:c=>{let f=s();f!=null?f.resolve(ad(c)):a.push({status:"fulfilled",value:c})},injectError(c){let f=s();f!=null?f.reject(c):a.push({status:"rejected",reason:c})}}}function kV(n,e){let t="",i=[],r=!1;return{next:async()=>{for(;;){if(r)return ol;{let f=i.shift();if(f)return{done:!1,value:f}}let{done:a,value:s}=await n.next();if(a){let f=t.trim();return f.length!=0?(r=!0,{done:!1,value:f}):ol}let l=e.decode(s,{stream:!0});t+=l;let c=t.split(` `);for(let f=0;f0&&i.push(p)}t=c[c.length-1]}}}}function OV(n){let e=[],t=!1,i=new DataView(new ArrayBuffer(4)),r=null,a=4;return{async next(){for(;;){if(e.length)return ad(e.shift());if(t)return ol;let s=await n.next();if(s.done){if(t=!0,r||a!=4)throw new Error("illegal end of stream in BSON object");return ol}let l=s.value;for(let c=0;c{n(),t=null};return function(){t==null&&(t=setTimeout(i,e))}}function wT(){let n=new $h;return{notify(){n.countOutstandingEvents>0||n.notify()},waitForNotification(e){return n.waitForEvent(e)}}}var $h=class n{options;waitingConsumer;outstandingEvents;constructor(e={}){this.options=e,this.outstandingEvents=[]}get countOutstandingEvents(){return this.outstandingEvents.length}notifyInner(e){let t=this.waitingConsumer;this.waitingConsumer=void 0;let i=r=>{e(r),this.options.eventDelivered?.()};t?i(t):this.outstandingEvents.push(i)}notify(e){this.notifyInner(t=>t.resolve(e))}notifyError(e){this.notifyInner(t=>t.reject(e))}waitForEvent(e){return new Promise((t,i)=>{if(this.waitingConsumer!=null)throw new Error("Illegal call to waitForEvent, already has a waiter.");let r=()=>{e?.removeEventListener("abort",a)},a=()=>{r(),this.waitingConsumer=void 0,t(void 0)},s={resolve:l=>{r(),t(l)},reject:l=>{r(),i(l)}};if(e.aborted)t(void 0);else if(this.countOutstandingEvents>0){let[l]=this.outstandingEvents.splice(0,1);l(s)}else this.waitingConsumer=s,e.addEventListener("abort",a)})}static queueBasedAsyncIterable(e,t){return{[ET]:()=>{let i=new n,r=new AbortController;function a(){r.abort(),t?.removeEventListener("abort",a)}return t&&(t.aborted?r.abort():t.addEventListener("abort",a)),e(i,r.signal),{async next(){let s=await i.waitForEvent(r.signal);return s==null?ol:ad(s)},async return(){return a(),ol}}}}}};var dR=class{task;runningTask;pendingTaskParam;isThrottling;closed;constructor(e,t){this.task=e;let{throttleEnabled:i=!0}=t??{};this.isThrottling=i,this.closed=!1}schedule(e){if(!this.closed){if(!this.isThrottling){this.task(e);return}if(this.runningTask){this.pendingTaskParam=e;return}this.execute(e)}}dispose(){this.closed=!0,this.runningTask&&(this.runningTask=void 0)}async execute(e){this.runningTask=this.task(e);try{await this.runningTask}finally{if(this.runningTask=void 0,this.pendingTaskParam){let t=this.pendingTaskParam;this.pendingTaskParam=void 0,this.execute(t)}}}};var dne={keyBy:n=>n&&typeof n=="object"&&typeof n.id=="string"?n.id:JSON.stringify(n),compareBy:n=>JSON.stringify(n)},hR=class extends pb{options;comparator;constructor(e){super(e),this.options=e,this.comparator=e.rowComparator??dne}differentiate(e,t){let{keyBy:i,compareBy:r}=this.comparator,a=!1,s=new Map,l=new Set(t.keys()),c={all:[],added:[],removed:[],updated:[],unchanged:[]};for(let f of e){let p=i(f),h=r(f);s.set(p,{hash:h,item:f});let _=t.get(p);_?h==_.hash?(c.unchanged.push(_.item),c.all.push(_.item),s.set(p,_)):(a=!0,c.updated.push({current:f,previous:_.item}),c.all.push(f)):(a=!0,c.added.push(f),c.all.push(f)),l.delete(p)}return c.removed=Array.from(l).map(f=>t.get(f).item),a=a||c.removed.length>0,{diff:c,hasChanged:a,map:s}}async linkQuery(e){let{db:t,watchOptions:i}=this.options,{abortSignal:r}=e,a=i.query.compile(),s=await t.resolveTables(a.sql,a.parameters,{tables:e.settings.triggerOnTables}),l=new Map;this.state.data.forEach(c=>{l.set(this.comparator.keyBy(c),{hash:this.comparator.compareBy(c),item:c})}),t.onChangeWithCallback({onChange:async()=>{if(!(this.closed||r.aborted))try{this.reportFetching&&!this.state.isFetching&&await this.updateState({isFetching:!0});let c={},f=await i.query.execute({sql:a.sql,parameters:[...a.parameters],db:this.options.db});if(r.aborted)return;this.reportFetching&&(c.isFetching=!1),this.state.isLoading&&(c.isLoading=!1);let{diff:p,hasChanged:h,map:_}=this.differentiate(f,l);l=_,h&&(await this.iterateAsyncListenersWithError(g=>g.onDiff?.(p)),Object.assign(c,{data:p.all})),this.state.error&&(c.error=null),Object.keys(c).length>0&&await this.updateState(c)}catch(c){await this.updateState({error:c})}}},{signal:r,tables:s,throttleMs:i.throttleMs,triggerImmediate:!0})}};var pR=class{options;constructor(e){this.options=e}resolveOptions(e){return{reportFetching:e?.reportFetching??AF.reportFetching,throttleMs:e?.throttleMs??AF.throttleMs,triggerOnTables:e?.triggerOnTables}}watch(e){return new mb({db:this.options.db,comparator:e?.comparator??gP,placeholderData:e?.placeholderData??[],watchOptions:{...this.resolveOptions(e),query:this.options.query}})}differentialWatch(e){return new hR({db:this.options.db,rowComparator:e?.rowComparator,placeholderData:e?.placeholderData??[],watchOptions:{...this.resolveOptions(e),query:this.options.query}})}};var mR=new Map,CF={async obtainClaim(n){if(mR.has(n))throw new Error(`A claim is already present for ${n}`);let e=async()=>{mR.delete(n)};return mR.set(n,e),e},async checkClaim(n){return mR.has(n)}};var xT=class n extends Gr{db;logger;updateListener;_clientId;constructor(e,t){super(),this.db=e,this.logger=t,this.updateListener=e.registerListener({tablesUpdated:({tables:i})=>{i.includes(Kh.CRUD)&&this.iterateListeners(r=>r.crudUpdate?.())}})}async dispose(){this.updateListener?.()}async _getClientId(){return(await this.db.get("SELECT powersync_client_id() as client_id")).client_id}getClientId(){return this._clientId==null&&(this._clientId=this._getClientId()),this._clientId}async updateLocalTarget(e){let t=await this.db.readTransaction(async r=>await yT(r)!=xF?void 0:(await r.getOptional("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'"))?.seq);if(t==null)return!1;let i=await e();return this.writeTransaction(async r=>{if((await r.execute("SELECT 1 FROM ps_crud LIMIT 1")).rows?.length)return this.logger.log({level:Jt.debug,message:`New data uploaded since write checkpoint ${i} - need new write checkpoint`}),!1;let{seq:s}=await r.get("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'");return s!=t?(this.logger.log({level:Jt.debug,message:`New data uploaded since write checpoint ${i} - need new write checkpoint (sequence updated)`}),!1):(this.logger.log({level:Jt.debug,message:`Updating target write checkpoint to ${i}`}),await yT(r,i),!0)})}readCheckpointRequestId(e,t=null){return this.db.writeTransaction(async i=>await rR(i,`${e}_checkpoint_request_id`,t))}async nextCrudItem(){let e=await this.db.getOptional("SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1");if(e)return Zh.fromRow(e)}async hasCrud(){return!!await this.db.getOptional("SELECT 1 FROM ps_crud LIMIT 1")}async getCrudBatch(e=100){if(!await this.hasCrud())return null;let t=await this.db.getAll("SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?",[e]),i=[];for(let a of t)i.push(Zh.fromRow(a));if(i.length===0)return null;let r=i[i.length-1];return{crud:i,haveMore:!0,complete:async a=>this.handleCrudCheckpoint(r.clientId,a)}}handleCrudCheckpoint(e,t){return this.writeTransaction(async i=>{await i.execute("DELETE FROM ps_crud WHERE id <= ?",[e]),t?(await i.execute("SELECT 1 FROM ps_crud LIMIT 1")).rows?.length&&await yT(i,t):await yT(i,xF)})}async writeTransaction(e,t){return this.db.writeTransaction(e,t)}async control(e,t){return await this.writeTransaction(async i=>await rR(i,e,t))}async hasMigratedSubkeys(){let{r:e}=await this.db.get("SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r",[n._subkeyMigrationKey]);return e!=0}async migrateToFixedSubkeys(){await this.writeTransaction(async e=>{await e.execute("UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);"),await e.execute("INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);",[n._subkeyMigrationKey,"1"])})}static _subkeyMigrationKey="powersync_js_migrated_subkeys"};var FV={state:"pending"},_R=class{currentState=FV;stateChanged=new Gr;waitingForCheckpointsReady=wT();updateState(e){this.currentState=e,this.stateChanged.iterateListeners(t=>t.stateChanged?.())}downloadIterationEnded(){this.updateState(FV),this.waitingForCheckpointsReady=wT()}disconnected(){this.updateState({state:"disconnected"})}waitForCheckpointWaiter(e){return this.waitingForCheckpointsReady.waitForNotification(e)}markCheckpointsReady(e){return e.then(t=>this.updateState({state:"ready"}),t=>{throw this.updateState({state:"error",error:t}),t})}async waitForCheckpointRequestsReady(e,t=!0){return new Promise((i,r)=>{if(e.aborted){i(!1);return}let a=()=>{let f=this.currentState;switch(f.state){case"disconnected":return r(_b()),!0;case"ready":return i(!0),!0;case"error":return r(f.error),!0;case"pending":return t&&this.waitingForCheckpointsReady.notify(),!1}};if(a())return;let s,l;function c(){s(),e.removeEventListener("abort",l)}l=()=>{i(!1),c()},s=this.stateChanged.registerListener({stateChanged(){a()&&c()}}),e.addEventListener("abort",l)})}};function _b(){return new Error("Cannot request checkpoints, sync client is disconnected.")}function gR(){return new Error("Connected with legacy checkpoint mode, cannot request checkpoints.")}function TT(n,e){let t=n?.internal_last_applied_checkpoint_request_id;return t!=null&&BigInt(t)>=e}var vR=class{requestId;database;constructor(e,t){this.requestId=e,this.database=t}get hasSynced(){let e=this.database.currentStatus.core;return TT(e,this.requestId)}async waitForSync(e){if(this.hasSynced)return;let t=e?.signal,i=this.database.connectionManager;if(i.syncStreamImplementation==null)throw _b();if(i.connectionOptions?.checkpointMode=="legacy")throw gR();if(await this.database.waitForStatus(r=>{if(TT(r.core,this.requestId))return!0;let a=r.downloadError??r.uploadError;if(a)throw new Error("Sync error while waiting for checkpoint request",{cause:a});if(!r.connected&&!r.connecting)throw _b();return!1},t),t?.aborted)throw t.reason}};var hne=/(^ps_data__|^ps_data_local__)/,pne={clearLocal:!0,soft:!1},mne={disconnect:!0},_ne=100,PV=12e4,yR=class extends Gr{options;closed;ready;currentStatus;sdkVersion;bucketStorageAdapter;_isReadyPromise;connectionManager;subscriptions;get syncStreamImplementation(){return this.connectionManager.syncStreamImplementation}get connector(){return this.connectionManager.connector}get connectionOptions(){return this.connectionManager.connectionOptions}_schema;_database;runExclusiveMutex;triggers;triggersImpl;logger;constructor(e){super(),this.options=e,this.logger=e.logger??_I();let{schema:t}=e;if(typeof t?.toJSON!="function")throw new Error("The `schema` option should be provided and should be an instance of `Schema`.");this._database=this.openDBAdapter(),this.bucketStorageAdapter=this.generateBucketStorageAdapter(),this.closed=!1,this.currentStatus=new Kc(null,{}),this.options={...e},this._schema=t,this.ready=!1,this.sdkVersion="",this.runExclusiveMutex=new Dr,this.subscriptions={firstStatusMatching:(i,r)=>this.waitForStatus(i,r),resolveOfflineSyncStatus:()=>this.resolveOfflineSyncStatus(),rustSubscriptionsCommand:async i=>{await this.writeTransaction(r=>r.execute("select powersync_control(?,?)",["subscriptions",JSON.stringify(i)]))}},this.connectionManager=new bT({createSyncImplementation:async(i,r)=>(await this.waitForReady(),this.runExclusive(async()=>{let a=this.generateSyncStreamImplementation(i,r),s=a.registerListener({statusChanged:l=>{let c=l.core==null&&this.currentStatus.core!=null?new Kc(this.currentStatus.core,l.jsState):l;this.currentStatus=c,this.iterateListeners(f=>f.statusChanged?.(c))}});return await a.waitForReady(),{sync:a,onDispose:s}})),logger:this.logger,defaultConnectionMethod:this.defaultConnectionMethod}),this._isReadyPromise=this.initialize(),this.triggers=this.triggersImpl=new uR({db:this,schema:this.schema,...this.generateTriggerManagerConfig()})}get defaultConnectionMethod(){return Qd.HTTP}get schema(){return this._schema}get database(){return this._database}get connected(){return this.currentStatus?.connected||!1}get connecting(){return this.currentStatus?.connecting||!1}generateTriggerManagerConfig(){return{claimManager:CF}}commonSyncOptions(e,t){return{...t,adapter:this.bucketStorageAdapter,uploadCrud:async()=>{await this.waitForReady(),await e.uploadData(this)},postCheckpointRequest:(i,r)=>e.postCheckpointRequest?this.waitForReady().then(a=>e.postCheckpointRequest(i,r)):null,identifier:this.database.name,logger:this.logger}}generateBucketStorageAdapter(){return new xT(this.database,this.logger)}async waitForReady(){this.ready||await this._isReadyPromise}async waitForFirstSync(e){let t=e instanceof AbortSignal?e:e?.signal,i=e&&"priority"in e?e.priority:void 0,r=i===void 0?a=>a.hasSynced:a=>a.statusForPriority(i)?.hasSynced==!0;return this.waitForStatus(r,t)}async waitForStatus(e,t){if(!e(this.currentStatus))return new Promise((i,r)=>{let a=this.registerListener({statusChanged:l=>{let c=!1;try{c=e(l)}catch(f){r(f),c=!0}c&&s()}});function s(){a(),i(),t?.removeEventListener("abort",s)}t?.aborted?s():t?.addEventListener("abort",s)})}async initialize(){await this._initialize(),await this.loadVersion(),await this.updateSchema(this.options.schema),await this.resolveOfflineSyncStatus(),await this.database.execute("PRAGMA RECURSIVE_TRIGGERS=TRUE"),await this.triggersImpl.cleanupResources(),this.ready=!0,this.iterateListeners(e=>e.initialized?.())}async loadVersion(){try{let{version:r}=await this.database.get("SELECT powersync_rs_version() as version");this.sdkVersion=r}catch(r){throw new Error(`The powersync extension is not loaded correctly. Details: ${r.message}`)}let e,t,i;try{[e,t,i]=this.sdkVersion.split(/[.\/]/).slice(0,3).map(r=>parseInt(r))}catch(r){throw new Error(`Unsupported powersync extension version. Need >=0.5.2 <0.6.0, got: ${this.sdkVersion}. Details: ${r.message}`)}if(e!=0||t!=5||i<2)throw new Error(`Unsupported powersync extension version. Need >=0.5.2 <0.6.0, got: ${this.sdkVersion}`)}async resolveOfflineSyncStatus(){let e=await this.database.get("SELECT powersync_offline_sync_status() as r"),t=JSON.parse(e.r),i=new Kc(t,this.currentStatus.jsState);i.isEqual(this.currentStatus)||(this.currentStatus=i,this.iterateListeners(r=>r.statusChanged?.(this.currentStatus)))}async updateSchema(e){if(this.syncStreamImplementation)throw new Error("Cannot update schema while connected");try{e.validate()}catch(t){this.logger.log({level:Jt.warn,message:"Schema validation failed. Unexpected behaviour could occur",error:t})}this._schema=e,await this.database.writeTransaction(t=>t.execute("SELECT powersync_replace_schema(?)",[JSON.stringify(this.schema.toJSON())])),await this.database.refreshSchema(),this.iterateListeners(async t=>t.schemaChanged?.(e))}async init(){return this.waitForReady()}runExclusive(e){return this.runExclusiveMutex.runExclusive(e)}async connect(e,t){return this.connectionManager.connect(e,t??{},this.schema.toJSON())}async disconnect(){return this.connectionManager.disconnect()}async disconnectAndClear(e=pne){await this.disconnect(),await this.waitForReady();let t=0;e.clearLocal&&(t|=1),e.soft&&(t|=2),await this.database.writeTransaction(async i=>{await i.execute("SELECT powersync_clear(?)",[t])}),await this.resolveOfflineSyncStatus()}syncStream(e,t){return this.connectionManager.stream(this.subscriptions,e,t??null)}async requestCheckpoint(){await this.waitForReady();let e=this.connectionManager.syncStreamImplementation;if(e==null)throw _b();if(this.connectionManager.connectionOptions?.checkpointMode=="legacy")throw gR();let t=await e.requestCheckpoint();return new vR(t,this)}async close(e=mne){if(await this.waitForReady(),this.closed)return;this.triggersImpl.dispose(),await this.iterateAsyncListeners(async i=>i.closing?.());let{disconnect:t}=e;t&&await this.disconnect(),await this.connectionManager.close(),await this.database.close(),this.closed=!0,await this.iterateAsyncListeners(async i=>i.closed?.()),super.dispose()}async getUploadQueueStats(e){return this.readTransaction(async t=>{if(e){let i=await t.get(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${Kh.CRUD}`);return new iE(i.count??0,i.size??0)}else{let{count:i}=await t.get(`SELECT count(*) as count FROM ${Kh.CRUD}`);return new iE(i??0)}})}async getCrudBatch(e=_ne){let i=(await this.getAll(`SELECT id, tx_id, data FROM ${Kh.CRUD} ORDER BY id ASC LIMIT ?`,[e+1])).map(s=>Zh.fromRow(s))??[],r=!1;if(i.length>e&&(i.pop(),r=!0),i.length==0)return null;let a=i[i.length-1];return new Fv(i,r,async s=>this.bucketStorageAdapter.handleCrudCheckpoint(a.clientId,s))}async getNextCrudTransaction(){return(await this.getCrudTransactions()[ET]().next()).value}getCrudTransactions(){return{[ET]:()=>{let e=-1,t=` WITH RECURSIVE crud_entries AS ( SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?) UNION ALL SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud INNER JOIN crud_entries ON crud_entries.id + 1 = rowid WHERE crud_entries.tx_id = ps_crud.tx_id ) SELECT * FROM crud_entries; `;return{next:async()=>{let i=await this.database.getAll(t,[e]);if(i.length==0)return{done:!0,value:null};let r=i.map(l=>Zh.fromRow(l)),a=r[r.length-1],s=a.transactionId;return e=a.clientId,{done:!1,value:new c3(r,async l=>this.bucketStorageAdapter.handleCrudCheckpoint(a.clientId,l),s)}}}}}}async getClientId(){return this.bucketStorageAdapter.getClientId()}async execute(e,t){return this.writeLock(i=>i.execute(e,t))}async executeRaw(e,t){return await this.waitForReady(),this.database.executeRaw(e,t)}async executeBatch(e,t){return await this.waitForReady(),this.database.executeBatch(e,t)}async getAll(e,t){return await this.waitForReady(),this.database.getAll(e,t)}async getOptional(e,t){return await this.waitForReady(),this.database.getOptional(e,t)}async get(e,t){return await this.waitForReady(),this.database.get(e,t)}async readLock(e){return await this.waitForReady(),this.database.readLock(e)}async writeLock(e){return await this.waitForReady(),this.database.writeLock(e)}async readTransaction(e,t=PV){return await this.waitForReady(),this.database.readTransaction(async i=>{let r=await e(i);return await i.rollback(),r},{timeoutMs:t})}async writeTransaction(e,t=PV){return await this.waitForReady(),this.database.writeTransaction(async i=>{let r=await e(i);return await i.commit(),r},{timeoutMs:t})}watch(e,t,i,r){if(i&&typeof i=="object"&&"onResult"in i){let s=i,l=r;return this.watchWithCallback(e,t,s,l)}let a=i;return this.watchWithAsyncGenerator(e,t,a)}query(e){let{sql:t,parameters:i=[],mapper:r}=e,a={compile:()=>({sql:t,parameters:i}),execute:async({sql:s,parameters:l})=>{let c=await this.getAll(s,l);return r?c.map(r):c}};return this.customQuery(a)}customQuery(e){return new pR({db:this,query:e})}watchWithCallback(e,t,i,r){let{onResult:a,onError:s=h=>this.logger.log({level:Jt.error,message:"Error in watch",error:h})}=i??{};if(!a)throw new Error("onResult is required");let{comparator:l,signal:c}=r??{};if(c?.aborted)return;let f=new mb({db:this,comparator:l,placeholderData:null,watchOptions:{query:{compile:()=>({sql:e,parameters:t??[]}),execute:()=>this.executeReadOnly(e,t)},reportFetching:!1,throttleMs:r?.throttleMs??30,triggerOnTables:r?.tables}}),p=f.registerListener({onData:h=>{h&&a(h)},onError:h=>{s(h)}});c?.addEventListener("abort",()=>{p(),f.close()})}watchWithAsyncGenerator(e,t,i){return $h.queueBasedAsyncIterable((r,a)=>{let s={onResult:l=>{r.notify(l)},onError:l=>{r.notifyError(l)}};this.watchWithCallback(e,t,s,{...i,signal:a})},i?.signal)}async resolveTables(e,t,i){let r=i?.tables?[...i.tables]:[];if(!i?.tables){let s=(await this.getAll(`EXPLAIN ${e}`,t)).filter(c=>c.opcode=="OpenRead"&&c.p3==0&&typeof c.p2=="number").map(c=>c.p2),l=await this.getAll("SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))",[JSON.stringify(s)]);for(let c of l)r.push(c.tbl_name.replace(hne,""))}return r}onChange(e,t){if(e&&typeof e=="object"&&"onChange"in e){let r=e,a=t;return this.onChangeWithCallback(r,a)}let i=e;return this.onChangeWithAsyncGenerator(i)}onChangeWithCallback(e,t){let{onChange:i}=e??{};if(!i)throw new Error("onChange is required");let{signal:r,tables:a,throttleMs:s=30}=t??{};if(r?.aborted)return()=>{};let l=new Set((a??[]).flatMap(g=>[g,`ps_data__${g}`,`ps_data_local__${g}`])),c=new Set,f=new dR(i),p=DV(()=>this.handleTableChanges(c,l,g=>{r?.aborted||f.schedule({changedTables:g})}),s);t?.triggerImmediate&&f.schedule({changedTables:[]});let h=this.database.registerListener({tablesUpdated:async g=>{this.processTableUpdates(g,c),p()}}),_=()=>{f.dispose(),h(),r?.removeEventListener("abort",_)};return r?.addEventListener("abort",_),_}onChangeWithAsyncGenerator(e){return $h.queueBasedAsyncIterable((t,i)=>{this.onChangeWithCallback({onChange:r=>{t.notify(r)}},{...e,signal:i})},e?.signal)}createMutex(){return new Dr}handleTableChanges(e,t,i){if(e.size>0){let r=Array.from(e.values()).filter(a=>t.has(a));r.length&&i(r)}e.clear()}processTableUpdates({tables:e},t){for(let i of e)t.add(i)}async executeReadOnly(e,t){return await this.waitForReady(),this.database.readLock(i=>i.execute(e,t))}};var ll=class n extends Error{reason;constructor(e){super(e),this.reason=e,Object.setPrototypeOf(this,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,n)}};var UV="1.3.1";var gne=/\/+$/,vne={LogLevels:Jt,EventQueue:$h,AbortOperation:ll};var bR=class{connector;logger;credentials=null;constructor(e,t){this.connector=e,this.logger=t}async getCredentials(e){return this.credentials?this.credentials:this.prefetchCredentials(e)}async prefetchCredentials(e){return this.credentials=await this.fetchCredentials(e),this.credentials}async fetchCredentials(e){let t=await this.connector.fetchCredentials(e);if(t?.endpoint.match(gne))throw new Error(`A trailing forward slash "/" was found in the fetchCredentials endpoint: "${t.endpoint}". Remove the trailing forward slash "/" to fix this error.`);return t}invalidateCredentials(){this.credentials=null,this.connector.invalidateCredentials?.()}getUserAgent(){return`powersync-js/${UV}`}async buildRequest(e,t){let i=await this.getCredentials(t);if(i!=null&&(i.endpoint==null||i.endpoint==""))throw new Error("PowerSync endpoint not configured");if(i?.token==null||i?.token==""){let a=new Error("Not signed in");throw a.status=401,a}let r=this.getUserAgent();return{url:i.endpoint+e,headers:{"content-type":"application/json",Authorization:`Token ${i.token}`,"x-user-agent":r},userAgent:r,path:e}}async fetchAndDecodeJson({path:e,method:t="GET",headers:i,body:r,signal:a}){let s=await this.buildRequest(e,a),l=await this.fetch({resource:s.url,request:{method:t,headers:{...i,...s.headers},body:r,signal:a},expectStreamingResponse:!1});if(l.status===401&&this.invalidateCredentials(),!l.ok)throw new Error(`Received ${l.status} - ${l.statusText} when getting from ${e}: ${await l.text()}}`);return l.json()}createTextDecoder(){return new TextDecoder}createSocket(e){return new WebSocket(e)}async socketStreamRaw(e){let t=await this.loadWebSocketSupport(vne),i=await this.buildRequest(e.path,e.abortSignal);i.url=i.url.replace(/^https?:\/\//,function(l){return l==="https://"?"wss://":"ws://"});let{fetchStrategy:r=Xd.Buffered,abortSignal:a,data:s}=e;return await t.webSocketSyncStream({remote:this,buffered:r==Xd.Buffered,abortSignal:a,requestPayload:s,request:i})}async fetchStreamRaw(e){let{data:t,path:i,abortSignal:r}=e,a=await this.buildRequest(i,r);if(r.aborted)throw new ll("Abort request received before making fetchStreamRaw request");let s=new AbortController,l=null;r.addEventListener("abort",()=>{let h=r.reason??new ll("Cancelling network request before it resolves. Abort signal has been received.");l==null?s.abort(h):l.cancel(h).catch(()=>{})});let c,f=!1;try{let h="application/x-ndjson",_="application/vnd.powersync.bson-stream";if(c=await this.fetch({resource:a.url,request:{method:"POST",headers:{...a.headers,accept:`${_};q=0.9,${h};q=0.8`},body:JSON.stringify(t),signal:s.signal,cache:"no-store"},expectStreamingResponse:!0}),!c.ok||!c.body){let E=await c.text(),x=new Error(`HTTP ${c.statusText}: ${E}`);throw x.status=c.status,this.logger.log({level:Jt.error,message:`Could not POST streaming to ${i} - ${c.status} - ${c.statusText}: ${E}`,error:x}),c.status===401&&this.invalidateCredentials(),x}f=c.headers.get("content-type")==_}catch(h){throw h.name=="AbortError"?new ll(`Pending fetch request to ${a.url} has been aborted.`):h}return l=c.body.getReader(),{isBson:f,stream:{next:async()=>{if(s.signal.aborted)return ol;try{return await l.read()}catch(h){if(s.signal.aborted)return ol;throw h}}}}}async fetchStream(e){let{isBson:t,stream:i}=await this.fetchStreamRaw(e);return t?OV(i):kV(i,this.createTextDecoder())}};function zV(n){return"EstablishSyncStream"in n||"CloseSyncStream"in n}var Zc;(function(n){n.CRUD="crud",n.SYNC="sync"})(Zc||(Zc={}));var SR=class extends Gr{options;abortController;crudUpdateListener;streamingSyncPromise;logger;activeStreams;connectionMayHaveChanged=!1;crudUploadNotifier=wT();checkpoints=new _R;notifyCompletedUploads;handleActiveStreamsChange;syncStatus;constructor(e){super(),this.options=e,this.activeStreams=e.subscriptions,this.logger=e.logger,this.syncStatus=new Kc(null,{}),this.abortController=null}triggerCrudUpload(){this.crudUploadNotifier.notify()}async waitForReady(){}waitUntilStatusMatches(e){return new Promise(t=>{if(e(this.syncStatus)){t();return}let i=this.registerListener({statusChanged:()=>{e(this.syncStatus)&&(t(),i?.())}})})}get lastSyncedAt(){let e=this.syncStatus.lastSyncedAt;return e&&new Date(e)}get isConnected(){return this.syncStatus.connected}async dispose(){super.dispose(),this.crudUpdateListener?.(),this.crudUpdateListener=void 0}async requestNextCheckpointFromService(e){if(!await this.checkpoints.waitForCheckpointRequestsReady(e))throw e.reason;let t=await this.options.adapter.readCheckpointRequestId("next"),i=await this.options.adapter.getClientId();return await this.requestCheckpointFromService(e,{client_id:i,checkpoint_request_id:t})}async requestCheckpointFromService(e,t){{let r=await this.options.postCheckpointRequest(t.client_id,t.checkpoint_request_id,e);if(r!=null)return r}return(await this.options.remote.fetchAndDecodeJson({method:"POST",path:"/sync/checkpoint-request",body:JSON.stringify(t),signal:e})).data.checkpoint_request_id}async getLegacyWriteCheckpoint(){let t=`/write-checkpoint2.json?client_id=${await this.options.adapter.getClientId()}`,r=(await this.options.remote.fetchAndDecodeJson({path:t})).data.write_checkpoint;return this.logger.log({level:Jt.debug,message:`Created write checkpoint: ${r}`}),r}async crudUploadLoop(e,t){for(;!e.aborted;)await Promise.all([this._uploadAllCrud(e,t),this.delayRetry(e,t.crudUploadThrottleMs)]),await this.crudUploadNotifier.waitForNotification(e)}async _uploadAllCrud(e,t){return this.obtainLock({type:Zc.CRUD,signal:e,callback:async()=>{let i;for(;!e.aborted;)try{let r=await this.options.adapter.nextCrudItem();if(r){if(this.updateJsSyncState({uploading:!0}),r.clientId==i?.clientId)throw this.logger.log({level:Jt.warn,message:`Potentially previously uploaded CRUD entries are still present in the upload queue. Make sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method. The next upload iteration will be delayed.`}),new Error("Delaying due to previously encountered CRUD item.");i=r,await this.options.uploadCrud(e),this.updateJsSyncState({uploadError:void 0})}else{await this.options.adapter.updateLocalTarget(()=>t.checkpointMode==="legacy"?this.getLegacyWriteCheckpoint():this.requestNextCheckpointFromService(e))?this.notifyCompletedUploads?.():i!=null&&this.logger.log({level:Jt.debug,message:"Upload complete, no write checkpoint needed."});break}}catch(r){if(i=void 0,this.updateJsSyncState({uploading:!1,uploadError:r}),await this.delayRetry(e,t.retryDelayMs),!this.isConnected)break;this.logger.log({level:Jt.debug,message:"Caught exception when uploading. Upload will retry after a delay.",error:r})}finally{this.updateJsSyncState({uploading:!1})}}})}async connect(e){this.abortController&&await this.disconnect();let t=new AbortController;this.abortController=t;let i=t.signal;return this.streamingSyncPromise=Promise.all([this.crudUploadLoop(i,e).catch(r=>{i.reason!==r&&this.logger.log({level:Jt.error,message:"Error in crud upload loop",error:r})}),this.streamingSync(i,e),this.repostUnacknowledgedCheckpointRequests(i,e)]).finally(()=>{this.checkpoints.disconnected()}),new Promise(r=>{let a=!1,s=!1,l=()=>{s||(s=!0,c(),i.removeEventListener("abort",l),r())},c=this.registerListener({statusChanged:f=>{if(f.connecting&&(a=!0),f.downloadError!=null)this.logger.log({level:Jt.warn,message:"Initial connect attempt did not successfully connect to server"});else if(!a||f.connecting)return;l()}});i.addEventListener("abort",l,{once:!0})})}async requestCheckpoint(){let e=new AbortController().signal;return BigInt(await this.requestNextCheckpointFromService(e))}async disconnect(){if(this.abortController){this.abortController.signal.aborted||this.abortController.abort(new ll("Disconnect has been requested"));try{await this.streamingSyncPromise}catch(e){this.logger.log({level:Jt.warn,message:"Error in sync while disconnecting",error:e})}this.streamingSyncPromise=void 0,this.abortController=null,this.markAsDisconnected()}}markAsDisconnected(){let e=this.syncStatus.core;e!=null&&this.updateSyncStatus({...e,connected:!1,connecting:!1,downloading:null})}async streamingSync(e,t){this.crudUpdateListener=this.options.adapter.registerListener({crudUpdate:()=>this.triggerCrudUpload()});let i=new AbortController;for(e.addEventListener("abort",()=>{i.abort(e?.reason??new ll("Received command to disconnect from upstream")),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.markAsDisconnected()});;){let r=!0,a=null;try{if(e?.aborted)break;a=await this.streamingSyncIteration(i.signal,t)}catch(s){let l=e.aborted;l?(this.logger.log({level:Jt.warn,message:"Sync aborted",error:s}),r=!1):this.connectionMayHaveChanged&&s.message?.indexOf("No iteration is active")>=0?(this.connectionMayHaveChanged=!1,this.logger.log({level:Jt.info,message:"Sync error after changed connection, retrying immediately"}),r=!1):this.logger.log({level:Jt.error,message:"Sync error",error:s}),l||this.updateJsSyncState({downloadError:s})}finally{this.checkpoints.downloadIterationEnded(),this.notifyCompletedUploads=void 0,e.aborted||(i.abort(new ll("Closing sync stream network requests before retry.")),i=new AbortController),a?.immediateRestart!=!0&&(this.markAsDisconnected(),r&&await this.delayRetry(i.signal,t.retryDelayMs,!0))}}this.markAsDisconnected()}markConnectionMayHaveChanged(){this.connectionMayHaveChanged=!0,this.handleActiveStreamsChange?.()}async requireKeyFormat(e){let t=await this.options.adapter.hasMigratedSubkeys();return e&&!t?(await this.options.adapter.migrateToFixedSubkeys(),!0):t}streamingSyncIteration(e,t){return this.obtainLock({type:Zc.SYNC,signal:e,callback:async()=>{let i=Object.entries(t.appMetadata).filter(([r,a])=>typeof a!="string");if(i.length>0)throw new Error(`Invalid appMetadata provided. Only string values are allowed. Invalid values: ${i.map(([r,a])=>`${r}: ${a}`).join(", ")}`);return await this.requireKeyFormat(!0),await this.rustSyncIteration(e,t)}})}receiveSyncLines(e){let{options:t,connection:i}=e,r=this.options.remote,a=async()=>i.connectionMethod==Qd.HTTP?await r.fetchStream(t):await this.options.remote.socketStreamRaw({...t,fetchStrategy:i.fetchStrategy}),s,l=!1;return{async next(){if(l)return ol;if(s==null)return s=await a(),ad({command:Is.CONNECTION_STATE,payload:"established"});{let c=await s.next();return c.done?(l=!0,ad({command:Is.CONNECTION_STATE,payload:"end"})):ad({command:typeof c.value=="string"?Is.PROCESS_TEXT_LINE:Is.PROCESS_BSON_LINE,payload:c.value})}}}}async repostUnacknowledgedCheckpointRequests(e,t){let i,r=t.checkpointMode;if(r!="legacy")for(r=="requests"?i=1e4:i=Math.max(r.requests.retryDelay,1e4);!e.aborted;)try{if(!await this.checkpoints.waitForCheckpointRequestsReady(e,!1))return;let a=await this.options.adapter.readCheckpointRequestId("current");if(await this.delayRetry(e,i),a!=await this.options.adapter.readCheckpointRequestId("current")||TT(this.syncStatus?.core,BigInt(a)))continue;if(!await this.checkpoints.waitForCheckpointRequestsReady(e,!1))return;this.logger.log({level:Jt.debug,message:`Retry checkpoint request ${a}`}),await this.requestCheckpointFromService(e,{client_id:await this.options.adapter.getClientId(),checkpoint_request_id:a})}catch(a){if(e.aborted)return;this.logger.log({level:Jt.warn,error:a,message:"Error retrying checkpoint request."}),await this.delayRetry(e,i)}}async seedCheckpointRequestState(e,t){let i=await this.requestCheckpointFromService(e,t);await this.options.adapter.readCheckpointRequestId("seed",i)}async rustSyncIteration(e,t){let i=this,r=this.options.adapter,a=this.options.remote,s=!1,l;if(e.aborted)throw new ll("Connection request has been aborted");let c=this.options.serializedSchema;function f(){let g={parameters:t.params,app_metadata:t.appMetadata,active_streams:i.activeStreams,include_defaults:t.includeDefaultStreams,checkpoint_mode:t.checkpointMode==="legacy"?"legacy":"requests"};return c&&(g.schema=c),h(Is.START,JSON.stringify(g))}async function p(){let g=await h(Is.STOP);for(let E of g)zV(E)||await _(E)}async function h(g,E){let x=await r.control(g,E??null),S=E==null||typeof E=="string"?E:"";return i.logger.log({level:Jt.trace,message:`powersync_control(${g}, ${S}) -> ${x}`}),g!=Is.STOP&&(i.connectionMayHaveChanged=!1),JSON.parse(x)}async function _(g){if("LogLine"in g){let{severity:E,line:x}=g.LogLine;switch(E){case"DEBUG":i.logger.log({level:Jt.debug,message:x});break;case"INFO":i.logger.log({level:Jt.info,message:x});break;case"WARNING":i.logger.log({level:Jt.warn,message:x});break}}else"UpdateSyncStatus"in g?i.updateSyncStatus(g.UpdateSyncStatus.status):"FetchCredentials"in g?g.FetchCredentials.did_expire?a.invalidateCredentials():(a.invalidateCredentials(),a.fetchCredentials().then(E=>{l?.()},E=>{i.logger.log({level:Jt.warn,message:"Could not prefetch credentials",error:E})})):"FlushFileSystem"in g||"DidCompleteSync"in g&&i.updateJsSyncState({downloadError:void 0})}try{let g={immediateRestart:!1},E=null;for(let S of await f())if("EstablishSyncStream"in S){let v=S.EstablishSyncStream,M={path:"/sync/stream",abortSignal:e,data:v.request};E=NV(i.receiveSyncLines({options:M,connection:t})),v.checkpoint_request&&this.checkpoints.markCheckpointsReady(this.seedCheckpointRequestState(e,v.checkpoint_request)).catch(k=>{e.aborted||E?.injectError(k)})}else{if("CloseSyncStream"in S)return g;await _(S)}if(E==null)return g;this.notifyCompletedUploads=()=>{E.inject({command:Is.NOTIFY_CRUD_UPLOAD_COMPLETED})},this.handleActiveStreamsChange=()=>{E.inject({command:Is.UPDATE_SUBSCRIPTIONS,payload:JSON.stringify(this.activeStreams)})},l=()=>{E.inject({command:Is.NOTIFY_TOKEN_REFRESHED})};let x=!1;e:for(;;){let{done:S,value:v}=await E.next();if(S)break;x||(v.command==Is.PROCESS_TEXT_LINE||v.command==Is.PROCESS_BSON_LINE)&&(x=!0,this.triggerCrudUpload?.());let M=await h(v.command,v.payload);for(let O of M){if("EstablishSyncStream"in O)throw new Error("Received EstablishSyncStream while already connected.");if("CloseSyncStream"in O){s=O.CloseSyncStream.hide_disconnect;break e}else await _(O)}}}finally{this.notifyCompletedUploads=this.handleActiveStreamsChange=void 0,l=void 0,await p()}return{immediateRestart:s}}updateSyncStatus(e,t){let i=new Kc(e,{...this.syncStatus.jsState,...t});this.syncStatus.isEqual(i)||(this.syncStatus=i,this.iterateListeners(r=>r.statusChanged?.(i)))}updateJsSyncState(e){this.updateSyncStatus(this.syncStatus.core,e)}async delayRetry(e,t,i=!1){return new Promise(r=>{if(e.aborted){r();return}let a=null,s,l=()=>{r(),s&&(clearTimeout(s),s=void 0),a&&(a.abort(),a=null),e.removeEventListener("abort",l)};e.addEventListener("abort",l,{once:!0});let c=t*(.9+Math.random()*.2);s=setTimeout(l,c),i&&(a=new AbortController,this.checkpoints.waitForCheckpointWaiter(a.signal).finally(l))})}updateSubscriptions(e){this.activeStreams=e,this.handleActiveStreamsChange?.()}};var MT=class n extends Error{static NAME="ConnectionClosedError";static MATCHES(e){return e instanceof n||e instanceof Error&&e.name==n.NAME}constructor(e){super(e),this.name=n.NAME}};function qV(n,e){if("opened"in n)return n.opened;if("factory"in n)return n.factory.openDB();if("database"in n&&n.database?.dbFilename)return e(n.database);throw new Error("The provided `database` option is invalid.")}var yne={rowsAffected:0,columnNames:[],rawRows:[]},ER=class extends vf{name;readMutex;writeMutex;constructor(){super(),this.name="SSR DB",this.readMutex=new Dr,this.writeMutex=new Dr}close(){}async readLock(e,t){return e(new wR)}async writeLock(e,t){return e(new wR)}async refreshSchema(){}},wR=class extends bm{async executeRaw(){return yne}};var xR=class{#n;#e=0;#t=new Set;#i;#r=new Set;constructor(e){this.#n=e;let t=e.inner;this.#i=new BroadcastChannel(`${t.options.filename}-table-updates`),this.#i.onmessage=({data:i})=>{this.#s(i)}}#s(e){for(let t of this.#r)t.postMessage(e)}get#o(){return this.#n.inner}get#a(){return this.#n.logger}async connect(e){let t=!0,i=this.#e++;this.#t.add(i);let r=new Map,a;function s(){if(!t)throw new Error("Client has already been closed")}function l(f){s();let p=r.get(f);if(!p)throw new Error("Attempted to use a connection lease that has already been returned.");return p}let c=async()=>{if(t){t=!1,a&&this.#r.delete(a);for(let{lease:f}of r.values())this.#a.log({level:Jt.debug,message:"Closing connection lease that hasn't been returned."}),await f.returnLease();this.#t.delete(i),this.#t.size==0?await this.forceClose():this.#a.log({level:Jt.debug,message:"Keeping underlying connection active since its used by other clients."})}};return e&&navigator.locks.request(e,{},()=>{c()}),{close:c,debugIsAutoCommit:async()=>this.#o.unsafeUseInner().isAutoCommit(),requestAccess:async(f,p)=>{s();let h=await this.#o.acquireConnection(p!=null?AbortSignal.timeout(p):void 0);if(!t)return await h.returnLease(),s();let _=crypto.randomUUID();return r.set(_,{lease:h,write:f}),_},completeAccess:async f=>{let p=l(f);r.delete(f);try{if(p.write){let{rawRows:h}=await p.lease.use(_=>_.execute("SELECT powersync_update_hooks('get')"));if(h.length){let _=JSON.parse(h[0][0]);_.length&&(this.#i.postMessage(_),this.#s(_))}}}finally{await p.lease.returnLease()}},execute:async(f,p,h)=>{let{lease:_}=l(f);return await _.use(g=>g.execute(p,h))},executeBatch:async(f,p,h)=>{let{lease:_}=l(f);return await _.use(g=>g.executeBatch(p,h))},setUpdateListener:async f=>{s(),a&&this.#r.delete(a),a=f,f&&this.#r.add(f)}}}async forceClose(){this.#a.log({level:Jt.debug,message:`Closing connection to ${JSON.stringify(this.#o.options)}.`});let e=this.#o;this.#n.onClose(),this.#i.close(),await e.close()}};var eu=()=>{if("locks"in navigator&&navigator.locks)return navigator.locks;throw new Error("Navigator locks are not available in an insecure context. Use a secure context such as HTTPS or http://localhost.")};J1();J1();typeof BigInt.prototype.toJSON>"u"&&(BigInt.prototype.toJSON=function(){return this.toString()});var QV=0x7fffffffffffffffn,XV=-0x8000000000000000n,IF=Object.getPrototypeOf(async function(){}).constructor,Jh=class extends Error{constructor(e,t){super(e),this.code=t}},AT=!0;function YV(n){let e={};n.retryOps=[],n.pendingOps=[];let t=n._getSqliteFree(),i=n._malloc(8),r=[i,i+4],a=new TextEncoder;function s(x){if(typeof x!="string")return 0;let S=a.encode(x),v=n._sqlite3_malloc(S.byteLength+1);return n.HEAPU8.set(S,v),n.HEAPU8[v+S.byteLength]=0,v}function l(x,S){return BigInt(S)<<32n|BigInt(x)&0xffffffffn}let c=(function(){let x=BigInt(Number.MAX_SAFE_INTEGER)>>32n,S=BigInt(Number.MIN_SAFE_INTEGER)>>32n;return function(v,M){return M>x||M2147483647||O<-2147483648)return 25;let k=S(v,M,O);return g(x,k,h.get(v))}})(),e.bind_int64=(function(){let x="sqlite3_bind_int64",S=n.cwrap(x,...kn("nnnn:n"));return function(v,M,O){if(_(v),O>QV||O>32n,G=S(v,M,Number(k),Number(q));return g(x,G,h.get(v))}})(),e.bind_null=(function(){let x="sqlite3_bind_null",S=n.cwrap(x,...kn("nn:n"));return function(v,M){_(v);let O=S(v,M);return g(x,O,h.get(v))}})(),e.bind_parameter_name=(function(){let S=n.cwrap("sqlite3_bind_parameter_name",...kn("n:s"));return function(v,M){return _(v),S(v,M)}})(),e.bind_text=(function(){let x="sqlite3_bind_text",S=n.cwrap(x,...kn("nnnnn:n"));return function(v,M,O){_(v);let k=s(O),q=S(v,M,k,-1,t);return g(x,q,h.get(v))}})(),e.changes=(function(){let S=n.cwrap("sqlite3_changes",...kn("n:n"));return function(v){return p(v),S(v)}})(),e.clear_bindings=(function(){let x="sqlite3_clear_bindings",S=n.cwrap(x,...kn("n:n"));return function(v){_(v);let M=S(v);return g(x,M,h.get(v))}})(),e.last_insert_id=(function(){let S=n.cwrap("sqlite3_last_insert_rowid",...kn("n:n"));return function(v){return p(v),S(v)}})(),e.close=(function(){let x="sqlite3_close",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){p(v);let M=await S(v);return f.delete(v),g(x,M,v)}})(),e.column=function(x,S){_(x);let v=e.column_type(x,S);switch(v){case 4:return e.column_blob(x,S);case 2:return e.column_double(x,S);case 1:let M=e.column_int(x,S),O=n.getTempRet0();return c(M,O);case 5:return null;case 3:return e.column_text(x,S);default:throw new Jh("unknown type",v)}},e.column_blob=(function(){let S=n.cwrap("sqlite3_column_blob",...kn("nn:n"));return function(v,M){_(v);let O=e.column_bytes(v,M),k=S(v,M);return n.HEAPU8.subarray(k,k+O)}})(),e.column_bytes=(function(){let S=n.cwrap("sqlite3_column_bytes",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_count=(function(){let S=n.cwrap("sqlite3_column_count",...kn("n:n"));return function(v){return _(v),S(v)}})(),e.column_double=(function(){let S=n.cwrap("sqlite3_column_double",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_int=(function(){let S=n.cwrap("sqlite3_column_int64",...kn("nn:n"));return function(v,M){return _(v),S(v,M)}})(),e.column_int64=(function(){let S=n.cwrap("sqlite3_column_int64",...kn("nn:n"));return function(v,M){_(v);let O=S(v,M),k=n.getTempRet0();return l(O,k)}})(),e.column_name=(function(){let S=n.cwrap("sqlite3_column_name",...kn("nn:s"));return function(v,M){return _(v),S(v,M)}})(),e.column_names=function(x){let S=[],v=e.column_count(x);for(let M=0;MZ(te,n.HEAP32.subarray(he/4,he/4+j))):((te,j,he)=>Z(te,n.HEAP32.subarray(he/4,he/4+j)))}let H=n.create_function(x,S,v,M,O,k&&Q(k),q&&Q(q),G);return g("sqlite3_create_function",H,x)},e.data_count=(function(){let S=n.cwrap("sqlite3_data_count",...kn("n:n"));return function(v){return _(v),S(v)}})(),e.exec=async function(x,S,v){for await(let M of e.statements(x,S)){let O;for(;await e.step(M)===100;)if(v){O=O??e.column_names(M);let k=e.row(M);await v(k,O)}}return 0},e.finalize=(function(){let S=n.cwrap("sqlite3_finalize",...kn("n:n"),{async:AT});return async function(v){let M=await S(v);return h.delete(v),M}})(),e.get_autocommit=(function(){let S=n.cwrap("sqlite3_get_autocommit",...kn("n:n"));return function(v){return S(v)}})(),e.libversion=(function(){let S=n.cwrap("sqlite3_libversion",...kn(":s"));return function(){return S()}})(),e.libversion_number=(function(){let S=n.cwrap("sqlite3_libversion_number",...kn(":n"));return function(){return S()}})(),e.limit=(function(){let S=n.cwrap("sqlite3_limit",...kn("nnn:n"));return function(v,M,O){return S(v,M,O)}})(),e.open_v2=(function(){let x="sqlite3_open_v2",S=n.cwrap(x,...kn("snnn:n"),{async:AT});return async function(v,M,O){M=M||6,O=s(O);try{let k=await E(()=>S(v,r[0],M,O)),q=n.getValue(r[0],"*");if(k!==0){let G=q?n.ccall("sqlite3_errmsg","string",["number"],[q]):x,Q=new Jh(G,k);if(q){f.add(q);try{await e.close(q)}catch{}finally{f.delete(q)}}throw Q}return f.add(q),n.ccall("RegisterExtensionFunctions","void",["number"],[q]),q}finally{n._sqlite3_free(O)}}})(),e.progress_handler=function(x,S,v,M){p(x),n.progress_handler(x,S,v,M)},e.reset=(function(){let x="sqlite3_reset",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){_(v);let M=await S(v);return g(x,M,h.get(v))}})(),e.result=function(x,S){switch(typeof S){case"number":S===(S|0)?e.result_int(x,S):e.result_double(x,S);break;case"string":e.result_text(x,S);break;default:if(S instanceof Uint8Array||Array.isArray(S))e.result_blob(x,S);else if(S===null)e.result_null(x);else{if(typeof S=="bigint")return e.result_int64(x,S);console.warn("unknown result converted to null",S),e.result_null(x)}break}},e.result_blob=(function(){let S=n.cwrap("sqlite3_result_blob",...kn("nnnn:n"));return function(v,M){let O=M.byteLength??M.length,k=n._sqlite3_malloc(O);n.HEAPU8.subarray(k).set(M),S(v,k,O,t)}})(),e.result_double=(function(){let S=n.cwrap("sqlite3_result_double",...kn("nn:n"));return function(v,M){S(v,M)}})(),e.result_int=(function(){let S=n.cwrap("sqlite3_result_int",...kn("nn:n"));return function(v,M){S(v,M)}})(),e.result_int64=(function(){let S=n.cwrap("sqlite3_result_int64",...kn("nnn:n"));return function(v,M){if(M>QV||M>32n;S(v,Number(O),Number(k))}})(),e.result_null=(function(){let S=n.cwrap("sqlite3_result_null",...kn("n:n"));return function(v){S(v)}})(),e.result_text=(function(){let S=n.cwrap("sqlite3_result_text",...kn("nnnn:n"));return function(v,M){let O=s(M);S(v,O,-1,t)}})(),e.row=function(x){let S=[],v=e.data_count(x);for(let M=0;Mq(...M(G,Q,H,Z,te,j))):((G,Q,H,Z,te,j)=>q(...M(G,Q,H,Z,te,j)))}let k=n.set_authorizer(x,O(S),v);return g("sqlite3_set_authorizer",k,x)},e.sql=(function(){let S=n.cwrap("sqlite3_sql",...kn("n:s"));return function(v){return _(v),S(v)}})(),e.statements=function(x,S,v={}){let M=n.cwrap("sqlite3_prepare_v3","number",["number","number","number","number","number","number"],{async:!0});return(async function*(){let O=[];try{let j=function(){te&&!v.unscoped&&e.finalize(te),te=0},k=a.encode(S),q=k.byteLength-k.byteLength%4+12,G=n._sqlite3_malloc(q),Q=G+k.byteLength+1;O.push(()=>n._sqlite3_free(G)),n.HEAPU8.set(k,G),n.HEAPU8[Q-1]=0;let H=G+q-8,Z=G+q-4,te;O.push(j),n.setValue(Z,G,"*");do{j();let he=n.getValue(Z,"*"),ke=await E(()=>M(x,he,Q-Z,v.flags||0,H,Z));ke!==0&&g("sqlite3_prepare_v3",ke,x),te=n.getValue(H,"*"),te&&(h.set(te,x),yield te)}while(te)}finally{for(;O.length;)O.pop()()}})()},e.step=(function(){let x="sqlite3_step",S=n.cwrap(x,...kn("n:n"),{async:AT});return async function(v){_(v);let M=await E(()=>S(v));return g(x,M,h.get(v),[100,101])}})(),e.commit_hook=function(x,S){p(x),n.commit_hook(x,S)},e.update_hook=function(x,S){p(x);function v(O,k,q,G,Q){return[O,n.UTF8ToString(k),n.UTF8ToString(q),l(G,Q)]}function M(O){return O instanceof IF?(async(k,q,G,Q,H)=>O(...v(k,q,G,Q,H))):((k,q,G,Q,H)=>O(...v(k,q,G,Q,H)))}n.update_hook(x,M(S))},e.value=function(x){let S=e.value_type(x);switch(S){case 4:return e.value_blob(x);case 2:return e.value_double(x);case 1:let v=e.value_int(x),M=n.getTempRet0();return c(v,M);case 5:return null;case 3:return e.value_text(x);default:throw new Jh("unknown type",S)}},e.value_blob=(function(){let S=n.cwrap("sqlite3_value_blob",...kn("n:n"));return function(v){let M=e.value_bytes(v),O=S(v);return n.HEAPU8.subarray(O,O+M)}})(),e.value_bytes=(function(){let S=n.cwrap("sqlite3_value_bytes",...kn("n:n"));return function(v){return S(v)}})(),e.value_double=(function(){let S=n.cwrap("sqlite3_value_double",...kn("n:n"));return function(v){return S(v)}})(),e.value_int=(function(){let S=n.cwrap("sqlite3_value_int64",...kn("n:n"));return function(v){return S(v)}})(),e.value_int64=(function(){let S=n.cwrap("sqlite3_value_int64",...kn("n:n"));return function(v){let M=S(v),O=n.getTempRet0();return l(M,O)}})(),e.value_text=(function(){let S=n.cwrap("sqlite3_value_text",...kn("n:s"));return function(v){return S(v)}})(),e.value_type=(function(){let S=n.cwrap("sqlite3_value_type",...kn("n:n"));return function(v){return S(v)}})(),e.vfs_register=function(x,S){let v=n.vfs_register(x,S);return g("sqlite3_vfs_register",v)};function g(x,S,v=null,M=[0]){if(M.includes(S))return S;let O=v?n.ccall("sqlite3_errmsg","string",["number"],[v]):x;throw new Jh(O,S)}async function E(x){let S;for(let v=0;v<2;++v){if(n.retryOps.length)try{await Promise.all(n.retryOps)}finally{n.retryOps=[]}if(S=await x(),S===0||n.retryOps.length===0){if(n.pendingOps.length)try{await Promise.all(n.pendingOps)}catch(M){return console.error("Error in pendingOps:",M),M.code||1}finally{n.pendingOps=[]}return S}}return S}return e}function kn(n){let e=[],t=n.match(/([ns@]*):([nsv@])/);switch(t[2]){case"n":e.push("number");break;case"s":e.push("string");break;case"v":e.push(null);break}let i=[];for(let r of t[1])switch(r){case"n":i.push("number");break;case"s":i.push("string");break}return e.push(i),e}var MR;(function(n){n.MEMORY="memory",n.FILESYSTEM="file"})(MR||(MR={}));var AR=128;function CR(n){let e={disableSSRWarning:!1,ssrMode:!("window"in globalThis),enableMultiTabs:typeof globalThis.navigator<"u"&&typeof SharedWorker<"u"&&!navigator.userAgent.match(/(Android|iPhone|iPod|iPad)/i)&&!window.safari,useWebWorker:!0,databaseWorkerLogLevel:Jt.info,temporaryStorage:MR.MEMORY,cacheSizeKb:51200,encryptionKey:void 0,vfs:ls.IDBBatchAtomicVFS,additionalReaders:1},t=Object.assign(e,n);if(mT(t.vfs)&&!t.useWebWorker)throw new Error(`Invalid configuration: The 'useWebWorker' flag must be true when using an OPFS-based VFS (${t.vfs}).`);return t}var RR=class{#n;#e=new Map;constructor(e){this.#n=e}lookup(e){let t=this.#e.get(e);return t!=null?(this.#e.delete(e),this.#e.set(e,t),t):null}addStatement(e,t){if(this.#e.set(e,t),this.#e.size>this.#n)for(let[i,r]of this.#e.entries())return this.#e.delete(i),r;return null}drain(){let e=[...this.#e.values()];return this.#e.clear(),e}};var IR=class{options;_sqliteAPI=null;sqlite3_stmt_isexplain;db=0;statementCache;constructor(e){this.options=e,this.statementCache=e.preparedStatementsCache>0?new RR(e.preparedStatementsCache):null}get isOpen(){return this.db!=0}async init(){let{module:e,vfs:t}=await bV(this.options);await this.initWithModule(e,t)}async initWithModule(e,t){let i=this._sqliteAPI=await this.openSQLiteAPI(e,t);if(this.db=await i.open_v2(this.options.filename,this.options.readonly?1:6),await this.executeRaw(`PRAGMA temp_store = ${this.options.temporaryStorage};`),this.options.encryptionKey){let r=this.options.encryptionKey.replaceAll("'","''");await this.executeRaw(`PRAGMA key = '${r}';`)}await this.executeRaw(`PRAGMA cache_size = -${this.options.cacheSizeKb};`),await this.executeRaw("SELECT powersync_update_hooks('install');")}async openSQLiteAPI(e,t){t.mxPathname=AR,this.sqlite3_stmt_isexplain=e.cwrap("sqlite3_stmt_isexplain","int",["int"]);let i=YV(e);if(i.vfs_register(t,!0),e.ccall("powersync_init_static","int",[]),this.options.encryptionKey&&e.ccall("sqlite3mc_vfs_create","int",["string","int"],[this.options.filename,1])!==0)throw new Error("Failed to create multiple cipher vfs, Database encryption will not work");return i}requireSqlite(){if(!this._sqliteAPI)throw new Error("Initialization has not completed");return this._sqliteAPI}isAutoCommit(){return this.requireSqlite().get_autocommit(this.db)!=0}async execute(e,t){let i=await this.executeSingleStatementRaw(e,t);return this.wrapQueryResults(this.requireSqlite(),i)}async executeBatch(e,t){let i=[],r=this.requireSqlite();for await(let a of r.statements(this.db,e)){let s;for(let l of t){let c=await this.stepThroughStatement(r,a,l,s,!1);i.push(this.wrapQueryResults(r,c))}break}return i}wrapQueryResults(e,{rawRows:t,columnNames:i}){return{rowsAffected:e.changes(this.db),insertId:e.last_insert_id(this.db),autocommit:e.get_autocommit(this.db)!=0,rawRows:t,columnNames:i}}async executeSingleStatementRaw(e,t){let i=await this.executeRaw(e,t);return i.length?i[0]:{columnNames:[],rawRows:[]}}async executeRaw(e,t){let i=[],r=this.requireSqlite();for await(let a of this.cachedStatements(r,e)){let s,l=await this.stepThroughStatement(r,a,t??[],s);if(s=l.columnNames,s.length&&i.push(l),t)break}return i}async stepThroughStatement(e,t,i,r,a=!0){i.forEach((l,c,f)=>{typeof l=="boolean"&&(f[c]=l?1:0)}),e.reset(t),i&&e.bind_collection(t,i);let s=[];for(;await e.step(t)===100;)if(a){let l=e.row(t);s.push(l)}return r??=e.column_names(t),{columnNames:r,rawRows:s}}async close(){if(this.isOpen){let e=this.requireSqlite();if(this.statementCache)for(let t of this.statementCache.drain())await e.finalize(t);await e.close(this.db),this.db=0}}async*cachedStatements(e,t){{let a=this.statementCache?.lookup(t);if(a!=null){yield a;return}}let i=e.statements(this.db,t,{unscoped:!0}),r=[];try{for await(let a of i)r.push(a),yield a}finally{if(r.length===1&&this.statementCache){let a=r[0];if(this.sqlite3_stmt_isexplain(a)==0){let s=this.statementCache.addStatement(t,a);s!=null&&await e.finalize(s);return}}for(let a of r)await e.finalize(a)}}};var LR=class{inner;leaseMutex;constructor(e,t){this.inner=e,this.leaseMutex=t?null:new Dr}get options(){return this.inner.options}acquireMutex(e){return this.leaseMutex?this.leaseMutex.acquire(e):new Promise((t,i)=>{let r={signal:e};navigator.locks.request(`db-lock-${this.options.filename}`,r,a=>new Promise(s=>t(()=>{s()}))).catch(i)})}unsafeUseInner(){return this.inner}async acquireConnection(e){let t=await this.acquireMutex(e),i=new LF(t,this.inner);try{this.inner.requireSqlite(),this.inner.isAutoCommit()||await this.inner.executeRaw("ROLLBACK")}catch(r){throw t(),r}return i}async close(){let e=await this.acquireMutex();try{await this.inner.close()}finally{e()}}},LF=class{returnMutex;connection;useMutex=new Dr;closed=!1;constructor(e,t){this.returnMutex=e,this.connection=t}async returnLease(){await this.useMutex.runExclusive(async()=>{this.closed||(this.closed=!0,this.returnMutex())})}async use(e){return await this.useMutex.runExclusive(async()=>{if(this.closed)throw new Error("lease token has already been closed");return await e(this.connection)})}};var KV="open-wasqlite-db",NR=class{logger;#n=new Map;#e=new Dr;constructor(e){this.logger=e}async handleConnection({logLevel:e,database:t,lockName:i}){let r={log:a=>{a.level>=e&&this.logger.log(a)}};return nR(await this.openConnectionLocally(r,t,i))}async connectToExisting(e,t){return eu().request(KV,async()=>{let i=this.#n.get(e);if(i==null)throw new Error(`connectToExisting(${e}) failed because the worker doesn't own a database with that name.`);return nR(await i.connect(t))})}async openConnectionLocally(e,t,i){let a;for(let s=0;s<2;s++)try{a=await this.#t(e,t)}catch(l){this.logger.log({level:Jt.warn,message:`Attempt ${s+1} of 3 to open database failed, retrying in 1 second...`,error:l}),await new Promise(c=>setTimeout(c,1e3))}return a??=await this.#t(e,t),a.connect(i)}async#t(e,t){let{filename:i,readonly:r,vfs:a}=t,s=!(wne||r||a==ls.InMemoryVfs),l=this.#n;async function c(){let f=l.get(i);if(f==null){let p=new IR(t),h=new LR(p,s),_=await h.acquireMutex();try{await p.init()}catch(E){throw _(),await p.close(),E}_();let g=()=>l.delete(i);f=new xR({inner:h,logger:e,onClose:g}),l.set(i,f)}return f}return s?eu().request(KV,c):this.#e.runExclusive(c)}closeAll(){let e=[...this.#n.values()];return Promise.all(e.map(t=>{t.forceClose()}))}},wne="SharedWorkerGlobalScope"in globalThis;var gb=class extends vf{options;config;#n;#e=new AbortController;#t;constructor(e,t){super(),this.options=e,this.config=t,this.#n={connection:e.connection,notifyRemoteClosed:e.remoteCanCloseUnexpectedly?new AbortController:void 0,traceQueries:t.debugMode===!0};let{port1:i,port2:r}=new MessageChannel;e.connection.setUpdateListener(vT(i,[i])),this.#t=r,r.onmessage=a=>{let l={tables:a.data};this.iterateListeners(c=>{c.tablesUpdated&&c.tablesUpdated(l)})}}get name(){return this.config.dbFilename}markRemoteClosed(){this.#n.notifyRemoteClosed.abort()}async close(){this.#e.abort(),this.#t.close(),await CT(this.#n,e=>e.close(),!0),this.options.onClose?.(),this.options.source?.[_T]()}readLock(e,t){return this.#i(!1,e,t)}writeLock(e,t){return this.#i(!0,e,t)}async#i(e,t,i){let r=await CT(this.#n,a=>a.requestAccess(e,i?.timeoutMs));try{return await t(new NF(this.#n,r))}finally{await CT(this.#n,a=>a.completeAccess(r))}}async refreshSchema(){}async shareConnection(){let e=this.#e,t=this.options.source;if(t==null)throw new Error("shareConnection() is only available for connections based by workers.");return await new Promise((r,a)=>navigator.locks.request(`shared-connection-${this.name}-${Date.now()}-${Math.round(Math.random()*1e4)}`,{signal:e.signal},async()=>{r(),!e.signal.aborted&&await new Promise(s=>{e.signal.addEventListener("abort",()=>{s()})})}).catch(s=>{s.name=="AbortError"?r():a(s)})),{port:await t[wF](),identifier:this.name}}getConfiguration(){return this.config}},NF=class extends bm{#n;#e;constructor(e,t){super(),this.#n=e,this.#e=t}async maybeTrace(e,t){if(this.#n.traceQueries){let i=performance.now(),r=t();try{let a=await CT(this.#n,e);return performance.measure(`[SQL] ${r}`,{start:i}),a}catch(a){throw performance.measure(`[SQL] [ERROR: ${a.message}] ${r}`,{start:i}),a}}else return CT(this.#n,e)}async executeRaw(e,t){return await this.#t(e,t)}async#t(e,t){return this.maybeTrace(i=>i.execute(this.#e,e,t),()=>e)}async executeBatch(e,t=[]){let i=await this.maybeTrace(a=>a.executeBatch(this.#e,e,t),()=>`${e} (batch of ${t.length})`),r={insertId:void 0,rowsAffected:0};for(let a of i)r.insertId=a.insertId,r.rowsAffected=(r.rowsAffected??0)+a.rowsAffected;return f3(r)}};async function CT(n,e,t=!1){let i=n.notifyRemoteClosed;return i?new Promise((r,a)=>{if(i.signal.aborted&&(a(new MT("Called operation on closed remote")),!t))return;function s(){a(new MT("Remote peer closed with request in flight"))}function l(c){i.signal.removeEventListener("abort",s),c()}i.signal.addEventListener("abort",s),e(n.connection).then(c=>l(()=>r(c))).catch(c=>l(()=>a(c)))}):e(n.connection)}function RT(n){return new Promise((e,t)=>{let i={signal:n};eu().request(`tab-close-signal-${crypto.randomUUID()}`,i,r=>(e(r.name),new Promise(a=>{n&&n.addEventListener("abort",()=>a())}))).catch(t)})}async function ZV(n,e,t,i,r,a){let s=new AbortController,l=s.signal,c=null,f;r?.timeoutMs&&(c=setTimeout(()=>s.abort("requesting database timed out"),r.timeoutMs));try{if(a){let p;return[p,f]=await new Promise((h,_)=>{let g=!1;function E(){g=!0,s.abort()}function x(v,M){g?M():(E(),h([v,M]))}function S(v){g||(E(),_(v))}n.acquire(l).then(v=>x(e,v),S),t?.requestOne(l).then(({item:v,release:M})=>x(v,M),S)}),await i(p)}else return await n.runExclusive(()=>i(e),l)}finally{c!=null&&clearTimeout(c),f?.()}}var vb=class extends vf{name;state;resolvedWriter;pendingListeners=new Set;constructor(e,t){super(),this.name=t,this.state=e.then(i=>{for(let r of this.pendingListeners)r.closeAfterRegisteredOnResolvedPool=i.writer.registerListener(r.listener);return this.pendingListeners.clear(),this.resolvedWriter=i.writer,i.additionalReaders.length?Tne(i.writer,i.additionalReaders):xne(i.writer)})}async init(){await this.state}async close(){await(await this.state).close()}async readLock(e,t){return(await this.state).withConnection(!0,e,t)}async writeLock(e,t){return(await this.state).withConnection(!1,e,t)}async refreshSchema(){await(await this.state).refreshSchema()}registerListener(e){if(this.resolvedWriter)return this.resolvedWriter.registerListener(e);{let t={listener:e};return this.pendingListeners.add(t),()=>{if(t.closeAfterRegisteredOnResolvedPool)return t.closeAfterRegisteredOnResolvedPool();this.pendingListeners.delete(t)}}}async shareConnection(){return(await this.state).writer.shareConnection()}getConfiguration(){if(this.resolvedWriter)return this.resolvedWriter.getConfiguration();throw new Error("AsyncDbAdapter.getConfiguration() can only be called after initializing it.")}};function xne(n){return{writer:n,withConnection:(e,t,i)=>e?n.readLock(t,i):n.writeLock(t,i),close:()=>n.close(),refreshSchema:()=>n.refreshSchema()}}function Tne(n,e){let t=new Dr,i=new ST(e);return{writer:n,async withConnection(r,a,s){return ZV(t,n,i,l=>r?l.readLock(a):l.writeLock(a),s,r)},async close(){await n.close(),await Promise.all(e.map(r=>r.close()))},async refreshSchema(){await n.refreshSchema(),await Promise.all(e.map(r=>r.refreshSchema()))}}}function kR({service:n,databaseIdentifier:e,customWorker:t,shared:i,loggerForErrors:r}){let a=`${i?"shared-":""}powersync-${e}`,s;return t?s=i?new SharedWorker(t,{name:a,type:"module"}):new Worker(t,{name:a,type:"module"}):s=Mne(i,a),IT(s,r,n)}function Mne(n,e){return n?new SharedWorker(new URL("./worker.js",import.meta.url),{name:e,type:"module"}):new Worker(new URL("./worker.js",import.meta.url),{name:e,type:"module"})}function IT(n,e,t){function i(a){e.log({level:Jt.error,error:a.error,message:"Error in database or sync worker, this likely disrupts PowerSync."})}if(n.addEventListener("error",i),Ane(n)){let{port1:a,port2:s}=new MessageChannel,l=n.port;return l.start(),l.postMessage({port:a,service:t},[a]),s.start(),{endpoint:s,worker:n,close(){n.removeEventListener("error",i),s.close()}}}else return{endpoint:n,worker:n,close(){n.removeEventListener("error",i),n.terminate()}}}function Ane(n){return"port"in n}var OR=class{options;logger;constructor(e){this.options=CR(e.open);let t=AR-16;if(this.options.dbFilename.length>t)throw new Error(`dbFilename too long (max length is ${t})`);this.logger=e.logger}openAdapter(){return new vb(this.openConnection(),this.options.dbFilename)}openDB(){let{disableSSRWarning:e,enableMultiTabs:t,ssrMode:i}=this.options;return i?(e||this.logger.log({level:Jt.warn,message:` Running PowerSync in SSR mode. Only empty query results will be returned. Disable this warning by setting 'disableSSRWarning: true' in options.`}),new ER):(t||this.logger.log({level:Jt.warn,message:"Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly."}),this.openAdapter())}async openConnection(){let{enableMultiTabs:e,useWebWorker:t,vfs:i,dbFilename:r,encryptionKey:a,temporaryStorage:s,cacheSizeKb:l,preparedStatementsCache:c}=this.options;e||this.logger.log({level:Jt.warn,message:"Multiple tabs are not enabled in this browser"});let f,p=[],h=mT(i);function _(g){return{filename:r,readonly:g,vfs:i,encryptionKey:a,temporaryStorage:s,cacheSizeKb:l,preparedStatementsCache:c??0}}if(t){let g=this.options.worker,E=async x=>{let S;if(typeof g=="function"){let q=g(this.options);S=IT(q,this.logger,"database")}else{let G=!mT(i)&&e;S=kR({service:"database",databaseIdentifier:this.options.dbFilename,shared:G,customWorker:g,loggerForErrors:this.logger})}let v=gT(S.endpoint),M=new AbortController,k={connection:await v.connect({database:_(x),logLevel:this.options.databaseWorkerLogLevel,lockName:await RT(M.signal)}),source:v,remoteCanCloseUnexpectedly:!1,onClose:()=>{M.abort(),S.close()}};return new gb(k,{...this.options,requiresPersistentTriggers:h})};if(f=await E(!1),i==ls.OPFSWriteAheadVFS){let x=this.options.additionalReaders??1,S=[];for(let v=0;v{eu().request(n,async()=>{await new Promise(t=>{e(async()=>t())})})})},async checkClaim(n){return(await eu().query()).held?.find(t=>t.name==n)!=null}};var DR=class extends Gr{syncMutex;crudMutex;isConnected;lastSyncedAt;constructor(){super(),this.syncMutex=new Dr,this.crudMutex=new Dr,this.isConnected=!1}obtainLock(e){return(e.type==Zc.CRUD?this.crudMutex:this.syncMutex).runExclusive(e.callback,e.signal)}async connect(){}async dispose(){}async disconnect(){}async waitForReady(){}waitUntilStatusMatches(e){return new Promise(()=>{})}triggerCrudUpload(){}updateSubscriptions(){}markConnectionMayHaveChanged(){}requestCheckpoint(){throw new Error("Sub sync implementation does not support request checkpoints")}};var FR=class{};function JV(n){n??=navigator;let e=Cne(n),t=Rne(n);return[e,t].filter(i=>i!=null)}function Cne(n){let e=n.userAgentData?.brands;if(e!=null){let r=[{name:"Google Chrome",value:"Chrome"},{name:"Opera",value:"Opera"},{name:"Edge",value:"Edge"},{name:"Chromium",value:"Chromium"}];for(let{name:a,value:s}of r){let l=e.find(c=>c.brand==a);if(l!=null)return`${s}/${l.version}`}}let t=n.userAgent,i=[{re:/(?:firefox|fxios)\/(\d+)/i,value:"Firefox"},{re:/(?:edg|edge|edga|edgios)\/(\d+)/i,value:"Edge"},{re:/opr\/(\d+)/i,value:"Opera"},{re:/(?:chrome|chromium|crios)\/(\d+)/i,value:"Chrome"},{re:/version\/(\d+).*safari/i,value:"Safari"}];for(let{re:r,value:a}of i){let s=r.exec(t);if(s!=null)return`${a}/${s[1]}`}return null}function Rne(n){if(n.userAgentData?.platform!=null)return n.userAgentData.platform.toLowerCase();let e=n.userAgent,t=[{re:/windows/i,value:"windows"},{re:/android/i,value:"android"},{re:/linux/i,value:"linux"},{re:/iphone|ipad|ipod/i,value:"ios"},{re:/macintosh|mac os x/i,value:"macos"}];for(let{re:i,value:r}of t)if(i.test(e))return r;return null}var FT=class extends bR{connector;constructor(e,t){super(e,t),this.connector=e}fetch({resource:e,request:t}){return fetch(e,t)}async loadWebSocketSupport(e){if(!zF){let t=await Promise.resolve().then(()=>(kG(),NG));zF=new t.WebSocketSupport(e)}return zF}getUserAgent(){let e=[super.getUserAgent(),"powersync-web"];try{e.push(...JV())}catch(t){this.logger.log({level:Jt.warn,message:"Failed to get user agent info",error:t})}return e.join(" ")}},zF;var H_=class extends SR{constructor(e){super(e)}get webOptions(){return this.options}async obtainLock(e){let t=`streaming-sync-${e.type}-${this.webOptions.identifier}`;return e.type==Zc.SYNC&&this.logger.log({level:Jt.debug,message:`requesting lock for ${t}`}),eu().request(t,{signal:e.signal},e.callback)}};var PT;(function(n){n.CLOSE_CLIENT="close-client",n.CLOSE_ACK="close-ack"})(PT||(PT={}));var qF=class extends FR{options;statusChanged;webDB;constructor(e,t,i){super(),this.options=e,this.statusChanged=t,this.webDB=i}async getDBWorkerPort(){let{port:e}=await this.webDB.shareConnection();return vT(e,[e])}invalidateCredentials(){this.options.remote.invalidateCredentials()}async fetchCredentials(){let e=await this.options.remote.getCredentials();return e==null?null:{endpoint:e.endpoint,token:e.token}}async uploadCrud(){await this.options.uploadCrud()}async postCheckpointRequest(e,t){return await this.options.postCheckpointRequest(e,t)}get logger(){return this.options.logger}log(e){this.logger.log(e)}},qR=class extends H_{syncManager;clientProvider;worker;isInitialized;dbAdapter;abortOnClose=new AbortController;logLevel;enableBroadcastLogs;constructor(e){super(e),this.dbAdapter=e.db,this.logLevel=e.logLevel,this.enableBroadcastLogs=e.enableBroadcastLogs;let t=e.sync?.worker;typeof t=="function"?this.worker=IT(t(),e.logger,"sync"):this.worker=kR({service:"sync",databaseIdentifier:this.webOptions.identifier,shared:!0,customWorker:t,loggerForErrors:e.logger}),this.clientProvider=new qF(this.webOptions,({core:i,dataFlow:r})=>{this.updateSyncStatus(i,r)},e.db),this.syncManager=gT(this.worker.endpoint),tR(this.clientProvider,this.worker.endpoint),this.syncManager.setLogLevel(this.logLevel),this.triggerCrudUpload=this.syncManager.triggerCrudUpload,this.isInitialized=this._init()}async _init(){let e=await RT(this.abortOnClose.signal);await this.syncManager.addLockBasedCloseSignal(e);let{identifier:t}=this.options;await this.syncManager.setParams({dbParams:this.dbAdapter.getConfiguration(),streamOptions:{identifier:t,serializedSchema:this.options.serializedSchema},enableBroadcastLogs:this.enableBroadcastLogs},this.options.subscriptions)}async connect(e){return await this.waitForReady(),this.syncManager.connect(e,this.options.serializedSchema)}async disconnect(){return await this.waitForReady(),this.syncManager.disconnect()}async dispose(){await this.waitForReady(),await new Promise(e=>{let t=this.worker.endpoint;t.addEventListener("message",r=>{r.data?.event===PT.CLOSE_ACK&&e()});let i={event:PT.CLOSE_CLIENT,data:{}};t.postMessage(i)}),await super.dispose(),this.abortOnClose.abort(),this.syncManager[_T](),this.worker.close()}async waitForReady(){return this.isInitialized}requestCheckpoint(){return this.syncManager.requestCheckpoint()}updateSubscriptions(e){this.syncManager.updateSubscriptions(e)}};var BR=class extends H_{#n;#e;#t=!1;constructor(e){super(e);let t=e.identifier;this.#n=new BroadcastChannel(`sync-status-${t}`),this.#e=new BroadcastChannel(`subscription-change-${t}`),this.#n.onmessage=i=>{if(i.data=="ping"){this.#i(this.syncStatus);return}let{core:r,dataFlow:a}=i.data;this.updateSyncStatus(r,a)},this.#n.postMessage("ping"),this.#e.onmessage=()=>{super.updateSubscriptions(this.activeStreams)},this.registerListener({statusChanged:i=>this.#i(i)})}#i(e){this.#t&&this.#n.postMessage(e.toJSON())}updateSubscriptions(e){super.updateSubscriptions(e),this.#e.postMessage("")}obtainLock({callback:e,type:t,signal:i}){let r=async()=>{this.#t=!0;try{return await e()}finally{this.#t=!1}};return super.obtainLock({callback:t==Zc.SYNC?r:e,type:t,signal:i})}async dispose(){this.#n.close(),this.#e.close(),await super.dispose()}};var BF=class n extends yR{static SHARED_MUTEX=new Dr;resolvedOpenOptions;enableBroadcastLogs;constructor(e){let t=CR("database"in e?e.database:{});super(e),this.resolvedOpenOptions=t,this.enableBroadcastLogs=e.broadcastLogs??!0}async _initialize(){this.database instanceof vb&&await this.database.init(),typeof this.database.getConfiguration=="function"&&this.database.getConfiguration().requiresPersistentTriggers&&this.triggersImpl.updateDefaults({useStorageByDefault:!0})}generateTriggerManagerConfig(){return{claimManager:$V}}openDBAdapter(){return qV(this.options,e=>new OR({logger:this.logger,open:e}).openDB())}close(e){return super.close({disconnect:e?.disconnect??!this.resolvedOpenOptions.enableMultiTabs})}async loadVersion(){if(!this.resolvedOpenOptions.ssrMode)return super.loadVersion()}async resolveOfflineSyncStatus(){if(!this.resolvedOpenOptions.ssrMode)return super.resolveOfflineSyncStatus()}async runExclusive(e){return this.resolvedOpenOptions.ssrMode?n.SHARED_MUTEX.runExclusive(e):eu().request(`lock-${this.database.name}`,e)}generateSyncStreamImplementation(e,t){let i=new FT(e,this.logger),r={...this.options,...this.commonSyncOptions(e,t),remote:i};if(this.resolvedOpenOptions.ssrMode)return new DR;if(this.resolvedOpenOptions.enableMultiTabs){if(!this.enableBroadcastLogs){let a=` Multiple tabs are enabled, but broadcasting of logs is disabled. Logs for shared sync worker will only be available in the shared worker context `,s=this.options.logger;s?s.log({level:Jt.warn,message:a}):console.warn(a)}if("shareConnection"in this.database)return new qR({...r,db:this.database,logLevel:this.options.sync?.logLevel??Jt.info,enableBroadcastLogs:this.enableBroadcastLogs});this.logger.log({level:Jt.warn,message:"Not using a shared sync worker because the database adapter doesn't support it."})}return new BR(r)}},OG=BF;var $ne=new jd({name:$n.text,slug:$n.text,created_by:$n.text,created_at:$n.text}),Jne=new jd({world_id:$n.text,kind:$n.text,owner_id:$n.text,display_name:$n.text,color:$n.text,cursor_x:$n.integer,cursor_y:$n.integer,cursor_z:$n.integer,last_seen:$n.text},{indexes:{world:["world_id"]}}),eie=new jd({world_id:$n.text,author_id:$n.text,prompt:$n.text,status:$n.text,block_count:$n.integer,created_at:$n.text},{indexes:{world:["world_id"]}}),tie=new jd({world_id:$n.text,x:$n.integer,y:$n.integer,z:$n.integer,material:$n.text,build_id:$n.text,placed_by:$n.text,placed_at:$n.text,seq:$n.integer},{indexes:{world:["world_id"]}}),nie=new h3({worlds:$ne,players:Jne,builds:eie,blocks:tie}),HF=class extends Error{};function DG(n){return{async fetchCredentials(){let e=await fetch(`${n}/api/token`,{credentials:"same-origin"});if(!e.ok)throw new Error(`token ${e.status}`);let t=await e.json();return{endpoint:t.endpoint,token:t.token,expiresAt:new Date(t.expiresAt)}},async uploadData(e){let t=await e.getCrudBatch(150);if(!t)return;let i=t.crud.map(a=>({op:a.op,type:a.table,id:a.id,data:a.opData??{}})),r=await fetch(`${n}/api/upload`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({ops:i})});if(r.status===429||r.status>=500||r.status===401)throw new HF(`upload ${r.status}`);await t.complete()}}}function FG(n){let e=`${n}/powersync/worker.js`;return new OG({schema:nie,database:{dbFilename:"kody-world-builder.sqlite",worker:e},sync:{worker:e}})}var Fs=ci($o(),1),tp=document.documentElement.dataset.appBase??"",iie=document.documentElement.dataset.assetBase??`${tp}/_assets`,UT=FG(iie);function PG(){let n=location.pathname;tp&&n.startsWith(tp)&&(n=n.slice(tp.length));let e=/^\/r\/([a-z0-9]{4,24})\/?$/i.exec(n);return e?{room:e[1].toLowerCase()}:{room:null}}async function UG(n,e){let t=await fetch(n,{credentials:"same-origin",...e});return{ok:t.ok,status:t.status,body:await t.json().catch(()=>({}))}}function rie({slug:n}){let[e,t]=(0,V_.useState)({kind:"loading"});return(0,V_.useEffect)(()=>{let i=!1;return(async()=>{let r=await UG(`${tp}/api/rooms/${n}`);if(!r.ok||!r.body.room){i||t({kind:"missing",message:r.body.error??"That room does not exist."});return}let a=r.body.room,s=await UG(`${tp}/api/session?world=${a.worldId}`);if(i)return;let l=s.ok?s.body:{signedIn:!1,worldId:a.worldId,powersyncUrl:"https://powersync.invalid"};await UT.disconnect(),UT.connect(DG(tp),{params:{world_id:a.worldId}}),window.__wb={db:UT,session:l,room:a},t({kind:"ready",room:a,session:l})})(),()=>{i=!0}},[n]),e.kind==="loading"?(0,Fs.jsx)("div",{className:"boot",children:(0,Fs.jsx)("div",{className:"boot-cube"})}):e.kind==="missing"?(0,Fs.jsxs)("div",{className:"missing",children:[(0,Fs.jsx)("h1",{children:"Room not found"}),(0,Fs.jsx)("p",{children:e.message}),(0,Fs.jsx)("p",{children:(0,Fs.jsx)("a",{href:Df(),children:"Sign in to build"})}),(0,Fs.jsx)("button",{type:"button",className:"cta",onClick:()=>lw("/"),children:"Go to the start page"})]}):(0,Fs.jsx)(UH,{session:e.session,initialRoom:e.room},e.room.worldId)}function aie(){let[n,e]=(0,V_.useState)(PG);return(0,V_.useEffect)(()=>{let t=()=>e(PG());return addEventListener("popstate",t),()=>removeEventListener("popstate",t)},[]),(0,V_.useEffect)(()=>{n.room||UT.disconnect()},[n.room]),n.room?(0,Fs.jsx)(rie,{slug:n.room}):(0,Fs.jsx)(qH,{appBase:tp})}(0,zG.createRoot)(document.getElementById("root")).render((0,Fs.jsx)(tE.Provider,{value:UT,children:(0,Fs.jsx)(aie,{})})); /*! Bundled license information: react/cjs/react.production.js: (** * @license React * react.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) scheduler/cjs/scheduler.production.js: (** * @license React * scheduler.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) react-dom/cjs/react-dom.production.js: (** * @license React * react-dom.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) react-dom/cjs/react-dom-client.production.js: (** * @license React * react-dom-client.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) react/cjs/react-jsx-runtime.production.js: (** * @license React * react-jsx-runtime.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) use-sync-external-store/cjs/use-sync-external-store-shim.production.js: (** * @license React * use-sync-external-store-shim.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js: (** * @license React * use-sync-external-store-shim/with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) @powersync/shared-internals/dist/websockets.mjs: (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) (*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT *) three/build/three.core.js: three/build/three.module.js: (** * @license * Copyright 2010-2026 Three.js Authors * SPDX-License-Identifier: MIT *) @react-three/fiber/dist/events-e51d7528.esm.js: (** * @license React * react-reconciler-constants.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) (** * @license React * react-reconciler.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) (** * @license React * react-reconciler.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) comlink/dist/esm/comlink.mjs: (** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: Apache-2.0 *) */